Skip to content

Commit 0c1cdf6

Browse files
committed
refactor: rename friend-lite SDK to chronicle-wearable-sdk
Renames extras/friend-lite-sdk to extras/chronicle-wearable-sdk, the distribution to chronicle-wearable-sdk and the module to chronicle_wearable_sdk, updating both import sites and the tray, wearable-client and backend dependency declarations. chronicle-sdk was unavailable: PyPI already serves an unrelated project under that name, so depending on it would have pulled a stranger's package into the backend image. The backend sources it by git rather than a path dep because its Docker build context is backends/advanced, which cannot reach ../../extras. Also drops the legacy friend-lite/friend_lite memory-provider mappings, renames the release assets to chronicle-*, and mounts webui/index.html into webui-dev so page-title edits no longer need an image rebuild. friend-lite-react-native is untouched: it is a published third-party npm package, not ours to rename.
1 parent f8a661b commit 0c1cdf6

34 files changed

Lines changed: 139 additions & 137 deletions

File tree

.github/workflows/android-apk-build.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -133,5 +133,5 @@ jobs:
133133
with:
134134
upload_url: ${{ steps.create_release.outputs.upload_url }}
135135
asset_path: ${{ github.workspace }}/app-release.apk
136-
asset_name: friend-lite-android.apk
136+
asset_name: chronicle-android.apk
137137
asset_content_type: application/vnd.android.package-archive

.github/workflows/build-all-platforms.yml

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ jobs:
6161
run: eas init --force --non-interactive
6262

6363
- name: Build Android APK
64-
run: eas build --platform android --profile local --local --output ${{ github.workspace }}/friend-lite-android.apk --non-interactive
64+
run: eas build --platform android --profile local --local --output ${{ github.workspace }}/chronicle-android.apk --non-interactive
6565

6666
- name: Generate release tag
6767
id: tag
@@ -101,8 +101,8 @@ jobs:
101101
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
102102
with:
103103
upload_url: ${{ steps.create_release.outputs.upload_url }}
104-
asset_path: ${{ github.workspace }}/friend-lite-android.apk
105-
asset_name: friend-lite-android.apk
104+
asset_path: ${{ github.workspace }}/chronicle-android.apk
105+
asset_name: chronicle-android.apk
106106
asset_content_type: application/vnd.android.package-archive
107107

108108
build-ios:
@@ -141,7 +141,7 @@ jobs:
141141
run: eas init --force --non-interactive
142142

143143
- name: Build iOS IPA
144-
run: eas build --platform ios --profile local --local --non-interactive --output ${{ github.workspace }}/friend-lite-ios.ipa
144+
run: eas build --platform ios --profile local --local --non-interactive --output ${{ github.workspace }}/chronicle-ios.ipa
145145

146146
- name: Upload iOS IPA to Existing Release
147147
if: needs.build-android.result == 'success'
@@ -150,8 +150,8 @@ jobs:
150150
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
151151
with:
152152
upload_url: ${{ needs.build-android.outputs.upload_url }}
153-
asset_path: ${{ github.workspace }}/friend-lite-ios.ipa
154-
asset_name: friend-lite-ios.ipa
153+
asset_path: ${{ github.workspace }}/chronicle-ios.ipa
154+
asset_name: chronicle-ios.ipa
155155
asset_content_type: application/octet-stream
156156

157157
- name: Generate iOS release info
@@ -189,6 +189,6 @@ jobs:
189189
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
190190
with:
191191
upload_url: ${{ steps.create_ios_release.outputs.upload_url }}
192-
asset_path: ${{ github.workspace }}/friend-lite-ios.ipa
193-
asset_name: friend-lite-ios.ipa
192+
asset_path: ${{ github.workspace }}/chronicle-ios.ipa
193+
asset_name: chronicle-ios.ipa
194194
asset_content_type: application/octet-stream

.github/workflows/ios-ipa-build.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,5 +82,5 @@ jobs:
8282
with:
8383
upload_url: ${{ steps.create_release.outputs.upload_url }}
8484
asset_path: ${{ github.workspace }}/app-release.ipa
85-
asset_name: friend-lite-ios.ipa
85+
asset_name: chronicle-ios.ipa
8686
asset_content_type: application/octet-stream

