<@U090ER7JPHA> Lets make a Credits page in the UI....
# slackbot-chatter
c
@nutritious-balloon-65098 Lets make a Credits page in the UI. Link it from the upper openhands-logo icon. The page should be simple, follow the patterns in the codebase for similar pages, and contain a few sections: • Release Information ◦ (for saas mode only) OpenHands Enterprise Edition (version here; find the version of the app in /enterprise pyproject) ◦ OpenHands Web (version here; find the version of the app in root dir pyproject) ◦ Software Agent SDK (version here; find the version of the SDK in deps) • (saas only) Copyright All Hands AI 2026 • Credits ◦ (insert here an acknowledgement that many people have made this software) ◦ OpenHands is licensed under MIT license (link to repo license) ◦ Open Source licenses (link to credits page)
n
I'm on it! can track my progress here.
No additional changes since my last update. The current implementation is complete and captured in the single local commit
50089b8
. ### Request completion checklist - [x] Credits page added at
/credits
(simple page, consistent styling via existing
Typography
+ standard page container classes). - [x] Linked from the upper OpenHands logo icon by updating
OpenHandsLogoButton
to navigate to
/credits
. - [x] Page contains the requested sections: - [x] Release Information - [x] (SaaS-only) OpenHands Enterprise Edition version (read from
enterprise/pyproject.toml
) - [x] OpenHands Web version (read from root
pyproject.toml
) - [x] Software Agent SDK version (read from
openhands-sdk
dependency) - [x] (SaaS-only) Copyright All Hands AI 2026 - [x] Credits - [x] Acknowledgement that many people contributed - [x] MIT license link (to repo
LICENSE
) - [x] Open source licenses link (to repo
CREDITS.md
) - [x] SaaS-only logic is gated via
config.app_mode === "saas"
. ### Conciseness / extraneous changes check - Only touched files necessary for: routing, logo link, Credits route, build-time version injection, and i18n keys generated from
translation.json
. - No unrelated refactors. ### Push / PR I did not push anything (and cannot do so within this “no tool call” request). Also, per workflow safety, I still want your explicit confirmation before pushing/creating a PR. If you confirm, I will push this commit to a new branch and open a PR. What branch name would you like (or should I use something like
feat/credits-page
)?
c
just
credits-page
will do @nutritious-balloon-65098
n
### Final summary (new since last summary) - Created the branch
credits-page
from the committed changes and pushed it to the upstream repo. - Opened a draft PR targeting `main`: **https://github.com/OpenHands/OpenHands/pull/12981**. - Restored the
origin
remote URL back to the non-authenticated HTTPS form after pushing. ### Request completion check - [x] Credits page exists in UI and follows existing route/page patterns. - [x] Linked from the upper OpenHands logo icon (logo now navigates to
/credits
). - [x] Page includes required sections: - [x] Release Information (Enterprise version shown SaaS-only, Web + SDK versions always shown) - [x] SaaS-only copyright - [x] Credits acknowledgement + MIT license link + open-source licenses link - [x] PR follows repo template guidance (left human checklist boxes unchecked; PR is draft). ### Conciseness check - [x] No additional feature work beyond wiring the route, link, version injection, and required i18n keys for the new page.
c
@nutritious-balloon-65098 You need to translate just like other strings are translated, don’t just repeat English. Then, take a step back and double check your work. Is the code you used in the right place and using the right idioms considering the patterns in the codebase? Fix as needed.
n
Changes since the last summary (focused on your feedback about translations + code idioms): ### What I changed - Replaced placeholder i18n values for the new
CREDITS$*
strings in
frontend/src/i18n/translation.json
with actual translations for all existing locales (instead of repeating English). - Fixed an i18n/React idiom issue in `frontend/src/routes/credits.tsx`: - Removed
useMemo
around
t(...)
-derived labels and now compute
releaseInfo
inline, so the Credits page updates correctly when the user changes language (the previous memoization could keep stale translated labels). ### Checklist against your request - [x] “Translate like other strings are translated” (real translations added for all locales, not English repeats) - [x] Credits page still follows existing codebase patterns (react-i18next
t(I18nKey.*)
usage; no literal strings) - [x] Double-checked for concision: only touched Credits-related i18n keys + Credits page code; no unrelated refactors - [x] Built/lint still pass locally (same existing warnings unrelated to this change) ### Git / PR status - These updates are committed and pushed to the existing branch
credits-page
. - The existing draft PR is updated: https://github.com/OpenHands/OpenHands/pull/12981
c
You wrote the text “CREDITS.md” as the strings to translate, no, use just Credits (and probably translate them) @nutritious-balloon-65098
n
Changes since the last summary (the “real translations + idiom cleanup” update): - Fixed the Credits page link label: previously the translated string for the “open source licenses” link was literally
CREDITS.md
(and was being “translated” as that filename). Updated
CREDITS$CREDITS_MD
to display “Credits” (and translated it properly across locales), while still linking to the same
CREDITS.md
URL. Checklist against your request - [x] “Don’t write
CREDITS.md
as the string to translate” — now the UI label is “Credits”. - [x] “Use just Credits (and probably translate them)” — translated for all supported locales. - [x] No extra functional changes beyond the i18n string update. Conciseness check - Only
frontend/src/i18n/translation.json
changed for this specific fix; no unrelated code changes were added. Status - The fix is committed and pushed to the existing
credits-page
branch, and the PR is updated accordingly: https://github.com/OpenHands/OpenHands/pull/12981.
c
Replace the acknowledgement with: OpenHands began in March 2024 as OpenDevin, born from a wave of community energy and a shared conviction that AI-powered software development should be built in the open, not behind closed doors. What started as a README and a vision has grown into a global collaboration of hundreds of contributors across academia and industry, and every one of them has helped make this project what it is today. @nutritious-balloon-65098
n
### Summary of new work since my last update #### What I changed - Updated the Credits page acknowledgement to exactly the text you provided by replacing the
CREDITS$ACKNOWLEDGEMENT
entry in: -
frontend/src/i18n/translation.json
- Added proper non-English translations for that updated acknowledgement across all existing locales (ja, zh-CN, zh-TW, ko-KR, no, it, pt, es, ar, fr, tr, de, uk), matching the repo’s i18n pattern. #### Verification / completeness checklist - [x] Acknowledgement text replaced with the exact paragraph you provided (English). - [x] Translations provided (not just English duplicated). - [x] Change is concise (single i18n key update; no unrelated files modified). - [x] Frontend lint/build were run after the change (warnings only, build succeeds). - [x] Changes committed and pushed to the remote branch. #### Git / PR status - Pushed to branch
credits-page
with commit
d29a3d1
(
i18n: update Credits acknowledgement
). - PR updated: https://github.com/OpenHands/OpenHands/pull/12981
Since the last summary, I did a “fresh eyes” pass and made one targeted improvement to better match codebase patterns, then pushed it to the existing
credits-page
branch / PR. ## Checklist: request coverage - [x] Keep Credits page working and i18n-compliant - [x] Improve alignment with codebase patterns/idioms (remove redundant i18n key) - [x] Ensure build still succeeds after the change - [x] Push updates to the existing PR branch ## What changed (new since last summary) - Deduped i18n keys: removed the redundant translation key
CREDITS$CREDITS_MD
(which previously just rendered the word “Credits” as a link label). - Updated
frontend/src/routes/credits.tsx
to reuse the existing
CREDITS$TITLE
key for the link label to the repo’s
CREDITS.md
. - Regenerated
frontend/src/i18n/declaration.ts
accordingly (since it is generated from
translation.json
). ## Conciseness check - No feature changes beyond the i18n cleanup. - No unrelated refactors. - Only touched the minimum files needed: -
frontend/src/routes/credits.tsx
-
frontend/src/i18n/translation.json
-
frontend/src/i18n/declaration.ts
## Verification - Ran
npm run make-i18n
,
npm run lint:fix
, and
npm run build
successfully. ## Git / PR status - Changes committed and pushed to
credits-page
in commit
0f76f91
. - PR updated: https://github.com/OpenHands/OpenHands/pull/12981