Commit Graph
175 Commits
Author SHA1 Message Date
jif2.zhang 04bc48b6a7 fix(ota): OTA_MIN_BINARY 提到 0.2.1 —— 旧外壳 CSP 不含新域名, 拉新前端会白屏; 补充遗留清单与外壳升级策略
Docker Build and Push / build-image (push) Successful in 1m16s
2026-10-27 07:52:25 +08:00
jif2.zhang 702c8daf6c docs(0.2.1): 记录发布结果 —— master CI 10/10、Android 16/16、Windows 打包通过
Docker Build and Push / build-image (push) Successful in 1m18s
2026-10-27 07:30:30 +08:00
jif2.zhang a1c267b0d4 feat(0.2.1): 生产切换完成 —— 单端口上线 (3001 + 内网 PG/PowerSync), 迁移 MySQL 全量数据, 补 uuid 镜像触发器
Docker Build and Push / build-image (push) Successful in 2m14s
2026-10-27 07:26:47 +08:00
jif2.zhang 836035f4cd docs(0.2.1): 新增 021任务.md —— 目标/现状/卡点/待确认信息速查 2026-10-27 07:08:04 +08:00
jif2.zhang b29be62747 fix(deps): dev-0.2 同步 package-lock (tauri CLI 2.12.4), 修复镜像构建 npm ci 失败 2026-10-26 22:53:46 +08:00
jif2.zhang a9dc632986 chore(deploy): 生产 compose 增加 app 构建段 (服务器 buildKit 仅 compose 可用) 2026-10-26 22:52:27 +08:00
jif2.zhang cc2677ce06 chore(deploy): 生产 compose 支持 HOST_PORT 变量 (灰度验证时先用备用端口) 2026-10-26 22:18:31 +08:00
jif2.zhang 71dcf7e1b1 ci(0.2.1): 部署段改为调用宿主 /app/iboard-prod 部署脚本 —— 无 PG secrets 时跳过自动部署 2026-10-26 22:18:14 +08:00
jif2.zhang 30bc489b5c feat(0.2.1): 单端口生产架构 —— /sync 同域反代 (去掉 13002 独立同步端口), 新增 deploy/prod 生产编排 2026-10-26 21:57:40 +08:00
jif2.zhang 4b19d1d929 chore: artifacts 打包产物不入库 2026-10-26 21:22:57 +08:00
jif2.zhang 921f3496ea chore(0.2.1): OTA 基址切正式域名 https://iboard.honor3.com 2026-10-26 21:22:49 +08:00
jif2.zhang 7234b4b40a chore: 忽略 .esbuild-tmp 临时目录 2026-10-26 20:53:46 +08:00
jif2.zhang eef296942f feat(0.2.1): 合并 Windows 外壳 + 离线编辑, 版本 0.2.1, 正式域名 https://iboard.honor3.com 2026-10-26 20:53:38 +08:00
jif2.zhang e689e44923 Merge branch 'dev-0.2.1' into dev-0.2
# Conflicts:
#	generated/prisma/internal/class.ts
#	generated/prisma/internal/prismaNamespace.ts
#	generated/prisma/internal/prismaNamespaceBrowser.ts
#	generated/prisma/models/BoardColumn.ts
#	generated/prisma/models/Project.ts
#	generated/prisma/models/ProjectMember.ts
#	generated/prisma/models/Task.ts
#	generated/prisma/models/TaskMember.ts
#	generated/prisma/models/TaskTag.ts
#	generated/prisma/models/User.ts
#	server/routes/projects.js
#	server/routes/tasks.js
#	src/api/task.js
2026-10-26 20:46:25 +08:00
jif2.zhang fc23919a4e chore(prisma): 补齐 generated 任务模块模型 (Project/Task/BoardColumn 等 6 个), 与 schema 对齐 2026-10-26 20:42:05 +08:00
jif2.zhang f34c8c3bae feat(离线): 界面离线可看 —— GET 响应本地缓存 + 同步凭证持久化 (离线不清库) + 左上角离线徽标 (与 Windows 外壳分支同源) 2026-10-26 16:05:59 +08:00
jif2.zhang 9f16db4286 feat(0.2.1): 同步端点支持 VITE_POWERSYNC_URL 覆写 (Tauri 外壳等打包端按需指定) 2026-10-26 08:58:37 +08:00
jif2.zhang fd029ad124 fix(0.2.1): PowerSync 升级 v2 线 (web 2.5.0 + react 2.1.0 + wa-sqlite 2.0.8) —— 1.39.1 与自动装配的 wa-sqlite 1.7.2 不兼容 (缺 sqlite3_prepare_v3) 2026-10-26 02:24:49 +08:00
jif2.zhang e963140bf9 feat(0.2.1): TLS 前置 13443 —— PowerSync 网页端必须安全上下文 (navigator.locks), 自签证书按路径分流 app/sync 2026-10-26 01:59:31 +08:00
jif2.zhang 533a05832e fix(0.2.1): crypto.randomUUID 仅安全上下文可用 —— http 明文部署下用 getRandomValues 兜底生成 uuid 2026-10-26 01:52:38 +08:00
jif2.zhang 086f7aecf9 fix(0.2.1): 验证脚本依赖移出 package.json (dev-only 工具不进镜像), 锁文件同步 2026-10-26 01:42:17 +08:00
jif2.zhang 1edf57b75d fix(0.2.1): 运行时镜像 npm ci 加 --omit=optional (跳过 devOptional 的 better-sqlite3, 免 node-gyp) 2026-10-26 01:40:38 +08:00
jif2.zhang 4ce701e99a feat(0.2.1): M5 闭环验证通过 —— verify 脚本 7 步全绿 (下行/离线写/上行/定号/回填/REST确认/删除同步); 方案文档补 Sequential ID Mapping 2026-10-26 01:37:24 +08:00
jif2.zhang 8813766aff fix(0.2.1): 镜像列 Prisma 侧可空 (库级 NOT NULL, 触发器填充), 避免 create 校验拦截 2026-10-26 01:27:46 +08:00
jif2.zhang aca8a05c0f feat(0.2.1): Sequential ID Mapping —— 外键 uuid 镜像列+触发器, 同步流改 uuid 主键 (离线行回填后本地 id 稳定), 客户端零改动 2026-10-26 01:21:40 +08:00
jif2.zhang 9caaa303e5 fix(0.2.1): upload 契约对齐客户端 —— 外键列即父行 uuid (projectId/columnId/parentId/taskId); 附 Node 闭环验证脚本 2026-10-26 01:14:34 +08:00
jif2.zhang a714013e3e feat(0.2.1): M3 前端接入 —— PowerSyncProvider/登录连接/登出清库, 任务模块数据层切本地库 (projectApi/columnApi/taskApi 本地实现, 离线读写+自动上行), 任务编号徽标展示 2026-10-26 00:41:51 +08:00
jif2.zhang 1a695920ce fix(0.2.1): ETL 按目标 PG 列白名单取数 + boolean/bigint/json 类型感知转换 (现网库 schema 领先于本分支) 2026-10-26 00:29:08 +08:00
jif2.zhang 025fcc3244 feat(0.2.1): M4-b ETL —— 现网 MariaDB 只读快照导入 PG (uuid/code/number 回填, 时序表限量, 序列校准) 2026-10-26 00:27:20 +08:00
jif2.zhang 636e566657 fix(0.2.1): initdb 增加 powersync publication (服务不自建, PSYNC_S1141) 2026-10-26 00:21:00 +08:00
jif2.zhang 040d560aff fix(0.2.1): !env 为 YAML 整值标签 —— URI 由 compose 组装后整值注入 (PS_SOURCE_URI/PS_STORAGE_URI) 2026-10-26 00:19:18 +08:00
jif2.zhang a4af607c41 feat(0.2.1): M3 前端 PowerSync 基础 (schema/connector/db) + 依赖; fix storage sslmode 2026-10-26 00:07:33 +08:00
jif2.zhang a386660833 fix(0.2.1): compose build context 修正为 ../.. (仓库根) 2026-10-26 00:00:18 +08:00
jif2.zhang 034c87f955 feat(0.2.1): M4-a 部署栈 —— compose(PG逻辑复制+powersync+app:13001), sync streams(任务域6表+User), initdb, DISABLE_CRON 开关, 健康检查端口跟随 PORT 2026-10-25 23:57:51 +08:00
jif2.zhang f83deefa47 feat(V0.2): 视图切换移入项目栏 —— 紧凑段控 + 按钮收纳 (按设计稿)
Docker Build and Push / build-image (push) Successful in 1m5s
- 项目栏一行: 项目名(省略) + 列表/看板紧凑段控(vseg 26px) + 已归档/管理/+新增
- 「项目管理」文案收窄为「管理」, mini-btn 内边距收窄
- 移除原 .pv-head 大段控; 视图记忆逻辑不变 (T-VW-02/03)
2026-10-25 23:51:09 +08:00
jif2.zhang a4ab22588c feat(0.2.1): M2 服务端同步接入 —— /api/powersync token+upload 幂等上行, 项目/任务/拷贝链路接入 uuid 与编号分配 (identity 助手) 2026-10-25 23:49:09 +08:00
jif2.zhang 61d3028909 feat(0.2.1): M1 数据库迁移 PostgreSQL —— schema 切 pg, 任务域六表加 uuid, 项目 code/任务 number, db.js 切 adapter-pg, 重建 PG 基线迁移; 附实施方案文档 2026-10-25 23:38:54 +08:00
jif2.zhang 368e99a380 feat(任务模块): 任务归档 T-ARC-01~08 实现
Docker Build and Push / build-image (push) Successful in 1m27s
- 数据: Project.autoArchive + Task.archived/archivedAt/archiveSource,
  迁移 20261026000000_task_archive (两索引)
