Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
Binary file added .assets/menu-bar-client.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
4 changes: 2 additions & 2 deletions .github/workflows/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ on:
- **No secrets required** - Works for external contributors
- **Excludes**: Tests tagged with `requires-api-keys`
- **Config**: `tests/configs/mock-services.yml`
- **Test Script**: `./run-no-api-tests.sh`
- **Makefile Target**: `make test-no-api OUTPUTDIR=results-no-api`
- **Results**: `results-no-api/`
- **Time**: ~10-15 minutes
- **Coverage**: ~70% of test suite
Expand Down Expand Up @@ -312,7 +312,7 @@ runs-on: ubuntu-latest
CLEANUP_CONTAINERS: "false" # Handled by workflow
# API keys if needed
run: |
./run-{no-api|robot}-tests.sh
make test-no-api # or ./run-robot-tests.sh for full suite
TEST_EXIT_CODE=$?
echo "test_exit_code=$TEST_EXIT_CODE" >> $GITHUB_ENV
exit 0 # Don't fail yet
Expand Down
6 changes: 2 additions & 4 deletions .github/workflows/robot-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -76,11 +76,9 @@ jobs:

- name: Run Robot Framework tests (No API Keys)
working-directory: tests
env:
CLEANUP_CONTAINERS: "false" # Don't cleanup in CI - handled by workflow
run: |
# Use the no-API test script (excludes tests tagged with requires-api-keys)
./run-no-api-tests.sh
# Use Makefile target (starts containers with mock config, excludes api-keys/slow/sdk/gpu tests)
make test-no-api OUTPUTDIR=results-no-api
TEST_EXIT_CODE=$?
echo "test_exit_code=$TEST_EXIT_CODE" >> $GITHUB_ENV
exit 0 # Don't fail here, we'll fail at the end after uploading artifacts
Expand Down
30 changes: 5 additions & 25 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -1,42 +1,22 @@
repos:
# Local hooks (project-specific checks)
- repo: local
hooks:
# Run Robot Framework endpoint tests before push
- id: robot-framework-tests
name: Robot Framework Tests (Endpoints)
entry: bash -c 'cd tests && make endpoints OUTPUTDIR=.pre-commit-results'
language: system
pass_filenames: false
stages: [push]
verbose: true

# Clean up test results after hook runs
- id: cleanup-test-results
name: Cleanup Test Results
entry: bash -c 'cd tests && rm -rf .pre-commit-results'
language: system
pass_filenames: false
stages: [push]
always_run: true

# Code formatting
- repo: https://github.com/psf/black
rev: 24.4.2
hooks:
- id: black
files: ^backends/advanced-backend/src/.*\.py$
exclude: \.venv/
- repo: https://github.com/PyCQA/isort
rev: 5.13.2
hooks:
- id: isort
files: ^backends/advanced-backend/src/.*\.py$
args: ["--profile", "black"]
exclude: \.venv/

# File hygiene
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.5.0
hooks:
- id: trailing-whitespace
files: ^backends/advanced-backend/src/.*
exclude: \.venv/
- id: end-of-file-fixer
files: ^backends/advanced-backend/src/.*
exclude: \.venv/
3 changes: 2 additions & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -122,8 +122,9 @@ help: ## Show detailed help for all targets
setup-dev: ## Setup development environment (git hooks, pre-commit)
@echo "🛠️ Setting up development environment..."
@echo ""
@bash scripts/check_uv.sh
@echo "📦 Installing pre-commit..."
@pip install pre-commit 2>/dev/null || pip3 install pre-commit
@uv tool install pre-commit
@echo ""
@echo "🔧 Installing git hooks..."
@pre-commit install --hook-type pre-push
Expand Down
6 changes: 4 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,9 +22,11 @@ For step-by-step instructions, see the [setup guide](quickstart.md).

![Memory Search](.assets/memory-dashboard.png)

*[Mobile App - Screenshot coming soon]*
### Desktop Menu Bar Client

![Menu Bar Client](.assets/menu-bar-client.png)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

🧩 Analysis chain

🏁 Script executed:

fd --type f "menu-bar-client.png"

Repository: SimpleOpenSoftware/chronicle

Length of output: 54


