Commit Graph
8 Commits
Author SHA1 Message Date
inference-admin c2aec749b4 overlay: rebase on appstore package 1.4.8 (candidate for 2026-11-08 window)
- Dockerfile FROM: appstore 1.4.5 image (202610230221180000) -> 1.4.8
  (202611030321030000). Same LibreChat upstream 0.8.8 in both - the package
  delta is tooling only: uv 0.13.5->0.13.7 and Node.js 22.23.4 (security fix,
  1.4.7), base image 6.0.1 (eMudhra cert fix, 1.4.4 - already in 1.4.5).
- All overlay anchors verified against the real 1.4.8 image dist (title tag,
  manifest link crossorigin, viewport meta, theme-color #171717, webmanifest
  name/colors, 'MCP Servers' + 'Every AI for Everyone.' strings, index.*.js,
  sw.js): unchanged, no porting needed.
- release.sh BASE_IMAGE default follows the pin.
2026-11-06 04:05:01 +00:00
inference-bot 1b9b971c6e release.sh: release deployed the OLD image — pin the built tag, then deploy
The release chain read the tag back from CloudronManifest.json BEFORE pinning
it, so t was always the previous tag: release built the new image, then
deployed the old one and printed success — the exact silent no-op this script
exists to prevent. Its usage text promises build -> pin -> deploy -> verify;
it did build -> deploy.

cmd_build now exports the tag it built and release pins THAT, then deploys and
verifies. Not exercised end-to-end yet (the theme deploy that found this bug
was run as separate build/pin/deploy steps and passed all checks); the edit is
syntax-checked only.
2026-10-27 22:03:32 +00:00
inference-admin aca430cea6 release.sh: retry served-HTML checks during the post-deploy container swap
A fetch seconds after 'App is updated' can come back empty while the container
recreates, which false-negatived the x-coop-build check on the 1.4.5 deploy
(2026-10-26). http_body retries 3x before declaring failure.
2026-10-26 03:31:38 +00:00
inference-admin bcc85709f6 release.sh: fix the builder-login detection (info output is multiline) 2026-10-26 02:13:48 +00:00
inference-admin cb7661dde6 release.sh: also accept a registry app password from the env
REGISTRY_BUILD_TOKEN (+ optional REGISTRY_BUILD_USERNAME) lets a build run from
any host with the token in its environment, no ~/.cloudron.json builder config
required. The narrow credential (app password scoped to the registry app) is the
least-privileged way to hand a host build rights; with no token and no builder
config the script prints both bootstrap routes and exits instead of guessing.
2026-10-26 02:13:28 +00:00
inference-admin b657030d24 release.sh: correct the build prerequisites (builds are remote, not docker-local)
I had it wrong: `cloudron builder build` uploads the build context and the
registry app's BuildKit builds it — the caller needs no docker, only a registry
login. The guard now checks for that login and prints both bootstrap routes
(narrow app password scoped to the registry app, or the CLI device flow) instead
of blaming a missing docker binary.
2026-10-26 01:39:38 +00:00
inference-admin 2357d5d55a release.sh: refuse to pin from a non-master branch (the pin commit lands on master) 2026-10-26 01:39:15 +00:00
inference-admin bb2503bb47 Add release.sh; make the verify block honest; print the seed script's own revision
Three drifts between this repo and reality, found while moving the per-member key
seed into the app:

- The 'verify after every image deploy' block asserted the CREAM palette
  (rgb(250,248,245)). The deployed palette has been the green wash
  (rgb(234,243,234) with white text areas) for some time, so a correct deploy
  would have read as a failure — and invited someone to 'fix' the CSS back.
- The block still verified against librechat-test.inference.coop; the swap to
  chat.inference.coop happened 2026-10-21 and that alias is not provisioned.
- Nothing checked that the scheduler task's script exists in the running image,
  which is exactly the failure mode a manifest repoint can introduce.

release.sh encodes the documented release flow (dirty-tree guard, always
--no-cache, pin-before-deploy) and its verify subcommand runs checks 1-5 plus the
seed task's log lines. sync-keys.js now prints its own md5 prefix on every run,
so a stale volume copy can never hide again — the repo copy's md5 is the
authority.

Verified: ./release.sh verify passes all six checks against the live app;
./release.sh volume sync-keys.js confirms md5 parity.
2026-10-26 01:34:22 +00:00