4 月 6 号那天,WinLoop 的 main 上有 19 个提交,其中 9 个的标题里带着「收口」两个字。我把那天的提交一个个点开看了一遍。

看完发现,这九个其实是九件不同的小事,只是标题都写了收口。有加权限检查的(+269 -15),有改路由路径的(+164 -163,增删几乎一样多),有解析飞书回调地址的(+17 -5)。最大的一个是协作用的富文本编辑器,+669 -172,新建了一个 352 行的组件,标题里也写着收口。

收口在这里大概就是把散在各处的边角收到一处,让每样东西只剩一种走法。这几个提交的正文都是空的,我是对着改动量猜的。

下午 1 点 04 分

中午 12 点 54 分有个加 smoke 守卫测试的提交,十分钟后,下午 1 点 04 分,是「下线 workspace 旧入口」。这个提交只有 3 个文件,+12 -116。旧页面的文件没有删,里面的内容换成了一句 404:旧的 /workspace 入口已下线,请改用 /team。原来 /workspace 的首页是个 103 行的跳转页,现在 7 行。

三分钟后和五分钟后又各有一个补缺的提交,一个补邀请的接受和撤销接口,一个补 smoke 测试的依赖和共享类型。

3 月

WinLoop 是给竞赛团队用的项目工作台,第一个提交是 3 月 18 号的。24 号有个提交把整个项目改成了团队优先,179 个文件,加了两万一千多行,删了五千八百多行。为什么这么改,提交记录里没写。

28 号晚上 7 点多,三个提交连着来,7 点 15、7 点 23、7 点 24。中间那个叫 hard-cut workspace api,33 个文件,+298 -1,067,旧的每个 workspaces 接口文件都缩成了三行,全去调同一个叫 teamFirstApiRemoved 的函数。从名字看,是告诉调用的人这个接口没了。

同样的办法,9 天后又用在了页面上:文件留着,里面换成一句话,意思是这个入口没了,请去新的那边。我猜这样老链接打开的人至少能收到一句话。

再往后,29 号下午 2 点 59 分到 3 点半,七个 fix(ci) 连在一起,大半是 pnpm 的安装和缓存。main 上一共 113 个提交,二十多个是 CI 和部署的,差不多五分之一。

一个对象

README 现在把模型写成四个词,工作区、项目、资源、协作。文件、协作文档、画布都算资源,资源是项目里唯一的一等资料对象;大纲不单独存,是从项目设置和资料内容里聚合出来的一个视图。

4 月 4 号晚上 10 点 58 分到 59 分,两分钟里连着四个提交:第一个把协作资源的模型收到一起(+194 -17),第二个把流程画布接到资源视图上(+1,122 -480),后面一个测试一个文档。流程画布这件事 README 讲得很细:左边「流程」入口永远只打开项目里那一块流程画布,资源列表里对应的那条 workflow 资源和它指向同一个底层对象,也就是同一个东西,不是两份。自由画布另算,菜单里还能新建。

我自己觉得整件事的顺序有点意思:3 月 28 号先砍后端的接口,4 月 4 号收模型,4 月 6 号才关页面入口。我觉得模型光在文档里写成「唯一」是不够的,旧入口还开着,就还是两种走法。

没做的

README 最后一节写得很老实:文件类的资源现在支持上传、转换、预览,只有 markdown 和画布能实时协作。在线 Office 编辑要等以后,选型写成了一份文档,没有落地。所以「一种对象」统一的是存放和展示,按 README 的说法,一个像 Word 这样的文件放进去,现在还只能看。

README 里还把 /workspace/:workspaceId/project/:projectId 写成「别名入口」。我看了一下,这个页面从 4 月 6 号起就是 404,大概是改的时候没顾到这一行。

这 113 个提交的最后一天是 4 月 7 号,一共 21 个提交,9 个是飞书同步的,7 个是 CI 和部署的,剩下 5 个里有合并 PR 的那一个。那是这个仓库的第一个 PR,从 dev 合进 main;后来的 PR 编号排到了 8。