I like the way Tiny Core is going. Keep up the good work.
I have a suggestion for future releases.
With the present system, the user needs to run OnDemand, to create an On Demand menu. Then use the On Demand menu the first time a program is started, and the regular menu if the program is started again.
Here is a suggestion.
Put menu items in separate files, not in the extensions. You could name them anything, but it could be program-name.menu.
Have all menu items load from /tce/optional when the computer starts, even if the extension is not loaded.
Make each menu file a script, so when a menu item is clicked, if there is not a link for that program in the tce directory, it will run the On Demand start. If there is a link, it will run the normal start.
This will mean there will be one menu (no On Demand menu).
All programs will be included in the menu.
It will not be necessary to run On Demand to create the On Demand menu.
It also has another benefit. If people want to change the menu, they can just edit the menu files, without changing the extensions.
Others may have other ideas about how this could be done. I think the only way to load the menu when the extension is not loaded, is to have it in a separate file.
It may even be possible to put menu info in .dep files, instead of having .menu files.