CopilotKit / CopilotKit/outpost

LinearAdapter.pushNewIssue still guesses an initial state for unmapped statuses

Open
#162 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

area: sync roadmap roadmap: next
Dominant language
TypeScript
Stars
7
Forks
3
Avg merge
7d 16h
Merged PRs (30d)
15

Description

Follow-up from #160.

#160 made LinearAdapter.pushStatusChange refuse to guess: StatusMap.fromOutpost falls back to the first entry of its config for any Outpost status with no reverse mapping, and createLinearStatusMap() covers four of TicketStatus's six values, so WAITING_ON_CUSTOMER and WAITING_ON_TEAM both resolved to Triage.

pushNewIssue was deliberately left unguarded (packages/outpost/shared/src/sync/adapters/linear.ts:208):

const stateId = await this.resolveWorkflowStateId(
    this.mapStatusFromOutpost(ticket.status),
);

The reasoning: creating an issue requires picking some initial state, and Triage is a defensible default for a brand-new issue — unlike a status change, where guessing overwrites a state someone deliberately set.

It's arguable though, and it leaves the two paths inconsistent. Worth an explicit decision:

  • keep the fallback for creation, and say so in a comment at the call site, or
  • pass no stateId when the status is unmapped and let Linear apply the team default, or
  • resolve it together with the broader "should WAITING_ON_* map to real Linear states" question

Low urgency — the failure mode is a new issue landing in the wrong column, not an existing one being silently moved.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start in packages/outpost/shared/src/sync/adapters/linear.ts at line 208, then read pushStatusChange and StatusMap.fromOutpost as described in #160. Compare the creation and status-change paths, decide how unmapped statuses should behave, and document or implement the selected policy so new issues no longer have an implicit inconsistency.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
api, backend
Issue type
Refactor
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.