Skip to content

feat(reminder): add reminder engine core (domain + application) - #259

Closed
LUPENGHAN wants to merge 3 commits into
1024XEngineer:mainfrom
LUPENGHAN:feature/reminder-engine-core
Closed

feat(reminder): add reminder engine core (domain + application)#259
LUPENGHAN wants to merge 3 commits into
1024XEngineer:mainfrom
LUPENGHAN:feature/reminder-engine-core

Conversation

@LUPENGHAN

Copy link
Copy Markdown
Contributor

Closes #255

拆分 #245 的第 2/4 层:提醒引擎核心(domain + application),依赖 #258(原生模块 + 脚手架)先合。

标了 draft:这个分支的历史包含 #258 还没合的提交,所以现在 diff 会显示两层加起来的内容。等 #258 合了、这个分支 rebase 到最新 main,diff 会瘦身到只剩这一层,到时候再转成 ready for review。

范围

  • features/reminder/domain/**
  • features/reminder/application/LocalReminderApplication.ts + 全部端口接口
  • shared/time/format.ts,删除 MockClock/MockTimeListener
  • 循环提醒推进到下一次发生时间的修复

纯逻辑层,尚未接任何设备适配器,不影响现有功能。

拆分顺序

  1. feat(reminder): add native alarm and Baidu location modules #258 — 原生模块 + 脚手架
  2. 这个 PR — 提醒引擎核心
  3. 拆分提醒功能 3/4:设备适配器 + SQLite 数据层 #256 — 设备适配器 + SQLite 数据层
  4. 拆分提醒功能 4/4:接线 + 呈现层(替代 #245) #257 — 接线 + 呈现层(替代 feat(reminder): merge gac0812 reminder engine, wire real local data + native-ring race fix #245

Native Android modules for the reminder engine's device layer:
timeflow-alarm (AlarmManager scheduling, ring UI, boot rescheduling)
and timeflow-baidu-location (continuous positioning bridge). Includes
the Expo config plugins that wire them into the native build,
app.config.js (replaces static app.json so the Baidu API key can come
from an env var), and the new package deps/patches these modules need.

No app code references these yet -- pure addition, nothing wired in.
Three unrelated bugs in the already-merged voice/location-search path
(PR 1024XEngineer#243), fixed together since they're small and independent of the
reminder engine work in this stack:
- reuse a recent position during voice handshake instead of blocking
  on a fresh fix (backend location tools + realtime agent)
- preserve newly-started TTS after an interruption instead of letting
  the old stream clobber it
- remove stale push-to-talk listeners left on the shared WebSocket
  connection after a session ends
LocalReminderApplication and its ports (AlarmSchedulerPort,
LocationMonitorPort, DeviceCapabilityPort, NotificationChannels,
ReminderDeliveryPort, ReminderApplicationPort), plus the domain layer
(reminder.ts, strengthDelivery.ts) that drives arm/fire/confirm state
transitions and recurring-schedule advancement.

Pure logic layer: no device-specific adapters yet, nothing wired into
the app. shared/time gains format.ts (used by the delivery strength
calc); MockClock/MockTimeListener are removed since nothing in this
stack still needs a fake clock once the real engine lands.
@vercel

vercel Bot commented Aug 17, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
timeflow Ready Ready Preview Aug 17, 2026 12:29am

@LUPENGHAN

Copy link
Copy Markdown
Contributor Author

拆分粒度还是太粗(这个都还有 55 个文件改动),先撤回去重新想怎么拆,关掉这个。

@LUPENGHAN LUPENGHAN closed this Aug 17, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

拆分提醒功能 2/4:提醒引擎核心(domain + application)

1 participant