Promote theme fix + MokoOnyx color separation + CLI version (dev->main) #802
Reference in New Issue
Block a user
Delete Branch "dev"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Promotes dev → main → prod. Grown to carry the full 2026-07-18 session (15 commits). Merging this deploys ALL of the following to production.
What this deploys to prod
DEFAULT_THEME=mokogit-auto.header-background.svgbehind signin/auth family (CSS-only,:has(), legible surface panel).MOKOGIT__env-prefix support (#808) — binary now accepts bothMOKOGIT__andGITEA__. This is the deploy that unblocks the coordinated env-var rename (.vault branchchore/env-prefix-mokogit-vars, apply after prod+rc+dev all have this).mokogit versioninstead ofgitea version.Prod-deploy implications / sequencing
.vaultenv-prefix rename branch can be merged, and the host.envsecrets renamed GITEA__→MOKOGIT__ server-side (both prefixes work, so no broken instant).[ui] mokogit-*themes +START_SSH_SERVER=true(verified live);.vaultexamples reconciled to match.Tests/Build RC Packageare the known pre-existing fork-wide breakage (integration tests won't compile), unrelated to these changes; Lint & Validate green.Rollback
Prod image is pinned by
${MOKOGIT_TAG}in the .vault prod compose; revert the tag +docker compose up -dto roll back. DB migration 370 is additive (theme string remap) — reversible by re-setting user themes.Merge = production deploy. Awaiting explicit go.
The MokoGitea->MokoGIT branding rebrand deleted the gitea-* theme CSS and shipped only theme-mokogit-{auto,light,dark}.css, but two things were left pointing at the retired themes, producing an unstyled "all white" page with an invisible navbar theme toggle: 1. Users' saved `user.theme` still held gitea-* names, whose CSS now 404s. Add migration 370 (RemapGiteaThemesToMokogit) to rewrite each user's saved theme gitea-{auto,light,dark}(-colorblind) -> mokogit-* equivalent, preserving their light/dark/auto preference. Idempotent. 2. app.example.ini still documented DEFAULT_THEME = gitea-auto. Correct it to mokogit-auto so fresh installs start on a shipped theme. (The running servers' app.ini [ui] THEMES/DEFAULT_THEME are fixed operationally.) Also address the flat "all white / no separation" look by adding a MokoOnyx surface-separation scale to both themes (mokoconsulting.tech gray scale): - light: soft gray page (#f0f3f6) so white cards/boxes lift off it, gray-200 box headers, stronger gray-300 border definition. - dark: 3-step navy-tinted elevation (page #0b1017 -> box #121a24 -> header #17212e) cohesive with the #112855 brand nav, more visible panel edges. The auto theme @imports light/dark, so it inherits both automatically.Step 1 of the coordinated GITEA__ -> MOKOGIT__ rebrand. The binary previously read config env overrides only under the GITEA__ prefix, so renaming the compose vars first would make Gitea silently ignore every override. Teach the binary to accept BOTH prefixes (MOKOGIT__ and GITEA__), including the __FILE suffix, so the compose vars can be migrated safely AFTER this binary is deployed to all tiers. - add EnvConfigKeyPrefixMokoGit ("MOKOGIT__") + envConfigKeyPrefixes list - CollectEnvConfigKeys / EnvironmentToConfig iterate both prefixes - test: MOKOGIT__ override applies (existing GITEA__ + __FILE behavior unchanged) Compose var rename (GITEA__* -> MOKOGIT__*) is a follow-up, gated on this being live everywhere. Upstream MIT header preserved. Authored-by: Moko ConsultingGitea Actions accepted workflow_dispatch (HTTP 204) but created no run: the async InsertRun failed with MySQL 1406 "Data too long for column 'workflow_payload'". ActionRunJob.WorkflowPayload was an untyped []byte -> plain BLOB (64 KiB) on MySQL/MariaDB. At run creation the whole SingleWorkflow is interpolated (every ${{ vars.* }} / git context) and marshaled into that column, so large single-job workflows (deploy-*.yml with big inline scripts + many vars) overflowed it and the run was silently dropped. - run_job.go: tag WorkflowPayload `xorm:"MEDIUMBLOB"` (16 MiB) so NEW installs get a wide column. - migration 371 (v372.go): ALTER existing action_run_job.workflow_payload BLOB -> MEDIUMBLOB on MySQL/MariaDB; no-op on Postgres/SQLite (unbounded). Permanently unblocks all deploy tiers regardless of the concurrency-block workaround. Fixes #815. Authored-by: Moko Consulting