-
-
Notifications
You must be signed in to change notification settings - Fork 4.6k
feat(explorer): v0 of copy chat button #104936
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
Conversation
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #104936 +/- ##
===========================================
- Coverage 80.52% 80.41% -0.11%
===========================================
Files 9398 9393 -5
Lines 405708 403360 -2348
Branches 25923 25919 -4
===========================================
- Hits 326710 324378 -2332
+ Misses 78558 78542 -16
Partials 440 440 |
|
sometimes people might want to copy their chat and paste into their local AI agent as well |
|
flashing fixed by removing the loading state, callback happens way too fast to need it |
|
I see some urls on tool blocks now have an |
@roaga is this on the copy to clipboard output, or the actual block data / when clicking links in the chat? |
roaga
left a comment
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.
what's the sample.json for?
ok nvm i cross-checked with prod and seems nothing new |
shoot sorry i accid commited |
a7576b6 to
36298fc
Compare
| .filter(item => item !== null) | ||
| .sort((a, b) => a.toolCallIndex - b.toolCallIndex); | ||
|
|
||
| // Create mapping from tool call index to sorted link index | ||
| const toolCallToLinkMap = new Map<number, number>(); | ||
| mappedLinks.forEach((item, sortedIndex) => { | ||
| toolCallToLinkMap.set(item.toolCallIndex, sortedIndex); | ||
| }); |
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.
Bug: The getValidToolLinks function filters out null values without a proper TypeScript type guard, leading to a compilation error under strictNullChecks when accessing properties on the filtered array.
Severity: HIGH | Confidence: High
🔍 Detailed Analysis
In the getValidToolLinks function, an array is created by a .map operation that can return objects or null. A subsequent .filter(item => item !== null) is used to remove the null values. However, this is not a proper TypeScript type guard. Because the project's TypeScript configuration has strictNullChecks enabled, the compiler still considers the elements in the filtered mappedLinks array to be potentially null. This leads to a compilation error when properties like item.toolCallIndex are accessed in the following .sort() and forEach() calls, as they could be accessed on a null value.
💡 Suggested Fix
Update the .filter() call to use a TypeScript type guard predicate. This will correctly inform the compiler that all null values have been removed from the array. For example: .filter((item): item is NonNullable<typeof item> => item !== null).
🤖 Prompt for AI Agent
Review the code at the location below. A potential bug has been identified by an AI
agent.
Verify if this is a real issue. If it is, propose a fix; if not, explain why it's not
valid.
Location: static/app/views/seerExplorer/utils.tsx#L737-L744
Potential issue: In the `getValidToolLinks` function, an array is created by a `.map`
operation that can return objects or `null`. A subsequent `.filter(item => item !==
null)` is used to remove the `null` values. However, this is not a proper TypeScript
type guard. Because the project's TypeScript configuration has `strictNullChecks`
enabled, the compiler still considers the elements in the filtered `mappedLinks` array
to be potentially `null`. This leads to a compilation error when properties like
`item.toolCallIndex` are accessed in the following `.sort()` and `forEach()` calls, as
they could be accessed on a `null` value.
Did we get this right? 👍 / 👎 to inform future reviews.
Reference ID: 7557869
Adds a to copy the conversation (messages, tool calls, tool links + status (error, empty, success)) to clipboard as markdown text
