v2.74.0: managed apps keep their code on the AppCrane host, and embedded apps can sign in
Managed-app code on this host
- A new managed app's code lives in a git repository on the AppCrane host instead of GitHub. No service account is needed, and the code never leaves the box.
- Existing GitHub-backed managed apps move over automatically on the first boot after this upgrade, before AppCrane starts serving, one app at a time. An app switches only when every branch and tag matches GitHub exactly; otherwise it stays on GitHub and the reason is recorded. A failure never stops boot. Sign-in for hosted apps is unavailable while this runs, so the first upgrade takes longer.
- Platform admins can see each app's outcome at /api/github-service/repo-migration. Set APPCRANE_REPO_MIGRATION=off to skip it.
- A push deploys on its own when auto-deploy is on for that environment, and check-for-updates compares against the local branch.
- Ask Claude answers from the repository directly, without starting a container. It needs the server's ANTHROPIC_API_KEY; per-app subscription credentials are not used for these apps.
- AppStudio analyzes the repository and files the result as a new request instead of writing code.
- Studio and coder sessions are not yet available for apps on this host.
Backups
- A backup is now a data archive plus one archive per code repository, written straight to disk and never held in memory. Export runs off the main thread, so hosted apps keep answering sign-in during a backup.
- Fixed: a symbolic link inside an app's data could copy files from the host into the backup. Links are now archived as links.
- The off-site S3 upload sends the data archive only, not the repository archives.
- The Settings page still describes a single zip.
Embedded apps
- An app embedded by a site under the platform's own domain can now sign its user in inside the frame. Previously the frame stayed blank.
- A signed-out visitor now lands on the app they asked for after signing in, not on the dashboard.
- Identity-provider sign-in (OIDC, SAML) opens the provider's own page, which the provider must allow to be framed.