The asset .assets/menu-bar-client.png does not exist in the repository. The image reference on line 27 is broken and will render as a broken image in the README. Either add the image file to the .assets/ directory or remove/update the reference.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@README.md` at line 27, The README contains a broken image reference: "![Menu
Bar Client](.assets/menu-bar-client.png)"; fix it by either (a) adding the
missing image file named menu-bar-client.png into the .assets directory and
committing it, or (b) updating that markdown image reference to point to an
existing asset or removing the entire image markdown if no image is
needed—ensure the changed README uses the exact updated path or removes the line
so the image no longer renders broken.


![Mobile App](screenshots/mobile-app.png)
*[Mobile App - Screenshot coming soon]*

## What's Included

Expand Down
6 changes: 6 additions & 0 deletions backends/advanced/.env.template
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,12 @@ LANGFUSE_PUBLIC_KEY=
LANGFUSE_SECRET_KEY=
LANGFUSE_BASE_URL=http://langfuse-web:3000

# Galileo (OTEL-based LLM observability)
GALILEO_API_KEY=
GALILEO_PROJECT=chronicle
GALILEO_LOG_STREAM=default
# GALILEO_CONSOLE_URL=https://app.galileo.ai # Default; override for self-hosted

# Qwen3-ASR (offline ASR via vLLM)
# QWEN3_ASR_URL=host.docker.internal:8767
# QWEN3_ASR_STREAM_URL=host.docker.internal:8769
Expand Down
4 changes: 2 additions & 2 deletions backends/advanced/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ COPY pyproject.toml uv.lock ./
# Export locked deps to requirements.txt (handles extras, git sources, custom indexes)
# Install to system Python (no venv) - container IS the isolation
RUN --mount=type=cache,target=/root/.cache/uv \
uv export --frozen --no-dev --extra deepgram --no-emit-project -o requirements.txt && \
uv export --frozen --no-dev --extra deepgram --extra galileo --no-emit-project -o requirements.txt && \
uv pip install --system -r requirements.txt


Expand Down Expand Up @@ -79,7 +79,7 @@ WORKDIR /app
COPY --from=ghcr.io/astral-sh/uv:latest /uv /uvx /bin/
COPY pyproject.toml uv.lock ./
RUN --mount=type=cache,target=/root/.cache/uv \
uv export --frozen --extra deepgram --group test --no-emit-project -o requirements.txt && \
uv export --frozen --extra deepgram --extra galileo --group test --no-emit-project -o requirements.txt && \
uv pip install --system -r requirements.txt && \
rm /bin/uv /bin/uvx

Expand Down
4 changes: 2 additions & 2 deletions backends/advanced/Docs/plugin-development-guide.md
Original file line number Diff line number Diff line change
Expand Up @@ -206,7 +206,7 @@ async def on_memory_processed(self, context: PluginContext):

**When**: OMI device button is pressed
**Context Data**:
- `state` (str): Button state (`SINGLE_TAP`, `DOUBLE_TAP`)
- `state` (str): Button state (`SINGLE_PRESS`, `DOUBLE_PRESS`)
- `timestamp` (float): Unix timestamp of the event
- `audio_uuid` (str): Current audio session UUID (may be None)
- `session_id` (str): Streaming session ID (for conversation close)
Expand All @@ -222,7 +222,7 @@ friend-lite-sdk (extras/friend-lite-sdk/)
→ parse_button_event() converts payload → ButtonState IntEnum
BLE Client (extras/local-wearable-client/ or mobile app)
→ Formats as Wyoming protocol: {"type": "button-event", "data": {"state": "SINGLE_TAP"}}
→ Formats as Wyoming protocol: {"type": "button-event", "data": {"state": "SINGLE_PRESS"}}
→ Sends over WebSocket
Backend (websocket_controller.py)
Expand Down
7 changes: 7 additions & 0 deletions backends/advanced/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,13 @@ deepgram = [
local-audio = [
"easy-audio-interfaces[local-audio]>=0.7.1",
]
galileo = [
"galileo>=1.0",
"opentelemetry-api>=1.20",
"opentelemetry-sdk>=1.20",
"opentelemetry-exporter-otlp>=1.20",
"openinference-instrumentation-openai>=0.1",
]

[build-system]
requires = ["setuptools>=61.0", "wheel"]
Expand Down
Loading
Loading