Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
39 commits
Select commit Hold shift + click to select a range
7146582
Enhance Docker versioning in workflow
0xrushi Dec 2, 2025
fd39b06
Fix openmemory-mcp build: Initialize cache before build
0xrushi Dec 2, 2025
a5a62e1
Fix openmemory-mcp: Use main branch for cache init
0xrushi Dec 2, 2025
1a8a29f
Update openmemory-mcp cache initialization branch and remove version …
0xrushi Dec 2, 2025
8b4ce76
Fix CI: Free disk space and prune images to avoid space exhaustion
0xrushi Dec 2, 2025
4bd4906
Fix CI: Disable uv cache mount and clean cache to save space
0xrushi Dec 2, 2025
73b18c7
Merge pull request #170 from 0xrushi/fix/version
AnkushMalaker Dec 2, 2025
221e2e8
renamed test which was breaking windows
thestumonkey Dec 4, 2025
2ae5946
removed asterisk from filename
thestumonkey Dec 4, 2025
aa3933a
Update test execution commands to use 'uv' for improved environment m…
AnkushMalaker Dec 7, 2025
f45b48f
Enhance error handling in job status, retrieval, and cancellation rou…
AnkushMalaker Dec 7, 2025
c302312
remove stray file
AnkushMalaker Dec 7, 2025
1b4f802
Merge branch 'main' into robot2
AnkushMalaker Dec 7, 2025
05c8b8f
Merge pull request #167 from thestumonkey/robot2
AnkushMalaker Dec 7, 2025
c672723
UPDATE: init with default model gpt-5-mini
01PrathamS Dec 8, 2025
1356e79
Merge pull request #177 from 01PrathamS/change_default_gpt_model
AnkushMalaker Dec 8, 2025
98d286e
moved memory and transcription to services
thestumonkey Nov 30, 2025
3ea29b2
Added support for mycelia
thestumonkey Dec 1, 2025
0498862
Fixed zombie jobs where a worker could get stuck
thestumonkey Dec 1, 2025
6621a75
fixed delete for mycelia with needing user_id
thestumonkey Dec 1, 2025
9eaa6ef
removed friend or would be cicular
thestumonkey Dec 1, 2025
98b1611
added temporal memopries
thestumonkey Dec 1, 2025
e250f47
added methods to memory service baseclass
thestumonkey Dec 3, 2025
70031bd
added memory provider switch
thestumonkey Dec 3, 2025
cc657c7
added clickable memories
thestumonkey Dec 3, 2025
cd7d5e2
added timeline views
thestumonkey Dec 3, 2025
cecce11
Added changes from rabbitAI
thestumonkey Dec 9, 2025
f0a254b
applied changes from rabbitAI
thestumonkey Dec 9, 2025
31bbf02
added typescript dependancies
thestumonkey Dec 10, 2025
8e45aae
fixed tests
thestumonkey Dec 10, 2025
fb506dd
Merge pull request #179 from thestumonkey/merge-mycelia-memories
thestumonkey Dec 10, 2025
20c6803
use instance localstorage to get auth token
thestumonkey Dec 9, 2025
d9c112b
use db name and use memory userid
thestumonkey Dec 9, 2025
0077462
fixed tests and other tweaks
thestumonkey Dec 11, 2025
dc5ec6f
Changed name to chronicle
thestumonkey Dec 5, 2025
2c79e61
changed mobile app package to friend-lite for the moment
thestumonkey Dec 11, 2025
21e2a5c
rabbit aI fixes
thestumonkey Dec 11, 2025
dededcd
Merge pull request #187 from thestumonkey/test-fix
AnkushMalaker Dec 11, 2025
0bc569a
Merge branch 'main' into stu/name-change
thestumonkey Dec 11, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 8 additions & 8 deletions .env.template
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# ========================================
# FRIEND-LITE MASTER CONFIGURATION
# CHRONICLE MASTER CONFIGURATION
# ========================================
# This is the master configuration template for the entire Friend-Lite project.
# This is the master configuration template for the entire Chronicle project.
# Copy this file to .env and customize values, then run 'make config' to generate
# all service-specific configuration files.

Expand All @@ -11,7 +11,7 @@

# Infrastructure namespaces
INFRASTRUCTURE_NAMESPACE=infrastructure
APPLICATION_NAMESPACE=friend-lite
APPLICATION_NAMESPACE=chronicle

# Deployment mode: docker-compose, kubernetes, or distributed
DEPLOYMENT_MODE=docker-compose
Expand All @@ -24,7 +24,7 @@ CONTAINER_REGISTRY=localhost:32000
# ========================================

# Primary domain/IP for all services
# Examples: localhost, 192.168.1.100, friend-lite.example.com, 100.x.x.x (Tailscale)
# Examples: localhost, 192.168.1.100, chronicle.example.com, 100.x.x.x (Tailscale)
DOMAIN=localhost

# Service ports (Docker Compose mode)
Expand Down Expand Up @@ -105,7 +105,7 @@ PARAKEET_ASR_URL=http://host.docker.internal:8767

