Skip to content

Respect iPhone safe-area for bottom menu and surface build version from image tag - #35

Merged
bashmohandes merged 1 commit into
masterfrom
codex/fix-menu-bar-positioning-on-iphone
Aug 12, 2026
Merged

bashmohandes merged 1 commit into
masterfrom
codex/fix-menu-bar-positioning-on-iphone

Conversation

@bashmohandes

Copy link
Copy Markdown
Owner

Motivation

  • Ensure the floating account/menu control stays above the iPhone home-indicator by accounting for the safe-area inset on small screens.
  • Surface the running build version in the UI so the page shows the same immutable tag embedded in the Docker image for easier debugging and deployment verification.
  • Propagate a single build identifier through the image, compose settings, and CI so published images and the app agree on the version.

Description

  • Use env(safe-area-inset-bottom) and position: fixed for the mobile account control and add a safe-area-aware .arcade-build-version footer in arcade.css.
  • Add a build footer in arcade.js that fetches GET /api/version and displays Build <version>, hiding the footer on error.
  • Expose /api/version in server/index.js backed by process.env.BUILD_VERSION with a default of dev.
  • Embed BUILD_VERSION in the image via Dockerfile (ARG, ENV, and LABEL), update compose.yaml to tag the image and forward the build arg, and update the GitHub Actions workflow to compute and pass a BUILD_VERSION (semantic tag when releasing or sha-... for commits).
  • Add viewport-fit=cover to the page meta viewport across arcade pages so iOS exposes safe-area insets, and add a test asserting the CSS and script changes.

Testing

  • Ran the full test suite with npm test; all tests pass (38/38).
  • Ran npm run check (JavaScript syntax checks); it completed successfully.
  • Launched the server locally with BUILD_VERSION=sha-test123 and verified curl http://127.0.0.1:<port>/api/version returned {"version":"sha-test123"}.
  • Attempted docker compose config to validate Compose integration but Docker is not available in the environment, so image/compose validation could not be executed here.

Codex Task

@bashmohandes
bashmohandes merged commit 5353188 into master Aug 12, 2026
3 checks passed

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: e2e1d091cb

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread arcade.css
@media (max-width: 650px) { .arcade-account { top: auto; right: 10px; bottom: max(10px, env(safe-area-inset-bottom)); position: fixed; } }
@media (max-width: 520px) { .arcade-account > a:first-of-type { display:none; } .arcade-account { max-width:calc(100% - 20px); } }
@media (max-width: 480px) { .result-share-content { padding: 17px; } .result-share-actions button { flex: 1; } }
.arcade-build-version { margin: 24px auto calc(18px + env(safe-area-inset-bottom)); padding: 0 16px; color: var(--arcade-dialog-muted); font: 12px/1.4 system-ui, sans-serif; text-align: center; }

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Reserve space for the fixed mobile account control

On screens at or below 650px, especially iPhones with a nonzero bottom safe-area inset, this footer ends only 18px above the safe area while the fixed account control extends upward from that same boundary. The account control has z-index: 1000 and is wide enough on typical phone screens to cover the centered build text when the page is scrolled to the bottom, defeating the new version display. Add mobile bottom clearance for the control's height as well as the safe-area inset.

Useful? React with 👍 / 👎.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant