ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

anarlog 1.0.19 版本全解析:Outlook 日历 Beta、模板工作流、Memo 导出与转写语言规范化

anarlog 1.0.19 版本全解析:Outlook 日历 Beta、模板工作流、Memo 导出与转写语言规范化 anarlog 1.0.19 版本全解析Outlook 日历 Beta、模板工作流、Memo 导出与转写语言规范化【免费下载链接】anarlogOpen source Granola AI Alternative项目地址: https://gitcode.com/GitHub_Trending/hy/anarlog导读本文基于 anarlog开源 Granola AI 替代方案官方变更记录 packages/changelog/content/1.0.19.md2026-03-30 发布系统拆解该版本在日历、模板、聊天、导出、笔记、转写、订阅计划与认证等八个方向的功能更新并结合仓库源码揭示 Outlook 日历时区转换、会议链接解析、导出内容组装、定价数据模型等底层实现原理。读完本文你将掌握该版本每一项新特性的实际用法、对应的源码位置以及它们是如何被设计与验证的。版本总览1.0.19 是一个以「日历可靠性 模板一等公民化」为双主线的大版本同时覆盖聊天体验、导出能力、笔记日期管理、批量转写修复与定价体系调整。官方摘要将其总结为Outlook Calendar beta, template workflows, chat polish, export options, editable note dates, Lite plan messaging, and settings cleanup were added.下文按变更记录的结构逐节展开并给出对应的仓库实现证据。日历Outlook Calendar 支持Beta与同步可靠性Outlook Calendar Beta接入 Microsoft Graph本版本为日历模块新增了Outlook CalendarBeta支持用户可以将 Microsoft 365 / Outlook 日历作为继 Google Calendar、Apple Calendar 之后的第三种日历数据源接入。从源码结构看Outlook 接入被设计为「API 路由 独立 SDK crate」两层服务端路由层位于 crates/api-calendar/src/outlook/routes.rs提供POST /outlook/list-calendars与POST /outlook/list-events两个接口。它们通过 Nango 连接管理NangoConnectionState构建带鉴权的 HTTP 客户端并将 Base URL 指向https://graph.microsoft.com/v1.0即直接对接 Microsoft Graph API客户端封装层位于 crates/outlook-calendar/src/client.rsOutlookCalendarClient提供三个核心方法list_calendars()请求GET /me/calendars获取用户全部日历列表list_events(req)按日历 ID 拉取事件。当同时传入start_date_time与end_date_time时走calendarView端点/me/calendars/{id}/calendarView否则走events端点/me/calendars/{id}/events并支持$top、$skip、$filter、$select、$orderby等 Graph 查询参数透传create_event(req)POST /me/calendars/{id}/events创建事件。服务端路由还对时间参数做了严格校验time_min/time_max必须为合法 RFC 3339 字符串routes.rs并提供了order_by语义映射——startTime映射为 Graph 的start/dateTimeupdated映射为lastModifiedDateTime。错误处理上连接失效会返回 HTTP 424Calendar connection requires reconnect由客户端引导用户重新授权。关键原理Outlook 事件如何统一进 anarlog 数据模型Outlook 数据不会直接进入前端而是先经 crates/calendar/src/convert.rs 转换为统一的CalendarEvent/CalendarListItem结构CalendarProviderType::Outlook。转换过程有三个值得关注的细节字段映射subject→ 标题、body.content→ 描述、location.display_name→ 地点、web_link→ URL、series_master_id→ 重复事件 ID、is_all_day→ 全天标志会议链接三级回退优先使用online_meeting_url/online_meeting.join_url提供商原生链接其次从location解析最后从description解析convert.rs并有meeting_link_tests测试用例逐一验证三级优先级与无链接保持为空的边界convert.rs时区转换是本次实现的重头戏Graph 返回的时间通常是「无时区的墙上时间 独立 timeZone 字段」timeZone 可能是 Windows 时区 ID如W. Europe Standard Time或 IANA 名称如Europe/Paris。源码注释明确解释了若不处理会发生什么JS 的Date会把 UTC 墙上时间当作本地时间解析导致 CEST中欧夏令时的提醒提前两小时触发全天事件若经 UTC 换算则会向西偏移一天。因此 convert.rs 实现了outlook_datetime_to_iso全天事件直接保留YYYY-MM-DD日期不经过 UTC 换算带 RFC 3339 偏移的时间归一化为 UTC无时区的 naive 时间通过windows_tz_to_iana映射为 IANA 时区后再换算为 UTC 时间戳对夏令时歧义时刻Ambiguous取最早值映射失败则回退为 UTC。对应的单元测试覆盖了 UTC naive 时间、W. Europe Standard Time、Europe/Paris、带02:00偏移、全天事件以及Turkey Standard Time、Taipei Standard Time等常见 Windows 时区convert.rs。同步失败不再丢日历集成可无损重连变更记录明确指出两个日历可靠性改进日历不再因同步失败而被删除此前同步出错可能导致已连接日历被移除用户需要重新走一遍授权流程现在集成连接与数据同步解耦失败时日历数据保留重连后无需重新录入日历列表移到左侧边栏从设置/二级页面提升为常驻入口点击更快引导流程优化设置完成后已连接的日历自动展开减少额外点击账号操作入口位置调整日历账号操作按钮移动到账号标签旁语义更清晰。模板升级为一等公民的侧边栏工作流1.0.19 将「模板」从角落功能提升为侧边栏一等公民工作流模板拥有专属标签页dedicated tab与笔记、日历等并列模板头部布局与控件重新设计操作更顺手个人模板在模板选择器中排在 CharCharacter模板之前——即用户自定义内容优先于系统预设角色模板模板标签页与侧边栏外观chrome对齐视觉上更统一个人模板的编辑流程得到改进从创建、命名到修改更顺畅。从桌面端结构看模板能力贯穿侧边栏apps/desktop/src/folders/sidebar.tsx与聊天工具apps/desktop/src/chat/components/message/tool/update-prompt-template.tsx模板不仅用于笔记排版还参与 chat 的 prompt 更新链路。聊天结构化提及引用与会话状态统一聊天模块本次的改进集中在「上下文传递」与「入口统一」Typed mention 上下文引用改为结构化 refs用户在聊天中输入提及引用笔记或上下文时现在传递的是结构化引用structured refs而非纯文本快照后续工具调用可以解析出真实实体如笔记 ID、段落范围提升引用准确性新建聊天快捷键统一路由⌘/CtrlN等新建会话的快捷操作不再各自为政而是统一路由到共享的聊天会话状态避免不同入口创建出互相不一致的会话上下文。相关实现可参考 apps/desktop/src/chat/context/session-context-hydrator.test.ts 与 apps/desktop/src/chat/components/session-provider.tsxComposer 与 reasoning UI 打磨聊天输入框与思考中状态展示的视觉细节进一步细化未配置 LLM 时隐藏 Composer当检测到没有任何 LLM 可用时聊天输入框直接隐藏避免用户输入后得不到响应的困惑——这是对配置缺失状态的显式 UI 降级处理。导出为 PDF 与文本格式新增 Memo 选项导出模块是本版本的一个实用亮点导出弹窗新增 Memo笔记包含选项支持 PDF 与文本格式。从 apps/desktop/src/session/components/outer-header/overflow/export-modal.tsx 可以看到完整的导出交互实现格式选择PDF/TXT/Markdown/Org四种格式单选内容勾选Memo、Summary、Transcript三项可独立开关且要求至少勾选一项才能导出hasAnyContentSelected校验内容组装buildMdContent()Markdown、buildTxtContent()纯文本含markdownToText降级转换、buildOrgContent()Org 模式含markdownToOrg转换、buildPdfContent()结构化数据交给anlg/plugin-export的export命令渲染四条路径都会把勾选的 Memo 以## Memo小节组装进文档文件命名与落盘文件名由「会话标题清洗 ISO 时间戳」组成非法文件名字符替换为_默认写入设置里的export_directory未设置则回退到系统下载目录App Store 沙盒构建会额外弹出系统保存对话框因为沙盒授权在重启后需重新获取导出后反馈导出成功会触发session_exported分析事件附带 format 与包含项标记并通过 opener 命令在文件管理器中定位文件。Memo 导出意味着用户可以把「会议笔记正文」单独抽取出来与 AI 摘要、转写文稿一起打包成对外分享或归档的成品文档。笔记日期可编辑与音频元数据推算独立笔记日期现在可编辑此前笔记创建时间不可修改本版本允许用户在界面中直接调整日期便于整理历史归档或修正录入时间上传音频笔记的日期自动推算当上传的音频文件本身没有明确时间信息时系统会从文件元数据file metadata估计日期避免上传的录音全部落到今天造成时间线混乱。这两项改动共同完善了笔记时间轴的准确性是数据治理层面的实用修复。设置与界面打磨本版本包含一轮覆盖面较广的设置页与 UI 收敛账号设置页简化结构更清晰设置中的计划Plan状态展示精简避免重复信息设置页间距与标题统一收紧管理员集合Admin collections标签页简化会话元数据标签session metadata tags以可编辑 chip 形式渲染——用户可以直接在界面上增删改会话标签而非仅只读展示修复了笔记文件夹面包屑导航note folder breadcrumbs的路径显示问题桌面端弹出层popovers统一到模板外壳template shell视觉体系一致笔记标题现在使用剩余头部空间长标题不会被截断挤压。转写批量修复与跨厂商语言规范化转写是本项目的核心能力之一anarlog 定位即开源 Granola AI 替代方案主打会议录音 → 转写 → 摘要1.0.19 包含两项针对性修复多项批量转写batch transcription修复提升大量音频排队转写时的稳定性AssemblyAI 语言规范化在全部云厂商间统一不同云转写服务返回的语言标识格式不一致如en-US与en混用此前各厂商各自处理导致下游语言标签混乱。本次将 AssemblyAI 的语言规范化逻辑统一应用到所有云转写提供商。从源码看语言规范化的核心在normalize_listen_paramscrates/transcribe-proxy/src/routes/batch/mod.rs其行为包含对重复基础语言的去重测试用例test_build_listen_params_normalizes_duplicate_base_languages验证了en与en-US会被归一为单一enISO 639 基础语言并与ko-KR并存最终语言列表去重为 2 项batch/mod.rs。该函数在 owhisper-client 的 adaptercrates/owhisper-client/src/adapter/mod.rs中被复用确保批处理与实时流走同一条规范化路径。计划Lite Plan 加入与定价文案统一新增 Lite Plan 订阅档位为轻量用户提供介于免费与完整付费之间的档位选择定价档位文案全端同步设置、引导页、营销页面等所有展示订阅价格的表面surface统一文案口径避免同一计划在不同页面出现 Lite / Light / 入门等不一致称呼。定价数据层的设计与之呼应仓库将订阅档位集中定义在 packages/pricing/src/tiers.ts包含free/pro/team/enterprise四个营销档位及各自的功能特性清单、价格fixed / custom / free、billingUnit 等同时定义TierAction行为变体startTrial、checkout及upgrade/downgrade方向保证任何消费方只需关心行为语义、不依赖展示文案这正是定价消息跨表面同步的架构基础——新增档位时只需改一处数据源。认证会话刷新与加载态时序账号设置页打开时自动刷新会话进入账号设置会触发一次 session 刷新确保展示的是最新登录态与账户信息新增 Auth 加载状态认证加载态被显式建模使 toast 等提示的弹出时序timing更准确避免提示先于认证完成导致的错位。小结1.0.19 是一次典型的「广度打磨」版本日历模块借助 Microsoft Graph 与 Nango 连接管理完成 Outlook 集成并通过calendarView端点、Windows→IANA 时区映射与三级会议链接回退保证了数据准确性模板、聊天、导出、笔记、设置等前端体验全面收敛转写侧的语言规范化通过normalize_listen_params实现了跨厂商统一定价与认证体系的改动则为后续商业化与稳定性铺路。若想深入验证本文结论可按需阅读以下源码Outlook 客户端crates/outlook-calendar/src/client.rs、crates/outlook-calendar/src/lib.rsOutlook API 路由crates/api-calendar/src/outlook/routes.rs日历事件统一转换与时区处理crates/calendar/src/convert.rs导出弹窗实现apps/desktop/src/session/components/outer-header/overflow/export-modal.tsx批量转写语言规范化crates/transcribe-proxy/src/routes/batch/mod.rs、crates/owhisper-client/src/adapter/mod.rs定价数据模型packages/pricing/src/tiers.ts官方变更记录原文packages/changelog/content/1.0.19.md【免费下载链接】anarlogOpen source Granola AI Alternative项目地址: https://gitcode.com/GitHub_Trending/hy/anarlog创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表