- 领域: server/task-domain/archive.js —— hiddenAtOf 与保留口径精确同源,
  autoArchiveDue 到期判定, runAutoArchiveForProject (读时惰性) +
  runAutoArchiveSweep (每小时 cron 兜底)
- 接口: POST /tasks/:id/archive|unarchive (连带子任务, 幂等);
  GET /projects/:id/tasks/archived (keyword/kind/columnId/from/to 过滤,
  archivedAt+id 游标分页); 项目 PUT 收 autoArchive (枚举校验);
  主列表/子任务/项目 taskCount 全部排除归档
- 前端: ⋯ 菜单「归档」(确认含子任务条数); 项目栏「已归档」入口 →
  ArchivedTasks 弹层 (关键词/类型/列/归档时段过滤 + 加载更多 + 恢复/删除);
  项目管理「归档设置」四档 Picker
2026-10-25 23:09:52 +08:00
jif2.zhang 39282b9633 docs(任务模块): 任务归档 T-ARC 需求与设计 (T-ARC-01~08)
- 需求文档 §3.15: 手动归档(⋯菜单+连带子任务)/自动归档(项目级档位
  3天/一周/一月/永不)/归档排除/游标分页大量查询/恢复/彻底删除/配置入口/权限
- 功能设计 §15: Project.autoArchive + Task.archived/archivedAt/archiveSource、
  归档/恢复/归档查询 API、自动归档双保险执行(读时惰性+小时cron)、
  边界处理; 覆盖自检表更新为 157 条
