Syngnat
|
f696f52470
|
🐛 fix(table-designer): 修复金仓新增字段保存失败
Fixes #305
|
2026-04-11 21:53:51 +08:00 |
|
Syngnat
|
60b63d7a22
|
✨ feat(icon): 补充 SQL Server 数据库图标
Fixes #287
|
2026-04-11 21:53:50 +08:00 |
|
Syngnat
|
1f617f9d53
|
✨ feat(storage): 支持自定义数据目录与显式迁移
Fixes #242
|
2026-04-11 21:53:50 +08:00 |
|
DurianPankek
|
c810d999bd
|
Merge 803c33b306 into 0009c98c7e
|
2026-04-11 13:23:51 +08:00 |
|
folltoshe
|
0009c98c7e
|
feat(window): 在全屏状态下时隐藏圆角
|
2026-04-11 04:40:35 +08:00 |
|
DurianPankek
|
803c33b306
|
🐛 fix(window): 修复 mac 原生全屏下输入时窗口丢失
|
2026-04-10 19:43:15 +08:00 |
|
Syngnat
|
1d882d089f
|
🐛 fix(driver): 修复可选驱动构建时 Go PATH 检测误判 (#353)
## 背景
在 `dev-ac6ef06` 构建中,安装 SQL Server 等可选驱动时,GoNavi 在部分 macOS 环境会误报“当前环境未安装
Go”。
实际问题并非未安装 Go,而是应用从图形界面启动时没有继承终端中的 PATH,导致 `brew` 安装的 Go(如
`/opt/homebrew/bin/go`)无法被 `exec.LookPath("go")` 发现,进而阻塞可选驱动代理的本地构建流程。
材料参考:
<img width="2142" height="1460" alt="连接失败"
src="https://github.com/user-attachments/assets/0844cf97-5720-4677-a806-65e056fa9766"
/>
<img width="289" height="74" alt="image"
src="https://github.com/user-attachments/assets/3e98e482-f74d-4b68-8605-b712fbdb98c1"
/>
## 关键修改
- 为可选驱动源码构建新增 `go` 可执行文件解析逻辑,避免仅依赖当前进程 PATH
- 增加常见 Go 安装路径兜底:
- `/opt/homebrew/bin/go`
- `/usr/local/go/bin/go`
- `/usr/local/bin/go`
- 在常见路径未命中时,再回退到登录 shell 中执行 `command -v go`
- 解析 shell 输出时逐行筛选真实存在的路径,避免 shell 启动脚本输出额外提示导致误判
- 为 Go 探测逻辑补充单元测试,覆盖:
- shell 列表去重与顺序
- 常见路径回退
- shell 回退
- 噪音输出过滤
## 影响范围
- 仅影响可选驱动代理的源码构建阶段
- 不影响已内置驱动
- 不影响普通数据库连接、前端界面和其他业务逻辑
- 主要改善 macOS 图形界面启动应用时的 Go 环境探测兼容性
## 验证方式
已执行:
```bash
go test ./internal/app
```
## 修复效果
<img width="1114" height="784" alt="已连接1"
src="https://github.com/user-attachments/assets/72f4bb89-6c0b-4632-9098-3ce5b865e288"
/>
<img width="1032" height="791" alt="已连接2"
src="https://github.com/user-attachments/assets/6330cff2-c13b-4a9b-852d-8fc234819f81"
/>
## 验证点:
- 终端内已安装 Go 且可执行时,保持现有行为
- GUI 进程未继承 PATH 时,可通过常见目录或 shell 回退找到 Go
- shell 启动脚本存在额外输出时,仍可解析到真实 Go 路径
## 风险与回滚
### 风险:
- 仅新增本地命令探测与路径兜底逻辑,影响面较小
- 若用户使用非常规 Go 安装方式,仍可能需要后续补充手动指定 Go 路径的正式方案
### 回滚:
- 可直接回退本 PR 中 internal/app/methods_driver.go 与对应测试变更
## 备注
当前使用中还观察到“驱动下载链路域名不可达”在已有网络代理时可能出现误报,但该问题既不影响当前 PATH
修复的有效性,也并不阻塞下载,所以未纳入本次修改范围。
|
2026-04-09 17:17:15 +08:00 |
|
DurianPankek
|
19da7fc66c
|
🐛 fix(driver): improve Go PATH detection for optional driver builds
|
2026-04-09 16:16:22 +08:00 |
|
Syngnat
|
c1877ea013
|
🐛 fix(ci): 修复 dev-latest 历史 release 残留导致的重复发布问题
- 将 dev release 清理逻辑改为枚举所有历史 release
- 删除全部 tag_name=dev-latest 的 draft 与 prerelease 残留
- 避免只删除单个 release 时遗留旧的 Dev Build 页面项
- 保留后续 tag ref 清理与重新发布流程
- 确保 dev 发布前仓库中只保留一个有效的 dev-latest release
|
2026-04-09 13:34:41 +08:00 |
|
Syngnat
|
60dbb8a559
|
🐛 fix(ci): 修复 dev 预发布构建时间格式并收敛并发运行
- 为 dev-build workflow 增加同分支并发互斥配置
- 避免多个 dev 运行同时操作 dev-latest release
- 新增构建时间格式化步骤,将时间统一输出为 yyyy-MM-dd HH:mm:ss
- 将 release 文案中的构建时间改为引用格式化结果
- 保持现有 dev 版本号与 release/tag 清理逻辑不变
|
2026-04-09 13:31:01 +08:00 |
|
Syngnat
|
67fe3e3017
|
🐛 fix(ci): 修复 dev 预发布因重复 tag 导致的发布失败
- 将 dev-latest 预发布前的清理步骤改为 actions/github-script
- 显式按 GitHub API 删除已存在的 release 与 tags/dev-latest 引用
- 移除对未维护 delete-tag-and-release 动作的依赖
- 保持 dev-latest 固定预发布标签语义不变
- 避免 softprops/action-gh-release 在 finalizing release 阶段因 tag_name already_exists 失败
|
2026-04-09 12:30:13 +08:00 |
|
Syngnat
|
35944d58f8
|
合并拉取请求 #344
🐛 fix(connection-modal): 修复连接配置输入框自动首字母大写问题
|
2026-04-08 19:39:07 +08:00 |
|
DurianPankek
|
5c2509c37f
|
🐛 fix(connection-modal): 修复连接配置输入框自动首字母大写问题
|
2026-04-08 19:11:18 +08:00 |
|
Syngnat
|
8e1b01b550
|
Revert "🐛 fix(connection-modal): 修复连接配置输入框自动首字母大写问题 (#344)"
This reverts commit 29fa5eb6df.
|
2026-04-08 10:41:34 +08:00 |
|
Syngnat
|
29fa5eb6df
|
🐛 fix(connection-modal): 修复连接配置输入框自动首字母大写问题 (#344)
合并外部贡献者 DurianPancake 的 PR #344 修改(解决冲突后)。
主要改动:
- 新增 noAutoCapInputProps 常量,统一关闭 autoCapitalize/autoCorrect/spellCheck
- 在所有文本输入组件(Input/Input.Password/Input.TextArea)应用该属性
- 增加弹窗级 MutationObserver 兜底,对动态 DOM 元素补充禁用属性
影响范围: 仅前端连接配置弹窗内的文本输入行为,后端逻辑不变
|
2026-04-08 10:40:16 +08:00 |
|
Syngnat
|
7c6391af3d
|
⚡️ perf(ai-chat): 优化会话持久化序列化方式
- 序列化方式:AISaveSession 从 MarshalIndent 改为 Marshal
- 存储优化:移除不必要的缩进格式化,减少磁盘占用
- 性能提升:紧凑 JSON 序列化速度更快,减少内存分配
|
2026-04-08 10:30:51 +08:00 |
|
Syngnat
|
5746796bc2
|
🐛 fix(export): 修复导出时间时区误偏移 (#345)
## 背景
导出查询结果时,时间字段在部分场景出现错误时区偏移。典型表现为数据库中正确的本地时间在导出后被额外偏移(例如 +8 小时),影响
JSON/文本类导出的可用性与可信度。
## 变更内容
- 修复导出时间解析逻辑,区分“带时区时间字符串”和“无时区时间字符串”的处理方式:
- 带时区值按其时区语义解析;
- 无时区值按本地语义解析,避免误按 UTC 导致二次偏移。
- 统一导出时间格式化行为,避免在导出阶段再次进行不必要的时区换算,确保 `timestamp without time zone`
等场景保持原始钟表时间。
- 补充回归测试,覆盖以下关键路径:
- 无时区时间字符串导出不偏移;
- RFC3339 字符串解析后格式化行为稳定;
- `time.Time` 导出保持预期钟表时间;
- JSON 导出时间字段行为一致。
## 影响范围
- 主要影响导出链路中的时间字段格式化(CSV/JSON/MD/HTML/XLSX 对应后端写出逻辑)。
- 不涉及连接协议、SQL 执行流程和驱动安装机制。
## 验证方式
- 已通过:
- `go test ./internal/app`
- `go test -race ./internal/app`
- `go test ./...`
## 风险与说明
- 已确认并修复本次问题对应的导出时区偏移路径。
- 当前系统仍存在“基于值推断时间语义”的历史设计约束;这里的“元数据驱动”是指基于数据库列定义类型(如 `timestamp
with/without time zone`、`datetimeoffset` 等)来决定是否允许时区换算。
- 上述历史约束并非本次修改引入。后续建议按数据库类型矩阵(DB matrix)逐库适配元数据策略,以降低跨数据库兼容风险与误判风险。
## 相关截图
- 问题对比:问题1、问题2
<img width="419" height="170" alt="问题1"
src="https://github.com/user-attachments/assets/a4d9f949-1f5c-4dcc-b3fa-13082347fec3"
/>
<img width="736" height="130" alt="问题2"
src="https://github.com/user-attachments/assets/b1d5b9e4-7f79-4929-875c-a422d1fbe51b"
/>
---
- 修复后:修复1、修复2
<img width="548" height="130" alt="修复1"
src="https://github.com/user-attachments/assets/1ee0a91d-2dec-4060-9c8e-9817f437dae7"
/>
<img width="486" height="128" alt="修复2"
src="https://github.com/user-attachments/assets/baa8cb25-b08a-4f31-94d8-a4a50753fb97"
/>
|
2026-04-08 10:23:27 +08:00 |
|
DurianPankek
|
3ec7c9be9d
|
🐛 fix(export): 修复导出时间时区误偏移
|
2026-04-07 19:38:16 +08:00 |
|
辣条
|
ac6ef06413
|
feat(app): 合并配置密文存储、数据表增强与驱动相关修复 (#339)
## 背景
本次合并汇总了 5 类功能,并对冲突处理后的代码进行了回归审查,目标是将配置密文存储能力、数据表体验增强及驱动相关修复一并并入。
## 本次变更
1. 修复 Data Viewer 多列排序状态残留,避免排序条件切换后失效。
2. 收紧 MongoDB 可选驱动支持区间,仅支持 1.17.x 与 2.x,并补齐对应版本识别与导入校验。
3. 完成配置密文存储前后端闭环,包括:
- 新增密钥存储基础设施与状态枚举
- 拆分 AI Provider 元数据与密钥存储
- 暴露连接配置、代理配置相关密钥存储 API
- 前端状态迁移为不保存明文密钥
- 通过连接配置 ID 路由 RPC 配置
- 修复密文编辑与状态残留问题
4. 增强 DataGrid 显示能力,补充展示策略并支持行级 SQL 复制。
5. 修复本地驱动导入版本识别与数据库连接校验遗漏,补齐 ClickHouse 等相关校验路径。
## 附带修复
- 修复 Claude CLI 在 Windows 下的测试稳定性问题。
## 验证情况
- `go test ./...`
- `go build ./...`
- `npm test -- src/store.test.ts src/utils/dataGridDisplay.test.ts
src/components/dataGridCopyInsert.test.ts
src/utils/connectionRpcConfig.test.ts
src/utils/connectionSecretDraft.test.ts src/utils/
providerSecretDraft.test.ts src/utils/customConnectionDsn.test.ts
src/utils/aiProviderEditorState.test.ts
src/utils/browserMockConnections.test.ts
src/utils/dataViewerAutoFetch.test.ts`
- `npm run build`
## 说明
- 其他功能主要依据提交差异、代码检查与自动化测试完成回归确认。
- 当前未发现因冲突处理导致的明确编译问题、功能失效或目标偏离
|
2026-04-05 12:42:59 +08:00 |
|
tianqijiuyun-latiao
|
ac0b6c05e8
|
🐛 fix(database): 修复本地驱动导入版本识别与连接校验遗漏
- MongoDB 本地导入按所选版本解析目录与压缩包
- ClickHouse 连接测试补充 query path 校验
- 补充驱动版本与查询路径回归测试
|
2026-04-05 12:09:06 +08:00 |
|
tianqijiuyun-latiao
|
37b3c78049
|
✨ feat(datagrid): 增强数据表显示与行级SQL复制
- 新增 DataGrid 竖向分隔线与列宽模式配置并持久化\n- 支持复制 INSERT/UPDATE/DELETE 并按主键或唯一键生成条件\n- 补充外观配置与 SQL 复制相关测试
|
2026-04-05 12:06:40 +08:00 |
|
tianqijiuyun-latiao
|
255cc14bf6
|
🐛 fix(config-secret-storage): 修复密文编辑与状态残留问题
- 修复自定义连接编辑时已保存 DSN 无法留空沿用的问题
- 重置 AI 供应商编辑态与清空密钥开关,避免关闭后状态残留
- 对齐浏览器 mock 复制连接的 config.id 语义并补充回归测试
|
2026-04-05 11:59:38 +08:00 |
|
tianqijiuyun-latiao
|
4718755208
|
✨ feat(security): 完成配置密文存储前后端闭环
- 补齐连接与代理密文字段的保留替换清空语义
- 接通保存复制删除导入接口并返回 secretless 视图
- 刷新 Wails 绑定并补充实现留痕文档
|
2026-04-05 11:52:59 +08:00 |
|
tianqijiuyun-latiao
|
91b5b85904
|
♻️ refactor(security): 通过连接配置 ID 路由 RPC 配置
|
2026-04-05 11:42:28 +08:00 |
|
tianqijiuyun-latiao
|
c842201bf4
|
✨ feat(security): 前端状态迁移至无明文密钥存储
|
2026-04-05 11:40:20 +08:00 |
|
tianqijiuyun-latiao
|
263db6bf30
|
✨ feat(security): 暴露连接配置与代理的密钥存储 API
|
2026-04-05 11:39:54 +08:00 |
|
tianqijiuyun-latiao
|
b5e8f5c022
|
✨ feat(security): 新增连接配置与代理的密钥仓库
|
2026-04-05 11:39:34 +08:00 |
|
tianqijiuyun-latiao
|
b62d22395b
|
✨ feat(security): 拆分 AI 供应商元数据与密钥存储
|
2026-04-05 11:39:15 +08:00 |
|
tianqijiuyun-latiao
|
f74270d585
|
🐛 fix(security): 新增密钥存储状态枚举
|
2026-04-05 11:38:56 +08:00 |
|
tianqijiuyun-latiao
|
ef64a24e01
|
✨ feat(security): 新增密钥存储基础架构
|
2026-04-05 11:38:41 +08:00 |
|
tianqijiuyun-latiao
|
c1266c225a
|
🐛 fix(ai/provider): 修复 Claude CLI 在 Windows 上的测试稳定性
|
2026-04-05 11:33:39 +08:00 |
|
tianqijiuyun-latiao
|
acee1a06e8
|
fix(driver): 收紧 MongoDB 驱动支持区间
|
2026-04-05 11:32:41 +08:00 |
|
tianqijiuyun-latiao
|
eddb9f38c9
|
🐛 fix(data-viewer): 修复多列排序状态残留导致排序失效
- 将表格排序状态改为按当前 sorter 结果重建\n- 避免取消或切换多列排序后保留失效字段\n- 抽取排序状态归一化工具供数据表复用
|
2026-04-05 11:32:37 +08:00 |
|
Syngnat
|
fbda6917f7
|
🐛 fix(ai-chat): 修复 DeepSeek 回显引导提示词并优化收敛策略
- 删除 ≥5 轮注入 system 提示的逻辑(部分模型会将其当作对话内容输出)
- 改为 ≥10 轮时移除 tools 参数,从物理层面终止工具调用循环
|
2026-04-02 11:04:57 +08:00 |
|
Syngnat
|
b022cd63e5
|
🐛 fix(ai-chat): 修复重新生成时缺少状态过渡动画的问题
- handleRetryMessage 补齐 connecting 过渡消息(波纹动画),与 handleSend 流程一致
- 重试时同步重置工具调用计数器,防止继承旧计数导致过早熔断
|
2026-04-02 10:56:27 +08:00 |
|
Syngnat
|
9eb42565f1
|
🐛 fix(ai-chat): 修复工具调用无限循环与写操作误报执行失败问题
- 循环熔断:新增全局工具调用总轮次上限(15轮),防止 DeepSeek 等模型无限循环
- 软引导:工具调用 ≥5 轮时注入 system 提示引导模型尽快收敛输出
- LIMIT 修复:execute_sql 不再对 UPDATE/DELETE/INSERT 等写操作追加 LIMIT 50
- 语法防御:去除 SQL 末尾分号防止拼接出 "; LIMIT 50" 的无效语法
|
2026-04-02 10:49:11 +08:00 |
|
Syngnat
|
6d533167da
|
✨ feat(sidebar/table-overview): 优化右键菜单交互,增加危险操作二级分类防误触
- 菜单增强:为数据库、表、视图、函数等底层对象节点新增「危险操作」二级子菜单
- 误触防护:将明确破坏性的「删除表」、「删除数据库」等入口移至更深层级进行视觉隔离
- UI 交互:引入 WarningOutlined 图标单独高亮标识风险区域
- 统一作用域:同步变更至侧边栏连接树 (Sidebar) 和表数据概览 (TableOverview) 的上下文菜单
|
2026-04-02 10:11:33 +08:00 |
|
Syngnat
|
f992ad72e6
|
✨ feat(mongodb): 支持无认证模式连接低版本 MongoDB 实例
- 连接表单:验证方式新增"无认证 (None)"选项,MongoDB 用户名改为非必填
- URI 构建:当 MongoAuthMechanism 为 NONE 时跳过 user/password/authSource/authMechanism
- 兼容优化:无用户名时不再默认设置 authSource=admin,避免驱动对无密码实例发起认证
- 双版本同步:mongodb_impl.go 与 mongodb_impl_v1.go 同步修改
- refs #303
|
2026-04-01 16:46:27 +08:00 |
|
Syngnat
|
5c0f6f8ff4
|
🐛 fix(data-grid): 修复数据预览面板日期格式化、JSON切换失效及幽灵变更计数问题
- 日期时间字段预览时通过 normalizeDateTimeString 格式化带时区的 ISO 格式
- 切换单元格时始终更新预览值,用 dataPanelOriginalRef 替代 suppress 机制判断 dirty
- handleCellSave 增加根源级变更检测,与原始 data 逐字段比较后才写入 modifiedRows
- 英文消息 "No changes to commit" 改为中文 "没有可提交的变更"
- refs #301
|
2026-04-01 16:21:57 +08:00 |
|
Syngnat
|
1eb517f083
|
♻️ refactor(table-designer): 按索引类别精确分类索引方法类型选项
- MySQL InnoDB:所有索引类别均为固定方法(BTREE/FULLTEXT/RTREE),移除无意义的"默认"选项
- PostgreSQL:普通索引保留全部方法选项,主键和唯一索引固定为 BTREE
- 新增 getFixedIndexType 辅助函数,切换索引类别时自动设置对应的固定方法类型
- getIndexTypeOptions 接受 kind 参数,按类别动态返回精确的选项列表
- 切换类别时若当前方法不在新选项中,自动重置为合法值
- refs #299
|
2026-04-01 16:04:22 +08:00 |
|
Syngnat
|
02fa0aef46
|
🔥 remove(table-designer): 移除 MySQL 索引类型中不支持的 HASH 和 RTREE 选项
- MySQL InnoDB 引擎不支持手动创建 HASH/RTREE 索引,执行后会静默降级为 BTREE
- 从 MYSQL_INDEX_TYPE_OPTIONS 中移除 HASH 和 RTREE,避免用户误选导致修改"不生效"
- MySQL 下仅保留 DEFAULT/BTREE/FULLTEXT/SPATIAL 四种索引类型
- refs #298
|
2026-04-01 15:54:29 +08:00 |
|
Syngnat
|
f7107a1625
|
🐛 fix(data-grid): 修复单元格编辑值丢失及日期选择器滚动偏移问题
- 移除 Form.Item 的 preserve={false},修复嵌套字段名下编辑后值变为 undefined 的问题
- 将表单值初始化移至 useEffect([editing]),确保每次编辑时从 record 重新读取并覆盖旧值
- 新增 cellRef 绑定单元格 DOM,用于定位滚动容器
- DatePicker/TimePicker 面板打开时在 ant-table-wrapper 上拦截 wheel 事件,阻止表格滚动导致选择器漂移
- 面板关闭时自动移除 wheel 事件监听,恢复正常滚动
- refs #297
|
2026-04-01 15:45:50 +08:00 |
|
Syngnat
|
08ab06c038
|
✨ feat(sidebar/table-overview): 优化侧边栏交互并新增表概览列表视图
- 修复连接刷新后数据库节点无法再次展开的问题,刷新时清除子节点 expandedKeys/loadedKeys/loadingRef
- 表概览由双击改为单击"表(N)"分组节点打开,双击仅触发展开/折叠
- 使用 clickTimerRef 延时防抖区分单击与双击事件,避免双击同时打开表概览
- 表概览新增列表视图模式,展示表名、注释、行数、数据大小、索引大小、引擎等列
- 工具栏新增卡片/列表视图切换按钮,两种视图共享搜索、排序和右键菜单
- refs #296
- refs #324
|
2026-04-01 15:29:42 +08:00 |
|
Syngnat
|
3402b56fdb
|
🎨 style(data-grid): 重构筛选面板为 flex 分区布局
- 外层改为 flex column,拆分为可滚动内容区(maxHeight: 200px)和固定操作栏
- "添加排序"从内容区提升到操作栏,条件渲染依赖 onSort 存在性
- "添加条件"使用 primary ghost 按钮增强辨识度
- refs #295
|
2026-04-01 15:03:02 +08:00 |
|
Syngnat
|
2c2baca69f
|
🐛 fix(data-grid): 修复日期时间字段二次编辑时日历残留上次选择日期标记
- Form.Item 默认 preserve={true},DatePicker 卸载后表单仍保留旧 dayjs 值
- 再次进入编辑时 DatePicker 读取到残留值,导致日历面板显示上次选择的日期圆圈
- 设置 preserve={false} 确保每次编辑态卸载后清除字段值,消除残留标记
- refs #290
|
2026-04-01 14:53:44 +08:00 |
|
Syngnat
|
e464c2cce1
|
🐛 fix(data-grid): 修复日期时间类型字段编辑交互问题并中文化日期选择器
- 修复"此刻"按钮点击后自动提交的问题,改为自定义按钮仅填值、需点击"确定"才保存
- 修复 datetime 编辑态点击外部后不退出的问题,通过 onBlur + pickerOpenRef 兜底
- 全局配置 dayjs 中文 locale,日期选择器月份/星期等文本显示为中文
- 为 time/date/year 类型 picker 添加 onBlur 兜底,确保焦点离开后退出编辑
- save 函数增加 editing 守卫和 catch 兜底,防止重复保存或异常时卡死编辑态
- refs #289
|
2026-04-01 14:49:28 +08:00 |
|
Syngnat
|
15f72c013d
|
📝 docs(readme): 新增项目 Star 增长趋势图与动态状态徽章
- 状态徽章:顶部引入 Shields.io 徽章,实时展示当前总 Star 数与全资源累计下载量
- 增长趋势:底部区域新增 Star History 的动态增长曲线图表
- 兼容性修复:将 HTML `<picture>` 语法回退为标准 Markdown 图片格式,解决部分本地开发工具的预览问题
- 国际化同步:中美双语(README.md 与 README.zh-CN.md)同步部署展示更新
|
2026-04-01 14:04:26 +08:00 |
|
Syngnat
|
c2c8870841
|
📝 docs(readme): 新增项目 Star 增长趋势图与动态状态徽章
- 状态徽章:顶部引入 Shields.io 徽章,实时展示当前总 Star 数与全资源累计下载量
- 增长趋势:底部区域新增 Star History 的动态增长曲线图表
- 兼容性修复:将 HTML `<picture>` 语法回退为标准 Markdown 图片格式,解决部分本地开发工具的预览问题
- 国际化同步:中美双语(README.md 与 README.zh-CN.md)同步部署展示更新
|
2026-04-01 14:03:14 +08:00 |
|
Syngnat
|
4f7ac7149a
|
📝 docs(readme): 新增项目 Star 增长趋势图与动态状态徽章
- 状态徽章:顶部引入 Shields.io 徽章,实时展示当前总 Star 数与全资源累计下载量
- 增长趋势:底部区域新增 Star History 的动态增长曲线图表
- 兼容性修复:将 HTML `<picture>` 语法回退为标准 Markdown 图片格式,解决部分本地开发工具的预览问题
- 国际化同步:中美双语(README.md 与 README.zh-CN.md)同步部署展示更新
|
2026-04-01 13:52:57 +08:00 |
|
tianqijiuyun-latiao
|
8d8af530a7
|
Merge remote-tracking branch 'upstream/dev' into feature/20260327_opt
# Conflicts:
# frontend/src/components/DataGrid.tsx
|
2026-03-31 12:36:20 +08:00 |
|