mirror of
https://github.com/lobehub/lobehub.git
synced 2026-09-20 04:56:13 +08:00
a4caede6f5
* ✨ feat: workspace task assignment & comment notifications with member mentions - notify the assignee when a workspace task is assigned to them - notify participants on task comment activity and workspace member @mentions - task builtin tool: assigneeUserId support with dual (agent + member) assignee model - workspace member directory exposes email for assignee resolution * 🌐 style: update i18n * 🐛 fix(task): retain notifications after the response and gate them by task access Codex review round 1 on #19035: - deliver assignment / comment pings through after() with try/catch instead of bare void calls (serverless keeps the work alive, rejections are logged); same lifecycle in the tool server runtime - re-authorize comment-ping recipients against the task before delivery: private tasks never leak to members who cannot open them, and creator / assignee rows are re-checked for active membership (shared helper filterActiveWorkspaceMemberIds) - listWorkspaceMembers: optional query + limit (default 50, max 100) on both the server runtime and the client executor, header announces the cap; the tool description only promises IM identities where available - My tasks: hideCompleted is sent as a server status filter and ordering is pinned to the updatedAt-desc page order, so cuts happen before pagination * 🐛 fix(task): unwrap native Slack/Discord mentions in the member directory query Codex review round 2 on #19035: `<@U123>`, `<@U123|name>`, `<@4521>` and `<@!4521>` are folded to the bare platform id (and a leading @ stripped) in normalizeMemberQuery before matching, so the deterministic resolution the tool description promises works when the model passes a mention through verbatim. * 🐛 fix(task): scope member directory lookups to the workspace and push search into SQL Codex review round 3 on #19035: - MessengerAccountLinkModel.findByUserIds takes a scope: only identities active under the current workspace (or personal scope) are exposed, so a member's IM handles linked elsewhere never reach coworkers' tool output - WorkspaceMemberModel.searchAssignableMembers applies the role gate, the query (id / name / handle / email / workspace-scoped IM identity) and the limit in SQL with a separate count; the runtime decorates only the page - My tasks / scheduled: use the comparator token that renders a page newest-first (compareTaskItems inverts orderDirection for date columns) * ✅ test(task): fix test-file type errors flagged by the OSS type-check - integration test: otherUserId is string | undefined at the insert sites - member directory test: seed the owner row directly (addMember is typed to non-owner roles) * 🐛 fix(task): render every fetched row in the paginated task collections Codex review round 4 on #19035 (LOBE-13749): with showSubTasks off, TaskList folded a sub-task away whenever its parent shared the page, so a server page came back sparse while total still counted the hidden rows. My tasks and the scheduled tab now pin showSubTasks alongside the server page order; nesting still tucks a child under a parent on the same page.
26 lines
571 B
JSON
26 lines
571 B
JSON
{
|
|
"name": "@lobechat/builtin-tool-task",
|
|
"version": "1.0.0",
|
|
"private": true,
|
|
"exports": {
|
|
".": "./src/index.ts",
|
|
"./client": "./src/client/index.ts",
|
|
"./client/executor": "./src/client/executor/index.ts"
|
|
},
|
|
"main": "./src/index.ts",
|
|
"dependencies": {
|
|
"@lobechat/const": "workspace:*",
|
|
"@lobechat/prompts": "workspace:*"
|
|
},
|
|
"devDependencies": {
|
|
"@lobechat/types": "workspace:*"
|
|
},
|
|
"peerDependencies": {
|
|
"@lobehub/ui": "^5",
|
|
"antd-style": "*",
|
|
"lucide-react": "*",
|
|
"react": "*",
|
|
"react-i18next": "*"
|
|
}
|
|
}
|