Skip to content

[WIP] Fix pydantic parsing bug for usage attribute error#126

Closed
Codex wants to merge 2 commits into
mainfrom
codex/bugfix-usage-pydantic-parsing
Closed

[WIP] Fix pydantic parsing bug for usage attribute error#126
Codex wants to merge 2 commits into
mainfrom
codex/bugfix-usage-pydantic-parsing

Conversation

@Codex
Copy link
Copy Markdown

@Codex Codex AI commented May 28, 2026

Thanks for asking me to work on this. I will get started on it and keep this PR's description up to date as I form a plan and make progress.


This section details on the original issue you should resolve

<issue_title>[Bug]: Usage pydantic parsing bug (nonblocking)</issue_title>
<issue_description>### Pre-flight Checklist

  • I searched existing issues and did not find a duplicate.
  • I read the README and relevant docs first.
  • I removed sensitive information (API keys, personal data) from logs.

Reproduction Steps

AttributeError: 'dict' object has no attribute 'usage'
LiteLLM.LoggingError: [Non-Blocking] Exception occurred while success logging 'dict' object has no attribute 'usage'
Traceback (most recent call last):
File "litellm\litellm_core_utils\litellm_logging.py", line 2042, in success_handler
complete_streaming_response = self._get_assembled_streaming_response(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "litellm\litellm_core_utils\litellm_logging.py", line 3398, in _get_assembled_streaming_response
if isinstance(result.response.usage, ResponseAPIUsage):
^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'dict' object has no attribute 'usage'
LiteLLM.LoggingError: [Non-Blocking] Exception occurred while success logging 'dict' object has no attribute 'usage'
Traceback (most recent call last):
File "litellm\litellm_core_utils\litellm_logging.py", line 2042, in success_handler
complete_streaming_response = self._get_assembled_streaming_response(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "litellm\litellm_core_utils\litellm_logging.py", line 3398, in _get_assembled_streaming_response
if isinstance(result.response.usage, ResponseAPIUsage):
^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'dict' object has no attribute 'usage'
LiteLLM.LoggingError: [Non-Blocking] Exception occurred while success logging 'dict' object has no attribute 'usage'
Traceback (most recent call last):
File "litellm\litellm_core_utils\litellm_logging.py", line 2042, in success_handler
complete_streaming_response = self._get_assembled_streaming_response(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "litellm\litellm_core_utils\litellm_logging.py", line 3398, in _get_assembled_streaming_response
if isinstance(result.response.usage, ResponseAPIUsage):
^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'dict' object has no attribute 'usage'

Expected Behavior

No Error

Actual Behavior

Error Shown

Version

latest

Python Version

Operating System

Windows11

Model Used

chatgpt/gpt-5.4

Area

area:llm

Severity

severity:low

Priority

priority:low

Log Output

pydantic\main.py:464: UserWarning: Pydantic serializer warnings:
  PydanticSerializationUnexpectedValue(Expected `ResponsesAPIResponse` - serialized value may not be as expected [field_name='response', input_value={'id': 'resp_bGl0ZWxsbTpj...': None, 'metadata': {}},
input_type=dict])
LiteLLM.LoggingError: [Non-Blocking] Exception occurred while success logging 'dict' object has no attribute 'usage'
Traceback (most recent call last):
  File "litellm\litellm_core_utils\litellm_logging.py", line 2042, in success_handler
    complete_streaming_response = self._get_assembled_streaming_response(
                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "litellm\litellm_core_utils\litellm_logging.py", line 3398, in _get_assembled_streaming_response
    if isinstance(result.response.usage, ResponseAPIUsage):
                  ^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'dict' object has no attribute 'usage'
LiteLLM.LoggingError: [Non-Blocking] Exception occurred while success logging 'dict' object has no attribute 'usage'
Traceback (most recent call last):
  File "litellm\litellm_core_utils\litellm_logging.py", line 2042, in success_handler
    complete_streaming_response = self._get_assembled_streaming_response(
                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "litellm\litellm_core_utils\litellm_logging.py", line 3398, in _get_assembled_streaming_response
    if isinstance(result.response.usage, ResponseAPIUsage):
                  ^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'dict' object has no attribute 'usage'
LiteLLM.LoggingError: [Non-Blocking] Exception occurred while success logging 'dict' object has no attribute 'usage'
Traceback (most recent call last):
  File "litellm\litellm_core_utils\litellm_logging.py", line 2042, in success_handler
    complete_streaming_response = self._get_assembled_streaming_response(
                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "litellm\litellm_core_utils\litellm_logging.py", line 3398, in _get_assembled_streaming_response
    if isinstance(result.response.usage, ResponseAPIUsage):
                  ^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'dict' object has no attribute 'usage'
LiteLLM.LoggingError: [Non-Blocking] Exception occurred while success logging 'dict' object has no attribute 'usage'
Traceback (most recent call last):
  File "litellm\litellm_core_utils\litellm_logging.py", line 2042, in success_handler
    complete_streaming_response = self._get_assembled_streaming_response(
                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "litellm\litellm_core_utils\litellm_logging.py", line 3398, in _get_assembled_streaming_response
    if isinstance(result.response.usage, ResponseAPIUsage):
                  ^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'dict' object has no attribute 'usage'
LiteLLM.LoggingError: [Non-Blocking] Exception occurred while success logging 'dict' object has no attribute 'usage'
Traceback (most recent call last):
  File "litellm\litellm_core_utils\litellm_logging.py", line 2042, in success_handler
    complete_streaming_response = self._get_assembled_streaming_response(
                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "litellm\litellm_core_utils\litellm_logging.py", line 3398, in _get_assembled_streaming_response
    if isinstance(result.response.usage, ResponseAPIUsage):
                  ^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'dict' object has no attribute 'usage'
LiteLLM.LoggingError: [Non-Blocking] Exception occurred while success logging 'dict' object has no attribute 'usage'
Traceback (most recent call last):
  File "litellm\litellm_core_utils\litellm_logging.py", line 2042, in success_handler
    complete_streaming_response = self._get_assembled_streaming_response(
                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "litellm\litellm_core_utils\litellm_logging.py", line 3398, in _get_assembled_streaming_response
    if isinstance(result.response.usage, ResponseAPIUsage):
                  ^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'dict' object has no attribute 'usage'
LiteLLM.LoggingError: [Non-Blocking] Exception occurred while success logging 'dict' object has no attribute 'usage'
Traceback (most recent call last):
  File "litellm\litellm_core_utils\litellm_logging.py", line 2042, in success_handler
    complete_streaming_response = self._get_assembled_streaming_response(
                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "litellm\litellm_core_utils\litellm_logging.py", line 3398, in _get_assembled_streaming_response
    if isinstance(result.response.usage, ResponseAPIUsage):
                  ^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'dict' object has no attribute 'usage'
LiteLLM.LoggingError: [Non-Blocking] Exception occurred while success logging 'dict' object has no attribute 'usage'
Traceback (most recent call last):
  File "litellm\litellm_core_utils\litellm_logging.py", line 2042, in success_handler
    complete_streaming_response = self._get_assembled_streaming_response(
                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "litellm\litellm_core_utils\litellm_logging.py", line 3398, in _get_assembled_streaming_response
    if isinstance(result.response.usage, ResponseAPIUsage):
                  ^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'dict' object has no attribute 'usage'
LiteLLM.LoggingError: [Non-Blocking] Exception occurred while success logging 'dict' object has no attribute 'usage'
Traceback (most recent call last):
  File "litellm\litellm_core_utils\litellm_logging.py", line 2042, in success_handler
    complete_streaming_response = self._get_assembled_streaming_response(
                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "litellm\litellm_core_utils\litellm_logging.py", line 3398, in _get_assembled_streaming_response
    if isinstance(result.response.usage, ResponseAPIUsage):
                  ^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'dict' object has no attribute 'usage'
LiteLLM.LoggingError: [Non-Blocking] Exception occurred while success logging 'dict' object has no attribute 'usage'
Traceback (most recent call last):
  File "litellm\litellm_core_utils\litellm_logging.py", line 2042, in success_handler
    complete_streaming_response = self._get_assembled_streaming_response(
                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "litellm\litellm_core_utils\litellm_logging.py", line 3398, in _get_assembled_streaming_response
    if isinstance(result.response.usage, ResponseAPIUsage):
                  ^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'dict' object has no attribute 'usage'
LiteLLM.LoggingError: [Non-Blocking] Exception occurred while success logging 'dict' object has no attribute 'usage'
Traceback (most recent call last):
  File "litellm\litellm_core_utils\litellm_logging.py", line 2042, in success_handler
    complete_streaming_response = self._get_assembled_streaming_response(
                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "litellm\litellm_core_utils\litellm_logging.py", line 3398, in _get_assembled_streaming_response
    if isinstance(result.response.usage, ResponseAPIUsage):
                  ^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'dict' object has no attribute 'usage'
LiteLLM.LoggingError: [Non-Blocking] Exception occurred while success logging 'dict' object has no attribute 'usage'
Traceback (most recent call last):
  File "litellm\litellm_core_utils\litellm_logging.py", line 2042, in success_handler
    complete_streaming_response = self._get_assembled_streaming_response(
                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "litellm\litellm_core_utils\litellm_logging.py", line 3398, in _get_assembled_streaming_response
    if isinstance(result.response.usage, ResponseAPIUsage):
                  ^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'dict' object has no attribute 'usage'
LiteLLM.LoggingError: [Non-Blocking] Exception occurred while success logging 'dict' object has no attribute 'usage'
Traceback (most recent call last):
  File "litellm\litellm_core_utils\litellm_logging.py", line 2042, in success_handler
    complete_streaming_response = self._get_assembled_streaming_response(
                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "litellm\litellm_core_utils\litellm_logging.py", line 3398, in _get_assembled_streaming_response
    if isinstance(result.response.usage, ResponseAPIUsage):
                  ^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'dict' object has no attribute 'usage'
LiteLLM.LoggingError: [Non-Blocking] Exception occurred while success logging 'dict' object has no attribute 'usage'
Traceback (most recent call last):
  File "litellm\litellm_core_utils\litellm_logging.py", line 2042, in success_handler
    complete_streaming_response = self._get_assembled_streaming_response(
                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "litellm\litellm_core_utils\litellm_logging.py", line 3398, in _get_assembled_streaming_response
    if isinstance(result.response.usage, ResponseAPIUsage):
                  ^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'dict' object has no attribute 'usage'
LiteLLM.LoggingError: [Non-Blocking] Exception occurred while success logging 'dict' object has no attribute 'usage'
Traceback (most recent call last):
  File "litellm\litellm_core_utils\litellm_logging.py", line 2042, in success_handler
    complete_streaming_response = self._get_assembled_streaming_response(
                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "litellm\litellm_core_utils\litellm_logging.py", line 3398, in _get_assembled_streaming_response
    if isinstance(result.response.usage, ResponseAPIUsage):
                  ^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'dict' object has no attribute 'usage'
LiteLLM.LoggingError: [Non-Blocking] Exception occurred while success logging 'dict' object has no attribute 'usage'
Traceback (most recent call last):
  File "litellm\litellm_core_utils\litellm_logging.py", line 2042, in success_handler
    complete_streaming_response = self._get_assembled_streaming_response(
                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "litellm\litellm_core_utils\litellm_logging.py", line 3398, in _get_assembled_streaming_response
    if isinstance(result.response.usage, ResponseAPIUsage):
                  ^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'dict' object has no attribute 'usage'
LiteLLM.LoggingError: [Non-Blocking] Exception occurred while success logging 'dict' object has no attribute 'usage'
Traceback (most recent call last):
  File "litellm\litellm_core_utils\litellm_logging.py", line 2042, in success_handler
    complete_streaming_response = self._get_assembled_streaming_response(
                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "litellm\litellm_core_utils\litellm_logging.py", line 3398, in _get_assembled_streaming_response
    if isinstance(result.response.usage, ResponseAPIUsage):
                  ^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'dict' object has no attribute 'usage'
LiteLLM.LoggingError: [Non-Blocking] Exception occurred while success logging 'dict' object has no attribute 'usage'
Traceback (most recent call last):
  File "litellm\litellm_core_utils\litellm_logging.py", line 2042, in success_handler
    complete_streaming_response = self._get_assembled_streaming_response(
                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "litellm\litellm_core_utils\litellm_logging.py", line 3398, in _get_assembled_streaming_response
    if isinstance(result.response.usage, ResponseAPIUsage):
                  ^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'dict' object has no attribute 'usage'
LiteLLM.LoggingError: [Non-Blocking] Exception occurred while success logging 'dict' object has no attribute 'usage'
Traceback (most recent call last):
  File "litellm\litellm_core_utils\litellm_logging.py", line 2042, in success_handler
    complete_streaming_response = self._get_assembled_streaming_response(
                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "litellm\litellm_core_utils\litellm_logging.py", line 3398, in _get_assembled_streaming_response
    if isinstance(result.response.usage, ResponseAPIUsage):
                  ^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'dict' object has no attribute 'usage'
LiteLLM.LoggingError: [Non-Blocking] Exception occurred while success logging 'dict' object has no attribute 'usage'
Traceback (most recent call last):
  File "litellm\litellm_core_utils\litellm_logging.py", line 2042, in success_handler
    complete_streaming_response = self._get_assembled_streaming_response(
                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "litellm\litellm_core_utils\litellm_logging.py", line 3398, in _get_assembled_streaming_response
    if isinstance(result.response.usage, ResponseAPIUsage):
                  ^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'dict' object has no attribute 'usage'
╭──────────────────────────────────────────────────────

Relevant Config (Sanitized)

No response</issue_description>

<agent_instructions>find and the core issue and resolve it</agent_instructions>

Comments on the Issue (you are @codex[agent] in this section)

Summary by Sourcery

Suppress LiteLLM’s noisy pydantic response warnings and stderr logging by tightening warning filters and ensuring the verbose logger uses a null handler when stripped of handlers.

Bug Fixes:

  • Ignore additional pydantic serializer warnings related to ResponsesAPIResponse payloads emitted by LiteLLM.
  • Prevent LiteLLM’s verbose logger from falling back to logging.lastResort and printing non-blocking internal logging exceptions to stderr.

Enhancements:

  • Extend suppress_litellm_noise to install a NullHandler when removing existing handlers from the LiteLLM verbose logger.

Tests:

  • Add coverage to ensure response payload pydantic warnings are filtered out by suppress_litellm_noise.
  • Add coverage to verify suppress_litellm_noise installs a NullHandler and does not re-enable logger propagation.

@Codex Codex AI assigned Codex and whoisjayd May 28, 2026
@vercel
Copy link
Copy Markdown

vercel Bot commented May 28, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
notewise Ready Ready Preview, Comment May 28, 2026 3:10pm

Co-authored-by: whoisjayd <88286024+whoisjayd@users.noreply.github.com>
@Codex Codex AI requested a review from whoisjayd May 28, 2026 15:11
@whoisjayd whoisjayd marked this pull request as ready for review May 29, 2026 07:15
@github-actions
Copy link
Copy Markdown

Closing this PR because the base branch policy was not followed.

  • Normal contribution PRs must target dev.
  • Only maintainer-managed release PRs may target main, and those must come from this repository's dev branch.

Please retarget this work to dev and reopen from the correct base branch.
See CONTRIBUTING.md for the full contribution workflow.

@github-actions github-actions Bot closed this May 29, 2026
@github-actions github-actions Bot added area:llm LLM providers, prompts, and generation area:tests Testing and test infrastructure size/size:S labels May 29, 2026
@sourcery-ai
Copy link
Copy Markdown

sourcery-ai Bot commented May 29, 2026

Reviewer's Guide

Extends LiteLLM noise suppression to cover additional Pydantic serializer warnings and ensures LiteLLM’s verbose logger is safely silenced by installing a NullHandler when no handlers are present, with tests added for both behaviors.

Flow diagram for updated suppress_litellm_noise behavior

flowchart TD
    A[start suppress_litellm_noise] --> B[get verbose_logger]
    B --> C[set verbose_logger.propagate to False]
    C --> D[remove existing verbose_logger.handlers]
    D --> E{verbose_logger.handlers is empty}
    E -- yes --> F[verbose_logger.addHandler NullHandler]
    E -- no --> G[skip adding NullHandler]
    F --> H[apply warnings.filterwarnings with PYDANTIC_RESPONSE_USAGE_WARNING_PATTERN]
    G --> H
    H --> I[end suppress_litellm_noise]
Loading

File-Level Changes

Change Details Files
Broaden Pydantic warning suppression to include ResponsesAPIResponse-related serializer warnings.
  • Update the Pydantic warning regex pattern to match both ResponseAPIUsage and ResponsesAPIResponse messages so these warnings are filtered out
src/notewise/_constants.py
Ensure LiteLLM verbose logger never falls back to logging.lastResort by installing a NullHandler when handlers are removed.
  • After removing existing handlers from the verbose logger, add a logging.NullHandler if no handlers remain to prevent non-blocking internal LiteLLM errors from leaking to stderr
src/notewise/llm/provider.py
Add tests verifying suppression of new Pydantic warning pattern and installation of a NullHandler on the LiteLLM verbose logger.
  • Add a test that emits a Pydantic ResponsesAPIResponse serializer warning and asserts it is suppressed by suppress_litellm_noise
  • Add a test that patches the LiteLLM runtime logger, invokes suppress_litellm_noise, and asserts propagate is False and a NullHandler is installed
tests/unit/llm/test_providers.py

Assessment against linked issues

Issue Objective Addressed Explanation
#125 Suppress Pydantic serializer warnings related to LiteLLM response usage/payload (including ResponsesAPIResponse) so they do not appear on the TTY.
#125 Prevent LiteLLM’s non-blocking internal logging exceptions (e.g., AttributeError on response.usage) from being printed to stderr via the logger’s fallback handlers.

Tips and commands

Interacting with Sourcery

  • Trigger a new review: Comment @sourcery-ai review on the pull request.
  • Continue discussions: Reply directly to Sourcery's review comments.
  • Generate a GitHub issue from a review comment: Ask Sourcery to create an
    issue from a review comment by replying to it. You can also reply to a
    review comment with @sourcery-ai issue to create an issue from it.
  • Generate a pull request title: Write @sourcery-ai anywhere in the pull
    request title to generate a title at any time. You can also comment
    @sourcery-ai title on the pull request to (re-)generate the title at any time.
  • Generate a pull request summary: Write @sourcery-ai summary anywhere in
    the pull request body to generate a PR summary at any time exactly where you
    want it. You can also comment @sourcery-ai summary on the pull request to
    (re-)generate the summary at any time.
  • Generate reviewer's guide: Comment @sourcery-ai guide on the pull
    request to (re-)generate the reviewer's guide at any time.
  • Resolve all Sourcery comments: Comment @sourcery-ai resolve on the
    pull request to resolve all Sourcery comments. Useful if you've already
    addressed all the comments and don't want to see them anymore.
  • Dismiss all Sourcery reviews: Comment @sourcery-ai dismiss on the pull
    request to dismiss all existing Sourcery reviews. Especially useful if you
    want to start fresh with a new review - don't forget to comment
    @sourcery-ai review to trigger a new review!

Customizing Your Experience

Access your dashboard to:

  • Enable or disable review features such as the Sourcery-generated pull request
    summary, the reviewer's guide, and others.
  • Change the review language.
  • Add, remove or edit custom review instructions.
  • Adjust other review settings.

Getting Help

Copy link
Copy Markdown

@sourcery-ai sourcery-ai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hey - I've reviewed your changes and they look great!


Sourcery is free for open source - if you like our reviews please consider sharing them ✨
Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.

@github-actions
Copy link
Copy Markdown

Closing this PR because the base branch policy was not followed.

  • Normal contribution PRs must target dev.
  • Only maintainer-managed release PRs may target main, and those must come from this repository's dev branch.

Please retarget this work to dev and reopen from the correct base branch.
See CONTRIBUTING.md for the full contribution workflow.

@sentry
Copy link
Copy Markdown

sentry Bot commented May 29, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 90.44%. Comparing base (3c7684a) to head (1a68c77).

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #126   +/-   ##
=======================================
  Coverage   90.44%   90.44%           
=======================================
  Files          64       64           
  Lines        6333     6335    +2     
  Branches      930      931    +1     
=======================================
+ Hits         5728     5730    +2     
  Misses        367      367           
  Partials      238      238           

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area:llm LLM providers, prompts, and generation area:tests Testing and test infrastructure size/size:S

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug]: Usage pydantic parsing bug (nonblocking)

2 participants