Repository navigation
fix(ralphex-fe): rebuild daily for latest ralphex/rtk + repair update workflow - #113
Merged
Merged
Conversation
- Add schedule cron trigger (mirrors build-claude-code.yml) so the image rebuilds daily and bakes in the newest ralphex and rtk releases, which the Dockerfile pulls from GitHub "latest" at build time. - Previously only push/workflow_dispatch fired, so the published image was only as fresh as the last Dockerfile change (~2 months stale). - Offset cron to 11:41 UTC to avoid hitting the GitHub API the same minute as claude-code's 11:13 rebuild.
The Dockerfile no longer pins ARG RALPHEX_VERSION (ralphex is pulled from GitHub "latest" at build time), so the workflow's grep for it returned empty and failed the extract step (exit 1) on every dispatch. - Remove the ralphex_version input, output, env, sed, and grep. - Realign the version-tag to bun<v>-hugo<v>, matching build-ralphex-fe.yml. - Keep the still-valid Bun/Hugo manual version-bump path intact.
gatezh
added a commit
that referenced
this pull request
Aug 11, 2026
The cron landed on master in #113, after this branch was cut, so merging master back in reintroduced it. Git saw no conflict — this branch simply predates the cron — which is exactly how a no-op rebuild would have survived the PR unnoticed. Its own comment justified it by the Dockerfile resolving ralphex/rtk from GitHub "latest" at build time; those versions are now pinned ARGs that Renovate bumps, so the cron would rebuild byte-identical images daily.
gatezh
added a commit
that referenced
this pull request
Aug 13, 2026
…#116) * docs(renovate): design spec for Renovate-driven image rebuilds Replace the daily rebuild crons for claude-code and ralphex-fe with pinned tool versions managed by Renovate; rebuild only on a real version bump. Mend-hosted app, scope limited to rtk/ralphex/ claude-code/agent-browser, auto-merge gated on CI (which gains claude-code, both targets). * docs(renovate): move config to .github/renovate.json5 * docs(renovate): implementation plan for Renovate-driven rebuilds * feat(claude-code): pin rtk/ralphex/claude-code/agent-browser for Renovate * feat(ralphex-fe): pin rtk/ralphex/claude-code for Renovate * ci(renovate): add config to pin and auto-update devcontainer agent tools * ci: build and verify claude-code (default + sandbox) on PRs * ci: drop daily rebuild crons (Renovate triggers rebuilds now) * docs(plan): add .hadolint.yaml comment fix to Task 6 * docs: describe Renovate-driven rebuilds instead of daily cron * fix(renovate): scope to custom.regex manager, tolerant v-prefix, tidy header * ci(ralphex-fe): drop daily rebuild cron carried in by master merge The cron landed on master in #113, after this branch was cut, so merging master back in reintroduced it. Git saw no conflict — this branch simply predates the cron — which is exactly how a no-op rebuild would have survived the PR unnoticed. Its own comment justified it by the Dockerfile resolving ralphex/rtk from GitHub "latest" at build time; those versions are now pinned ARGs that Renovate bumps, so the cron would rebuild byte-identical images daily.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Adds a daily scheduled rebuild to the
ralphex-feimage and repairs the now-dead manual version-bump workflow.Why
ralphex-fewas expected to rebuild daily — likeclaude-code— so it picks up the latestralphexandrtkreleases (both pulled from GitHubreleases/latestat build time). Butbuild-ralphex-fe.ymlnever had aschedule:trigger. Nothing broke; the cron was simply never wired up, so the publishedralphex-fe:latesthad been frozen since its last Dockerfile change (2026-04-14, ~2 months stale).While in here,
update-and-build-ralphex-fe.ymlwas found to be silently broken: it greps forARG RALPHEX_VERSION, which the Dockerfile dropped whenralphexswitched to dynamiclatestpulling. Every dispatch failed at the extract step (exit 1).For context, the RTK v0.36.0 GDPR-consent-hang fix (the prior "rtk broke the build" episode) was already present in
ralphex-fe/init-docker.sh— this PR does not touch it.Changes
build-ralphex-fe.yml: addschedule: cron '41 11 * * *'(mirrorsbuild-claude-code.yml; offset from its 11:13 to avoid hitting the GitHub API the same minute).update-and-build-ralphex-fe.yml: remove the obsoleteralphex_versioninput/output/env/sed/grep, and realign the version-tag tobun<v>-hugo<v>to matchbuild-ralphex-fe.yml. The Bun/Hugo manual-bump path is kept intact.Notes
master.actionlintlocally (the same check CI runs on.github/workflows/**).