Skip to content

Implement PM work item importers (codex) - #2509

Merged
numnx merged 2 commits into
feature/CODUX-161-integrations-adds-project-management-toolsfrom
task/feature-codux-161-integrations-adds-project-mana-t02-codex-mra7udrb
Jul 7, 2026
Merged

Implement PM work item importers (codex)#2509
numnx merged 2 commits into
feature/CODUX-161-integrations-adds-project-management-toolsfrom
task/feature-codux-161-integrations-adds-project-mana-t02-codex-mra7udrb

Conversation

@numnx

@numnx numnx commented Jul 7, 2026

Copy link
Copy Markdown
Collaborator

🧩 Task: Implement PM work item importers

Automated task PR opened by Code UX for T02.

📋 Summary

Sprint: Sprint 161 · Integrations - Adds Project management Tools · Task: T02

Add configurable project-management and collaborative-canvas integrations for Jira, Notion, Asana, Linear, Miro, Lucid, Figma/FigJam, and Mural, with API-backed sprint importers where supported and dashboard settings/import UI that follows the existing Git/Jira importer patterns.

📝 Full Task Prompt
## Objective
Implement API-backed sprint importers for Notion, Asana, and Linear so dashboard and MCP callers can search, fetch context, attach linked scope, and optionally plan from imported work items.

## Scope
- `src/services/sprint-issue-service.ts`
- `src/services/notion-api-client.ts`
- `src/services/asana-api-client.ts`
- `src/services/linear-api-client.ts`
- `src/contracts/project-management-types.ts`
- `src/contracts/mcp-tool-definitions.ts`
- `src/mcp/management/sprint-actions.ts`
- `src/server/sprint-routes.ts`
- `src/server/request-parsers.ts`
- `tests/backend/services/sprint-issue-service.test.ts`
- `tests/backend/server/sprint-issue-search-routes.test.ts`
- `tests/backend/mcp/management-sprint-actions.test.ts`
- `docs/mcp/tools-and-contracts.md`
- `docs/dashboard/sprint-imports.md`
- `docs-web/content/docs/developer-mcp-tools.mdx`
- `docs-web/content/docs/user-dashboard-sprints.mdx`

## Implementation Requirements
1. Consume the T01 settings and linked-source contract for `notion`, `asana`, and `linear`; reject searches with provider-specific token/configuration errors before making network calls.
2. Add Notion search support with `POST https://api.notion.com/v1/search`, `Authorization: Bearer`, and `Notion-Version`, map pages/databases to normalized import results, and fetch page/database block context for prompt attachment where readable content is available.
3. Add Asana task search/import support with `GET https://app.asana.com/api/1.0/workspaces/{workspace_gid}/tasks/search`, project task fallback when a project id is supplied, and task stories/comments when conversation context is requested.
4. Add Linear issue search/import support with `POST https://api.linear.app/graphql`, issue search/filter queries, issue description, labels, state, team/project, assignee, URL, and comments when conversation context is requested.
5. Extend route and MCP parsing so `provider` accepts `notion`, `asana`, and `linear`, with provider-relevant fields `workspaceId`, `projectId`, `teamId`, `teamKey`, `databaseId`, `status`, `state`, `labels`, `assignee`, `search`, `externalIds`, `includeConversation`, `limit`, `sprintId`, `attachToSprint`, and `planAfterImport`.
6. Normalize all provider responses into `RepositoryIssueSearchResult` and linked-source records using `externalId`, stable display keys, source URL, body preview, metadata, and prompt context markdown.
7. Mock `fetch` in tests for success, missing-token errors, malformed limits, explicit id imports, conversation inclusion, MCP search-only mode, sprint attachment mode, and unchanged GitHub/GitLab/Jira behavior.
8. Update MCP and sprint import docs with accepted provider values, required settings, examples, and read-only provider limitations.

## Constraints
- Do not add SDK packages; use `fetch` and small typed client modules.
- Keep GitHub/GitLab/Jira request shapes and tests unchanged except for widened provider unions.
- Do not auto-close or transition Notion, Asana, or Linear items; imports are read/attach only.
- Keep network clients deterministic and fully mockable in tests.
- Do not log API tokens or full secret-bearing request headers.

## Verification
- Run `pnpm exec vitest run tests/backend/services/sprint-issue-service.test.ts tests/backend/server/sprint-issue-search-routes.test.ts tests/backend/mcp/management-sprint-actions.test.ts`.
- Run `pnpm run lint`.
- Success means Notion, Asana, and Linear searches/imports work through backend routes and `manage_sprints import_issues`, while existing GitHub/GitLab/Jira importer tests remain green.

✅ QA Review

⏳ QA review runs after this PR is opened. Check the task card in the dashboard for the outcome once it lands.

🤖 Model & Provider

Provider Codex CLI
Model gpt-5.5

⏱️ Timing

Started 2026-07-07 05:36:08 UTC
Finished 2026-07-07 05:50:58 UTC
Duration 14m 50s

📊 Token Usage

Metric Value
Input tokens 320,756
Cached input tokens 6,837,504
Output tokens 39,004
Total tokens 7,197,264
Invocations 1
Tool calls 90
Active time 14m 22s

Included usage estimate (subscription/local login): $6.19

🌿 Branch Info

Base: feature/CODUX-161-integrations-adds-project-management-tools
Head: task/feature-codux-161-integrations-adds-project-mana-t02-codex-mra7udrb


🤖 Generated by Code UX

@numnx
numnx merged commit cb9a3e4 into feature/CODUX-161-integrations-adds-project-management-tools Jul 7, 2026
6 checks passed
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