# ClientFlow v4.9.28 — Reconciliação decisional e UI operacional

Esta versão constrói sobre a baseline estável v4.9.27.2 sem reintroduzir constraints únicas agressivas no arranque.

## Objetivo

Transformar a reconciliação e a oportunidade numa experiência orientada à decisão:

- oportunidade = processo de compra comercial;
- documento Jasmin/Odoo = evidência/documento oficial ligado ao processo;
- task = próxima ação humana;
- reconciliação = decisão explícita sobre cada evidência.

## Alterações principais

### 1. Reconciliation decision service

Novo ficheiro:

```text
app/reconciliation_decision_service.py
```

Classifica itens e processos reconstruídos em buckets operacionais:

```text
actionable  -> ação recomendada
review      -> requer revisão
historical  -> histórico
ignored     -> ignorado
resolved    -> resolvido
```

A classificação é read-only e não cria constraints na base de dados.

### 2. Reconciliação com decisão explícita

A página `/reconciliation` passa a mostrar um resumo decisional:

```text
Ação recomendada
Requer revisão
Histórico
Ignorados
Resolvidos
```

Cada item passa a mostrar também a decisão principal sugerida, por exemplo:

```text
Ligar à oportunidade sugerida
Criar ou ligar oportunidade
Rever manualmente
Sem ação operacional
```

Foram adicionadas ações explícitas:

```text
/reconciliation/{item_id}/needs-review
/reconciliation/processes/ignore
```

### 3. UI da oportunidade orientada à operação

A página da oportunidade passa a ter um bloco “Mapa operacional” com:

```text
Cliente fiscal
Documento principal
Tasks
Decisão seguinte
```

As ações menos frequentes ficam em “Ações avançadas”.

### 4. Documentos Jasmin mais seguros

Quando a oportunidade já tem documento Jasmin atual, a UI deixa de apresentar “Associar e importar” como ação equivalente. Passa a mostrar “Substituir atual”, evitando duplicados acidentais.

O botão “Converter em fatura” só fica ativo se existir orçamento/pró-forma elegível.

### 5. Tasks com contexto reforçado

A task detail passa a repetir no painel de próxima ação os chips de fila, estado e prioridade para reforçar o contexto operacional.

## Segurança de deploy

Esta versão mantém a regra da v4.9.27.2:

```text
Não criar índice único forte no arranque sobre dados legados.
```

A consistência de “documento principal” é tratada pela aplicação e pela UI, não por constraint nova que possa bloquear o arranque.

## Validação

```text
203 passed
```
