Releases: alex-jordan547/renforge-mcp
Releases · alex-jordan547/renforge-mcp
Release list
v0.6.4
Fixed
launch_with_bridgeno longer returns prematurely whenping()returns
{"error": "timeout_waiting_for_main_thread"}. On Windows or during heavy asset
loading / script compilation, Ren'Py can take 30–40s beforeperiodic_callbacks
starts draining on the main thread. Previouslyclient.ping()returned the dict without
raising, causinglauncher.pyto declare the sessionreadyprematurely while the
game was still ininit python. Subsequent MCP tool calls then timed out or failed.
launch_with_bridgenow strictly verifiesreply.get("pong") is Trueand retries
until Ren'Py reaches its main interaction loop, with defaultstartup_timeout
increased from 60s to 90s.
v0.6.3
Fixed
- Bridge listener no longer dies with
NameError: name 'socket' is not definedafterrenpy.reload_script(). The listener thread survives a
script reload, but the reload wipes the Ren'Py store — the__globals__
ofinit python:functions — so the bareexcept socket.timeout:in the
accept loop raisedNameErroron the next 0.5s timeout and silently
killed the thread. The game kept running with a dead bridge until the
process was eventually closed. The listener and its helpers now use
function-local imports (read fromsys.modules, which reload never
touches), and the accept loop also tolerates non-timeoutOSError.
v0.6.2
Fixed
- Ren'Py 8.5 support: read button/choice labels via
_tts_all(raw=False)
(8.5 maderawrequired; the old no-arg call failed open and blanked every
control label, breaking choice selection and autopilot). - Repair Ren'Py 8.5
--json-dumplabel emission when discovering/installing an
SDK: unwrap Node-keyedscript.namemapentries that upstreamdump.pystill
filters withisinstance(name, str).
Changed
- Default pinned Ren'Py SDK is now 8.5.3 (was 8.3.7).
v0.6.1
Changed
- Public-launch polish: install-first README with light/dark dashboard
screenshots, architecture and client-config details moved todocs/,
English-only dashboard labels. - Published to the official MCP Registry (
io.github.alex-jordan547/renforge):
server.jsonmanifest and PyPI ownership marker.
v0.6.0
Added
- Compact live-state profiles (
minimal/interaction/debug/full) with
serialization limits onrenforge_wait_untilandrenforge_game_state_compact. renforge_launchstrategies:display=auto,audio=auto, structured launch
errors (code/phase/suggested_fix), andsavedir=temporaryisolation.renforge_hit_testfor interactive focus-stack inspection; UI elements now
reportaction,zorder,covered,clickable, and logical coordinates.renforge_run_scenarioto batch set/click/wait/assert steps with automatic
failure diagnostics.- Structured business events (
quick_save.completed,quick_load.completed,
skip.started/skip.stopped,auto.changed/auto.advanced,
rollback.completed) withcorrelation_id/interaction_id. wait_for_effectonrenforge_controlandrenforge_click_elementto block
until the matching business event is observed.
Changed
renforge_wait_untilreturns a compact interaction-profile state by default
and a structuredmatchedobject (type+value).- Clicks report the element that actually received the event (
received_by)
when another control covers the target. - Bridge
poll_eventsentries includetimestampand optional
correlation_idfor attribution.
Fixed
- Translation estimation discards pixels shifted outside the search region
instead of wrapping them around the opposite edge. - Live save/load verification now enforces the documented
restored_label
response contract.
v0.5.0
Added
- Added
renforge_hover_elementto move the pointer over visible controls
without clicking, with stale-frame protection. - Added
renforge_capture_screenshotfor reusable named PNG captures and
renforge_estimate_translationfor measuring visual movement between them. - Added
renforge_get_ui_element_boundsto report focus bounds and the
alpha-painted bounds of the activeImageButtonstate.
Changed
- ImageButton hover now dispatches Ren'Py's focus mouse handler before
restarting the interaction, so hover state updates reliably without a player
interaction loop.
v0.4.1
Added
renforge_info/renforge_contextnow resolveactive_projectwithout the
dashboard: they fall back to theserve --projectdefault, then to a Ren'Py
project auto-detected from the current directory, and report the winning
source in a newproject_sourcefield. When nothing matches, the payload
carries an explicithintso agents passproject_pathdirectly instead of
stalling.
Changed
renforge_screenshotaccepts a singlewidthorheightand derives the
other dimension from the game's aspect ratio (previously both were required
together).
v0.4.0 — GOD mode runtime tooling
GOD mode runtime tooling — grouped runtime control, live iteration, and crash diagnostics.
Added
- Grouped runtime controls through
renforge_control: hot script reload, rollback, quicksave/quickload, skip, auto-forward, and menu actions. - Named save slots with
renforge_saves, and grouped text, key, and scroll input withrenforge_send_input. renforge_get_errorsfor recent bridge exceptions and bounded crash-file diagnostics, plusrenforge_wait_untilfor bounded label, screen, or expression waits.renforge_inspect_screenfor active screen scope and argument introspection.
Changed
renforge_game_stategains opt-ininclude=["metrics", "audio"]sections while preserving its default response shape.- Expanded README and MCP reference with the complete edit, hot-reload, save, branch, and diagnostics workflow.
PyPI: pip install renforge==0.4.0
v0.3.0 — pixel-perfect placement tools
Pixel-perfect placement and visual iteration tools.
Added
- Pixel-perfect screenshot capture, displayable measurement, live positioning, and screenshot-diff tools:
renforge_get_displayable_bounds,renforge_position_element,renforge_screenshotgrid/rulers/crosshair overlays, andrenforge_diff_screenshots.
PyPI: pip install renforge==0.3.0
v0.2.0 — onboarding & cross-platform hardening
Onboarding, packaging, and cross-platform hardening.
Changed
fastmcpis now a default dependency; MCP onboarding no longer needs--projectin configs.- README onboarding overhaul; multi-OS CI (Ubuntu / Windows / macOS).
Fixed
- Windows fixes: process termination, scanner backslash paths, SDK temp-file locking, and
renpy.exepreference. - UI project-picker performance and native Windows drive handling.
PyPI: pip install renforge==0.2.0