Skip to content

feat(reminder): add application ports - #179

Merged
Wintercom merged 4 commits into
1024XEngineer:mainfrom
gac0812:feat/reminder-application-ports
Aug 11, 2026
Merged

feat(reminder): add application ports#179
Wintercom merged 4 commits into
1024XEngineer:mainfrom
gac0812:feat/reminder-application-ports

Conversation

@gac0812

@gac0812 gac0812 commented Aug 10, 2026

Copy link
Copy Markdown
Contributor

Summary

  • 在 reminder application 层定义完整 端口边界:本地日程读取、时间监听、地点监听、闹钟调度、送达、音频播放、设备能力、系统通知/弹窗/震动、恢复、状态存储、确认同步,以及 ReminderApplicationPort / presenter 端口。
  • 仅新增 TypeScript interface 与 barrel 导出;不包含任何 mock/真实适配器实现。
  • 后续替换原生协调器时,展示层可继续依赖这些端口名称,而不绑定具体基础设施。

Related issue

Scope

  • frontend/src/features/reminder/application/interfaces/**
  • frontend/src/features/reminder/application/ReminderApplication.ts
  • frontend/src/features/reminder/application/index.ts

Out of scope

Define reminder application ports for time, location, alarms, delivery, and sync.

Related to 1024XEngineer#177
@vercel

vercel Bot commented Aug 10, 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 11, 2026 5:47am

@fennoai fennoai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Found one API-contract issue in the new reminder ports.

Validation: git diff --check 7020e82d329b394136eda1e34efa0bc95380dcb7...eac8e3a08e3ccb6f26ff92399ae0c4a40cdcb2f1 passed. Frontend lint/format/type checks could not run because dependencies are not installed in the workspace.

Comment thread frontend/src/features/reminder/application/interfaces/ReminderApplicationPort.ts Outdated
Bring in domain contracts from 1024XEngineer#178 so CI typecheck can resolve ../../domain.
Require exactly one of snooze_until or snooze_minutes so callers cannot
omit timing or pass conflicting values for implementations to prioritize.
@gac0812

gac0812 commented Aug 11, 2026

Copy link
Copy Markdown
Contributor Author

@fennoai /review

@fennoai

fennoai Bot commented Aug 11, 2026

Copy link
Copy Markdown

Review Complete

  • Initialized the pinned PR workspace at the requested base/head SHAs
  • Reviewed the changed application ports across code quality, performance, security, and documentation
  • Ran git diff --check and Prettier validation for the changed application paths
  • Posted one non-blocking PR review with one P2 contract finding

The review identifies that ReminderDispositionSyncPort.submitConfirmed accepts non-confirmed disposition states despite being a confirmed-only sync boundary. Typecheck and lint were not runnable because frontend dependencies are absent in the workspace; the fallback ESLint invocation was incompatible with the repository config.

View job run

@fennoai fennoai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Found one API-contract issue in the new reminder ports. The sync port is documented and named for final confirmation, but its parameter type permits any disposition state; this can send pending or snoozed states through a confirmed-only adapter. Restrict the argument to the confirmed disposition shape (for example, Extract<ReminderDispositionState, "confirmed"> or a dedicated type).

Validation: git diff --check a7d7a7bd5c8264098750fe509976e7e72da8a9c0...9d954623bd1821a82865e29f1a3d24d72d482de6 passed; formatting passed for the changed application paths. Typecheck and lint could not run because dependencies are not installed and the fallback ESLint version is incompatible with the config.

Introduce ReminderConfirmedDisposition with state Extract confirmed
so submitConfirmed cannot accept pending or snoozed dispositions.

@Wintercom Wintercom left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ok

@Wintercom
Wintercom merged commit 99fe12d into 1024XEngineer:main Aug 11, 2026
5 checks passed
gac0812 pushed a commit to gac0812/Tfgxs that referenced this pull request Aug 11, 2026
Bring in domain and application ports from 1024XEngineer#178/1024XEngineer#179 so CI can resolve reminder modules.
gac0812 pushed a commit to gac0812/Tfgxs that referenced this pull request Aug 11, 2026
Bring in domain, ports, and local mocks from 1024XEngineer#178/1024XEngineer#179/1024XEngineer#180 so CI can resolve composition imports.
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 participants