Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
17 commits
Select commit Hold shift + click to select a range
8379b66
feat(downloadkit): define HardwareSession types and DeviceSelector in…
bookshiyi Jun 18, 2026
787fe1e
feat(downloadkit): add DeviceIdentityStore for hardware session persi…
bookshiyi Jun 18, 2026
3fba104
feat(downloadkit): add SerialSelector, UsbSelector, HidSelector imple…
bookshiyi Jun 18, 2026
dd4e24a
feat(downloadkit): add HardwareSession singleton with acquire/release…
bookshiyi Jun 18, 2026
48c7ae4
refactor(downloadkit): strip WebSerialTransport to pure I/O, update H…
bookshiyi Jun 18, 2026
6ab38a4
refactor(downloadkit): strip WebUsbTransport and WebHidTransport to p…
bookshiyi Jun 18, 2026
5447158
refactor(downloadkit): simplify Transport interface to only core I/O …
bookshiyi Jun 18, 2026
2d72f4a
refactor(downloadkit): delete serialReconnectManager, simplify Sessio…
bookshiyi Jun 18, 2026
aa24ba8
feat(downloadkit): integrate HardwareSession into flasherFacade, repl…
bookshiyi Jun 18, 2026
4dae835
feat(downloadkit): add connectionType to plugins, tryRestore to Hardw…
bookshiyi Jun 18, 2026
e44852a
fix(downloadkit): fix duplicate declaration, enrich device identity, …
bookshiyi Jun 18, 2026
4cb3d13
fix(downloadkit): persist lastConfig on first connect, implement USB/…
bookshiyi Jun 18, 2026
bb7fca0
refactor(downloadkit): rename HardwareSession -> FlasherSession
bookshiyi Jun 18, 2026
56508e5
增加.env.example追踪
bookshiyi Jun 18, 2026
e1d52c0
更新编译/构建环境配置,增加dependabots
bookshiyi Jun 18, 2026
2720e0d
增加issy功能
bookshiyi Jun 18, 2026
a651835
Create 0002-被动断开后重连检测无效.md
bookshiyi Jun 18, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions .env.example
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# Sentry DSN — 从 https://sentry.io 项目设置中获取
# Web 层(Vite 使用,带 VITE_ 前缀才会注入到前端代码)
VITE_SENTRY_DSN=

# Electron main 进程(Node.js 环境,不需要 VITE_ 前缀)
SENTRY_DSN=

# Sentry Source Map Upload(CI 上传用,本地开发不需要)
SENTRY_ORG=
SENTRY_PROJECT=
SENTRY_AUTH_TOKEN=
14 changes: 14 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
version: 2
updates:
- package-ecosystem: "pnpm"
directory: "/"
schedule:
interval: "weekly"
open-pull-requests-limit: 10
versioning-strategy: increase

- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "weekly"
open-pull-requests-limit: 5
2 changes: 1 addition & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ jobs:

- uses: actions/setup-node@v4
with:
node-version: "22"
node-version: "24"
cache: "pnpm"

- name: Install
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/deploy-pages.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ jobs:

- uses: actions/setup-node@v4
with:
node-version: "22"
node-version: "24"
cache: "pnpm"

- name: Install
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ coverage
# Environment files
.env
.env.*
!.env.example

# Security
*.pem
Expand Down
14 changes: 14 additions & 0 deletions .issy/issues/0001-welcome-to-issy.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
---
title: Welcome to issy
description: Your first issue in this repo
priority: medium
type: improvement
status: open
order: a0
created: 2026-06-18T09:37:43
---

## Details

- This issue was created automatically on first run.
- Edit it, close it, or delete it to get started.
13 changes: 13 additions & 0 deletions .issy/issues/0002-被动断开后重连检测无效.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
---
title: 被动断开后重连检测无效
priority: medium
type: bug
status: open
order: a1
created: 2026-06-18T10:56:31
---

## Details

downloadkit中,当用户连接串口后,如果被动断开(即拔出usb)可以检测到,但是当用户再次插入usb时没有检测到或者没有主动重连成功
目前在serial这个flaher模式下发现了,其他类型的flasher不确定
2 changes: 1 addition & 1 deletion .mise.toml
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
[tools]
node = "24"
pnpm = "11.4.0"
pnpm = "11.6.0"
6 changes: 3 additions & 3 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
所有命令在 `weblink/` 目录下执行:

```bash
pnpm install # 安装全部依赖(pnpm 9,Node 22
pnpm install # 安装全部依赖(pnpm 11,Node 24
pnpm dev # 启动 apps/home 聚合首页
pnpm dev:legacy # 启动根目录遗留 Vue 应用(src/)
pnpm build # 全量构建所有包
Expand Down Expand Up @@ -50,7 +50,7 @@ ESLint:Vue flat config + `@vue/eslint-config-prettier/skip-formatting`(格

## CI

`.github/workflows/ci.yml`:pnpm 9 + Node 22,执行顺序为 `lint`(`continue-on-error: true`)→ `test` → `build`。lint 失败不阻塞构建。
`.github/workflows/ci.yml`:pnpm 11 + Node 24,执行顺序为 `lint`(`continue-on-error: true`)→ `test` → `build`。lint 失败不阻塞构建。

## 技术栈

Expand All @@ -61,6 +61,6 @@ ESLint:Vue flat config + `@vue/eslint-config-prettier/skip-formatting`(格

## 注意事项

- Vue DevTools 默认关闭,通过 `VITE_VUE_DEVTOOLS=1` 环境变量启用(Node 22 下有 localStorage shim 兼容处理)
- Vue DevTools 默认关闭,通过 `VITE_VUE_DEVTOOLS=1` 环境变量启用(Node 24 下有 localStorage shim 兼容处理)
- `electron/` 是桌面壳代码,与 web 应用分开,当前未集成到 pnpm workspace
- Changesets 配置 `commit: false`、`access: "restricted"`,基线分支为 `main`
10 changes: 10 additions & 0 deletions kits/downloadkit/src/features/flasher/pages/FlasherPage.vue
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ import {
prepareFlasherForCurrentSelection,
startFlash,
cancelDownload,
tryRestoreConnection,
} from "../services/flasherFacade";
import { flasherLogger } from "../services/flasherLogger";
import { useUrlParams } from "../../../url-params/useUrlParams";
Expand Down Expand Up @@ -336,6 +337,15 @@ onMounted(async () => {
}
}

// 页面加载后尝试静默恢复上次的设备连接
if (!hasUrlParams) {
try {
await tryRestoreConnection();
} catch (error) {
flasherLogger.warning(error instanceof Error ? error.message : String(error));
}
}

store.setFlasherRuntime(getFlasherRuntimeInfo());
isHydratingPersistence.value = false;

Expand Down
Loading
Loading