Skip to content

fix(db): registrar caseMapping/schemaColumns como db-internal (check-db-rules) - #4966

Closed
diegosouzapw wants to merge 115 commits into
release/v3.8.38from
fix/db-rules-godfile-split
Closed

diegosouzapw wants to merge 115 commits into
release/v3.8.38from
fix/db-rules-godfile-split

Conversation

@diegosouzapw

Copy link
Copy Markdown
Owner

O godfile-split de db/core.ts (#4947) extraiu dois leaves db-internal que ficaram sem registro no gate check:db-rules:

  • src/lib/db/caseMapping.ts — snake↔camel column mapping puro
  • src/lib/db/schemaColumns.ts — reconciliação idempotente de colunas (ALTER TABLE … ADD COLUMN + introspecção)

Ambos são importados só por db/core.ts (grep confirma um único importer cada). A regra #2 (re-export) do checker exige que todo módulo db/ novo seja re-exportado por localDb.ts ou justificado em INTENTIONALLY_INTERNAL. Como são plumbing interno (não CRUD de domínio), re-exportá-los via localDb incentivaria o anti-padrão de barrel-import proibido pela Hard Rule #2 — então entram na allowlist com classificação db-internal, exatamente como healthCheck / migrationRunner / optimizationSettings.

Por que importa

Pré-flight npm run check:release-green na HEAD do release/v3.8.36 acusou este HARD failure. Sem o fix, o release PR #4854 (release/v3.8.36 → main) vermelharia no primeiro CI (job db-rules).

Validação (Rule #18 — gate red→green)

  • Antes: [#2 re-export] 2 módulo(s) db/ não re-exportado(s): caseMapping, schemaColumns → exit 1
  • Depois: [check-db-rules] OK (91 módulos db/, 59 re-exportados, 32 intencionalmente-internos)
  • tests/unit/check-db-rules{,-classification}.test.ts: 27/27 pass (contagem auditada 30→32; ambos passam o teste de "≥1 importer real")

Só scripts/ + teste do gate — zero código de produção tocado.

Diego Rodrigues de Sa e Souza and others added 30 commits June 23, 2026 18:31
Integrated into release/v3.8.36 (#3501 chatCore extraction stack 1/13)
…3501) (#4824)

Integrated into release/v3.8.36 (#3501 chatCore extraction stack 2/13)
Integrated into release/v3.8.36 (#3501 chatCore extraction stack 3/13)
… completo, #3501) (#4817)

Integrated into release/v3.8.36 (#3501 chatCore extraction stack 4/13)
Integrated into release/v3.8.36 (#3501 chatCore extraction stack 5/13)
… usage non-streaming, #3501) (#4832)

Integrated into release/v3.8.36 (#3501 chatCore extraction stack 6/13)
…ardrail post-call, #3501) (#4831)

Integrated into release/v3.8.36 (#3501 chatCore extraction stack 7/13)
…n-streaming, #3501) (#4828)

Integrated into release/v3.8.36 (#3501 chatCore extraction stack 8/13)
…de resposta non-streaming, #3501) (#4835)

Integrated into release/v3.8.36 (#3501 chatCore extraction stack 9/13)
…streaming, #3501) (#4833)

Integrated into release/v3.8.36 (#3501 chatCore extraction stack 10/13)
…de resposta streaming, #3501) (#4836)

Integrated into release/v3.8.36 (#3501 chatCore extraction stack 11/13)
…-store streaming, #3501) (#4829)

Integrated into release/v3.8.36 (#3501 chatCore extraction stack 12/13)
…orms streaming, #3501) (#4837)

Integrated into release/v3.8.36 (#3501 chatCore extraction stack 13/13)
…ease-acceleration) (#4857)

* feat(quality): add check:test-runner-api gate (vitest-only dirs must use vitest API)

* feat(release): reusable CHANGELOG i18n-mirror sync script

* chore(ops): add prune-stale-worktrees.sh (dry-run by default)

* ci(quality): run test-runner-api + docs-all + vitest + full unit suite on PR->release fast-path

---------

Co-authored-by: Diego Rodrigues de Sa e Souza <souzamiriamrodrigues790@gmail.com>
… EPSILON não bloqueia (#4830)

Integrated into release/v3.8.36 — quota-exclusive qtSd/ listing (#4806) + EPSILON placeholder no longer blocks; rebuilt from stale base (3 defining commits cherry-picked clean over release tip)
Integrated into release/v3.8.36 — Google Flow video-generation provider (#4569), release-green validated (typecheck + 21 tests + file-size)
…_CREDENTIALS (#4694, #4720) (#4796)

Integrated into release/v3.8.36 — auth on compression run-telemetry + OMNIROUTE_EVAL_CREDENTIALS doc, release-green validated (typecheck + 3 tests + env-doc-sync)
…rough (port from 9router#1157) (#4624)

Integrated into release/v3.8.36 — port (rebuilt from stale base; defining commit cherry-picked clean over release tip, release-green validated)
…rmat providers (#4625)

Integrated into release/v3.8.36 — port (rebuilt from stale base; defining commit cherry-picked clean over release tip, release-green validated)
…ocks (#4633)

Integrated into release/v3.8.36 — port (rebuilt from stale base; defining commit cherry-picked clean over release tip, release-green validated)
…thropic providers (#4650)

Integrated into release/v3.8.36 — port (rebuilt from stale base; defining commit cherry-picked clean over release tip, release-green validated)
…4651)

Integrated into release/v3.8.36 — port (rebuilt from stale base; defining commit cherry-picked clean over release tip, release-green validated)
Integrated into release/v3.8.36 — port (rebuilt from stale base; defining commit cherry-picked clean over release tip, release-green validated)
…4656)

Integrated into release/v3.8.36 — port (rebuilt from stale base; defining commit cherry-picked clean over release tip, release-green validated)
…ttings (#4659)

Integrated into release/v3.8.36 — port (rebuilt from stale base; defining commit cherry-picked clean over release tip, release-green validated)
) (#4629)

Integrated into release/v3.8.36 — kiro region SSRF guard (GHSA-6mwv-4mrm-5p3m), port rebuilt clean over release tip
)

Integrated into release/v3.8.36 — port rebuilt clean over release tip, release-green validated
…sages (#4657)

Integrated into release/v3.8.36 — anthropic-compat validation via POST /v1/messages (port 584cf66a), rebuilt clean + baseline; release-green
…#4658)

Integrated into release/v3.8.36 — port rebuilt clean over release tip, release-green validated
diegosouzapw and others added 23 commits June 24, 2026 11:52
Integrated into release/v3.8.36
…d across dashboard pages (#4603) (#4960)

Integrated into release/v3.8.36 (fixes #4603)
…penai-to-claude streaming (#4951) (#4959)

Integrated into release/v3.8.36 (fixes #4951)
…efault (#4963)

Integrated into release/v3.8.36 — restores home topology card (#4596 regression)
…k-db-rules

O godfile-split de db/core.ts (#4947) extraiu dois leaves db-internal —
caseMapping (snake↔camel column mapping puro) e schemaColumns (reconciliação
idempotente de colunas) — ambos importados SÓ por db/core.ts. O gate
check:db-rules (#2 re-export) exige que todo módulo db/ novo seja re-exportado
por localDb.ts OU justificado em INTENTIONALLY_INTERNAL. Como são plumbing
interno (não CRUD de domínio), re-exportar via localDb incentivaria o
anti-padrão de barrel-import proibido pela Rule #2 — então entram na allowlist
com classificação db-internal, igual a healthCheck/migrationRunner/optimizationSettings.

Sem isso o release PR (release/v3.8.36 → main) vermelha no primeiro CI.
Atualiza o teste de contagem auditada (30 → 32).
@gemini-code-assist

Copy link
Copy Markdown
Contributor

Warning

You have reached your daily quota limit. Please wait up to 24 hours and I will start processing your requests again!

@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

@diegosouzapw
diegosouzapw changed the base branch from release/v3.8.36 to release/v3.8.37 June 25, 2026 22:01
@diegosouzapw
diegosouzapw changed the base branch from release/v3.8.37 to release/v3.8.38 June 26, 2026 07:12
@diegosouzapw

Copy link
Copy Markdown
Owner Author

Fechando como obsoleto: o gate check:db-rules já roda verde na release/v3.8.38 (91 módulos, 32 intencionalmente-internos), com caseMapping/schemaColumns já classificados como db-internal por outra PR do mesmo godfile-split. Sem delta a aplicar. (Verificado executando o gate no tip atual.)

@diegosouzapw
diegosouzapw deleted the fix/db-rules-godfile-split branch June 26, 2026 22:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

9 participants