Conversation
Bumps the infrastructure group with 3 updates: [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action), [docker/login-action](https://github.com/docker/login-action) and [docker/build-push-action](https://github.com/docker/build-push-action). Updates `docker/setup-buildx-action` from 3 to 4 - [Release notes](https://github.com/docker/setup-buildx-action/releases) - [Commits](docker/setup-buildx-action@v3...v4) Updates `docker/login-action` from 3 to 4 - [Release notes](https://github.com/docker/login-action/releases) - [Commits](docker/login-action@v3...v4) Updates `docker/build-push-action` from 6 to 7 - [Release notes](https://github.com/docker/build-push-action/releases) - [Commits](docker/build-push-action@v6...v7) --- updated-dependencies: - dependency-name: docker/setup-buildx-action dependency-version: '4' dependency-type: direct:production update-type: version-update:semver-major dependency-group: infrastructure - dependency-name: docker/login-action dependency-version: '4' dependency-type: direct:production update-type: version-update:semver-major dependency-group: infrastructure - dependency-name: docker/build-push-action dependency-version: '7' dependency-type: direct:production update-type: version-update:semver-major dependency-group: infrastructure ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* fix(spx-gui): stabilize AI asset generation ETA display Fixes #2919 The previous implementation derived `timeLeft` from the estimated progress percentage using the quadratic curve: `timeLeft = timeCost * (1 - percentage)`. Because the quadratic function advances very fast in early intervals, the ETA could drop from ~3 minutes to ~1.5 minutes within just 18 seconds, making the display feel unreliable and fake. Changes: - `progress.ts`: Switch `startAutoReport` to use wall-clock elapsed time for ETA calculation (`timeLeft = max(0, timeCost - elapsed)`) instead of percentage-based estimation. The progress curve (quadratic) is kept for the visual progress bar, but ETA now decreases at a stable ~1 second per second, independent of the progress model. - `common.ts`: Update video generation default estimated duration from 150s (2.5 min) to 180s (3 min) as specified in the issue. - `progress.test.ts`: Update test expectations to reflect that timeLeft is now wall-clock based (non-increasing, clamped to [0, timeCost]). Generated with [codeagent](https://github.com/qbox/codeagent) Co-authored-by: nighca <1492263+nighca@users.noreply.github.com> * fix(spx-gui): use linear algorithm for both progress and ETA Replace the quadratic progress curve with a linear one and derive ETA directly from the linear progress, so progress bar and ETA remain consistent with each other. Generated with [codeagent](https://github.com/qbox/codeagent) Co-authored-by: nighca <1492263+nighca@users.noreply.github.com> * fix(spx-gui): linear algorithm reaches 0.99 at estimated time cost Fix the `startAutoReport` linear algorithm so percentage reaches exactly 0.99 at `timeCost` instead of at `2 * timeCost`. Previously: `percentage = (times / maxTimes) * maxPercentage` where `maxTimes = 2 * estimatedTimes` — so at `timeCost` only 0.495 was reached. Now: `percentage = min(0.99, (elapsed / timeCost) * 0.99)` and `timeLeft = max(0, timeCost - elapsed)`, both using wall-clock elapsed time to guarantee 0.99 accuracy at the estimated time cost. Update unit tests to verify the 0.99 target is met and adjust call count expectations accordingly. Generated with [codeagent](https://github.com/qbox/codeagent) Co-authored-by: nighca <1492263+nighca@users.noreply.github.com> * fix(spx-gui): derive timeLeft from percentage for consistency Make `timeLeft` consistent with `percentage` by deriving it from the progress value instead of wall-clock elapsed time: `timeLeft = timeCost * (1 - percentage)` This ensures `percentage + timeLeft/timeCost = 1` at all times, so the ETA display is coherent with the progress bar. Since `percentage` is capped at 0.99, `timeLeft` approaches `0.01 * timeCost` at the estimated time cost — never reaching 0 until `percentage: 1` is manually reported on actual completion. Update unit tests to verify the new consistency invariant and correct the final-report assertions accordingly. Generated with [codeagent](https://github.com/qbox/codeagent) Co-authored-by: nighca <1492263+nighca@users.noreply.github.com> --------- Co-authored-by: xgopilot <noreply@goplus.org> Co-authored-by: nighca <1492263+nighca@users.noreply.github.com>
…icrosoft Edge' (#2937) * fix: normalize browser name to handle bowser aliases like 'Microsoft Edge' * optimize code
Update `install-spx.sh` to try the GitHub release asset first and fall back to downloading `ghcr.io/goplus/spx:web-zip-<version>` from GHCR with `wget` for pseudo-versioned runtimes. Align Docker and Vercel with the lighter install flow. Keep the runtime installation on the Node install path and avoid requiring Go there. Bump the project Go toolchain to 1.25 across Docker, Vercel, CI, and the `tools/ai`, `tools/ispx`, and `tools/spxls` modules. Refresh `spx` to `2.0.0-pre.46.0.20260311090023-f1d975cfeca5` across the runtime defaults and tool modules, and bump `xgolsw` to `0.16.2-0.20260311065322-dd7cbc43c3b4` while keeping the ixgo-based toolchain on versions that no longer require the old `linkname` flags. Update the local Wasm build toolchain to match the new runtime bundle flow and dependency versions. Updates goplus/spx#1348 Signed-off-by: Aofei Sheng <aofei@aofeisheng.com>
* rebase * fix: sentinel value '$stage' leaks if project file contains target: "$stage" * optimize code * add comment
* feat: add AI-based asset description generation endpoint * feat: update asset description endpoint to support multimodal input and enhance documentation
* Initial plan * chore(deps): bump spx to v2.0.0-pre.47 --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
… quick entries (#2927) * move sound editor into stage editor tabs and add stage quick entries * add v-radar to stage quick entries & optimize sounds empty styles * dispose sounds state & remove redundant return * remove legacy components * reorder stage tabs and adjust stage panel layout * add test cases * set minimum height of panel content * scroll area change to quick entries
Add a two-step username modification flow to profile editing and update profile surfaces to show the username inline with copy actions. - Add `username` to `PATCH /user`, frontend update params, and signed-in user state - Add `useModifySignedInUsername` to invalidate old and new user caches and preserve the current route after rename - Add `ModifyUsernameModal` with validation and a shared warning modal - Rework `EditProfileModal` and `UserHeader` around a shared `UserUsernameInline` display with copy and modify actions - Add `copyAltFilled` to `UIIcon` and remove the joined-at icon to match the updated design Signed-off-by: Aofei Sheng <aofei@aofeisheng.com>
…rd tool-call API (#2926)
…uffer (#2933) * feat(spx-gui): Implement circular buffer for runtime outputs with configurable max size and stable IDs.(#2812) * feat(spx-gui): Implement output virtualization in ConsolePanel to improve performance with large logs. * feat(spx-gui): Cache runtime outputs and enforce a safe upper bound for the maximum number of outputs. * feat(spx-gui): Throttle runtime output change events and remove console panel virtualization. * refactor(spx-gui): Improve runtime output caching with a dirty flag and reactive tick, and reduce default max outputs. * refactor(spx-gui): improve output ring buffer reset logic and explicitly clear the output cache. * refactor(spx-gui): replace manual loops with `splice` and `fill` for array manipulation in `resetOutputs`. * refactor(spx-gui): use Vue refs for Runtime state and expose outputs as a throttled snapshot * refactor(spx-gui): Improve runtime output change event throttling by utilizing requestAnimationFrame with a setTimeout fallback. * feat(spx-gui): Remove configurable maximum console output limit, fixing it to a default value. * refactor(spx-gui): streamline output flush scheduling to exclusively use `requestAnimationFrame` --------- Co-authored-by: corcton <corton001@gmail.com>
…2947) Signed-off-by: Aofei Sheng <aofei@aofeisheng.com>
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 focuses on a major architectural shift for the code editor, making it more modular and extensible for future XGo frameworks. It also brings significant updates to the AI capabilities with a new SSE streaming endpoint for Copilot and an API for generating asset descriptions. Core infrastructure updates include a Go version bump and enhanced user profile management features. 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. Changelog
Ignored Files
Activity
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
|
|
Solid release aggregation. A few items worth addressing before merge:
// line ~449
this.handleCopilotMessage(message) // ← missing awaitIf |
There was a problem hiding this comment.
Code Review
This pull request appears to be a major release, introducing significant refactoring and new features. Key changes include a major architectural overhaul of the code editor, separating it into a generic xgo-code-editor and a specific spx-code-editor. The Copilot API has been updated to use SSE for streaming and a structured message format with tool calls. User profile management is enhanced with the ability to change usernames. The UI for monitor widgets and the overall editor panel layout have been improved. Additionally, there are numerous dependency updates.
My review focuses on one maintainability improvement in a shell script. The rest of the changes are extensive but appear to be well-integrated and consistent.
There was a problem hiding this comment.
Code Review
This pull request appears to be a release, incorporating a significant and well-executed refactoring of the code editor for better generalization. The introduction of a generic xgo-code-editor layer is a major architectural improvement. The changes also include substantial API enhancements, such as structured tool calls for the copilot via SSE, and new features like username modification and improved monitor widget functionality. The codebase has been consistently updated to reflect these changes, including API clients, documentation, and configuration files. Overall, the changes are of high quality and demonstrate a significant step forward in the application's architecture and feature set.
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 focuses on updating the SPX version, upgrading the Go version in the Dockerfile, adding documentation for code editor generalization, updating API documentation, and refactoring the code editor to remove direct SPX dependencies. These changes collectively enhance the project's performance, maintainability, and extensibility. 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. Changelog
Ignored Files
Activity
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 appears to be a release, incorporating a wide range of significant improvements. The most substantial change is a major architectural refactoring of the code editor to be more generic (xgo-code-editor) and extensible, which is well-documented. The Copilot API has been modernized to support structured tool calls and Server-Sent Events, a significant improvement over the previous implementation. Additionally, there are several new features, including username modification and AI-powered asset description generation. The UI has been refined, particularly in the editor panels and monitor configuration. Numerous bug fixes, such as ensuring monitors update correctly on sprite and variable renames, are also included. The overall quality of the changes is very high, and I have no specific issues to raise.
Add avatar editing to the profile modal with a dedicated `EditAvatarModal` that lets users crop square images before upload. Extend `PATCH /user` and the frontend user API types to accept `avatar`, then upload the exported PNG to Kodo and save the returned URL immediately from the avatar modal instead of bundling it into the rest of the profile form. Signed-off-by: Aofei Sheng <aofei@aofeisheng.com>
* fix editor styles * details * more details * fix: stage preview size * fix map editor sider width
[skip review]