| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
feat(branding): retire the Unsplash picker and use duotone icons Drop the Unsplash image picker from every upload surface (course, podcast, community, board and playground thumbnails, the editor image block, the sign-in background) and from the CLI setup flow, along with the unsplash-js dependency and its access key. Existing content and sign-in backgrounds that were picked from Unsplash keep rendering with their attribution; the picker is simply no longer offered. AI-generated backgrounds now upload as a custom photo instead of being stored as a remote URL. Switch the branding page's phosphor icons to the duotone weight, and cover the square logo upload wrapper. Also refresh apps/api/uv.lock, which the release bump left one version behind. | 8 天前 | |
feat(branding): retire the Unsplash picker and use duotone icons Drop the Unsplash image picker from every upload surface (course, podcast, community, board and playground thumbnails, the editor image block, the sign-in background) and from the CLI setup flow, along with the unsplash-js dependency and its access key. Existing content and sign-in backgrounds that were picked from Unsplash keep rendering with their attribution; the picker is simply no longer offered. AI-generated backgrounds now upload as a custom photo instead of being stored as a remote URL. Switch the branding page's phosphor icons to the duotone weight, and cover the square logo upload wrapper. Also refresh apps/api/uv.lock, which the release bump left one version behind. | 8 天前 | |
fix(cli): migrate database before booting new image on update `update` restarted onto the new image first and ran migrations after, so startup probes hit columns a migration hadn't added yet and the new container crash-looped until the health wait gave up. Old images can't stamp or inspect migration state directly (their alembic env.py ignores the configured connection string), so update now reads alembic heads from the still-running old image, then runs stamp/upgrade in a one-off container of the new image before compose down. A failed migration re-pins the previous image and exits without restarting anything. --no-migrate still skips this. | 10 天前 | |
feat(branding): retire the Unsplash picker and use duotone icons Drop the Unsplash image picker from every upload surface (course, podcast, community, board and playground thumbnails, the editor image block, the sign-in background) and from the CLI setup flow, along with the unsplash-js dependency and its access key. Existing content and sign-in backgrounds that were picked from Unsplash keep rendering with their attribution; the picker is simply no longer offered. AI-generated backgrounds now upload as a custom photo instead of being stored as a remote URL. Switch the branding page's phosphor icons to the duotone weight, and cover the square logo upload wrapper. Also refresh apps/api/uv.lock, which the release bump left one version behind. | 8 天前 | |
feat: improvements to the cli | 7 个月前 | |
fix(cli): correct docker exec, port/slug validation, update pull, and restore behavior - dockerComposeExec: pass -T so non-interactive (CI) exec doesn't hang on a TTY - validatePort: reject non-numeric input before parseInt - organization slug: use canonical validateSlug (rejects leading/trailing/double hyphens) - update: pull images before recreating containers; tidy content-volume migration - restore: idempotency + clearer external-DB / no-deployment guards - add a --version guard and export a few helpers (parseMemLimit, formatBytes) for testing | 2 个月前 | |
release(cli): bump version to 1.5.1 | 2 个月前 | |
feat(branding): retire the Unsplash picker and use duotone icons Drop the Unsplash image picker from every upload surface (course, podcast, community, board and playground thumbnails, the editor image block, the sign-in background) and from the CLI setup flow, along with the unsplash-js dependency and its access key. Existing content and sign-in backgrounds that were picked from Unsplash keep rendering with their attribution; the picker is simply no longer offered. AI-generated backgrounds now upload as a custom photo instead of being stored as a remote URL. Switch the branding page's phosphor icons to the duotone weight, and cover the square logo upload wrapper. Also refresh apps/api/uv.lock, which the release bump left one version behind. | 8 天前 |