backends/advanced/docker-compose.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -228,6 +228,9 @@ services:
228228
volumes:
229229
- ./webui/src:/app/src
230230
- ./webui/public:/app/public
231+
# Vite's entry document. Baked into the image otherwise, so edits to the
232+
# page title/meta silently kept serving the built-in copy until a rebuild.
233+
- ./webui/index.html:/app/index.html:ro
231234
- ./webui/tailwind.config.js:/app/tailwind.config.js:ro
232235
- ./webui/chronicle-espresso-preset.js:/app/chronicle-espresso-preset.js:ro
233236
depends_on:

backends/advanced/pyproject.toml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ dependencies = [
1010
"fastmcp>=0.5.0", # MCP server for conversation access
1111
"motor>=3.7.1",
1212
"ollama>=0.4.8",
13-
"friend-lite-sdk",
13+
"chronicle-wearable-sdk",
1414
"python-dotenv>=1.1.0",
1515
"uvicorn>=0.34.2",
1616
"wyoming>=1.6.1",
@@ -150,3 +150,6 @@ test = [
150150

151151
[tool.uv.sources]
152152
chronicle-setup = { path = "../../extras/chronicle-setup", editable = true }
153+
# Sourced by git rather than a path dep: the Docker build context is this
154+
# directory, so ../../extras is outside it. Tracks dev until this lands on main.
155+
chronicle-wearable-sdk = { git = "https://github.com/SimpleOpenSoftware/chronicle", subdirectory = "extras/chronicle-wearable-sdk", branch = "dev" }

backends/advanced/src/advanced_omi_backend/controllers/system_controller.py

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1432,9 +1432,6 @@ async def get_memory_provider():
14321432
"""Get current memory provider configuration."""
14331433
try:
14341434
current_provider = os.getenv("MEMORY_PROVIDER", "chronicle").lower()
1435-
# Map legacy provider names to current names
1436-
if current_provider in ("friend-lite", "friend_lite"):
1437-
current_provider = "chronicle"
14381435

14391436
# Chronicle (agentic vault) is currently the only provider.
14401437
available_providers = ["chronicle"]

backends/advanced/src/advanced_omi_backend/controllers/websocket_controller.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@
1515
from functools import partial
1616
from typing import Optional
1717

18+
from chronicle_wearable_sdk.decoder import OmiOpusDecoder
1819
from fastapi import Query, WebSocket, WebSocketDisconnect
19-
from friend_lite.decoder import OmiOpusDecoder
2020
from starlette.websockets import WebSocketState
2121

2222
from advanced_omi_backend.auth import websocket_auth

docs/audio-pipeline-architecture.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -502,7 +502,7 @@ plugins:
502502
### Button Event Flow
503503

504504
```
505-
OMI Device (BLE button) → friend-lite-sdk (parse_button_event)
505+
OMI Device (BLE button) → chronicle-wearable-sdk (parse_button_event)
506506
→ BLE Client (Wyoming protocol: {"type": "button-event", ...})
507507
→ Backend (_handle_button_event) → dispatch_event to plugins
508508
→ Plugin (on_button_event) → can close_conversation/call_plugin

docs/backend/plugin-development-guide.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -218,7 +218,7 @@ OMI Device (BLE)
218218
→ Button press on physical device
219219
→ BLE characteristic notifies with 8-byte payload
220220
221-
friend-lite-sdk (extras/friend-lite-sdk/)
221+
chronicle-wearable-sdk (extras/chronicle-wearable-sdk/)
222222
→ parse_button_event() converts payload → ButtonState IntEnum
223223
224224
BLE Client (extras/local-wearable-client/ or mobile app)

extras/chronicle-setup/chronicle_setup/config_manager.py

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -194,10 +194,6 @@ def get_memory_provider(self) -> str:
194194
config = self._load_config_yml()
195195
provider = config.get("memory", {}).get("provider", "chronicle").lower()
196196

197-
# Map legacy names
198-
if provider in ("friend-lite", "friend_lite"):
199-
provider = "chronicle"
200-
201197
return provider
202198

203199
def set_memory_provider(self, provider: str) -> Dict[str, Any]:

0 commit comments

Comments
 (0)