feat(tools): expose Gantt/timeline scheduling tools (YTMCP-19) #32

Merged
David merged 1 commit from feat/ytmcp-19-gantt-timeline-tools into main 2026-06-26 00:33:41 +02:00
Member

Bump the youtrack-client git dependency to v0.6.0, the release that lands the YTCLI-25 Gantt/timeline scheduling functions (build_timeline, create_link, delete_link, list_issue_links, set_date_field), all of which return Send futures so rmcp's #[tool] macro can wrap them; update Cargo.lock to match.

Surface five new issue tools in src/tools/issues.rs and register them in src/server.rs following the existing tool shape (Parameters arg struct, thin pub async fn delegating to a youtrack_client::api free function, result as pretty JSON):

  • get_issue_timeline: computes a Gantt-style timeline for a query or an explicit issue-id set via build_timeline, with optional overrides for the start-date/estimation/due-date/assignee fields, the dependency/aggregation link verbs, and minutes-per-day. Selector enforces exactly one of query or issue_ids.
  • link_issues / unlink_issues: create and delete a link from a source issue to a target, selecting the slot by its command verb or link-type display name.
  • list_issue_links: lists an issue's links as focused summaries (type, direction, verb, target ids).
  • set_issue_schedule: sets start date and/or due date (each yyyy-MM-dd, via set_date_field with overridable field names) and/or an estimation. Estimation is applied through the command language (apply_command_one with Estimation Xm) rather than the typed update_estimation setter, because update_estimation holds a &dyn Fn body builder across an await and so returns a non-Send future that the #[tool] macro rejects; this matches the repo convention of routing estimation writes through apply_command.

Document the new tools under a Gantt / scheduling group in the README tool inventory.

Signed-off-by: David Randall David@NiceGuyIT.biz

#YTMCP-19

Bump the youtrack-client git dependency to v0.6.0, the release that lands the YTCLI-25 Gantt/timeline scheduling functions (build_timeline, create_link, delete_link, list_issue_links, set_date_field), all of which return Send futures so rmcp's `#[tool]` macro can wrap them; update Cargo.lock to match. Surface five new issue tools in src/tools/issues.rs and register them in src/server.rs following the existing tool shape (Parameters arg struct, thin pub async fn delegating to a youtrack_client::api free function, result as pretty JSON): - get_issue_timeline: computes a Gantt-style timeline for a query or an explicit issue-id set via build_timeline, with optional overrides for the start-date/estimation/due-date/assignee fields, the dependency/aggregation link verbs, and minutes-per-day. Selector enforces exactly one of query or issue_ids. - link_issues / unlink_issues: create and delete a link from a source issue to a target, selecting the slot by its command verb or link-type display name. - list_issue_links: lists an issue's links as focused summaries (type, direction, verb, target ids). - set_issue_schedule: sets start date and/or due date (each yyyy-MM-dd, via set_date_field with overridable field names) and/or an estimation. Estimation is applied through the command language (apply_command_one with `Estimation Xm`) rather than the typed update_estimation setter, because update_estimation holds a `&dyn Fn` body builder across an await and so returns a non-Send future that the `#[tool]` macro rejects; this matches the repo convention of routing estimation writes through apply_command. Document the new tools under a Gantt / scheduling group in the README tool inventory. Signed-off-by: David Randall <David@NiceGuyIT.biz> #YTMCP-19
feat(tools): expose Gantt/timeline scheduling tools (YTMCP-19)
All checks were successful
Check / fmt + clippy + build + tests (pull_request) Successful in 1m6s
Create release / Create release from merged PR (pull_request) Has been skipped
0c0779ff04
Bump the youtrack-client git dependency to v0.6.0, the release that lands the YTCLI-25 Gantt/timeline scheduling functions (build_timeline, create_link, delete_link, list_issue_links, set_date_field), all of which return Send futures so rmcp's `#[tool]` macro can wrap them; update Cargo.lock to match.

Surface five new issue tools in src/tools/issues.rs and register them in src/server.rs following the existing tool shape (Parameters arg struct, thin pub async fn delegating to a youtrack_client::api free function, result as pretty JSON):

- get_issue_timeline: computes a Gantt-style timeline for a query or an explicit issue-id set via build_timeline, with optional overrides for the start-date/estimation/due-date/assignee fields, the dependency/aggregation link verbs, and minutes-per-day. Selector enforces exactly one of query or issue_ids.
- link_issues / unlink_issues: create and delete a link from a source issue to a target, selecting the slot by its command verb or link-type display name.
- list_issue_links: lists an issue's links as focused summaries (type, direction, verb, target ids).
- set_issue_schedule: sets start date and/or due date (each yyyy-MM-dd, via set_date_field with overridable field names) and/or an estimation. Estimation is applied through the command language (apply_command_one with `Estimation Xm`) rather than the typed update_estimation setter, because update_estimation holds a `&dyn Fn` body builder across an await and so returns a non-Send future that the `#[tool]` macro rejects; this matches the repo convention of routing estimation writes through apply_command.

Document the new tools under a Gantt / scheduling group in the README tool inventory.

Signed-off-by: David Randall <David@NiceGuyIT.biz>

#YTMCP-19
David merged commit 6206a67be8 into main 2026-06-26 00:33:41 +02:00
David deleted branch feat/ytmcp-19-gantt-timeline-tools 2026-06-26 00:33:41 +02:00
Commenting is not possible because the repository is archived.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
pandoras-box/youtrack-mcp!32
No description provided.