{
  "about": "One signature per calendar date a repository's files can show; every other date is listed under blind with the reason a folder cannot show it. Each pattern is the row's own published search (entries.json checkCode or check text), applied line by line in the browser. files: 'any' = every text file (the row's command searches the whole tree), 'source' = code and config but not prose (the AI-model rows spell this out as a path pattern that also leaves out test and fixture paths, and their patterns skip lines that start as a comment), 'workflow' = .github/workflows, otherwise a path regex. listed: the item in the page's \"What the page looks for\" list that names these files. kind: 'match' = the row's search found the line; 'possible' = the files use what the date affects, and only some setups break.",
  "workflow": "^\\.github/workflows/[^/]+\\.ya?ml$",
  "blind": {
    "2026-11-01-us-clocks-go-back-kubernetes-cronjob": "the row's check lists each CronJob's time zone and schedule on the running cluster with kubectl, not in the repository's files",
    "2026-11-01-us-clocks-go-back-spring-scheduled": "the JVM's time zone is set where the application runs (a start flag, TZ or the host), not in the repository's files",
    "2026-11-01-us-clocks-go-back-camunda-timers": "the JVM's time zone is set where the engine runs (a start flag, TZ or the host), and the timers live in the engine's database, not in the repository's files",
    "2026-11-01-cuba-keeps-daylight-saving-time": "the time zone data is in the installed runtime or the system",
    "2026-11-01-us-clocks-go-back-n8n": "the n8n release and each workflow's time zone are set on the running instance, not in the repository's files",
    "2026-10-01-tls-200-day-certificates-first-expiries": "a certificate's lifetime is set by its issuer, not by a line in the repository",
    "2026-10-09-python-3-15-pip-installs-old-releases": "what pip picks depends on the index on the day of the install",
    "2026-10-11-root-ksk-2024-dnssec-rollover": "a resolver's trust anchor lives on the server",
    "2026-11-01-canada-time-zone-change-runtimes": "the time zone data is in the installed runtime or the system",
    "2026-11-01-canada-time-zone-change-databases": "the time zone data is in the installed database",
    "2027-03-15-tls-100-day-certificates": "a certificate's lifetime is set by its issuer, not by a line in the repository",
    "2026-11-03-chrome-157-builds-in-http-only-site-warning": "the warning depends on how a site is served and on the browser",
    "2026-11-24-quad9-leaves-france": "whether it breaks depends on the country the DNS server runs in, and AdGuard Home keeps its settings on the device",
    "2026-12-01-arcgis-living-atlas-items-retire": "the layers a web map uses are stored in the map on ArcGIS Online, not in the repository",
    "2008-01-20-mysql-timestamp-2038-limit": "the row's check lists TIMESTAMP columns in the running MySQL server; a schema file in a repository does not show which database it runs on or whether a column holds future dates",
    "2027-01-01-windows-canadian-zones-first-hour-2027": "the affected build is the installed SQL Server or .NET Framework, and the row's check runs on the server, not in the repository's files"
  },
  "signatures": [
    {"row": "2026-10-16-github-macos-14-brownouts", "kind": "match", "listed": "workflows", "files": "workflow", "patterns": [ "\\bmacos-14(-large|-xlarge)?\\b" ]},
    {"row": "2026-11-02-github-macos-14-runner-retirement", "kind": "match", "listed": "workflows", "files": "workflow", "patterns": [ "\\bmacos-14(-large|-xlarge)?\\b" ]},
    {"row": "2026-10-19-ubuntu-latest-26-04-python-ruby-setup", "kind": "possible", "listed": "workflows", "files": "workflow", "patterns": [ "\\b(actions/setup-python|ruby/setup-ruby)@" ], "needs": "\\bubuntu-latest\\b", "tool": "/tools/ubuntu-2604-check/"},
    {"row": "2026-10-19-ubuntu-latest-26-04-erlang-setup-beam", "kind": "possible", "listed": "workflows", "files": "workflow", "patterns": [ "\\berlef/setup-beam@" ], "needs": "\\bubuntu-latest\\b"},
    {"row": "2026-10-13-python-3-16-asyncio-policy-removal", "kind": "possible", "listed": "packages", "files": "^(.*/)?(requirements[^/]*\\.(txt|in)|pyproject\\.toml|setup\\.cfg|setup\\.py|Pipfile|Pipfile\\.lock|poetry\\.lock|uv\\.lock|tox\\.ini)$", "patterns": [ "pytest[-_]asyncio\\s*([\"',\\]=<>~!;\\[]|$)" ]},
    {"row": "2026-10-25-europe-clocks-go-back-schedulers", "kind": "possible", "listed": "packages", "files": "^(.*/)?package\\.json$", "patterns": [ "\"(cron|node-schedule|n8n)\"\\s*:" ]},
    {"row": "2026-11-01-us-clocks-go-back-schedulers", "kind": "possible", "listed": "packages", "files": "^(.*/)?package\\.json$", "patterns": [ "\"(cron|node-schedule|n8n)\"\\s*:" ]},
    {"row": "2026-11-01-us-clocks-go-back-celery-beat", "kind": "possible", "listed": "packages", "files": "^(.*/)?(requirements[^/]*\\.(txt|in)|pyproject\\.toml|setup\\.cfg|setup\\.py|Pipfile|Pipfile\\.lock|poetry\\.lock|uv\\.lock|tox\\.ini)$", "patterns": ["(^|[^\\w.-])[Cc]elery\\s*([\"',\\]=<>~!;\\[]|$)"]},
    {"row": "2026-11-01-us-clocks-go-back-sidekiq-cron", "kind": "possible", "listed": "ruby", "files": "(^|/)Gemfile\\.lock$", "patterns": ["^ {2,4}sidekiq-cron( |$)"]},
    {"row": "2026-11-16-usgs-waterservices-slowdown", "kind": "match", "listed": "data-apis", "files": "any", "patterns": [ "waterservices\\.usgs\\.gov" ]},
    {"row": "2027-02-22-usgs-waterservices-decommissioned", "kind": "match", "listed": "data-apis", "files": "any", "patterns": [ "waterservices\\.usgs\\.gov" ]},
    {"row": "2026-12-16-socrata-soda1-removal", "kind": "match", "listed": "data-apis", "files": "any", "patterns": [ "accessType=DOWNLOAD" ]},
    {"row": "2027-01-14-openai-removes-gpt-4o-gpt-4-1", "kind": "match", "listed": "models", "files": "^(?!(.*/)?(tests?|__tests__|specs?|testdata|test[-_]data|testutils?|fixtures?|__fixtures__|__mocks__|mocks?|e2e)/)(?!(.*/)?(test_[^/]*\\.py|conftest\\.py|[^/]*[._-](tests?|specs?)\\.(py|js|mjs|cjs|jsx|ts|tsx|go|rb|php|java|kt|cs|rs|swift|exs?)|[^/]*Tests?\\.(java|kt|kts|cs|swift|scala))$)(?!(.*/)?model_prices_and_context_window[^/]*\\.json$)(.*\\.(py|pyi|ipynb|js|mjs|cjs|jsx|ts|tsx|go|rb|php|java|kt|kts|scala|cs|rs|swift|ex|exs|sh|bash|zsh|ps1|ya?ml|toml|json|ini|cfg|conf|env|properties|tf|r|R)$|(.*/)?(Dockerfile[^/]*|Makefile|\\.env[^/]*)$)", "patterns": [ "^(?!\\s*(#|//|/\\*|\\*|--))(?=.*[\"'](openai/)?gpt-4(o|\\.1)(-mini)?(-20[0-9]{2}-[0-9]{2}-[0-9]{2})?[\"'])" ]},
    {"row": "2026-12-11-openai-removes-gpt-5-o3-snapshots", "kind": "match", "listed": "models", "files": "^(?!(.*/)?(tests?|__tests__|specs?|testdata|test[-_]data|testutils?|fixtures?|__fixtures__|__mocks__|mocks?|e2e)/)(?!(.*/)?(test_[^/]*\\.py|conftest\\.py|[^/]*[._-](tests?|specs?)\\.(py|js|mjs|cjs|jsx|ts|tsx|go|rb|php|java|kt|cs|rs|swift|exs?)|[^/]*Tests?\\.(java|kt|kts|cs|swift|scala))$)(?!(.*/)?model_prices_and_context_window[^/]*\\.json$)(.*\\.(py|pyi|ipynb|js|mjs|cjs|jsx|ts|tsx|go|rb|php|java|kt|kts|scala|cs|rs|swift|ex|exs|sh|bash|zsh|ps1|ya?ml|toml|json|ini|cfg|conf|env|properties|tf|r|R)$|(.*/)?(Dockerfile[^/]*|Makefile|\\.env[^/]*)$)", "patterns": [ "^(?!\\s*(#|//|/\\*|\\*|--))(?=.*[\"'](openai/)?gpt-5(-mini|-nano|-pro)?(-20[0-9]{2}-[0-9]{2}-[0-9]{2})?[\"'])", "^(?!\\s*(#|//|/\\*|\\*|--))(?=.*([Mm][Oo][Dd][Ee][Ll]|[Cc][Oo][Dd][Ee][Xx]|[Oo][Pp][Ee][Nn][Aa][Ii]|gpt-|[\"']o[14]|:\"o3|[\"']o3(-pro)?[\"']\\s*:)).*[\"'](openai/)?o3(-pro)?(-20[0-9]{2}-[0-9]{2}-[0-9]{2})?[\"']" ]},
    {"row": "2026-11-17-gemini-tts-live-previews-shut-down", "kind": "match", "listed": "models", "files": "^(?!(.*/)?(tests?|__tests__|specs?|testdata|test[-_]data|testutils?|fixtures?|__fixtures__|__mocks__|mocks?|e2e)/)(?!(.*/)?(test_[^/]*\\.py|conftest\\.py|[^/]*[._-](tests?|specs?)\\.(py|js|mjs|cjs|jsx|ts|tsx|go|rb|php|java|kt|cs|rs|swift|exs?)|[^/]*Tests?\\.(java|kt|kts|cs|swift|scala))$)(?!(.*/)?model_prices_and_context_window[^/]*\\.json$)(.*\\.(py|pyi|ipynb|js|mjs|cjs|jsx|ts|tsx|go|rb|php|java|kt|kts|scala|cs|rs|swift|ex|exs|sh|bash|zsh|ps1|ya?ml|toml|json|ini|cfg|conf|env|properties|tf|r|R)$|(.*/)?(Dockerfile[^/]*|Makefile|\\.env[^/]*)$)", "patterns": [ "^(?!\\s*(#|//|/\\*|\\*|--))(?=.*(gemini-2\\.5-flash-preview-tts|gemini-2\\.5-pro-preview-tts|gemini-3\\.1-flash-tts-preview|gemini-3\\.1-flash-live-preview|gemini-2\\.5-flash-native-audio-preview-12-2025))" ]},
    {"row": "2026-11-17-chrome-158-stops-running-xslt", "kind": "match", "listed": "rust-xslt", "files": "\\.xml$", "patterns": [ "xml-stylesheet" ]},
    {"row": "2026-11-30-claude-sonnet-4-5-retired", "kind": "match", "listed": "models", "files": "^(?!(.*/)?(tests?|__tests__|specs?|testdata|test[-_]data|testutils?|fixtures?|__fixtures__|__mocks__|mocks?|e2e)/)(?!(.*/)?(test_[^/]*\\.py|conftest\\.py|[^/]*[._-](tests?|specs?)\\.(py|js|mjs|cjs|jsx|ts|tsx|go|rb|php|java|kt|cs|rs|swift|exs?)|[^/]*Tests?\\.(java|kt|kts|cs|swift|scala))$)(?!(.*/)?model_prices_and_context_window[^/]*\\.json$)(.*\\.(py|pyi|ipynb|js|mjs|cjs|jsx|ts|tsx|go|rb|php|java|kt|kts|scala|cs|rs|swift|ex|exs|sh|bash|zsh|ps1|ya?ml|toml|json|ini|cfg|conf|env|properties|tf|r|R)$|(.*/)?(Dockerfile[^/]*|Makefile|\\.env[^/]*)$)", "patterns": [ "^(?!\\s*(#|//|/\\*|\\*|--))(?=.*claude-sonnet-4-5)" ]},
    {"row": "2027-04-08-bedrock-claude-sonnet-4-5-end-of-life", "kind": "match", "listed": "models", "files": "^(?!(.*/)?(tests?|__tests__|specs?|testdata|test[-_]data|testutils?|fixtures?|__fixtures__|__mocks__|mocks?|e2e)/)(?!(.*/)?(test_[^/]*\\.py|conftest\\.py|[^/]*[._-](tests?|specs?)\\.(py|js|mjs|cjs|jsx|ts|tsx|go|rb|php|java|kt|cs|rs|swift|exs?)|[^/]*Tests?\\.(java|kt|kts|cs|swift|scala))$)(?!(.*/)?model_prices_and_context_window[^/]*\\.json$)(.*\\.(py|pyi|ipynb|js|mjs|cjs|jsx|ts|tsx|go|rb|php|java|kt|kts|scala|cs|rs|swift|ex|exs|sh|bash|zsh|ps1|ya?ml|toml|json|ini|cfg|conf|env|properties|tf|r|R)$|(.*/)?(Dockerfile[^/]*|Makefile|\\.env[^/]*)$)", "patterns": [ "^(?!\\s*(#|//|/\\*|\\*|--))(?=.*anthropic\\.claude-sonnet-4-5)" ]},
    {"row": "2026-11-30-openai-prompts-evals-agent-builder-shut-down", "kind": "match", "listed": "api-calls", "files": "any", "patterns": [ "pmpt_|/v1/prompts", "evals\\.(runs\\.)?create" ]},
    {"row": "2026-12-01-openai-gpt-image-models-removed", "kind": "match", "listed": "models", "files": "^(?!(.*/)?(tests?|__tests__|specs?|testdata|test[-_]data|testutils?|fixtures?|__fixtures__|__mocks__|mocks?|e2e)/)(?!(.*/)?(test_[^/]*\\.py|conftest\\.py|[^/]*[._-](tests?|specs?)\\.(py|js|mjs|cjs|jsx|ts|tsx|go|rb|php|java|kt|cs|rs|swift|exs?)|[^/]*Tests?\\.(java|kt|kts|cs|swift|scala))$)(?!(.*/)?model_prices_and_context_window[^/]*\\.json$)(.*\\.(py|pyi|ipynb|js|mjs|cjs|jsx|ts|tsx|go|rb|php|java|kt|kts|scala|cs|rs|swift|ex|exs|sh|bash|zsh|ps1|ya?ml|toml|json|ini|cfg|conf|env|properties|tf|r|R)$|(.*/)?(Dockerfile[^/]*|Makefile|\\.env[^/]*)$)", "patterns": [ "^(?!\\s*(#|//|/\\*|\\*|--))(?=.*(gpt-image-1-mini|gpt-image-1\\.5|chatgpt-image-latest))" ]},
    {"row": "2026-11-19-postgres-latest-becomes-19", "kind": "postgres", "listed": "postgres", "files": "(^|/)([^/]*compose[^/]*\\.ya?ml|Dockerfile[^/]*)$", "patterns": [ "(image:|FROM)\\s*[\"']?(docker\\.io/)?(library/)?postgres(:[A-Za-z0-9._-]+)?(@sha256:[0-9a-f]+)?" ]},
    {"row": "2026-11-03-noaa-nam-model-ends", "kind": "match", "listed": "data-apis", "files": "any", "patterns": [ "nccf/com/(nam|sref|href|hiresw|nam_mos)/", "gribfilter\\.php\\?ds=(nam|sref|href|hires)", "filter_(nam|sref|hires|href)[a-z_]*\\.pl", "NCEP/(NAM|SREF|HREF)/", "noaa-(nam|href|sref)-pds" ]},
    {"row": "2026-12-31-launchdarkly-rest-api-old-versions-retired", "kind": "match", "listed": "api-calls", "files": "any", "patterns": [ "api/v2/(flags|segments|roles|tokens)", "launchdarkly-api|api-client-go" ]},
    {"row": "2026-10-30-homebrew-removes-node-18", "kind": "match", "listed": "homebrew", "files": "^(\\.github/.*|(.*/)?Brewfile)$", "patterns": [ "(brew install|^ *brew \").*(node@18|hasura-cli|tldr|icu4c@77)" ]},
    {"row": "2027-01-09-homebrew-removes-protobuf-21", "kind": "match", "listed": "homebrew", "files": "^(\\.github/.*|(.*/)?Brewfile)$", "patterns": [ "(brew install|^ *brew \").*protobuf@21" ]},
    {"row": "2026-10-31-openai-evals-existing-evals-read-only", "kind": "match", "listed": "api-calls", "files": "any", "patterns": [ "evals\\.(runs\\.)?create" ]},
    {"row": "2026-11-12-rust-1-100-version-checks", "kind": "match", "listed": "rust-xslt", "files": "any", "patterns": [ "rustc +(-vV|-V|--version)" ]},
    {"row": "2026-11-04-github-ssh-sha1-rsa-brownouts", "kind": "possible", "listed": "ssh", "files": "(^|/)(package\\.json|requirements[^/]*\\.(txt|in)|pyproject\\.toml|setup\\.cfg|setup\\.py|Pipfile|Pipfile\\.lock|poetry\\.lock|uv\\.lock|pom\\.xml|build\\.gradle(\\.kts)?)$|\\.go$", "patterns": [ "\"ssh2\"\\s*:", "\\bparamiko\\b(?!-call)", "golang\\.org/x/crypto/ssh\\b", "com\\.jcraft|\\bjsch\\b" ]},
    {"row": "2027-01-13-github-ssh-sha1-rsa-removed", "kind": "possible", "listed": "ssh", "files": "(^|/)(package\\.json|requirements[^/]*\\.(txt|in)|pyproject\\.toml|setup\\.cfg|setup\\.py|Pipfile|Pipfile\\.lock|poetry\\.lock|uv\\.lock|pom\\.xml|build\\.gradle(\\.kts)?)$|\\.go$", "patterns": [ "\"ssh2\"\\s*:", "\\bparamiko\\b(?!-call)", "golang\\.org/x/crypto/ssh\\b", "com\\.jcraft|\\bjsch\\b" ]},
    {"row": "2026-12-25-ruby-4-1-removes-old-c-apis", "kind": "match", "listed": "ruby", "files": "(^|/)Gemfile\\.lock$", "patterns": [ "^ {4}(eventmachine|thin|kostya-sigar|yajl-ruby|hiredis|therubyracer|ffi-yajl|cbor|timfel-krb5-auth|atomic|iconv|hpricot|rblineprof|zookeeper|ruby-stemmer|panko_serializer|algorithms|ruby-debug-ide|debase|bson_ext|numo-narray|molinillo|mobility|packwerk|facter) \\(" ]},
    {"row": "2026-11-01-google-play-target-36-back-handlers", "kind": "possible", "listed": "android", "files": "\\.(java|kt|xml)$", "patterns": [ "onBackPressed *\\(", "KEYCODE_BACK", "windowOptOutEdgeToEdgeEnforcement", "screenOrientation", "[Rr]equestedOrientation", "resizeableActivity", "android:m(ax|in)AspectRatio" ]},
    {"row": "2026-11-02-macos-26-runners-openssl-4", "kind": "match", "listed": "openssl", "files": "^\\.github/", "patterns": [ "grep.*OpenSSL 3", "openssl version -e", "-extfile" ]},
    {"row": "2026-11-03-chrome-157-html-in-canvas-old-names-removed", "kind": "possible", "listed": "api-calls", "files": "any", "patterns": [ "[Tt][Ee][Xx][Ee][Ll][Ee][Mm][Ee][Nn][Tt][Ii][Mm][Aa][Gg][Ee]2[Dd]", "[Cc][Oo][Pp][Yy][Ee][Ll][Ee][Mm][Ee][Nn][Tt][Ii][Mm][Aa][Gg][Ee][Tt][Oo][Tt][Ee][Xx][Tt][Uu][Rr][Ee]", "[Ll][Aa][Yy][Oo][Uu][Tt][Ss][Uu][Bb][Tt][Rr][Ee][Ee]" ]},
    {"row": "2026-11-19-php-8-6-docker-images-drop-pecl-mbstring", "kind": "possible", "listed": "postgres", "files": "(^|/)([^/]*compose[^/]*\\.ya?ml|Dockerfile[^/]*)$", "patterns": [ "(image:|FROM)\\s*(--\\S+\\s+)*[\"']?(docker\\.io/)?(library/)?php(:(latest|8|8-[A-Za-z0-9._-]+|[A-Za-z][A-Za-z0-9._-]*|[^\\s\"'@]*\\$[^\\s\"'@]*))?(?=[\\s\"']|$)" ]},
    {"row": "2026-10-28-node-lts-becomes-node-26", "kind": "possible", "listed": "postgres", "files": "(^|/)([^/]*ockerfile[^/]*|[^/]*\\.ya?ml)$", "patterns": [ "node:lts(?!-krypton)(-[A-Za-z0-9._-]+)?(?![A-Za-z0-9._@-])" ], "needs": "\\b(yarn|corepack|apt-key)\\b(?!\\.lock)"},
    {"row": "2026-11-17-duckdb-1-4-lts-ends", "kind": "possible", "listed": "api-calls", "files": "\\.py$", "patterns": [ "\\)\\.fetch(one|many)\\(", "(sql|query)\\(.*\\)\\.execute\\(", "fetch_arrow_table\\(", "\\.(arrow|pl)\\(\\)" ], "needs": "duckdb"},
    {"row": "2026-11-19-azure-pipelines-ubuntu-latest-26-04-home-vsts", "kind": "possible", "listed": "workflows", "files": "source", "patterns": [ "\\/home/vsts" ]},
    {"row": "2026-11-16-langfuse-cloud-deprecated-apis-removed", "kind": "match", "listed": "api-calls", "files": "any", "patterns": [ "api/public/(traces|observations|sessions|metrics)([^a-zA-Z0-9_-]|$)", "api/public/(scores|v2/scores|ingestion|spans)([^a-zA-Z0-9_-]|$)", "api/public/(generations|events|dataset-run-items)([^a-zA-Z0-9_-]|$)", "api/public/datasets/[^/\"' ]+/runs", "api\\.(trace|sessions)\\.(list|get)([^a-zA-Z0-9_]|$)", "api\\.scores\\.(get_many|get_by_id)([^a-zA-Z0-9_]|$)", "api\\.scores\\.(getMany|getById)([^a-zA-Z0-9_]|$)", "\\.(fetch_traces?|fetch_observations)([^a-zA-Z0-9_]|$)", "\\.(fetch_sessions|fetchTraces?)([^a-zA-Z0-9_]|$)", "\\.(fetchSessions|fetchObservation)([^a-zA-Z0-9_]|$)", "legacy\\.(observations_v1|observationsV1)\\.", "legacy\\.(metrics_v1|metricsV1)\\.", "dataset_run_items|datasetRunItems", "_dataset_runs?\\(|DatasetRuns?\\(", "\\.datasets\\.(get_runs?|getRuns?)\\(", "\\.datasets\\.(delete_run|deleteRun)\\(", "ingestion\\.batch\\(" ]},
    {"row": "2026-11-25-bioconductor-3-24-packages-missing", "kind": "possible", "listed": "packages", "files": "(^|/)([^/]+\\.([Rr]|[Rr]md|qmd)|DESCRIPTION|Dockerfile[^/]*|renv\\.lock)$", "patterns": [ "(^|[^\\w.])(decoupleR|dorothea|progeny)::", "(library|require|requireNamespace|loadNamespace)\\(\\s*[\"']?(decoupleR|dorothea|progeny)[\"']?\\s*[,)]", "[\"'](decoupleR|dorothea|progeny)[\"']", "^(Depends|Imports|Suggests|LinkingTo|Enhances):.*\\b(decoupleR|dorothea|progeny)\\b", "^\\s+(decoupleR|dorothea|progeny)\\s*(\\([^)]*\\))?\\s*,?\\s*$" ]},
    {"row": "2026-11-19-irs-fire-closes-publication-1220", "kind": "match", "listed": "data-apis", "files": "any", "patterns": ["[Pp][Uu][Bb]([Ll][Ii][Cc][Aa][Tt][Ii][Oo][Nn])?[ ._-]{0,2}1220", "[Ff][Ii][Rr][Ee](\\.[Tt][Ee][Ss][Tt])?\\.[Ii][Rr][Ss]\\.[Gg][Oo][Vv]", "[Ee][Ll][Ee][Cc][Tt][Rr][Oo][Nn][Ii][Cc][Aa][Ll][Ll][Yy]-[Ff][Ii][Rr][Ee]", "[Mm][Oo][Oo][Vv]-[Ii][Oo]/[Ii][Rr][Ss]", "[Pp]1220\\.[Pp][Dd][Ff]"]},
    {"row": "2026-10-19-ubuntu-latest-26-04-java-25-gradle", "kind": "possible", "listed": "workflows", "files": "workflow", "patterns": ["gradlew\\b|\\bgradle +[a-z:]|gradle/(actions/setup-gradle|gradle-build-action)@|\\bflutter +build +(apk|appbundle)\\b"], "needs": "^(?![\\s\\S]*(setup-java|JAVA_HOME))[\\s\\S]*\\bubuntu-latest\\b"},
    {"row": "2027-01-06-openai-removes-text-to-speech-models", "kind": "possible", "listed": "models", "files": "^(?!(.*/)?(tests?|__tests__|specs?|testdata|test[-_]data|testutils?|fixtures?|__fixtures__|__mocks__|mocks?|e2e)/)(?!(.*/)?(test_[^/]*\\.py|conftest\\.py|[^/]*[._-](tests?|specs?)\\.(py|js|mjs|cjs|jsx|ts|tsx|go|rb|php|java|kt|cs|rs|swift|exs?)|[^/]*Tests?\\.(java|kt|kts|cs|swift|scala))$)(?!(.*/)?model_prices_and_context_window[^/]*\\.json$)(.*\\.(py|pyi|ipynb|js|mjs|cjs|jsx|ts|tsx|go|rb|php|java|kt|kts|scala|cs|rs|swift|ex|exs|sh|bash|zsh|ps1|ya?ml|toml|json|ini|cfg|conf|env|properties|tf|r|R)$|(.*/)?(Dockerfile[^/]*|Makefile|\\.env[^/]*)$)", "patterns": ["^(?!\\s*(#|//|/\\*|\\*|--))(?=.*(^|[^A-Za-z0-9_.-])([Tt][Tt][Ss]-1(-[Hh][Dd])?|[Gg][Pp][Tt]-4[Oo]-[Mm][Ii][Nn][Ii]-[Tt][Tt][Ss](-20[0-9]{2}-[0-9]{2}-[0-9]{2})?)([^A-Za-z0-9_.-]|$))", "^(?!\\s*(#|//|/\\*|\\*|--))(?=.*[Ss][Pp][Ee][Ee][Cc][Hh][Mm][Oo][Dd][Ee][Ll](\\.|::)?([Tt][Tt][Ss]_?1(_?[Hh][Dd])?|[Gg][Pp][Tt]_?4[Oo]_?[Mm][Ii][Nn][Ii]_?[Tt][Tt][Ss]))"]},
    {"row": "2027-02-26-openai-removes-whisper-1-transcription", "kind": "possible", "listed": "models", "files": "^(?!(.*/)?(tests?|__tests__|specs?|testdata|test[-_]data|testutils?|fixtures?|__fixtures__|__mocks__|mocks?|e2e)/)(?!(.*/)?(test_[^/]*\\.py|conftest\\.py|[^/]*[._-](tests?|specs?)\\.(py|js|mjs|cjs|jsx|ts|tsx|go|rb|php|java|kt|cs|rs|swift|exs?)|[^/]*Tests?\\.(java|kt|kts|cs|swift|scala))$)(?!(.*/)?model_prices_and_context_window[^/]*\\.json$)(.*\\.(py|pyi|ipynb|js|mjs|cjs|jsx|ts|tsx|go|rb|php|java|kt|kts|scala|cs|rs|swift|ex|exs|sh|bash|zsh|ps1|ya?ml|toml|json|ini|cfg|conf|env|properties|tf|r|R)$|(.*/)?(Dockerfile[^/]*|Makefile|\\.env[^/]*)$)", "patterns": ["^(?!\\s*(#|//|/\\*|\\*|--))(?=.*(^|[^A-Za-z0-9_.-])([Ww][Hh][Ii][Ss][Pp][Ee][Rr]-1|[Gg][Pp][Tt]-4[Oo](-[Mm][Ii][Nn][Ii])?-[Tt][Rr][Aa][Nn][Ss][Cc][Rr][Ii][Bb][Ee](-[Dd][Ii][Aa][Rr][Ii][Zz][Ee])?(-20[0-9]{2}-[0-9]{2}-[0-9]{2})?)([^A-Za-z0-9_.-]|$))", "^(?!\\s*(#|//|/\\*|\\*|--))(?=.*[Aa][Uu][Dd][Ii][Oo][Mm][Oo][Dd][Ee][Ll](\\.|::)?([Ww][Hh][Ii][Ss][Pp][Ee][Rr]_?1|[Gg][Pp][Tt]_?4[Oo]_?([Mm][Ii][Nn][Ii]_?)?[Tt][Rr][Aa][Nn][Ss][Cc][Rr][Ii][Bb][Ee]))"]},
    {"row": "2027-01-20-openai-removes-gpt-realtime-and-legacy-audio-models", "kind": "possible", "listed": "models", "files": "^(?!(.*/)?(tests?|__tests__|specs?|testdata|test[-_]data|testutils?|fixtures?|__fixtures__|__mocks__|mocks?|e2e)/)(?!(.*/)?(test_[^/]*\\.py|conftest\\.py|[^/]*[._-](tests?|specs?)\\.(py|js|mjs|cjs|jsx|ts|tsx|go|rb|php|java|kt|cs|rs|swift|exs?)|[^/]*Tests?\\.(java|kt|kts|cs|swift|scala))$)(?!(.*/)?model_prices_and_context_window[^/]*\\.json$)(.*\\.(py|pyi|ipynb|js|mjs|cjs|jsx|ts|tsx|go|rb|php|java|kt|kts|scala|cs|rs|swift|ex|exs|sh|bash|zsh|ps1|ya?ml|toml|json|ini|cfg|conf|env|properties|tf|r|R)$|(.*/)?(Dockerfile[^/]*|Makefile|\\.env[^/]*)$)", "patterns": ["^(?!\\s*(#|//|/\\*|\\*|--))(?=.*(^|[^A-Za-z0-9_.-])([Gg][Pp][Tt]-[Rr][Ee][Aa][Ll][Tt][Ii][Mm][Ee](-[Mm][Ii][Nn][Ii])?(-20[0-9]{2}-[0-9]{2}-[0-9]{2})?|[Gg][Pp][Tt]-4[Oo](-[Mm][Ii][Nn][Ii])?-[Rr][Ee][Aa][Ll][Tt][Ii][Mm][Ee](-[Pp][Rr][Ee][Vv][Ii][Ee][Ww])?(-20[0-9]{2}-[0-9]{2}-[0-9]{2})?)([^A-Za-z0-9_.-]|$))", "^(?!\\s*(#|//|/\\*|\\*|--))(?=.*(^|[^A-Za-z0-9_.-])([Gg][Pp][Tt]-[Aa][Uu][Dd][Ii][Oo](-[Mm][Ii][Nn][Ii])?(-20[0-9]{2}-[0-9]{2}-[0-9]{2})?|[Gg][Pp][Tt]-4[Oo](-[Mm][Ii][Nn][Ii])?-[Aa][Uu][Dd][Ii][Oo](-[Pp][Rr][Ee][Vv][Ii][Ee][Ww])?(-20[0-9]{2}-[0-9]{2}-[0-9]{2})?)([^A-Za-z0-9_.-]|$))"]},
    {"row": "2027-03-06-health-plan-price-files-schema-3", "kind": "possible", "listed": "data-apis", "files": "any", "patterns": ["reporting_entity_name|reporting_entity_type", "reporting_structure"]},
    {"row": "2027-02-01-airline-delay-cause-category-511b", "kind": "possible", "listed": "data-apis", "files": "any", "patterns": ["[Cc][Aa][Rr][Rr][Ii][Ee][Rr]_?[Dd][Ee][Ll][Aa][Yy]|[Ll][Aa][Tt][Ee]_?[Aa][Ii][Rr][Cc][Rr][Aa][Ff][Tt]_?[Dd][Ee][Ll][Aa][Yy]"]},
    {"row": "2026-11-07-rails-8-0-security-support-ends", "kind": "match", "listed": "ruby", "files": "(^|/)Gemfile\\.lock$", "patterns": ["^ {4}(rails|railties) \\(8\\.0\\."]},
    {"row": "2027-04-22-node-latest-becomes-node-27", "kind": "possible", "listed": "postgres", "files": "(^|/)([^/]*ockerfile[^/]*|[^/]*ontainerfile[^/]*|[^/]*\\.ya?ml)$", "patterns": ["^(?!.*(?:[Nn][Oo][Dd][Ee]:(?:[0-9]|[Ll][Tt][Ss]|[Aa][Rr][Gg][Oo][Nn]|[Bb][Oo][Rr][Oo][Nn]|[Cc][Aa][Rr][Bb][Oo][Nn]|[Dd][Uu][Bb][Nn][Ii][Uu][Mm]|[Ee][Rr][Bb][Ii][Uu][Mm]|[Ff][Ee][Rr][Mm][Ii][Uu][Mm]|[Gg][Aa][Ll][Ll][Ii][Uu][Mm]|[Hh][Yy][Dd][Rr][Oo][Gg][Ee][Nn]|[Ii][Rr][Oo][Nn]|[Jj][Oo][Dd]|[Kk][Rr][Yy][Pp][Tt][Oo][Nn]|[Ll][Ii][Tt][Hh][Ii][Uu][Mm])|@[Ss][Hh][Aa]256)).*(?:[Ff][Rr][Oo][Mm]|[Ii][Mm][Aa][Gg][Ee]:|[Cc][Oo][Nn][Tt][Aa][Ii][Nn][Ee][Rr]:|[Aa][Rr][Gg] ).*\\b[Nn][Oo][Dd][Ee](?:[^-A-Za-z0-9_./]|$)"]},
    {"row": "2027-04-30-node-22-end-of-life", "kind": "possible", "listed": "postgres", "files": "(^|/)([^/]*ockerfile[^/]*|[^/]*ontainerfile[^/]*|[^/]*\\.ya?ml|\\.nvmrc|\\.node-version|\\.tool-versions)$", "patterns": ["[Nn][Oo][Dd][Ee]:(?:22|[Jj][Oo][Dd]|[Ll][Tt][Ss]-[Jj][Oo][Dd])\\b", "[Ll][Tt][Ss]/[Jj][Oo][Dd]", "[Nn][Oo][Dd][Ee]-[Vv][Ee][Rr][Ss][Ii][Oo][Nn]:(?:.*[^.0-9])?22(?:[^0-9]|$)", "^(?:[Vv]|[Nn][Oo][Dd][Ee][Jj][Ss] |[Nn][Oo][Dd][Ee] )?22(?:\\.|\\s|$)"]},
    {"row": "2026-11-20-cloudsmith-cli-password-login-disabled", "kind": "match", "listed": "api-calls", "files": "(^|/)([^/]+\\.(sh|bash|ps1)|[^/]+\\.ya?ml)$", "patterns": ["^\\s*(?:(?:-\\s*)?run:\\s*|-\\s+|exec\\s+)?cloudsmith\\s+(login|token)(?![^\\r\\n]*(?:--help|\\s-h(?:\\s|$)))(?:\\s|$)"]},
    {"row": "2026-12-31-php-8-2-security-support-ends", "kind": "possible", "listed": "postgres", "files": "(^|/)([Dd]ockerfile[^/]*|[Cc]ontainerfile[^/]*|[^/]*compose[^/]*\\.ya?ml)$", "patterns": ["^\\s*(?:FROM\\s+(?:--\\S+\\s+)*|(?:-\\s*)?image:\\s*)[\\x22\\x27]?(?:docker\\.io/)?(?:library/)?php:8\\.2(?:\\.[0-9]+)?(?:-[A-Za-z0-9._-]+)?(?:@sha256:[0-9a-f]{64})?(?=[\\s\\x22\\x27]|$)"]}
  ]
}
