From 104ab4f333b871f6ce8857d83027fdde23433af7 Mon Sep 17 00:00:00 2001 From: wimi321 <34830250+wimi321@users.noreply.github.com> Date: Sun, 26 Jul 2026 16:59:38 +0800 Subject: [PATCH] fix: preserve official Zhizi account guidance --- docs/ZHIZI_CLOUD_ENGINE.md | 2 +- src/main/index.ts | 6 +++++- src/main/services/zhiziCloudAuth.ts | 2 ++ src/preload/index.ts | 1 + src/renderer/src/App.tsx | 8 ++++++++ src/renderer/src/global.d.ts | 1 + src/renderer/src/i18n.ts | 14 ++++++++++---- tests/zhizi-cloud-engine-contract.test.mjs | 5 +++++ 8 files changed, 33 insertions(+), 6 deletions(-) diff --git a/docs/ZHIZI_CLOUD_ENGINE.md b/docs/ZHIZI_CLOUD_ENGINE.md index bca0fa6..bed647a 100644 --- a/docs/ZHIZI_CLOUD_ENGINE.md +++ b/docs/ZHIZI_CLOUD_ENGINE.md @@ -83,7 +83,7 @@ GoAgent 不会把智子 token 写入普通设置文件,也不会在日志中 - `验证码不正确或已过期`:重新发送验证码后再登录。 - `当前没有空闲算力`:GoAgent 会按有限次数自动重试。这通常是 worker 暂时繁忙,不等于账号余额不足。 - VIP 共享返回 `not_enough_credit`:GoAgent 会明确提示“VIP 权益/连接账号未同步”,不会把它误报成独享余额不足。先退出并重新登录;持续失败时请让智子官方检查 VIP 与连接账号的 worker 权益。 -- 独享 1x / 3x / 6x 返回 `not_enough_credit`:这是按量档位的余额或档位问题,请在智子官方 App 检查。 +- 独享 1x / 3x / 6x 返回 `not_enough_credit`:这是按量档位的余额或档位问题,请在智子官方 App 检查。设置页可直接打开 [智子官方 App 下载页](https://zhizigo.com/download)。 - 官方 Postman 中的 `connectAccount/login` 只用于验证连接账号凭据,不返回 GoAgent 直连所需的 token,也不会替代主账号登录流程。 - `智子云 KataGo 启动超时`:检查 token 是否有效,或在 GoAgent 中重新登录。 - `智子云 GTP 命令失败`:可能是远端引擎尚未 ready、账号状态异常,或智子云当前连接不可用。 diff --git a/src/main/index.ts b/src/main/index.ts index 25b83bb..16a373a 100644 --- a/src/main/index.ts +++ b/src/main/index.ts @@ -30,7 +30,7 @@ import { } from './services/studentProfile' import { archiveTeacherSession, createTeacherSession, deleteTeacherSession, getActiveTeacherSession, listTeacherSessions, updateTeacherSessionMessages } from './services/teacherSession' import { clearTtsCache, inspectTtsAssets, listTtsVoices, synthesizeTts, testTtsSettings } from './services/tts' -import { loginZhiziCloudByCode, loginZhiziCloudByPassword, sendZhiziCloudLoginCode } from './services/zhiziCloudAuth' +import { loginZhiziCloudByCode, loginZhiziCloudByPassword, sendZhiziCloudLoginCode, ZHIZI_OFFICIAL_APP_DOWNLOAD_URL } from './services/zhiziCloudAuth' import { probeZhiziCloudConnection } from './services/zhiziConnectionProbe' import { resetZhiziPersistentSession } from './services/zhiziSocketSession' @@ -616,6 +616,10 @@ app.whenReady().then(() => { dashboard: await dashboard() } }) + ipcMain.handle('zhizi:open-official-app', async () => { + await shell.openExternal(ZHIZI_OFFICIAL_APP_DOWNLOAD_URL) + return { ok: true, url: ZHIZI_OFFICIAL_APP_DOWNLOAD_URL } + }) ipcMain.handle('tts:inspect-assets', async () => inspectTtsAssets()) ipcMain.handle('tts:list-voices', async () => listTtsVoices()) ipcMain.handle('tts:synthesize', async (_event, payload) => synthesizeTts(payload)) diff --git a/src/main/services/zhiziCloudAuth.ts b/src/main/services/zhiziCloudAuth.ts index 21d5360..22372b6 100644 --- a/src/main/services/zhiziCloudAuth.ts +++ b/src/main/services/zhiziCloudAuth.ts @@ -6,6 +6,8 @@ const ZHIZI_FAST_LOGIN_URL = 'https://www.zhizigo.com/api/cluster/account/fast-l const ZHIZI_ME_URL = 'https://www.zhizigo.com/api/cluster/account/me' const ZHIZI_CONNECT_ACCOUNT_FETCH_URL = 'https://www.zhizigo.com/api/cluster/account/connectAccount/fetch' +export const ZHIZI_OFFICIAL_APP_DOWNLOAD_URL = 'https://zhizigo.com/download' + export interface ZhiziCloudAccountStatus { tokenValid: boolean isMembership: boolean diff --git a/src/preload/index.ts b/src/preload/index.ts index a8340ee..7716005 100644 --- a/src/preload/index.ts +++ b/src/preload/index.ts @@ -167,6 +167,7 @@ const api = { logoutZhiziCloud: (): Promise => ipcRenderer.invoke('zhizi:logout'), testZhiziCloudConnection: (): Promise => ipcRenderer.invoke('zhizi:test-connection'), enableZhiziCloud: (): Promise => ipcRenderer.invoke('zhizi:enable'), + openZhiziOfficialApp: (): Promise<{ ok: boolean; url: string }> => ipcRenderer.invoke('zhizi:open-official-app'), inspectTtsAssets: (): Promise => ipcRenderer.invoke('tts:inspect-assets'), listTtsVoices: (): Promise => ipcRenderer.invoke('tts:list-voices'), synthesizeTts: (payload: TtsSynthesisRequest): Promise => ipcRenderer.invoke('tts:synthesize', payload), diff --git a/src/renderer/src/App.tsx b/src/renderer/src/App.tsx index 05cc21d..4897b3b 100644 --- a/src/renderer/src/App.tsx +++ b/src/renderer/src/App.tsx @@ -5388,6 +5388,14 @@ function SettingsDrawer({ > {zhiziTestBusy ? '检测中...' : '只检测连接'} + {zhiziEnabled ? '当前使用智子云分析。切回本机后会立即释放远程连接。' diff --git a/src/renderer/src/global.d.ts b/src/renderer/src/global.d.ts index 533c004..51a279a 100644 --- a/src/renderer/src/global.d.ts +++ b/src/renderer/src/global.d.ts @@ -130,6 +130,7 @@ declare global { logoutZhiziCloud: () => Promise testZhiziCloudConnection: () => Promise enableZhiziCloud: () => Promise + openZhiziOfficialApp: () => Promise<{ ok: boolean; url: string }> inspectTtsAssets: () => Promise listTtsVoices: () => Promise synthesizeTts: (payload: TtsSynthesisRequest) => Promise diff --git a/src/renderer/src/i18n.ts b/src/renderer/src/i18n.ts index 804cc20..a0c8879 100644 --- a/src/renderer/src/i18n.ts +++ b/src/renderer/src/i18n.ts @@ -220,6 +220,8 @@ const ZH_CN = { settingsAboutSummary: '查看 GoAgent 的开源信息和反馈入口。', settingsAboutDescription: 'GoAgent 是开源、免费的围棋智能体。KataGo 负责事实分析,AI 老师负责把局面讲清楚。', remoteComputeAdvanced: '远程算力与高级引擎设置', + zhiziOfficialApp: '下载智子官方 App', + zhiziOfficialAppHint: '充值、开通或确认 VIP 权益请前往智子官方 App。', technicalDetails: '技术详情', katagoWeights: 'KataGo 官方权重', officialWeights: '官方权重', @@ -630,6 +632,8 @@ const ZH_TW: Record = { settingsAboutSummary: '查看 GoAgent 的開源資訊與意見回饋入口。', settingsAboutDescription: 'GoAgent 是開源、免費的圍棋智能體。KataGo 負責事實分析,AI 老師負責把局面講清楚。', remoteComputeAdvanced: '遠端算力與進階引擎設定', + zhiziOfficialApp: '下載智子官方 App', + zhiziOfficialAppHint: '儲值、開通或確認 VIP 權益請前往智子官方 App。', technicalDetails: '技術詳情', katagoWeights: 'KataGo 官方權重', modelGroupZhizi: '官網推薦 zhizi 模型', @@ -889,6 +893,8 @@ const EN_US: Record = { settingsAboutSummary: 'View GoAgent open-source information and feedback links.', settingsAboutDescription: 'GoAgent is a free, open-source Go agent. KataGo supplies the facts; the AI teacher explains them clearly.', remoteComputeAdvanced: 'Remote compute and advanced engine settings', + zhiziOfficialApp: 'Download the official Zhizi app', + zhiziOfficialAppHint: 'Use the official Zhizi app to recharge, activate, or verify VIP access.', technicalDetails: 'Technical details', katagoWeights: 'Official KataGo model', officialWeights: 'Official models', @@ -1200,7 +1206,7 @@ const JA_JP: Record = { ...EN_US, settingsAiTitle: 'AI 先生', settingsAiSubtitle: 'モデルの接続と選択', settingsAiSummary: '盤面を見てツールを使い、囲碁を説明できるモデルを接続します。', settingsAiSectionTitle: 'AI 先生モデル', settingsAiSectionDescription: 'サービス URL、アクセスキー、マルチモーダルモデルを入力します。', settingsAnalysisTitle: '囲碁解析', settingsAnalysisSubtitle: 'KataGo、モデル、速度', settingsAnalysisSummary: 'ローカルエンジン、公式モデル、速度最適化を管理します。', settingsAnalysisSectionTitle: 'KataGo 解析', settingsAnalysisSectionDescription: '公式モデルとローカル資源を確認し、必要な時だけ速度を最適化します。', settingsVoiceTitle: '音声', settingsVoiceSubtitle: '声と再生', settingsVoiceSummary: '先生の声と再生方法を選びます。', settingsVoiceSectionTitle: '音声解説', settingsVoiceSectionDescription: 'オフラインまたはクラウド音声を選び、声と再生速度を調整します。', - settingsAboutTitle: 'このアプリについて', settingsAboutSubtitle: 'バージョン、オープンソース、サポート', settingsAboutSummary: 'GoAgent のオープンソース情報とフィードバック窓口を確認します。', settingsAboutDescription: 'GoAgent は無料のオープンソース囲碁エージェントです。KataGo が事実を分析し、AI 先生が分かりやすく説明します。', remoteComputeAdvanced: 'リモート計算と高度なエンジン設定', technicalDetails: '技術詳細', + settingsAboutTitle: 'このアプリについて', settingsAboutSubtitle: 'バージョン、オープンソース、サポート', settingsAboutSummary: 'GoAgent のオープンソース情報とフィードバック窓口を確認します。', settingsAboutDescription: 'GoAgent は無料のオープンソース囲碁エージェントです。KataGo が事実を分析し、AI 先生が分かりやすく説明します。', remoteComputeAdvanced: 'リモート計算と高度なエンジン設定', zhiziOfficialApp: '智子公式アプリをダウンロード', zhiziOfficialAppHint: 'チャージ、利用開始、VIP 権限の確認は智子公式アプリで行います。', technicalDetails: '技術詳細', katagoWeights: 'KataGo 公式モデル', applySelectedWeight: '選択したモデルを適用', katagoEngine: 'KataGo エンジン', localCompatibleModel: 'ローカル互換モデル', llmReady: 'LLM 準備完了', llmMissing: 'LLM 未設定', visionLlm: '画像対応 LLM', appStatusReady: 'ワークスペース準備完了', appStatusTask: '処理中:{{busy}}', winrateReady: '勝率グラフ待機中', winrateAnalyzing: '勝率グラフ {{progress}}', modelGroupZhizi: '公式 zhizi 推奨モデル', modelGroupB18: '18b 推奨 / 日常指導', modelGroupB20: '20b 高速解析 / 旧機種向け', modelGroupB28: '28b 精密検討', modelGroupB40: '40b フラッグシップ / 高性能機向け', @@ -1235,7 +1241,7 @@ const KO_KR: Record = { ...EN_US, settingsAiTitle: 'AI 선생님', settingsAiSubtitle: '모델 연결 및 선택', settingsAiSummary: '바둑판을 보고 도구를 사용해 설명할 수 있는 모델을 연결합니다.', settingsAiSectionTitle: 'AI 선생님 모델', settingsAiSectionDescription: '서비스 URL, 접근 키, 멀티모달 모델을 입력하세요.', settingsAnalysisTitle: '바둑 분석', settingsAnalysisSubtitle: 'KataGo, 모델, 속도', settingsAnalysisSummary: '로컬 엔진, 공식 모델, 속도 최적화를 관리합니다.', settingsAnalysisSectionTitle: 'KataGo 분석', settingsAnalysisSectionDescription: '공식 모델과 로컬 리소스를 확인하고 필요할 때 속도를 최적화합니다.', settingsVoiceTitle: '음성', settingsVoiceSubtitle: '목소리와 재생', settingsVoiceSummary: '선생님 목소리와 재생 방식을 선택합니다.', settingsVoiceSectionTitle: '음성 해설', settingsVoiceSectionDescription: '오프라인 또는 클라우드 음성을 선택하고 목소리와 재생 속도를 조절합니다.', - settingsAboutTitle: '정보', settingsAboutSubtitle: '버전, 오픈 소스, 지원', settingsAboutSummary: 'GoAgent 오픈 소스 정보와 피드백 링크를 확인합니다.', settingsAboutDescription: 'GoAgent는 무료 오픈 소스 바둑 에이전트입니다. KataGo가 사실을 분석하고 AI 선생님이 쉽게 설명합니다.', remoteComputeAdvanced: '원격 연산 및 고급 엔진 설정', technicalDetails: '기술 세부 정보', + settingsAboutTitle: '정보', settingsAboutSubtitle: '버전, 오픈 소스, 지원', settingsAboutSummary: 'GoAgent 오픈 소스 정보와 피드백 링크를 확인합니다.', settingsAboutDescription: 'GoAgent는 무료 오픈 소스 바둑 에이전트입니다. KataGo가 사실을 분석하고 AI 선생님이 쉽게 설명합니다.', remoteComputeAdvanced: '원격 연산 및 고급 엔진 설정', zhiziOfficialApp: 'Zhizi 공식 앱 다운로드', zhiziOfficialAppHint: '충전, 활성화 또는 VIP 권한 확인은 Zhizi 공식 앱에서 진행하세요.', technicalDetails: '기술 세부 정보', katagoWeights: 'KataGo 공식 모델', applySelectedWeight: '선택한 모델 적용', katagoEngine: 'KataGo 엔진', localCompatibleModel: '로컬 호환 모델', llmReady: 'LLM 준비됨', llmMissing: 'LLM 미설정', visionLlm: '비전 LLM', appStatusReady: '작업 공간 준비됨', appStatusTask: '처리 중: {{busy}}', winrateReady: '승률 그래프 대기 중', winrateAnalyzing: '승률 그래프 {{progress}}', modelGroupZhizi: '공식 zhizi 추천 모델', modelGroupB18: '18b 추천 / 일상 지도', modelGroupB20: '20b 빠른 분석 / 구형 기기', modelGroupB28: '28b 정밀 복기', modelGroupB40: '40b 플래그십 / 고사양', @@ -1270,7 +1276,7 @@ const TH_TH: Record = { ...EN_US, settingsAiTitle: 'ครู AI', settingsAiSubtitle: 'เชื่อมต่อและเลือกโมเดล', settingsAiSummary: 'เชื่อมต่อโมเดลที่ดูภาพกระดาน ใช้เครื่องมือ และอธิบายหมากล้อมได้', settingsAiSectionTitle: 'โมเดลครู AI', settingsAiSectionDescription: 'กรอก URL บริการ คีย์เข้าถึง และโมเดลมัลติโหมด', settingsAnalysisTitle: 'วิเคราะห์หมากล้อม', settingsAnalysisSubtitle: 'KataGo โมเดล และความเร็ว', settingsAnalysisSummary: 'จัดการเอนจินในเครื่อง โมเดลทางการ และการปรับความเร็ว', settingsAnalysisSectionTitle: 'การวิเคราะห์ KataGo', settingsAnalysisSectionDescription: 'เลือกโมเดลทางการ ตรวจสอบทรัพยากร และปรับความเร็วเมื่อจำเป็น', settingsVoiceTitle: 'เสียง', settingsVoiceSubtitle: 'เสียงพูดและการเล่น', settingsVoiceSummary: 'เลือกเสียงครูและวิธีเล่นคำอธิบาย', settingsVoiceSectionTitle: 'คำอธิบายด้วยเสียง', settingsVoiceSectionDescription: 'เลือกเสียงออฟไลน์หรือคลาวด์ แล้วปรับเสียงและจังหวะการเล่น', - settingsAboutTitle: 'เกี่ยวกับ', settingsAboutSubtitle: 'เวอร์ชัน โอเพนซอร์ส และช่วยเหลือ', settingsAboutSummary: 'ดูข้อมูลโอเพนซอร์สและช่องทางเสนอแนะของ GoAgent', settingsAboutDescription: 'GoAgent เป็นเอเจนต์หมากล้อมโอเพนซอร์สฟรี KataGo วิเคราะห์ข้อเท็จจริง และครู AI อธิบายให้เข้าใจง่าย', remoteComputeAdvanced: 'การคำนวณระยะไกลและการตั้งค่าเอนจินขั้นสูง', technicalDetails: 'รายละเอียดทางเทคนิค', + settingsAboutTitle: 'เกี่ยวกับ', settingsAboutSubtitle: 'เวอร์ชัน โอเพนซอร์ส และช่วยเหลือ', settingsAboutSummary: 'ดูข้อมูลโอเพนซอร์สและช่องทางเสนอแนะของ GoAgent', settingsAboutDescription: 'GoAgent เป็นเอเจนต์หมากล้อมโอเพนซอร์สฟรี KataGo วิเคราะห์ข้อเท็จจริง และครู AI อธิบายให้เข้าใจง่าย', remoteComputeAdvanced: 'การคำนวณระยะไกลและการตั้งค่าเอนจินขั้นสูง', zhiziOfficialApp: 'ดาวน์โหลดแอป Zhizi ทางการ', zhiziOfficialAppHint: 'เติมเงิน เปิดใช้งาน หรือตรวจสอบสิทธิ์ VIP ในแอป Zhizi ทางการ', technicalDetails: 'รายละเอียดทางเทคนิค', katagoWeights: 'โมเดล KataGo ทางการ', applySelectedWeight: 'ใช้โมเดลที่เลือก', katagoEngine: 'เอนจิน KataGo', localCompatibleModel: 'โมเดลที่เข้ากับเครื่องนี้', llmReady: 'LLM พร้อม', llmMissing: 'ยังไม่ได้ตั้งค่า LLM', visionLlm: 'Vision LLM', appStatusReady: 'พื้นที่ทำงานพร้อม', appStatusTask: 'กำลังทำงาน: {{busy}}', winrateReady: 'กราฟโอกาสชนะพร้อมรอ', winrateAnalyzing: 'กราฟโอกาสชนะ {{progress}}', modelGroupZhizi: 'โมเดล zhizi ที่ทางการแนะนำ', modelGroupB18: '18b แนะนำ / สอนประจำวัน', modelGroupB20: '20b วิเคราะห์เร็ว / เครื่องเก่า', modelGroupB28: '28b รีวิวละเอียด', modelGroupB40: '40b เรือธง / เครื่องแรง', @@ -1305,7 +1311,7 @@ const VI_VN: Record = { ...EN_US, settingsAiTitle: 'Giáo viên AI', settingsAiSubtitle: 'Kết nối và chọn model', settingsAiSummary: 'Kết nối model có thể xem bàn cờ, dùng công cụ và giảng cờ vây.', settingsAiSectionTitle: 'Model giáo viên AI', settingsAiSectionDescription: 'Nhập URL dịch vụ, khóa truy cập và model đa phương thức.', settingsAnalysisTitle: 'Phân tích cờ vây', settingsAnalysisSubtitle: 'KataGo, model và tốc độ', settingsAnalysisSummary: 'Quản lý engine cục bộ, model chính thức và tối ưu tốc độ.', settingsAnalysisSectionTitle: 'Phân tích KataGo', settingsAnalysisSectionDescription: 'Chọn model chính thức, kiểm tra tài nguyên và tối ưu tốc độ khi cần.', settingsVoiceTitle: 'Giọng đọc', settingsVoiceSubtitle: 'Âm thanh và phát', settingsVoiceSummary: 'Chọn giọng của giáo viên và cách phát lời giảng.', settingsVoiceSectionTitle: 'Lời giảng bằng giọng đọc', settingsVoiceSectionDescription: 'Chọn giọng offline hoặc cloud rồi điều chỉnh giọng và nhịp phát.', - settingsAboutTitle: 'Giới thiệu', settingsAboutSubtitle: 'Phiên bản, mã nguồn mở và hỗ trợ', settingsAboutSummary: 'Xem thông tin mã nguồn mở và kênh phản hồi của GoAgent.', settingsAboutDescription: 'GoAgent là agent cờ vây mã nguồn mở và miễn phí. KataGo cung cấp dữ kiện; giáo viên AI giải thích dễ hiểu.', remoteComputeAdvanced: 'Tính toán từ xa và cài đặt engine nâng cao', technicalDetails: 'Chi tiết kỹ thuật', + settingsAboutTitle: 'Giới thiệu', settingsAboutSubtitle: 'Phiên bản, mã nguồn mở và hỗ trợ', settingsAboutSummary: 'Xem thông tin mã nguồn mở và kênh phản hồi của GoAgent.', settingsAboutDescription: 'GoAgent là agent cờ vây mã nguồn mở và miễn phí. KataGo cung cấp dữ kiện; giáo viên AI giải thích dễ hiểu.', remoteComputeAdvanced: 'Tính toán từ xa và cài đặt engine nâng cao', zhiziOfficialApp: 'Tải ứng dụng Zhizi chính thức', zhiziOfficialAppHint: 'Nạp tiền, kích hoạt hoặc kiểm tra quyền VIP trong ứng dụng Zhizi chính thức.', technicalDetails: 'Chi tiết kỹ thuật', katagoWeights: 'Model KataGo chính thức', applySelectedWeight: 'Áp dụng model đã chọn', katagoEngine: 'Engine KataGo', localCompatibleModel: 'Model tương thích cục bộ', llmReady: 'LLM sẵn sàng', llmMissing: 'Chưa cấu hình LLM', visionLlm: 'Vision LLM', appStatusReady: 'Không gian làm việc đã sẵn sàng', appStatusTask: 'Đang xử lý: {{busy}}', winrateReady: 'Biểu đồ winrate đang chờ', winrateAnalyzing: 'Biểu đồ winrate {{progress}}', modelGroupZhizi: 'Model zhizi chính thức khuyến nghị', modelGroupB18: '18b khuyến nghị / dạy hằng ngày', modelGroupB20: '20b phân tích nhanh / máy cũ', modelGroupB28: '28b review sâu', modelGroupB40: '40b flagship / máy mạnh', diff --git a/tests/zhizi-cloud-engine-contract.test.mjs b/tests/zhizi-cloud-engine-contract.test.mjs index dc54543..efbf813 100644 --- a/tests/zhizi-cloud-engine-contract.test.mjs +++ b/tests/zhizi-cloud-engine-contract.test.mjs @@ -110,6 +110,7 @@ test('Zhizi cloud engine uses real GTP kata-analyze output instead of iKataGo an assert.match(renderer, /sendZhiziCloudLoginCode/) assert.match(renderer, /loginZhiziCloudCode/) assert.match(renderer, /logoutZhiziCloud/) + assert.match(renderer, /openZhiziOfficialApp/) assert.match(renderer, /退出智子云登录/) assert.match(renderer, /刷新远程会话/) assert.match(renderer, /zhiziUsername/) @@ -122,6 +123,7 @@ test('Zhizi cloud engine uses real GTP kata-analyze output instead of iKataGo an assert.match(preload, /zhizi:logout/) assert.match(preload, /zhizi:test-connection/) assert.match(preload, /zhizi:enable/) + assert.match(preload, /zhizi:open-official-app/) assert.match(main, /hasZhiziToken/) assert.match(main, /loginZhiziCloudByPassword/) assert.match(main, /sendZhiziCloudLoginCode/) @@ -130,6 +132,7 @@ test('Zhizi cloud engine uses real GTP kata-analyze output instead of iKataGo an assert.match(main, /ipcMain\.handle\('zhizi:logout'/) assert.match(main, /ipcMain\.handle\('zhizi:test-connection'/) assert.match(main, /ipcMain\.handle\('zhizi:enable'/) + assert.match(main, /ipcMain\.handle\('zhizi:open-official-app'/) assert.match(main, /probeZhiziCloudConnection/) assert.match(main, /resetZhiziPersistentSession/) assert.match(probe, /getZhiziCloudAccountStatus/) @@ -147,6 +150,7 @@ test('Zhizi cloud engine uses real GTP kata-analyze output instead of iKataGo an assert.match(i18n, /zhiziCloudLoginRequired/) assert.match(i18n, /Zhizi Cloud Login Required/) assert.match(i18n, /zhiziCloudDirectReady/) + assert.match(i18n, /zhiziOfficialApp/) assert.match(auth, /https:\/\/www\.zhizigo\.com\/api\/cluster\/account\/login/) assert.doesNotMatch(auth, /connectAccount\/login/) assert.match(auth, /connectAccount\/fetch/) @@ -154,6 +158,7 @@ test('Zhizi cloud engine uses real GTP kata-analyze output instead of iKataGo an assert.match(auth, /这是智子云连接账号,不是可直接登录的主账号/) assert.match(auth, /https:\/\/www\.zhizigo\.com\/api\/cluster\/account\/send-code/) assert.match(auth, /https:\/\/www\.zhizigo\.com\/api\/cluster\/account\/fast-login/) + assert.match(auth, /https:\/\/zhizigo\.com\/download/) assert.match(auth, /type: 'fast_login'/) assert.match(auth, /verificationCode/) assert.match(auth, /findToken/)