<?xml version="1.0"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
	<channel>
		<title>Lingke支持  - 最近更改 [zh-cn]</title>
		<link>https://support.lingke.ink/%E7%89%B9%E6%AE%8A:%E6%9C%80%E8%BF%91%E6%9B%B4%E6%94%B9</link>
		<description>用这个订阅源跟踪本wiki的最近更改。</description>
		<language>zh-Hans-CN</language>
		<generator>MediaWiki 1.44.0</generator>
		<lastBuildDate>Tue, 28 Jul 2026 23:35:52 GMT</lastBuildDate>
		<item>
			<title>Koring/app-beta-lice</title>
			<link>https://support.lingke.ink/index.php?title=Koring/app-beta-lice&amp;diff=50&amp;oldid=0</link>
			<guid isPermaLink="false">https://support.lingke.ink/index.php?title=Koring/app-beta-lice&amp;diff=50&amp;oldid=0</guid>
			<description>&lt;p&gt;创建页面，内容为“Koring Launcher Beta 测试用户协议  本协议是参与Koring Launcher Beta测试计划的用户（以下简称“测试用户”）与Koring运营团队（以下简称“我们”）之间，就用户参与Koring Launcher Beta版本测试相关事宜所订立的有效协议。请您在参与测试前仔细阅读本协议全部内容，您下载、安装、使用Beta测试版本即视为您已充分理解并同意本协议全部条款。  一、测试版本…”&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Koring Launcher Beta 测试用户协议&lt;br /&gt;
&lt;br /&gt;
本协议是参与Koring Launcher Beta测试计划的用户（以下简称“测试用户”）与Koring运营团队（以下简称“我们”）之间，就用户参与Koring Launcher Beta版本测试相关事宜所订立的有效协议。请您在参与测试前仔细阅读本协议全部内容，您下载、安装、使用Beta测试版本即视为您已充分理解并同意本协议全部条款。&lt;br /&gt;
&lt;br /&gt;
一、测试版本说明&lt;br /&gt;
&lt;br /&gt;
1. 本次开放测试的产品为 Koring Launcher V1.0.0（编译号：2607100400），属于UI预览性质的测试版本。&lt;br /&gt;
&lt;br /&gt;
2. 本版本仅提供 Windows 平台安装包，macOS、Linux平台暂未提供对应测试版本。&lt;br /&gt;
&lt;br /&gt;
3. 本次版本不包含任何功能性更新，仅用于UI/UX效果测试与验证，所有界面、交互设计均不代表产品最终上线效果。&lt;br /&gt;
&lt;br /&gt;
二、测试资格与参与方式&lt;br /&gt;
&lt;br /&gt;
1. 您需通过官方指定渠道提交Beta测试申请，经审核通过后方可获得测试资格。&lt;br /&gt;
&lt;br /&gt;
2. 您应仅在符合系统要求的Windows设备上下载、安装并使用测试版本，不得将测试安装包、测试账号转借、传播给其他未获得测试资格的人员。&lt;br /&gt;
&lt;br /&gt;
三、测试用户权利&lt;br /&gt;
&lt;br /&gt;
1. 抢先体验Koring Launcher最新的界面设计与交互方案；&lt;br /&gt;
&lt;br /&gt;
2. 通过官方指定反馈渠道，针对测试版本的UI表现、交互逻辑、兼容性问题等提交反馈与建议；&lt;br /&gt;
&lt;br /&gt;
3. 在测试周期内，获取对应测试版本的更新通知（如有）。&lt;br /&gt;
&lt;br /&gt;
四、测试用户义务&lt;br /&gt;
&lt;br /&gt;
1. 按照测试指引正常使用测试版本，配合完成UI/UX相关的测试验证，如实反馈使用过程中遇到的问题与优化建议；&lt;br /&gt;
&lt;br /&gt;
2. 不得对测试版本进行逆向工程、反编译、反汇编、修改、破解，或进行任何超出测试目的的操作；&lt;br /&gt;
&lt;br /&gt;
3. 不得利用测试版本从事任何违法违规活动，不得基于测试版本开发衍生产品、提供商业服务或用于任何盈利目的；&lt;br /&gt;
&lt;br /&gt;
4. 妥善保管测试相关的安装包、账号与文档，不得向任何第三方泄露、传播测试版本的内容、截图、数据及相关信息。&lt;br /&gt;
&lt;br /&gt;
五、知识产权与保密条款&lt;br /&gt;
&lt;br /&gt;
1. Koring Launcher（含测试版本）的所有代码、界面设计、交互逻辑、商标、文案及相关资料的全部知识产权，均归我们所有。测试用户仅获得非独家、不可转让、不可转授权的个人非商业测试使用权。&lt;br /&gt;
&lt;br /&gt;
2. 本次Beta测试的所有非公开内容均属于保密信息，未经我们书面许可，您不得以任何形式向第三方披露、发布、传播测试版本的界面、功能、缺陷及相关测试内容。本保密义务在测试结束后仍然持续有效。&lt;br /&gt;
&lt;br /&gt;
六、免责声明&lt;br /&gt;
&lt;br /&gt;
1. 本版本为UI预览测试版，不具备完整产品功能，可能存在界面异常、兼容性问题、运行不稳定等情况，我们不对测试版本的可用性、稳定性、完整性做任何担保。&lt;br /&gt;
&lt;br /&gt;
2. 因安装、使用测试版本可能导致的设备故障、数据丢失等风险，由您自行承担，我们不承担任何直接或间接责任。&lt;br /&gt;
&lt;br /&gt;
3. 我们有权根据测试进度，随时调整测试内容、暂停或终止本次Beta测试，且无需提前通知。&lt;br /&gt;
&lt;br /&gt;
七、协议终止&lt;br /&gt;
&lt;br /&gt;
1. 您可随时卸载测试版本、退出本次Beta测试，本协议自您停止使用测试版本之日起终止。&lt;br /&gt;
&lt;br /&gt;
2. 若您违反本协议任何条款，我们有权立即取消您的测试资格，终止本协议，并保留追究相关责任的权利。&lt;br /&gt;
&lt;br /&gt;
八、其他条款&lt;br /&gt;
&lt;br /&gt;
1. 我们有权根据需要修订本协议，修订后的协议将通过官方渠道公示，继续参与测试即视为接受修订后的协议。&lt;br /&gt;
&lt;br /&gt;
2. 本协议的订立、执行与解释均适用中华人民共和国法律。如双方就本协议内容发生争议，应友好协商解决；协商不成的，任何一方均可向我们所在地有管辖权的人民法院提起诉讼。&lt;/div&gt;</description>
			<pubDate>Sat, 11 Jul 2026 12:01:02 GMT</pubDate>
			<dc:creator>Dream pep</dc:creator>
			<comments>https://support.lingke.ink/%E8%AE%A8%E8%AE%BA:Koring/app-beta-lice</comments>
		</item>
		<item>
			<title>Koring-launcher/about-devmd</title>
			<link>https://support.lingke.ink/index.php?title=Koring-launcher/about-devmd&amp;diff=49&amp;oldid=48</link>
			<guid isPermaLink="false">https://support.lingke.ink/index.php?title=Koring-launcher/about-devmd&amp;diff=49&amp;oldid=48</guid>
			<description>&lt;p&gt;&lt;/p&gt;
