mirror of
https://github.com/claude-code-best/claude-code.git
synced 2026-06-18 06:15:51 +00:00
* style(B1-1): 格式化 ink/buddy/cli/context/screens/tasks/services/keybindings/state (43 files) 纯格式化:移除分号、React Compiler import、import 多行展开。 修复了 Box.tsx 和 ScrollBox.tsx 中无效的 global.d.ts import。 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * style(B1-2): 格式化 commands (79 files) 纯格式化:移除分号、React Compiler import、import 多行展开。 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * style(B1-3): 格式化 components/messages,permissions,mcp,sandbox,shell (104 files) 纯格式化:移除分号、React Compiler import、import 多行展开。 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * style(B1-4): 格式化 components/PromptInput,FeedbackSurvey,tasks,agents,skills,design-system,wizard (73 files) 纯格式化:移除分号、React Compiler import、import 多行展开。 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * style(B1-5): 格式化 components其余 + hooks + tools (232 files) 纯格式化:移除分号、React Compiler import、import 多行展开。 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * style(B1-6): 格式化 main/entrypoints/utils/moreright (21 files) 纯格式化:移除分号、React Compiler import、import 多行展开。 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * docs: 更新 README,新增 Run.ps1/TODO.md,删除 V6.md - README.md: 大幅重写,更详细版本历史和配置示例 - Run.ps1: 新增 Windows 启动脚本 - TODO.md: 新增包完成清单 - V6.md: 删除(架构重构规划已不适用) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix: 修复以前的问题 * fix: 修复 login 面板的问题 --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
54 lines
1.9 KiB
TypeScript
54 lines
1.9 KiB
TypeScript
import type { Notification } from 'src/context/notifications.js'
|
|
import { type GlobalConfig, getGlobalConfig } from 'src/utils/config.js'
|
|
import { useStartupNotification } from './useStartupNotification.js'
|
|
|
|
// Shows a one-time notification right after a model migration writes its
|
|
// timestamp to config. Each entry reads its own timestamp field(s) and emits
|
|
// a notification if the write happened within the last 3s (i.e. this launch).
|
|
// Future model migrations: add an entry to MIGRATIONS below.
|
|
const MIGRATIONS: ((c: GlobalConfig) => Notification | undefined)[] = [
|
|
// Sonnet 4.5 → 4.6 (pro/max/team premium)
|
|
c => {
|
|
if (!recent(c.sonnet45To46MigrationTimestamp)) return
|
|
return {
|
|
key: 'sonnet-46-update',
|
|
text: 'Model updated to Sonnet 4.6',
|
|
color: 'suggestion',
|
|
priority: 'high',
|
|
timeoutMs: 3000,
|
|
}
|
|
},
|
|
// Opus Pro → default, or pinned 4.0/4.1 → opus alias. Both land on the
|
|
// current Opus default (4.6 for 1P).
|
|
c => {
|
|
const isLegacyRemap = Boolean(c.legacyOpusMigrationTimestamp)
|
|
const ts = c.legacyOpusMigrationTimestamp ?? c.opusProMigrationTimestamp
|
|
if (!recent(ts)) return
|
|
return {
|
|
key: 'opus-pro-update',
|
|
text: isLegacyRemap
|
|
? 'Model updated to Opus 4.6 · Set CLAUDE_CODE_DISABLE_LEGACY_MODEL_REMAP=1 to opt out'
|
|
: 'Model updated to Opus 4.6',
|
|
color: 'suggestion',
|
|
priority: 'high',
|
|
timeoutMs: isLegacyRemap ? 8000 : 3000,
|
|
}
|
|
},
|
|
]
|
|
|
|
export function useModelMigrationNotifications(): void {
|
|
useStartupNotification(() => {
|
|
const config = getGlobalConfig()
|
|
const notifs: Notification[] = []
|
|
for (const migration of MIGRATIONS) {
|
|
const notif = migration(config)
|
|
if (notif) notifs.push(notif)
|
|
}
|
|
return notifs.length > 0 ? notifs : null
|
|
})
|
|
}
|
|
|
|
function recent(ts: number | undefined): boolean {
|
|
return ts !== undefined && Date.now() - ts < 3000
|
|
}
|