DevLog:2025年8月18日

1、截至目前已经用Cursor编辑了63939行代码,今天继续让Cursor恢复各个模块的功能,并优化应用界面和交互,整体原则就是优先用已有的代码
2、首先是AI对话相关功能,从添加模型开始,添加模型功能目前不能正常使用,填写所有信息并点击添加后,没有保存到模型列表里,且添加模型界面需要增加一个备注字段,优先用已有的代码来实现此功能
3、在可以保存模型之后,发现只能删除,不能编辑模型,且API Key、Tavily Key都是以明文显示,也不安全,点击AI对话右上角的模型切换按钮,也看不到目前已有的模型,继续让Cursor修正
4、一直以来都是使用Cursor的Auto模式,但今天第一次见到它出现了思考过程,今天这是在调用什么支持深度思考的模型了吗?
5、继续调整模型添加和选择相关功能,比如把备注字段放在添加和编辑模型界面的最上面,对话界面右上角也显示备注字段,显示选择状态等等
6、AI模型的添加、编辑、切换基本搞定,接下来测试对话过程,首先遇到的问题是:已经填写了AI模型的信息,但提问后反馈“错误,未找到指定的AI模型”,在修改过程中发现目前存在aiModels和aiConfigs两种模型数据混用的情况,于是让Cursor检查有无其它功能仍在混用,Cursor检查后建议完全迁移到aiConfigs,因为它功能更完整,且不需要Core Data的复杂性,已经实现了完整的GRUD操作
7、有点疑惑UserDefaults和Core Data两种数据存储方式竟然可以混用?询问Cursor目前哪些地方用了UserDefaults,哪些地方用了Core Data,Cursor在梳理后表示现在的确是“分层混用”的状态,Core Data管理业务数据(笔记、会话、消息),UserDefaults管理轻量设置(外观、Tavily Key)以及AI模型配置aiConfigs,技术上是合理的,决定暂时保持目前的混用状态
8、继续测试AI对话相关功能,发现无论我问哪个模型,都会收到“这是一个模拟的AI问答。您的问题是:你好”的回答;对话内容没能保存到对话列表里;即使模型不支持深度思考,也会显示思考过程,看一下是怎么回事,并且尽量使用已有的文件和代码来解决问题
9、再次测试时发现无论使用哪个模型都会收到模拟的回答,而不是真实的AI的回答,并且AI问答列表显示的内容也有问题,继续让Cursor修正,Cursor表示是为了先确保实现其它功能,避免因误调用产生费用,而且即使真实调用失败时界面也能正常流转,但我不需要这种所谓的兜底方案,于是直接让Cursor真实调用AI模型,不需要模拟回答
10、然后又遇到了“网络连接错误”的提示,怀疑可能是Base URL的问题,询问Cursor之后,决定让应用自动补全/chat/completions,并且在AI模型添加/编辑界面增加说明文字,防止用户填错,Cursor添加了智能URL自动补全机制,如果用户只输入了基础地址(如 api.openai.com),会自动添加 https:// 和 /v1/chat/completions,如果用户已经包含了部分路径,会智能补全,从而避免重复添加路径导致的双重拼接问题,测试发现只需要填写最简单的网址就可以,比如https://api.deepseek.com、https://openrouter.ai/api
11、然后我发现无论模型是否支持深度思考,在回答时都会显示思考过程区域,如果模型不支持深度思考,就看不到完整的回答内容,让Cursor增加了自动判断模型是否支持深度思考的机制,修改过程中Cursor在AI模型设置中增加了深度思考开关,将决定权交给用户,我觉得还是自动判断更方便,于是改成了自动判断是否支持深度思考的方式
12、现在可以正常判断出deepseek r1支持深度思考了,思考过程可以展开/折叠,但即使展开也看不到思考过程的详细内容,在回答过程中,界面无法随着回答内容自动向下滚动,且看不到完整的回答内容,Cursor在修改过程中改进思考过程内容、改进自动滚动逻辑、改进内容更新机制,在测试过程中发现之前的MarkdownRenderer和CodeBlock相关功能还都有效,太棒了!
13、我之前有要求Cursor在AI对话页的每条消息下面添加三个按钮,收藏、复制、删除,不知道现在还有没有相关代码,没有的话就重新添加三个按钮和对应的功能,针对这一需求,修改后竟然给思考过程和回答内容增加了不同的背景色,但思考过程应该在回答内容上方,继续调整
14、调整完这些之后,AI对话界面的问题和回答都统一居左了,让Cursor调整了下,问题在左边,思考和回答在右边,然后点击收藏消息时,不要滚动到底部,保持在当前的浏览位置就行
15、接下来测试Tavily相关功能是否正常,询问deepseek r1一个需要搜索最新信息的问题,同步测试下深度思考是否正常,能否看到搜索链接,能否点击打开对应页面,能否收藏等功能,发现1.深度思考可以按句流式输出,但看不到完整的思考内容,只能看到最后两行 2.目前项目文件里已有Tavily相关文件和代码,回答内容的下方需要展示Tavily参考的链接,并且可以点击打开链接,看看现有的文件是否支持该功能 3.回答内容中包含网址时,其中的“.”会显示为“。” 4.点击收藏按钮,虽然提示收藏成功,但没有出现在备忘录列表里,四个问题全部反馈给Cursor修改
16、今日遗留问题:1.AI回答内容里的“.”都显示成了“。”,网址和代码都受此影响;2.思考内容虽然支持流式输出,但始终只能看到两行,看不到全部思考内容;3.提出问题后,只有主动滑动一下才能看到底部的“AI正在思考中”的提示
17、Cursor已经开始建议我“Start a new chat for better results”,难道是这个对话里内容太多了?明天重新开启一个对话之后再修正这三个遗留问题,然后测试其它功能

