{"status":200,"now_time":"2026-09-23T18:20:02.123Z","owner":"FCL-Team","repo":"FoldCraftLauncher","versions":5,"prerelease":false,"cache":{"hit":true,"outdated":false,"cached_at":"2026-09-23T17:26:54.609Z"},"releases":[{"id":394233706,"version":"1.3.3.4","title":"1.3.3.4","published_at":"2026-09-23T01:40:21Z","prerelease":false,"message":"\n### 中文\n\n#### ✨ 新功能\n\n1. **下载页资源收藏与分组**：下载列表左滑即可收藏资源，支持自定义分组（管理入口为分组区扳手图标）、分组筛选、多选与批量一键下载\n2. **资源包管理页**：管理页新增资源包 tab，支持启用/禁用（写 options.txt）、导入、重命名、多选删除与搜索\n3. **版本卡片快速切换**：长按主界面版本卡片弹出版本快速切换菜单（右侧启动按钮可直接切换并启动），数据与版本列表页共享会话快照；另新增首次使用的点击卡片引导提示（仅显示一次）\n4. **皮肤模型开关**：新增 3D 皮肤层开关，禁用时第二层回落原版面片，状态随动画一起持久化；新增身体与腿部分离开关，关闭后上身贴合腿部\n\n#### ⚡ 优化\n\n1. **管理页与设置页 tab 图标化**：tab 标题旁显示对应图标，视觉更直观\n2. **FCLTabLayout 滑动指示箭头**：tab 栏可左右滑动时在对应边缘显示指示箭头，提示还有未展示的内容\n3. **控件转换器字段同步**：滑动联动与摇杆死区/前进锁字段支持双向映射\n\n#### 🐛 修复\n\n1. 修复 Cleanroom 字母键与聊天输入失效：补齐按键与字符事件成对发送\n2. 修复导入含 null 的控制器 JSON 保存时崩溃：控件数据反序列化全链空安全加固\n3. 修复新建控件组后因数据未标记加载完成而无法添加按键\n4. 修复下载与收藏列表标题过长时来源徽标被挤出可视区：标题行改用 ConstraintLayout 保证徽标固定行尾\n\n### English\n\n#### ✨ New Features\n\n1. **Download page favorites and groups**: Swipe left on download list items to favorite resources, with custom groups (manage via the wrench icon in the group area), group filtering, multi-select and one-tap batch download\n2. **Resource pack management page**: A new resource pack tab in the manage page supports enabling/disabling (writes options.txt), importing, renaming, multi-select deletion and search\n3. **Quick version switch on the version card**: Long-press the version card on the main screen to open a quick version switch menu (the button on the right switches and launches directly); the data shares a session snapshot with the version list page. A one-time guide hint for tapping the card was also added\n4. **Skin model toggles**: A new 3D skin layer toggle — disabling it falls the second layer back to vanilla faces, with the state persisted alongside animations; a new body/leg separation toggle — when off, the upper body fits onto the legs\n\n#### ⚡ Improvements\n\n1. **Icons on manage and setting page tabs**: Tabs now show an icon next to the title for quicker recognition\n2. **FCLTabLayout scroll indicator arrows**: When the tab bar can scroll left/right, indicator arrows appear at the corresponding edge to hint at hidden content\n3. **Control converter field sync**: Swipe-chain linkage and joystick dead zone / forward-lock fields now support two-way mapping\n\n#### 🐛 Bug Fixes\n\n1. Fixed Cleanroom letter keys and chat input not working: key and character events are now sent in pairs\n2. Fixed crashes when saving imported controller JSON containing nulls: null-safety hardening across the whole control-data deserialization chain\n3. Fixed being unable to add keys after creating a new control group (the data was not marked as loaded)\n4. Fixed the source badge being squeezed out of view on long download/favorite list titles: the title row now uses ConstraintLayout to keep the badge pinned to the end of the line\n\n","assets":[{"name":"FCL-release-1.3.3.4-all.apk","size":329889735,"download_url":"https://fcl.072211.xyz/api/releases/1.3.3.4/FCL-release-1.3.3.4-all.apk","content_type":"application/vnd.android.package-archive"},{"name":"FCL-release-1.3.3.4-arm64-v8a.apk","size":172253748,"download_url":"https://fcl.072211.xyz/api/releases/1.3.3.4/FCL-release-1.3.3.4-arm64-v8a.apk","content_type":"application/vnd.android.package-archive"},{"name":"FCL-release-1.3.3.4-armeabi-v7a.apk","size":165004805,"download_url":"https://fcl.072211.xyz/api/releases/1.3.3.4/FCL-release-1.3.3.4-armeabi-v7a.apk","content_type":"application/vnd.android.package-archive"},{"name":"FCL-release-1.3.3.4-x86.apk","size":158596005,"download_url":"https://fcl.072211.xyz/api/releases/1.3.3.4/FCL-release-1.3.3.4-x86.apk","content_type":"application/vnd.android.package-archive"},{"name":"FCL-release-1.3.3.4-x86_64.apk","size":177934294,"download_url":"https://fcl.072211.xyz/api/releases/1.3.3.4/FCL-release-1.3.3.4-x86_64.apk","content_type":"application/vnd.android.package-archive"}]},{"id":391152527,"version":"1.3.3.3","title":"1.3.3.3","published_at":"2026-09-18T01:15:18Z","prerelease":false,"message":"\n### 中文\n\n#### ✨ 新功能\n\n1. **下载页聚合搜索**：CurseForge 与 Modrinth 双源并行搜索，结果交错合并并按标识/标题归一化去重，单源失败时自动降级只显示可用来源\n2. **MultiMC 整合包导入**：同步上游 HMCL 实现，支持 natives 字符串键、本地库文件名推导、minecraftArguments 兼容等适配，可导入 lwj3ify 等特殊实例\n3. **FCL 弹窗彩蛋**：点击启动游戏按保底概率触发\n\n#### ⚡ 优化\n\n1. **下载源体系跟进上游重构**：DownloadProvider 全链路对齐上游 HMCL，URL/URI 与组件类型模型精简\n2. **版本列表会话级快照缓存**：命中快照即时显示、后台重算覆盖，切换页面不再等待；排序改用 GameVersionNumber 真实游戏版本号降序，手动刷新强制失效缓存\n3. **主界面右菜单布局调整**：执行 Jar 功能移入 Java 管理对话框，右菜单更聚焦版本与账户\n4. **渲染器选择体验**：对话框打开时自动定位到当前选中的渲染器\n5. **FCLNumberSeekBar 轨道自绘**：数值文本两侧断开并圆角收口，视觉更完整\n6. **主题派生色透明度独立设置**：主色全透明时背景不再不可见\n7. **版本图标像素感知加载**：按图标尺寸切换缩放插值（小图最近邻、大图双线性），禁用密度预缩放解码，安装器、下载页等全部加载点统一，像素风图标放大不再发糊；更换 NeoForge 版本图标\n\n#### 🐛 修复\n\n1. 修复 SDL 复用窗口被提前销毁导致游戏崩溃\n2. 修复 Controlify 环境无法呼出软键盘：SDL 输入法按渲染路径分流，仅 SDL 渲染激活时走 SDL 通道，其余回落原路径\n3. 微软登录体验修复：登录结束或设备码轮询成功后自动关闭内嵌登录页，返回键直接退出不回退网页；修复 OAuth 事件监听残留导致堆叠多个登录页\n4. 修复多任务返回后导航栏常驻遮挡底部按钮（对话框重获焦点时恢复沉浸标志）；编辑控件对话框背景补 10dp inset 恢复屏幕边缘间隔\n5. 修复皮肤半透明像素体素化重叠产生的大量条纹，半透明回落零厚度面片呈现\n6. 修复 SeekBar 行复用时 max/min 钳制回调误写数据\n7. 修复下载源空缓存在后台线程早读导致的崩溃（DownloadProviders 改惰性查表）\n8. 修复 goSetting 菜单已选中时不触发切页；usesGlobal 反序列化缺省值改为 true\n\n### English\n\n#### ✨ New Features\n\n1. **Aggregated search on the download page**: CurseForge and Modrinth are searched in parallel, results are interleaved and deduplicated by normalized identifier/title, and a failing source degrades gracefully to the other\n2. **MultiMC modpack import**: Synced from upstream HMCL, with adaptations for string-keyed natives, local library filename derivation, and minecraftArguments compatibility — imports special instances such as lwj3ify\n3. **FCL easter egg dialog**: Triggered with a pity probability when launching the game\n\n#### ⚡ Improvements\n\n1. **Download provider system follows the upstream refactor**: The full DownloadProvider chain is aligned with upstream HMCL, with a leaner URL/URI and component-type model\n2. **Session-level version list snapshot cache**: A cache hit shows instantly while recomputation runs in the background, so switching pages no longer waits; sorting now uses real game version numbers (GameVersionNumber) in descending order, and manual refresh invalidates the cache\n3. **Main screen right menu layout reworked**: \"Execute Jar\" moved into the Java management dialog, keeping the right menu focused on versions and accounts\n4. **Renderer selection UX**: The dialog now auto-scrolls to the currently selected renderer when opened\n5. **Self-drawn FCLNumberSeekBar track**: The track breaks and rounds around the value text for a cleaner look\n6. **Separate theme derived-color alpha setting**: The background no longer disappears when the theme color is fully transparent\n7. **Pixel-aware version icon loading**: Scaling interpolation switches by icon size (nearest-neighbor for small icons, bilinear for large ones), density pre-scaling decoding is disabled, and all loading points (installer, download pages, etc.) are unified — pixel-art icons stay sharp when scaled up; the NeoForge version icon was replaced\n\n#### 🐛 Bug Fixes\n\n1. Fixed game crashes caused by SDL reused windows being destroyed early\n2. Fixed the soft keyboard not opening with Controlify: SDL IME now routes by render path — the SDL channel is used only when SDL rendering is active, otherwise it falls back to the original path\n3. Microsoft login fixes: the embedded login page now closes automatically when login finishes or device-code polling succeeds, and Back exits directly instead of navigating back through web pages; fixed stacked login pages caused by leaked OAuth event listeners\n4. Fixed the navigation bar staying on top and covering bottom buttons after returning from multitasking (immersive flags are restored when dialogs regain focus); the control edit dialog background gains a 10dp inset to restore screen-edge spacing\n5. Fixed heavy striping from overlapping semi-transparent voxels in skins — translucency now falls back to zero-thickness faces\n6. Fixed SeekBar row reuse writing wrong data through max/min clamping callbacks\n7. Fixed background crashes from an early read of the empty download-provider cache (DownloadProviders now uses lazy lookup)\n8. Fixed goSetting not switching pages when already selected; the usesGlobal deserialization default is now true\n\n","assets":[{"name":"FCL-release-1.3.3.3-all.apk","size":329317164,"download_url":"https://fcl.072211.xyz/api/releases/1.3.3.3/FCL-release-1.3.3.3-all.apk","content_type":"application/vnd.android.package-archive"},{"name":"FCL-release-1.3.3.3-arm64-v8a.apk","size":171681177,"download_url":"https://fcl.072211.xyz/api/releases/1.3.3.3/FCL-release-1.3.3.3-arm64-v8a.apk","content_type":"application/vnd.android.package-archive"},{"name":"FCL-release-1.3.3.3-armeabi-v7a.apk","size":164432242,"download_url":"https://fcl.072211.xyz/api/releases/1.3.3.3/FCL-release-1.3.3.3-armeabi-v7a.apk","content_type":"application/vnd.android.package-archive"},{"name":"FCL-release-1.3.3.3-x86.apk","size":158023438,"download_url":"https://fcl.072211.xyz/api/releases/1.3.3.3/FCL-release-1.3.3.3-x86.apk","content_type":"application/vnd.android.package-archive"},{"name":"FCL-release-1.3.3.3-x86_64.apk","size":177361727,"download_url":"https://fcl.072211.xyz/api/releases/1.3.3.3/FCL-release-1.3.3.3-x86_64.apk","content_type":"application/vnd.android.package-archive"}]},{"id":387765498,"version":"1.3.3.2","title":"1.3.3.2","published_at":"2026-09-13T02:06:04Z","prerelease":false,"message":"\n### 中文\n\n#### ✨ 新功能\n\n1. **游戏内复述功能恢复（TTS）**：libflite 桥接安卓系统 TTS，游戏复述改走系统语音引擎\n2. **原生 JSound**：原生 libjsound.so 桥接 OpenAL，一套源码服务 jre8/17/21/25，修复 Forge 加载器下 Java Sound 失效\n3. **控制布局编辑与运行时增强**：控件双角手柄缩放、悬浮操作栏、控件组管理面板与控件组复制、滑动链、摇杆死区与前进锁、全局控件不透明度\n4. **控件编辑器重构为 Kotlin**：全面对齐游戏菜单视觉，修复吸附与编辑条问题，新增控件组复制\n5. **游戏内右菜单重构**：顶部图标 Tab 直接显示分类内容；物品栏缩放移入手势页、控件不透明度移入左菜单、锁定/隐藏控件移入调试页\n6. **渲染器版本上限调整**：判断/展示双轨版本号与 26.3 版本目录，修正各渲染器版本适配情况\n\n#### ⚡ 优化\n\n1. **解除帧率锁定**：游戏帧率不再锁定屏幕刷新率，启动时向系统投票设备最高刷新率；关闭垂直同步时交换间隔强制置 0 并切入 BufferQueue 异步模式\n2. **JNA natives 分架构打包**：去 zip 化，改为分架构 natives 目录并随 APK 架构裁剪打包\n3. **FCLNumberSeekBar 重构为 Kotlin**：轨道加粗为胶囊条、数值文本去除底衬，修复两端点击热区与显示位置不一致\n4. **皮肤模型细节**：缩小腰部接缝间隙\n5. **下载管理面板样式调整**\n\n#### 🐛 修复\n\n1. 修复游戏内无法解析 SRV 记录的问题\n2. 修复使用 zink 启动 26.3+ 时无法自动回退 Vulkan\n3. 修复 lwjgl-sdl 并入合并产物后与 Forge 模块解析的 split package 冲突\n4. 修复插件卸载缺少 REQUEST_DELETE_PACKAGES 权限导致系统卸载器立即退出\n5. 修复模组更新保留旧版本时切换后崩溃\n6. 修复熄屏状态下打开启动器可能崩溃\n7. 修复主题色带透明度时 ltColor/dkColor 透明度不跟随\n8. 修复 ViewPager2 布局时误清输入框焦点导致的输入异常（FCLEditText 增加焦点恢复守卫）\n9. 修复下载模组列表已安装标记不实时刷新：扫描完成后通知列表、下载成功回调触发重检、payload 局部绑定避免动画重播\n\n#### 🔧 其他\n\n1. 更新多语言翻译\n\n### English\n\n#### ✨ New Features\n\n1. **In-game narration restored (TTS)**: libflite now bridges Android system TTS, so game narration uses the system speech engine\n2. **Native JSound**: Native libjsound.so bridging OpenAL, one set of sources serving jre8/17/21/25, fixing Java Sound failures under the Forge loader\n3. **Control layout editing and runtime enhancements**: Dual-corner handle scaling, floating action bar, control group management panel with group duplication, sliding chains, joystick dead zone and forward lock, global control opacity\n4. **Control editor rewritten in Kotlin**: Fully aligned with the in-game menu visuals, fixed snapping and editing bar issues, added control group duplication\n5. **In-game right menu rework**: Top icon tabs now show category content directly; hotbar scale moved to the gestures page, control opacity to the left menu, and lock/hide controls to the debug page\n6. **Renderer version limits adjusted**: Dual-track version numbers for checking/display plus a 26.3 version catalog, with renderer compatibility corrected\n\n#### ⚡ Improvements\n\n1. **Frame rate unlocked**: The game frame rate is no longer locked to the screen refresh rate — the launcher votes for the device's maximum refresh rate at startup; with vsync off the swap interval is forced to 0 and the BufferQueue switches to async mode\n2. **Per-ABI JNA natives packaging**: De-zipped, switched to per-ABI natives directories pruned together with the APK architecture\n3. **FCLNumberSeekBar rewritten in Kotlin**: Track thickened into a capsule bar, value text background removed, and mismatched edge click hotspots/display positions fixed\n4. **Skin model detail**: Narrowed the waist seam gap\n5. **Download manager panel style refresh**\n\n#### 🐛 Bug Fixes\n\n1. Fixed SRV record resolution failing in game\n2. Fixed failing to fall back to Vulkan when launching 26.3+ with zink\n3. Fixed the split package conflict between the merged lwjgl-sdl artifact and Forge module resolution\n4. Fixed plugin uninstall exiting immediately due to the missing REQUEST_DELETE_PACKAGES permission\n5. Fixed a crash when switching mods kept as old versions after an update\n6. Fixed a possible crash when opening the launcher while the screen is off\n7. Fixed ltColor/dkColor alpha not following when the theme color has transparency\n8. Fixed input anomalies caused by ViewPager2 layout clearing EditText focus (FCLEditText now guards focus restoration)\n9. Fixed installed badges in the mod download list not refreshing in real time: the list is notified after scanning, download success callbacks trigger a re-check, and payload-based partial binding avoids animation replays\n\n#### 🔧 Other\n\n1. Updated translations\n\n","assets":[{"name":"FCL-release-1.3.3.2-all.apk","size":329267676,"download_url":"https://fcl.072211.xyz/api/releases/1.3.3.2/FCL-release-1.3.3.2-all.apk","content_type":"application/vnd.android.package-archive"},{"name":"FCL-release-1.3.3.2-arm64-v8a.apk","size":171633253,"download_url":"https://fcl.072211.xyz/api/releases/1.3.3.2/FCL-release-1.3.3.2-arm64-v8a.apk","content_type":"application/vnd.android.package-archive"},{"name":"FCL-release-1.3.3.2-armeabi-v7a.apk","size":164384314,"download_url":"https://fcl.072211.xyz/api/releases/1.3.3.2/FCL-release-1.3.3.2-armeabi-v7a.apk","content_type":"application/vnd.android.package-archive"},{"name":"FCL-release-1.3.3.2-x86.apk","size":157975390,"download_url":"https://fcl.072211.xyz/api/releases/1.3.3.2/FCL-release-1.3.3.2-x86.apk","content_type":"application/vnd.android.package-archive"},{"name":"FCL-release-1.3.3.2-x86_64.apk","size":177313643,"download_url":"https://fcl.072211.xyz/api/releases/1.3.3.2/FCL-release-1.3.3.2-x86_64.apk","content_type":"application/vnd.android.package-archive"}]},{"id":384398387,"version":"1.3.3.1","title":"1.3.3.1","published_at":"2026-09-08T01:52:48Z","prerelease":false,"message":"\n### 中文\n\n#### ✨ 新功能\n\n1. **SDL3 集成**：集成 SDL3 输入/渲染，支持启动 Minecraft 26.3+；SDL 直通输入不再落入按键映射层\n2. **插件管理功能**：设置页新增「插件管理」，统一扫描管理渲染器/驱动/native 库插件，支持禁用持久化；新增 RendererPlugin V2 支持与插件环境变量配置；插件管理页置顶 MioLibPatcher 管理项，支持启用/禁用与功能开关（配置对话框改 v2 风格，Sable Rapier 默认开启）\n3. **皮肤 3D 预览重构**：改用 GLTF 模型 + 烘焙动画 + 体素化第二层\n4. **手柄输入对齐**：首次手柄输入弹窗选择模式；「禁用手柄映射」改为「手柄控制」总开关（持久化，关闭时禁用模式选择）\n5. **JSound 集成**：javax.sound → OpenAL 桥接集成到 lwjgl 共享源码，提升游戏音频兼容性\n6. **控件转换器**：改用纯 Kotlin 实现并支持导入 ZL2 布局\n7. **待机动画随机插播变体**：基础待机 8~15 秒后插播一个变体（避开上一次，播完回待机）\n8. **游戏内菜单卡片化**：左右菜单条目卡片化，抽公共 MenuUi 卡片背景与间距\n9. **下载页分类 tab 图标**：分类 tab 添加图标，并调整下载管理面板样式\n10. **FCLSpinner 重写为自定义 View**：修复滑动页面指示器错乱与 listener 伪回调；文字随主题色着色（浅底对话框场景可关闭）；展开时箭头旋转 180° 过渡，选项弹窗增加下落淡入/上滑淡出动画\n11. **语言切换新增**：日语、土耳其语、繁体中文（台湾）\n\n#### ⚡ 优化\n\n1. **Fabric 下载列表加载速度**：优化列表构建性能，缩短加载等待\n2. **控制数据序列化改手写 JSON**：全面消除 Gson 递归解析；控制器保存任务合并，避免序列化任务风暴\n3. **版本列表分类指示器**：改为 TabLayout 并自适应铺满\n4. **选择类弹窗统一**：统一为 ItemSelectionDialog 卡片式风格；渲染器选择对话框改用卡片 item，统一行高并新增来源显示（内置/插件名），无版本范围时显示未知\n5. **统一游戏日志分享逻辑**：附带 hs_err 崩溃日志并脱敏 accessToken\n6. **IO 线程池扩容**：Schedulers.io() 线程数 4 调整为 8\n7. **Turnip 驱动加载重写**：改为命名空间方案，提升驱动加载兼容性\n\n#### 🐛 修复\n\n1. 修复 SDL 函数经 dlsym 解析绕过 hook 导致的窗口复用不生效（解析出口改用代理）\n2. 修复 SDL_EGL_LIBRARY 对系统 EGL 错误拼接启动器 native 路径\n3. 修复导出 MCBBS 整合包因文件过多导致的 Out Of Memory\n4. 修复皮肤预览渲染线程退出时 Choreographer 死线程崩溃\n5. 修复联机对话框节点列表阻塞点击响应（改独立线程获取）\n6. 修复插件 v2 环境变量配置不持久的问题\n7. 修复崩溃页背景不随亮暗模式切换，暗色模式下背景与文字同色无法看清\n8. 修复 RendererEnvDialog 的 FCLSpinner 深色模式文字与对话框背景同色\n9. 修复检查更新时间戳比较精度不一致导致的首次误报（统一秒级精度）\n\n#### 🔧 其他\n\n1. 新增控制数据序列化回归测试\n2. 接入 checkstyle 静态检查与 PR 自动评论机器人（规则适配现状）\n3. 启用 core library desugaring，兼容 Java 9+ stdlib API\n4. 删除「强制渲染器在大核上运行」功能\n5. 更新 MioLibPatcher\n6. 更新多语言翻译\n\n### English\n\n#### ✨ New Features\n\n1. **SDL3 integration**: Integrated SDL3 input/rendering to support launching Minecraft 26.3+; SDL direct input no longer falls into the key-mapping layer\n2. **Plugin manager**: New \"Plugin management\" in settings, scanning and managing renderer/driver/native plugins in one place with persisted enable/disable state; RendererPlugin V2 and per-plugin environment variable support; MioLibPatcher pinned to the top of the plugin page with enable/disable and feature toggles (config dialog restyled to v2, Sable Rapier enabled by default)\n3. **Skin 3D preview rebuilt**: GLTF model + baked animations + voxelized overlay layer\n4. **Gamepad input alignment**: Mode-selection prompt on first gamepad input; \"disable gamepad mapping\" replaced by a \"gamepad control\" master switch (persisted, disables mode selection when off)\n5. **JSound integration**: javax.sound → OpenAL bridge integrated into the lwjgl shared sources for better in-game audio compatibility\n6. **Control converter**: Rewritten in pure Kotlin with support for importing ZL2 layouts\n7. **Idle animation variants**: A random variant is inserted after 8–15 seconds of base idle (avoiding the previous one, returning to idle when finished)\n8. **In-game menu cards**: Left/right menu items are now card-styled, with a shared MenuUi card background and spacing\n9. **Download page category tab icons**: Category tabs now show icons, and the download manager panel style is refreshed\n10. **FCLSpinner rewritten as a custom view**: Fixed sliding indicator glitches and fake listener callbacks; text now tints with the theme (can be disabled on light-background dialogs); 180° arrow rotation when expanded, plus drop/fade window transition animations for the option popup\n11. **New languages**: Japanese, Turkish and Traditional Chinese (Taiwan)\n\n#### ⚡ Improvements\n\n1. **Fabric download list speed**: Optimized list building for shorter waits\n2. **Hand-written JSON for control data serialization**: Gson recursive parsing fully removed; controller save tasks merged to avoid serialization task storms\n3. **Version list category indicator**: Migrated to TabLayout, filling the width adaptively\n4. **Unified selection dialogs**: ItemSelectionDialog card-based style; the renderer selection dialog now uses card items with unified row height and a source column (built-in/plugin name), showing \"unknown\" when no version range exists\n5. **Unified game log sharing**: hs_err crash logs are attached and access tokens are sanitized\n6. **IO thread pool expanded**: Schedulers.io() thread count raised from 4 to 8\n7. **Turnip driver loading rewritten**: Namespace-based scheme for better driver loading compatibility\n\n#### 🐛 Bug Fixes\n\n1. Fixed SDL window reuse not taking effect because dlsym-resolved functions bypassed hooks (proxy at the resolution exit)\n2. Fixed SDL_EGL_LIBRARY wrongly appending the launcher native path to the system EGL\n3. Fixed Out Of Memory when exporting MCBBS modpacks with too many files\n4. Fixed a Choreographer dead-thread crash when the skin preview render thread exits\n5. Fixed the multiplayer dialog node list blocking click response (now fetched on a dedicated thread)\n6. Fixed plugin v2 environment variable configuration not persisting\n7. Fixed the crash page background not following light/dark mode, leaving text unre","assets":[{"name":"FCL-release-1.3.3.1-all.apk","size":329159607,"download_url":"https://fcl.072211.xyz/api/releases/1.3.3.1/FCL-release-1.3.3.1-all.apk","content_type":"application/vnd.android.package-archive"},{"name":"FCL-release-1.3.3.1-arm64-v8a.apk","size":172422167,"download_url":"https://fcl.072211.xyz/api/releases/1.3.3.1/FCL-release-1.3.3.1-arm64-v8a.apk","content_type":"application/vnd.android.package-archive"},{"name":"FCL-release-1.3.3.1-armeabi-v7a.apk","size":165169496,"download_url":"https://fcl.072211.xyz/api/releases/1.3.3.1/FCL-release-1.3.3.1-armeabi-v7a.apk","content_type":"application/vnd.android.package-archive"},{"name":"FCL-release-1.3.3.1-x86.apk","size":158750312,"download_url":"https://fcl.072211.xyz/api/releases/1.3.3.1/FCL-release-1.3.3.1-x86.apk","content_type":"application/vnd.android.package-archive"},{"name":"FCL-release-1.3.3.1-x86_64.apk","size":178092251,"download_url":"https://fcl.072211.xyz/api/releases/1.3.3.1/FCL-release-1.3.3.1-x86_64.apk","content_type":"application/vnd.android.package-archive"}]},{"id":381648623,"version":"1.3.3.0","title":"1.3.3.0","published_at":"2026-09-03T00:23:39Z","prerelease":false,"message":"\n### 中文\n\n#### ✨ 新功能\n\n1. **全局下载管理与前置依赖一键下载**：下载面板统一管理下载任务，标题行实时显示下载速度；下载模组时自动识别前置依赖并支持一键下载\n2. **模组远程查询磁盘缓存**：指纹/详情/版本列表/分类结果落盘缓存，存储改用 SQLite，消除全量加载与写放大，大幅减少重复网络请求\n3. **整合包安装实时进度**：解压与解析阶段上报实时进度，安装过程不再是无进展的黑盒\n4. **任务等待过程可见**：版本列表刷新任务显示名称，安装加载器期间的联网等待不再表现为静默卡住\n5. **下载面板实时速度**：标题行显示当前下载速度\n\n#### ⚡ 优化\n\n1. **下载稳定性**：重试间增加指数退避等待，连接超时从 8 秒调整为 10 秒\n2. **懒加载控制布局**：控制器布局按键按需异步加载，优化加载速度\n3. **MenuView 重写为 Kotlin**：优化触摸打开抽屉的判定\n4. **模组查询细节优化**：CurseForge 大文件指纹改为流式计算避免 OOM（HMCL#6631）；Modrinth 指纹未命中（404）写入负缓存，消除重复白查与错误日志\n\n#### 🐛 修复\n\n1. 修复离线皮肤对话框取消时覆盖旧皮肤文件，现在点确认时才落位 SKIN_DIR\n2. 修复取色拖动时部分设备卡死（主题刷新消息合并，避免高频重绘风暴）\n3. 修复 NeoForge 版本列表对缺失 versions 字段未判空导致的崩溃\n4. 修复控制器编辑模式视图组初始化时序问题（setup 阶段自动初始化，不再依赖菜单列表绑定兜底）\n5. 修复任务对话框日志区在写日志的任务结束后不收起\n6. 修复 Kotlin 2.4.10 产物 dex 时 metadata 解析崩溃（buildscript classpath 覆盖 R8 9.4.17）\n7. 修复前置解析的 Stream.toList 在低版本设备的兼容性问题\n\n#### 🔧 其他\n\n1. 模组数据类 record 化并迁移 kotlinx.serialization，根治缺失字段 NPE\n2. 文件选择回调迁移 SelectedFile，统一 content 与本地路径处理\n3. 更新 MioLibPatcher\n4. 工具链升级：Kotlin Gradle 插件 2.4.10、Gradle 8.14.4\n5. 更新多语言翻译（日语、繁中 HK、土耳其语等，来自 Weblate）\n\n### English\n\n#### ✨ New Features\n\n1. **Global download manager & one-tap prerequisite download**: The download panel now manages download tasks centrally with real-time speed in the title row; mod prerequisite dependencies are detected automatically and can be downloaded with one tap\n2. **Disk cache for remote mod queries**: Fingerprints/details/version lists/categories are cached on disk, now backed by SQLite, eliminating full in-memory loads and write amplification and greatly reducing repeated network requests\n3. **Real-time modpack install progress**: The unzip and parse stages now report live progress instead of an unresponsive wait\n4. **Visible task waits**: Version list refresh tasks display their names, so the network wait while installing loaders no longer looks like a silent hang\n5. **Live download speed**: The download panel title row shows the current download speed\n\n#### ⚡ Improvements\n\n1. **Download stability**: Exponential backoff waits between retries; connection timeout raised from 8 to 10 seconds\n2. **Lazy controller layout loading**: Controller layout keys load asynchronously on demand, speeding up loading\n3. **MenuView rewritten in Kotlin**: Improved touch-open drawer detection\n4. **Mod query refinements**: CurseForge fingerprints of large files are now computed in a streaming fashion to avoid OOM (HMCL#6631); Modrinth fingerprint misses (404) are negatively cached, eliminating repeated futile lookups and error logs\n\n#### 🐛 Bug Fixes\n\n1. Fixed the offline skin dialog overwriting the old skin file on cancel; the skin file is now only written on confirm\n2. Fixed freezing on some devices while dragging the theme color picker (theme refresh messages are merged to avoid high-frequency redraw storms)\n3. Fixed a crash from NeoForge version lists missing the versions field\n4. Fixed controller edit-mode view group initialization timing (auto-initialized during setup instead of relying on the menu-list binding fallback)\n5. Fixed the task dialog log area not collapsing after the logging task finishes\n6. Fixed a dex metadata parsing crash for Kotlin 2.4.10 output (buildscript classpath now pins R8 9.4.17)\n7. Fixed a compatibility issue with Stream.toList in prerequisite parsing on older devices\n\n#### 🔧 Other\n\n1. Mod data classes record-ized and migrated to kotlinx.serialization, eliminating missing-field NPEs at the root\n2. File-selection callbacks migrated to SelectedFile, unifying content URI and local path handling\n3. Updated MioLibPatcher\n4. Toolchain upgrades: Kotlin Gradle plugin 2.4.10, Gradle 8.14.4\n5. Updated translations (Japanese, Traditional Chinese HK, Turkish, etc., via Weblate)\n\n","assets":[{"name":"FCL-release-1.3.3.0-all.apk","size":326153712,"download_url":"https://fcl.072211.xyz/api/releases/1.3.3.0/FCL-release-1.3.3.0-all.apk","content_type":"application/vnd.android.package-archive"},{"name":"FCL-release-1.3.3.0-arm64-v8a.apk","size":172302845,"download_url":"https://fcl.072211.xyz/api/releases/1.3.3.0/FCL-release-1.3.3.0-arm64-v8a.apk","content_type":"application/vnd.android.package-archive"},{"name":"FCL-release-1.3.3.0-armeabi-v7a.apk","size":164112842,"download_url":"https://fcl.072211.xyz/api/releases/1.3.3.0/FCL-release-1.3.3.0-armeabi-v7a.apk","content_type":"application/vnd.android.package-archive"},{"name":"FCL-release-1.3.3.0-x86.apk","size":157363622,"download_url":"https://fcl.072211.xyz/api/releases/1.3.3.0/FCL-release-1.3.3.0-x86.apk","content_type":"application/vnd.android.package-archive"},{"name":"FCL-release-1.3.3.0-x86_64.apk","size":176491063,"download_url":"https://fcl.072211.xyz/api/releases/1.3.3.0/FCL-release-1.3.3.0-x86_64.apk","content_type":"application/vnd.android.package-archive"}]}],"agent_setup":"把这段文字发给你的AI助手:\nHelp me to configure my project to fetch GitHub release information from the mirror at https://fcl.072211.xyz. Follow the API documentation at https://fcl.072211.xyz/docs.\n\nAvailable endpoints:\n  GET https://fcl.072211.xyz/api/releases — list releases (?latest=true for latest only)\n  GET https://fcl.072211.xyz/api/releases/latest — latest release (legacy)\n  GET https://fcl.072211.xyz/api/releases/{tag} — get specific release\n  GET https://fcl.072211.xyz/api/releases/{tag}/{asset} — download asset\n\nQuery parameters: owner, repo, versions (1-20, default 5), latest (true/false), prerelease (true/false), cache_ttl (60-86400, default 600)"}