19 Commits

Author SHA1 Message Date
kite 558ffe9a91 fix(build): improve Windows support based on PR #13 review feedback
Unify BUILD_PLATFORM macro with optional suffix parameter to eliminate
  duplication, centralize IS_WINDOWS/BINARY_NAME exports in install.js,
  add Windows-safe rename-then-replace strategy in update.js, and add
  PATH guidance in README for Windows users.
2026-06-02 22:37:27 +08:00
Bison Xu 89effb6b22 feat(build): add Windows platform support (#13)
* feat(build): add Windows platform support

Add windows/amd64 and windows/arm64 to CI build matrix, Makefile
cross-platform targets, and handle .exe suffix in install/update
scripts and binary wrapper. Skip chmod on Windows where unsupported.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

* docs(README): add Windows download instructions

Add Windows x86_64 and ARM64 binary download commands to both
English and Chinese README install sections.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-02 21:57:31 +08:00
kite d3e29bd581 fix(config): update main_task template 2026-06-02 11:32:57 +08:00
kite f363702a15 feat(agent): integrate session recording and token tracking for re-location task
Re-location LLM calls were invisible in session history and their token
  consumption was unaccounted for. Refactor the code_comment handling path
  to record re-location requests/responses into session JSONL, accumulate
  token usage into global counters, and display them in the viewer.

  Also fixes: async context cancellation risk (WithoutCancel), duplicate
  telemetry recording, missing timeout enforcement, missing {existing_code}
  placeholder in the re-location prompt, and renames Parse to ParseComments
  for clarity.
2026-05-30 23:25:12 +08:00
kite 5f4e5a2b40 feat(llm): auto-append /chat/completions to OpenAI-compatible base URLs
Allow users to configure either a base URL (e.g. https://api.example.com/v1)
or a full endpoint URL for OpenAI-compatible services. The client now
normalizes the URL on initialization, matching the existing behavior of
the Anthropic client.
2026-05-29 00:04:30 +08:00
kite e71fa597d8 feat(review): add --preview flag to show files before running LLM review 2026-05-26 23:06:47 +08:00
kite 834a4e7e3f feat(rules): add ocr rules check command to preview effective rule for a file path 2026-05-26 22:11:39 +08:00
kite 971ab0a626 feat(rules): extract inline rule content into separate markdown files
Move verbose rule definitions from system_rules.json into individual
  markdown files under rule_docs/, loaded at runtime via embed.FS.
  This improves maintainability by separating rule content from config
  structure and merges duplicate mapper/dao XML patterns into one entry.
2026-05-26 21:39:32 +08:00
kite ce73f388d1 feat(resolver): strip model name suffix and prioritize config file over env vars 2026-05-26 17:58:03 +08:00
kite 5053e6dca8 refactor(config): rename config directory from .open-code-review to .opencodereview
Unify the config folder name to `.opencodereview` across all runtime paths,
  tests, docs, and i18n strings. Also make defaultConfigPath() return an error
  instead of silently falling back to a current-directory file when $HOME is
  unresolvable.
2026-05-25 23:07:36 +08:00
kite db5bc4b8a9 feat(rules): add include/exclude file filter support in rule.json
Allow users to configure include/exclude glob patterns in
  .open-code-review/rule.json (global or project-level) to control
  which files are reviewed. Exclude has highest priority, include
  penetrates default path exclusions but not the extension allowlist.
  Only one layer takes effect following --rule > project > global priority.
2026-05-25 20:19:02 +08:00
kite d44fd31989 feat(rules): unify rule resolution behind Resolver interface with four-layer priority
Consolidate review rules into a composedResolver that supports four layers
  (--rule flag > project .open-code-review/rule.json > global ~/rule.json >
  embedded system default), each with first-match-wins fall-through semantics.
2026-05-25 17:45:53 +08:00
kite 29564a891b refactor(diff): Simplify hunk resolution logic with helper functions
This change refactors the `resolveFromHunk` function by introducing several helper functions (`extractSideLines`, `matchConsecutive`) to improve readability and maintainability. The new implementation attempts to match against both new and old sides of the diff hunk, making comment resolution more robust.
2026-05-23 00:36:51 +08:00
kite 35424d18bf feat(config): add path exclusion patterns for file filtering
This change introduces a new configuration mechanism for excluding specific file paths during code reviews. It adds support for glob patterns including recursive directory matching (**), single-segment wildcards (*), and brace expansion ({a,b}), allowing more flexible control over which files should be reviewed or skipped based on their location within the repository.
2026-05-23 00:11:35 +08:00
kite 8ceceaf3e7 build: Remove version from binary names and update related scripts 2026-05-22 23:11:37 +08:00
kite 63d6108db0 fix(agent): Update file counting logic for accurate review metrics
This change refines how file counts are tracked during the agent's review process. It now correctly excludes deleted files when calculating the number of files being reviewed, ensuring telemetry and error reporting reflect actual processing rather than total diffs. This improves accuracy in monitoring and debugging scenarios.
2026-05-22 22:28:52 +08:00
kite d345ef9707 feat: add llm.extra_body config support to disable thinking mode 2026-05-22 21:28:32 +08:00
kite f054bb799e fix: propagate LLM API errors instead of showing misleading "Looks good to me"
When all subtask LLM calls fail (e.g. invalid API key), dispatchSubtasks
now returns an error instead of empty comments with nil error. Partial
failures are recorded as subtask_error warnings so output functions can
distinguish "no issues found" from "review failed".
2026-05-22 15:28:26 +08:00
kite 7c8b8562aa feat: init 2026-05-20 22:03:52 +08:00