* chore(idea): translate tests and remove broad language exemption
* fix(ci): retain scoped IDEA translation exemptions
* docs(idea): refine test wording and technical explanations
* docs(idea): simplify test rationale comments
* docs(pages): correct FAQ JSON output shape and plan-threshold cost lever
The FAQ told integrators that a review with zero findings emits a bare
empty array. `review --format json` always writes exactly one JSON
object; `[]` is the value of its `comments` field. The two states the
entry claimed were distinguishable by shape are in fact the same shape
and differ only in `summary.files_reviewed` and `manifest.terminal_state`.
The leaner no-`summary` object the entry described is what `ocr scan`
emits, because `outputJSONNoFiles` is reachable only when the run
manifest is nil, which the review path never produces.
The cost lever was inverted as well: `PlanRequired` triggers when the
changed-line count reaches a threshold, so raising the thresholds is
what skips planning and saves the call. The two thresholds are also not
symmetric at zero -- `PLAN_MODE_LINE_THRESHOLD <= 0` means always plan,
while `PLAN_MODE_GROUP_LINE_THRESHOLD == 0` disables the group gate --
so the blanket sentence is split rather than merely reversed.
Applied to all five maintained locales. Headings are left verbatim so
heading ids and existing fragment links keep working; the plan-phase
entry is cross-referenced by name instead of by anchor to avoid
non-ASCII slug differences between locales.
No code change: `outputJSONNoFiles`, `outputJSONWithWarnings`,
`manifestMessage`, and `PlanRequired` are all correct and already
covered by tests.
Closes#1189
* docs(pages): clarify FAQ output and threshold wording
Avoid implying that skipped and zero-finding review JSON have identical serialized key sets: both are JSON objects with comments: [], but optional top-level fields may differ.
Also qualify the group-threshold-zero cost note: disabling that gate saves a plan call only when it would otherwise be the sole trigger.
* docs(pages): clarify scan no-files JSON wording
Avoid presenting a partial `ocr scan` no-files object as the complete JSON output. Document the missing `summary`, always-present `tool_calls`, and optional identity/trace metadata across all maintained locales.
* docs(pages): address manifest-less output feedback
Describe the lean no-files JSON as a manifest-less path rather than scan-specific, make `tool_calls` presence explicit across locales, and restore the Russian FAQ trailing newline.
* docs(pages): correct the developer guide to match the actual project
pages/README.md has drifted from the pages/ project it documents.
Config files are named .js throughout, but package.json sets
"type": "module", so the Webpack, Tailwind and PostCSS configs are .cjs;
only eslint.config.js is genuinely .js.
"Build for production" leads with `npx webpack`, which leaves NODE_ENV
unset, so webpack.config.cjs selects mode: development and bundles the
development build of React -- a 1.3 MB react chunk instead of 150 kB.
`npx webpack --mode production` is not equivalent to `npm run build`
either: Webpack's mode selects production React on its own, but Babel
still runs its development JSX transform and injects 319 __self/__source
props, which costs 21 kB in the main chunk.
`npm run build` fails outright on Windows. The script uses a POSIX inline
assignment, but npm runs scripts through cmd.exe even when npm itself is
invoked from Git Bash, so the build exits 1 and writes nothing to dist/.
The Node prerequisite is `>=18`, below what the dev toolchain declares:
jsdom@30 needs ^22.22.2 || ^24.15.0 || >=26 and eslint@10 needs
^20.19.0 || ^22.13.0 || >=24. Every Pages workflow builds on Node 24.
Only `npm run typecheck` is listed as a pre-PR check, while Pages CI
gates on lint, test, typecheck, build and size.
The project structure tree omits src/content/ (where the whole docs site
lives), hooks/, utils/, assets/, public/, eslint.config.js,
vitest.config.ts, vitest.setup.ts and go.mod.
Documentation only: no build or runtime behaviour changes.
* docs(pages): correct CI and platform guidance
* docs(pages): address review wording nits
* chore: format README with prettier (#14)
Ran `npx prettier -w ./README.md`
* docs(pages): address maintainer accuracy feedback
* docs(pages): simplify portable build guidance
* docs(pages): correct size-budget scope
Co-authored-by: Kite <254839944+lizhengfeng101@users.noreply.github.com>
---------
Co-authored-by: Tao Xin <wu2196674@icloud.com>
Co-authored-by: Kite <254839944+lizhengfeng101@users.noreply.github.com>
* fix(rules): route Kotlin script files to Kotlin review rules
* fix(allowlist): exclude Kotlin script tests by default
Extend the default Kotlin test-path exclusion to `.kts` and add focused extension and exclusion regression coverage.
Validated on the #1091 branch with `make check`, `make test`, `make coverage`, and the required OCR self-review.
Co-authored-by: wu21-web <wu2196674@icloud.com>
---------
Co-authored-by: Tao Xin <wu2196674@icloud.com>