Three fixes to the meetings service:
- `offset` was documented as a 1-based page number but implemented as an
item index, so with `pageSize: 20` a request for page 2 returned items
2-21 — nineteen of the twenty the caller already had. This changes the
observable behaviour of `openproject_search_meetings`: paging now
returns disjoint pages. Shipping two identical pagination bugs with
only the work package one fixed would have been worse.
- `author` was added as a shallow field but never to the `matchType`
union, so `resolveMatchType` fell through and reported a meeting found
by a person's name as having matched on project name.
- `getMeeting` retained `.catch(() => undefined)` on its agenda-item
fetch, swallowing 401/403/429. This is the tool a model calls
immediately after a search hit, so an expired token would have been
reported as "this meeting has no agenda items".
Also drops the duplicate `items` array from `MeetingSearchPage`; the
`items` field on `PaginatedResult` and on `listMeetings` is unchanged.
Co-Authored-By: Claude Opus 5 (1M context) <[email protected]>