Compare commits

..

No commits in common. "main" and "v2.6.12" have entirely different histories.

2 changed files with 10 additions and 32 deletions

View File

@ -1,6 +1,6 @@
{
"name": "claude-code-best",
"version": "2.6.13",
"version": "2.6.12",
"description": "Reverse-engineered Anthropic Claude Code CLI — interactive AI coding assistant in the terminal",
"type": "module",
"author": "claude-code-best <claude-code-best@proton.me>",

View File

@ -1036,16 +1036,6 @@ export function stripExcessMediaItems(
}) as (UserMessage | AssistantMessage)[]
}
/**
* Module-level cache of deferred-tool lines that have already been announced
* via <available-deferred-tools>. Because the injection is ephemeral (appended
* to a local `messagesForAPI` that is never persisted back into the caller's
* message history), we cannot scan history to detect prior injections the
* injected message is gone after each API call. Instead we keep this Set so we
* only re-inject when new deferred tools appear (e.g. MCP server connects).
*/
const lastAnnouncedDeferredTools = new Set<string>()
async function* queryModel(
messages: Message[],
systemPrompt: SystemPrompt,
@ -1395,25 +1385,14 @@ async function* queryModel(
// via persisted deferred_tools_delta attachments instead of this
// ephemeral prepend (which busts cache whenever the pool changes).
if (useSearchExtraTools && !isDeferredToolsDeltaEnabled()) {
// Diff current deferred tools against what's already been announced in
// prior <available-deferred-tools> injections. Only re-inject when new
// tools appear (e.g. MCP server connects mid-session).
const deferredToolList = tools
.filter(t => deferredToolNames.has(t.name))
.map(formatDeferredToolLine)
.sort()
.join('\n')
if (deferredToolList) {
const currentTools = new Set(deferredToolList.split('\n'))
const hasNewTools = [...currentTools].some(
t => !lastAnnouncedDeferredTools.has(t),
)
if (hasNewTools) {
lastAnnouncedDeferredTools.clear()
for (const t of currentTools) lastAnnouncedDeferredTools.add(t)
// Append to the end of the messages array (not prepend) so it
// never抢占 <project-instructions> (CLAUDE.md) at the front.
messagesForAPI = [
...messagesForAPI,
createUserMessage({
@ -1423,7 +1402,6 @@ async function* queryModel(
]
}
}
}
// Chrome tool-search instructions: when the delta attachment is enabled,
// these are carried as a client-side block in mcp_instructions_delta