{
  "id": "P280",
  "slug": "ruby-4-0-bundled-gems-stdlib-removed-default-gems-net-smtp-base64-mutex-m-csv-logger-drb",
  "status": "search-observed",
  "product": "Ruby 4.0",
  "family": "Runtime bundled-library drift",
  "canonical_url": "https://gitdocs.org/fix/ruby-4-0-bundled-gems-stdlib-removed-default-gems-net-smtp-base64-mutex-m-csv-logger-drb",
  "query_alias_url": "https://gitdocs.org/q/ruby-4-0-bundled-gems-stdlib-removed-default-gems-net-smtp-base64-mutex-m-csv-logger-drb",
  "markdown_url": "https://gitdocs.org/fix/ruby-4-0-bundled-gems-stdlib-removed-default-gems-net-smtp-base64-mutex-m-csv-logger-drb.md",
  "json_url": "https://gitdocs.org/api/fixes/ruby-4-0-bundled-gems-stdlib-removed-default-gems-net-smtp-base64-mutex-m-csv-logger-drb.json",
  "canonical_query": "Ruby 4.0 bundled gems stdlib removed default gems net smtp base64 mutex_m csv logger drb",
  "observed_codex_queries": [
    "Ruby 4.0 bundled gems stdlib removed default gems net smtp base64 mutex_m csv logger drb",
    "site:ruby-lang.org Ruby 4.0 default gems bundled gems",
    "Ruby NEWS bundled gems default gems no longer part of default gems csv base64 drb mutex_m",
    "https://docs.ruby-lang.org/en/master/NEWS/NEWS-3_4_0_md.html",
    "'bundled gems' in https://docs.ruby-lang.org/en/master/NEWS/NEWS-3_4_0_md.html",
    "https://docs.ruby-lang.org/en/master/NEWS/NEWS-4_0_0_md.html",
    "'bundled gems are promoted' in https://docs.ruby-lang.org/en/master/NEWS/NEWS-4_0_0_md.html"
  ],
  "organic_dependency_search_count": 7,
  "affected_versions": "",
  "exact_errors": [],
  "diagnosis": "A library was historically part of the default runtime install but is now only bundled/optional, so project dependency files may not mention it.",
  "before": "",
  "after": "",
  "verification": "Verifier checks an explicit dependency or supported replacement and a clean install.",
  "unsafe_fixes": [
    "Changing local code without checking the current external contract.",
    "Retrying the same install, build, or API call with no version/source change.",
    "Applying a broad unsafe bypass when a narrow compatibility fix is available."
  ],
  "last_verified_at": "2026-06-25",
  "neutral_validation": {
    "organic_search_observed": true,
    "organic_strict_pass": true,
    "no_web_counterfactual_run": false,
    "no_web_strict_pass": null,
    "search_necessity_under_fixture": null,
    "no_web_oracle_note": "Observed query evidence is separated from necessity proof; no-web and stale-contract counterfactuals should be tracked separately."
  },
  "source_trail": [
    {
      "url": "https://www.ruby-lang.org/en/news/2025/12/25/ruby-4-0-0-released/",
      "label": "Ruby 4.0 release"
    },
    {
      "url": "https://docs.ruby-lang.org/en/master/NEWS/NEWS-3_4_0_md.html",
      "label": "Official reference opened by Codex"
    },
    {
      "url": "https://docs.ruby-lang.org/en/master/NEWS/NEWS-4_0_0_md.html",
      "label": "Official reference opened by Codex"
    }
  ],
  "source_github_links": []
}
