mirror of
https://github.com/pewdiepie-archdaemon/odysseus.git
synced 2026-10-06 23:12:22 +02:00
start-macos.sh is the single-instance launcher and adopts whatever is already listening: an open ChromaDB port is a resource it reuses. With one checkout that is right. With several, it means a scratch worktree silently attaching to another checkout's vector store, and the script reports it as a success. odysseus-dev is the sibling that owns isolation instead. Ports are derived from the worktree path, so two checkouts never collide and one checkout always gets the same URL. A ChromaDB this worktree did not start is refused, never adopted — we start our own or fall closed to keyword mode and say which. The data dir, database and browser-MCP cache live under .odysseus-dev/, leaving data/ to a normal launch. A checkout wired into launchd or systemd will not boot at all, and the ports the project already means something by (7000, 7011, 7860, 8100) are refused even when asked for explicitly. Readiness is /api/ready rather than a TCP accept: the port accepting connections says nothing about the database or a writable data dir. That endpoint is not auth-exempt, so the tool owns a dev admin account, hands it to setup.py and prints it. --from-pr N fetches pull/N/head into its own worktree and boots it, borrowing a venv so a PR is a few seconds rather than a pip install. start-macos.sh is untouched: it is what the LaunchAgent runs.