- 数据库设计: Project 补 notes/taskKinds/icon/autoArchive 字段,
  Task 补归档三字段与两索引, 迁移清单标注 20261026000000_task_archive 待实施
2026-10-25 22:59:08 +08:00
jif2.zhang 7f213b5c9e style(V0.2): 看板列滚动条右移进列间隙, 不再压住任务卡片右沿 2026-10-25 22:39:00 +08:00
jif2.zhang a4cc4e9871 docs: 日常操作规则 —— 主目录默认 dev-0.2, 发布才切 master 推送后即回 2026-10-25 22:33:53 +08:00
jif2.zhang 1cd5b85a4b Merge remote-tracking branch 'origin/master' into dev-0.2
Docker Build and Push / build-image (push) Successful in 1m6s
# Conflicts:
#	CHANGELOG.md
2026-10-25 21:59:52 +08:00
jif2.zhang 8203a7f893 fix(V0.2): 版本规则收尾 —— 手动 OTA 工作流对齐发布说明/commit 口径
Docker Build and Push / build-image (push) Successful in 1m1s
- ota-build.yml: notes 默认取检出 commit 的 message, --commit 写入
  manifest (与 docker-build 一致); 参数加引号防空格断裂
- docker-build.yml: 去掉 head -c 400 字节截断 (会把多字节汉字切成
  非法 UTF-8 导致 latest.json 解析失败), 截断统一由打包脚本按字符处理
