diff --git a/Triple-C.md b/Triple-C.md index 26126d8..d8f7f84 100644 --- a/Triple-C.md +++ b/Triple-C.md @@ -47,8 +47,7 @@ Triple-C is a cross-platform desktop application that sandboxes Claude Code insi Each project can independently use one of: -- **`/login`** (OAuth): User runs `claude login` inside the terminal. Token persisted in the config volume. -- **API Key**: Stored in the OS keychain, injected as `ANTHROPIC_API_KEY` env var. +- **Anthropic** (OAuth): User runs `claude login` inside the terminal on first use. Token persisted in the config volume across restarts and resets. - **AWS Bedrock**: Per-project AWS credentials (static keys, profile, or bearer token). ### Container Spawning (Sibling Containers) diff --git a/app/src-tauri/src/commands/project_commands.rs b/app/src-tauri/src/commands/project_commands.rs index 0e2cc4b..0a1ea4d 100644 --- a/app/src-tauri/src/commands/project_commands.rs +++ b/app/src-tauri/src/commands/project_commands.rs @@ -126,12 +126,7 @@ pub async fn start_project_container( // Get API key only if auth mode requires it let api_key = match project.auth_mode { - AuthMode::ApiKey => { - let key = secure::get_api_key()? - .ok_or_else(|| "No API key configured. Please set your Anthropic API key in Settings.".to_string())?; - Some(key) - } - AuthMode::Login => { + AuthMode::Anthropic => { None } AuthMode::Bedrock => { diff --git a/app/src-tauri/src/lib.rs b/app/src-tauri/src/lib.rs index 130aabe..3798f5d 100644 --- a/app/src-tauri/src/lib.rs +++ b/app/src-tauri/src/lib.rs @@ -43,7 +43,7 @@ pub fn run() { exec_manager: ExecSessionManager::new(), }) .setup(|app| { - match tauri::image::Image::from_bytes(include_bytes!("../icons/icon.ico")) { + match tauri::image::Image::from_bytes(include_bytes!("../icons/icon.png")) { Ok(icon) => { if let Some(window) = app.get_webview_window("main") { let _ = window.set_icon(icon); diff --git a/app/src-tauri/src/models/project.rs b/app/src-tauri/src/models/project.rs index 8ceac14..7769d7b 100644 --- a/app/src-tauri/src/models/project.rs +++ b/app/src-tauri/src/models/project.rs @@ -46,20 +46,21 @@ pub enum ProjectStatus { } /// How the project authenticates with Claude. -/// - `Login`: User runs `claude login` inside the container (OAuth, persisted via config volume) -/// - `ApiKey`: Uses the API key stored in the OS keychain +/// - `Anthropic`: User runs `claude login` inside the container (OAuth via Anthropic Console, +/// persisted in the config volume) /// - `Bedrock`: Uses AWS Bedrock with per-project AWS credentials #[derive(Debug, Clone, Serialize, Deserialize, PartialEq)] #[serde(rename_all = "snake_case")] pub enum AuthMode { - Login, - ApiKey, + /// Backward compat: old projects stored as "login" or "api_key" map to Anthropic. + #[serde(alias = "login", alias = "api_key")] + Anthropic, Bedrock, } impl Default for AuthMode { fn default() -> Self { - Self::Login + Self::Anthropic } } diff --git a/app/src/components/projects/ProjectCard.test.tsx b/app/src/components/projects/ProjectCard.test.tsx index e022e9d..ec38c66 100644 --- a/app/src/components/projects/ProjectCard.test.tsx +++ b/app/src/components/projects/ProjectCard.test.tsx @@ -47,7 +47,7 @@ const mockProject: Project = { paths: [{ host_path: "/home/user/project", mount_name: "project" }], container_id: null, status: "stopped", - auth_mode: "login", + auth_mode: "anthropic", bedrock_config: null, allow_docker_access: false, ssh_key_path: null, diff --git a/app/src/components/projects/ProjectCard.tsx b/app/src/components/projects/ProjectCard.tsx index 49db203..68a0c2d 100644 --- a/app/src/components/projects/ProjectCard.tsx +++ b/app/src/components/projects/ProjectCard.tsx @@ -267,26 +267,15 @@ export default function ProjectCard({ project }: Props) {
Auth: -