Skip to content

refactor: rename Odin references to Remote#123

Merged
github-actions[bot] merged 1 commit intomasterfrom
refactor/depersonalize-odin-to-remote
Feb 11, 2026
Merged

refactor: rename Odin references to Remote#123
github-actions[bot] merged 1 commit intomasterfrom
refactor/depersonalize-odin-to-remote

Conversation

@jordanpartridge
Copy link
Contributor

@jordanpartridge jordanpartridge commented Feb 11, 2026

Summary

  • Depersonalizes the codebase by replacing all "Odin" references with generic "Remote" terminology
  • The remote sync feature is optional infrastructure for home labs and teams sharing a centralized vector store — naming should reflect that, not a specific server
  • Pure rename/refactor — no behavioral changes

Changes (24 files, 308→308 lines)

Renames:

  • OdinSyncServiceRemoteSyncService
  • OdinSyncCommandRemoteSyncCommand
  • sync:odinsync:remote
  • --odin flag → --remote
  • ODIN_* env vars → REMOTE_SYNC_*
  • docker-compose.odin.ymldocker-compose.remote.yml

Updated: All 24 affected files across source, tests, config, env, docker-compose, and docs.

Test plan

  • All 1,118 tests pass (sequential run)
  • PHPStan level 8 — zero errors
  • Laravel Pint — clean
  • Zero remaining "odin" references in codebase (verified via grep)

Summary by CodeRabbit

Release Notes

  • Documentation

    • Updated all documentation to reflect remote server terminology and configuration
    • Revised production and offline-first architecture descriptions
  • Configuration Changes

    • Environment variables renamed from ODIN_* to REMOTE_SYNC_*
    • Configuration keys updated from services.odin to services.remote
    • Docker Compose file changed from docker-compose.odin.yml to docker-compose.remote.yml
  • Commands

    • Renamed sync command from sync:odin to sync:remote
    • Updated service flags from --odin to --remote across all commands

Depersonalizes the codebase by replacing all "Odin" references with
generic "Remote" terminology. The remote sync feature is optional
infrastructure for home labs and teams sharing a centralized vector
store — naming should reflect that, not a specific server.

Renames: OdinSyncService → RemoteSyncService, OdinSyncCommand →
RemoteSyncCommand, sync:odin → sync:remote, --odin → --remote,
ODIN_* env vars → REMOTE_SYNC_*, docker-compose.odin.yml →
docker-compose.remote.yml. All tests updated accordingly.
@coderabbitai
Copy link

coderabbitai bot commented Feb 11, 2026

Caution

Review failed

The pull request is closed.

📝 Walkthrough

Walkthrough

This PR comprehensively renames the Odin synchronization system to a generic Remote Sync service. Changes include service class renaming (OdinSyncService → RemoteSyncService), environment variables (ODIN_* → REMOTE_SYNC_*), config keys, command signatures, Docker Compose files, and corresponding test updates.

Changes

Cohort / File(s) Summary
Configuration & Environment
.env.example, config/services.php, docker-compose.remote.yml
Environment variables renamed from ODIN_* to REMOTE_SYNC_*; config key changed from 'odin' to 'remote' with updated environment variable bindings and fallback references.
Core Service Implementation
app/Services/RemoteSyncService.php, app/Services/ThemeClassifierService.php
OdinSyncService class renamed to RemoteSyncService with all config key references and public method names updated (pullFromOdin → pullFromRemote); removed 'odin' keyword from theme classifier.
Service Provider
app/Providers/AppServiceProvider.php
Updated singleton binding from OdinSyncService to RemoteSyncService with matching import and return type adjustments.
Sync & Knowledge Commands
app/Commands/RemoteSyncCommand.php, app/Commands/KnowledgeStatsCommand.php
Command class renamed OdinSyncCommand → RemoteSyncCommand; command signature changed from sync:odin to sync:remote; all method signatures and internal references updated to use RemoteSyncService with pullFromRemote method calls.
Service Management Commands
app/Commands/Service/{UpCommand,DownCommand,LogsCommand,StatusCommand}.php
Command flags updated from --odin to --remote; docker-compose file selection changed from docker-compose.odin.yml to docker-compose.remote.yml; environment labels updated from "Odin (Remote)" to "Remote".
Documentation
README.md, CLAUDE.md, MISSION.md, ROADMAP.md
Service and configuration names updated throughout; OdinSyncService renamed to RemoteSyncService; references to Odin changed to "Remote Server"; sync command documentation updated from sync:odin to sync:remote.
Feature Tests
tests/Feature/Commands/RemoteSyncCommandTest.php, tests/Feature/Commands/Service/{Up,Down,Logs,Status}CommandTest.php, tests/Feature/KnowledgeStatsCommandTest.php
All OdinSyncService references replaced with RemoteSyncService; command invocations updated from sync:odin to sync:remote and --odin to --remote; docker-compose file assertions updated to remote variant; mock bindings and method calls updated.
Unit Tests
tests/Unit/Services/RemoteSyncServiceTest.php, tests/Unit/Services/ThemeClassifierServiceTest.php
Service class references and imports updated from OdinSyncService to RemoteSyncService; pullFromOdin method calls changed to pullFromRemote; test data updated to reflect remote terminology.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Possibly related PRs

  • conduit-ui/knowledge#110 — Introduced the original OdinSyncService that this PR refactors and renames to RemoteSyncService.
  • conduit-ui/knowledge#16 — Modifies the same KnowledgeStatsCommand class to update its dependency injection and sync status rendering logic.
  • conduit-ui/knowledge#109 — Updates KnowledgeStatsCommand implementation with related changes to how sync status is displayed and service interactions.

Poem

🐰 Hops with joy through refactored code,
From Odin's name to remote mode,
Services renamed with careful care,
Tests and configs everywhere!
A sync by any name will flow, 🚀

✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch refactor/depersonalize-odin-to-remote

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@github-actions
Copy link

📊 Coverage Report

Metric Coverage Threshold Status
Lines 99.5% 95%

Files Below Threshold

File Coverage Uncovered Lines
app/Enums/ObservationType.php 0% None
app/Exceptions/Qdrant/QdrantException.php 0% None
app/Integrations/Qdrant/Requests/ScrollPoints.php 0% None
app/Services/AgentHealthService.php 0% None
app/Commands/Concerns/ResolvesProject.php 80% 26
app/Commands/KnowledgeSearchCommand.php 90.3% 73, 74, 76, 77, 78... (+2 more)
app/Services/OllamaService.php 92% 76, 152, 159, 167, 171... (+1 more)
app/Services/ProjectDetectorService.php 92% 67, 81

🏆 Synapse Sentinel Gate

@github-actions
Copy link

🏆 Sentinel Certified

Tests & Coverage: 0 tests passed
Security Audit: No security vulnerabilities found
Pest Syntax: All test files use describe/it syntax


Add this badge to your README:

[![Sentinel Certified](https://img.shields.io/github/actions/workflow/status/conduit-ui/knowledge/gate.yml?label=Sentinel%20Certified&style=flat-square)](https://github.com/conduit-ui/knowledge/actions/workflows/gate.yml)

@github-actions github-actions bot merged commit 634165e into master Feb 11, 2026
1 of 2 checks passed
@github-actions github-actions bot deleted the refactor/depersonalize-odin-to-remote branch February 11, 2026 17:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant