Repository navigation
test(compression): cover every Auto-Clarity style source in the pipeline tests - #15610
Merged
diegosouzapw merged 105 commits intoOct 6, 2026
Merged
diegosouzapw merged 105 commits into
diegosouzapw merged 105 commits into
Conversation
…ine tests Moves diegosouzapw#14551's chat-pipeline cases from tests/integration/chatcore-compression-integration.test.ts to tests/unit/compression/output-styles-auto-clarity.test.ts, which covers the legacy caveman switch, the Output Styles panel, and compression-combo output mode, each with Auto-Clarity off, on, and left unset on a security-topic turn, plus a benign-turn row with the toggle on. Nine of the twelve cases are new. The left-unset rows pin the shipped default (on): a write fills an undefined autoClarity from the stored row, or the default on a fresh DB, and resetStorage gives every case a fresh DB. Each runs right after its "off" row, so a stored row leaking between cases would fail it. With DEFAULT_CAVEMAN_OUTPUT_MODE_CONFIG.autoClarity flipped to false, exactly the three left-unset rows fail. The benign-turn rows pin the bypass's security-topic scope: with the toggle on, a benign turn keeps the styles. The integration file drops from 1,213 to 1,121 lines, under the 1,200-line test cap, so its 1214-line testFrozen entry in config/quality/file-size-baseline.json goes.
The How injection works passage said the output-styles content bypass runs whatever the Auto-Clarity Bypass toggle is set to. Since diegosouzapw#14551, applyOutputStyles runs the bypass only while cavemanOutputMode.autoClarity is on, which is the default. The passage now says so, and adds that with the toggle off the selected styles also apply on security, irreversible-action, clarification, and order-sensitive turns. The guide's 66 translation mirrors are refreshed to match, and .i18n-state.json records the new source and target hashes.
This was referenced Oct 6, 2026
…purify 3.4.16 and patched npm-bundled copies in the image (diegosouzapw#15325) - next/eslint-config-next 16.3.5 -> 16.3.6 (critical RCE in next/og ImageResponse). - override axios ^1.20.0 so ibm-cloud-sdk-core's exact 1.18.0 pin cannot keep the vulnerable copy. - @grpc/grpc-js 1.14.5, dompurify 3.4.16 via lockfile. - Dockerfile npm-internals overlay: undici 6.29.0, brace-expansion 5.0.12, ip-address 10.7.3. node-forge has no patched release yet (dev-only, via promptfoo -> jks-js).
…gosouzapw#15003) Validated in a combined 14-PR board on the current release tip (112313a): 111 focused tests, typecheck:core, open-sse typecheck, gate-manifest, mutation-test-coverage, file-size, changelog-integrity, complexity, env-doc-sync, test-discovery, vitest-exclusions, error-helper, cli-i18n and the i18n new-keys/ui-coverage gates green. Thank you for the contribution.
…zapw#15225) Validated in a combined 14-PR board on the current release tip (112313a): 111 focused tests, typecheck:core, open-sse typecheck, gate-manifest, mutation-test-coverage, file-size, changelog-integrity, complexity, env-doc-sync, test-discovery, vitest-exclusions, error-helper, cli-i18n and the i18n new-keys/ui-coverage gates green. Thank you for the contribution.
… Rule diegosouzapw#16 (diegosouzapw#15389) Validated in a combined 14-PR board on the current release tip (112313a): 111 focused tests, typecheck:core, open-sse typecheck, gate-manifest, mutation-test-coverage, file-size, changelog-integrity, complexity, env-doc-sync, test-discovery, vitest-exclusions, error-helper, cli-i18n and the i18n new-keys/ui-coverage gates green. Thank you for the contribution.
… text (diegosouzapw#15399) Validated in a combined 14-PR board on the current release tip (112313a): 111 focused tests, typecheck:core, open-sse typecheck, gate-manifest, mutation-test-coverage, file-size, changelog-integrity, complexity, env-doc-sync, test-discovery, vitest-exclusions, error-helper, cli-i18n and the i18n new-keys/ui-coverage gates green. Thank you for the contribution.
…alog (diegosouzapw#15396) Validated in a combined 14-PR board on the current release tip (112313a): 111 focused tests, typecheck:core, open-sse typecheck, gate-manifest, mutation-test-coverage, file-size, changelog-integrity, complexity, env-doc-sync, test-discovery, vitest-exclusions, error-helper, cli-i18n and the i18n new-keys/ui-coverage gates green. Thank you for the contribution.
…iegosouzapw#15395) Validated in a combined 14-PR board on the current release tip (112313a): 111 focused tests, typecheck:core, open-sse typecheck, gate-manifest, mutation-test-coverage, file-size, changelog-integrity, complexity, env-doc-sync, test-discovery, vitest-exclusions, error-helper, cli-i18n and the i18n new-keys/ui-coverage gates green. Thank you for the contribution.
…osouzapw#15378) Validated in a combined 14-PR board on the current release tip (112313a): 111 focused tests, typecheck:core, open-sse typecheck, gate-manifest, mutation-test-coverage, file-size, changelog-integrity, complexity, env-doc-sync, test-discovery, vitest-exclusions, error-helper, cli-i18n and the i18n new-keys/ui-coverage gates green. Thank you for the contribution.
diegosouzapw#15432) Validated in a combined 14-PR board on the current release tip (112313a): 111 focused tests, typecheck:core, open-sse typecheck, gate-manifest, mutation-test-coverage, file-size, changelog-integrity, complexity, env-doc-sync, test-discovery, vitest-exclusions, error-helper, cli-i18n and the i18n new-keys/ui-coverage gates green. Thank you for the contribution.
…get (diegosouzapw#15433) Validated in a combined 14-PR board on the current release tip (112313a): 111 focused tests, typecheck:core, open-sse typecheck, gate-manifest, mutation-test-coverage, file-size, changelog-integrity, complexity, env-doc-sync, test-discovery, vitest-exclusions, error-helper, cli-i18n and the i18n new-keys/ui-coverage gates green. Thank you for the contribution.
…#15434) Validated in a combined 14-PR board on the current release tip (112313a): 111 focused tests, typecheck:core, open-sse typecheck, gate-manifest, mutation-test-coverage, file-size, changelog-integrity, complexity, env-doc-sync, test-discovery, vitest-exclusions, error-helper, cli-i18n and the i18n new-keys/ui-coverage gates green. Thank you for the contribution.
…pw#15463) Validated in a combined 14-PR board on the current release tip (112313a): 111 focused tests, typecheck:core, open-sse typecheck, gate-manifest, mutation-test-coverage, file-size, changelog-integrity, complexity, env-doc-sync, test-discovery, vitest-exclusions, error-helper, cli-i18n and the i18n new-keys/ui-coverage gates green. Thank you for the contribution.
) Validated in a combined 14-PR board on the current release tip (112313a): 111 focused tests, typecheck:core, open-sse typecheck, gate-manifest, mutation-test-coverage, file-size, changelog-integrity, complexity, env-doc-sync, test-discovery, vitest-exclusions, error-helper, cli-i18n and the i18n new-keys/ui-coverage gates green. Thank you for the contribution.
…pass (diegosouzapw#15560) Validated in a combined 14-PR board on the current release tip (112313a): 111 focused tests, typecheck:core, open-sse typecheck, gate-manifest, mutation-test-coverage, file-size, changelog-integrity, complexity, env-doc-sync, test-discovery, vitest-exclusions, error-helper, cli-i18n and the i18n new-keys/ui-coverage gates green. Thank you for the contribution.
…ead of failing silently (diegosouzapw#15362) Validated in a combined 14-PR board on the current release tip (112313a): 111 focused tests, typecheck:core, open-sse typecheck, gate-manifest, mutation-test-coverage, file-size, changelog-integrity, complexity, env-doc-sync, test-discovery, vitest-exclusions, error-helper, cli-i18n and the i18n new-keys/ui-coverage gates green. Thank you for the contribution.
…zapw#15224) Validated in a combined board on the current release tip: focused node:test + vitest suites, typecheck:core, open-sse typecheck, gate-manifest, mutation-test-coverage, file-size, changelog-integrity, complexity, env-doc-sync, test-discovery, vitest-exclusions, error-helper, cli-i18n and the i18n new-keys/ui-coverage gates green. Thank you for the contribution.
…umn name" (diegosouzapw#15236) Validated in a combined board on the current release tip: focused node:test + vitest suites, typecheck:core, open-sse typecheck, gate-manifest, mutation-test-coverage, file-size, changelog-integrity, complexity, env-doc-sync, test-discovery, vitest-exclusions, error-helper, cli-i18n and the i18n new-keys/ui-coverage gates green. Thank you for the contribution.
…guard (diegosouzapw#15239) Validated in a combined board on the current release tip: focused node:test + vitest suites, typecheck:core, open-sse typecheck, gate-manifest, mutation-test-coverage, file-size, changelog-integrity, complexity, env-doc-sync, test-discovery, vitest-exclusions, error-helper, cli-i18n and the i18n new-keys/ui-coverage gates green. Thank you for the contribution.
…rt failures (diegosouzapw#15248) Validated in a combined board on the current release tip: focused node:test + vitest suites, typecheck:core, open-sse typecheck, gate-manifest, mutation-test-coverage, file-size, changelog-integrity, complexity, env-doc-sync, test-discovery, vitest-exclusions, error-helper, cli-i18n and the i18n new-keys/ui-coverage gates green. Thank you for the contribution.
… in pool visibility (diegosouzapw#15374) Validated in a combined board on the current release tip: focused node:test + vitest suites, typecheck:core, open-sse typecheck, gate-manifest, mutation-test-coverage, file-size, changelog-integrity, complexity, env-doc-sync, test-discovery, vitest-exclusions, error-helper, cli-i18n and the i18n new-keys/ui-coverage gates green. Thank you for the contribution.
…ouzapw#15375) Validated in a combined board on the current release tip: focused node:test + vitest suites, typecheck:core, open-sse typecheck, gate-manifest, mutation-test-coverage, file-size, changelog-integrity, complexity, env-doc-sync, test-discovery, vitest-exclusions, error-helper, cli-i18n and the i18n new-keys/ui-coverage gates green. Thank you for the contribution.
…osouzapw#15398) Validated in a combined board on the current release tip: focused node:test + vitest suites, typecheck:core, open-sse typecheck, gate-manifest, mutation-test-coverage, file-size, changelog-integrity, complexity, env-doc-sync, test-discovery, vitest-exclusions, error-helper, cli-i18n and the i18n new-keys/ui-coverage gates green. Thank you for the contribution.
…diegosouzapw#15402) Validated in a combined board on the current release tip: focused node:test + vitest suites, typecheck:core, open-sse typecheck, gate-manifest, mutation-test-coverage, file-size, changelog-integrity, complexity, env-doc-sync, test-discovery, vitest-exclusions, error-helper, cli-i18n and the i18n new-keys/ui-coverage gates green. Thank you for the contribution.
…zapw#15443) Brought the tip into the branch (the stacked parent commit had landed as a squash) and revalidated: focused tests, typecheck:core, open-sse typecheck, file-size, changelog-integrity, complexity and mutation-test-coverage green. Thank you for the contribution.
…gosouzapw#15356) Onda 2 (HouMinXi) validada num único board em `.claude/worktrees/batch-w2` sobre `origin/release/v3.8.52` (`e05f1bd78bac`), 26 PRs, superfícies protegidas 0. Evidência: `typecheck:core` limpo. changelog-integrity, complexity (2973/3218) e cognitive-complexity (1356/1437) dentro do baseline. Testes focados: 235 passaram. Os 5 vermelhos não são deste diff: o `.test.tsx` do cloudflared passa no Vitest (1/1); o intervalo do Codex usage passou 3/3 isolado (flake sob carga); o banner no-auth cai no mesmo `useContext` nulo de `tests/unit/request-log-detail-stream.test.ts`, que já existe no tip, por causa do React duplicado em `node_modules/node_modules` desta worktree. O file-size do board ainda vê o teto antigo de `gateways.ts` (já corrigido em diegosouzapw#15679) e o crescimento próprio desta onda em RoutingTab, auth, responseSanitizer, search, proxyFetch e stream. Esse rebaseline entra no follow-up, fora do squash.⚠️ base-red inherited: diegosouzapw#15306 (timeouts de suíte no tip, não neste diff). Obrigado, @HouMinXi.
diegosouzapw#15553) Onda 2 (HouMinXi) validada num único board em `.claude/worktrees/batch-w2` sobre `origin/release/v3.8.52` (`e05f1bd78bac`), 26 PRs, superfícies protegidas 0. Evidência: `typecheck:core` limpo. changelog-integrity, complexity (2973/3218) e cognitive-complexity (1356/1437) dentro do baseline. Testes focados: 235 passaram. Os 5 vermelhos não são deste diff: o `.test.tsx` do cloudflared passa no Vitest (1/1); o intervalo do Codex usage passou 3/3 isolado (flake sob carga); o banner no-auth cai no mesmo `useContext` nulo de `tests/unit/request-log-detail-stream.test.ts`, que já existe no tip, por causa do React duplicado em `node_modules/node_modules` desta worktree. O file-size do board ainda vê o teto antigo de `gateways.ts` (já corrigido em diegosouzapw#15679) e o crescimento próprio desta onda em RoutingTab, auth, responseSanitizer, search, proxyFetch e stream. Esse rebaseline entra no follow-up, fora do squash.⚠️ base-red inherited: diegosouzapw#15306 (timeouts de suíte no tip, não neste diff). Obrigado, @HouMinXi.
Onda 2 (HouMinXi) validada num único board em `.claude/worktrees/batch-w2` sobre `origin/release/v3.8.52` (`e05f1bd78bac`), 26 PRs, superfícies protegidas 0. Evidência: `typecheck:core` limpo. changelog-integrity, complexity (2973/3218) e cognitive-complexity (1356/1437) dentro do baseline. Testes focados: 235 passaram. Os 5 vermelhos não são deste diff: o `.test.tsx` do cloudflared passa no Vitest (1/1); o intervalo do Codex usage passou 3/3 isolado (flake sob carga); o banner no-auth cai no mesmo `useContext` nulo de `tests/unit/request-log-detail-stream.test.ts`, que já existe no tip, por causa do React duplicado em `node_modules/node_modules` desta worktree. O file-size do board ainda vê o teto antigo de `gateways.ts` (já corrigido em diegosouzapw#15679) e o crescimento próprio desta onda em RoutingTab, auth, responseSanitizer, search, proxyFetch e stream. Esse rebaseline entra no follow-up, fora do squash.⚠️ base-red inherited: diegosouzapw#15306 (timeouts de suíte no tip, não neste diff). Obrigado, @HouMinXi.
…gosouzapw#15035) Onda 2 (HouMinXi) validada num único board em `.claude/worktrees/batch-w2` sobre `origin/release/v3.8.52` (`e05f1bd78bac`), 26 PRs, superfícies protegidas 0. Evidência: `typecheck:core` limpo. changelog-integrity, complexity (2973/3218) e cognitive-complexity (1356/1437) dentro do baseline. Testes focados: 235 passaram. Os 5 vermelhos não são deste diff: o `.test.tsx` do cloudflared passa no Vitest (1/1); o intervalo do Codex usage passou 3/3 isolado (flake sob carga); o banner no-auth cai no mesmo `useContext` nulo de `tests/unit/request-log-detail-stream.test.ts`, que já existe no tip, por causa do React duplicado em `node_modules/node_modules` desta worktree. O file-size do board ainda vê o teto antigo de `gateways.ts` (já corrigido em diegosouzapw#15679) e o crescimento próprio desta onda em RoutingTab, auth, responseSanitizer, search, proxyFetch e stream. Esse rebaseline entra no follow-up, fora do squash.⚠️ base-red inherited: diegosouzapw#15306 (timeouts de suíte no tip, não neste diff). Obrigado, @HouMinXi.
…iegosouzapw#15642) Onda 2 (HouMinXi) validada num único board em `.claude/worktrees/batch-w2` sobre `origin/release/v3.8.52` (`e05f1bd78bac`), 26 PRs, superfícies protegidas 0. Evidência: `typecheck:core` limpo. changelog-integrity, complexity (2973/3218) e cognitive-complexity (1356/1437) dentro do baseline. Testes focados: 235 passaram. Os 5 vermelhos não são deste diff: o `.test.tsx` do cloudflared passa no Vitest (1/1); o intervalo do Codex usage passou 3/3 isolado (flake sob carga); o banner no-auth cai no mesmo `useContext` nulo de `tests/unit/request-log-detail-stream.test.ts`, que já existe no tip, por causa do React duplicado em `node_modules/node_modules` desta worktree. O file-size do board ainda vê o teto antigo de `gateways.ts` (já corrigido em diegosouzapw#15679) e o crescimento próprio desta onda em RoutingTab, auth, responseSanitizer, search, proxyFetch e stream. Esse rebaseline entra no follow-up, fora do squash.⚠️ base-red inherited: diegosouzapw#15306 (timeouts de suíte no tip, não neste diff). Obrigado, @HouMinXi.
Follow-up da onda 2. Seis arquivos que já estavam acima do teto cresceram com o squash dos 26 PRs de @HouMinXi. O teto acompanha o tamanho medido com `split("\n").length` no tip `ef3b71c68778`: - `RoutingTab.tsx` 1618 → 1678 - `auth.ts` 3640 → 3642 - `responseSanitizer.ts` 1204 → 1210 - `search.ts` 1789 → 1805 - `proxyFetch.ts` 1404 → 1405 - `stream.ts` 3298 → 3313 `gateways.ts` permanece em 1547 (diegosouzapw#15679). `node scripts/check/check-file-size.mjs` neste branch: OK.⚠️ base-red inherited: diegosouzapw#15306 (timeouts de suíte no tip, não neste diff).
… PR base sha, integration port race (diegosouzapw#15590) Onda 3 (woodsonl) validada num único board em `.claude/worktrees/batch-w3` sobre `origin/release/v3.8.52` (`4f4c983347b9`), 27 PRs, superfícies protegidas 0. Evidência: `typecheck:core` limpo. i18n drift limpo no board. changelog-integrity ok. file-size ok (170 congelados). complexity 2975/3218 e cognitive-complexity 1357/1437 dentro do baseline. node:test focado: 1868 passaram, 0 falharam. Vitest da UI: 150 passaram em 12 arquivos. Os 38 do RTK caem no `useCallback` nulo de `node_modules/node_modules/react` via zustand, o mesmo React duplicado desta worktree. Onde dois PRs mexiam no mesmo save, o board ficou com os dois comportamentos: escrita parcial de engine por id e a fila/resync do PR que entrou depois. O hash de `.i18n-state.json` do guia de quality-gates entra no follow-up, fora do squash.⚠️ base-red inherited: diegosouzapw#15306 (timeouts de suíte no tip, não neste diff). Obrigado, @woodsonl.
…ouzapw#15298) Onda 3 (woodsonl) validada num único board em `.claude/worktrees/batch-w3` sobre `origin/release/v3.8.52` (`4f4c983347b9`), 27 PRs, superfícies protegidas 0. Evidência: `typecheck:core` limpo. i18n drift limpo no board. changelog-integrity ok. file-size ok (170 congelados). complexity 2975/3218 e cognitive-complexity 1357/1437 dentro do baseline. node:test focado: 1868 passaram, 0 falharam. Vitest da UI: 150 passaram em 12 arquivos. Os 38 do RTK caem no `useCallback` nulo de `node_modules/node_modules/react` via zustand, o mesmo React duplicado desta worktree. Onde dois PRs mexiam no mesmo save, o board ficou com os dois comportamentos: escrita parcial de engine por id e a fila/resync do PR que entrou depois. O hash de `.i18n-state.json` do guia de quality-gates entra no follow-up, fora do squash.⚠️ base-red inherited: diegosouzapw#15306 (timeouts de suíte no tip, não neste diff). Obrigado, @woodsonl.
Onda 3 (woodsonl) validada num único board em `.claude/worktrees/batch-w3` sobre `origin/release/v3.8.52` (`4f4c983347b9`), 27 PRs, superfícies protegidas 0. Evidência: `typecheck:core` limpo. i18n drift limpo no board. changelog-integrity ok. file-size ok (170 congelados). complexity 2975/3218 e cognitive-complexity 1357/1437 dentro do baseline. node:test focado: 1868 passaram, 0 falharam. Vitest da UI: 150 passaram em 12 arquivos. Os 38 do RTK caem no `useCallback` nulo de `node_modules/node_modules/react` via zustand, o mesmo React duplicado desta worktree. Onde dois PRs mexiam no mesmo save, o board ficou com os dois comportamentos: escrita parcial de engine por id e a fila/resync do PR que entrou depois. O hash de `.i18n-state.json` do guia de quality-gates entra no follow-up, fora do squash.⚠️ base-red inherited: diegosouzapw#15306 (timeouts de suíte no tip, não neste diff). Obrigado, @woodsonl.
…egosouzapw#15607) Onda 3 (woodsonl) validada num único board em `.claude/worktrees/batch-w3` sobre `origin/release/v3.8.52` (`4f4c983347b9`), 27 PRs, superfícies protegidas 0. Evidência: `typecheck:core` limpo. i18n drift limpo no board. changelog-integrity ok. file-size ok (170 congelados). complexity 2975/3218 e cognitive-complexity 1357/1437 dentro do baseline. node:test focado: 1868 passaram, 0 falharam. Vitest da UI: 150 passaram em 12 arquivos. Os 38 do RTK caem no `useCallback` nulo de `node_modules/node_modules/react` via zustand, o mesmo React duplicado desta worktree. Onde dois PRs mexiam no mesmo save, o board ficou com os dois comportamentos: escrita parcial de engine por id e a fila/resync do PR que entrou depois. O hash de `.i18n-state.json` do guia de quality-gates entra no follow-up, fora do squash.⚠️ base-red inherited: diegosouzapw#15306 (timeouts de suíte no tip, não neste diff). Obrigado, @woodsonl.
…map derivation (diegosouzapw#15601) Onda 3 (woodsonl) validada num único board em `.claude/worktrees/batch-w3` sobre `origin/release/v3.8.52` (`4f4c983347b9`), 27 PRs, superfícies protegidas 0. Evidência: `typecheck:core` limpo. i18n drift limpo no board. changelog-integrity ok. file-size ok (170 congelados). complexity 2975/3218 e cognitive-complexity 1357/1437 dentro do baseline. node:test focado: 1868 passaram, 0 falharam. Vitest da UI: 150 passaram em 12 arquivos. Os 38 do RTK caem no `useCallback` nulo de `node_modules/node_modules/react` via zustand, o mesmo React duplicado desta worktree. Onde dois PRs mexiam no mesmo save, o board ficou com os dois comportamentos: escrita parcial de engine por id e a fila/resync do PR que entrou depois. O hash de `.i18n-state.json` do guia de quality-gates entra no follow-up, fora do squash.⚠️ base-red inherited: diegosouzapw#15306 (timeouts de suíte no tip, não neste diff). Obrigado, @woodsonl.
… row (diegosouzapw#15613) Onda 3 (woodsonl) validada num único board em `.claude/worktrees/batch-w3` sobre `origin/release/v3.8.52` (`4f4c983347b9`), 27 PRs, superfícies protegidas 0. Evidência: `typecheck:core` limpo. i18n drift limpo no board. changelog-integrity ok. file-size ok (170 congelados). complexity 2975/3218 e cognitive-complexity 1357/1437 dentro do baseline. node:test focado: 1868 passaram, 0 falharam. Vitest da UI: 150 passaram em 12 arquivos. Os 38 do RTK caem no `useCallback` nulo de `node_modules/node_modules/react` via zustand, o mesmo React duplicado desta worktree. Onde dois PRs mexiam no mesmo save, o board ficou com os dois comportamentos: escrita parcial de engine por id e a fila/resync do PR que entrou depois. O hash de `.i18n-state.json` do guia de quality-gates entra no follow-up, fora do squash.⚠️ base-red inherited: diegosouzapw#15306 (timeouts de suíte no tip, não neste diff). Obrigado, @woodsonl.
diegosouzapw#15609) Onda 3 (woodsonl) validada num único board em `.claude/worktrees/batch-w3` sobre `origin/release/v3.8.52` (`4f4c983347b9`), 27 PRs, superfícies protegidas 0. Evidência: `typecheck:core` limpo. i18n drift limpo no board. changelog-integrity ok. file-size ok (170 congelados). complexity 2975/3218 e cognitive-complexity 1357/1437 dentro do baseline. node:test focado: 1868 passaram, 0 falharam. Vitest da UI: 150 passaram em 12 arquivos. Os 38 do RTK caem no `useCallback` nulo de `node_modules/node_modules/react` via zustand, o mesmo React duplicado desta worktree. Onde dois PRs mexiam no mesmo save, o board ficou com os dois comportamentos: escrita parcial de engine por id e a fila/resync do PR que entrou depois. O hash de `.i18n-state.json` do guia de quality-gates entra no follow-up, fora do squash.⚠️ base-red inherited: diegosouzapw#15306 (timeouts de suíte no tip, não neste diff). Obrigado, @woodsonl.
…w#15614) Onda 3 (woodsonl) validada num único board em `.claude/worktrees/batch-w3` sobre `origin/release/v3.8.52` (`4f4c983347b9`), 27 PRs, superfícies protegidas 0. Evidência: `typecheck:core` limpo. i18n drift limpo no board. changelog-integrity ok. file-size ok (170 congelados). complexity 2975/3218 e cognitive-complexity 1357/1437 dentro do baseline. node:test focado: 1868 passaram, 0 falharam. Vitest da UI: 150 passaram em 12 arquivos. Os 38 do RTK caem no `useCallback` nulo de `node_modules/node_modules/react` via zustand, o mesmo React duplicado desta worktree. Onde dois PRs mexiam no mesmo save, o board ficou com os dois comportamentos: escrita parcial de engine por id e a fila/resync do PR que entrou depois. O hash de `.i18n-state.json` do guia de quality-gates entra no follow-up, fora do squash.⚠️ base-red inherited: diegosouzapw#15306 (timeouts de suíte no tip, não neste diff). Obrigado, @woodsonl.
…zapw#15591) Onda 3 (woodsonl) validada num único board em `.claude/worktrees/batch-w3` sobre `origin/release/v3.8.52` (`4f4c983347b9`), 27 PRs, superfícies protegidas 0. Evidência: `typecheck:core` limpo. i18n drift limpo no board. changelog-integrity ok. file-size ok (170 congelados). complexity 2975/3218 e cognitive-complexity 1357/1437 dentro do baseline. node:test focado: 1868 passaram, 0 falharam. Vitest da UI: 150 passaram em 12 arquivos. Os 38 do RTK caem no `useCallback` nulo de `node_modules/node_modules/react` via zustand, o mesmo React duplicado desta worktree. Onde dois PRs mexiam no mesmo save, o board ficou com os dois comportamentos: escrita parcial de engine por id e a fila/resync do PR que entrou depois. O hash de `.i18n-state.json` do guia de quality-gates entra no follow-up, fora do squash.⚠️ base-red inherited: diegosouzapw#15306 (timeouts de suíte no tip, não neste diff). Obrigado, @woodsonl.
…e catalogs (diegosouzapw#15599) Onda 3 (woodsonl) validada num único board em `.claude/worktrees/batch-w3` sobre `origin/release/v3.8.52` (`4f4c983347b9`), 27 PRs, superfícies protegidas 0. Evidência: `typecheck:core` limpo. i18n drift limpo no board. changelog-integrity ok. file-size ok (170 congelados). complexity 2975/3218 e cognitive-complexity 1357/1437 dentro do baseline. node:test focado: 1868 passaram, 0 falharam. Vitest da UI: 150 passaram em 12 arquivos. Os 38 do RTK caem no `useCallback` nulo de `node_modules/node_modules/react` via zustand, o mesmo React duplicado desta worktree. Onde dois PRs mexiam no mesmo save, o board ficou com os dois comportamentos: escrita parcial de engine por id e a fila/resync do PR que entrou depois. O hash de `.i18n-state.json` do guia de quality-gates entra no follow-up, fora do squash.⚠️ base-red inherited: diegosouzapw#15306 (timeouts de suíte no tip, não neste diff). Obrigado, @woodsonl.
…pw#15346) Onda 3 (woodsonl) validada num único board em `.claude/worktrees/batch-w3` sobre `origin/release/v3.8.52` (`4f4c983347b9`), 27 PRs, superfícies protegidas 0. Evidência: `typecheck:core` limpo. i18n drift limpo no board. changelog-integrity ok. file-size ok (170 congelados). complexity 2975/3218 e cognitive-complexity 1357/1437 dentro do baseline. node:test focado: 1868 passaram, 0 falharam. Vitest da UI: 150 passaram em 12 arquivos. Os 38 do RTK caem no `useCallback` nulo de `node_modules/node_modules/react` via zustand, o mesmo React duplicado desta worktree. Onde dois PRs mexiam no mesmo save, o board ficou com os dois comportamentos: escrita parcial de engine por id e a fila/resync do PR que entrou depois. O hash de `.i18n-state.json` do guia de quality-gates entra no follow-up, fora do squash.⚠️ base-red inherited: diegosouzapw#15306 (timeouts de suíte no tip, não neste diff). Obrigado, @woodsonl.
…thrown save (diegosouzapw#15600) Onda 3 (woodsonl) validada num único board em `.claude/worktrees/batch-w3` sobre `origin/release/v3.8.52` (`4f4c983347b9`), 27 PRs, superfícies protegidas 0. Evidência: `typecheck:core` limpo. i18n drift limpo no board. changelog-integrity ok. file-size ok (170 congelados). complexity 2975/3218 e cognitive-complexity 1357/1437 dentro do baseline. node:test focado: 1868 passaram, 0 falharam. Vitest da UI: 150 passaram em 12 arquivos. Os 38 do RTK caem no `useCallback` nulo de `node_modules/node_modules/react` via zustand, o mesmo React duplicado desta worktree. Onde dois PRs mexiam no mesmo save, o board ficou com os dois comportamentos: escrita parcial de engine por id e a fila/resync do PR que entrou depois. O hash de `.i18n-state.json` do guia de quality-gates entra no follow-up, fora do squash.⚠️ base-red inherited: diegosouzapw#15306 (timeouts de suíte no tip, não neste diff). Obrigado, @woodsonl.
diegosouzapw#15583) Onda 3 (woodsonl) validada num único board em `.claude/worktrees/batch-w3` sobre `origin/release/v3.8.52` (`4f4c983347b9`), 27 PRs, superfícies protegidas 0. Evidência: `typecheck:core` limpo. i18n drift limpo no board. changelog-integrity ok. file-size ok (170 congelados). complexity 2975/3218 e cognitive-complexity 1357/1437 dentro do baseline. node:test focado: 1868 passaram, 0 falharam. Vitest da UI: 150 passaram em 12 arquivos. Os 38 do RTK caem no `useCallback` nulo de `node_modules/node_modules/react` via zustand, o mesmo React duplicado desta worktree. Onde dois PRs mexiam no mesmo save, o board ficou com os dois comportamentos: escrita parcial de engine por id e a fila/resync do PR que entrou depois. O hash de `.i18n-state.json` do guia de quality-gates entra no follow-up, fora do squash.⚠️ base-red inherited: diegosouzapw#15306 (timeouts de suíte no tip, não neste diff). Obrigado, @woodsonl.
…pw#15593) Onda 3 (woodsonl) validada num único board em `.claude/worktrees/batch-w3` sobre `origin/release/v3.8.52` (`4f4c983347b9`), 27 PRs, superfícies protegidas 0. Evidência: `typecheck:core` limpo. i18n drift limpo no board. changelog-integrity ok. file-size ok (170 congelados). complexity 2975/3218 e cognitive-complexity 1357/1437 dentro do baseline. node:test focado: 1868 passaram, 0 falharam. Vitest da UI: 150 passaram em 12 arquivos. Os 38 do RTK caem no `useCallback` nulo de `node_modules/node_modules/react` via zustand, o mesmo React duplicado desta worktree. Onde dois PRs mexiam no mesmo save, o board ficou com os dois comportamentos: escrita parcial de engine por id e a fila/resync do PR que entrou depois. O hash de `.i18n-state.json` do guia de quality-gates entra no follow-up, fora do squash.⚠️ base-red inherited: diegosouzapw#15306 (timeouts de suíte no tip, não neste diff). Obrigado, @woodsonl.
…ig saves (diegosouzapw#15592) Onda 3 (woodsonl) validada num único board em `.claude/worktrees/batch-w3` sobre `origin/release/v3.8.52` (`4f4c983347b9`), 27 PRs, superfícies protegidas 0. Evidência: `typecheck:core` limpo. i18n drift limpo no board. changelog-integrity ok. file-size ok (170 congelados). complexity 2975/3218 e cognitive-complexity 1357/1437 dentro do baseline. node:test focado: 1868 passaram, 0 falharam. Vitest da UI: 150 passaram em 12 arquivos. Os 38 do RTK caem no `useCallback` nulo de `node_modules/node_modules/react` via zustand, o mesmo React duplicado desta worktree. Onde dois PRs mexiam no mesmo save, o board ficou com os dois comportamentos: escrita parcial de engine por id e a fila/resync do PR que entrou depois. O hash de `.i18n-state.json` do guia de quality-gates entra no follow-up, fora do squash.⚠️ base-red inherited: diegosouzapw#15306 (timeouts de suíte no tip, não neste diff). Obrigado, @woodsonl.
…d fails (diegosouzapw#15587) Onda 3 (woodsonl) validada num único board em `.claude/worktrees/batch-w3` sobre `origin/release/v3.8.52` (`4f4c983347b9`), 27 PRs, superfícies protegidas 0. Evidência: `typecheck:core` limpo. i18n drift limpo no board. changelog-integrity ok. file-size ok (170 congelados). complexity 2975/3218 e cognitive-complexity 1357/1437 dentro do baseline. node:test focado: 1868 passaram, 0 falharam. Vitest da UI: 150 passaram em 12 arquivos. Os 38 do RTK caem no `useCallback` nulo de `node_modules/node_modules/react` via zustand, o mesmo React duplicado desta worktree. Onde dois PRs mexiam no mesmo save, o board ficou com os dois comportamentos: escrita parcial de engine por id e a fila/resync do PR que entrou depois. O hash de `.i18n-state.json` do guia de quality-gates entra no follow-up, fora do squash.⚠️ base-red inherited: diegosouzapw#15306 (timeouts de suíte no tip, não neste diff). Obrigado, @woodsonl.
…ouzapw#15612) Onda 3 (woodsonl) validada num único board em `.claude/worktrees/batch-w3` sobre `origin/release/v3.8.52` (`4f4c983347b9`), 27 PRs, superfícies protegidas 0. Evidência: `typecheck:core` limpo. i18n drift limpo no board. changelog-integrity ok. file-size ok (170 congelados). complexity 2975/3218 e cognitive-complexity 1357/1437 dentro do baseline. node:test focado: 1868 passaram, 0 falharam. Vitest da UI: 150 passaram em 12 arquivos. Os 38 do RTK caem no `useCallback` nulo de `node_modules/node_modules/react` via zustand, o mesmo React duplicado desta worktree. Onde dois PRs mexiam no mesmo save, o board ficou com os dois comportamentos: escrita parcial de engine por id e a fila/resync do PR que entrou depois. O hash de `.i18n-state.json` do guia de quality-gates entra no follow-up, fora do squash.⚠️ base-red inherited: diegosouzapw#15306 (timeouts de suíte no tip, não neste diff). Obrigado, @woodsonl.
…egosouzapw#15604) Onda 3 (woodsonl) validada num único board em `.claude/worktrees/batch-w3` sobre `origin/release/v3.8.52` (`4f4c983347b9`), 27 PRs, superfícies protegidas 0. Evidência: `typecheck:core` limpo. i18n drift limpo no board. changelog-integrity ok. file-size ok (170 congelados). complexity 2975/3218 e cognitive-complexity 1357/1437 dentro do baseline. node:test focado: 1868 passaram, 0 falharam. Vitest da UI: 150 passaram em 12 arquivos. Os 38 do RTK caem no `useCallback` nulo de `node_modules/node_modules/react` via zustand, o mesmo React duplicado desta worktree. Onde dois PRs mexiam no mesmo save, o board ficou com os dois comportamentos: escrita parcial de engine por id e a fila/resync do PR que entrou depois. O hash de `.i18n-state.json` do guia de quality-gates entra no follow-up, fora do squash.⚠️ base-red inherited: diegosouzapw#15306 (timeouts de suíte no tip, não neste diff). Obrigado, @woodsonl.
Onda 3 (woodsonl) validada num único board em `.claude/worktrees/batch-w3` sobre `origin/release/v3.8.52` (`4f4c983347b9`), 27 PRs, superfícies protegidas 0. Evidência: `typecheck:core` limpo. i18n drift limpo no board. changelog-integrity ok. file-size ok (170 congelados). complexity 2975/3218 e cognitive-complexity 1357/1437 dentro do baseline. node:test focado: 1868 passaram, 0 falharam. Vitest da UI: 150 passaram em 12 arquivos. Os 38 do RTK caem no `useCallback` nulo de `node_modules/node_modules/react` via zustand, o mesmo React duplicado desta worktree. Onde dois PRs mexiam no mesmo save, o board ficou com os dois comportamentos: escrita parcial de engine por id e a fila/resync do PR que entrou depois. O hash de `.i18n-state.json` do guia de quality-gates entra no follow-up, fora do squash.⚠️ base-red inherited: diegosouzapw#15306 (timeouts de suíte no tip, não neste diff). Obrigado, @woodsonl.
…ale saves (diegosouzapw#15571) Onda 3 (woodsonl) validada num único board em `.claude/worktrees/batch-w3` sobre `origin/release/v3.8.52` (`4f4c983347b9`), 27 PRs, superfícies protegidas 0. Evidência: `typecheck:core` limpo. i18n drift limpo no board. changelog-integrity ok. file-size ok (170 congelados). complexity 2975/3218 e cognitive-complexity 1357/1437 dentro do baseline. node:test focado: 1868 passaram, 0 falharam. Vitest da UI: 150 passaram em 12 arquivos. Os 38 do RTK caem no `useCallback` nulo de `node_modules/node_modules/react` via zustand, o mesmo React duplicado desta worktree. Onde dois PRs mexiam no mesmo save, o board ficou com os dois comportamentos: escrita parcial de engine por id e a fila/resync do PR que entrou depois. O hash de `.i18n-state.json` do guia de quality-gates entra no follow-up, fora do squash.⚠️ base-red inherited: diegosouzapw#15306 (timeouts de suíte no tip, não neste diff). Obrigado, @woodsonl.
…#15589) Onda 3 (woodsonl) validada num único board em `.claude/worktrees/batch-w3` sobre `origin/release/v3.8.52` (`4f4c983347b9`), 27 PRs, superfícies protegidas 0. Evidência: `typecheck:core` limpo. i18n drift limpo no board. changelog-integrity ok. file-size ok (170 congelados). complexity 2975/3218 e cognitive-complexity 1357/1437 dentro do baseline. node:test focado: 1868 passaram, 0 falharam. Vitest da UI: 150 passaram em 12 arquivos. Os 38 do RTK caem no `useCallback` nulo de `node_modules/node_modules/react` via zustand, o mesmo React duplicado desta worktree. Onde dois PRs mexiam no mesmo save, o board ficou com os dois comportamentos: escrita parcial de engine por id e a fila/resync do PR que entrou depois. O hash de `.i18n-state.json` do guia de quality-gates entra no follow-up, fora do squash.⚠️ base-red inherited: diegosouzapw#15306 (timeouts de suíte no tip, não neste diff). Obrigado, @woodsonl.
Onda 3 (woodsonl) validada num único board em `.claude/worktrees/batch-w3` sobre `origin/release/v3.8.52` (`4f4c983347b9`), 27 PRs, superfícies protegidas 0. Evidência: `typecheck:core` limpo. i18n drift limpo no board. changelog-integrity ok. file-size ok (170 congelados). complexity 2975/3218 e cognitive-complexity 1357/1437 dentro do baseline. node:test focado: 1868 passaram, 0 falharam. Vitest da UI: 150 passaram em 12 arquivos. Os 38 do RTK caem no `useCallback` nulo de `node_modules/node_modules/react` via zustand, o mesmo React duplicado desta worktree. Onde dois PRs mexiam no mesmo save, o board ficou com os dois comportamentos: escrita parcial de engine por id e a fila/resync do PR que entrou depois. O hash de `.i18n-state.json` do guia de quality-gates entra no follow-up, fora do squash.⚠️ base-red inherited: diegosouzapw#15306 (timeouts de suíte no tip, não neste diff). Obrigado, @woodsonl.
The wave-3 board already validated this overlap. This commit is that resolution.
diegosouzapw
merged commit Oct 6, 2026
c905a2d
into
diegosouzapw:release/v3.8.52
4 of 8 checks passed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Follow-up to #14551.
docs/architecture/QUALITY_GATES.mdtranslation drift — that mismatch exists at base (23a1148486); this branch doesn't touch that file.What this does
tests/unit/compression/output-styles-auto-clarity.test.tsand adds nine. The new file covers three style sources: the legacy caveman switch, the Output Styles panel, and output mode from a compression combo assigned to the routing combo the request names. Each source runs with Auto-Clarity off, on, and left unset on a security-topic turn, plus a benign-turn row with the toggle on. The left-unset cases pin the shipped default; the benign-turn cases pin the bypass's security-topic scope.tests/integration/chatcore-compression-integration.test.tsback under the 1,200-line test cap. The file drops from 1,213 to 1,121 lines, so this PR removes its 1,214-linetestFrozenentry fromconfig/quality/file-size-baseline.json.docs/compression/COMPRESSION_GUIDE.md(How injection works). It said the bypass runs whatever the toggle is set to. Since fix(compression): honor the Auto-Clarity toggle on the output-styles path #14551 the bypass runs only whilecavemanOutputMode.autoClarityis on, which is the default; with the toggle off the selected styles apply on those turns too. The guide's 66 translation mirrors are refreshed to match, with.i18n-state.jsonre-hashed.Verification
On
7a5fbc2dad(baserelease/v3.8.52at23a1148486):tests/unit/compressionfolder passes 1,672/1,672.applyOutputStylescall inopen-sse/handlers/chatCore.ts: the three "off" cases fail.DEFAULT_CAVEMAN_OUTPUT_MODE_CONFIG.autoClaritytofalse: the three "left unset" cases fail.check:file-size, the seven docs gates,check:changelog-integrity, andcheck:tracked-artifactspass.COMPRESSION_GUIDE.md: all 66 locale mirrors carry the new meaning and thecavemanOutputMode.autoClaritykey, and the scoped state re-hash matches the canonical writer's shape./v1/chat/completionson a local dev server with login off and a mock upstream, for panel styles and for the legacy switch: a neutral prompt, a security prompt with Auto-Clarity on, and a security prompt with Auto-Clarity off. The style block reached the upstream on the neutral and Auto-Clarity-off turns and was skipped on the security turns with Auto-Clarity on.Pre-Landing Review
Three review cycles:
section_hashesfrom.i18n-state.json; the entry now carries the canonical hashes the pipeline writer emits.cavemanOutputMode.autoClaritykey; restored. A separate hygiene pass dropped 9,967 unrelatedupdated_atre-stamps from the state diff.Outside review: the in-host adversarial pass found no security, race, or trust-boundary issues; its placement note (a full-app harness test living under
tests/unit/) is queued as a follow-up. The Codex pass could not run (the gstack Codex model resolver is broken on this machine), so that coverage is missing, not clean.Documentation
The release docs audit verified the corrected paragraph against the code gate (
config.autoClarity !== falseinoutputMode.ts) and the shipped default, and swept all 66 locale copies.A UI question for you
The Auto-Clarity Bypass controls live only on the Caveman page (
/dashboard/context/caveman): a checkbox in the Output Mode card and a switch in the Advanced view. Since #14551, styles picked in the Output Styles panel depend on that toggle too. Would you like the control mirrored in the panel, or its label changed to say it covers output styles? I can send either as a separate PR.