feat(reminder): add application ports - #179
Conversation
Define reminder application ports for time, location, alarms, delivery, and sync. Related to 1024XEngineer#177
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
There was a problem hiding this comment.
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.
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.
|
@fennoai /review |
Review Complete
The review identifies that |
There was a problem hiding this comment.
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.
Bring in domain and application ports from 1024XEngineer#178/1024XEngineer#179 so CI can resolve reminder modules.
Bring in domain, ports, and local mocks from 1024XEngineer#178/1024XEngineer#179/1024XEngineer#180 so CI can resolve composition imports.
Summary
ReminderApplicationPort/ presenter 端口。Related issue
main为增量切片,单独 CI 可能因缺少 domain 类型失败)Scope
frontend/src/features/reminder/application/interfaces/**frontend/src/features/reminder/application/ReminderApplication.tsfrontend/src/features/reminder/application/index.tsOut of scope
createAppServices/AppRuntime(最后一层)