From c91a383a123205f5e05d6ea33d6e24a941b0481b Mon Sep 17 00:00:00 2001 From: Timothy Jaeryang Baek Date: Sat, 11 Jul 2026 21:16:53 -0500 Subject: [PATCH 1/3] refac --- cptr/frontend/src/lib/components/AuthScreen.svelte | 5 ++++- cptr/frontend/src/lib/components/SetupWizard.svelte | 5 ++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/cptr/frontend/src/lib/components/AuthScreen.svelte b/cptr/frontend/src/lib/components/AuthScreen.svelte index 88ca8a90..799df422 100644 --- a/cptr/frontend/src/lib/components/AuthScreen.svelte +++ b/cptr/frontend/src/lib/components/AuthScreen.svelte @@ -70,7 +70,10 @@ } -
+

Computer diff --git a/cptr/frontend/src/lib/components/SetupWizard.svelte b/cptr/frontend/src/lib/components/SetupWizard.svelte index e4e02deb..5c31689c 100644 --- a/cptr/frontend/src/lib/components/SetupWizard.svelte +++ b/cptr/frontend/src/lib/components/SetupWizard.svelte @@ -91,7 +91,10 @@ let searchShortcut = $derived(formatChord($keybindings.quickOpen)); -
+
From 8486c1bfce48825088d64603dea4653376792937 Mon Sep 17 00:00:00 2001 From: Timothy Jaeryang Baek Date: Sat, 11 Jul 2026 21:20:59 -0500 Subject: [PATCH 2/3] refac --- cptr/utils/agents/detection.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/cptr/utils/agents/detection.py b/cptr/utils/agents/detection.py index 24c911a0..318c45eb 100644 --- a/cptr/utils/agents/detection.py +++ b/cptr/utils/agents/detection.py @@ -184,6 +184,14 @@ async def detect_profile(profile: dict[str, Any]) -> AgentDetection: if profile.get("agent") == "pi": models = await _probe_pi_models(command, profile) + if models is None: + return AgentDetection( + "error", + command, + version, + "Pi RPC is unavailable; the resolved command may not be Pi.", + [], + ) if not models: return AgentDetection( "auth_unknown", @@ -277,7 +285,7 @@ async def _probe_pi_models(command: str, profile: dict[str, Any]) -> list[str] | provider, model = item.get("provider"), item.get("id") if isinstance(provider, str) and provider and isinstance(model, str) and model: models.append(f"{provider}/{model}") - return models or None + return models except Exception: return None finally: @@ -527,7 +535,7 @@ async def get_agent_status(app_state=None, refresh: bool = False) -> dict[str, A candidates = profiles if not implicit_defaults else default_agent_profiles() for profile in candidates: detected = await detect_profile(profile) - if implicit_defaults and detected.status == "not_found": + if implicit_defaults and detected.status in {"not_found", "error"}: continue mode = profile.get("mode", "auto") models = detected.models or profile.get("models") or [] From bbfc331a991728c7e7c9863ce15f3bf5f88aa8e1 Mon Sep 17 00:00:00 2001 From: Timothy Jaeryang Baek Date: Sat, 11 Jul 2026 21:23:20 -0500 Subject: [PATCH 3/3] refac --- CHANGELOG.md | 10 ++++++++++ pyproject.toml | 2 +- uv.lock | 2 +- 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 68629ea6..b56d7cbe 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,16 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [0.9.3] - 2026-07-11 + +### Changed + +- 🎨 **Your appearance choice follows you.** Sign-in and setup now use the same look you picked for Computer. + +### Fixed + +- 🤖 **Pi only appears when it is really there.** A different program with a similar name will no longer show up as Pi. + ## [0.9.2] - 2026-07-11 ### Added diff --git a/pyproject.toml b/pyproject.toml index 290b02a2..17f686fb 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "cptr" -version = "0.9.2" +version = "0.9.3" description = "Your computer, from anywhere. Code, manage, and control your machine from the web." license = {file = "LICENSE"} readme = "README.md" diff --git a/uv.lock b/uv.lock index f780b396..d5ecf6ed 100644 --- a/uv.lock +++ b/uv.lock @@ -284,7 +284,7 @@ wheels = [ [[package]] name = "cptr" -version = "0.9.2" +version = "0.9.3" source = { editable = "." } dependencies = [ { name = "aiosqlite" },