Conversation
There was a problem hiding this comment.
Sorry @LIghtJUNction, your pull request is larger than the review limit of 150000 diff characters
Summary of ChangesHello, 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 significantly refactors AstrBot's core architecture by modularizing tool management and improving the robustness of tool execution. It streamlines the integration of various tools, enhances the dashboard's configurability, and ensures more predictable behavior for LLM interactions. These changes contribute to a more maintainable, extensible, and user-friendly system. Highlights
Changelog
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
|
There was a problem hiding this comment.
Code Review
This pull request introduces a significant and well-executed refactoring of the tool management system, centered around a new ToolProvider protocol. This change decouples tool registration from the main agent logic, greatly enhancing modularity and making the system more extensible. Key improvements include the introduction of ComputerToolProvider and CronToolProvider, a new sandbox capability check to prevent the use of browser tools in unsupported environments, and deterministic tool serialization to improve caching. The command-line interface and dashboard have also been substantially improved, offering better configuration options like a backend-only mode and flexible API URL settings. Overall, these changes represent a major architectural improvement, increasing the robustness, safety, and maintainability of the codebase. The implementation is solid, and I have no specific issues to raise.
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
… to respect API base url
…master branch merge
…urity vulnerabilities
Resolved merge conflicts in: - func_tool_manager.py: kept origin version (full implementation) - astr_main_agent*.py: kept HEAD version (complete refactor) - cron_tools.py: kept HEAD version (with get_all_tools) - config/default.py: kept HEAD version (DEFAULT_WEB_SEARCH_PROVIDER) - dashboard/*.vue: kept HEAD version - web_searcher engines: kept HEAD version - Added new tools: knowledge_base_tools, message_tools, registry, web_search_tools
…nds() collect_commands() was defined as a sync def but erroneously contained SDK bridge command registration logic with await sync_commands() inside. Extract SDK bridge registration into async _register_sdk_commands() and keep collect_commands() as pure sync (returns command list only). Also adds missing cast import.
… configured Before login attempts, check if apiBaseUrl is configured. If empty, emit openServerConfig event so LoginPage opens the server config dialog instead of silently sending requests to the frontend origin (causing 405).
Previously, a URL like api.lightjunction.online:3000 (without https://) was stored as-is and treated as a relative path, causing requests to hit the frontend origin instead of the configured backend. URLs with a single slash like https:/api... were also incorrectly normalized. Now normalizeConfiguredApiBaseUrl always prepends https:// if the input doesn't start with http:// or https://, and apiStore.setApiBaseUrl also normalizes before storing to keep state and localStorage consistent.
AstrBot uses a lock file (astrbot.lock) to prevent concurrent instances. Before allowing a password change via `astrbot conf admin`, the CLI now attempts to acquire the lock with a 1-second timeout. If acquisition fails (another process holds it), the command is rejected with a clear error message instructing the user to stop astrbot first.
…able When user installs a dev/beta/alpha/rc version (e.g. 4.25.0-dev), check_update would skip prerelease releases and compare against the latest stable (e.g. 4.24.0). Since 4.25.0-dev > 4.24.0 in semver comparison (numeric part takes precedence), it incorrectly prompted to update. Now checks if current version is prerelease and already newer than the latest stable - in that case, no update prompt is shown. Fixes: update button shown to users running dev/unstable versions
This pull request introduces a new workflow for deploying the dashboard to GitHub Pages and makes significant improvements to the
README.mdfor clarity, completeness, and consistency. It also includes minor formatting updates to the smoke test workflow and adds some convenience commands to.envrc.Summary of changes:
README.mdwith clearer descriptions, updated instructions, improved platform/model tables, and better contribution guidelines.Dashboard Deployment Automation
.github/workflows/deploy-dashboard.ymlto automate daily and manual dashboard builds and deployments to GitHub Pages, including build, artifact upload, and deployment steps.Documentation Improvements
README.md: clearer project description, improved feature list, updated deployment instructions, revised supported platforms/models tables, and enhanced contribution guidelines. [1] [2] [3] [4] [5]Workflow Consistency
.github/workflows/smoke_test.ymlto use consistent YAML quoting, improved comments, and clarified Python version formatting. [1] [2] [3]Developer Convenience
git pullandgit statuscommands to.envrcfor easier environment setup and status checking.