Skip to content

product baseline: finish feedback and verify update/recovery before Pro expansion #58

Open

Description

@turinglambdaai

Interaction review — 2026-10-23

P1 · 保留清单/快速录入骨架;先清理互相冲突的编辑、撤销和同步约束。

Observed evidence and scope

PRODUCT-SPEC section 5b specifies inline editing with deletion undo/re-created IDs, while section 6 still prescribes a modal detail dialog, confirmation and wholesale refresh. UX-BENCHMARKS records stable-ID delayed deletion on Windows/Linux. The product specification also still describes a cloud-synced SQLite file as its everyday model, contrary to the corrected public guide. These are conflicting instructions for the next agent, not proof that every current host still follows the old path.

Source snapshot: bf5b942cfa95c52860a499c8c2dd7054bcef27a8. Central policy read: d32f8400264c3b6dddd613d207331934e2d7694e; Rivet interaction guide read at 1ced9e9e898173d9b95a9fdd0e746ef822b6c51a.

Product decision

Acceptance before closing

  • One scenario table covers edit→Escape/click away, delete→undo/timeout, search refresh and database switch; original IDs/metadata and draft intent have explicit expected results.
  • Each declared native host runs the same scenarios; document any deliberate exception. No obsolete modal workflow or unsafe concurrent-cloud-sync advice remains in the active specification.

Handoff boundary

This is an architect review and implementation contract, not a runtime fix. Refresh the repository, relevant open PRs and current policies before taking one bounded slice; record starting SHA, owned files and native evidence. Preserve active writers and existing release/security gates. A paused product is not automatically restarted. Source findings and required failure-injection scenarios above are not claimed as three-platform runtime validation. Use synthetic data; do not access real keys, publish content or operate real hardware for this review.

Shared baseline: product experience contract.


Earlier issue context (retained)

授权实施决定 / Authorization handoff — 2026-10-auth-1

离线永久权益 + 更新/功能窗口;不使用激活租约、硬件绑定或设备上限。

完整决定:the authorization decision in PR #60(同仓含完整中文版本)。后续商业授权工作以这一决定为准;旧的商业候选描述若冲突,已被替代。这里只补设计与交接,不宣称运行时接入已经完成,也不自动重启停工产品。

  • 下一实施切片记录实际读取的 repo SHA、中央政策 SHA 与 2026-10-auth-1;文档存在不等于正在运行的 agent 已确认。
  • 按本仓中英文授权决策完成相关验收,并将未执行/失败/排队证据分别记录;免费产品先验证历史门禁移除与数据兼容。

执行更新:2026-10-v2

