Repository navigation
feat(control): a console command that runs one $ developer command - #714
Merged
Merged
Conversation
alandarev
marked this pull request as ready for review
October 13, 2026 06:25
`console` (`text`) runs a `$` command as if it was typed into the chat box, without opening the chat box: scripted screenshots and checks can switch a developer option (`$fpscounter on`, …) and nothing typed shows up in the frame. A text that is not a `$` command the client knows answers `bad_request`. Tests: the command vocabulary; live: `console '$fpscounter on'` ok, `console '$nosuch'` bad_request, the chat box stays closed.
alandarev
force-pushed
the
feature/control-console
branch
from
October 15, 2026 20:26
164f663 to
a40a18e
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds
console(text) to the developer control socket: it runs one$commandas if typed into the chat box, without opening the chat box, so scripted
screenshots and checks can switch a developer option (
$fpscounter on, …) andnothing typed shows up in the frame. A text that is not a
$command the clientknows, or one whose arguments are missing or malformed, answers
bad_request(a
$handler that throws on a bad argument, such as$fpswithout a number,no longer ends the client when it comes through the socket). Documented in
docs/control-socket.md.Related issues
Follow-up to the control socket (#594).
Testing
Rebased onto
main112cece (after #610).maindoes not build on Linux(#730), so the Linux runs below add #719's build fixes (fork branch
fix/linux-gcc-build9ecbf65) under this branch, test-only.cmake --build --preset linux-x64-release+ctest: 603/603.main2e41b7c: Quality Gates and theWindows editor-OFF build with its tests pass (https://github.com/alandarev/mumain-sven/actions/runs/38795383439,
https://github.com/alandarev/mumain-sven/actions/runs/38795383352). The other jobs fail on
maintoo, with the same errors(Build fails on main (112cece4d): macOS, Windows/Linux with the editor, Linux; CI has not run on main since August #730).
console '$fpscounter on'andconsole '$fps 60'→ ok;console '$fps'(no number) →bad_request, and the client keeps running (itused to end the client, through the socket as through the chat box);
console '$nosuchcommand'→bad_request.Written with AI assistance and tested by hand.
Checklist
docs/CODING_RULES.md.docs/build/README.md).