Files

29 lines
2.7 KiB
Markdown

# 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.