Home progress card – pressing 进入服务器/更新 turns the bottom card into progress state (title + %, 8px terracotta bar, downloaded size/speed, cancel, 4-step indicator, error + retry). Driven by new ClientSyncProgress, which only listens to the existing task executor; download logic unchanged. Label "Start Game" → 进入服务器 (en: Join Server) in en/zh_Hans/zh_Hant.
<!-- claude-projects-attribution -->
_Requested by **Ethyn** · [project thread](https://claude.ai/code/project/chan_012Q1Um8uZR35H2oYN3r8iSY?thread=cmsg_012Q1Um8uZR35H2oYN3r8iSY5WLnzuUkngNMfTTr5jYdE8)_
## UI refresh, batch 1
1. **Home progress card** – pressing 进入服务器/更新 turns the bottom card into progress state (title + %, 8px terracotta bar, downloaded size/speed, cancel, 4-step indicator, error + retry). Driven by new `ClientSyncProgress`, which only listens to the existing task executor; download logic unchanged. Label "Start Game" → 进入服务器 (en: Join Server) in en/zh_Hans/zh_Hant.
2. **Single settings page** – 通用 (language, download source) / 游戏 (memory slider, Java row + 高级… → JavaManagementPage) / 帮助 (logs, About). Sidebar tabs removed.
3. **Slim About** – icon, name, version · 基于 HMCL, 检查更新, GPLv3 notice + third-party deps, source link, 复制诊断信息 (system/device/runtime info moved there).
## Known gaps
- Progress card covers first install / bundled install only; an already-installed pack still updates during launch (own dialog).
- Percent is estimated from finished/seen tasks; size shown is downloaded MB + speed (no total available).
- Proxy / download-thread settings no longer have a UI entry (DownloadSettingsPage left unused).
- Java row text is generic ("Java · 自动管理"); no version shown.
- Not visually verified (no screenshots).
The progress bar now uses the file total announced by the sync task as its denominator (indeterminate until known).
Checked: `:HMCL:checkstyleMain :HMCL:test` pass.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
- Home: join/update button turns the bottom card into an in-place progress
view (percent, thin bar, downloaded size/speed, cancel, four-step indicator,
error + retry). ClientSyncProgress mirrors the existing task executor.
- Label "Start Game" -> "进入服务器" (en: Join Server) in en/zh_Hans/zh_Hant.
- Settings merged into one page: General / Game / Help cards; Java management
and About open as sub pages.
- About trimmed; system/device/runtime info moved into "Copy diagnostics".
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TiBPbVGBHNHdzqfq1L5tch
The percentage used finished/seen task counts, which hit the 99% cap as soon
as the first tasks finished and then stayed there while new tasks were still
being discovered. Use the "total" property announced by the sync task as the
denominator and count finished file downloads; stay indeterminate until known.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TiBPbVGBHNHdzqfq1L5tch
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Requested by Ethyn · project thread
UI refresh, batch 1
ClientSyncProgress, which only listens to the existing task executor; download logic unchanged. Label "Start Game" → 进入服务器 (en: Join Server) in en/zh_Hans/zh_Hant.Known gaps
The progress bar now uses the file total announced by the sync task as its denominator (indeterminate until known).
Checked:
:HMCL:checkstyleMain :HMCL:testpass.🤖 Generated with Claude Code