-
Notifications
You must be signed in to change notification settings - Fork 54
Daily branch 2026 02 10 #232
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
- Added optional properties `fileCount` and `fileImageCount` to the `ChatWideEvent` and `ChatContext` interfaces to track the number of file attachments and image files in chats. - Implemented `countFileAttachments` function to calculate total file attachments and image counts from chat messages. - Updated `createChatHandler` to include file counts in the chat logger, improving logging detail for chat events. This update enhances the chat logging capabilities by providing more granular information about file attachments.
- Changed fallback model references in `providers.ts` to use more descriptive names: `fallback-agent-model` and `fallback-ask-model`, ensuring clarity in model usage. - Updated the `createChatHandler` function in `chat-handler.ts` to dynamically select the appropriate fallback model based on the current mode, enhancing flexibility in model selection. These changes improve the organization and clarity of AI model references within the application.
Add a sequence-level first pass to stripTerminalEscapes that removes complete OSC sequences (633/3008) without destroying real output text on the same line. The line-level regexes remain as a fallback for unterminated sequences split across PTY chunks. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
📝 WalkthroughWalkthroughThe PR modifies AI provider fallback models, adds file attachment counting throughout the chat logging infrastructure, refines terminal output escape sequence handling, removes read-only restrictions from the sandbox selector component, and updates the sidebar terminal display to show session identifiers instead of icons. Changes
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~22 minutes Possibly related PRs
Poem
🚥 Pre-merge checks | ✅ 2 | ❌ 1❌ Failed checks (1 inconclusive)
✅ Passed checks (2 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing touches
🧪 Generate unit tests (beta)
Comment |
…ment - Implemented the 'view' action in the shell tool to allow users to capture and view the full scrollback of a shell session via tmux. - Updated the `createLocalHandlers` function to handle the new 'view' action. - Enhanced the `LocalPtySessionManager` to support lazy session creation and management, ensuring sessions can be accessed even if they are not currently tracked. - Improved output handling by stripping unnecessary sentinel noise from captured session content. These changes enhance the functionality of the shell tool, providing users with better access to session history and improving overall session management.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 1
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
lib/ai/tools/utils/local-pty-session-manager.ts (1)
591-640:⚠️ Potential issue | 🟠 MajorHandle tmux failures in
sendToSessionto avoid false “success”.
tmuxRunreturns an exit code, but the current code always returns{ success: true }. With the new lazy session registration, a missing tmux session will now silently report success and drop input. CheckexitCodeand propagate an error.🛠️ Suggested fix (check exitCode)
- await this.tmuxRun(sandbox, `tmux send-keys -t ${sn} ${input}`, { - displayName, - }); - return { success: true }; + const result = await this.tmuxRun(sandbox, `tmux send-keys -t ${sn} ${input}`, { + displayName, + }); + if (result.exitCode !== 0) { + return { success: false, error: result.stderr || result.stdout || "tmux send-keys failed" }; + } + return { success: true }; @@ - await this.tmuxRun( + const result = await this.tmuxRun( sandbox, `printf '%s' '${base64Input}' | base64 -d | tmux load-buffer -b hai_input - && ` + `tmux paste-buffer -t ${sn} -b hai_input -d` + (needsEnter ? ` && tmux send-keys -t ${sn} Enter` : ""), { displayName }, ); + if (result.exitCode !== 0) { + return { success: false, error: result.stderr || result.stdout || "tmux paste-buffer failed" }; + } return { success: true };
🤖 Fix all issues with AI agents
In `@lib/ai/tools/utils/pty-output.ts`:
- Around line 11-23: The regex literal OSC_COMPLETE_RE contains raw control
characters and triggers Biome's noControlCharactersInRegex lint rule; either
replace the literal with a string-based RegExp (e.g. new
RegExp("\\x1b\\][^\\x07\\x1b\\x9c]*(?:\\x07|\\x1b\\\\|\\x9c)", "g")) or add a
localized lint suppression comment (with a short justification) immediately
above the OSC_COMPLETE_RE declaration to silence the rule; update the
OSC_COMPLETE_RE definition accordingly and ensure the rest of the file still
uses OSC_COMPLETE_RE unchanged.
Remove readOnly and disabled restrictions from SandboxSelector so users can change their execution environment mid-chat, not just on new chats. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Updated the ComputerSidebar component to conditionally display session information or a terminal icon based on the presence of session or PID data. This improves user feedback by providing context about the current terminal state. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 1
🤖 Fix all issues with AI agents
In `@app/components/ChatInput.tsx`:
- Around line 397-403: The SandboxSelector is currently editable during
streaming (see chatMode, SandboxSelector, sandboxPreference,
setSandboxPreference) which can confuse users if the active run doesn't switch
live; modify the component to either disable the selector while a run is
streaming (e.g., check an isStreaming/isRunActive flag) or keep it enabled but
show a clear “applies to next run” label/tooltip and prevent
setSandboxPreference from affecting the active run state until the current
stream finishes. Update the click/onChange handling in the ChatInput where
SandboxSelector is used to guard changes based on the streaming flag and ensure
any UI label or disabled state is rendered when streaming.
…n management" This reverts commit 76152df.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 1
🤖 Fix all issues with AI agents
In `@app/components/ComputerSidebar.tsx`:
- Around line 236-246: The header can render a blank when sidebarContent.session
is an empty string because the condition uses (sidebarContent.session ||
sidebarContent.pid) but the displayed value uses the nullish coalescing operator
(sidebarContent.session ?? `PID ${sidebarContent.pid}`); change the rendered
value to use the same truthy fallback logic (e.g., render sidebarContent.session
|| `PID ${sidebarContent.pid}`) so an empty string falls back to the PID; locate
this in the isTerminal branch that currently renders either the truncated div or
the Terminal icon.
Summary by CodeRabbit
New Features
Bug Fixes
Refactor