日程聚合体验补强:补充 Widget Test 与刷新兜底#77
Merged
utopiafar merged 13 commits intoMay 15, 2026
Merged
Conversation
- Add ScheduleAggregatorAgent with AI-driven magazine narrative layout - Add ScheduleAggregationSkill with get_schedule_cards and save_schedule_aggregation tools - Add ScheduleAggregationModel for structured YAML output - Register event bus subscription and task handler - Split schedule_aggregator_screen.dart into focused widgets - Add MagazineNarrativeTab dual-mode: agent-curated + mock fallback - Wire ViewModel with MemexRouter for agent triggering - Add 21 unit tests for model parsing and mock data Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…tor-agent # Conflicts: # lib/data/repositories/memex_router.dart # lib/domain/models/system_event.dart # lib/l10n/app_en.arb # lib/l10n/app_zh.arb # lib/ui/settings/widgets/model_stats_page.dart
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
背景
这轮从用户路径和安卓模拟器里继续验证日程聚合功能,重点补了几个体验风险:
改动
event/task/routine/duration/procedure等日程相关 template,LLM 即使返回 skip,也会保守地 mark dirty。CustomScrollView/ sliver 结构承载 pinned lens 和正文内容,保留交互能力,同时避免为了跳转退回成一个大 Column。skipped但卡片实际包含 routine template 的场景。验证
flutter test --no-pub test/ui/schedule/widgets/schedule_widgets_test.dart test/utils/date_util_test.dart test/domain/models/schedule_aggregation_model_test.dart test/agent/skills/schedule_aggregation_skill_test.dart test/ui/schedule/models/schedule_item_test.dart test/ui/schedule/view_models/schedule_aggregator_view_model_test.dart test/data/repositories/get_schedule_briefing_timeline_card_test.dart test/data/services/event_handlers/schedule_dirty_on_card_update_handler_test.dart test/agent/schedule_refresh_router_agent_test.dart,57 个测试通过。flutter analyze --no-pub --no-fatal-infos lib/ui/schedule/widgets/tabs/magazine_narrative_tab.dart test/ui/schedule/widgets/schedule_widgets_test.dart无问题。git diff --check通过。flutter build apk --debug --flavor global --no-pub通过,并安装到 Android emulator 实测。模拟器实测路径
Needs update,进入日程页点击Update后,聚合 hero 正确更新为 11:00 的银行/签证确认事项。Update后 dirty 清除,聚合摘要纳入 expense report、visa call、water plants 等内容。Updated、Today、Tomorrow等 chips;点击Tomorrow可跳转到对应日程段落。模拟器 CPU 排查
emulator/qemu-system残留进程;adb devices为空。emulator -accel-check显示 Hypervisor 可用。hw.gpu.enabled=no,而启动日志显示系统内存压力下退到了 software GL(swangle/lavapipe),这是 CPU 打满的主要嫌疑。Timer/ animation / build-time refresh 循环;lens 点击只触发一次Scrollable.ensureVisible/ fallback scroll。说明
这一轮仍保持“LLM 产出结构化数据、App 固定展示”的阶段性方案;刷新路由采用保守兜底,宁可多标记 dirty,也避免用户完成/新增日程类卡片后看到旧聚合。日程 tab 的新 lens 不改变 schema,只把 AI 已经决定的日期段、冲突和完成项变成可操作的导航入口。