feat: enhanced capture queue with multi-type conversion, and bottom menu bar for cell phones

This commit is contained in:
2026-03-01 21:48:15 +00:00
parent a21e00d0e0
commit dbd40485ba
17 changed files with 16450 additions and 0 deletions

View File

@@ -0,0 +1,122 @@
#!/bin/bash
# =============================================================================
# Life OS - Step 1: DEV Database Setup
# Applies R1 schema to lifeos_dev, migrates data from lifeos_prod (R0)
# Run on: defiant-01 as root
# =============================================================================
set -e
DB_CONTAINER="lifeos-db"
DB_USER="postgres"
DEV_DB="lifeos_dev"
PROD_DB="lifeos_prod"
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
section() {
echo ""
echo "=============================================="
echo " $1"
echo "=============================================="
}
# =============================================================================
# 1. Verify prerequisites
# =============================================================================
section "1. Verifying prerequisites"
echo "Checking lifeos-db container..."
if ! docker ps | grep -q "$DB_CONTAINER"; then
echo "ERROR: $DB_CONTAINER is not running"
exit 1
fi
echo "OK: $DB_CONTAINER is running"
echo "Checking lifeos_dev database exists..."
DEV_EXISTS=$(docker exec $DB_CONTAINER psql -U $DB_USER -tc "SELECT 1 FROM pg_database WHERE datname='$DEV_DB'" | tr -d ' ')
if [ "$DEV_EXISTS" != "1" ]; then
echo "ERROR: $DEV_DB database does not exist"
exit 1
fi
echo "OK: $DEV_DB exists"
echo "Checking lifeos_prod database exists..."
PROD_EXISTS=$(docker exec $DB_CONTAINER psql -U $DB_USER -tc "SELECT 1 FROM pg_database WHERE datname='$PROD_DB'" | tr -d ' ')
if [ "$PROD_EXISTS" != "1" ]; then
echo "ERROR: $PROD_DB database does not exist"
exit 1
fi
echo "OK: $PROD_DB exists"
echo "Checking R0 data in lifeos_prod..."
R0_DOMAINS=$(docker exec $DB_CONTAINER psql -U $DB_USER -d $PROD_DB -tc "SELECT count(*) FROM domains" 2>/dev/null | tr -d ' ')
echo "R0 domains count: $R0_DOMAINS"
if [ "$R0_DOMAINS" = "0" ] || [ -z "$R0_DOMAINS" ]; then
echo "WARNING: No domains found in lifeos_prod. Migration will produce empty tables."
fi
# =============================================================================
# 2. Drop existing R1 tables in lifeos_dev (clean slate)
# =============================================================================
section "2. Cleaning lifeos_dev (drop all tables)"
docker exec $DB_CONTAINER psql -U $DB_USER -d $DEV_DB -c "
DROP SCHEMA public CASCADE;
CREATE SCHEMA public;
GRANT ALL ON SCHEMA public TO $DB_USER;
GRANT ALL ON SCHEMA public TO public;
"
echo "OK: lifeos_dev schema reset"
# =============================================================================
# 3. Apply R1 schema
# =============================================================================
section "3. Applying R1 schema to lifeos_dev"
docker exec -i $DB_CONTAINER psql -U $DB_USER -d $DEV_DB < "$SCRIPT_DIR/lifeos_r1_full_schema.sql"
echo "OK: R1 schema applied"
# Verify table count
TABLE_COUNT=$(docker exec $DB_CONTAINER psql -U $DB_USER -d $DEV_DB -tc "
SELECT count(*) FROM information_schema.tables WHERE table_schema = 'public' AND table_type = 'BASE TABLE'
" | tr -d ' ')
echo "Tables created: $TABLE_COUNT"
# =============================================================================
# 4. Run data migration (R0 -> R1)
# =============================================================================
section "4. Migrating data from lifeos_prod (R0) to lifeos_dev (R1)"
docker exec -i $DB_CONTAINER psql -U $DB_USER -d $DEV_DB < "$SCRIPT_DIR/lifeos_r0_to_r1_migration.sql"
echo "OK: Data migration complete"
# =============================================================================
# 5. Final verification
# =============================================================================
section "5. Final verification"
echo "R1 table row counts:"
docker exec $DB_CONTAINER psql -U $DB_USER -d $DEV_DB -c "
SELECT 'domains' as table_name, count(*) FROM domains UNION ALL
SELECT 'areas', count(*) FROM areas UNION ALL
SELECT 'projects', count(*) FROM projects UNION ALL
SELECT 'tasks', count(*) FROM tasks UNION ALL
SELECT 'notes', count(*) FROM notes UNION ALL
SELECT 'links', count(*) FROM links UNION ALL
SELECT 'daily_focus', count(*) FROM daily_focus UNION ALL
SELECT 'capture', count(*) FROM capture UNION ALL
SELECT 'context_types', count(*) FROM context_types UNION ALL
SELECT 'contacts', count(*) FROM contacts UNION ALL
SELECT 'meetings', count(*) FROM meetings UNION ALL
SELECT 'decisions', count(*) FROM decisions UNION ALL
SELECT 'releases', count(*) FROM releases UNION ALL
SELECT 'processes', count(*) FROM processes
ORDER BY table_name;
"
echo ""
echo "=============================================="
echo " DEV database setup complete."
echo " lifeos_dev has R1 schema + migrated R0 data."
echo " lifeos_prod R0 data is UNTOUCHED."
echo "=============================================="