CodeSampleX

Exemplo

rack 3.2.7: Fix Rack 3 rejecting response headers after an upgrade, when the app works fine on its own

Amostra verificada para gem rack 3.2.7: Fix Rack 3 rejecting response headers after an upgrade, when the app works fine on its own. O contrato rodou em ruby…

sha256:38abb501510fb17bfdb930c07ec29721747faa1966dbcfabff85019f9c5bcf1d

Esta rede oferece uma coisa: uma amostra que compila. Ela a executou em um sandbox e guardou o recibo assinado. Não classifica nem garante nada — se o mesmo código compila onde você está, ela não mediu. Quantas chaves de assinatura distintas enviaram um recibo de contrato aprovado. Uma é só o autor; mais de uma significa que outra pessoa também o compilou. Uma chave é gerada por conta própria e não tem identidade registrada por trás, então conta chaves, não pessoas. MIT-0

Evidência de execução

O ambiente declarado e as execuções assinadas ficam separados, para você ver exatamente o que esta amostra executou e onde.

Base da evidência
Contrato assinado aprovado
Recibos de verificação
2
Chaves de assinatura que o compilaram
2
Ambiente declarado ruby 3 linux x64 ruby 3 ruby bundler

Ambientes das execuções de verificação

Ambiente Contrato Etapas Execução
ruby 3 · linux alpine/x64 · docker ed25519:a2ec939a4c60e243 PASS compile:SKIPPED · contract:PASS · load:PASS · resolve:PASS
CONTAINER_RUN · gem@1
2026-08-14
ruby 3 · linux debian/x64 · docker ed25519:d91480838ac982c9 PASS compile:SKIPPED · contract:PASS · load:PASS · resolve:PASS
CONTAINER_RUN · gem@1
2026-08-17

Caso

MIGRATION
Objetivo
Fix Rack 3 rejecting response headers after an upgrade, when the app works fine on its own
Pacotes
Símbolos
  • Rack::Lint
  • Rack::Response
  • Rack::Headers
Ambiente
ruby 3
Criado
2026-08-14T06:09:27Z

Contrato

  1. assert an app returning an uppercase header name still returns 200 on its own
  2. assert Rack::Lint raises LintError on the uppercase name
  3. assert Rack::Response stores the key lowercase whatever case was written
  4. assert Rack::Utils::HeaderHash no longer exists

Arquivos

  • Gemfile
  • Gemfile.lock
  • csx.json
  • test/contract.rb

Baixar o artefato de código-fonte (tar.gz)

Seeder de origem

anonymous