Bohan Jiang
3645bdb5b6
feat(issues): add start_date field with progressive disclosure (MUL-2274) (#2696)
* feat(issues): add start_date field with progressive disclosure (MUL-2274)
Mirrors the existing due_date implementation end-to-end so an issue can
express a planned start in addition to a deadline. Surfaces start_date as
an optional sidebar property alongside priority / due_date / labels (added
in MUL-2275), with consistent picker, board/list/sort, activity, and inbox
plumbing.
Backs the Project Gantt work (parent MUL-1881) and keeps the
progressive-disclosure attribute experience consistent.
- DB: migration 091 adds issue.start_date TIMESTAMPTZ.
- sqlc: ListIssues / CreateIssue / UpdateIssue / CreateIssueWithOrigin /
ListOpenIssues read & write start_date.
- Backend: IssueResponse + create/update/batch-update handlers parse and
emit start_date with RFC3339 validation; new start_date_changed activity
event + subscriber notification (with prev_start_date in event payload).
- CLI: --start-date flag on `multica issue create` / `issue update`.
- Frontend: StartDatePicker component, start_date wired into Issue type,
Zod schema, draft / view stores, sort util, header sort + card-property
options, list-row / board-card display, create-issue modal, and the
issue-detail progressive-disclosure "+ Add property" surface (visibility
rule, picker row, add-property menu icon + label).
- i18n: en + zh-Hans for sort_start_date / card_start_date /
prop_start_date / activity start_date_set / start_date_removed /
picker start_date.trigger_label / clear_action / inbox labels.
- Tests: new TestNotification_StartDateChanged; existing Issue / draft /
modal fixtures extended with start_date.
Co-authored-by: multica-agent <github@multica.ai>
* feat(issues): align start_date with due_date in actions menu and CLI table
- Add Start Date submenu (today / tomorrow / next week / clear) in
actions menu, mirroring Due Date — parity with the Due Date quick
setters in list/board context and 3-dot menus.
- Add corresponding en / zh-Hans i18n keys
(actions.start_date / start_today / start_tomorrow / start_next_week
/ start_clear).
- CLI human table for `multica issue list` and `multica issue get`
now shows a START DATE column next to DUE DATE; --full-id variant
too.
Co-authored-by: multica-agent <github@multica.ai>
---------
Co-authored-by: multica-agent <github@multica.ai>
2026-05-17 15:01:38 +08:00
..
2026-05-09 16:11:58 +08:00
2026-05-09 16:11:58 +08:00
2026-05-11 12:39:45 +08:00
2026-05-11 12:39:45 +08:00
2026-05-13 18:26:04 +08:00
2026-04-28 19:21:13 +08:00
2026-05-15 16:06:58 +08:00
2026-04-21 14:42:52 +08:00
2026-05-06 16:16:12 +08:00
2026-05-15 18:27:56 +08:00
2026-05-13 16:57:34 +08:00
2026-05-13 16:57:34 +08:00
2026-05-14 15:23:36 +02:00
2026-05-09 13:12:00 +08:00
2026-05-09 13:12:00 +08:00
2026-05-14 12:00:04 +08:00
2026-04-28 16:07:24 +08:00
2026-05-15 16:06:58 +08:00
2026-05-13 12:51:16 +08:00
2026-05-15 18:51:02 +02:00
2026-04-23 10:35:55 +08:00
2026-04-28 14:50:28 +08:00
2026-05-13 18:24:15 +08:00
2026-05-13 18:24:15 +08:00
2026-05-16 21:26:30 +02:00
2026-05-16 21:26:30 +02:00
2026-05-16 09:32:15 +02:00
2026-05-13 12:51:16 +08:00
2026-05-07 15:50:27 +08:00
2026-05-07 15:50:27 +08:00
2026-05-06 14:31:33 +08:00
2026-04-28 14:50:28 +08:00
2026-05-04 21:24:56 +08:00
2026-05-09 13:12:00 +08:00
2026-04-30 15:35:12 +08:00
2026-05-15 18:44:08 +08:00
2026-03-30 22:37:59 +08:00
2026-05-17 15:01:38 +08:00
2026-04-27 14:23:42 +08:00
2026-04-28 14:50:28 +08:00
2026-05-06 11:01:22 +02:00
2026-04-21 20:32:33 +08:00
2026-05-09 13:12:00 +08:00
2026-04-29 17:07:54 +08:00
2026-04-28 14:50:28 +08:00
2026-05-15 12:47:38 +08:00
2026-05-15 12:47:38 +08:00
2026-05-06 14:09:35 +08:00
2026-04-28 14:50:28 +08:00
2026-05-13 18:46:20 +08:00
2026-05-06 14:31:33 +08:00
2026-05-06 14:31:33 +08:00
2026-04-23 17:07:34 +08:00
2026-04-25 02:06:00 +08:00
2026-04-23 17:07:34 +08:00
2026-04-28 14:50:28 +08:00
2026-05-03 11:13:34 +08:00
2026-05-03 11:13:34 +08:00
2026-05-03 11:13:34 +08:00
2026-05-03 11:13:34 +08:00
2026-05-11 14:39:35 +08:00
2026-05-11 14:39:35 +08:00
2026-05-06 13:00:11 +08:00
2026-05-06 13:00:11 +08:00
2026-05-06 13:00:11 +08:00
2026-05-06 13:00:11 +08:00
2026-05-11 22:53:07 +08:00
2026-05-11 22:53:07 +08:00
2026-04-10 20:59:32 +08:00
2026-05-13 18:26:04 +08:00
2026-05-07 01:36:29 +08:00
2026-05-13 18:26:04 +08:00
2026-05-13 18:26:04 +08:00
2026-05-13 18:46:20 +08:00
2026-05-13 18:46:20 +08:00
2026-05-15 13:17:08 +08:00
2026-05-14 15:23:36 +02:00
2026-05-14 14:07:26 +08:00
2026-05-15 17:44:59 +08:00
2026-05-11 12:39:45 +08:00
2026-04-17 16:26:00 +08:00
2026-05-09 12:46:37 +08:00
2026-04-29 15:54:24 +08:00
2026-04-16 19:06:49 +08:00
2026-05-06 16:16:12 +08:00
2026-05-08 19:14:12 +08:00
2026-05-11 15:06:50 +08:00
2026-05-11 15:06:50 +08:00
2026-05-11 15:06:50 +08:00