Skip to content

chore(deps-dev): bump the bundler-dependencies group across 1 directory with 4 updates - #357

Open
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/bundler/bundler-dependencies-8689d6cc2b
Open

dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/bundler/bundler-dependencies-8689d6cc2b

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Nov 11, 2026 •

Copy link
Copy Markdown
Contributor

Bumps the bundler-dependencies group with 4 updates in the / directory: mcp, oj, rubocop and webmock.

Updates mcp from 1.7.0 to 1.9.0

Release notes

Sourced from mcp's releases.

v1.9.0

This release adds the Skills extension (SEP-2640): a server publishes Agent Skills from a directory or a handler, and the client lists, reads and verifies them against the manifest digests. It also keeps a tool's _meta and other members on the client, stops the output schema default from overriding a root $dynamicRef, and answers request headers and _meta values the server could not read with a client error instead of failing. The Changed entry alters an answer on the wire under the exceptions described in https://github.com/modelcontextprotocol/ruby-sdk/blob/HEAD/VERSIONING.md.

Added

  • Add the Skills extension (SEP-2640) (#635)

Changed

  • Refuse a _meta that is not an object as invalid params (#651)

Fixed

  • Skip the reaper join when close runs on the reaper thread (#637)
  • Parse request headers as bytes so invalid UTF-8 cannot raise (#639)
  • Keep a tool's _meta, title, icons, and execution on the client (#641)
  • Refuse a skill URI that is not valid UTF-8 and escape the echoed strings (#646)
  • Recognize a root $dynamicRef when defaulting an output schema to an object (#649)
  • Handle a _meta that is not an object without raising (#650)

v1.8.2

This release finishes the encoding fixes of 1.8.1 on the client and the HTTP transport, which no longer fail a request or a stream on a frame or a reply they cannot encode. The Changed entry alters what a subscriptions/listen stream honors under the exceptions described in https://github.com/modelcontextprotocol/ruby-sdk/blob/HEAD/VERSIONING.md: a resources_subscribe_handler that raises for a URI now narrows the acknowledgement, and the handler runs for listen streams without a matching resources_unsubscribe_handler call.

Changed

  • Consult the resources_subscribe_handler for the resource URIs of a subscriptions/listen stream (#632)

Fixed

  • Strip stdio client frames as bytes (#627)
  • Skip a stdio ping whose id cannot be encoded (#628)
  • Answer an HTTP request whose reply cannot be generated with Internal error (#629)
  • Drop a buffered notification that cannot be generated (#630)
  • Report failed session notifications through the server configuration (#631)

v1.8.1

This release brings the server's JSON-RPC framing and capability advertisement, and the HTTP client's handling of an initialize answered over SSE, in line with the MCP specification. The Changed entries alter answers on the wire, as fixes of incorrect conformance under the exceptions described in https://github.com/modelcontextprotocol/ruby-sdk/blob/HEAD/VERSIONING.md. Only senders of null ids and client code that read the error event of a 4xx or 5xx SSE answer, which the client now raises as RequestHandlerError, have to change. A stdio server also survives a frame it cannot strip, parse or answer.

Changed

  • Refuse a request whose id is null and do not run a request method sent without an id (#612)
  • Leave the id out of an error response when the request id cannot be read (#615)
  • Return from initialize as soon as its SSE response arrives and raise on an error-status SSE answer in the HTTP client (#617)
  • Leave listChanged and subscribe out of a stateless server's initialize result (#620)

Fixed

  • Answer a method of an undeclared capability with Method not found (#611)
  • Accept any string as a request id (#613)

... (truncated)

Changelog

Sourced from mcp's changelog.

[1.9.0] - 2026-11-03

This release adds the Skills extension (SEP-2640): a server publishes Agent Skills from a directory or a handler, and the client lists, reads and verifies them against the manifest digests. It also keeps a tool's _meta and other members on the client, stops the output schema default from overriding a root $dynamicRef, and answers request headers and _meta values the server could not read with a client error instead of failing. The Changed entry alters an answer on the wire under the exceptions described in https://github.com/modelcontextprotocol/ruby-sdk/blob/main/VERSIONING.md.

Added

  • Add the Skills extension (SEP-2640) (#635)

Changed

  • Refuse a _meta that is not an object as invalid params (#651)

Fixed

  • Skip the reaper join when close runs on the reaper thread (#637)
  • Parse request headers as bytes so invalid UTF-8 cannot raise (#639)
  • Keep a tool's _meta, title, icons, and execution on the client (#641)
  • Refuse a skill URI that is not valid UTF-8 and escape the echoed strings (#646)
  • Recognize a root $dynamicRef when defaulting an output schema to an object (#649)
  • Handle a _meta that is not an object without raising (#650)

[1.8.2] - 2026-10-27

This release finishes the encoding fixes of 1.8.1 on the client and the HTTP transport, which no longer fail a request or a stream on a frame or a reply they cannot encode. The Changed entry alters what a subscriptions/listen stream honors under the exceptions described in https://github.com/modelcontextprotocol/ruby-sdk/blob/main/VERSIONING.md: a resources_subscribe_handler that raises for a URI now narrows the acknowledgement, and the handler runs for listen streams without a matching resources_unsubscribe_handler call.

Changed

  • Consult the resources_subscribe_handler for the resource URIs of a subscriptions/listen stream (#632)

Fixed

  • Strip stdio client frames as bytes (#627)
  • Skip a stdio ping whose id cannot be encoded (#628)
  • Answer an HTTP request whose reply cannot be generated with Internal error (#629)
  • Drop a buffered notification that cannot be generated (#630)
  • Report failed session notifications through the server configuration (#631)

[1.8.1] - 2026-10-21

This release brings the server's JSON-RPC framing and capability advertisement, and the HTTP client's handling of an initialize answered over SSE, in line with the MCP specification. The Changed entries alter answers on the wire, as fixes of incorrect conformance under the exceptions described in https://github.com/modelcontextprotocol/ruby-sdk/blob/main/VERSIONING.md.

... (truncated)

Commits
  • 2cd02af Merge pull request #653 from koic/release_1_9_0
  • 8115b37 Release 1.9.0
  • 69c08b6 Merge pull request #652 from koic/run_every_referee_scenario_in_the_server_co...
  • aeb871e Merge pull request #651 from koic/refuse_a_meta_that_is_not_an_object_as_inva...
  • 1ab5242 Run every referee scenario in the server conformance leg
  • 7b00aec Refuse a _meta that is not an object as invalid params
  • 51db52a Merge pull request #650 from emirn/fix-non-object-meta
  • 35a8df2 Merge pull request #646 from koic/refuse_a_skill_uri_that_is_not_valid_utf_8_...
  • 8f6a206 Merge pull request #649 from koic/recognize_a_root_dynamic_ref_when_defaultin...
  • 96b50f2 Handle a _meta that is not an object without raising
  • Additional commits viewable in compare view

Updates oj from 3.17.7 to 3.17.8

Release notes

Sourced from oj's releases.

v3.17.8

What's Changed

... (truncated)

Changelog

Sourced from oj's changelog.

3.17.8 - 2026-11-03

Fixed

  • Fixed issue #988 by no longer requiring ostruct when Oj is loaded, autoloading JSON::GenericObject instead. (#1113)
  • Always include cpuid.h and fix the cache typedef for older compilers. (#1112)
  • Keep the sign of -0.0 when dumping in compat and rails modes. (#1115)
  • Fixed big negative integers and big decimals in Oj::Parser.usual. (#1116)
  • Reject a value after a number and whitespace in Oj::Parser. (#1117)
  • Combine an escaped surrogate pair in Oj::Parser. (#1118)
  • Reject an object close after a colon in Oj::Parser. (#1119)
  • Accept an exponent right after a zero integer part in Oj::Parser. (#1121)
  • Raise for an incomplete top-level number in Oj::Parser. (#1122)
  • Reject unescaped control characters in strict and compat mode strings. (#1123)
  • Fixed memory and handle leaks in Oj.load with recent winpthreads on Windows. (#1125)
  • Fixed writer state after an excess pop. (#1126)
  • Fixed memory corruption when ^u names a class that is not a Struct. (#1127)
  • Fixed cached keys and strings containing NUL returning a different value. (#1129)
  • Fixed a segmentation fault on a create_id class path through a non-module constant. (#1130)
  • Fixed a segmentation fault with the Oj::Parser class cache after GC compaction. (#1131)
  • Fixed a use-after-free of converted non-UTF-8 input in Oj.load. (#1132)
  • Fixed a use-after-free of converted non-UTF-8 strings in Oj.dump. (#1133)
  • Fixed a segmentation fault when Oj::Parser#parse is given a non-String. (#1134)
  • Fixed a segmentation fault when Oj.safe_load is given a null StringIO. (#1135)
  • Fixed a segmentation fault and memory leak in Oj.saj_parse with IO input. (#1136)
  • Fixed a segmentation fault when to_json returns a non-String in custom mode. (#1137)
  • Fixed a segmentation fault when an exception message is not a String in compat mode. (#1138)
  • Fixed a segmentation fault when raw_json returns a non-String. (#1139)
  • Fixed a use-after-free of keys in the Oj::Parser saj delegate. (#1140)
  • Fixed wrong keys and IndexError for Oj::Parser saj handlers with only some callbacks. (#1141)
  • Fixed a buffer overflow when dumping nested arrays with a String indent. (#1142)
  • Fixed a segmentation fault when array_class is not an Array in compat and custom mode. (#1143)
  • Fixed a double free when closing an Oj::Doc inside the open block. (#1144)
  • Fixed buffer leaks and unchecked file sizes when reading special files. (#1145)
  • Fixed reading freed memory when Oj.load parses an object through to_s. (#1146)
  • Fixed reading a freed buffer when a StringWriter is pushed into itself. (#1147)
  • Fixed a segmentation fault and use-after-free when using a closed Oj::Doc. (#1148)
  • Fixed reading and writing a different file when a path contains a NUL byte. (#1149)
  • Fixed buffer leaks when a dump to a String, file, or stream raises. (#1152)
  • Fixed unknown class names filling the class cache and loading as a Hash. (#1153)
  • Fixed object mode ranges and exceptions on Ruby 4.1. (#1154)
  • Fixed a segmentation fault after Oj::Doc#move fails on a path with ... (#1155)
  • Fixed a segmentation fault in wab mode after GC compaction. (#1156)
  • Fixed OpenStruct dumps and loads changing after GC compaction. (#1157)
  • Fixed a segmentation fault when pushing to a writer with circular: true. (#1158)
  • Fixed exception loading and Range subclass dumps in custom mode on Ruby 4.1. (#1159)

Performance

  • Speed up parsing of object keys that collide in the key cache by using SipHash. (#1150)

... (truncated)

Commits
  • 050ca17 Changelog update
  • e0072c4 Reject unescaped control characters in strict and compat mode strings (#1123)
  • 9a3bc88 Set version to 3.17.8
  • e8ac532 Update changelog
  • 89ac99b Speed up dumping plain objects in custom mode (#1162)
  • 5bb6d7f Speed up dumping objects in object and custom modes (#1161)
  • 6031f93 Speed up dumping ASCII-only strings that are not UTF-8 (#1160)
  • bfefebb Fix exception loading and Range subclass dumps in custom mode on Ruby 4.1 (#1...
  • 52732f9 Fix OpenStruct dumps and loads changing after GC compaction (#1157)
  • 9fc470e Fix segmentation fault in wab mode after GC compaction (#1156)
  • Additional commits viewable in compare view

Updates rubocop from 1.91.0 to 1.92.2

Release notes

Sourced from rubocop's releases.

RuboCop v1.92.2

Bug fixes

  • #16147: Fix a false negative for Lint/RedundantCopDisableDirective when autocorrection shifts lines. ([@​koic][])
  • #16104: Fix a false negative for Style/FloatDivision with a trailing comment. ([@​a-lavis][])
  • #16146: Fix a false positive for Lint/RedundantCopDisableDirective with a repeated disable. ([@​koic][])
  • #16176: Fix a false positive for Style/RaiseArgs with EnforcedStyle: compact and constructor arguments. ([@​bbatsov][])
  • #16183: Fix an error for Layout/RescueEnsureAlignment with index or-assignment. ([@​koic][])
  • #16158: Fix an error for Style/NumericPredicate with a predicate nested in the receiver of another. ([@​Starlexxx][])
  • #16125: Fix an error for Style/RedundantCondition with a nested modifier if. ([@​koic][])
  • #16175: Fix an incorrect autocorrect for Layout/HashAlignment with multiple styles and pairs on one line. ([@​bbatsov][])
  • #16139: Fix an incorrect autocorrect for Layout/LineLength with code after a heredoc opener. ([@​koic][])
  • #16160: Fix an incorrect autocorrect for Layout/SingleLineBlockChain with Style/MapToSet. ([@​koic][])
  • #16002: Fix an incorrect autocorrect for Layout/SpaceBeforeBlockBraces with a brace after a line continuation. ([@​Starlexxx][])
  • #16175: Fix an incorrect autocorrect for Layout/SpaceBeforeBlockBraces with a brace after a heredoc body. ([@​bbatsov][])
  • #16180: Fix an incorrect autocorrect for Lint/InterpolationCheck in a split string. ([@​Starlexxx][])
  • #16143: Fix an incorrect autocorrect for Lint/ParenthesesAsGroupedExpression with a command call operand. ([@​koic][])
  • #16170: Fix an incorrect autocorrect for Lint/RedundantSplatExpansion with Array.new as a method argument. ([@​wleeaf][])
  • #16178: Fix an incorrect autocorrect for Style/AndOr with a binary operator method operand. ([@​bbatsov][])
  • #16150: Fix an incorrect autocorrect for Style/AndOr with a command call that takes a do block. ([@​Starlexxx][])
  • #16178: Fix an incorrect autocorrect for Style/AndOr with a method chained onto a command call's do block. ([@​bbatsov][])
  • #16178: Fix an incorrect autocorrect for Style/AndOr with a negated command call that takes a do block. ([@​bbatsov][])
  • #16178: Fix an incorrect autocorrect for Style/AndOr with a pattern matching, ternary, range or defined? operand. ([@​bbatsov][])
  • #16178: Fix an incorrect autocorrect for Style/AndOr with super called with arguments. ([@​bbatsov][])
  • #16171: Fix an incorrect autocorrect for Style/CaseEquality with a non-numeric range. ([@​wleeaf][])
  • #16127: Fix an incorrect autocorrect for Style/ClassAndModuleChildren with Style/DataInheritance. ([@​koic][])
  • #16154: Fix an incorrect autocorrect for Style/EndlessMethod with modifier cops. ([@​koic][])
  • #16167: Fix an incorrect autocorrect for Style/HashAsLastArrayItem with Layout/MultilineArrayBraceLayout. ([@​Starlexxx][])
  • #16126: Fix an incorrect autocorrect for Style/HashLookupMethod with forwarded or splatted arguments. ([@​koic][])
  • #16163: Fix an incorrect autocorrect for Style/MethodCallWithArgsParentheses with Layout/HeredocArgumentClosingParenthesis. ([@​koic][])
  • #16124: Fix an incorrect autocorrect for Style/MethodDefParentheses with a line continuation. ([@​koic][])
  • #16159: Fix an incorrect autocorrect for Style/ParenthesesAroundCondition with a command call assignment. ([@​koic][])
  • #16137: Fix an incorrect autocorrect for Style/QuotedSymbols with a trailing backslash. ([@​koic][])
  • #16176: Fix an incorrect autocorrect for Style/RaiseArgs compact style with e.class as the exception. ([@​bbatsov][])
  • #16169: Fix an incorrect autocorrect for Style/RaiseArgs with a heredoc message. ([@​Starlexxx][])
  • #16132: Fix an incorrect autocorrect for Style/RaiseArgs with a parenthesized raise. ([@​koic][])
  • #16136: Fix an incorrect autocorrect for Style/ReduceToHash with a heredoc. ([@​koic][])
  • #16162: Fix an incorrect autocorrect for Style/RedundantBegin with a ternary branch. ([@​koic][])
  • #16176: Fix an incorrect autocorrect for Style/RedundantException with a heredoc in a multiline call. ([@​bbatsov][])
  • #16177: Fix an incorrect autocorrect for Style/SingleLineMethods with code after the method's end. ([@​bbatsov][])
  • #16157: Fix an incorrect autocorrect for Style/StringConcatenation when joining parts forms an interpolation. ([@​Starlexxx][])
  • #16161: Fix an incorrect autocorrect for Style/TrailingCommaInArguments with argument forwarding. ([@​koic][])
  • #16182: Fix an infinite loop for Layout/EmptyLinesAfterModuleInclusion with a logical operator. ([@​Starlexxx][])
  • #16138: Fix an infinite loop for Layout/EmptyLinesAroundClassBody with Layout/IndentationWidth. ([@​koic][])
  • #16142: Fix an infinite loop for Layout/EndAlignment with a class or module assigned to a constant. ([@​Starlexxx][])
  • #16128: Fix an infinite loop for Layout/ExtraSpacing with Layout/LineLength. ([@​koic][])
  • #16148: Fix an infinite loop for Layout/SpaceAroundOperators with Layout/LineContinuationSpacing. ([@​Starlexxx][])
  • #16123: Fix an infinite loop for Layout/SpaceAroundOperators with hash rockets aligned on non-adjacent lines. ([@​koic][])
  • #16144: Fix an infinite loop for Layout/SpaceInsideBlockBraces with Layout/BlockAlignment. ([@​koic][])
  • #16145: Fix an infinite loop for Layout/SpaceInsideRangeLiteral with a nested endless range. ([@​koic][])

... (truncated)

Changelog

Sourced from rubocop's changelog.

1.92.2 (2026-10-29)

Bug fixes

  • #16147: Fix a false negative for Lint/RedundantCopDisableDirective when autocorrection shifts lines. ([@​koic][])
  • #16104: Fix a false negative for Style/FloatDivision with a trailing comment. ([@​a-lavis][])
  • #16146: Fix a false positive for Lint/RedundantCopDisableDirective with a repeated disable. ([@​koic][])
  • #16176: Fix a false positive for Style/RaiseArgs with EnforcedStyle: compact and constructor arguments. ([@​bbatsov][])
  • #16183: Fix an error for Layout/RescueEnsureAlignment with index or-assignment. ([@​koic][])
  • #16158: Fix an error for Style/NumericPredicate with a predicate nested in the receiver of another. ([@​Starlexxx][])
  • #16125: Fix an error for Style/RedundantCondition with a nested modifier if. ([@​koic][])
  • #16175: Fix an incorrect autocorrect for Layout/HashAlignment with multiple styles and pairs on one line. ([@​bbatsov][])
  • #16139: Fix an incorrect autocorrect for Layout/LineLength with code after a heredoc opener. ([@​koic][])
  • #16160: Fix an incorrect autocorrect for Layout/SingleLineBlockChain with Style/MapToSet. ([@​koic][])
  • #16002: Fix an incorrect autocorrect for Layout/SpaceBeforeBlockBraces with a brace after a line continuation. ([@​Starlexxx][])
  • #16175: Fix an incorrect autocorrect for Layout/SpaceBeforeBlockBraces with a brace after a heredoc body. ([@​bbatsov][])
  • #16180: Fix an incorrect autocorrect for Lint/InterpolationCheck in a split string. ([@​Starlexxx][])
  • #16143: Fix an incorrect autocorrect for Lint/ParenthesesAsGroupedExpression with a command call operand. ([@​koic][])
  • #16170: Fix an incorrect autocorrect for Lint/RedundantSplatExpansion with Array.new as a method argument. ([@​wleeaf][])
  • #16178: Fix an incorrect autocorrect for Style/AndOr with a binary operator method operand. ([@​bbatsov][])
  • #16150: Fix an incorrect autocorrect for Style/AndOr with a command call that takes a do block. ([@​Starlexxx][])
  • #16178: Fix an incorrect autocorrect for Style/AndOr with a method chained onto a command call's do block. ([@​bbatsov][])
  • #16178: Fix an incorrect autocorrect for Style/AndOr with a negated command call that takes a do block. ([@​bbatsov][])
  • #16178: Fix an incorrect autocorrect for Style/AndOr with a pattern matching, ternary, range or defined? operand. ([@​bbatsov][])
  • #16178: Fix an incorrect autocorrect for Style/AndOr with super called with arguments. ([@​bbatsov][])
  • #16171: Fix an incorrect autocorrect for Style/CaseEquality with a non-numeric range. ([@​wleeaf][])
  • #16127: Fix an incorrect autocorrect for Style/ClassAndModuleChildren with Style/DataInheritance. ([@​koic][])
  • #16154: Fix an incorrect autocorrect for Style/EndlessMethod with modifier cops. ([@​koic][])
  • #16167: Fix an incorrect autocorrect for Style/HashAsLastArrayItem with Layout/MultilineArrayBraceLayout. ([@​Starlexxx][])
  • #16126: Fix an incorrect autocorrect for Style/HashLookupMethod with forwarded or splatted arguments. ([@​koic][])
  • #16163: Fix an incorrect autocorrect for Style/MethodCallWithArgsParentheses with Layout/HeredocArgumentClosingParenthesis. ([@​koic][])
  • #16124: Fix an incorrect autocorrect for Style/MethodDefParentheses with a line continuation. ([@​koic][])
  • #16159: Fix an incorrect autocorrect for Style/ParenthesesAroundCondition with a command call assignment. ([@​koic][])
  • #16137: Fix an incorrect autocorrect for Style/QuotedSymbols with a trailing backslash. ([@​koic][])
  • #16176: Fix an incorrect autocorrect for Style/RaiseArgs compact style with e.class as the exception. ([@​bbatsov][])
  • #16169: Fix an incorrect autocorrect for Style/RaiseArgs with a heredoc message. ([@​Starlexxx][])
  • #16132: Fix an incorrect autocorrect for Style/RaiseArgs with a parenthesized raise. ([@​koic][])
  • #16136: Fix an incorrect autocorrect for Style/ReduceToHash with a heredoc. ([@​koic][])
  • #16162: Fix an incorrect autocorrect for Style/RedundantBegin with a ternary branch. ([@​koic][])
  • #16176: Fix an incorrect autocorrect for Style/RedundantException with a heredoc in a multiline call. ([@​bbatsov][])
  • #16177: Fix an incorrect autocorrect for Style/SingleLineMethods with code after the method's end. ([@​bbatsov][])
  • #16157: Fix an incorrect autocorrect for Style/StringConcatenation when joining parts forms an interpolation. ([@​Starlexxx][])
  • #16161: Fix an incorrect autocorrect for Style/TrailingCommaInArguments with argument forwarding. ([@​koic][])
  • #16182: Fix an infinite loop for Layout/EmptyLinesAfterModuleInclusion with a logical operator. ([@​Starlexxx][])
  • #16138: Fix an infinite loop for Layout/EmptyLinesAroundClassBody with Layout/IndentationWidth. ([@​koic][])
  • #16142: Fix an infinite loop for Layout/EndAlignment with a class or module assigned to a constant. ([@​Starlexxx][])
  • #16128: Fix an infinite loop for Layout/ExtraSpacing with Layout/LineLength. ([@​koic][])
  • #16148: Fix an infinite loop for Layout/SpaceAroundOperators with Layout/LineContinuationSpacing. ([@​Starlexxx][])
  • #16123: Fix an infinite loop for Layout/SpaceAroundOperators with hash rockets aligned on non-adjacent lines. ([@​koic][])
  • #16144: Fix an infinite loop for Layout/SpaceInsideBlockBraces with Layout/BlockAlignment. ([@​koic][])

... (truncated)

Commits
  • d6ef1f9 Cut 1.92.2
  • 01d4e47 Update Changelog
  • 75b6eb7 Fix an incorrect autocorrect for Style/RaiseArgs with a heredoc message
  • 00b9402 Fix an incorrect autocorrect for Lint/InterpolationCheck in a split string
  • 3677424 Fix an infinite loop for Layout/SpaceAroundOperators with Layout/LineContinua...
  • cd52175 Fix a false negative for Style/FloatDivision with a trailing comment
  • 5cf8ab0 [Fix #16168] Fix false positives for Lint/NestedPercentLiteral with format se...
  • 5cd5d75 Fix an infinite loop for Layout/EmptyLinesAfterModuleInclusion with a logic...
  • ac10ccf Merge pull request #16183 from koic/fix_an_error_for_layout_rescue_ensure_ali...
  • 5c851c2 Fix an error for Layout/RescueEnsureAlignment with index or-assignment
  • Additional commits viewable in compare view

Updates webmock from 3.26.4 to 3.34.0

Release notes

Sourced from webmock's releases.

3.34.0

  • Allow with(query: :any) to match any query string (#1099)

    stub_request(:get, "www.example.com").with(query: :any) matches requests with any query string, or none. RSpec's anything works the same way. Previously, this raised NoMethodError, and you had to write with(query: hash_including({})).

    Use a URL without query parameters when passing query: :any. Otherwise, WebMock raises ArgumentError.

    Thanks to nightpool

  • Raise a clear ArgumentError for an unsupported query option

    Previously, a value such as with(query: :all) raised NoMethodError (undefined method split). The new error lists the supported values.

  • Show anything for keys given without a value to hash_including or hash_excluding outside RSpec

    Previously, with Minitest or Test::Unit, messages showed #<WebMock::Matchers::AnyArgMatcher:0x...>, for example for with(query: hash_including(:a)). RSpec's own matchers already showed anything.

  • Provide HTTP_HOST to to_rack apps when the client has not supplied a Host header (#1084)

    Previously, requests from some HTTP clients reached the Rack app without HTTP_HOST. This caused host checks such as Sinatra's HostAuthorization to see an empty host.

    WebMock now fills in the host from the request URL, including the port when it is not the default. An explicit Host header is preserved.

    Thanks to Benoit Tigeot

  • Fix Rack compatibility for to_rack apps

    The request environment now passes Rack::Lint.

    SERVER_PORT and CONTENT_LENGTH are now strings. If your app or tests read them directly, use string comparisons, such as env['SERVER_PORT'] == "80". The environment also includes SERVER_PROTOCOL.

    CONTENT_TYPE is omitted when the request has no content type. The Content-Length header is passed only as CONTENT_LENGTH, without an extra HTTP_CONTENT_LENGTH entry. Transfer-Encoding is removed because the body has already been decoded.

    Repeated header values are joined into one string. Header values and the body read from rack.input now use binary (ASCII-8BIT) strings.

3.33.0

  • Return effective_url as a String for stubbed Typhoeus responses (#869)

    Previously, this was an Addressable::URI. If your code calls methods such as effective_url.host, parse the returned string into a URI first.

    The URL keeps the request's port, query order and encoding. It follows curl's formatting: for example, http://example.com:80 becomes http://example.com:80/. Stubbed timeouts now provide an effective_url too.

    Thanks to Tom Brammar

  • Fix incorrect removal of default ports...

    Description has been truncated

@dependabot
dependabot Bot requested a review from a team as a code owner November 11, 2026 11:53
@dependabot dependabot Bot added dependencies Pull requests that update a dependency file ruby Pull requests that update ruby code labels Nov 11, 2026
@github-actions

github-actions Bot commented Nov 11, 2026 •

Copy link
Copy Markdown

posthog-ruby-sync Compliance Report

Date: 2026-11-12T16:44:22.050157+00:00
Duration: 55975ms

⚠️ Some Tests Failed

39/47 tests passed, 8 failed


Capture Tests

⚠️ 23/30 tests passed, 7 failed

View Details
Test Status Duration
Format Validation.Event Has Required Fields ✅ 8ms
Format Validation.Event Has Uuid ✅ 5ms
Format Validation.Event Has Lib Properties ✅ 5ms
Format Validation.Distinct Id Is String ✅ 7ms
Format Validation.Token Is Present ✅ 6ms
Format Validation.Custom Properties Preserved ✅ 6ms
Format Validation.Event Has Timestamp ✅ 6ms
Format Validation.Non Utc Event Timestamp Is Converted To Utc ✅ 5ms
Retry Behavior.Retries On 503 ✅ 5299ms
Retry Behavior.Does Not Retry On 400 ❌ 6ms
Retry Behavior.Does Not Retry On 401 ❌ 4ms
Retry Behavior.Respects Retry After Header ✅ 8014ms
Retry Behavior.Implements Backoff ❌ 307ms
Retry Behavior.Retries On 500 ✅ 5139ms
Retry Behavior.Retries On 502 ✅ 5115ms
Retry Behavior.Retries On 504 ✅ 5116ms
Retry Behavior.Max Retries Respected ❌ 558ms
Deduplication.Generates Unique Uuids ✅ 14ms
Deduplication.Preserves Uuid On Retry ✅ 5140ms
Deduplication.Preserves Uuid And Timestamp On Retry ✅ 10336ms
Deduplication.Preserves Uuid And Timestamp On Batch Retry ✅ 5152ms
Deduplication.No Duplicate Events In Batch ✅ 15ms
Deduplication.Different Events Have Different Uuids ✅ 7ms
Compression.Sends Gzip When Enabled ✅ 5ms
Batch Format.Uses Proper Batch Structure ✅ 5ms
Batch Format.Flush With No Events Sends Nothing ✅ 3ms
Batch Format.Multiple Events Batched Together ❌ 13ms
Error Handling.Does Not Retry On 403 ❌ 4ms
Error Handling.Does Not Retry On 413 ❌ 4ms
Error Handling.Retries On 408 ✅ 5113ms

Failures

retry_behavior.does_not_retry_on_400

500, message='Internal Server Error', url='http://sdk-adapter:8080/capture'

retry_behavior.does_not_retry_on_401

500, message='Internal Server Error', url='http://sdk-adapter:8080/capture'

retry_behavior.implements_backoff

500, message='Internal Server Error', url='http://sdk-adapter:8080/capture'

retry_behavior.max_retries_respected

500, message='Internal Server Error', url='http://sdk-adapter:8080/capture'

batch_format.multiple_events_batched_together

Expected 1 requests, got 5

error_handling.does_not_retry_on_403

500, message='Internal Server Error', url='http://sdk-adapter:8080/capture'

error_handling.does_not_retry_on_413

500, message='Internal Server Error', url='http://sdk-adapter:8080/capture'

Feature_Flags Tests

⚠️ 16/17 tests passed, 1 failed

View Details
Test Status Duration
Request Payload.Request With Person Properties Device Id ✅ 8ms
Request Payload.Flags Request Uses V2 Query Param ✅ 7ms
Request Payload.Flags Request Hits Flags Path Not Decide ✅ 7ms
Request Payload.Flags Request Omits Authorization Header ✅ 6ms
Request Payload.Token In Flags Body Matches Init ✅ 6ms
Request Payload.Groups Round Trip ✅ 5ms
Request Payload.Groups Default To Empty Object ✅ 5ms
Request Payload.Disable Geoip False Propagates As Geoip Disable False ✅ 5ms
Request Payload.Disable Geoip Omitted Defaults To False ❌ 5ms
Request Payload.Flag Keys To Evaluate Contains Only Requested Key ✅ 6ms
Request Lifecycle.No Flags Request On Init Alone ✅ 1ms
Request Lifecycle.No Flags Request On Normal Capture ✅ 5ms
Request Lifecycle.Two Flag Calls Produce Two Remote Requests ✅ 7ms
Request Lifecycle.Mock Response Value Is Returned To Caller ✅ 6ms
Retry Behavior.Retries Flags On 502 ✅ 107ms
Retry Behavior.Retries Flags On 504 ✅ 148ms
Side Effect Events.Get Feature Flag Captures Feature Flag Called Event ✅ 8ms

Failures

request_payload.disable_geoip_omitted_defaults_to_false

Field 'geoip_disable' not found in /flags request body at path 'geoip_disable'. Available keys: ['distinct_id', 'groups', 'person_properties', 'group_properties', 'flag_keys_to_evaluate', 'token']

@github-actions

github-actions Bot commented Nov 11, 2026 •

Copy link
Copy Markdown

posthog-ruby-async Compliance Report

Date: 2026-11-12T16:44:56.332470+00:00
Duration: 98542ms

⚠️ Some Tests Failed

46/47 tests passed, 1 failed


Capture Tests

✅ 30/30 tests passed

View Details
Test Status Duration
Format Validation.Event Has Required Fields ✅ 9ms
Format Validation.Event Has Uuid ✅ 106ms
Format Validation.Event Has Lib Properties ✅ 109ms
Format Validation.Distinct Id Is String ✅ 107ms
Format Validation.Token Is Present ✅ 107ms
Format Validation.Custom Properties Preserved ✅ 108ms
Format Validation.Event Has Timestamp ✅ 108ms
Format Validation.Non Utc Event Timestamp Is Converted To Utc ✅ 7ms
Retry Behavior.Retries On 503 ✅ 5311ms
Retry Behavior.Does Not Retry On 400 ✅ 2109ms
Retry Behavior.Does Not Retry On 401 ✅ 2109ms
Retry Behavior.Respects Retry After Header ✅ 8116ms
Retry Behavior.Implements Backoff ✅ 15723ms
Retry Behavior.Retries On 500 ✅ 5213ms
Retry Behavior.Retries On 502 ✅ 5213ms
Retry Behavior.Retries On 504 ✅ 5210ms
Retry Behavior.Max Retries Respected ✅ 15717ms
Deduplication.Generates Unique Uuids ✅ 112ms
Deduplication.Preserves Uuid On Retry ✅ 5211ms
Deduplication.Preserves Uuid And Timestamp On Retry ✅ 10418ms
Deduplication.Preserves Uuid And Timestamp On Batch Retry ✅ 5215ms
Deduplication.No Duplicate Events In Batch ✅ 112ms
Deduplication.Different Events Have Different Uuids ✅ 108ms
Compression.Sends Gzip When Enabled ✅ 106ms
Batch Format.Uses Proper Batch Structure ✅ 106ms
Batch Format.Flush With No Events Sends Nothing ✅ 4ms
Batch Format.Multiple Events Batched Together ✅ 113ms
Error Handling.Does Not Retry On 403 ✅ 2109ms
Error Handling.Does Not Retry On 413 ✅ 2109ms
Error Handling.Retries On 408 ✅ 5213ms

Feature_Flags Tests

⚠️ 16/17 tests passed, 1 failed

View Details
Test Status Duration
Request Payload.Request With Person Properties Device Id ✅ 108ms
Request Payload.Flags Request Uses V2 Query Param ✅ 107ms
Request Payload.Flags Request Hits Flags Path Not Decide ✅ 108ms
Request Payload.Flags Request Omits Authorization Header ✅ 107ms
Request Payload.Token In Flags Body Matches Init ✅ 108ms
Request Payload.Groups Round Trip ✅ 107ms
Request Payload.Groups Default To Empty Object ✅ 108ms
Request Payload.Disable Geoip False Propagates As Geoip Disable False ✅ 109ms
Request Payload.Disable Geoip Omitted Defaults To False ❌ 107ms
Request Payload.Flag Keys To Evaluate Contains Only Requested Key ✅ 107ms
Request Lifecycle.No Flags Request On Init Alone ✅ 4ms
Request Lifecycle.No Flags Request On Normal Capture ✅ 105ms
Request Lifecycle.Two Flag Calls Produce Two Remote Requests ✅ 112ms
Request Lifecycle.Mock Response Value Is Returned To Caller ✅ 107ms
Retry Behavior.Retries Flags On 502 ✅ 210ms
Retry Behavior.Retries Flags On 504 ✅ 255ms
Side Effect Events.Get Feature Flag Captures Feature Flag Called Event ✅ 111ms

Failures

request_payload.disable_geoip_omitted_defaults_to_false

Field 'geoip_disable' not found in /flags request body at path 'geoip_disable'. Available keys: ['distinct_id', 'groups', 'person_properties', 'group_properties', 'flag_keys_to_evaluate', 'token']

@github-actions

github-actions Bot commented Nov 11, 2026 •

Copy link
Copy Markdown

SDK performance: posthog-ruby

Benchmarks completed. No changes flagged for review.

Flags require at least a 5% change in the median and all six pairs agreeing on direction. This is a noise filter, not proof of a performance change or a CI gate.

View all results
Test Measurement Before PR With PR Change Assessment
Capture and deliver events (32-byte payload, burst)
Shard: capture
Allocated memory per operation — — — unavailable; base:​ unsupported; head:​ unsupported; base:​ Ruby has no cumulative allocated-byte counter here; retained ObjectSpace bytes are not allocation volume.​; head:​ Ruby has no cumulative allocated-byte counter here; retained ObjectSpace bytes are not allocation volume.​
Capture and deliver events (4,096-byte payload, burst)
Shard: capture
Allocated memory per operation — — — unavailable; base:​ unsupported; head:​ unsupported; base:​ Ruby has no cumulative allocated-byte counter here; retained ObjectSpace bytes are not allocation volume.​; head:​ Ruby has no cumulative allocated-byte counter here; retained ObjectSpace bytes are not allocation volume.​
Capture and deliver events (32-byte payload, steady)
Shard: capture
Allocated memory per operation — — — unavailable; base:​ unsupported; head:​ unsupported; base:​ Ruby has no cumulative allocated-byte counter here; retained ObjectSpace bytes are not allocation volume.​; head:​ Ruby has no cumulative allocated-byte counter here; retained ObjectSpace bytes are not allocation volume.​
Capture and deliver events (4,096-byte payload, steady)
Shard: capture
Allocated memory per operation — — — unavailable; base:​ unsupported; head:​ unsupported; base:​ Ruby has no cumulative allocated-byte counter here; retained ObjectSpace bytes are not allocation volume.​; head:​ Ruby has no cumulative allocated-byte counter here; retained ObjectSpace bytes are not allocation volume.​
Queue an event (32-byte payload)
Shard: capture
Allocated memory per operation — — — unavailable; base:​ unsupported; head:​ unsupported; base:​ Background serialization has no public enqueue completion boundary; use completed-delivery workloads for process-wide allocation counts.​; head:​ Background serialization has no public enqueue completion boundary; use completed-delivery workloads for process-wide allocation counts.​
Queue an event (32-byte payload)
Shard: capture
Allocations per operation — — — unavailable; base:​ unsupported; head:​ unsupported; base:​ Background serialization has no public enqueue completion boundary; use completed-delivery workloads for process-wide allocation counts.​; head:​ Background serialization has no public enqueue completion boundary; use completed-delivery workloads for process-wide allocation counts.​
Queue an event (4,096-byte payload)
Shard: capture
Allocated memory per operation — — — unavailable; base:​ unsupported; head:​ unsupported; base:​ Background serialization has no public enqueue completion boundary; use completed-delivery workloads for process-wide allocation counts.​; head:​ Background serialization has no public enqueue completion boundary; use completed-delivery workloads for process-wide allocation counts.​
Queue an event (4,096-byte payload)
Shard: capture
Allocations per operation — — — unavailable; base:​ unsupported; head:​ unsupported; base:​ Background serialization has no public enqueue completion boundary; use completed-delivery workloads for process-wide allocation counts.​; head:​ Background serialization has no public enqueue completion boundary; use completed-delivery workloads for process-wide allocation counts.​
Evaluate all 10 flags
Shard: flags-scaling
Allocated memory per operation — — — unavailable; base:​ unsupported; head:​ unsupported; base:​ Ruby has no cumulative allocated-byte counter here; retained ObjectSpace bytes are not allocation volume.​; head:​ Ruby has no cumulative allocated-byte counter here; retained ObjectSpace bytes are not allocation volume.​
Evaluate all 100 flags
Shard: flags-scaling
Allocated memory per operation — — — unavailable; base:​ unsupported; head:​ unsupported; base:​ Ruby has no cumulative allocated-byte counter here; retained ObjectSpace bytes are not allocation volume.​; head:​ Ruby has no cumulative allocated-byte counter here; retained ObjectSpace bytes are not allocation volume.​
Evaluate all 1,000 flags
Shard: flags-scaling
Allocated memory per operation — — — unavailable; base:​ unsupported; head:​ unsupported; base:​ Ruby has no cumulative allocated-byte counter here; retained ObjectSpace bytes are not allocation volume.​; head:​ Ruby has no cumulative allocated-byte counter here; retained ObjectSpace bytes are not allocation volume.​
Evaluate one boolean flag
Shard: flags-single
Allocated memory per operation — — — unavailable; base:​ unsupported; head:​ unsupported; base:​ Ruby has no cumulative allocated-byte counter here; retained ObjectSpace bytes are not allocation volume.​; head:​ Ruby has no cumulative allocated-byte counter here; retained ObjectSpace bytes are not allocation volume.​
Evaluate a cohort-filtered flag
Shard: flags-single
Allocated memory per operation — — — unavailable; base:​ unsupported; head:​ unsupported; base:​ Ruby has no cumulative allocated-byte counter here; retained ObjectSpace bytes are not allocation volume.​; head:​ Ruby has no cumulative allocated-byte counter here; retained ObjectSpace bytes are not allocation volume.​
Evaluate a flag (early match)
Shard: flags-single
Allocated memory per operation — — — unavailable; base:​ unsupported; head:​ unsupported; base:​ Ruby has no cumulative allocated-byte counter here; retained ObjectSpace bytes are not allocation volume.​; head:​ Ruby has no cumulative allocated-byte counter here; retained ObjectSpace bytes are not allocation volume.​
Evaluate a flag (late match)
Shard: flags-single
Allocated memory per operation — — — unavailable; base:​ unsupported; head:​ unsupported; base:​ Ruby has no cumulative allocated-byte counter here; retained ObjectSpace bytes are not allocation volume.​; head:​ Ruby has no cumulative allocated-byte counter here; retained ObjectSpace bytes are not allocation volume.​
Evaluate a flag (no match)
Shard: flags-single
Allocated memory per operation — — — unavailable; base:​ unsupported; head:​ unsupported; base:​ Ruby has no cumulative allocated-byte counter here; retained ObjectSpace bytes are not allocation volume.​; head:​ Ruby has no cumulative allocated-byte counter here; retained ObjectSpace bytes are not allocation volume.​
Evaluate a property-filtered flag
Shard: flags-single
Allocated memory per operation — — — unavailable; base:​ unsupported; head:​ unsupported; base:​ Ruby has no cumulative allocated-byte counter here; retained ObjectSpace bytes are not allocation volume.​; head:​ Ruby has no cumulative allocated-byte counter here; retained ObjectSpace bytes are not allocation volume.​
Evaluate a regex-filtered flag
Shard: flags-single
Allocated memory per operation — — — unavailable; base:​ unsupported; head:​ unsupported; base:​ Ruby has no cumulative allocated-byte counter here; retained ObjectSpace bytes are not allocation volume.​; head:​ Ruby has no cumulative allocated-byte counter here; retained ObjectSpace bytes are not allocation volume.​
Evaluate a rollout flag
Shard: flags-single
Allocated memory per operation — — — unavailable; base:​ unsupported; head:​ unsupported; base:​ Ruby has no cumulative allocated-byte counter here; retained ObjectSpace bytes are not allocation volume.​; head:​ Ruby has no cumulative allocated-byte counter here; retained ObjectSpace bytes are not allocation volume.​
Evaluate a multivariate flag
Shard: flags-single
Allocated memory per operation — — — unavailable; base:​ unsupported; head:​ unsupported; base:​ Ruby has no cumulative allocated-byte counter here; retained ObjectSpace bytes are not allocation volume.​; head:​ Ruby has no cumulative allocated-byte counter here; retained ObjectSpace bytes are not allocation volume.​
Capture and deliver events (32-byte payload, burst)
Shard: capture
Allocations per operation 56.27 count/op 56.27 count/op No observed change Not flagged
Capture and deliver events (32-byte payload, burst)
Shard: capture
Time per operation 112.86 µs/op 112.9 µs/op <0.1% more time Not flagged
Capture and deliver events (32-byte payload, burst)
Shard: capture
Idle process memory (RSS) 28.34 MiB 28.35 MiB <0.1% more memory Not flagged
Capture and deliver events (32-byte payload, burst)
Shard: capture
Observed peak process memory (RSS) 31.11 MiB 31.12 MiB <0.1% more memory Not flagged
Capture and deliver events (32-byte payload, burst)
Shard: capture
Managed heap after settling 5.29 MiB 5.29 MiB <0.1% less memory Not flagged
Capture and deliver events (32-byte payload, burst)
Shard: capture
Process memory after settling (RSS) 30.34 MiB 30.34 MiB No observed change Not flagged
Capture and deliver events (32-byte payload, burst)
Shard: capture
Process CPU time per operation 30.02 µs/op 30.22 µs/op 0.7% more time Not flagged
Capture and deliver events (32-byte payload, burst)
Shard: capture
Lifetime peak process memory (RSS) 30.89 MiB 30.91 MiB <0.1% more memory Not flagged
Capture and deliver events (4,096-byte payload, burst)
Shard: capture
Allocations per operation 58.66 count/op 58.66 count/op No observed change Not flagged
Capture and deliver events (4,096-byte payload, burst)
Shard: capture
Time per operation 112.88 µs/op 112.96 µs/op <0.1% more time Not flagged
Capture and deliver events (4,096-byte payload, burst)
Shard: capture
Idle process memory (RSS) 33.22 MiB 33.22 MiB <0.1% more memory Not flagged
Capture and deliver events (4,096-byte payload, burst)
Shard: capture
Observed peak process memory (RSS) 42.15 MiB 42.37 MiB 0.5% more memory Not flagged
Capture and deliver events (4,096-byte payload, burst)
Shard: capture
Managed heap after settling 9.16 MiB 9.16 MiB <0.1% more memory Not flagged
Capture and deliver events (4,096-byte payload, burst)
Shard: capture
Process memory after settling (RSS) 40.67 MiB 41.12 MiB 1.1% more memory Not flagged
Capture and deliver events (4,096-byte payload, burst)
Shard: capture
Process CPU time per operation 39.81 µs/op 40.02 µs/op 0.5% more time Not flagged
Capture and deliver events (4,096-byte payload, burst)
Shard: capture
Lifetime peak process memory (RSS) 42.03 MiB 42.22 MiB 0.5% more memory Not flagged
Capture and deliver events (32-byte payload, steady)
Shard: capture
Allocations per operation 58.69 count/op 58.69 count/op No observed change Not flagged
Capture and deliver events (32-byte payload, steady)
Shard: capture
Time per operation 1.02 ms/op 1.02 ms/op <0.1% more time Not flagged
Capture and deliver events (32-byte payload, steady)
Shard: capture
Idle process memory (RSS) 28.25 MiB 28.28 MiB 0.1% more memory Not flagged
Capture and deliver events (32-byte payload, steady)
Shard: capture
Observed peak process memory (RSS) 30.31 MiB 30.35 MiB 0.1% more memory Not flagged
Capture and deliver events (32-byte payload, steady)
Shard: capture
Managed heap after settling 5.29 MiB 5.29 MiB <0.1% less memory Not flagged
Capture and deliver events (32-byte payload, steady)
Shard: capture
Process memory after settling (RSS) 30.31 MiB 30.35 MiB 0.1% more memory Not flagged
Capture and deliver events (32-byte payload, steady)
Shard: capture
Process CPU time per operation 44.33 µs/op 45.02 µs/op 1.5% more time Not flagged
Capture and deliver events (32-byte payload, steady)
Shard: capture
Lifetime peak process memory (RSS) 30.31 MiB 30.35 MiB 0.1% more memory Not flagged
Capture and deliver events (4,096-byte payload, steady)
Shard: capture
Allocations per operation 58.69 count/op 58.69 count/op No observed change Not flagged
Capture and deliver events (4,096-byte payload, steady)
Shard: capture
Time per operation 1.02 ms/op 1.02 ms/op <0.1% less time Not flagged
Capture and deliver events (4,096-byte payload, steady)
Shard: capture
Idle process memory (RSS) 33.18 MiB 33.23 MiB 0.2% more memory Not flagged
Capture and deliver events (4,096-byte payload, steady)
Shard: capture
Observed peak process memory (RSS) 40.52 MiB 40.73 MiB 0.5% more memory Not flagged
Capture and deliver events (4,096-byte payload, steady)
Shard: capture
Managed heap after settling 9.16 MiB 9.16 MiB <0.1% less memory Not flagged
Capture and deliver events (4,096-byte payload, steady)
Shard: capture
Process memory after settling (RSS) 40.22 MiB 40.27 MiB 0.1% more memory Not flagged
Capture and deliver events (4,096-byte payload, steady)
Shard: capture
Process CPU time per operation 51.32 µs/op 51.16 µs/op 0.3% less time Not flagged
Capture and deliver events (4,096-byte payload, steady)
Shard: capture
Lifetime peak process memory (RSS) 40.74 MiB 40.88 MiB 0.3% more memory Not flagged
Queue an event (32-byte payload)
Shard: capture
Caller-thread CPU time per operation 12.9 µs/op 12.61 µs/op 2.2% less time Not flagged
Queue an event (32-byte payload)
Shard: capture
Time per operation 12.91 µs/op 12.61 µs/op 2.3% less time Not flagged
Queue an event (4,096-byte payload)
Shard: capture
Caller-thread CPU time per operation 12.83 µs/op 12.66 µs/op 1.3% less time Not flagged
Queue an event (4,096-byte payload)
Shard: capture
Time per operation 12.83 µs/op 12.66 µs/op 1.3% less time Not flagged
Evaluate all 10 flags
Shard: flags-scaling
Allocations per operation 343.02 count/op 343.02 count/op No observed change Not flagged
Evaluate all 10 flags
Shard: flags-scaling
Time per operation 81.1 µs/op 81.24 µs/op 0.2% more time Not flagged
Evaluate all 10 flags
Shard: flags-scaling
Process CPU time per operation 81.09 µs/op 81.24 µs/op 0.2% more time Not flagged
Evaluate all 100 flags
Shard: flags-scaling
Allocations per operation 3,324 count/op 3,324 count/op No observed change Not flagged
Evaluate all 100 flags
Shard: flags-scaling
Time per operation 783.92 µs/op 775.25 µs/op 1.1% less time Not flagged
Evaluate all 100 flags
Shard: flags-scaling
Process CPU time per operation 783.9 µs/op 775.16 µs/op 1.1% less time Not flagged
Evaluate all 1,000 flags
Shard: flags-scaling
Allocations per operation 33,113.56 count/op 33,113.56 count/op No observed change Not flagged
Evaluate all 1,000 flags
Shard: flags-scaling
Time per operation 8.73 ms/op 8.4 ms/op 3.8% less time Not flagged
Evaluate all 1,000 flags
Shard: flags-scaling
Process CPU time per operation 8.73 ms/op 8.4 ms/op 3.8% less time Not flagged
Evaluate 1,000 flags under concurrent load
Shard: flags-memory
Idle process memory (RSS) 38.77 MiB 38.8 MiB <0.1% more memory Not flagged
Evaluate 1,000 flags under concurrent load
Shard: flags-memory
Observed peak process memory (RSS) 40.27 MiB 40.33 MiB 0.1% more memory Not flagged
Evaluate 1,000 flags under concurrent load
Shard: flags-memory
Managed heap after settling 7.98 MiB 7.98 MiB <0.1% more memory Not flagged
Evaluate 1,000 flags under concurrent load
Shard: flags-memory
Process memory after settling (RSS) 39.13 MiB 39.33 MiB 0.5% more memory Not flagged
Evaluate 1,000 flags under concurrent load
Shard: flags-memory
Lifetime peak process memory (RSS) 40.02 MiB 39.95 MiB 0.2% less memory Not flagged
Refresh 1,000 flag definitions
Shard: flags-memory
Idle process memory (RSS) 37.92 MiB 37.96 MiB <0.1% more memory Not flagged
Refresh 1,000 flag definitions
Shard: flags-memory
Observed peak process memory (RSS) 38.62 MiB 38.64 MiB <0.1% more memory Not flagged
Refresh 1,000 flag definitions
Shard: flags-memory
Managed heap after settling 9.49 MiB 9.49 MiB <0.1% more memory Not flagged
Refresh 1,000 flag definitions
Shard: flags-memory
Process memory after settling (RSS) 38.54 MiB 38.6 MiB 0.2% more memory Not flagged
Refresh 1,000 flag definitions
Shard: flags-memory
Lifetime peak process memory (RSS) 38.54 MiB 38.64 MiB 0.3% more memory Not flagged
Evaluate one boolean flag
Shard: flags-single
Allocations per operation 38 count/op 38 count/op No observed change Not flagged
Evaluate one boolean flag
Shard: flags-single
Time per operation 11.8 µs/op 11.78 µs/op 0.2% less time Not flagged
Evaluate one boolean flag
Shard: flags-single
Process CPU time per operation 11.8 µs/op 11.78 µs/op 0.2% less time Not flagged
Evaluate a cohort-filtered flag
Shard: flags-single
Allocations per operation 38 count/op 38 count/op No observed change Not flagged
Evaluate a cohort-filtered flag
Shard: flags-single
Time per operation 18.76 µs/op 18.88 µs/op 0.6% more time Not flagged
Evaluate a cohort-filtered flag
Shard: flags-single
Process CPU time per operation 18.76 µs/op 18.88 µs/op 0.6% more time Not flagged
Evaluate a flag (early match)
Shard: flags-single
Allocations per operation 55 count/op 55 count/op No observed change Not flagged
Evaluate a flag (early match)
Shard: flags-single
Time per operation 22.95 µs/op 22.81 µs/op 0.6% less time Not flagged
Evaluate a flag (early match)
Shard: flags-single
Process CPU time per operation 22.95 µs/op 22.81 µs/op 0.6% less time Not flagged
Evaluate a flag (late match)
Shard: flags-single
Allocations per operation 76 count/op 76 count/op No observed change Not flagged
Evaluate a flag (late match)
Shard: flags-single
Time per operation 31.86 µs/op 32.05 µs/op 0.6% more time Not flagged
Evaluate a flag (late match)
Shard: flags-single
Process CPU time per operation 31.86 µs/op 32.05 µs/op 0.6% more time Not flagged
Evaluate a flag (no match)
Shard: flags-single
Allocations per operation 67 count/op 67 count/op No observed change Not flagged
Evaluate a flag (no match)
Shard: flags-single
Time per operation 27.6 µs/op 27.6 µs/op <0.1% less time Not flagged
Evaluate a flag (no match)
Shard: flags-single
Process CPU time per operation 27.6 µs/op 27.6 µs/op <0.1% less time Not flagged
Evaluate a property-filtered flag
Shard: flags-single
Allocations per operation 34 count/op 34 count/op No observed change Not flagged
Evaluate a property-filtered flag
Shard: flags-single
Time per operation 13.65 µs/op 13.6 µs/op 0.4% less time Not flagged
Evaluate a property-filtered flag
Shard: flags-single
Process CPU time per operation 13.65 µs/op 13.6 µs/op 0.4% less time Not flagged
Evaluate a regex-filtered flag
Shard: flags-single
Allocations per operation 99 count/op 99 count/op <0.1% fewer Not flagged
Evaluate a regex-filtered flag
Shard: flags-single
Time per operation 40.46 µs/op 40.52 µs/op 0.1% more time Not flagged
Evaluate a regex-filtered flag
Shard: flags-single
Process CPU time per operation 40.46 µs/op 40.52 µs/op 0.2% more time Not flagged
Evaluate a rollout flag
Shard: flags-single
Allocations per operation 31 count/op 31 count/op No observed change Not flagged
Evaluate a rollout flag
Shard: flags-single
Time per operation 10.94 µs/op 10.89 µs/op 0.4% less time Not flagged
Evaluate a rollout flag
Shard: flags-single
Process CPU time per operation 10.94 µs/op 10.9 µs/op 0.4% less time Not flagged
Evaluate a multivariate flag
Shard: flags-single
Allocations per operation 37 count/op 37 count/op No observed change Not flagged
Evaluate a multivariate flag
Shard: flags-single
Time per operation 13.7 µs/op 13.63 µs/op 0.5% less time Not flagged
Evaluate a multivariate flag
Shard: flags-single
Process CPU time per operation 13.7 µs/op 13.63 µs/op 0.5% less time Not flagged

Values are medians of paired measurements. Not flagged does not mean unchanged. Unavailable means a measurement could not be provided, not zero. Estimated allocation measurements retain their instrumentation uncertainty. RSS measures the whole process, not just SDK allocations; observed peaks are sampled checkpoints. Paired ranges in the diagnostics describe variability, not confidence intervals.

Each shard uses its own runner; compare Before PR against With PR within a row, not across shards.

Compared 782ba4bb8023a13e593e694e47576cf6fd8a67a2 → cb6d84275761df7eb3f85b21f47d0e97b4fc8143.

Full report and diagnostics

102 metric rows; 102 rows shown in all results. Omitted or shortened data remain in comparison.json, including per-runner environments, resource limits, measurement methods, samples and checkpoints.

…ry with 4 updates

Bumps the bundler-dependencies group with 4 updates in the / directory: [mcp](https://github.com/modelcontextprotocol/ruby-sdk), [oj](https://github.com/ohler55/oj), [rubocop](https://github.com/rubocop/rubocop) and [webmock](https://github.com/bblimke/webmock).


Updates `mcp` from 1.7.0 to 1.9.0
- [Release notes](https://github.com/modelcontextprotocol/ruby-sdk/releases)
- [Changelog](https://github.com/modelcontextprotocol/ruby-sdk/blob/main/CHANGELOG.md)
- [Commits](modelcontextprotocol/ruby-sdk@v1.7.0...v1.9.0)

Updates `oj` from 3.17.7 to 3.17.8
- [Release notes](https://github.com/ohler55/oj/releases)
- [Changelog](https://github.com/ohler55/oj/blob/develop/CHANGELOG.md)
- [Commits](ohler55/oj@v3.17.7...v3.17.8)

Updates `rubocop` from 1.91.0 to 1.92.2
- [Release notes](https://github.com/rubocop/rubocop/releases)
- [Changelog](https://github.com/rubocop/rubocop/blob/master/CHANGELOG.md)
- [Commits](rubocop/rubocop@v1.91.0...v1.92.2)

Updates `webmock` from 3.26.4 to 3.34.0
- [Release notes](https://github.com/bblimke/webmock/releases)
- [Changelog](https://github.com/bblimke/webmock/blob/master/CHANGELOG.md)
- [Commits](bblimke/webmock@v3.26.4...v3.34.0)

---
updated-dependencies:
- dependency-name: mcp
  dependency-version: 1.9.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: bundler-dependencies
- dependency-name: oj
  dependency-version: 3.17.8
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: bundler-dependencies
- dependency-name: rubocop
  dependency-version: 1.92.2
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: bundler-dependencies
- dependency-name: webmock
  dependency-version: 3.34.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: bundler-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot
dependabot Bot force-pushed the dependabot/bundler/bundler-dependencies-8689d6cc2b branch from 22276fc to cb6d842 Compare November 12, 2026 16:42

This branch has not been deployed

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

Labels

dependencies Pull requests that update a dependency file ruby Pull requests that update ruby code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants