Skip to content

fix: clean up iOS About page copy#98985

Merged
steipete merged 2 commits into
openclaw:mainfrom
sahilsatralkar:feature/issue-98943-ios-about-page-copy-device-details
Jul 2, 2026
Merged

fix: clean up iOS About page copy#98985
steipete merged 2 commits into
openclaw:mainfrom
sahilsatralkar:feature/issue-98943-ios-about-page-copy-device-details

Conversation

@sahilsatralkar

@sahilsatralkar sahilsatralkar commented Jul 2, 2026

Copy link
Copy Markdown
Contributor

Closes #98943

What Problem This Solves

Fixes an issue where users opening Settings > About would see redundant and low-value device details, including a repeated OpenClaw summary row, generic Device text, a Platform label that duplicated iOS, and a Model row that exposed a hardware identifier with little user-facing value.

Why This Change Was Made

The About page now shows a shorter public-facing summary: OpenClaw app version, the stable device family (iPhone or iPad), and iOS version. Raw hardware identifiers remain available in Diagnostics, avoiding a hand-maintained Apple model-name database in the app.

User Impact

Users now see a cleaner About page with clearer labels and no redundant status card or raw model identifier. The page remains accurate for new Apple hardware without requiring an app update for every model release.

Evidence

Maintainer verification:

  • scripts/ios-run.sh built and launched the rewritten app on iOS 26.5.
  • Fresh Codex autoreview: no accepted/actionable findings; patch correct, confidence 0.95.
  • swiftformat --lint --config config/swiftformat on the four touched Swift files: 0 files require formatting.
  • Native i18n inventory regenerated cleanly; git diff --check passed.

Before

iPhone iPad
iphone-about-before ipad-about-before

Final after

Actual simulator readback from the final maintainer rewrite:

Row iPhone iPad
App OpenClaw app version 2026.6.11 (20907) OpenClaw app version 2026.6.11 (20907)
Device iPhone iPad
OS iOS 26.5.0 iOS 26.5.0

@clawsweeper

clawsweeper Bot commented Jul 2, 2026

Copy link
Copy Markdown
Contributor

Codex review: needs real behavior proof before merge. Reviewed July 2, 2026, 7:04 AM ET / 11:04 UTC.

Summary
The PR changes iOS Settings > About copy and layout, updates DeviceInfoHelper OS-version formatting, adds focused iOS tests, and refreshes native i18n inventory.

Reproducibility: yes. Source inspection of the final PR head shows the Device row still calls the generic deviceFamily() helper while the linked issue and screenshots require a resolved model name.

Review metrics: 1 noteworthy metric.

  • Current-main tree delta: 6 files differ, +133/-90. The live PR file list is stale-base inflated, so this measured delta focuses review on the real iOS About surface.

Stored data model
Persistent data-model change detected: persistent cache schema: test/scripts/build-all.test.ts, serialized state: extensions/mattermost/src/mattermost/directory.test.ts, serialized state: extensions/mattermost/src/mattermost/directory.ts, serialized state: src/agents/embedded-agent-runner/usage-reporting.test.ts, serialized state: src/cron/isolated-agent.session-identity.test.ts, serialized state: src/cron/isolated-agent/session.test.ts, and 6 more. Confirm migration or upgrade compatibility proof before merge.

Root-cause cluster
Relationship: fixed_by_candidate
Canonical: #98943
Summary: This PR is the open candidate fix for the paired iOS About-page cleanup issue, but the current head only partially implements the requested behavior.

Members:

Proposal only: this assessment does not dispatch repair, suppress jobs, mutate sibling items, close, or merge anything.

Merge readiness
Overall: 🧂 unranked krab
Proof: 🦪 silver shellfish
Patch quality: 🦪 silver shellfish
Result: blocked until stronger real behavior proof is added.

Overall follows the weaker of proof and patch quality, so missing proof can cap an otherwise strong patch.

Rank-up moves:

  • Restore or replace the device display-name implementation with focused tests, or narrow the PR text and linked issue to copy-only cleanup.
  • [P1] Add refreshed iPhone and iPad after-fix screenshots or equivalent simulator output for the corrected current head.

Proof guidance:

  • [P1] Needs stronger real behavior proof before merge: The inspected screenshots show the intended resolved iPhone/iPad names, but they do not prove the current head because the final source uses the generic device-family helper. After adding proof, update the PR body; ClawSweeper should re-review automatically. If it does not, the PR author or someone with repository write access can comment @clawsweeper re-review.

Risk before merge

  • [P1] The after screenshots show resolved device names, but the final PR head cannot render those names because the resolver was removed.
  • [P1] The live PR file list is stale-base inflated; reviewers should use the current-main tree diff before treating Android, Discord, Feishu, Mattermost, cron, build, or workflow entries as actual merge changes.

Maintainer options:

  1. Decide the mitigation before merge
    Restore a maintained device display-name path used by About with focused tests and refreshed iPhone/iPad proof, or explicitly narrow the PR and linked issue to copy-only cleanup before merge.
  2. Pause or close
    Do not merge this PR until maintainers decide whether the risk is worth taking.

Next step before merge

  • [P1] Maintainer or author follow-up is needed to restore the device-name behavior and refresh proof, or deliberately narrow the PR scope; contributor real-behavior proof cannot be supplied by an automated repair lane.

Security
Cleared: The real current-main merge delta is limited to iOS Swift, tests, and native i18n inventory; no dependency, workflow, credential, install, or release-script security concern was found.

Review findings

  • [P2] Show the resolved device name in About — apps/ios/Sources/Design/SettingsProTabSections.swift:515
Review details

Best possible solution:

Restore a maintained device display-name path used by About with focused tests and refreshed iPhone/iPad proof, or explicitly narrow the PR and linked issue to copy-only cleanup before merge.

Do we have a high-confidence way to reproduce the issue?

Yes. Source inspection of the final PR head shows the Device row still calls the generic deviceFamily() helper while the linked issue and screenshots require a resolved model name.

Is this the best way to solve the issue?

No. The row-copy cleanup is in the right area, but the current implementation leaves out the resolved device-name behavior or needs to narrow the stated scope before it is the best fix.

Full review comments:

  • [P2] Show the resolved device name in About — apps/ios/Sources/Design/SettingsProTabSections.swift:515
    The linked issue and PR body require the Device row to show a resolved model name, but this line still renders DeviceInfoHelper.deviceFamily(), which only returns broad family values like iPhone or iPad. The current test also asserts this generic helper, so merging would leave the central requested behavior missing while the screenshots show a different implementation.
    Confidence: 0.95

Overall correctness: patch is incorrect
Overall confidence: 0.95

AGENTS.md: found and applied where relevant.

Codex review notes: model internal, reasoning high; reviewed against 5bcd25f0fb6d.

Label changes

Label justifications:

  • P3: This is low-risk iOS Settings polish with a focused correctness and proof blocker, not an urgent runtime or channel regression.
  • rating: 🧂 unranked krab: Overall readiness is 🧂 unranked krab; proof is 🦪 silver shellfish and patch quality is 🦪 silver shellfish.
  • status: 📣 needs proof: The PR needs real behavior proof before ClawSweeper can clear the contributor ask. Needs stronger real behavior proof before merge: The inspected screenshots show the intended resolved iPhone/iPad names, but they do not prove the current head because the final source uses the generic device-family helper. After adding proof, update the PR body; ClawSweeper should re-review automatically. If it does not, the PR author or someone with repository write access can comment @clawsweeper re-review.
  • proof: 📸 screenshot: Contributor real behavior proof includes screenshot evidence. The inspected screenshots show the intended resolved iPhone/iPad names, but they do not prove the current head because the final source uses the generic device-family helper.
Evidence reviewed

What I checked:

  • Repository policy read: Root AGENTS.md and scoped iOS, Android, extensions, agents, gateway, and scripts AGENTS.md files were read; the review/proof and best-fix rules shaped this verdict. (AGENTS.md:1, 5bcd25f0fb6d)
  • Current-main tree delta: A two-dot tree diff against current main shows the real merge delta is focused to six iOS/About-related files, not the stale-base 86-file PR listing. (45007238beb3)
  • PR head still uses generic device family: At the current PR head, About renders DeviceInfoHelper.deviceFamily() for the Device row, which only yields broad values such as iPhone or iPad. (apps/ios/Sources/Design/SettingsProTabSections.swift:515, 45007238beb3)
  • No model-name resolver in final helper: The final DeviceInfoHelper exposes generic family, raw model identifier, and iOS-version helpers, but no resolved device display-name helper. (apps/ios/Sources/Device/DeviceInfoHelper.swift:36, 45007238beb3)
  • Earlier PR commit had the missing behavior: The first PR commit added deviceDisplayName() and a model-name map, which matches the screenshots and issue text, but that implementation is absent from the final head. (apps/ios/Sources/Device/DeviceInfoHelper.swift:49, a1fb8eaaf736)
  • Linked issue requirement: The linked issue explicitly asks to replace broad Device values with a resolved iPhone/iPad display name and keep raw identifiers in Diagnostics.

Likely related people:

  • steipete: Current-main blame for the About rows and DeviceInfoHelper behavior points to recent iOS settings work, and the final PR commit also came from this person. (role: recent iOS settings contributor and current branch updater; confidence: high; commits: 313560d5b98e, 45007238beb3; files: apps/ios/Sources/Design/SettingsProTabSections.swift, apps/ios/Sources/Device/DeviceInfoHelper.swift, apps/.i18n/native-source.json)
What the crustacean ranks mean
  • 🦀 challenger crab: rare, exceptional readiness with strong proof, clean implementation, and convincing validation.
  • 🦞 diamond lobster: very strong readiness with only minor maintainer review expected.
  • 🐚 platinum hermit: good normal PR, likely mergeable with ordinary maintainer review.
  • 🦐 gold shrimp: useful signal, but proof or patch confidence is still limited.
  • 🦪 silver shellfish: thin signal; proof, validation, or implementation needs work.
  • 🧂 unranked krab: not merge-ready because proof is missing/unusable or there are serious correctness or safety concerns.
  • 🌊 off-meta tidepool: rating does not apply to this item.

Shiny media proof means a screenshot, video, or linked artifact directly shows the changed behavior. Runtime, network, CSP, and security claims still need visible diagnostics.

How this review workflow works
  • ClawSweeper keeps one durable marker-backed review comment per issue or PR.
  • Re-runs edit this comment so the latest verdict, findings, and automation markers stay together instead of adding duplicate bot comments.
  • A fresh review can be triggered by eligible @clawsweeper re-review comments, exact-item GitHub events, scheduled/background review runs, or manual workflow dispatch.
  • PR/issue authors and users with repository write access can comment @clawsweeper re-review or @clawsweeper re-run on an open PR or issue to request a fresh review only.
  • Maintainers can also comment @clawsweeper review to request a fresh review only.
  • Fresh-review commands do not start repair, autofix, rebase, CI repair, or automerge.
  • Maintainer-only repair and merge flows require explicit commands such as @clawsweeper autofix, @clawsweeper automerge, @clawsweeper fix ci, or @clawsweeper address review.
  • Maintainers can comment @clawsweeper explain to ask for more context, or @clawsweeper stop to stop active automation.

@clawsweeper clawsweeper Bot added proof: sufficient ClawSweeper judged the real behavior proof convincing. proof: 📸 screenshot Contributor real behavior proof includes screenshot evidence. rating: 🦐 gold shrimp Decent PR readiness signal, but merge confidence is limited. status: ⏳ waiting on author ClawSweeper has contributor-facing work open and is waiting for author action. P3 Low-priority cleanup, docs, polish, ergonomics, or speculative work. labels Jul 2, 2026
@steipete steipete self-assigned this Jul 2, 2026
@openclaw-barnacle openclaw-barnacle Bot added docs Improvements or additions to documentation channel: discord Channel integration: discord channel: mattermost Channel integration: mattermost app: android App: android gateway Gateway runtime scripts Repository scripts agents Agent runtime and tooling channel: feishu Channel integration: feishu size: XL and removed size: M labels Jul 2, 2026
@clawsweeper clawsweeper Bot added rating: 🧂 unranked krab Not merge-ready due to missing proof or serious correctness/safety concerns. status: 📣 needs proof The PR needs real behavior proof before ClawSweeper can clear the contributor ask. and removed proof: sufficient ClawSweeper judged the real behavior proof convincing. rating: 🦐 gold shrimp Decent PR readiness signal, but merge confidence is limited. status: ⏳ waiting on author ClawSweeper has contributor-facing work open and is waiting for author action. labels Jul 2, 2026
@steipete
steipete merged commit 574604e into openclaw:main Jul 2, 2026
184 of 197 checks passed
@steipete

steipete commented Jul 2, 2026

Copy link
Copy Markdown
Contributor

Merged via squash.

LeonidasLux pushed a commit to LeonidasLux/openclaw that referenced this pull request Jul 3, 2026
* fix: clean up iOS About page copy

* fix(ios): sync About copy inventory

---------

Co-authored-by: Peter Steinberger <[email protected]>
github-actions Bot pushed a commit to Desicool/openclaw that referenced this pull request Jul 3, 2026
* fix: clean up iOS About page copy

* fix(ios): sync About copy inventory

---------

Co-authored-by: Peter Steinberger <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

agents Agent runtime and tooling app: android App: android app: ios App: ios channel: discord Channel integration: discord channel: feishu Channel integration: feishu channel: mattermost Channel integration: mattermost docs Improvements or additions to documentation gateway Gateway runtime P3 Low-priority cleanup, docs, polish, ergonomics, or speculative work. proof: 📸 screenshot Contributor real behavior proof includes screenshot evidence. rating: 🧂 unranked krab Not merge-ready due to missing proof or serious correctness/safety concerns. scripts Repository scripts size: XL status: 📣 needs proof The PR needs real behavior proof before ClawSweeper can clear the contributor ask.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Improve iOS About page copy and device details

2 participants