Skip to content

feat(compression): wire RTK comment-stripping config + honor preserveDocstrings - #4242

Merged
diegosouzapw merged 1 commit into
release/v3.8.29from
feat/compression-strip-code-comments
Jun 19, 2026
Merged

diegosouzapw merged 1 commit into
release/v3.8.29from
feat/compression-strip-code-comments

Conversation

@diegosouzapw

Copy link
Copy Markdown
Collaborator

Cauda longa do programa "compressão 100% funcional" — item 4/6

Problema

codeStripper sempre suportou removeComments + preserveDocstrings, mas ambos eram inalcançáveis:

  • O engine RTK chamava stripCode(code, language) sem opções → comentários nunca eram removidos pelo runtime, mesmo com applyToCodeBlocks ligado.
  • preserveDocstrings era dobrado em opts mas nunca honrado por stripJsTsComments — que removia o JSDoc junto.

Fix

  • Novos campos RtkConfig: stripCodeComments (default false) + preserveDocstrings (default true), threaded pelo schema Zod, normalizer de DB e o pass applyToCodeBlocks do engine.
  • stripJsTsComments agora preserva blocos /** ... */ (JSDoc) quando preserveDocstrings está ligado (pula esses ranges).

Não-objetivos (escopo preservado)

  • Default permanece "preserve" → zero mudança silenciosa de produção.
  • RTK continua processando só mensagens tool/assistant (shouldCompressMessage) — não estendi para user (seria mudança de comportamento, fora do escopo "reachability").

Teste (TDD — RED→GREEN, 4 falhas iniciais)

tests/unit/compression/rtk-strip-comments.test.ts:

  1. stripCode preserva JSDoc / remove linha+bloco quando preserveDocstrings on;
  2. remove JSDoc quando off;
  3. runtime: applyToCodeBlocks + stripCodeComments removem comentários no bloco cercado;
  4. runtime deixa comentários intactos com stripCodeComments off (default);
  5. schema aceita os 2 campos;
  6. round-trip de DB persiste os 2 campos.

⭐ Root cause durante o RED: o teste runtime usava role user (RTK pula → passava trivial); corrigido para assistant (path suportado), confirmando que o wiring de produção está certo.

Validação: suíte de compressão 703/703 ✓ (testes existentes do codeStripper intactos) · typecheck:core ✓ · lint ✓ · check:file-size ✓

…Docstrings

codeStripper has always supported removeComments + preserveDocstrings, but both
were unreachable: the RTK engine called stripCode with no options (so comments
were never removed through the runtime), and preserveDocstrings was folded into
opts yet never honored by stripJsTsComments — it removed JSDoc too.

- New RtkConfig fields stripCodeComments (default false) + preserveDocstrings
  (default true), threaded through the Zod schema, DB normalizer, and the
  applyToCodeBlocks pass in the RTK engine.
- stripJsTsComments now keeps `/** ... */` JSDoc block comments when
  preserveDocstrings is on (skips those ranges).

Default stays "preserve" — no silent production change. RTK still only processes
tool/assistant messages (shouldCompressMessage), unchanged.

Tests: stripCode JSDoc preserve/remove, runtime reachability via applyToCodeBlocks,
schema accept, DB round-trip. Full compression suite 703/703 green; typecheck:core
+ lint + file-size gate clean.
@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 merged commit 03141b1 into release/v3.8.29 Jun 19, 2026
4 checks passed
@diegosouzapw diegosouzapw mentioned this pull request Jun 19, 2026
@diegosouzapw
diegosouzapw deleted the feat/compression-strip-code-comments branch June 19, 2026 12:06
tkgo11 pushed a commit to tkgo11/OmniRoute that referenced this pull request Sep 23, 2026
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.

1 participant