# MongoDB configuration
MONGODB_URI=mongodb://mongo:${MONGODB_PORT}
MONGODB_K8S_URI=mongodb://mongodb.${INFRASTRUCTURE_NAMESPACE}.svc.cluster.local:27017/friend-lite
MONGODB_K8S_URI=mongodb://mongodb.${INFRASTRUCTURE_NAMESPACE}.svc.cluster.local:27017/chronicle

# Qdrant configuration
QDRANT_BASE_URL=qdrant
Expand All @@ -120,12 +120,12 @@ NEO4J_PASSWORD=neo4j-password
# MEMORY PROVIDER CONFIGURATION
# ========================================

# Memory Provider: friend_lite or openmemory_mcp
MEMORY_PROVIDER=friend_lite
# Memory Provider: chronicle or openmemory_mcp
MEMORY_PROVIDER=chronicle

# OpenMemory MCP configuration (when MEMORY_PROVIDER=openmemory_mcp)
OPENMEMORY_MCP_URL=http://host.docker.internal:8765
OPENMEMORY_CLIENT_NAME=friend_lite
OPENMEMORY_CLIENT_NAME=chronicle
OPENMEMORY_USER_ID=openmemory
OPENMEMORY_TIMEOUT=30

Expand Down
28 changes: 28 additions & 0 deletions .github/workflows/advanced-docker-compose-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -106,6 +106,24 @@ jobs:
echo ".env not found; continuing"
fi

- name: Free Disk Space
run: |
echo "Freeing disk space..."
df -h
sudo rm -rf /usr/share/dotnet
sudo rm -rf /usr/local/lib/android
sudo rm -rf /opt/ghc
sudo rm -rf /usr/share/swift
docker system prune -a -f
df -h

- name: Initialize OpenMemory cache
run: |
echo "Initializing OpenMemory cache..."
cd ../../extras/openmemory-mcp
chmod +x init-cache.sh
./init-cache.sh

- name: Determine version
id: version
run: |
Expand All @@ -116,6 +134,7 @@ jobs:
else
VERSION="sha-${GITHUB_SHA::7}"
fi

echo "VERSION=$VERSION" >> "$GITHUB_OUTPUT"

- name: Build, tag, and push services sequentially with version
Expand Down Expand Up @@ -177,6 +196,9 @@ jobs:
docker image rm -f "$target_image" || true
docker image rm -f "$latest_image" || true
echo "::endgroup::"

# Aggressive cleanup to save space
docker system prune -af || true
done

# Build and push parakeet-asr with CUDA variants (cu121, cu126, cu128)
Expand Down Expand Up @@ -205,6 +227,9 @@ jobs:
docker image rm -f "$target_image" || true
docker image rm -f "$latest_image" || true
fi

# Aggressive cleanup to save space
docker system prune -af || true
done
cd - > /dev/null
echo "::endgroup::"
Expand Down Expand Up @@ -237,6 +262,9 @@ jobs:
docker image rm -f "$target_image" || true
docker image rm -f "$latest_image" || true
fi

# Aggressive cleanup to save space
docker system prune -af || true
done
cd - > /dev/null
echo "::endgroup::"
Expand Down
3 changes: 3 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
[submodule "extras/mycelia"]
path = extras/mycelia
url = https://github.com/mycelia-tech/mycelia
82 changes: 0 additions & 82 deletions ACT_GUIDE.md

This file was deleted.

26 changes: 13 additions & 13 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co

## Project Overview

Friend-Lite is at the core an AI-powered personal system - various devices, including but not limited to wearables from OMI can be used for at the very least audio capture, speaker specific transcription, memory extraction and retrieval.
Chronicle is at the core an AI-powered personal system - various devices, including but not limited to wearables from OMI can be used for at the very least audio capture, speaker specific transcription, memory extraction and retrieval.
On top of that - it is being designed to support other services, that can help a user with these inputs such as reminders, action items, personal diagnosis etc.

This supports a comprehensive web dashboard for management.
Expand Down Expand Up @@ -147,7 +147,7 @@ docker compose up --build
- **Job Tracker**: Tracks pipeline jobs with stage events (audio → transcription → memory) and completion status
- **Task Management**: BackgroundTaskManager tracks all async tasks to prevent orphaned processes
- **Unified Transcription**: Deepgram/Mistral transcription with fallback to offline ASR services
- **Memory System**: Pluggable providers (Friend-Lite native or OpenMemory MCP)
- **Memory System**: Pluggable providers (Chronicle native or OpenMemory MCP)
- **Authentication**: Email-based login with MongoDB ObjectId user system
- **Client Management**: Auto-generated client IDs as `{user_id_suffix}-{device_name}`, centralized ClientManager
- **Data Storage**: MongoDB (`audio_chunks` collection for conversations), vector storage (Qdrant or OpenMemory)
Expand All @@ -161,7 +161,7 @@ Required:
- LLM Service: Memory extraction and action items (OpenAI or Ollama)

