Skip to content

fix: task date tools expose only start + due (drop the UI-invisible end_date) - EXO-88465 - #627

Merged
bmestrallet merged 1 commit into
feature/ai-contributionfrom
feat/task-drop-end-date-EXO-88465
Jul 22, 2026
Merged

bmestrallet merged 1 commit into
feature/ai-contributionfrom
feat/task-drop-end-date-EXO-88465

Conversation

@bmestrallet

Copy link
Copy Markdown

Follow-up to #620 addressing @jihed_chabbeh's report on EXO-88465: "setting start + end date on the same prompt sets only the start date; afterwards the end date can't be set by AI."

Root cause

A task has three persisted date columns (START_DATE / END_DATE / DUE_DATE), but the eXo Task UI only shows "Start Date" + "Due date", and that "Due date" binds to dueDate (TaskFormDatePickers.vue v-model="dueDate"TaskDrawer.vue updateTaskDueDate sets task.dueDate). The UI never reads or writes endDate — it is vestigial.

The MCP tools, however, exposed a separate end_date that writes endDate. So when a user asked EVA to set the "end date", the agent wrote the field the UI doesn't display → the visible "Due date" stayed empty ("only start was set / end can't be set"). Reproduced live: set_task_dates(start, end) sets both fields server-side, but the UI shows only Start because it reads dueDate (which was never set); workload = due − start, confirming dueDate is the canonical end-of-window.

Fix

Align the AI tools to the UI — expose only start_date + due_date:

  • Removed the end_date parameter + setEndDate(...) from set_task_dates, create_task_in_project, create_personal_task (Javadoc updated; endDate left untouched elsewhere for legacy code).
  • Removed end_date from those three tools in ai-tool-definitions.json; corrected the set_task_dates description from "omit a date to clear it" → "omitting a date leaves it unchanged" (the patch semantics from fix: set_task_dates wipes other dates (patch semantics) - EXO-88465 #620).

Now "set the end/due date" via EVA writes dueDate — the field the UI shows.

Tests

TaskMcpToolTest updated to the new signatures; kept the start-only patch regression and added a due-only one (updates due, never touches start/end). mvn test -pl services -Dtest=TaskMcpToolTest → 55 run, 0 failures. Verified the UI→dueDate binding in the Vue components before removing anything.

🤖 Generated with Claude Code

… that the UI doesn't show) - EXO-88465

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@bmestrallet
bmestrallet requested a review from ahamdi July 20, 2026 13:36
@sonarqubecloud

Copy link
Copy Markdown

@bmestrallet
bmestrallet merged commit 5fac27f into feature/ai-contribution Jul 22, 2026
9 checks passed
@bmestrallet
bmestrallet deleted the feat/task-drop-end-date-EXO-88465 branch July 22, 2026 16:37
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.

1 participant