用户确认所有产品仍在开发、没有实际用户;旧价格/早鸟/收费候选可重做。当前决策:个人效率主力;官方稳定版买断。目标价格:¥168 / US$24;续购 12 个月更新 ¥68 / US$10。完整边界与门禁以本仓 PRICING.md 为准(Taskly 文档在 PR #60);这是首发设计,不表示已开卖。

先完成 #58 的数据恢复、反馈与安装形态更新场景;再完成试用到期保留读取/导出、Permit 导入/恢复、更新窗边界、离线和退款状态。当前提醒/同步等活跃代码不在本次文档变更中改门禁。

本次文档/首页交付。已补 agent 路由、反馈与下一步,运行验证仍须按下面验收逐项补证。本文下方旧商业候选及“不开价格预告”的限制已由此版替代,历史代码证据仍保留。


审查结论(P1,2026-10-23)

Taskly 是较好的交付样板,但 main 的 rivet-acceptance requirements 没有 release kind;反馈 #55/#56 与 Windows 快捷键 #57 仍在推进。AGENTS/CLI 有些断言和计数是历史快照。

实施顺序与范围

沿 #56/#57 完成现有切片,先核对重跑 CI(取消不算失败也不算通过)。在现有 PRODUCT-SPEC/UPDATE 中补一次首启→建任务→提醒→编辑/撤销→退出/重开→升级/恢复的表;按安装形态记录旧版升级、失败回滚/手工恢复与数据备份。Pro 仅规划新增自然语言工作流、批量自动化或日历便利,不收回现有提醒/CLI/导出能力。

这是产品/架构路线入口。每次仅认领一个可验收切片,开工记录 starting SHA、owned files、命令与回滚;活动共享层切片完成后再进入,不重叠写入,不重写已有实现。

完成标准

About/README/site 反馈入口三端可达且诊断可预览;三端更新的签名拒绝、下载取消、N→N+1、数据保全有证据,release suite 或独立 release workflow 与发布门禁明确绑定;键盘、焦点、草稿保留、时区/DST 回归可复现。

固定审查证据

本轮是源码、文档、主页与公开发布资产的静态审查,未声称已经运行所有原生平台、硬件或真实支付。执行时重新核对当前状态。

沿用的工作

家族规范入口

产品交付标准、完整审查与主页规划 PR。依赖图仍以 Keel family architecture 为准。具体实现与证据留在本仓已有 canonical 文档;不要另建平行规范。

Activity

  1. turinglambdaai commented on Oct 23, 2026

    @turinglambdaai
    OwnerAuthor

    产品方向确认 + 切片认领

    方向(baseline 先行,Pro 只做加法)

    v0.2.x 的主线是把已承诺的基线打磨到有证据,不做能力收缩:Pro 未来只新增(自然语言工作流、批量自动化、日历便利),现有提醒/CLI/导出能力一律不收回——此原则随切片二写进 PRODUCT-SPEC/AGENTS 组合定位。

    现状核对(本 issue 审查后已发生的变化)

    切片计划(每次一个可验收切片,不重叠写入)

    1. release 验收 kind(本条认领):rivet-acceptance.rktd 增加 release requirement + release-update suite(pinned rivet 1ebb3ac 的 acceptance-kinds 已含 release,无上游改动);新增 racket/tests/release-update-test.rkt 驱动后端级 N→N+1 全生命周期:本地签名 feed → check(semver 拒降级、rollout 门控)→ 下载(取消→清理→可重试)→ sha256 校验(篡改拒绝)→ tasks.db 全程字节不动(数据保全)→ Linux AppImage 原地换装端到端(backend-owned 安装路径);macOS/Windows 的宿主侧换装(UpdateService / cmd handoff)由 release 路径 + 打包验收覆盖,文档切片里如实标注归属。门禁绑定:release.yml publish job 签名前先跑该套件;Product Acceptance 经 rktd 自动包含。
    2. UPDATE.md/PRODUCT-SPEC 补:首启→建任务→提醒→编辑/撤销→退出/重开→升级/恢复生命周期表;按安装形态(dmg/zip、MSI/portable、AppImage/deb-rpm/tarball)记录旧版升级、失败回滚/手工恢复、数据备份(~/.taskly 单文件复制即备份)。
    3. 反馈诊断可预览:三端 About 增加版本/平台/架构/DB 路径诊断行(可复制),issue 模板引导附带。
    4. AGENTS/CLI 陈旧计数与断言刷新(63 例 golden 等以脚本输出为准)。
    5. 键盘/焦点/草稿/DST 回归可复现:草稿与 DST 已有测试;补键盘/焦点的 e2e 断言。

    切片一开工记录

    • starting SHA:3dbd070(main,v0.2.4 tag 所在)
    • owned files:rivet-acceptance.rktd · racket/tests/release-update-test.rkt(新增)· .github/workflows/release.yml(publish job 增一步)· shared/spec/UPDATE.md(release kind 证据行)
    • 命令:raco test racket/tests/release-update-test.rkt;门禁绑定后 release.yml publish job 内自动执行
    • 回滚:revert 对应 PR 即可,不动任何运行时行为(纯证据层)
  2. turinglambdaai commented on Oct 23, 2026

    @turinglambdaai
    OwnerAuthor

    v0.2.4 发布证据 + 实机 OTA 记录(切片一的实机对照)

    发布(自动化门禁全链路)

    v0.2.4 已发布并标记 Latest(tag v0.2.4,2026-10-23):

    • 版本 PR release: 0.2.4 #59 → 机器人重生成客户端 → CI + Product Acceptance 全绿 → 合并。
    • publish-verified-release 校验(VERSION==rivet.rktd==version.rkt==info.rkt==生成客户端;分支名==版本;发布说明非空;UPDATE_ED25519_PRIVATE_KEY 与 updater.rkt/UpdateService.swift 内嵌公钥比对)→ 等 merge commit 的 CI+验收全绿 → annotated tag → release.yml。
    • release.yml:五平台构建(macOS arm64/x64、Windows x64、Linux x64/arm64)+ Publish 全绿。
    • 资产核对:macOS dmg+zip、Windows msi+zip、Linux deb/rpm/AppImage/tar.gz/zip(双架构)+ SHA256SUMS + 稳定名别名 + update-manifest.json,发布说明自动取自 CHANGELOG [0.2.4] 段。
    • live feed 实证:releases/latest/download/update-manifest.json 用产品内嵌公钥(update-public-key-b64)+ verify-signed-manifest 校验 VALID(key-id taskly-2026-10),version 0.2.4,rollout 100,8 个 artifact 全部 pin 到具体 tag。

    实机 OTA(0.2.3 → 0.2.4,本机 macOS)

    1. 0.2.3 手动检查更新 → 正确弹「发现新版本 0.2.4」(签名清单验证通过;先前 0.2.3 为 Latest 时同路径返回「当前已是最新版本」,downgrade 拒绝方向已覆盖)。
    2. 立即更新 → 后端下载 zip → 清单 SHA-256 验证 → 原地换装(/Applications/taskly.app Info.plist 变 0.2.4)→ 自动退出重启。
    3. 重启后版本 0.2.4,.old 已清理,~/.taskly/tasks.db 中种子任务「OTA 升级存活校验任务」完好(数据保全)。
    4. 0.2.4 再次检查更新 → 「当前已是最新版本」(闭环)。

    附件细节:签名拒绝 / 下载取消 / 数据保全的自动化证据在切片一 PR #61 的 release-update 套件(本地 5/5 通过,Linux 腿在 CI 实跑 AppImage 换装臂);该套件经切片一绑定进发布 Publish job,此后每个版本发布前强制执行。

    下一步

    等 #61(切片一)CI 全绿合并,随后进入切片二(生命周期/回滚/备份文档)。

  3. turinglambdaai commented on Oct 23, 2026

    @turinglambdaai
    OwnerAuthor

    Architecture follow-up / 架构审查补充(2026-10-23)

    #62 records a targeted refactoring handoff: move reminder eligibility, startup summarization and logical deduplication into Taskly's shared application service, leaving native permission and OS delivery with the hosts. Swift and GTK currently duplicate these product rules. Read the pinned evidence and acceptance cases in #62; start only after active reminder/host work releases shared-file ownership. This is not a Taskly rewrite or an instruction to expand Rivet's product policy.

    中文:从现有产品契约继续,先固定现有行为与时区/切库/取消场景,再逐端替换;更新规范和证据,不靠聊天传达决定。

  4. added a commit that references this issue on Oct 23, 2026
  5. turinglambdaai commented on Oct 23, 2026

    @turinglambdaai
    OwnerAuthor

    切片一(release 验收 kind + 发布门禁绑定)已合并:PR #61 三平台 CI + 打包验收全绿(release-update 套件在 Windows/Linux 腿实跑通过,macOS 腿本地 5/5)。publish job 现在在签名前强制执行更新证据——从 v0.2.4 之后的每个发布都带更新链证据。

    下一切片(Raycast 对照研究后确立,已获确认):About 门户 + 诊断复制——About 增加更新日志/使用手册入口和「复制诊断信息」(版本/平台/DB 路径),吸收原切片三。随后依次:InternetAccessPolicy.plist(网络透明度)、自动检查更新开关、手册快捷键/备份章节(并入切片二)。

    starting SHA:bf5b942(合并 #61 后的 main)。owned files:shared/spec/PRODUCT-SPEC.md §8 · shared/i18n/{zh,en}.json · 三宿主 About 实现 · docs/UX-BENCHMARKS.md(Raycast 对照记录)· CHANGELOG。回滚:revert 单一 PR。

  6. added a commit that references this issue on Oct 23, 2026
  7. turinglambdaai commented on Oct 23, 2026

    @turinglambdaai
    OwnerAuthor

    切片「About 门户 + 诊断复制」(吸收原切片三)已合并:PR #63 三平台 CI + 打包验收全绿。About 现为更新/链接/反馈门户(Website · User Manual · Changelog · Report an Issue 四链接)+ 诊断块与「复制诊断信息」按钮(版本/平台/OS/DB 路径/配置路径,剪贴板直出,可粘进 issue);macOS 腿本地 6/6 验收 + AX 实测通过(四链接渲染、复制内容逐字校验)。PRODUCT-SPEC §8 契约同步;UX-BENCHMARKS.md 记录 Raycast 实拆对照(学/参考/不学)。

  8. added a commit that references this issue on Oct 23, 2026
  9. turinglambdaai commented on Oct 23, 2026

    @turinglambdaai
    OwnerAuthor

    新切片认领:自动检查更新开关(Raycast 学到的「更新行为显性化」)。契约:config 新键 auto-check-updates(默认 "1");静默检查(启动 + 4h)为 "0" 时跳过;手动检查更新… 永远执行且不受节流影响。UI = 各端「设置」菜单的可勾选项(沿用「显示已完成」的 checkable 模式)。starting SHA:3946e05。owned files:shared/spec/{UPDATE,DATA-FORMAT}.md · shared/i18n/* · 三宿主设置菜单与静默检查点。回滚:revert 单一 PR。

  10. added a commit that references this issue on Oct 23, 2026
  11. turinglambdaai commented on Oct 23, 2026

    @turinglambdaai
    OwnerAuthor

    阶段进度(Raycast 学习序列,全部合并):

    §8 完成标准对照:

    • ✅ About/README/site 反馈入口三端可达;诊断可预览且可一键复制(About 诊断块)。
    • ✅ 签名拒绝/下载取消/N→N+1/数据保全有自动化证据(release-update 套件)并绑定发布门禁;实机 OTA 0.2.3→0.2.4 数据保全另有实机记录。
    • 🔜 剩余:生命周期/按形态升级回滚备份文档(切片二,含手册快捷键与「数据在哪」章节——部分内容已随 UPDATE.md/文档落地);AGENTS/CLI 陈旧计数刷新;键盘/焦点回归 e2e 覆盖。

    main 当前:757e7e9。下一切片按序为切片二文档。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions