refactor: organize pilot packages
Group review, feedback, evaluation, observability, and entrypoint code into packages. Keep thin top-level compatibility shims for existing scripts and imports, and mirror the structure in the tests.
This commit is contained in:
@@ -12,7 +12,7 @@ webhook_server ── trusted base config ──► review_config
|
||||
│ bounded worker
|
||||
▼
|
||||
review_pr facade/orchestrator
|
||||
├── gitea_client fetch diff, reviews, config; publish review
|
||||
├── entrypoints/gitea fetch diff, reviews, config; publish review
|
||||
├── diff_compress reduce prompt context
|
||||
├── opencode_review isolated checkout + agent execution
|
||||
│ └── model / repo factory (.opencode)
|
||||
@@ -24,20 +24,20 @@ review_pr facade/orchestrator
|
||||
## Seams and responsibilities
|
||||
|
||||
The external seam is `ai_review.review_pr(...)`: one call represents one review
|
||||
attempt and returns success/skip status. The module is retained as a facade for
|
||||
the CI and webhook callers that already import it.
|
||||
attempt and returns success/skip status. The top-level module is a compatibility
|
||||
shim; the implementation lives in `review/ai_review.py`.
|
||||
|
||||
The internal seams are deliberately narrower:
|
||||
|
||||
- `review_config.repo_enabled(get, ...)` owns the security-sensitive opt-in
|
||||
decision. It receives a transport function, so malformed configuration and
|
||||
failure behavior are deterministic in tests.
|
||||
- `gitea_client.request()` and `GiteaClient` own HTTP authentication, JSON
|
||||
- `entrypoints/gitea.request()` and `GiteaClient` own HTTP authentication, JSON
|
||||
request encoding, timeout, and Gitea URL construction.
|
||||
- `model_client.complete()` owns the legacy Anthropic-compatible request shape.
|
||||
`opencode_review` is the preferred agent adapter and keeps Gitea I/O out of
|
||||
the autonomous process.
|
||||
- `diff_compress`, finding parsing, config filtering, and rendering remain
|
||||
- `review/diff`, finding parsing, config filtering, and rendering remain
|
||||
pure transformations. Their callers do not need to know how model or Gitea
|
||||
transport works.
|
||||
- `langfuse_trace` is an optional sink. It is fail-open and cannot change the
|
||||
|
||||
Reference in New Issue
Block a user