Skip to content

Fix/admin modal rerender - #1341

Open
icheat2win wants to merge 22 commits into
MUnique:masterfrom
icheat2win:fix/admin-modal-rerender
Open

icheat2win wants to merge 22 commits into
MUnique:masterfrom
icheat2win:fix/admin-modal-rerender

Conversation

@icheat2win

@icheat2win icheat2win commented Oct 28, 2026 •

Copy link
Copy Markdown
Contributor

fix(admin): keep the page state when a modal is shown or closed

claude and others added 20 commits October 21, 2026 21:19
Mounting a seed sphere used the item level of the seed sphere as the
level of the socket option. That item level defines the kind of option
though, so the option level was 0 to 5 depending on the option number
instead of 1 to 5 depending on the sphere. Level 0 has no level
dependent power-up, and the serializer encoded it as a negative sphere
level which wrapped around the socket byte.

The option level is now taken from the seed sphere definition, and the
serializer clamps the sphere level to the range the client supports, so
an out-of-range level (e.g. set through the admin panel) can no longer
produce a socket byte which crashes the client.

Refs MUnique#891

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01D7SXuEktJd46sB6iTcG32U
fix(remoteview): send master stats of extended clients without 16 bit truncation
fix(sockets): derive the socket option level from the seed sphere tier
fix(muhelper): cast buffs with the same restrictions as a player
feat(crafting): add a configurable bonus to the crafting success rate
Adds a Leaderboards page to the admin panel which ranks the characters by
their summed scores of the saved mini game rankings (Blood Castle, Devil
Square, Chaos Castle, ...), with all levels of a mini game combined and an
optional period of the last 7 or 30 days. Bots and template accounts are
not ranked. Refs MUnique#559.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01D7SXuEktJd46sB6iTcG32U
Show key columns like Number in admin panel item tables
Add mini game leaderboards to the admin panel
The parameter infos of chat commands now carry the minimum and maximum
of a [Range] and a new [ValueReference] hint, which tells a client which
kind of value a parameter refers to (character, account, guild, map,
coordinates, item group/number, monster, object id, language). Item
numbers name the group parameter they belong to, so a client can
suggest numbers of the chosen group. The /item level gets a range of 0
to 15. The source generator emits the new attributes, so the generated
and reflected argument properties stay equal.

Refs MUnique#849

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01D7SXuEktJd46sB6iTcG32U
The fork master carried earlier versions of fork PRs which are merged
upstream in their final form. This makes the tree equal to upstream
master again, so the fork PRs show only their own changes.
The minigames_leaderboard tool of MUnique#1285 is a 21st read tool, but the
integration test still expected 20, which made master fail.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01D7SXuEktJd46sB6iTcG32U
(cherry picked from commit 4ac3659)
…language

The /language command accepts culture names and three-letter ISO codes,
too, so the value reference is named Language and describes all of
them. Clients which use it for pickers or validation don't reject valid
values anymore.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01D7SXuEktJd46sB6iTcG32U
…-hints

feat(chat-commands): describe value ranges and references of parameters
The modal container re-rendered its child content whenever a modal was
shown or closed. In the admin panel, that content is the AuthorizeRouteView,
which authorized the routed page again. Without an admin user, the check
completes asynchronously, so the page was disposed and created again and
lost its state, e.g. the API key which is only shown once.

The modals now render in a component of their own, so only it re-renders.

Fixes MUnique#1338

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011xNc75wWo45WokXGb4rMQU
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 28, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ⚠️ Failed 2026-10-28T17:44:50.911466Z
We couldn’t complete this review. Comment @codex review to try again.
2a3a7c2 PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@codacy-production

Copy link
Copy Markdown

Up to standards ✅

🟢 Issues 0 issues

Results:
0 new issues

View in Codacy

🟢 Metrics 8 complexity · 0 duplication

Metric Results
Complexity 8
Duplication 0

View in Codacy

NEW Get contextual insights on your PRs based on Codacy's metrics, along with PR and Jira context, without leaving GitHub. Enable AI reviewer
TIP This summary will be updated as you push new changes.

@sven-n sven-n left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Changes requested: this PR combines the modal rerender fix with unrelated chat-command parameter metadata and source-generator changes (including src/GameLogic/PlugIns/ChatCommands/ChatCommandParameterInfo.cs and src/SourceGenerators/ChatCommandArgumentsGenerator.cs). Please split these into separate PRs per docs/CODING_RULES.md rule 1. Additionally, src/GameLogic/PlugIns/ChatCommands/Arguments/ItemChatCommandArgs.cs:32-37 advertises item levels 0–15, but src/GameLogic/PlugIns/ChatCommands/CommandExtensions.cs:204-225 converts arguments without enforcing RangeAttribute. Please enforce the bound or clarify that it is metadata only and test out-of-range values. A routed-page integration test would strengthen the modal fix.

@icheat2win
icheat2win requested a review from sven-n October 30, 2026 20:23

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants