14 Commits
Author SHA1 Message Date
TanXinandTanXin 52fec4e00f release: 发布 v1.12.0 分享审计保留与清理完善版本 (#103)
## 版本内容

### 分享审计保留与清理
- 审计记录保留与清理能力:终态会话由所有者整体清空(写入墓碑事件保留追责线索)或导出完整 JSON 归档;终态满默认 90 天由 alarm
自动清理
- 审计保留期创建时自定义(7–365 天,白名单校验,默认 90)
-
清理留痕集中展示:清理时间与方式(手动/自动)同步用户库(`audit_purged_at`/`audit_purge_type`),折叠面板展示;已清理分享等同删除效果,不再提供查看审计入口
- 手动清空后取消已排期的自动清理闹钟;保留期服务端校验统一为 7–365 天;修复闹钟设置失败导致"有排期无闹钟"的幽灵状态

### 工程与质量
- 新增审计清理回归测试 8 用例(墓碑隔离、归属/终态校验、同步失败容错、排期回滚、留痕接缝、迁移幂等)
- UserDBDO SQL 查询类型化封装(`query<T>`/`one<T>`),消除 22 处 `as unknown as`
- 测试类型检查纳入门禁:`tests/` 拆分
`tsconfig.worker`/`tsconfig.frontend`(workers-types 与 DOM lib 的 Element
接口冲突无法单配置共存)
- 弱随机数加固(会话名 `crypto.randomUUID`);pnpm
供应链策略(`blockExoticSubdeps`/`minimumReleaseAge` 7 天/`no-downgrade`);CI
权限收敛 `contents: read`;`.gitleaks.toml` 误报豁免
- pi-lens 项目策略口径(AGENTS.md #31):XSS 类规则刻意不做项目级禁用,仅行内逐处豁免

## 提交列表

- 1c38c7a `release: 发布 v1.12.0 分享审计保留与清理完善版本`
- 4dd7c63 `feat: 审计清理回归测试、UserDBDO 类型化查询与测试类型门禁`
- 50389f3 `fix: 消除 pi-lens 剩余告警——SAFETY 注释/测试类型/XSS 抑制/空 catch 说明`
- 23a3e8e `chore: 代码质量审查整改——弱随机数/测试类型检查/供应链加固等 7 项`
- 1cf0ef9 `chore: 配置 pi-lens 项目策略降低风格类噪音并清理用户库遗留项`
- 0f27a50 `fix: 审计清理后完全隐藏分享卡片,仅保留集中式清理记录`
- 7c42e8e `feat: 审计清理改为删除效果并新增集中式清理记录留痕区`
- a3847ee `fix: 审计清理后改用折叠面板展示清理记录并补齐中英文词条`
- b730219 `fix: 审计保留期服务端校验统一为 7–365 天并修复清理闹钟静默失败`
- a68a6c8 `feat: 分享审计保留期支持创建时自定义(7–365 天)`
- 158b205 `fix: 手动清空审计后取消已排期的自动清理唤醒`
- 618f63c `feat: 分享审计记录保留与清理能力(清空/导出/自动保留期)`

## 验证结果

- typecheck 全绿(src + tests.worker + tests.frontend + frontend 四段)
- 全量测试 644/644(54 文件)
- build:frontend 构建成功并内联
- 关联 Issue/PR:无(基于 v1.11.0 #102)

---------

Co-authored-by: TanXin <tanxin@example.com>
2026-08-26 12:35:58 +08:00
TanXinandTanXin 6374080281 release: 发布 v1.10.2 工作流和文档更新版本 (#97)
## 版本内容

v1.10.2 为文档与 CI 工作流更新版本(无代码变更),包含以下提交:

| 提交 | 说明 |
| --- | --- |
| `11149d7` | docs: 全面更新项目文档并精简 README 结构 |
| `2b36ff4` | ci: 修复文档变更误触发部署的 paths-ignore 作用域 |
| `ee8f048` | ci: 按 SHA 锁定 GitHub Actions 引用以加固供应链 |
| `1f2a6b7` | docs: 完善发布流程规范(release 提交与 PR 标题主题化) |
| `cbdae18` | release: 发布 v1.10.2 工作流和文档更新版本 |

## 更新要点

**文档(README 中英双语)**
- 核心优势要点化:重点、全面、不啰嗦
- 架构说明仅保留系统架构图,移除核心组件 / SSH 协议实现 / 数据流三个小节
- 快速部署移除本地命令行部署方式,新增「可配置环境变量」汇总表
- 更新演示视频时长 8:27 → 19:48

**维护文档**
- AGENTS.md:补齐目录树、环境变量、tests/ 结构与新坑位(DNS 防重绑定、Biome、i18n、CI 作用域、发布流程主题化)
- tests/README.md:补充 7 个新测试文件与覆盖范围

**CI 修复与加固**
- `paths-ignore` 作用域:`*` 不匹配 `/`,原 `*.md` 仅忽略根目录文档,导致 `tests/README.md`
等子目录文档变更误触发完整部署;改为 `**/*.md` 等跨目录模式
- GitHub Actions 引用按 40 位 commit SHA 锁定(checkout / setup-node / pnpm /
configure-pages / upload-pages-artifact / deploy-pages),消除 tag 可变引用风险
- 新增 `.yamllint`:放宽行宽限制(SHA 引用天然超 80 字符)并统一 YAML 双引号规范,消除 pi-lens 格式化漂移

## 验证结果

- `pnpm run typecheck` 通过
- `pnpm test` 通过(47 个测试文件 / 603 个用例)
- `pnpm run build:frontend` 构建成功
- 两份 workflow 经 yamllint 校验无错误
- CI 完整门禁(typecheck + test + 可复现构建 + Playwright E2E + axe)在 `2b36ff4`
已绿色通过,`cbdae18` 运行中

---------

Co-authored-by: TanXin <tanxin@example.com>
2026-08-20 17:06:37 +08:00
TanXinandTanXin 4884b4b0a5 release: 发布 v1.7.2 Serv00 认证兼容版本 (#76)
## 发布概述

发布 CloudSSH v1.7.2,完善 Serv00 等仅通过 `keyboard-interactive` 暴露密码验证的 SSH
服务兼容性,并补强浏览器挑战确认、认证超时和跨浏览器回归覆盖。

## 主要变化

- 用户认证前发送 RFC 4252 `none` 探测,根据服务端实际声明的方法选择普通密码、公钥或
`keyboard-interactive`。
- 对认证失败响应未携带方法列表的非标准服务端保留有界兼容回退。
- 交互式挑战增加浏览器展示确认:先等待弹窗显示确认,再开始计算用户响应时间。
- 区分浏览器未展示挑战与用户已看到但未响应两类超时,认证超时使用正常关闭,避免旧版前端反复重连并触发服务商侧限制。
- 修复认证控制消息处理异常被误当作终端文本,以及无效挑战未可靠取消的问题。
- 新增 Chromium 与移动 WebKit 认证回归测试,并将 WebKit 纳入部署质量门禁。

## 版本与文档

- `package.json` 版本更新为 `1.7.2`。
- `CHANGELOG.md` 新增 `1.7.2` 发布记录(2026-08-12)。
- README 中英文更新日志入口保持有效。

## 验证

- Worker 与前端 TypeScript 类型检查通过
- 36 个测试文件、552 项单元与集成测试通过
- 38 项 Chromium/WebKit E2E 与无障碍测试通过
- 生产前端构建与 Worker 内嵌生成通过
- `git diff --check` 通过
- test 分支发布提交 `1708f18` 的 GitHub Actions 检查通过

## Issue 关联

关联 #67。本版本包含针对现有反馈的兼容性完善,但该 Issue 保持开放,等待用户在真实 Serv00
环境中升级验证并反馈后,再决定是否关闭。

---------

Co-authored-by: TanXin <tanxin@example.com>
2026-08-12 11:32:45 +08:00
TanXin 6fdb12a620 release: v1.4.3 — 完善上游同步结果反馈 (#58)
## 发布内容

- 解析 GitHub Fork 同步接口返回结果,明确区分无需同步、fast-forward、merge 和失败状态
- 在 Actions 日志及执行摘要中提供简洁中文反馈
- 冲突或权限异常时保留失败退出码,并输出可操作的诊断建议
- 减少同步结果中的 Emoji 图标,避免原始 JSON 带来的歧义
- 将项目版本升级至 `1.4.3` 并更新 CHANGELOG

## 验证

- 工作流 YAML 和内嵌 Bash 语法检查通过
- Worker 与前端 TypeScript 类型检查通过
- 30 个测试文件、463 项单元与集成测试通过
- 前端生产构建及内联产物生成成功
- 19 项 Chromium E2E 与无障碍测试通过
2026-08-02 09:35:04 +08:00
TanXin bba10313f0 release: v1.4.2 — 添加 Fork 上游自动同步 (#57)
## 发布内容

- 新增默认关闭的 Fork 上游自动同步 GitHub Actions 工作流
- 支持通过 `AUTO_SYNC_UPSTREAM=true` 开启每日定时同步,也可手动触发
- 使用 GitHub Fork 同步接口更新 `main`,无需 PAT,冲突时不强制覆盖
- 同步成功后由 Cloudflare Git 集成自动构建部署,无需额外部署开关
- 更新中英文 README,补充开启步骤、部署条件及冲突处理说明
- 将项目版本升级至 `1.4.2` 并更新 CHANGELOG

## 验证

- Worker 与前端 TypeScript 类型检查通过
- 30 个测试文件、463 项单元与集成测试通过
- 前端生产构建及内联产物生成成功
- 19 项 Chromium E2E 与无障碍测试通过
2026-08-02 00:05:44 +08:00
TanXinandTanXin 2a93044850 release: v1.3.2 — 完善质量门禁、服务器与 SFTP 管理及 Agent 上下文 (#46)
## 版本概述

发布 CloudSSH v1.3.2。

本版本建立完整的发布前质量门禁,增强服务器标签与分页、SFTP 多选批处理,并将终端选区询问 Agent
调整为可预览、可移除的上下文附件,避免未经用户补充问题就直接发送。

## 主要变更

### 质量门禁与可复现构建

- `test` 与 `main` 部署前执行冻结锁文件安装、Worker/前端类型检查、单元与集成测试、生产构建、Playwright 浏览器
E2E 和 axe 无障碍回归。
- 构建流程不再隐式安装依赖,并校验唯一 JS/CSS 入口,保证 Worker 内联产物可复现。
- 新增服务器分页、Agent 上下文及无障碍浏览器回归。

### 服务器管理

- 服务器配置支持最多 10 个规范化标签,并持久化到 UserDBDO SQLite。
- 服务器列表支持标签筛选,搜索与标签变化时自动回到第一页。
- 每页固定展示 9 张服务器卡片。

### SFTP 文件管理

- 支持普通单选、`Cmd/Ctrl` 切换选择、`Shift` 连选及全选。
- 支持批量文件下载和批量删除。
- 批量下载复用顺序下载队列,批量删除等待全部结果后统一刷新。

### Agent 终端选区上下文

- “询问 AI 助手”不再自动发送终端选区。
- 选区作为当前标签独立的上下文附件加入输入区,支持来源和大小展示、展开预览、替换及移除。
- 用户必须补充问题后才能发送;选区被明确标记为非可信分析数据,不代表操作授权,也不能覆盖用户指令。
- 补充成功发送清理、失败保留、会话隔离和无障碍回归。

### 文档与版本

- 根版本号升级至 `1.3.2`。
- 按 Keep a Changelog 规范更新 `CHANGELOG.md`。
- 同步更新中英文 README、测试说明和项目维护索引。

## 验证结果

- `pnpm run typecheck`:通过。
- `pnpm test`:26 个测试文件、421 个测试用例全部通过。
- `pnpm run build:frontend`:生产前端构建及 Worker HTML 内联成功。
- `pnpm run test:e2e`:4 项 Chromium E2E 与 axe 无障碍回归全部通过。
- `git diff --check`:通过。

## 备注

- 构建仍存在原有的 JavaScript 单包体积和动态/静态导入提示,不影响本次发布。

---------

Co-authored-by: TanXin <tanxin@example.com>
2026-07-28 13:57:03 +08:00
bc760c6566 feat: 新增 SFTP 文件管理功能、完善主题编辑器集成及设计新Logo (#19)
## SFTP 文件管理
- 新增 SFTP v3 文件管理器:目录浏览、上传/下载(并发+取消)、新建/重命名/删除
- SFTP 使用独立 WebSocket 通道,与终端会话并行运行互不干扰
- 修复多项兼容性问题:init 数组越界、channel ID 冲突、面板关闭断连、
  Shell 卡死、上传超 32KB 失败、文件大小显示错误、~ 路径解析等
- 添加 SFTP 心跳机制防止空闲断开,文件时间改为前端本地格式化显示
## 主题编辑器与 UI
- 主题编辑器集成 SFTP 文件管理器预览,面板常驻终端右侧并排显示
- 重新设计项目 Logo 云朵图标,优化 SVG 在不同背景下的显示效果
## 依赖升级
- xterm.js 5.x → 6.x,wrangler 3.x → 4.x,vitest 3.x → 4.x
- 移除 nodejs_compat compatibility flag,更新 compatibility_date
## 其他
- 修正 AGENTS.md 中 npm 为 pnpm 命令
- 优化 connectServer 按钮恢复逻辑
- 补充 SFTP 和 Logo 相关文档

---------

Co-authored-by: TanXin <tanxin@example.com>
Co-authored-by: David xu <xqdoo00o@gmail.com>
2026-07-02 11:23:36 +08:00
c58a264ebf feat: 终端主题系统、文件传输优化及多项 SSH 安全与稳定性修复 (#16)
将 test 分支的多个提交合并为一条,主要包含以下变更:
新功能
- 新增终端主题系统,支持自定义主题编辑器(可视化编辑、导入/导出、云端存储),统一前端 UI 与编辑器的 CSS 变量使用,消除所有硬编码颜色
- 添加 docs 根目录入口页,重定向到主题编辑器
性能优化
- 减少使用 slice 改为 subarray 以缩减开销
- 提高上传下载大文件的速度
Bug 修复
- 修复多个安全问题
- 修复加密密钥迁移导致用户空间 SSH 连接失败
- 修复 WebSocket 升级与 POST body 不兼容导致连接超时
- 修复 SSH 保活机制失效和终端输出换行问题
- 修复输入空格时误触发粘贴检测的问题
- 修复连接按钮文字不可见的问题
- 修复自定义主题导出逻辑
- 修复导入主题后刷新页面导致 WebSocket 断开的问题
- 修复 trz 上传大于 64K 文件卡住的问题
- 删除 connect() 中被 setupWebSocketHandlers 覆盖的 onclose 死代码
- 修复登录 Alpine 服务器显示错误 (#15)
文档与 CI
- 更新提交流程规范,禁止创建特性分支,所有变更直接提交到 test 分支
- 更新 README,补充自定义主题和主题编辑器说明
- 优化 GitHub Pages 部署时机,仅当 docs 目录变更时触发

---------

Co-authored-by: David xu <xqdoo00o@gmail.com>
Co-authored-by: TanXin <tanxin@example.com>
2026-06-29 21:59:37 +08:00
TanXinandTanXin d41c40bdde ci: 限制 Actions 仅在原仓库执行,避免 fork 仓库报错 (#11)
## 变更说明
- 添加 repository_owner 条件判断,仅原仓库执行自动部署
- 文档补充 GitHub Actions 自动部署配置说明
## 涉及文件
- .github/workflows/deploy.yml
- README.md / README_en.md

---------

Co-authored-by: TanXin <tanxin@example.com>
2026-06-24 17:25:54 +08:00
TanXinandTanXin c376304626 docs: 完善部署文档和项目配置 (#10)
## 变更说明
- 优化 CI/CD 配置,文档变更不再触发自动部署
- 完善环境变量配置建议,推荐使用 Secret 类型避免数据丢失
- 修正环境数据隔离描述,明确两个环境 DO 数据完全独立
- 修正 PR 提交流程,所有变更需提交到 test 分支
- 新增 AGENTS.md 项目配置说明文件
## 涉及文件
- `.github/workflows/deploy.yml` - 添加 paths-ignore 配置
- `README.md` / `README_en.md` - 文档优化
- `AGENTS.md` - 新增项目配置说明

---------

Co-authored-by: TanXin <tanxin@example.com>
2026-06-24 17:07:18 +08:00
TanXin 59497b88a7 feat: 支持 production/test 双环境部署
- wrangler.toml: 新增 [env.test] 环境配置,移除硬编码自定义域名
- package.json: 新增 deploy:test 脚本
- .github/workflows/deploy.yml: 支持 test/main 双分支部署
- README/README_en: 更新部署流程和本地开发说明
2026-06-24 11:47:22 +08:00
TanXin 9ef1f428d8 fix: 升级 Node.js 至 v22 以兼容最新 pnpm 2026-06-23 13:33:15 +08:00
TanXin b1432173c6 fix: CI 环境使用 pnpm 构建前端 2026-06-23 13:32:13 +08:00
TanXin cc1af808be ci: 添加 GitHub Actions 自动部署到 Cloudflare Workers 2026-06-23 13:28:31 +08:00