Recommended:
- Vector Storage: Qdrant (Friend-Lite provider) or OpenMemory MCP server
- Vector Storage: Qdrant (Chronicle provider) or OpenMemory MCP server
- Transcription: Deepgram, Mistral, or offline ASR services

Optional:
Expand All @@ -179,8 +179,8 @@ Optional:
4. **Speech-Driven Conversation Creation**: User-facing conversations only created when speech is detected
5. **Dual Storage System**: Audio sessions always stored in `audio_chunks`, conversations created in `conversations` collection only with speech
6. **Versioned Processing**: Transcript and memory versions tracked with active version pointers
7. **Memory Processing**: Pluggable providers (Friend-Lite native with individual facts or OpenMemory MCP delegation)
8. **Memory Storage**: Direct Qdrant (Friend-Lite) or OpenMemory server (MCP provider)
7. **Memory Processing**: Pluggable providers (Chronicle native with individual facts or OpenMemory MCP delegation)
8. **Memory Storage**: Direct Qdrant (Chronicle) or OpenMemory server (MCP provider)
9. **Action Items**: Automatic task detection with "Simon says" trigger phrases
10. **Audio Optimization**: Speech segment extraction removes silence automatically
11. **Task Tracking**: BackgroundTaskManager ensures proper cleanup of all async operations
Expand Down Expand Up @@ -230,11 +230,11 @@ DEEPGRAM_API_KEY=your-deepgram-key-here
# Optional: TRANSCRIPTION_PROVIDER=deepgram

# Memory Provider
MEMORY_PROVIDER=friend_lite # or openmemory_mcp
MEMORY_PROVIDER=chronicle # or openmemory_mcp

# Database
MONGODB_URI=mongodb://mongo:27017
# Database name: friend-lite
# Database name: chronicle
QDRANT_BASE_URL=qdrant

# Network Configuration
Expand All @@ -246,12 +246,12 @@ CORS_ORIGINS=http://localhost:3000,http://localhost:5173

### Memory Provider Configuration

Friend-Lite supports two pluggable memory backends:
Chronicle supports two pluggable memory backends:

#### Friend-Lite Memory Provider (Default)
#### Chronicle Memory Provider (Default)
```bash
# Use Friend-Lite memory provider (default)
MEMORY_PROVIDER=friend_lite
# Use Chronicle memory provider (default)
MEMORY_PROVIDER=chronicle

# LLM Configuration for memory extraction
LLM_PROVIDER=openai
Expand All @@ -269,7 +269,7 @@ MEMORY_PROVIDER=openmemory_mcp

# OpenMemory MCP Server Configuration
OPENMEMORY_MCP_URL=http://host.docker.internal:8765
OPENMEMORY_CLIENT_NAME=friend_lite
OPENMEMORY_CLIENT_NAME=chronicle
OPENMEMORY_USER_ID=openmemory
OPENMEMORY_TIMEOUT=30

Expand All @@ -279,7 +279,7 @@ OPENAI_API_KEY=your-openai-key-here

### Transcription Provider Configuration

Friend-Lite supports multiple transcription services:
Chronicle supports multiple transcription services:

```bash
# Option 1: Deepgram (High quality, recommended)
Expand Down
10 changes: 5 additions & 5 deletions Docs/features.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
# Friend-Lite Features & Architecture
# Chronicle Features & Architecture

## Core Features

Friend-Lite supports AI-powered personal systems through multiple OMI-compatible audio devices:
Chronicle supports AI-powered personal systems through multiple OMI-compatible audio devices:

**Memory System:**
- **Advanced memory system** with pluggable providers (Friend-Lite native or OpenMemory MCP)
- **Advanced memory system** with pluggable providers (Chronicle native or OpenMemory MCP)
- **Memory extraction** from conversations with individual fact storage
- **Semantic memory search** with relevance threshold filtering and live results
- **Memory count display** with total count tracking from native providers
Expand Down Expand Up @@ -38,7 +38,7 @@ DevKit2 streams audio via Bluetooth using OPUS codec. The processing pipeline in

**AI Processing:**
- LLM-based conversation analysis (OpenAI or local Ollama)
- **Dual memory system**: Friend-Lite native or OpenMemory MCP integration
- **Dual memory system**: Chronicle native or OpenMemory MCP integration
- Enhanced memory extraction with individual fact storage
- **Semantic search** with relevance scoring and threshold filtering
- Smart deduplication and memory updates (ADD/UPDATE/DELETE)
Expand Down Expand Up @@ -87,7 +87,7 @@ Choose one based on your needs:

**Features:**
- Audio processing pipeline with real-time WebSocket support
- **Pluggable memory system**: Choose between Friend-Lite native or OpenMemory MCP
- **Pluggable memory system**: Choose between Chronicle native or OpenMemory MCP
- Enhanced memory extraction with individual fact storage (no generic fallbacks)
- **Semantic memory search** with relevance threshold filtering and total count display
- **Speaker-based memory filtering**: Optional control over processing based on participant presence
Expand Down
Loading
Loading