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 |
|
jif2.zhang
|
e3ac00a641
|
fix(V0.2): OTA 发布说明改为 commit message, sha 单独展示; 版本附构建时间
Docker Build and Push / build-image (push) Successful in 1m2s
- CI: notes 取 git log -1 的 commit message (标题+正文, 截断 400 字),
commit sha 经 --commit 写入 manifest (不再把裸 sha 塞进发布说明)
- build-ota: 新增 --commit 参数; latest.json 增加 commit 字段
- 服务端 /ota/check 与 /manifest-web 透传 commit 与 sequence
- 我的页: 当前版本/新版本后附 seq 时间戳 (MM-dd HH:mm),
发布说明下方新增「提交」行显示短 sha
|
2026-10-25 11:56:04 +08:00 |
|
jif2.zhang
|
74e1e7dd13
|
feat(V0.2): 标题30字+智能拆分 / 时间标记 MM-dd / 时间词前缀 (T-TK-14~16)
Docker Build and Push / build-image (push) Successful in 1m25s
- 标题上限收紧至 30 字 (服务端校验+详情编辑框); 快速添加输入框
放宽到 200 字: 超长时在 30 字内分隔符处截断为标题, 完整原文进描述
- Task.markDate (DateTime, 迁移 20261025120000): 详情页 DatePicker
选择/清除, 列表行与看板卡显示 MM-dd 小标签
- 快速添加时间词前缀: 今天/明天/后天/本周/下周/本月/下月 开头
(后跟分隔符) 自动设为时间标记并移出标题; 本周=本周日, 本月=月末
- 需求/功能/数据库设计文档同步更新 T-TK-14~16 与 Task 表字段
|
2026-10-25 11:47:44 +08:00 |
|
jif2.zhang
|
fd27242e4e
|
fix(V0.2): 全局禁用非编辑框文字选中 + 标题类文本溢出省略
Docker Build and Push / build-image (push) Successful in 1m6s
- * 级 user-select/touch-callout 禁用, input/textarea/contenteditable 放行
- 项目列表标题、项目管理导航标题、看板列名: 单行省略
- 弹层 sheet-title 限两行截断, sheet-sub 单行省略 (任务详情 200 字标题
不再撑爆弹层头部)
|
2026-10-25 10:41:29 +08:00 |
|
jif2.zhang
|
20cc1ccde9
|
feat(V0.2): 列表/看板负责人改为头像 (姓氏首字+按名稳定配色)
Docker Build and Push / build-image (push) Successful in 59s
|
2026-10-25 03:04:15 +08:00 |
|
jif2.zhang
|
9401bd2b3d
|
refactor(V0.2): 列表行等高 (无标签保留元信息行); 看板类型标签与负责人同行
Docker Build and Push / build-image (push) Successful in 1m1s
|
2026-10-25 02:59:52 +08:00 |
|
jif2.zhang
|
fb9e2350b3
|
feat(V0.2): 任务类型标签 —— 项目级自定义 + 任务标记 + 列表/看板展示
Docker Build and Push / build-image (push) Successful in 1m21s
- 数据: Project.taskKinds (JSON, 未配置回落默认 需求/Bug/FEATURE/优化),
Task.kind (≤20字); 迁移 20261025030000_task_kind
- 服务: 项目 PUT 支持整体替换 taskKinds (去重/上限30/至少1个);
任务 create/update 支持 kind (空串清空)
- 项目管理: 新增「任务类型」分区, chips 展示 + 弹层编辑 (删除/新增)
- 任务详情: 新增「类型」字段, 项目类型 chips 点选, 可清空
- 展示: 列表行左下与看板卡左下显示彩色小标签
(需求蓝/Bug红/FEATURE紫/优化橙, 自定义类型灰)
|
2026-10-25 02:53:25 +08:00 |
|