Repository navigation
Conversation
|
Thanks for this, and for the thorough write-up. The flashes are real: the bridge checks the token file's permissions through PowerShell twice on every map open, and Godot 3.4 can't start a console program without a window. You also traced the cause correctly. I'd like to fix it a different way, though, because of what the launcher looks like from outside:
Could you try this lower-risk change first?
That keeps the existing A note on how changes land: production is built from a separate development repository, so I don't merge PRs here directly. I port accepted work as a commit authored by you, so you show up as a contributor, and it ships in the next release. |
|
Meat disclosure :) This text was written by a human and is reproduced verbatim. Hello! Thank you for making this fantastic Dungeondraft MCP. I hope I haven't annoyed you too much with my AI-written and AI-commented pull requests. The fixes I've suggested are things I use in my own setup and plan to continue using. I just thought that since I've already spent the tokens/usage/evaporated water in the data center, I might as well make a pull request out of it. I fancy myself a C++ programmer, but this web/JavaScript (?) stuff is way outside my comfort zone, so I sic my agents on those problems. Grok and I have read your comments, and I don't mind implementing your suggestions. However, Grok here has been a bad boy and already burned through a lot of my usage allowance, so I'm almost out of tokens for the next 7 days. After that, I can sic it on your feedback, and it will hopefully address your concerns, assuming they're still relevant by then. |
|
Not annoyed at all lol I'd be lying if I said that I wasn't AI assisted as well. The PRs were useful: #16 found a real bug, and import_image from #17 is going in. No need to spend your tokens on #16. The change I described is small, so I'll make it myself and credit you as co-author, since you found the cause. I'll port import_image from #17 as your commit at the same time. If you want to pick up the pack builder later as its own PR, the notes on #17 still apply whenever you get to it. |
|
Deal, I will sic Abominable Intelligence on |
|
Sounds good, and thank you. I'll keep you credited anyway: you found the cause on #16 and wrote Both are now in the development repo. The token check runs once per Dungeondraft session instead of on every map open, and I'll hold the next release for a few days, so if the pack builder PR arrives in that window it can ship together with these. No pressure if it takes longer; it'll go in the release after. |
|
This shipped in 1.4.2, with you as the commit's author, so you're now listed as a contributor. Thank you, David. The token check now runs once per Dungeondraft session. On Windows we measured it on fresh processes: the first map open runs the two checks, and later opens in the same session started no console processes at all (19 opens across the test suites). Closing this PR now that it's released. |
Opening or switching maps on Windows flashes two console windows while the bridge initializes its private token. These windows can steal focus from another application and interrupt typing. Whether focus returned automatically was not established. Ordinary MCP reads and edits did not reproduce the problem.
Godot 3.4’s blocking
OS.executecaptures output through_wpopen, which launchescmd.exe. Hiding PowerShell alone therefore does not reliably prevent the flashes.This change starts a bundled JScript launcher through GUI
wscript.exe, using nonblockingOS.execute. The launcher starts PowerShell hidden and waits for it. The existing ownership, ACL, redirected-path, and hard-link checks still run. A failure still prevents the bridge from starting.The bridge reads a temporary UTF-8 report instead of capturing process output. Each invocation has separate, unpredictable success and failure proofs: only a successful check emits the success proof, and unauthenticated report content is never logged. Reports use
CreateNewand exclusive write access. Missing launchers, invalid reports, and a 30-second timeout leave the bridge disabled.Validation
python server/tools/gate.pypassed, withDUNGEONDRAFT_TEST_EXECUTABLEset for isolated SceneTree tests using Dungeondraft’s Godot 3.4.2 engine on Windows.python tools/release.py check, Ruff lint, and Ruff formatting checks for release tooling passed.Compatibility and documentation
Windows Script Host must be enabled. If unavailable, the bridge refuses to start; an unresponsive launcher times out after 30 seconds. This requirement is documented in
docs/developer-installation.md.The upstream technical reference should receive the corresponding Windows setup and troubleshooting note.
The fix does not alter map content or permissions on Dungeondraft-owned folders. Non-Windows launch paths are unchanged.
AI disclosure
Code was written with OpenAI Codex. Codex ran the automated tests. The absence of console flashes during map reload was verified by human eyeballs.