Sintoma
tests/integration/test_hmac_key.py importa _load_hmac_key de buildtovalue.api.app (linhas 18, 27, 36, 45, 57). Esse símbolo não existe mais — app.py foi reduzido a edge-wiring no ADR-0093, e _load_hmac_key não está definido em lugar nenhum de buildtovalue/. 5 testes falham no import em main:
TestHmacKeyLoading::{test_env_key_used, test_dev_fallback, test_production_fails_without_key, test_key_not_empty}
TestSignatureWithEnvKey::test_verdict_signed_with_env_key
Pré-existente (provado)
Reproduzido num worktree origin/main limpo (5 failed). Não relacionado ao #189 — descoberto durante o regression sweep da implementação do #189, que tocou apenas _lifespan.py + cross_agent_correlator.py.
Causa raiz
Resíduo do slimming do app.py (ADR-0093): a lógica de HMAC-key migrou para buildtovalue/security/keys.py (init_hmac_key() + get_hmac_key() -> bytes), mas o teste continuou importando o antigo _load_hmac_key do monólito.
Provável correção
Atualizar o teste para exercitar a API atual: init_hmac_key() seguido de get_hmac_key(). Conferir se a semântica que os 5 testes validam (env → dev-fallback → production-fail → key-not-empty) é coberta por keys.py hoje; se sim, é só reescrever os imports/chamadas. Caso a semântica _load_hmac_key() (re-leitura por chamada) seja necessária, avaliar um shim fino.
Escopo
Test-only / bootstrap de chave; fora do escopo do #189. Pequeno, sem bloqueio de sprint.
Sintoma
tests/integration/test_hmac_key.pyimporta_load_hmac_keydebuildtovalue.api.app(linhas 18, 27, 36, 45, 57). Esse símbolo não existe mais —app.pyfoi reduzido a edge-wiring no ADR-0093, e_load_hmac_keynão está definido em lugar nenhum debuildtovalue/. 5 testes falham no import emmain:TestHmacKeyLoading::{test_env_key_used, test_dev_fallback, test_production_fails_without_key, test_key_not_empty}TestSignatureWithEnvKey::test_verdict_signed_with_env_keyPré-existente (provado)
Reproduzido num worktree
origin/mainlimpo (5 failed). Não relacionado ao #189 — descoberto durante o regression sweep da implementação do #189, que tocou apenas_lifespan.py+cross_agent_correlator.py.Causa raiz
Resíduo do slimming do
app.py(ADR-0093): a lógica de HMAC-key migrou parabuildtovalue/security/keys.py(init_hmac_key()+get_hmac_key() -> bytes), mas o teste continuou importando o antigo_load_hmac_keydo monólito.Provável correção
Atualizar o teste para exercitar a API atual:
init_hmac_key()seguido deget_hmac_key(). Conferir se a semântica que os 5 testes validam (env → dev-fallback → production-fail → key-not-empty) é coberta porkeys.pyhoje; se sim, é só reescrever os imports/chamadas. Caso a semântica_load_hmac_key()(re-leitura por chamada) seja necessária, avaliar um shim fino.Escopo
Test-only / bootstrap de chave; fora do escopo do #189. Pequeno, sem bloqueio de sprint.