Retarget the changeset from @executor-js/host-selfhost (a private package that publishes nothing and rebuilds no image) at executor, so the release train cuts a product patch, tags it, and republishes the self-host image from main.
Unified · Split
| @@ -0,0 +1,5 @@ | |||
| 1 | --- | ||
| 2 | "executor": patch | ||
| 3 | --- | ||
| 4 | |||
| 5 | Self-hosted deployments now persist their data correctly across restarts. | ||
| @@ -1,17 +0,0 @@ | |||
| 1 | --- | ||
| 2 | "@executor-js/host-selfhost": patch | ||
| 3 | --- | ||
| 4 | |||
| 5 | Fix self-hosted data loss on restart. The auth bootstrap built a throwaway | ||
| 6 | Better Auth instance to run migrations and seed the org before the | ||
| 7 | organization id was known, then discarded it. Its libSQL connection — a | ||
| 8 | different native build than the executor's — was garbage-collected mid-boot, | ||
| 9 | and that close unlinked the shared SQLite WAL out from under the executor's | ||
| 10 | still-open connection. Every executor write (integrations, connections, the | ||
| 11 | generated tools) then landed in a deleted WAL file and vanished on the next | ||
| 12 | restart, surfacing as a reconnected account whose tools had silently | ||
| 13 | disappeared. | ||
| 14 | |||
| 15 | The bootstrap now uses a single long-lived auth instance with the | ||
| 16 | organization id late-bound, so there is no second connection to be closed | ||
| 17 | mid-boot and no split WAL. | ||