- build-ota.mjs: CI 日志输出 build_id 与 commit
2026-10-25 21:40:13 +08:00
jif2.zhang 0f71323c11 docs: CHANGELOG 按程序/Android外壳/Windows外壳 三部分独立记录当前值与变更
Docker Build and Push / build-image (push) Successful in 1m2s
2026-10-25 21:36:01 +08:00
jif2.zhang 93b7c7bb0a docs(changelog): 记录 V0.2.1 —— 主要解决离线编辑与不同终端数据合并问题 2026-10-25 21:34:17 +08:00
jif2.zhang 67be8d8f7b feat(V0.2): 版本方案落地 —— 前端/外壳解绑, build 标识统一, 外壳版本展示
Docker Build and Push / build-image (push) Successful in 1m5s
- check-version: 分组校验 (前端 package.json / 外壳 tauri.conf+Cargo),
  两组不再要求相等; 分支前缀校验只针对前端版本
- build-ota: build_id 改为 YYYYMMDDHHmmss (北京时间, 与前端 BUILD_ID
  同格式); sequence 保持毫秒仅用于判新
- 我的页: 当前版本恢复 v0.2.0 · build <原始BUILD_ID>; 新版本附 OTA
  build_id; 底部替换为外壳版本 (Tauri getVersion, Web 端 —)
- README: 合并遗留 readme 全部内容并按决议重写版本管理章节;
  新增 CHANGELOG.md (PATCH 仅明确提出时自增)
2026-10-25 21:28:06 +08:00
jif2.zhang 06aa48f6ad docs: 版本方案 (V0.2) 整理稿 —— 版本构成/分支映射/OTA 口径/PATCH 记录/展示修复清单, 含待确认问题 A-E
Docker Build and Push / build-image (push) Successful in 1m7s
2026-10-25 20:46:11 +08:00
jif2.zhang 6bd39aeed2 feat(V0.2): 看板列内纵向滚动加固 + 滚动时右缘滚动条 (方案 B)
Docker Build and Push / build-image (push) Successful in 1m6s
- 列体外包 .bcol-main (relative): 叠加自绘细滚动条, 滚动时出现、
  停止约 700ms 后淡出, 宽 3px 不占卡片空间
- bcol-body 补 -webkit-overflow-scrolling/overscroll-behavior,
  高度链显式化 (height:100%), 修真机列内滚不动的问题
- 列头保持固定不随滚动
2026-10-25 18:57:35 +08:00
jif2.zhang fd66c529c2 fix(V0.2): 智能截断去尾部标点; 看板左列收窄; 项目头像三处统一
Docker Build and Push / build-image (push) Successful in 1m7s
- splitTitle: 截断后用 \p{P} 去掉标题尾部连续分隔符 (原字符类重组有
  转义坑, 换 Unicode 属性类)
- 看板卡片左列 (状态点+⋯) 收窄至 14px 并负外距悬进卡片内边距
- 项目头像统一: 新增 .pavatar 基类与 projectIcon.colorOfProject,
  项目管理预览改用同配色/同圆角/居中首字, 修复灰底与文字歪斜
2026-10-25 18:38:16 +08:00
jif2.zhang cee21a39d9 feat(V0.2): 快速添加输入框三行/失焦收起; ⋯菜单点选即收; 项目图标可设图片
Docker Build and Push / build-image (push) Successful in 1m22s
- 快速添加改 3 行 textarea, Enter 创建/Shift+Enter 换行/Esc 关闭,
  焦点离开且无内容时自动收起
- 任务 ⋯ ActionSheet 点选动作后 handler.close() 收回菜单
- Project.icon (TEXT data URL, 迁移 20261025130000): 项目管理可选图片,
  客户端裁为 96x96 cover JPEG (~15KB); 项目列表/最近项目/管理页图标位
  显示图片, 保持原尺寸与圆角; 可恢复默认首字色块
2026-10-25 12:02:29 +08:00