DevLog:2025年8月17日

1、今天重点优化备忘录相关功能,首先我发现备忘录列表里显示的备忘录内容不会随修改更新,比如备忘录里明明有文字,列表里却显示“空内容”,另外需要把备忘录标题下面的“文本编辑器”和右侧的字数统计去掉,因为界面右下角已经有字数统计了
2、修正这一问题后,发现又看不到支持深度思考的模型的思考过程了,并且在AI回答时,界面也不会自动向下滚动,可能是昨天将MessageView从AIChatView中拆分出来之后又有部分功能丢失了?先把这部分功能加回来,然后优化一下输出时的卡顿问题
3、继续优化备忘录,测试时发现了“列表顺序会随着点击发生变化,而不是只有修改内容时才会变化”和“光标自动跳转到结尾”的问题,在修改过程中,我发现虽然目前用的TextEditor是纯文本编辑器,但当前仍然有用到NSAttributedString来进行富文本处理,其实现在不需要处理富文本了,于是让Cursor去掉了富文本相关的代码
4、发现部分备忘录内容可以正常显示,部分不能,Cursor排查后发现Note模型有两个内容字段,一是markdownContent的纯文本内容,二是attrbutedContent的富文本内容,Cursor修改后改为二者均可正常显示,且优先使用前者,如果前者为空则使用后者
5、在修正备忘录问题的过程中,让Cursor去掉了知识库相关功能,暂时没有想好知识库该怎么用,而且知识库目前的存储也是以备忘录的形式存储的,和备忘录有些重合,先优化备忘录模块,后面再考虑更加其它功能吧
6、然后又修正了AI对话删除之后同时存在于列表和回收站的问题,修正了AI对话右上角无法切换模型的问题,奇怪的是之前我明明记得有一个AIModelSelectorView文件,啥时候消失了?
7、在让Cursor美化AIModelSelectorView时,美化有些过度了,并且再次出现了macOS不支持的SystemGray颜色,仍然时从iOS迁移至macOS的后遗症
8、结合当前应用的功能,让Cursor更新README,同时更新了应用的版本号为0.1,涉及info.plist和project.pbxproj两个文件
9、还在纠结数据的存储方式,因为UserDefaults主要用于存储一些配置相关的数据,在存储大小、性能、数据完整性、扩展性上均有限制,Cursor建议在数据量增长后迁移到Core Data或SQLite,比如数据大小超过5MB时,但因为对话内容中有大量的Markdown渲染,还有备忘录功能,数据可能很快就超过5MB了
10、决定先把目前的0.1备份一下,然后把数据存储机制改成Core Data,并且不需要迁移已有数据
11、Cursor表示要完成这一迁移,需要如下步骤 1.首先创建Core Data模型文件 2.创建Core Data管理器 3.更新数据模型以使用Core Data 4.更新DataManager以使用Core Data 5.更新相关的ViewModels,接下来当然又是修改项目文件、修复编译错误的漫长过程,待完成后再挨个测试功能
12、在修复编译错误的过程中,Cursor为了能更快解决编译错误竟然删除了五个视图文件,我拒绝,让它重新创建这五个文件,然后修正错误,因为担心后面还会再删除其它文件导致应用功能大量缺失
13、累计修复了:类型定义问题、可选值处理、方法签名修复、ScrollViewReader问题、Core Data关系处理、视图组件修复,以及几处警告,终于可以成功构建了
14、接下来测试功能,一打开App天都塌了,缺失了大量功能,接下来逐个修复,
1.备忘录界面没有创建备忘录的按钮 2.去掉预置模型中的所有模型,让用户自己添加,并且在添加模型界面增加Tavily密钥字段 3.AI模型管理界面无法关闭或返回 4.整体布局也很奇怪
15、Cursor还是将应用改成了三栏式布局,之后恢复设置功能,其中包含统一管理模型、数据统计、切换深色浅色模式、管理回收站等功能,并且提出优先让Cursor使用已有的文件和代码
16、然后调整了关于、模型管理功能(既然已经没有预置模型,那就不再需要每次打开应用时都删除了)、调整搜索功能(在导航栏里添加搜索按钮,点击弹出搜索弹窗,去掉备忘录界面的搜索按钮),仍然要求优先用已有的代码,目前已经恢复了应用的布局,今后再恢复各个功能