A full dev loop for AI-assisted work on a running app
A full dev loop for AI-assisted work on a running app
Building on /refreshProject, the dev server gained a handful of endpoints that together let an external tool — most usefully an AI coding assistant working in your repo — drive the whole edit→build→run loop on a live WebObjects/Parsley application, without you relaying anything by hand. Everything is localhost-only, with no setup.
- Validate a template without rendering it —
/validate?component=NAMEruns Parsley’s template validator on a component and returns the problems (line, position, message) as JSON. Templates are long, error-prone strings whose mistakes usually don’t surface until the page renders; now they can be caught up front. (Eclipse’s own validation is editor-driven, so a plain refresh never checked templates — this fills that gap.) - Read the running app’s console over HTTP — the app (via wonder-slim’s ERExtensions, in development) serves its recent log at
…/App.woa/log, withcontains=andtail=filters. No more copy-pasting the Eclipse console to share what the app printed. - Discover what’s running — apps announce themselves at startup, so
/appslists each running app, its port, and which of its dependencies have source open in your workspace (with paths). A tool can find an app by name — no guessing ports — and knows which libraries it can actually read and edit versus jar-only ones. - Start and stop apps —
/launchstarts a launch configuration (listing them, and deliberately preferring a local/dev config so it never accidentally fires Production), and/stopshuts one down (cleanly, or withforce=truefor a JVM that a big hot-reload has wedged).
Why this matters. Each piece removes a manual hand-off. The result is that an assistant can launch your app, edit source and templates, validate them, refresh the running instance, read back the console to confirm, and restart when a change needs it — closing the loop end to end. There’s a short guide for setting this up with an agent in the repo’s AGENTS.md.
From the changelog, June 5, 2026.