Files

2.7 KiB

report-notebooklm-app NOTES

2026-06-03

  • App prototype pass moved the Flutter client from a single lib/main.dart shell into feature/domain folders:
    • lib/theme/: Wise-style tokens and ThemeData.
    • 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 remain report-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 + content flows, 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_BASE is reachable from that runtime. Host loopback, emulator, and physical-device networking are different environments.
  • Known remaining gaps:
    • Real audio stream: needs backend /audio/{audio_id}/stream or 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/events is 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.