Expensify/App 9.1.10版本发布:移动端与桌面端功能优化全解析
项目简介
Expensify是一款广受欢迎的财务管理和费用报销应用,提供跨平台的解决方案,包括移动端(iOS/Android)和桌面端(Web/Desktop)应用。该项目采用现代化的技术栈,通过持续集成和持续交付的方式快速迭代产品功能。
核心优化内容
用户界面与体验改进
-
匿名用户界面优化:修复了匿名用户访问公开房间线程时左侧导航栏(LHN)短暂显示空白状态的问题,提升了初次访问体验。
-
消息预览功能调整:优化了消息预览中发送者姓名的显示逻辑,使界面更加整洁。
-
附件浏览体验:修复了附件左右滑动浏览时的异常行为,使文件查看更加流畅。
-
键盘交互优化:在卡片费用流中,ESC键现在可以正确关闭添加卡片流程,符合用户预期。
-
多行搜索关键词显示:改进了搜索关键词在多行情况下的显示方式,提升了搜索界面的可读性。
功能稳定性增强
-
会话管理:修复了登录后立即出现会话过期错误的问题,提高了认证流程的可靠性。
-
离线状态处理:解决了在离线状态下启用策略功能时显示"未找到页面"的问题。
-
报告标记逻辑:修正了删除提及操作后,报告仍显示为未读状态的异常情况。
-
混合应用改进:优化了HybridApp的启动画面处理机制,提升了应用启动的稳定性。
-
费用删除权限:现在会根据责任类型正确显示/隐藏删除费用按钮,增强了权限管理的精确性。
企业功能优化
-
财务系统集成:修复了管理员角色变更后首选导出设置保持不变的问题,确保企业配置的准确性。
-
差旅费用管理:移除了"可以使用每日津贴"的测试标志,使差旅费用功能更加稳定。
-
审批流程改进:修正了"添加审批"按钮在智能限制启用时异常禁用的情况。
-
策略功能离线支持:增强了策略功能在离线状态下的可用性。
-
费用报告视图:新增了搜索费用报告屏幕的导航器,改进了大型企业的费用管理体验。
技术实现亮点
-
TypeScript类型检查:在SidebarUtils的getOptionData测试中添加了严格的类型检查,提高了代码质量。
-
结构化属性处理:HybridApp现在能更好地处理结构化初始属性,改进了URL处理机制。
-
性能优化:移除了ReconnectApp调用中的mostRecentReportActionLastModified参数,减少了不必要的网络请求。
-
测试工具改进:调整了测试工具行的flex-grow属性,使测试界面布局更加合理。
-
调试工具可见性:修复了调试标签页在底部标签栏上方不可见的问题,方便开发者排查问题。
企业级功能增强
-
群组聊天显示优化:在群聊顶部名称显示中添加了"..."后缀,当成员数量较多时提供更好的视觉提示。
-
费用报告流程简化:移除了没有费用时显示的多余步骤,使流程更加简洁。
-
工作区地址逻辑:对于无法启用差旅功能的公共域用户,不再要求提供工作区地址信息。
-
策略功能可靠性:提升了策略功能在离线状态下的稳定性。
-
费用类型处理:增强了每日津贴费用和合规费用的处理逻辑。
开发者相关更新
-
文档完善:新增并更新了多篇帮助文档,包括"合并账户"、"连接到财务软件桌面版"等主题。
-
测试流程改进:更新了Reassure文档,优化了性能测试流程。
-
构建系统升级:将Action runners更新至24.04版本,提升了CI/CD管道的效率。
-
冲突解决指南:完善了冲突解决PR中的说明文档,方便团队协作。
-
移动端构建:更新了Mobile-Expensify子模块,避免了开发构建时的崩溃问题。
总结
Expensify/App 9.1.10版本带来了全方位的改进,从基础的用户界面优化到深度的企业功能增强,体现了开发团队对产品质量的持续追求。特别是对混合应用架构的改进和离线功能的增强,为不同网络环境下的用户提供了更加稳定的使用体验。企业用户将受益于更精确的权限控制和更完善的财务集成功能,而开发者则能享受到更完善的文档和测试工具支持。这些改进共同推动了Expensify作为企业费用管理解决方案的成熟度和可靠性。
atomcodeClaude Code 的开源替代方案。连接任意大模型,编辑代码,运行命令,自动验证 — 全自动执行。用 Rust 构建,极致性能。 | An open-source alternative to Claude Code. Connect any LLM, edit code, run commands, and verify changes — autonomously. Built in Rust for speed. Get StartedRust0448
源启盛夏_AtomGit暑期开发者成长计划「源启盛夏」暑期校园开发者成长计划旨在激活校园开源力量,通过积分激励、认证扶持、资源倾斜等形式,引导高校组织和开发者完成「入驻 — 建项目 — 做贡献 — 获认证 — 得资源」的完整闭环。无论你是想带领社团入驻平台的组织者,还是希望用代码贡献证明自己的开发者,都能在这里找到属于你的成长路径。Markdown00
jiuwenswarmJiuwenSwarm 是一款基于openJiuwen开发的智能AI Agent,它能够将大语言模型的强大能力,通过你日常使用的各类通讯应用,直接延伸至你的指尖。Python0768
Hy3Hy3 是由腾讯混元团队研发的快慢思考融合的混合专家模型,总参数量 295B,激活参数 21B,MTP 层参数 3.8B。4 月底发布 Hy3 Preview 后,我们在 50 多个业务中获得了广泛的反馈,修复了各种体验问题,进一步提升了后训练的质量和规模。今天,我们发布 Hy3。它展现出显著强于同尺寸并比肩旗舰(参数规模往往是 Hy3 的 2~5 倍)开源模型的智能水平,显著提升了在各类产品和生产力任务中的实用价值。Python00
AscendNPU-IRAscendNPU-IR是基于MLIR(Multi-Level Intermediate Representation)构建的,面向昇腾亲和算子编译时使用的中间表示,提供昇腾完备表达能力,通过编译优化提升昇腾AI处理器计算效率,支持通过生态框架使能昇腾AI处理器与深度调优C++0312
DragonOSDragonOS is an operating system developed from scratch using Rust, with Linux compatibility. It is designed for **Serverless** scenarios. 使用Rust从0自研内核,具有Linux兼容性的操作系统,面向云计算Serverless场景而设计。Rust00