Here I will list things we need in general, like demos, tech previews.
Real tasks you will find in /CWUP/BACKLOG.md
Codex: Ich setze nun die Bridge-Erweiterung (get/set/invoke generisch über Godot-Variant/JSON) um, damit die neuen 3D-Controls sofort aus SMS aufrufbar sind. Danach kommt das Control-Scaffold.
Art: Was macht der JSON Teil da? Ist das nicht etwas, was wir optimieren sollten?
- Default app, which will be loaded on startup id no URL is specified
- The designer app, which we can use to design and implement new apps, based on Forge
- Compiler that compiles SMS and SML to create native apps. Two phases convert to C# or create LLVM, depends on performance
- Packaging system (mac, win, linux)
- Plugin Engine
- UserDefined Controls
- SMLCore in C++ (standalone lib, independent from ForgeRunner) ->
CWUP/tasks/smlcore_cpp_native_runtime.md - SMS in C++ (interpreter/runtime parity to current managed SMS) ->
CWUP/tasks/sms_cpp_native_runtime.md - SMS language spec upgrade (2b): implement new spec features in native runtime and keep managed/native behavior aligned ->
CWUP/tasks/sms_language_spec_2026_native.md
- Run apps in native-only mode (default, designer, poser)
- Verify no
Native SMS event dispatch failed...errors in strict mode - Verify no
Native SMS session is unavailable...errors in strict mode - Keep
SmsPerfLab --sms-conformancegreen for managed/native parity - Ensure all required
ui.*/os.*bridge calls are supported by native runtime - Remove managed event fallback path from
SmsUiRuntime.TryInvokeEvent - Remove managed
ScriptEngine.InvokeEventdependency after strict runs stay green
- Edit SML/SMS/MD
- Preview for MD, Zoom level
- Preview for SML (Windows, Dialogs), Zoom level
- Intellisense for SML
- Intellisense for SMS
- Visual Tree panel
- SML Element Inspector (like Godot/Unity inspector)
- Docking layout save/load (Save As Dialog, Load Dialog)
- Theme switch (Light/Dark)
- Undo/Redo file-based versioning
- Purge old file versions (after push)
- Showcase demo app (showcase all UI elements)
- Performance demo
- 3D demo integration
- Markdown book demo
- Localization demo
- Plugin demo
- Template system (new app templates)
- App marketplace (later)
- Plugin marketplace (later)
- Example repository
- Starter projects
- Server-mode runtime
- server.sml → Codegen → Kotlin Sources (KTOR)
- HumanityTree statt Database
- Investigate Godot shutdown leak report:
RID allocations of type TextureStorage::Texture were leaked at exit(seen after app close; currently treated as engine-level diagnostic, not user-facing app error) - Investigate Godot shutdown warning:
resources still in use at exit (run with --verbose for details)and capture verbose details for concrete owner paths - Verify cleanup/lifecycle for runtime viewports/textures (
SubViewport,ViewportTexture, generatedImageTexture) on exit to reduce RID leak noise - Fix verbose shutdown leak:
Cannot get path of node as it is not in a scene treewith leaked UI nodes (VBoxContainer,CodeEdit,HScrollBar,VScrollBar,MarginContainer) during app exit - Fix verbose shutdown leak:
Timerinstances leaked at exit (ensure timers created by runtime are canceled/freed on quit) - Fix verbose shutdown leak:
SyntaxHighlighter/TextParagraph/FontFile/Imagereference leaks at exit (likely CodeEdit/theme/resource lifetime)
When we would use SML for server tasks, we could use SML to desribe the database.
Sample:
Database {
name: "ForgeServer"
package: "com.crowdware.forge.server"
Table {
name: "User"
Column { name: "id" type: "uuid" nullable: false }
Column { name: "email" type: "string" nullable: false }
Column { name: "createdAt" type: "instant" nullable: false }
PrimaryKey { columns: "id" }
Index { columns: "email" unique: true }
}
}ForgeRunner.Native now supports windowless Terminal Apps. We might want to user ncurses or TVision here in order to position the cursor and to color text. Maybe a use case can be to use ASCII windoing like the good old days with Norton Commander /Midnight Commander.