44 lines
1.2 KiB
Markdown
44 lines
1.2 KiB
Markdown
---
|
|
id: "03-linear-provider"
|
|
title: "Linear mention provider"
|
|
status: completed
|
|
wave: 2
|
|
depends_on: ["01-core-and-task-search"]
|
|
plan: "plan.md"
|
|
spec: "../../specs/ui/requirements/entity-reference-composer.md"
|
|
---
|
|
|
|
# Task 03: Linear Mention Provider
|
|
|
|
## Acceptance
|
|
|
|
- Linear adapter searches issues with structured `SearchFilter.Query` and explicit workspace scope.
|
|
- Results retain immutable issue ID, identifier, title, URL, and non-secret workspace/org scope.
|
|
- Missing config and upstream failures map to normalized statuses with cancellation preserved.
|
|
- Provider authorizer validates workspace organization scope and canonical Linear destinations.
|
|
|
|
## Verification
|
|
|
|
```bash
|
|
cd apps/backend && go test ./internal/linear/... ./internal/mentions/...
|
|
```
|
|
|
|
## Files likely touched
|
|
|
|
- `apps/backend/internal/linear/service_mentions.go`
|
|
- `apps/backend/internal/linear/service_mentions_test.go`
|
|
- `apps/backend/internal/mentions/provider_linear.go`
|
|
- `apps/backend/internal/mentions/provider_linear_test.go`
|
|
|
|
## Dependencies
|
|
|
|
Task 01.
|
|
|
|
## Inputs
|
|
|
|
Spec provider contract; existing `SearchIssuesForWorkspace`, `LinearIssue.ID`, and GraphQL query tests.
|
|
|
|
## Output contract
|
|
|
|
Report mapping/scope, files changed, exact tests, blockers, risks, and mark task/plan done.
|