mirror of
https://github.com/claude-code-best/claude-code.git
synced 2026-06-22 08:15:53 +00:00
fix: 替换 extractMemories 的 require() 为动态 import() 修复 Vite 构建崩溃
Vite/Rollup 构建时将 require() 通过 __toCommonJS() 包装 ESM 导出,
导致命名导出被包裹在 { default: namespace } 中,访问
extractMemoriesModule.initExtractMemories 为 undefined 触发 React
error boundary 崩溃。改用标准 ESM 动态 import() 绕过 CJS interop。
Co-Authored-By: glm-5-turbo <zai-org@claude-code-best.win>
This commit is contained in:
@@ -377,9 +377,6 @@ const cronJitterConfigModule =
|
|||||||
require('../utils/cronJitterConfig.js') as typeof import('../utils/cronJitterConfig.js')
|
require('../utils/cronJitterConfig.js') as typeof import('../utils/cronJitterConfig.js')
|
||||||
const cronGate =
|
const cronGate =
|
||||||
require('@claude-code-best/builtin-tools/tools/ScheduleCronTool/prompt.js') as typeof import('@claude-code-best/builtin-tools/tools/ScheduleCronTool/prompt.js')
|
require('@claude-code-best/builtin-tools/tools/ScheduleCronTool/prompt.js') as typeof import('@claude-code-best/builtin-tools/tools/ScheduleCronTool/prompt.js')
|
||||||
const extractMemoriesModule = feature('EXTRACT_MEMORIES')
|
|
||||||
? (require('../services/extractMemories/extractMemories.js') as typeof import('../services/extractMemories/extractMemories.js'))
|
|
||||||
: null
|
|
||||||
/* eslint-enable @typescript-eslint/no-require-imports */
|
/* eslint-enable @typescript-eslint/no-require-imports */
|
||||||
|
|
||||||
const SHUTDOWN_TEAM_PROMPT = `<system-reminder>
|
const SHUTDOWN_TEAM_PROMPT = `<system-reminder>
|
||||||
@@ -985,7 +982,14 @@ export async function runHeadless(
|
|||||||
// the forked agent mid-flight. Gated by isExtractModeActive so the
|
// the forked agent mid-flight. Gated by isExtractModeActive so the
|
||||||
// tengu_slate_thimble flag controls non-interactive extraction end-to-end.
|
// tengu_slate_thimble flag controls non-interactive extraction end-to-end.
|
||||||
if (feature('EXTRACT_MEMORIES') && isExtractModeActive()) {
|
if (feature('EXTRACT_MEMORIES') && isExtractModeActive()) {
|
||||||
await extractMemoriesModule!.drainPendingExtraction()
|
try {
|
||||||
|
const { drainPendingExtraction } = await import(
|
||||||
|
'../services/extractMemories/extractMemories.js'
|
||||||
|
)
|
||||||
|
await drainPendingExtraction()
|
||||||
|
} catch {
|
||||||
|
// Module load failure — non-critical at shutdown
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
gracefulShutdownSync(
|
gracefulShutdownSync(
|
||||||
|
|||||||
@@ -39,9 +39,6 @@ import { getTaskListId, listTasks } from '../utils/tasks.js'
|
|||||||
import { getAgentName, getTeamName, isTeammate } from '../utils/teammate.js'
|
import { getAgentName, getTeamName, isTeammate } from '../utils/teammate.js'
|
||||||
|
|
||||||
/* eslint-disable @typescript-eslint/no-require-imports */
|
/* eslint-disable @typescript-eslint/no-require-imports */
|
||||||
const extractMemoriesModule = feature('EXTRACT_MEMORIES')
|
|
||||||
? (require('../services/extractMemories/extractMemories.js') as typeof import('../services/extractMemories/extractMemories.js'))
|
|
||||||
: null
|
|
||||||
const jobClassifierModule = feature('TEMPLATES')
|
const jobClassifierModule = feature('TEMPLATES')
|
||||||
? (require('../jobs/classifier.js') as typeof import('../jobs/classifier.js'))
|
? (require('../jobs/classifier.js') as typeof import('../jobs/classifier.js'))
|
||||||
: null
|
: null
|
||||||
@@ -154,12 +151,16 @@ export async function* handleStopHooks(
|
|||||||
// Fire-and-forget in both interactive and non-interactive. For -p/SDK,
|
// Fire-and-forget in both interactive and non-interactive. For -p/SDK,
|
||||||
// print.ts drains the in-flight promise after flushing the response
|
// print.ts drains the in-flight promise after flushing the response
|
||||||
// but before gracefulShutdownSync (see drainPendingExtraction).
|
// but before gracefulShutdownSync (see drainPendingExtraction).
|
||||||
void extractMemoriesModule!.executeExtractMemories(
|
void import('../services/extractMemories/extractMemories.js')
|
||||||
stopHookContext,
|
.then(({ executeExtractMemories }) =>
|
||||||
toolUseContext.appendSystemMessage as
|
executeExtractMemories(
|
||||||
| ((msg: import('../types/message.js').SystemMessage) => void)
|
stopHookContext,
|
||||||
| undefined,
|
toolUseContext.appendSystemMessage as
|
||||||
)
|
| ((msg: import('../types/message.js').SystemMessage) => void)
|
||||||
|
| undefined,
|
||||||
|
),
|
||||||
|
)
|
||||||
|
.catch(() => {})
|
||||||
}
|
}
|
||||||
if (!toolUseContext.agentId && !poorMode) {
|
if (!toolUseContext.agentId && !poorMode) {
|
||||||
void executeAutoDream(stopHookContext, toolUseContext.appendSystemMessage)
|
void executeAutoDream(stopHookContext, toolUseContext.appendSystemMessage)
|
||||||
|
|||||||
@@ -4,9 +4,6 @@ import { initMagicDocs } from '../services/MagicDocs/magicDocs.js'
|
|||||||
import { initSkillImprovement } from './hooks/skillImprovement.js'
|
import { initSkillImprovement } from './hooks/skillImprovement.js'
|
||||||
|
|
||||||
/* eslint-disable @typescript-eslint/no-require-imports */
|
/* eslint-disable @typescript-eslint/no-require-imports */
|
||||||
const extractMemoriesModule = feature('EXTRACT_MEMORIES')
|
|
||||||
? (require('../services/extractMemories/extractMemories.js') as typeof import('../services/extractMemories/extractMemories.js'))
|
|
||||||
: null
|
|
||||||
const registerProtocolModule = feature('LODESTONE')
|
const registerProtocolModule = feature('LODESTONE')
|
||||||
? (require('./deepLink/registerProtocol.js') as typeof import('./deepLink/registerProtocol.js'))
|
? (require('./deepLink/registerProtocol.js') as typeof import('./deepLink/registerProtocol.js'))
|
||||||
: null
|
: null
|
||||||
@@ -32,7 +29,13 @@ export function startBackgroundHousekeeping(): void {
|
|||||||
void initMagicDocs()
|
void initMagicDocs()
|
||||||
void initSkillImprovement()
|
void initSkillImprovement()
|
||||||
if (feature('EXTRACT_MEMORIES')) {
|
if (feature('EXTRACT_MEMORIES')) {
|
||||||
extractMemoriesModule!.initExtractMemories()
|
void import('../services/extractMemories/extractMemories.js')
|
||||||
|
.then(({ initExtractMemories }) => {
|
||||||
|
initExtractMemories()
|
||||||
|
})
|
||||||
|
.catch(() => {
|
||||||
|
// Module load failure — non-critical, memory extraction just won't run
|
||||||
|
})
|
||||||
}
|
}
|
||||||
initAutoDream()
|
initAutoDream()
|
||||||
void autoUpdateMarketplacesAndPluginsInBackground()
|
void autoUpdateMarketplacesAndPluginsInBackground()
|
||||||
|
|||||||
Reference in New Issue
Block a user