feat(work-packages): add ranked search tool over subject, description, and comments

Registers openproject_search_work_packages (readOnly: true), taking the tool
registry from 18 to 19. searchWorkPackages now unions a precise server-side
subject filter with a broad recency-ordered candidate window, ranks via the
shared search pipeline, and deep-enriches top candidates with description and
comment text. Exact-mode requests skip the broad query entirely.

searchWorkPackages's return type changes from a flat PaginatedResult<WorkPackageSummary>
to WorkPackageSearchPage, nesting the summary under `workPackage` alongside
score, matchedFields, and an optional snippet.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
Lucas Winther
2026-09-18 11:23:48 +02:00
co-authored by Claude Opus 5
parent 9dee458b1f
commit 326db0659f
7 changed files with 349 additions and 29 deletions
+2 -2
View File
@@ -231,10 +231,10 @@ describe("OpenApi MCP Tool Registration & Execution", () => {
await server.close();
});
test("allTools includes openproject_get_openapi_spec (total: 18 tools)", () => {
test("allTools includes openproject_get_openapi_spec (total: 19 tools)", () => {
const toolNames = allTools.map((t) => t.name);
expect(toolNames).toContain("openproject_get_openapi_spec");
expect(allTools).toHaveLength(18);
expect(allTools).toHaveLength(19);
});
});