mvmOS 0.28.0-beta: App isolation and the Platform API
An app can no longer read anything outside its own folder. App server code now
runs confined: opening a file or a database anywhere else is refused, so no app can
read the core database or another app's data. What an app legitimately needs from
mvmOS it asks for through the new Platform API instead. An app folder is no longer a
document root either — only its public files are served over HTTP, so an app's
database and its own server code have no URL that reaches them.
Premium builds move into the app's own folder and no longer require an app to have a
backend. Installing or updating an app wipes any existing premium build and fetches
it again only if the installation holds a valid licence, so a lapsed subscription
removes the code and a stale build cannot survive an update.
Every database now opens in WAL mode with a busy timeout, so reads no longer block
behind a write and simultaneous writes queue instead of failing. Start Menu search
no longer lists core apps twice, and waits for three characters before replacing the
menu.