# Pacote de PR - Local Data Support + Gate Karma

## Objetivo do pacote
Consolidar o estado pronto para PR da trilha de suporte local/remote da `praxis-table`, com evidencias de validacao e operacao de testes locais.

## Escopo consolidado
1. `praxis-crud` com suporte a `metadata.data` sem `resource.path`, preservando precedencia remoto > local.
2. Hardening da lane isolada da `praxis-table`.
3. Runner de gate seguro legado substituido pelos comandos canônicos atuais.
4. Revalidacao final do gate com suites completas verdes.

## Commits da etapa
1. `7855fb9` feat(praxis-crud): suportar modo local via metadata.data sem resource.path
2. `cc17ef8` test(praxis-crud): garantir precedencia resourcePath sobre metadata.data
3. `99f5be9` docs(praxis-crud): alinhar contrato local/remote em metadata e hints
4. `accf85b` test(praxis-crud): estabiliza specs para injeção e contrato de metadata
5. `f9eac2c` docs(praxis-table): atualizar status do gate seguro de validacao
6. `93d59dc` chore(karma): add safe gate runner for table+crud
7. `0086e4c` test(praxis-table): estabiliza specs pendentes e fecha suíte
8. `4e95076` test(praxis-table): expand shared TestBed provider coverage
9. `e545355` docs(praxis-table): atualizar status de validacao pos-hardening
10. `186e367` chore(karma): add chromium probe wrapper for preimpl lane
11. `3951fab` docs(praxis-table): registrar revalidacao do safe gate
12. `73e7160` chore(karma): auto-configure chromium wrapper in safe gate
13. `7a8e0d4` test(praxis-crud): cobrir precedencia de resourcePath fallback
14. `d84c49d` docs(praxis-table): registrar safe-gate com crud 32 success
15. `5d0a335` docs(praxis-table): registrar full suite 372 success apos safe-gate
16. `0c0f55a` chore(karma): auto-fallback to chromium wrapper in preimpl lane
17. `f7fe073` chore(karma): log resolved real chromium in preimpl lane
18. `1857a87` docs(praxis-table): registrar gate estrito com full suite verde
19. `b7d6782` docs(karma): document strict safe-gate modes

## Validacoes executadas (gate operacional)
1. `bash ./scripts/test-table-preimpl-lane.sh`
   - Resultado: `TOTAL: 48 SUCCESS`.
2. Gate canônico atual: `npm run test:table`
   - Substitui o runner legado removido.
3. Gate ordenado de compatibilidade DSL quando a mudanca tocar contratos da tabela: `bash tools/karma/run-table-dsl-compat-gate.sh`
   - Usar junto com build/test focal conforme o `AGENTS.md` da subarea.

## Cobertura critica confirmada
1. Preservacao de `pageSize` local (override do usuario)
   - Spec: `projects/praxis-table/src/lib/praxis-table.local-runtime.spec.ts` (`preserves user-selected pageSize in local mode during data source sync`).
2. Estabilidade de `fieldMetadata` em modo local
   - Spec: `projects/praxis-table/src/lib/praxis-table.local-runtime.spec.ts` (`keeps local fieldMetadata reference stable when config is unchanged`).

## Risco residual atual
1. Sem bloqueador funcional imediato identificado no gate atual.
2. Aviso nao bloqueante em build de testes: `baseline-browser-mapping` desatualizado.

## Evidencia MCP (Angular CLI MCP)
1. Ferramentas listadas via MCP smoke inline:
   - `get_best_practices`
   - `search_documentation`
   - `list_projects`
2. Recomendacoes aplicadas ao pacote:
   - manter validacao focada e reproduzivel via `ng test` com `--include` por suite/arquivo;
   - preferir setup de testes centralizado e reutilizavel (consolidacao de providers compartilhados no hardening dos integration tests);
   - manter contratos e comportamento com regressao protegida por specs dedicadas (precedencia `resourcePath > data`, transicoes local/remote/empty);
   - executar gate com comandos explicitos e deterministicos.
3. Referencias oficiais retornadas por `search_documentation`:
   - https://angular.dev/cli/test#options
   - https://angular.dev/guide/testing/utility-apis

## Nota operacional
O workspace atual usa `npm run mcp:smoke` e `npm run mcp:tools` via `scripts/mcp-smoke.js` para validar o Angular CLI MCP. A trilha Chrome DevTools continua separada em `npm run mcp:devtools:*`. A validacao MCP tambem pode ser executada por cliente inline (`@modelcontextprotocol/sdk`) conectando em `npx -y @angular/cli mcp`.
