diff --git a/.claude/scheduled_tasks.lock b/.claude/scheduled_tasks.lock new file mode 100644 index 0000000..353a198 --- /dev/null +++ b/.claude/scheduled_tasks.lock @@ -0,0 +1 @@ +{"sessionId":"15770f56-9fb8-4d72-9afd-c60f20801589","pid":36832,"acquiredAt":1777979563514} \ No newline at end of file diff --git a/.claude/settings.local.json b/.claude/settings.local.json new file mode 100644 index 0000000..8f773a1 --- /dev/null +++ b/.claude/settings.local.json @@ -0,0 +1,9 @@ +{ + "permissions": { + "allow": [ + "PowerShell($tmp = Join-Path $env:TEMP 'rustup-init.exe'; Invoke-WebRequest -Uri 'https://win.rustup.rs/x86_64' -OutFile $tmp -UseBasicParsing; & $tmp -y --default-toolchain stable --default-host x86_64-pc-windows-msvc --profile minimal; Write-Output \"rustup exit: $LASTEXITCODE\")", + "PowerShell($env:Path = \"$env:USERPROFILE\\\\.cargo\\\\bin;$env:USERPROFILE\\\\.bun\\\\bin;$env:Path\"; $env:SKIP_INSTALL = '1'; $env:TEMP = 'C:\\\\BunTemp'; $env:TMP = 'C:\\\\BunTemp'; Set-Location 'C:\\\\Users\\\\陈晨\\\\Desktop\\\\工单相关\\\\heicode\\\\cc-haha\\\\desktop'; bun run build:windows-x64)", + "PowerShell(Get-PSDrive -PSProvider FileSystem | Format-Table -AutoSize; Write-Output '---'; @\\('C:\\\\bun-ascii','D:\\\\','C:\\\\ProgramData','C:\\\\Tools'\\) | ForEach-Object { try { $tp = Join-Path $_ 'tmp_probe.txt'; $null = New-Item -ItemType File -Force -Path $tp -ErrorAction Stop; Remove-Item $tp -Force; Write-Output \"WRITE OK: $_\" } catch { Write-Output \"WRITE FAIL: $_ -> $\\($_.Exception.Message.Split\\([Environment]::NewLine\\)[0]\\)\" } })" + ] + } +} diff --git a/cc-haha/desktop/index.html b/cc-haha/desktop/index.html index 05d212e..6981890 100644 --- a/cc-haha/desktop/index.html +++ b/cc-haha/desktop/index.html @@ -3,11 +3,11 @@ - Claude Code Companion + Heicode diff --git a/cc-haha/desktop/scripts/build-windows-x64.ps1 b/cc-haha/desktop/scripts/build-windows-x64.ps1 index ffd72f6..3f47563 100644 --- a/cc-haha/desktop/scripts/build-windows-x64.ps1 +++ b/cc-haha/desktop/scripts/build-windows-x64.ps1 @@ -113,10 +113,10 @@ function Get-StagedArtifactName { switch -Regex ($ArtifactName) { '^latest\.json$' { return 'latest.json' } - '\.msi\.zip\.sig$' { return "Claude-Code-Haha_${appVersion}_windows_x64_msi.msi.zip.sig" } - '\.msi\.zip$' { return "Claude-Code-Haha_${appVersion}_windows_x64_msi.msi.zip" } - '\.msi\.sig$' { return "Claude-Code-Haha_${appVersion}_windows_x64_msi.msi.sig" } - '\.msi$' { return "Claude-Code-Haha_${appVersion}_windows_x64_msi.msi" } + '\.msi\.zip\.sig$' { return "Heicode_${appVersion}_windows_x64_msi.msi.zip.sig" } + '\.msi\.zip$' { return "Heicode_${appVersion}_windows_x64_msi.msi.zip" } + '\.msi\.sig$' { return "Heicode_${appVersion}_windows_x64_msi.msi.sig" } + '\.msi$' { return "Heicode_${appVersion}_windows_x64_msi.msi" } default { return $ArtifactName } } } diff --git a/cc-haha/desktop/src/components/controls/ModelSelector.tsx b/cc-haha/desktop/src/components/controls/ModelSelector.tsx index d061f74..d7bce53 100644 --- a/cc-haha/desktop/src/components/controls/ModelSelector.tsx +++ b/cc-haha/desktop/src/components/controls/ModelSelector.tsx @@ -61,15 +61,15 @@ function buildProviderChoices( providerModelsMap: Record, labels: Record<'main' | 'haiku' | 'sonnet' | 'opus', string>, ): ProviderChoice[] { - return providers.map((provider) => ({ - providerId: provider.id, - providerName: provider.name, - isDefault: activeId === provider.id, - models: - providerModelsMap[provider.id]?.length > 0 - ? providerModelsMap[provider.id] - : buildProviderModels(provider, labels), - })) + return providers.map((provider) => { + const cached = providerModelsMap[provider.id] + return { + providerId: provider.id, + providerName: provider.name, + isDefault: activeId === provider.id, + models: cached && cached.length > 0 ? cached : buildProviderModels(provider, labels), + } + }) } function resolveDefaultRuntimeSelection( diff --git a/cc-haha/desktop/src/components/layout/TitleBar.tsx b/cc-haha/desktop/src/components/layout/TitleBar.tsx index bf34f06..47ee7e7 100644 --- a/cc-haha/desktop/src/components/layout/TitleBar.tsx +++ b/cc-haha/desktop/src/components/layout/TitleBar.tsx @@ -15,7 +15,7 @@ export function TitleBar() { {/* Logo */}
- Claude Code Companion + Heicode
{/* Navigation arrows */} diff --git a/cc-haha/desktop/src/components/login/HeicodeLoginPage.tsx b/cc-haha/desktop/src/components/login/HeicodeLoginPage.tsx index 8ec55e8..a0e73db 100644 --- a/cc-haha/desktop/src/components/login/HeicodeLoginPage.tsx +++ b/cc-haha/desktop/src/components/login/HeicodeLoginPage.tsx @@ -1,7 +1,7 @@ // desktop/src/components/login/HeicodeLoginPage.tsx // -// 全屏登录页 — 当 HeiCode 检测到尚未登录时由 AppShell 渲染。 -// 仅 2 个登录入口:TaijiAICloud / ClawdRouter,没有第三选项。 +// 全屏登录页 — 当 Heicode 检测到尚未登录时由 AppShell 渲染。 +// 仅 1 个登录入口:TaijiAICloud。 import { useEffect } from 'react' import { useHeicodeAuthStore } from '../../stores/heicodeAuthStore' @@ -33,11 +33,11 @@ export function HeicodeLoginPage() { className="flex h-screen w-screen flex-col items-center justify-center overflow-auto bg-[var(--color-surface)] px-6 py-10" data-testid="heicode-login-page" > -
-

- HeiCode +
+

+ Heicode

-

+

{t('login.subtitle')}

@@ -55,7 +55,7 @@ export function HeicodeLoginPage() { ) : null} {hasFetched && providers.length > 0 ? ( -
+
{providers.map((provider) => ( = { 'serverVerb.Task in progress': '任务进行中', // ─── HeiCode 登录 ────────────────────────────────────── - 'login.subtitle': '选择登录方式以开始使用 HeiCode', - 'login.footnote': 'HeiCode 直接连 TaijiAICloud 或 ClawdRouter,API Key 仅保存在你这台机器上。', + 'login.subtitle': '登录以开始使用 Heicode', + 'login.footnote': 'Heicode 直接连 TaijiAICloud,API Key 仅保存在你这台机器上。', 'login.tags.recommended': '推荐', 'login.tags.comingSoon': '即将开放', 'login.oauth.button': '浏览器登录', diff --git a/cc-haha/desktop/src/pages/ActiveSession.tsx b/cc-haha/desktop/src/pages/ActiveSession.tsx index 0cc18ec..921f3aa 100644 --- a/cc-haha/desktop/src/pages/ActiveSession.tsx +++ b/cc-haha/desktop/src/pages/ActiveSession.tsx @@ -141,7 +141,7 @@ export function ActiveSession() { ) : ( <> - Claude Code Haha + Heicode

{t('empty.title')}

diff --git a/cc-haha/desktop/src/pages/EmptySession.tsx b/cc-haha/desktop/src/pages/EmptySession.tsx index 34c0f06..8880788 100644 --- a/cc-haha/desktop/src/pages/EmptySession.tsx +++ b/cc-haha/desktop/src/pages/EmptySession.tsx @@ -460,7 +460,7 @@ export function EmptySession() {
- Claude Code Haha + Heicode

{t('empty.title')}

diff --git a/cc-haha/desktop/src/pages/NewTaskModal.tsx b/cc-haha/desktop/src/pages/NewTaskModal.tsx index 6d3576b..015def3 100644 --- a/cc-haha/desktop/src/pages/NewTaskModal.tsx +++ b/cc-haha/desktop/src/pages/NewTaskModal.tsx @@ -22,23 +22,23 @@ export default function NewTaskModal() { return (
{/* ─── TopAppBar / Header ──────────────────────────────────── */} -
+
- - Claude Code Companion + + Heicode
-
+
arrow_back_ios arrow_forward_ios
- + Settings
@@ -64,22 +64,22 @@ export default function NewTaskModal() { {/* nav items -- session counts derived from mockSessions */}
-
+
addNew session
-
+
calendar_todayScheduled
-
+
historyToday {mockSessions.today.length > 0 && ( - {mockSessions.today.length} + {mockSessions.today.length} )}
-
+
event_notePrevious 7 Days {mockSessions.previous7Days.length > 0 && ( - {mockSessions.previous7Days.length} + {mockSessions.previous7Days.length} )}
@@ -317,25 +317,25 @@ export default function NewTaskModal() { {/* ─── Footer / Status Bar ─────────────────────────────────── */} -