refactor: Transform daemon_boyfriend into Loyal Companion

Rebrand and personalize the bot as 'Bartender' - a companion for those
who love deeply and feel intensely.

Major changes:
- Rename package: daemon_boyfriend -> loyal_companion
- New default personality: Bartender - wise, steady, non-judgmental
- Grief-aware system prompt (no toxic positivity, attachment-informed)
- New relationship levels: New Face -> Close Friend progression
- Bartender-style mood modifiers (steady presence)
- New fact types: attachment_pattern, grief_context, coping_mechanism
- Lower mood decay (0.05) for emotional stability
- Higher fact extraction rate (0.4) - Bartender pays attention

Updated all imports, configs, Docker files, and documentation.
This commit is contained in:
2026-01-14 18:08:35 +01:00
parent 3d939201f0
commit dbd534d860
60 changed files with 310 additions and 381 deletions

View File

@@ -32,7 +32,7 @@ This document describes the database schema used by Daemon Boyfriend.
```bash
# PostgreSQL connection string
DATABASE_URL=postgresql+asyncpg://user:password@localhost:5432/daemon_boyfriend
DATABASE_URL=postgresql+asyncpg://user:password@localhost:5432/loyal_companion
# Optional settings
DATABASE_ECHO=false # Log SQL queries
@@ -499,7 +499,7 @@ All indexes are created with `IF NOT EXISTS` for idempotency.
### From Code
```python
from daemon_boyfriend.services.database import db
from loyal_companion.services.database import db
# Initialize connection
await db.init()
@@ -512,10 +512,10 @@ await db.create_tables()
```bash
# Create database
createdb daemon_boyfriend
createdb loyal_companion
# Run schema
psql -U postgres -d daemon_boyfriend -f schema.sql
psql -U postgres -d loyal_companion -f schema.sql
```
### Docker
@@ -552,7 +552,7 @@ alembic downgrade -1
For JSONB (PostgreSQL) and JSON (SQLite) compatibility:
```python
from daemon_boyfriend.models.base import PortableJSON
from loyal_companion.models.base import PortableJSON
class MyModel(Base):
settings = Column(PortableJSON, default={})
@@ -563,7 +563,7 @@ class MyModel(Base):
Handles timezone-naive datetimes from SQLite:
```python
from daemon_boyfriend.models.base import ensure_utc
from loyal_companion.models.base import ensure_utc
# Safe for both PostgreSQL (already UTC) and SQLite (naive)
utc_time = ensure_utc(model.created_at)