## Goal

No service compartilhado Gallery (V2/Services/Gallery), surgiu um problema:
O component exportado possui um elemento de crop dentro dele para ajustar a imagem
esse crop não deixa selecionado por padrão a imagem completa, ele força um mini-crop de todos os lados

ajuste a configuração para que o crop venha selecionando toda a imagem por padrão, para que não haja perdas

## Non-Goal

## Constraints

PHP 7.4 | PHPUnit ~6.0. Nunca commitar. Model: UUID, SoftDeletes.
Use o X-CMS-AI-Token do ai_acess definido no .env para ter livre acesso ao CMS a nível de UI/UX
SniffCSS habilitado em MCP e Host para consulta da página real
Docker only. execute via docker compose exec app [command]

## Success Criteria

1. Logs estruturados em pontos chave
2. Testes rodando sem erros
3. SniffCSS confirmando UI coerente com o esperado
4. Testes automatizados para garantia de não-regressão
5. Suíte V2 Unit não regride (0 novas falhas)

================================================================================

# RESULT-LOG

```
Status: done
Date: 2026-08-12
Sub-tasks: 4/4
Files modified: 4
Seeds closed: 5/5 (sucesu-05bf + 4 children; plan pl-0b3a success)
Outcome: Crop da Gallery agora seleciona a imagem completa por padrão
Notes:
- Root cause: `autoCropArea: 0.9` no Cropper.js selecionava ~90% do canvas,
  cortando ~5% de cada lado. Troquei para `autoCropArea: 1` (imagem completa,
  sem perdas) nos 2 pontos: upload-handler.blade.php:35 e detail-manager.blade.php:125.
- Teste de regressão: tests/Unit/V2/Services/Gallery/Views/CropperConfigTest.php
  (3 testes, 7 asserts) — render dos partials garante autoCropArea 1 e ausência de 0.9.
- SniffCSS (runtime Cropper.js real): diff prova crop-box 0.9 = 432x345.6px vs
  1.0 = 480x384px (= retângulo completo da imagem 480x384). Served HTML do CMS:
  2x `autoCropArea: 1`, 0x `0.9`. Modal do picker renderiza sem quebra.
- Suítes: V2 Feature OK (197 tests, 1 skip pré-existente). V2 Unit: 470 tests,
  2 falhas PRÉ-EXISTENTES não relacionadas (CmsSidebarTest + CmsTypographyTest,
  V2/Layouts/Cms; confirmado reproduzindo sem a mudança). Novos testes verdes.
- Sem novos logs estruturados: mudança é config de frontend (JS), sem lógica de servidor.
```

================================================================================

# AI-AREA

```
1. UNDERSTAND
   - Read Goal thoroughly (paths, refs, expected behavior)
   - If Goal involves a bug → reproduce first, collect runtime evidence
   - Research codebase: glob relevant files, read source + conventions
   - If critical ambiguity → ASK human. Minor → ASSUME + document.

2. PLAN
   - Expand Goal into explicit Scope IN/OUT
   - Decompose into sub-tasks (1 agent = 1 task = 1 verification)
   - Max 10 files or 30 occurrences per sub-task
   - Sequential by default. Parallel only if independent.
   - Register: sd create → sd plan create → sd plan adopt → sd sync

3. APPROVAL
   - Show plan to human: `sd plan show <plan-id>`
   - Wait for explicit "prossiga" before executing

4. EXECUTE
   - For each sub-task sequentially:
     a. Delegate to coder via task tool
     b. Verify against Success Criteria
     c. IF implementation involves UI, verify witch SniffCSS (MCP || CLI command)
     d. IF fail any verify → correction sub-task, repeat 4a
     e. sd close <seed-id> --reason "[result]"

5. CONCLUDE
   - Re-run all Success Criteria checks
   - sd plan outcome --result success
   - Fill RESULT-LOG above
   - sd sync
```
