-
-
Notifications
You must be signed in to change notification settings - Fork 630
docs: add operations guide and docs updates #676
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
docs: add operations guide and docs updates #676
Conversation
Summary of ChangesHello @jroth1111, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed! This pull request primarily focuses on enhancing the project's documentation by introducing a detailed operations guide. This new guide consolidates information on various advanced operational features such as secret management, robust configuration parsing, encrypted credential storage, comprehensive metrics, intelligent caching, and sophisticated routing and failover mechanisms. The Highlights
🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console. Using Gemini Code AssistThe full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips. Invoking Gemini You can request assistance from Gemini at any point by creating a comment using either
Customization To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a Limitations & Feedback Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here. You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension. Footnotes
|
|
@luispater replacement for #665. Docs-only (README/docs). Routing example consolidated; duplicate block removed. Ready for re-review. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Code Review
This pull request introduces significant documentation updates, including a new operations guide and enhancements to the README. The changes provide a comprehensive overview of new operational features like health-based routing, rate limiting, and encrypted storage.
My review focuses on ensuring the accuracy of the new documentation. I've found a few inconsistencies regarding the default routing strategy. The documentation states fill-first is the default, but the codebase and example configuration indicate round-robin is the default. I've left several comments to correct this in the README, the new operations guide, and SDK usage examples. Correcting these will ensure developers have accurate information when using and configuring the proxy.
Overall, this is a great addition to the project's documentation.
README.md
Outdated
| - **`fill-first`**: Drain one credential before moving to the next (default) | ||
| - **`round-robin`**: Sequential credential rotation |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The documentation here indicates fill-first is the default strategy, but the code (sdk/cliproxy/builder.go) and config.example.yaml show that round-robin is the default. To ensure consistency, please update this section to reflect that round-robin is the default.
| - **`fill-first`**: Drain one credential before moving to the next (default) | |
| - **`round-robin`**: Sequential credential rotation | |
| - **`fill-first`**: Drain one credential before moving to the next | |
| - **`round-robin`**: Sequential credential rotation (default) |
docs/operations.md
Outdated
|
|
||
| ```yaml | ||
| routing: | ||
| strategy: "fill-first" # fill-first (default), round-robin, random, least-busy, lowest-latency |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The comment here states that fill-first is the default strategy. However, according to the implementation (sdk/cliproxy/builder.go) and config.example.yaml, the default strategy is round-robin. To maintain consistency and prevent confusion, please update the comment to reflect the correct default.
| strategy: "fill-first" # fill-first (default), round-robin, random, least-busy, lowest-latency | |
| strategy: "fill-first" # fill-first, round-robin (default), random, least-busy, lowest-latency |
docs/sdk-advanced.md
Outdated
| Register the executor with the core manager before starting the service: | ||
|
|
||
| ```go | ||
| // nil selector uses the default "fill-first" selection strategy. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This comment seems to be incorrect. Based on the implementation in sdk/cliproxy/auth/manager.go, when a nil selector is passed to coreauth.NewManager, it defaults to RoundRobinSelector, not fill-first. It would be great to correct this to avoid confusion for SDK users.
| // nil selector uses the default "fill-first" selection strategy. | |
| // nil selector uses the default "round-robin" selection strategy. |
docs/sdk-advanced_CN.md
Outdated
| 在启动服务前将执行器注册到核心管理器: | ||
|
|
||
| ```go | ||
| // selector 传 nil 时默认使用 "fill-first" 选择策略。 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This comment (in Chinese) incorrectly states that the default selection strategy is fill-first. According to the implementation in sdk/cliproxy/auth/manager.go, the default is RoundRobinSelector. Please correct this to avoid misleading users of the Chinese documentation.
| // selector 传 nil 时默认使用 "fill-first" 选择策略。 | |
| // selector 传 nil 时默认使用 "round-robin" 选择策略。 |
docs/sdk-usage.md
Outdated
| The service uses a core `auth.Manager` for selection, execution, and auto‑refresh. When embedding, you can provide your own manager to customize transports or hooks: | ||
|
|
||
| ```go | ||
| // nil selector uses the default "fill-first" selection strategy. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This comment appears to be incorrect. The coreauth.NewManager function defaults to RoundRobinSelector when a nil selector is provided, as seen in sdk/cliproxy/auth/manager.go. Please update the comment to reflect the correct default behavior.
| // nil selector uses the default "fill-first" selection strategy. | |
| // nil selector uses the default "round-robin" selection strategy. |
docs/sdk-usage_CN.md
Outdated
| 服务内部使用核心 `auth.Manager` 负责选择、执行、自动刷新。内嵌时可自定义其传输或钩子: | ||
|
|
||
| ```go | ||
| // selector 传 nil 时默认使用 "fill-first" 选择策略。 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Similar to the other SDK documents, this comment in the Chinese documentation is incorrect. The default selector is RoundRobinSelector, not fill-first. Please update this for consistency and accuracy.
| // selector 传 nil 时默认使用 "fill-first" 选择策略。 | |
| // selector 传 nil 时默认使用 "round-robin" 选择策略。 |
|
Addressed Gemini doc notes: updated README + operations + SDK docs (EN/CN) to state round-robin is the default when selector is nil; fill-first is no longer labeled default. Ready for re-review. |
|
Clarified fill-first intent in docs: now explicitly notes draining one account to rate limit/cooldown, then moving to the next to stagger rolling windows and sustain throughput. (Updated README + operations guide.) |
|
@luispater docs updates complete: routing default fixed to round-robin and fill-first intent clarified (drain to rate limit/cooldown to stagger rolling windows). CI green. Ready for re-review. |
|
Docs updates complete (round-robin default clarified, fill-first intent clarified). Ready for review. |
Supersedes #665. Docs-only updates; routing example consolidated in operations guide; no config.example.yaml changes.