BACK-401 - Add dueDate support for tasks and milestones across CLI, TUI, Web, and MCP - #910
BACK-401 - Add dueDate support for tasks and milestones across CLI, TUI, Web, and MCP#910MrLesk wants to merge 1 commit into
Conversation
|
You have reached your Codex usage limits for security reviews. Please try again later. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: ac622fb8b7
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| if (value && !value.startsWith("'") && !value.startsWith('"')) { | ||
| return `${prefix}"${value.replace(/\\/g, "\\\\").replace(/"/g, '\\"')}"${comment}`; |
There was a problem hiding this comment.
Preserve YAML null as an absent due date
When a human represents the optional field as valid YAML with due_date: null (or ~), this preprocessing quotes the null token into the literal string "null". normalizeUtcDateTime then throws, and the task/milestone list loaders catch that parse failure and silently omit the entire record from CLI, TUI, and Web views. Exempt YAML null tokens from quoting or normalize them to an absent due date.
Useful? React with 👍 / 👎.
| {task.dueDate && ( | ||
| <div className="mt-1 text-xs text-gray-500 dark:text-gray-400 whitespace-nowrap"> | ||
| Due (UTC): {formatStoredUtcDateForDisplay(task.dueDate, dateFormat)} |
There was a problem hiding this comment.
Show due dates on the default Web board
When users remain on the default /board route, this new due-date rendering is never used because that route renders TaskCard through BoardPage; src/web/components/TaskCard.tsx still displays only the created date in its footer and never references task.dueDate. Consequently due dates are visible in the /tasks table and detail modal but absent from the primary Web task listing, so add an equivalent due-date indicator to the board card.
Useful? React with 👍 / 👎.
| const dueDateText = task.dueDate | ||
| ? ` {gray-fg}(due ${formatDateForDisplay(task.dueDate, { dateFormat, appendUtcLabel: true })}){/}` | ||
| : ""; |
There was a problem hiding this comment.
Show due dates on the TUI Kanban board
When backlog board opens its initial Kanban view, tasks are rendered by renderBoardTui and src/ui/board.ts, whose card content still contains only ID, type, title, assignee, labels, and branch. This due-date text was added only to the task-list renderer, so the canonical interactive board omits deadlines until the user switches views or opens a task; include the due date in the Kanban card renderer as well.
Useful? React with 👍 / 👎.
| <h3 className="text-base font-semibold text-gray-900 dark:text-gray-100 truncate">{bucket.label}</h3> | ||
| {milestoneEntity?.dueDate && ( | ||
| <p className="mt-1 text-xs text-gray-500 dark:text-gray-400"> | ||
| Due (UTC): {formatStoredUtcDateForDisplay(milestoneEntity.dueDate)} |
There was a problem hiding this comment.
Honor the configured date format for milestone deadlines
When a project configures a non-default dateFormat, milestone cards still render due dates in canonical YYYY-MM-DD HH:mm form because MilestonesPage neither receives the configured format from App.tsx nor passes one to this formatter. Task lists, task details, drafts, documents, decisions, and statistics all receive config.dateFormat, so milestone deadlines are the lone Web date display that ignores the user's setting; thread the same setting into this page.
Useful? React with 👍 / 👎.
Summary
Testing