&lt;a href=&quot;https://support.lingke.ink/index.php?title=Koring-launcher/about-devmd&amp;amp;diff=49&amp;amp;oldid=48&quot;&gt;显示更改&lt;/a&gt;</description>
			<pubDate>Thu, 09 Jul 2026 12:17:46 GMT</pubDate>
			<dc:creator>Dream pep</dc:creator>
			<comments>https://support.lingke.ink/%E8%AE%A8%E8%AE%BA:Koring-launcher/about-devmd</comments>
		</item>
		<item>
			<title>Koring-launcher/about-devmd</title>
			<link>https://support.lingke.ink/index.php?title=Koring-launcher/about-devmd&amp;diff=48&amp;oldid=0</link>
			<guid isPermaLink="false">https://support.lingke.ink/index.php?title=Koring-launcher/about-devmd&amp;diff=48&amp;oldid=0</guid>
			<description>&lt;p&gt;创建页面，内容为“# Koring Launcher — 开发文档  ## 技术栈  | 层 | 技术 | |---|---| | Frontend | React 19 + Vite 7 + TypeScript | | UI | Tailwind CSS v4 + shadcn/ui (base-ui) | | 状态管理 | Zustand | | Backend | Rust / Tauri 2 | | Sidecar | Node.js / TypeScript / @xmcl/* | | 配置存储 | YAML (serde_yaml) + Windows Registry | | 包管理 | pnpm | | 目标平台 | ARM64 Windows (`aarch64-pc-windows-msvc`) |  ## 快速命令  ```bash pnpm dev                # 前…”&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;# Koring Launcher — 开发文档&lt;br /&gt;
&lt;br /&gt;
## 技术栈&lt;br /&gt;
&lt;br /&gt;
| 层 | 技术 |&lt;br /&gt;
|---|---|&lt;br /&gt;
| Frontend | React 19 + Vite 7 + TypeScript |&lt;br /&gt;
| UI | Tailwind CSS v4 + shadcn/ui (base-ui) |&lt;br /&gt;
| 状态管理 | Zustand |&lt;br /&gt;
| Backend | Rust / Tauri 2 |&lt;br /&gt;
| Sidecar | Node.js / TypeScript / @xmcl/* |&lt;br /&gt;
| 配置存储 | YAML (serde_yaml) + Windows Registry |&lt;br /&gt;
| 包管理 | pnpm |&lt;br /&gt;
| 目标平台 | ARM64 Windows (`aarch64-pc-windows-msvc`) |&lt;br /&gt;
&lt;br /&gt;
## 快速命令&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
pnpm dev                # 前端 dev server (port 1420)&lt;br /&gt;
pnpm dev:t              # 前端 + Rust dev (需 VS 环境)&lt;br /&gt;
./dev-vs.cmd            # VS ARM64 环境启动 dev&lt;br /&gt;
pnpm build              # 生产构建 (switch-icon run + tsc + vite build)&lt;br /&gt;
pnpm build:beta         # Beta 构建 (switch-icon beta + tsc + vite build --mode beta)&lt;br /&gt;
./build-vs.cmd          # Rust 编译 (production, NSIS 打包)&lt;br /&gt;
./build-vs.cmd --mode beta  # Rust 编译 (beta, 跳过打包)&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
## 构建模式&lt;br /&gt;
&lt;br /&gt;
| 模式 | `VITE_BUILD_MODE` | 图标 | Badge | 说明 |&lt;br /&gt;
|---|---|---|---|---|&lt;br /&gt;
| dev | `&amp;quot;dev&amp;quot;` | `dev.png` | 🟢 DEV | 开发预览版 |&lt;br /&gt;
| beta | `&amp;quot;beta&amp;quot;` | `beta.png` | 🟡 BETA | 测试版 |&lt;br /&gt;
| run | `&amp;quot;run&amp;quot;` | `run.png` | 无 | 正式版 |&lt;br /&gt;
&lt;br /&gt;
模式由 `src/lib/mode.ts` 导出 `BUILD_MODE`, `isDev`, `isBeta`, `isRun`。&lt;br /&gt;
&lt;br /&gt;
## 环境变量 (.env.*)&lt;br /&gt;
&lt;br /&gt;
```env&lt;br /&gt;
VITE_BUILD_MODE=dev|beta|run&lt;br /&gt;
VITE_APP_ICON=/dev.png|/beta.png|/run.png&lt;br /&gt;
VITE_START_POP=true|false              # 启动弹窗开关&lt;br /&gt;
VITE_START_POP_TITLE=&amp;quot;...&amp;quot;             # 弹窗标题&lt;br /&gt;
VITE_START_POP_INFO=&amp;quot;...&amp;quot;              # 弹窗内容&lt;br /&gt;
VITE_START_POP_BOUTTON=&amp;quot;...&amp;quot;           # 弹窗按钮文字&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
## 配置存储架构&lt;br /&gt;
&lt;br /&gt;
### 概览&lt;br /&gt;
&lt;br /&gt;
| 数据类型 | 存储位置 | 格式 | 说明 |&lt;br /&gt;
|---------|---------|------|------|&lt;br /&gt;
| 用户设置 | 程序目录 `Koring.yml` | YAML | 所有可配置项 |&lt;br /&gt;
| 账户凭证 | Windows Registry `HKCU\Software\KoringLauncher` | REG_SZ | token/xboxProfile |&lt;br /&gt;
| 实例配置 | 实例目录 `koring-instance.json` | JSON | per-instance |&lt;br /&gt;
| 任务历史 | localStorage `koring-task-history` | JSON | 临时，max 50 |&lt;br /&gt;
&lt;br /&gt;
### Koring.yml 结构&lt;br /&gt;
&lt;br /&gt;
```yaml&lt;br /&gt;
version: 1&lt;br /&gt;
&lt;br /&gt;
theme:&lt;br /&gt;
  darkMode: auto          # auto | light | dark&lt;br /&gt;
  parallax: true&lt;br /&gt;
&lt;br /&gt;
a11y:&lt;br /&gt;
  reduceMotion: false&lt;br /&gt;
  reduceTransparency: false&lt;br /&gt;
  highContrast: false&lt;br /&gt;
  contentBlurOpacity: 50  # 0-100&lt;br /&gt;
&lt;br /&gt;
background:&lt;br /&gt;
  bgType: image           # image | color&lt;br /&gt;
  image: /background.png&lt;br /&gt;
  blur: 0                 # 0-20&lt;br /&gt;
  opacity: 100            # 0-100&lt;br /&gt;
&lt;br /&gt;
game:&lt;br /&gt;
  gameDir: .minecraft&lt;br /&gt;
  resourceDir: &amp;quot;&amp;quot;&lt;br /&gt;
  savesDir: &amp;quot;&amp;quot;&lt;br /&gt;
  instancesDir: .minecraft/instances&lt;br /&gt;
&lt;br /&gt;
java:&lt;br /&gt;
  javaPath: &amp;quot;&amp;quot;&lt;br /&gt;
  memMode: auto           # auto | custom&lt;br /&gt;
  memGB: 4                # 1-16&lt;br /&gt;
  gc: auto                # auto | zgc | g1&lt;br /&gt;
  jvmArgs: &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
advanced:&lt;br /&gt;
  afterLaunch: close      # close | minimize | keep&lt;br /&gt;
  winMode: default        # default | fullscreen | custom&lt;br /&gt;
  customWidth: 854&lt;br /&gt;
  customHeight: 480&lt;br /&gt;
  gameArgs: &amp;quot;&amp;quot;&lt;br /&gt;
  preLaunchCmd: &amp;quot;&amp;quot;&lt;br /&gt;
  debugMode: false&lt;br /&gt;
&lt;br /&gt;
download:&lt;br /&gt;
  fileSource: mirror      # mirror | official | official-only&lt;br /&gt;
  versionSource: mirror&lt;br /&gt;
  threads: 16             # 1-64&lt;br /&gt;
  speedLimit: 0           # KB/s, 0=不限速&lt;br /&gt;
&lt;br /&gt;
network:&lt;br /&gt;
  securityId:&lt;br /&gt;
    enabled: false&lt;br /&gt;
    authUrl: &amp;quot;&amp;quot;&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
### 注册表结构&lt;br /&gt;
&lt;br /&gt;
```&lt;br /&gt;
HKCU\Software\KoringLauncher&lt;br /&gt;
  └─ auth&lt;br /&gt;
       ├─ username      (REG_SZ)&lt;br /&gt;
       ├─ uuid          (REG_SZ)&lt;br /&gt;
       ├─ accessToken   (REG_SZ)&lt;br /&gt;
       ├─ refreshToken  (REG_SZ)&lt;br /&gt;
       └─ xboxProfile   (REG_SZ, JSON string)&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
### 向上兼容策略&lt;br /&gt;
&lt;br /&gt;
1. **版本号** — `version` 字段，每次结构变更递增&lt;br /&gt;
2. **默认值填充** — 加载时缺失字段自动补全，不丢数据&lt;br /&gt;
3. **迁移函数** — `migrate_v0_to_v1()` 等，按版本链执行&lt;br /&gt;
4. **未知字段保留** — YAML 解析器保留不认识的字段&lt;br /&gt;
5. **Debounce 写入** — 300ms debounce 避免频繁 IO&lt;br /&gt;
&lt;br /&gt;
### Rust 实现&lt;br /&gt;
&lt;br /&gt;
**新文件：**&lt;br /&gt;
- `src-tauri/src/config.rs` — `AppConfig` 结构体、`load_config()`、`save_config()`、`merge_defaults()`、`migrate()`&lt;br /&gt;
- `src-tauri/src/registry.rs` — `read_auth()`、`write_auth()`、`delete_auth()`&lt;br /&gt;
&lt;br /&gt;
**Tauri 命令：**&lt;br /&gt;
- `get_config` → 返回 `AppConfig` JSON&lt;br /&gt;
- `save_config(cfg)` → 写入 `Koring.yml`&lt;br /&gt;
- `get_auth` → 从注册表读取 `AuthData`&lt;br /&gt;
- `save_auth(auth)` → 写入注册表&lt;br /&gt;
- `delete_auth_cmd` → 删除注册表认证数据&lt;br /&gt;
&lt;br /&gt;
### 前端实现&lt;br /&gt;
&lt;br /&gt;
**新文件：**&lt;br /&gt;
- `src/api/config.ts` — `getConfig()`、`saveConfig()` 类型定义&lt;br /&gt;
- `src/api/auth-registry.ts` — `getAuth()`、`saveAuth()`、`deleteAuth()`&lt;br /&gt;
- `src/stores/configStore.ts` — 统一配置 Zustand store&lt;br /&gt;
&lt;br /&gt;
**configStore 接口：**&lt;br /&gt;
```ts&lt;br /&gt;
useConfigStore.getState().config         // 完整配置&lt;br /&gt;
useConfigStore.getState().loaded         // 是否已加载&lt;br /&gt;
useConfigStore.getState().init()         // 从 Rust 加载&lt;br /&gt;
useConfigStore.getState().setTheme({...})  // 部分更新 + debounce 写回&lt;br /&gt;
useConfigStore.getState().setA11y({...})&lt;br /&gt;
useConfigStore.getState().setBackground({...})&lt;br /&gt;
useConfigStore.getState().setGame({...})&lt;br /&gt;
useConfigStore.getState().setJava({...})&lt;br /&gt;
useConfigStore.getState().setAdvanced({...})&lt;br /&gt;
useConfigStore.getState().setDownload({...})&lt;br /&gt;
useConfigStore.getState().setNetwork({...})&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
**Store 委托模式：**&lt;br /&gt;
themeStore / a11yStore / backgroundStore / authStore 都是 configStore 的薄包装层：&lt;br /&gt;
- 读取时从 `configStore.config.*` 同步&lt;br /&gt;
- 写入时通过各自的 `set*()` 同时更新本地状态和 configStore&lt;br /&gt;
- 提供 `sync*FromConfig()` 函数在 App 启动时同步&lt;br /&gt;
&lt;br /&gt;
**App 启动流程：**&lt;br /&gt;
```&lt;br /&gt;
configStore.init() → syncThemeFromConfig() → syncA11yFromConfig() → syncBackgroundFromConfig() → authStore.initFromRegistry()&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
## 项目结构&lt;br /&gt;
&lt;br /&gt;
```&lt;br /&gt;
koring-launcher/&lt;br /&gt;
├── src/                        # 前端源码&lt;br /&gt;
│   ├── App.tsx                 # 路由入口 + configStore 初始化&lt;br /&gt;
│   ├── index.css               # 全局样式 + CSS 变量 + 动画&lt;br /&gt;
│   ├── layouts/&lt;br /&gt;
│   │   └── RootLayout.tsx      # 三层布局: BackgroundLayer + ContentLayer + SystemLayer&lt;br /&gt;
│   ├── components/&lt;br /&gt;
│   │   ├── background/&lt;br /&gt;
│   │   │   └── BackgroundLayer.tsx    # 全屏背景层 + 视差 + 强内容遮罩&lt;br /&gt;
│   │   ├── system/&lt;br /&gt;
│   │   │   ├── SystemLayer.tsx        # 系统层容器 (z-[100])&lt;br /&gt;
│   │   │   ├── TitleBar.tsx           # 自定义标题栏 (40px, 胶囊菜单/返回按钮)&lt;br /&gt;
│   │   │   └── WindowControls.tsx     # 窗口按钮 + DEV/BETA badge + TaskButton&lt;br /&gt;
│   │   ├── splash/&lt;br /&gt;
│   │   │   └── Splash.tsx             # 启动动画 (独立窗口, HTML+React)&lt;br /&gt;
│   │   ├── silk/&lt;br /&gt;
│   │   │   └── Silk.tsx               # WebGL 丝绸着色器 (Three.js)&lt;br /&gt;
│   │   ├── task/&lt;br /&gt;
│   │   │   ├── TaskButton.tsx         # 标题栏任务指示器 (SVG 圆弧动画)&lt;br /&gt;
│   │   │   └── TaskCard.tsx           # 单个任务卡片 (进度条+日志)&lt;br /&gt;
│   │   ├── ui/                        # shadcn/ui 组件&lt;br /&gt;
│   │   │   ├── sheet.tsx, button.tsx, switch.tsx, slider.tsx&lt;br /&gt;
│   │   │   ├── progress.tsx, badge.tsx, separator.tsx&lt;br /&gt;
│   │   │   ├── label.tsx, radio-group.tsx, alert-dialog.tsx&lt;br /&gt;
│   │   ├── VersionCard.tsx            # 版本/更新卡片 (Silk 背景+毛玻璃)&lt;br /&gt;
│   │   ├── UnderConstruction.tsx      # &amp;quot;装修中&amp;quot; 占位组件&lt;br /&gt;
│   │   └── StartupPopup.tsx           # 启动弹窗 (环境变量控制)&lt;br /&gt;
│   ├── stores/&lt;br /&gt;
│   │   ├── configStore.ts     # 统一配置 store (→ Koring.yml)&lt;br /&gt;
│   │   ├── themeStore.ts      # 主题 (委托 configStore)&lt;br /&gt;
│   │   ├── a11yStore.ts       # 无障碍 (委托 configStore)&lt;br /&gt;
│   │   ├── backgroundStore.ts # 背景 (委托 configStore)&lt;br /&gt;
│   │   ├── authStore.ts       # 认证 (→ Registry)&lt;br /&gt;
│   │   ├── routeStore.ts      # 路由 (历史栈)&lt;br /&gt;
│   │   ├── taskStore.ts       # 任务队列 (localStorage)&lt;br /&gt;
│   │   ├── instanceStore.ts   # 实例管理&lt;br /&gt;
│   │   ├── installStore.ts    # Minecraft 安装&lt;br /&gt;
│   │   ├── launchStore.ts     # 游戏启动&lt;br /&gt;
│   │   ├── modsStore.ts       # Mod 搜索&lt;br /&gt;
│   │   ├── updateStore.ts     # 应用更新&lt;br /&gt;
│   │   └── devStore.ts        # 开发者调试&lt;br /&gt;
│   ├── api/&lt;br /&gt;
│   │   ├── config.ts          # AppConfig 读写 (→ Tauri invoke)&lt;br /&gt;
│   │   ├── auth-registry.ts   # AuthData 读写 (→ Registry)&lt;br /&gt;
│   │   ├── instance.ts        # 实例 API&lt;br /&gt;
│   │   ├── auth.ts            # 登录 API&lt;br /&gt;
│   │   ├── sidecar.ts         # 通用 sidecar IPC&lt;br /&gt;
│   │   └── ...&lt;br /&gt;
│   ├── hooks/&lt;br /&gt;
│   │   └── useTheme.ts         # 同步 darkMode → .dark class&lt;br /&gt;
│   ├── lib/&lt;br /&gt;
│   │   ├── mode.ts             # BUILD_MODE 常量&lt;br /&gt;
│   │   └── utils.ts            # cn() 工具函数&lt;br /&gt;
│   ├── types/&lt;br /&gt;
│   │   └── task.ts             # Task 类型定义&lt;br /&gt;
│   └── pages/                  # 页面组件&lt;br /&gt;
├── src-tauri/                  # Rust 后端&lt;br /&gt;
│   ├── Cargo.toml              # 依赖: serde, serde_json, serde_yaml, winreg&lt;br /&gt;
│   ├── tauri.conf.json         # 窗口配置 + Bundle + Updater&lt;br /&gt;
│   ├── capabilities/default.json   # 权限声明&lt;br /&gt;
│   ├── src/&lt;br /&gt;
│   │   ├── lib.rs              # 插件注册 + splash/main + 命令注册&lt;br /&gt;
│   │   ├── config.rs           # AppConfig 读写 + 迁移 + 默认值&lt;br /&gt;
│   │   ├── registry.rs         # Windows Registry 读写&lt;br /&gt;
│   │   ├── commands/mod.rs     # Tauri 命令 (→ sidecar + config + auth)&lt;br /&gt;
│   │   └── sidecar.rs          # Sidecar 进程管理&lt;br /&gt;
│   └── binaries/               # Sidecar 二进制文件&lt;br /&gt;
├── sidecar/                    # Node.js Sidecar&lt;br /&gt;
│   └── src/&lt;br /&gt;
│       ├── handlers/           # 10 个 handler&lt;br /&gt;
│       ├── utils/paths.ts      # 路径工具 + InstanceConfig&lt;br /&gt;
│       └── protocol/types.ts   # IPC 消息类型&lt;br /&gt;
├── splash.html                 # 启动动画 HTML 入口&lt;br /&gt;
├── build-vs.cmd                # VS 环境编译脚本&lt;br /&gt;
└── dev-vs.cmd                  # VS 环境开发脚本&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
## 页面路由&lt;br /&gt;
&lt;br /&gt;
### 顶层路由 (标题栏可见)&lt;br /&gt;
&lt;br /&gt;
| Key | Label | 组件 | 说明 |&lt;br /&gt;
|---|---|---|---|&lt;br /&gt;
| `home` | 首页 | `pages/home/index.tsx` | StartCard 启动组件 |&lt;br /&gt;
| `store` | 资源 | `pages/store/index.tsx` | 🚧 装修中 |&lt;br /&gt;
| `today` | 资讯 | `pages/today/index.tsx` | 🚧 装修中 |&lt;br /&gt;
| `play-link` | 联机 | `pages/play-link/index.tsx` | 🚧 装修中 |&lt;br /&gt;
| `setting` | 设置 | `pages/setting/index.tsx` | 侧边栏 + 内容区 |&lt;br /&gt;
&lt;br /&gt;
### 隐藏路由&lt;br /&gt;
&lt;br /&gt;
| Key | Label | 组件 |&lt;br /&gt;
|---|---|---|&lt;br /&gt;
| `task-queue` | 任务队列 | `pages/task-queue.tsx` |&lt;br /&gt;
| `debug` | 调试 | `pages/debug/index.tsx` |&lt;br /&gt;
| `debug-splash` | 启动动画调试 | `pages/debug/splash-debug.tsx` |&lt;br /&gt;
| `debug-display` | 显示效果调试 | `pages/debug/display-debug.tsx` |&lt;br /&gt;
| `debug-version-card` | 版本卡片调试 | `pages/debug/version-card-debug.tsx` |&lt;br /&gt;
| `debug-task` | 任务队列调试 | `pages/debug/task-debug.tsx` |&lt;br /&gt;
&lt;br /&gt;
### 路由导航 (历史栈)&lt;br /&gt;
&lt;br /&gt;
路由使用动态历史栈替代静态 parentMap。每次 `navigate()` 压入历史，`goBack()` 弹出。&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
## Zustand Stores&lt;br /&gt;
&lt;br /&gt;
### configStore (统一配置中心)&lt;br /&gt;
&lt;br /&gt;
所有用户设置的单一数据源。读写通过 Tauri invoke 与 `Koring.yml` 同步。&lt;br /&gt;
&lt;br /&gt;
```ts&lt;br /&gt;
config: AppConfig       // 完整配置&lt;br /&gt;
loaded: boolean         // 是否已从 Rust 加载&lt;br /&gt;
&lt;br /&gt;
init()                  // 从 Rust 加载配置&lt;br /&gt;
setTheme(patch)         // 部分更新 + debounce 300ms 写回&lt;br /&gt;
setA11y(patch)&lt;br /&gt;
setBackground(patch)&lt;br /&gt;
setGame(patch)&lt;br /&gt;
setJava(patch)&lt;br /&gt;
setAdvanced(patch)&lt;br /&gt;
setDownload(patch)&lt;br /&gt;
setNetwork(patch)&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
### themeStore (委托 configStore)&lt;br /&gt;
&lt;br /&gt;
```ts&lt;br /&gt;
darkMode: &amp;quot;auto&amp;quot; | &amp;quot;light&amp;quot; | &amp;quot;dark&amp;quot;&lt;br /&gt;
parallax: boolean&lt;br /&gt;
setDarkMode(mode)       // 更新 DOM + configStore&lt;br /&gt;
setParallax(v)          // configStore&lt;br /&gt;
syncThemeFromConfig()   // 启动时从 config 同步&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
### a11yStore (委托 configStore)&lt;br /&gt;
&lt;br /&gt;
```ts&lt;br /&gt;
reduceMotion, reduceTransparency, highContrast, contentBlurOpacity&lt;br /&gt;
syncA11yFromConfig()&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
### backgroundStore (委托 configStore)&lt;br /&gt;
&lt;br /&gt;
```ts&lt;br /&gt;
type: &amp;quot;image&amp;quot; | &amp;quot;color&amp;quot;, image, blur, opacity&lt;br /&gt;
setImage / setColor / setBlur / setOpacity / reset&lt;br /&gt;
syncBackgroundFromConfig()&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
### authStore (委托 Registry)&lt;br /&gt;
&lt;br /&gt;
```ts&lt;br /&gt;
user: AuthResult | null&lt;br /&gt;
initFromRegistry()      // 从 Windows Registry 加载&lt;br /&gt;
loginOffline(username)  // 通过 sidecar + 保存到 registry&lt;br /&gt;
logout()                // 清除 registry&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
### routeStore (历史栈导航)&lt;br /&gt;
&lt;br /&gt;
```ts&lt;br /&gt;
current: RouteKey&lt;br /&gt;
history: RouteKey[]     // 导航历史栈&lt;br /&gt;
navigate(key)           // 压入历史&lt;br /&gt;
goBack()                // 弹出历史&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
### taskStore (localStorage)&lt;br /&gt;
&lt;br /&gt;
任务队列。localStorage 持久化历史 (max 50)。&lt;br /&gt;
&lt;br /&gt;
### 其他 Store&lt;br /&gt;
&lt;br /&gt;
- `devStore` — 开发者调试 (内存)&lt;br /&gt;
- `installStore` — Minecraft 安装 (内存，ephemeral)&lt;br /&gt;
- `launchStore` — 游戏启动 (内存，ephemeral)&lt;br /&gt;
- `modsStore` — Mod 搜索 (内存，ephemeral)&lt;br /&gt;
- `updateStore` — 应用更新 (内存，ephemeral)&lt;br /&gt;
- `instanceStore` — 实例管理 (sidecar 查询)&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
## 核心组件&lt;br /&gt;
&lt;br /&gt;
### 三层布局 (RootLayout)&lt;br /&gt;
&lt;br /&gt;
```&lt;br /&gt;
z-0   BackgroundLayer     全屏背景图 + 视差 + 模糊 + 强内容遮罩&lt;br /&gt;
z-1   ContentLayer        页面内容区 (top: 40px, overflow-auto)&lt;br /&gt;
z-100 SystemLayer         自定义标题栏 (TitleBar)&lt;br /&gt;
z-200 StartupPopup        启动弹窗 (环境变量控制)&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
### TitleBar 标题栏&lt;br /&gt;
&lt;br /&gt;
三种模式:&lt;br /&gt;
- **`default`**: 左侧品牌文字 + 中间胶囊菜单 (可拖拽切换) + 右侧窗口控制&lt;br /&gt;
- **`sub`**: 左侧返回按钮 + 品牌文字 + 右侧窗口控制 (隐藏 TaskButton)&lt;br /&gt;
- **`window`**: 仅窗口控制&lt;br /&gt;
&lt;br /&gt;
### BackgroundLayer 背景层&lt;br /&gt;
&lt;br /&gt;
- 支持 `image` (CSS background-image) 和 `color` (CSS background-color) 两种类型&lt;br /&gt;
- 视差效果: 鼠标移动时背景偏移 ±20px, scale(1.05)&lt;br /&gt;
- 强内容遮罩: 非 home 页面自动显示 (可通过 `contentBlurOpacity` 控制)&lt;br /&gt;
- 深色模式叠加层: `bg-black/35`&lt;br /&gt;
&lt;br /&gt;
### StartCard 启动组件 (首页)&lt;br /&gt;
&lt;br /&gt;
胶囊形启动组件，位于首页左下角:&lt;br /&gt;
- 左: 设置齿轮图标 (→ setting)&lt;br /&gt;
- 中: &amp;quot;启动游戏&amp;quot; 按钮 (primary 色, rounded-full)&lt;br /&gt;
- 右: 实例选择图标 (Package)&lt;br /&gt;
&lt;br /&gt;
### TaskQueue 任务系统&lt;br /&gt;
&lt;br /&gt;
- 执行器模式: `addTask(type, title, desc, async (ctx) =&amp;gt; {...})`&lt;br /&gt;
- 支持并行执行 (多个任务同时运行)&lt;br /&gt;
- AbortController 取消机制&lt;br /&gt;
- localStorage 持久化历史 (max 50)&lt;br /&gt;
- 任务类型: `install` / `download` / `update` / `launch` / `auth` / `sync` / `custom`&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
## Tauri 窗口配置&lt;br /&gt;
&lt;br /&gt;
| 窗口 | 尺寸 | 特性 |&lt;br /&gt;
|---|---|---|&lt;br /&gt;
| splashscreen | 480×320 | 无边框, 透明, 不可缩放, 居中 |&lt;br /&gt;
| main | 900×600 (min 800×600) | 无边框, 透明, 隐藏启动 |&lt;br /&gt;
&lt;br /&gt;
## 权限 (capabilities/default.json)&lt;br /&gt;
&lt;br /&gt;
```&lt;br /&gt;
core:default, core:window:default, core:window:allow-*,&lt;br /&gt;
core:webview:allow-create-webview-window,&lt;br /&gt;
opener:default, process:default, shell:allow-execute,&lt;br /&gt;
updater:default, dialog:default&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
## Rust 依赖&lt;br /&gt;
&lt;br /&gt;
```toml&lt;br /&gt;
tauri = &amp;quot;2&amp;quot;&lt;br /&gt;
tauri-plugin-opener, tauri-plugin-process, tauri-plugin-dialog,&lt;br /&gt;
tauri-plugin-shell, tauri-plugin-updater&lt;br /&gt;
serde = { version = &amp;quot;1&amp;quot;, features = [&amp;quot;derive&amp;quot;] }&lt;br /&gt;
serde_json = &amp;quot;1&amp;quot;&lt;br /&gt;
serde_yaml = &amp;quot;0.9&amp;quot;&lt;br /&gt;
uuid = { version = &amp;quot;1&amp;quot;, features = [&amp;quot;v4&amp;quot;] }&lt;br /&gt;
tokio = { version = &amp;quot;1&amp;quot;, features = [&amp;quot;time&amp;quot;] }&lt;br /&gt;
[target.&amp;#039;cfg(windows)&amp;#039;.dependencies]&lt;br /&gt;
winreg = &amp;quot;0.52&amp;quot;&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
## IPC 协议&lt;br /&gt;
&lt;br /&gt;
前端 → `invoke()` → Rust `commands::*` → sidecar stdin (JSON) → sidecar stdout (JSON) → Tauri 事件 → 前端&lt;br /&gt;
&lt;br /&gt;
Sidecar 命令: `install-minecraft`, `install-mod-loader`, `get-version-list`, `launch-game`, `offline-login`, `search-mods`, `install-mod`, `create-instance`, `list-instances`&lt;br /&gt;
&lt;br /&gt;
Rust 直接命令: `get_config`, `save_config`, `get_auth`, `save_auth`, `delete_auth_cmd`&lt;/div&gt;</description>
			<pubDate>Thu, 09 Jul 2026 12:15:53 GMT</pubDate>
			<dc:creator>Dream pep</dc:creator>
			<comments>https://support.lingke.ink/%E8%AE%A8%E8%AE%BA:Koring-launcher/about-devmd</comments>
		</item>
		<item>
			<title>LL-1.0</title>
			<link>https://support.lingke.ink/index.php?title=LL-1.0&amp;diff=47&amp;oldid=0</link>
			<guid isPermaLink="false">https://support.lingke.ink/index.php?title=LL-1.0&amp;diff=47&amp;oldid=0</guid>
			<description>&lt;p&gt;创建页面，内容为“LingkeLice 1.0 (LL-1.0)  版权所有 (c) 深圳瓴克网络科技有限公司  本软件及相关文档文件（以下简称&amp;quot;本软件&amp;quot;）的版权归深圳瓴克网络科技 有限公司（以下简称&amp;quot;版权方&amp;quot;）所有。  特此免费授予任何获得本软件副本的个人或组织在遵守以下条款的前提下 使用本软件的权利：  1. 许可授予    1.1 非商业用途        在不涉及任何商业目的的前提下，任何人可以自…”&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;LingkeLice 1.0 (LL-1.0)&lt;br /&gt;
&lt;br /&gt;
版权所有 (c) 深圳瓴克网络科技有限公司&lt;br /&gt;
&lt;br /&gt;
本软件及相关文档文件（以下简称&amp;quot;本软件&amp;quot;）的版权归深圳瓴克网络科技&lt;br /&gt;
有限公司（以下简称&amp;quot;版权方&amp;quot;）所有。&lt;br /&gt;
&lt;br /&gt;
特此免费授予任何获得本软件副本的个人或组织在遵守以下条款的前提下&lt;br /&gt;
使用本软件的权利：&lt;br /&gt;
&lt;br /&gt;
1. 许可授予&lt;br /&gt;
   1.1 非商业用途&lt;br /&gt;
       在不涉及任何商业目的的前提下，任何人可以自由地：&lt;br /&gt;
       (a) 使用、复制、修改本软件；&lt;br /&gt;
       (b) 将本软件合并到其他项目中；&lt;br /&gt;
       (c) 分发本软件的原始副本或修改后的副本。&lt;br /&gt;
   &lt;br /&gt;
   1.2 商业用途&lt;br /&gt;
       任何将本软件用于商业目的的行为（包括但不限于将本软件集成到&lt;br /&gt;
       商业产品中、以商业方式提供基于本软件的服务、通过本软件直接&lt;br /&gt;
       或间接获取经济收益）均须事先获得版权方的书面授权许可。&lt;br /&gt;
&lt;br /&gt;
2. 限制&lt;br /&gt;
   2.1 未经版权方事先书面同意，不得将本软件或其衍生作品用于任何商业&lt;br /&gt;
       活动。&lt;br /&gt;
   2.2 商业用途授权申请请联系：深圳瓴克网络科技有限公司。&lt;br /&gt;
&lt;br /&gt;
3. 免责声明&lt;br /&gt;
   本软件按&amp;quot;原样&amp;quot;提供，不提供任何明示或暗示的保证，包括但不限于对&lt;br /&gt;
   适销性、特定用途适用性和非侵权的保证。在任何情况下，版权方均不对&lt;br /&gt;
   因使用本软件而产生的任何索赔、损害或其他责任承担责任。&lt;br /&gt;
&lt;br /&gt;
4. 终止&lt;br /&gt;
   若被许可方违反本协议任何条款，其在本协议项下的权利将自动终止，&lt;br /&gt;
   且必须立即停止使用和销毁本软件的所有副本。&lt;br /&gt;
&lt;br /&gt;
如需商业用途授权，请联系：&lt;br /&gt;
深圳瓴克网络科技有限公司&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
LingkeLice 1.0 (LL-1.0)&lt;br /&gt;
&lt;br /&gt;
Copyright (c) Shenzhen Lingke Network Technology Co., Ltd.&lt;br /&gt;
&lt;br /&gt;
Permission is hereby granted, free of charge, to any person or organization&lt;br /&gt;
obtaining a copy of this software and associated documentation files (the&lt;br /&gt;
&amp;quot;Software&amp;quot;), to use the Software subject to the following conditions:&lt;br /&gt;
&lt;br /&gt;
1. Grant of License&lt;br /&gt;
   1.1 Non-Commercial Use&lt;br /&gt;
       For any purpose that does not involve commercial activity, anyone may:&lt;br /&gt;
       (a) Use, copy, and modify the Software;&lt;br /&gt;
       (b) Incorporate the Software into other projects;&lt;br /&gt;
       (c) Distribute original or modified copies of the Software.&lt;br /&gt;
&lt;br /&gt;
   1.2 Commercial Use&lt;br /&gt;
       Any use of the Software for commercial purposes (including but not&lt;br /&gt;
       limited to integrating the Software into commercial products,&lt;br /&gt;
       providing services based on the Software in a commercial manner, or&lt;br /&gt;
       generating economic benefits directly or indirectly through the&lt;br /&gt;
       Software) must obtain prior written authorization from the Copyright&lt;br /&gt;
       Holder.&lt;br /&gt;
&lt;br /&gt;
2. Restrictions&lt;br /&gt;
   2.1 Without prior written consent from the Copyright Holder, the Software&lt;br /&gt;
       or its derivative works shall not be used for any commercial activity.&lt;br /&gt;
   2.2 For commercial use authorization, please contact:&lt;br /&gt;
       Shenzhen Lingke Network Technology Co., Ltd.&lt;br /&gt;
&lt;br /&gt;
3. Disclaimer&lt;br /&gt;
   THE SOFTWARE IS PROVIDED &amp;quot;AS IS&amp;quot;, WITHOUT WARRANTY OF ANY KIND, EXPRESS&lt;br /&gt;
   OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF&lt;br /&gt;
   MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.&lt;br /&gt;
   IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES&lt;br /&gt;
   OR OTHER LIABILITY ARISING FROM THE USE OF THE SOFTWARE.&lt;br /&gt;
&lt;br /&gt;
4. Termination&lt;br /&gt;
   If the Licensee violates any provision of this License, their rights&lt;br /&gt;
   under this License shall automatically terminate, and they must&lt;br /&gt;
   immediately cease using and destroy all copies of the Software.&lt;br /&gt;
&lt;br /&gt;
For commercial use authorization, please contact:&lt;br /&gt;
Shenzhen Lingke Network Technology Co., Ltd.&lt;/div&gt;</description>
			<pubDate>Thu, 09 Jul 2026 05:21:46 GMT</pubDate>
			<dc:creator>Dream pep</dc:creator>
			<comments>https://support.lingke.ink/%E8%AE%A8%E8%AE%BA:LL-1.0</comments>
		</item>
</channel></rss>