1、今天还是修正BUG的一天,先处理昨天的遗留问题:1.AI回答内容里的“.”都显示成了“。”,网址和代码都受此影响;2.思考内容虽然支持流式输出,但始终只能看到两行,看不到全部思考内容;3.提出问题后,只有主动滑动一下才能看到底部的“AI正在思考中”的提示
2、开启了一个新对话,先修正英文句号都被替换成中文句号的问题,Cursor添加了一些调试信息来帮助定位问题,在开启新对话并测试的过程中发现这个问题竟然已经被解决了,我一直在看之前存在错误的对话内容,竟然没有变成正常的渲染结果?先保留调试信息,便于以后再测试其它
3、接下来修正第二个问题,在和支持深度思考的模型对话时,思考内容虽然支持流式输出,但始终只能看到两行,看不到全部思考内容,在修正这个问题之后,我添加了火山方舟的bot,填写了完整的Base URL(https://ark.cn-beijing.volces.com/api/v3/bots/),但对话时收到404错误信息,看来是之前的URL处理逻辑存在问题,Cursor修改了判断逻辑,如果是完整路径就直接使用,如果只有部分路径就自动添加前缀,如果包含api、bots、v3、v2,就直接使用,不添加额外路径,如果是基础路径就自动补全,再多次测试后发现火山方舟的bot路径依然需要应用自动补全后面的/chat/completions,这下常用的模型路径基本都OK了
4、接下来是昨天遗留的第三个问题:提出问题后,只有主动滑动一下才能看到底部的“AI正在思考中”的提示,Cursor改进滚动目标判断、优化滚动时机、增强加载状态处理、改进滚动锚点之后,在发送消息后界面即可自动滚动到底部,显示“AI正在思考中”的提示,搞定
5、继续,这次设置一下打开新对话时的默认模型,直接用模型列表里的第一个模型,“选择AI模型”界面,去掉右上方的“管理模型”按钮,在未打开任何AI对话时,界面右上角不显示“选择模型”
6、接下来修改一下AI对话列表和备忘录列表,两个列表中的条目点击区域都需要加大,整个横条都可以点击;两个列表都需要增加右键菜单,AI对话列表的右键菜单包含置顶/取消置顶(底色有所区别,带pin.fill图标)、修改(弹出对话框修改标题)、删除,备忘录列表的右键菜单包含置顶/取消置顶(置顶后底色有所区别,带pin.fill图标)、删除,Cursor在修改过程中先实现了AI列表页的邮件菜单,但备忘录列表页不支持,提示Cursor对比两个列表的右键菜单实现方式,并去掉了多余的NoteRowView定义,到这里右键菜单和点击区域都搞定了
7、发现刚刚删除的AI对话内容没有出现在设置-回收站里,让Cursor修复回收站相关功能,需求是:目前设置中已有回收站管理入口,但我删除的内容没有出现在回收站里,需要修复一下回收站功能,将回收站分为备忘录回收站和AI对话回收站两部分,可分别管理被删除的备忘录和AI对话,可清空回收站、永久删除、还原到对应的列表中
8、修改过程中虽然Cursor添加了多处调试信息,但测试时我点击设置-回收站,都没有出现调试信息,后来发现其实有两处回收站管理入口,一处是设置-回收站,一处是设置-快速操作-管理回收站,上一步Cursor添加的回收站管理功能都对应第二个入口,但我需要的是第一个入口,于是让Cursor进行了修改,Cursor同时去掉了原有的RecycleBinManagementView(简单界面且功能不完整)
9、Cursor在修改过程中机械地将RecycleBinView嵌入到了SettingsView里,就像把一个弹窗直接放进了界面里一样,不仅丑而且还有单独的标题和关闭按钮,于是让Cursor对回收站界面稍作优化,这次移除了冗余的标题栏,优化了标签页设计,改进了空状态提示,并且优化了列表项设计,风格与应用整体保持统一
10、其它功能规划:1.给AI模型添加界面增加一个测试按钮,添加新模型时先试一下能不能正常响应 2.可以选择AI对话内容中的部分文字并进行复制等操作 3.设置界面已经有数据管理功能,就不需要“设置概览”这个界面了 4.在设置中增加导入/导出功能,支持将外部内容导入到备忘录,支持将备忘录导出成txt或md,当然这些都是小改动,后面还想把Todo功能加进来,让应用功能更丰富一些
11、之前iOS版的DoitWith已经具备了一些核心功能,我询问Cursor能否将这一应用的功能整合进来,并且复用已有的文件和代码,Cursor回复可以,需要提供核心视图文件、数据名、关键功能和其它特殊需求,但由于DoitWith使用的是UserDefaults而非Core Data,Curs建议迁移到Core Data,与备忘录和AI对话使用统一的数据层,并给出了“基础功能整合(创建Todo数据类型、实现基本的GRUD操作、添加导航入口)-功能完善(添加优先级、分类、截止日期、实现搜索和筛选、添加回收站支持)-高级功能(AI助手集成、提醒功能、数据导入导出)”的分阶段实施步骤
12、虽然Cursor觉得可以这样操作,但我还是决定重新创建Todo功能,后续再详细规划需求,分布执行,这样应用就变成了NoteWith-Note/Chat/Doit, all in One