Skip to content

[FEAT] Guard de clone shallow desliga durability #224

Description

@cpenaforte-clickbus

User story

Como quem lê a métrica de durabilidade, eu quero que um clone raso suprima o cálculo em vez de
inflá-lo
, para nunca receber um número errado sem aviso.

O problema

durability mede quanto do código escrito numa janela ainda está vivo depois dela, usando git blame
para saber quando cada linha viva nasceu. Em clone shallow o blame para no commit de fronteira e
credita a ele todas as linhas antigas
— que entram na janela e inflam a métrica, sem levantar erro
nenhum
.

Hoje o engine não testa --is-shallow-repository em lugar nenhum: grep -rn shallow iris/ não
retorna nada relevante. O que existe é o precedente de detecção em
.github/actions/iris-pr/action.yml:41, que testa o shallow para passar --no-context ao iris pr
outra decisão, o mesmo teste.

Acceptance criteria

  • O engine detecta clone raso por git rev-parse --is-shallow-repository
  • Em clone raso, durability não é calculada e a chave fica ausente do metrics.json
    campo ausente, nunca número errado
  • O restante da análise roda normalmente
  • A supressão é visível na saída do run, não silenciosa
  • Teste com repositório raso e com repositório completo

Scope / non-goals

Dentro: o guard. Fora: mudar o cálculo de durabilidade, e mudar o iris pr.

Se encaixa em qual estágio?

Stage 2 — Engine: tighten signal quality, reduce noise. Vale independentemente da coleta
centralizada: qualquer clone raso hoje enviesa a métrica em silêncio.

Implementation notes

Sem dependência de build — entra sozinha e não muda comportamento de clone completo. O worker clona
completo por desenho; este guard é a rede para o caso de um clone chegar raso por engano.

Links

Activity

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

Metadata

Metadata

Labels

No labels
No labels

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions