2.7 KiB
2.7 KiB
report-notebooklm-app NOTES
2026-06-03
- App prototype pass moved the Flutter client from a single
lib/main.dartshell into feature/domain folders:lib/theme/: Wise-style tokens andThemeData.lib/data/: typed API data source and models for reports, institutions, display modules, audio, and module detail.lib/features/: feed, reports, institutions, listen, profile, and detail pages.lib/features/detail/modules/: renderer registry and module detail routing.lib/widgets/: reusable cards, badges/chips, buttons, states, sheets, and mini/player UI.
- User-visible product name is
研听; code/package/API identifiers remainreport-notebooklm/rnb. - Current UI uses real backend seed/API responses. Local UI mock is limited to blocked Phase 1 behaviors: login, save/favorite state, outbound confirmation, and audio progress without a real stream.
- Product decision: Phase 1 has no report-interpretation download feature. Do not show a top-level download icon, Detail download button, profile download record, download API, audio offline package, or download login trigger. Original reports are accessed only through source/outbound links from source/compliance surfaces.
- 2026-06-03 prototype feedback pass:
- Detail module cards are clickable as a whole and keep a
查看详情affordance. - Module detail pages should use vertical
subtitle + contentflows, not left/right comparison layouts. - Report source, publisher parameters, copyright note, and disclaimer render in one
报告来源card; do not re-add a separate发布机构card or bottom来源与合规card. 局限与疑问shows the "需要继续验证" reminder once at the bottom, not after every paragraph.- Custom overscroll feedback must move content over whitespace and rebound smoothly; do not stretch text or relayout cards during pull.
- If report detail does not open in an emulator or device, first verify that the backend is running and that
RNB_API_BASEis reachable from that runtime. Host loopback, emulator, and physical-device networking are different environments.
- Detail module cards are clickable as a whole and keep a
- Known remaining gaps:
- Real audio stream: needs backend
/audio/{audio_id}/streamor equivalent playable URL in/listen. - Auth and personal state sync: favorites, history, saved listens, and playback progress remain local UI placeholders.
- Outbound events: confirmation sheet exists, but
POST /outbound/eventsis not implemented. - Production API domain: app still requires explicit
--dart-define=RNB_API_BASE=.... - Release signing: not configured beyond Flutter scaffold defaults.
- App icon/final brand visual: not finalized.
- Backend pagination/cache/OSS signed URL: list pagination is still seed-scale; Redis/signed URL policies remain backend work.
- Real audio stream: needs backend