feat(pm-wizard): map custom workflow statuses in Trello and JIRA wizards#1376
Merged
Merged
Conversation
nhopeatall
approved these changes
May 18, 2026
Collaborator
nhopeatall
left a comment
There was a problem hiding this comment.
LGTM - the Trello and JIRA wizard changes match the existing Linear workflow-status pattern, use the shared missing-trigger helper correctly, and the focused pm-wizard-hooks test file passes locally (45 tests).
🕵️ codex · gpt-5.5 · run details
Merged
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Brings Trello and JIRA provider wizards to parity with Linear by mapping custom workflow statuses (e.g.
prd) in the Status Mapping step and saving missingpm:status-changedtrigger configs for their dispatch agents.Closes MNG-1064.
Changes
web/src/components/projects/pm-providers/trello/wizard.ts):trpc.workflowStatuses.list.queryOptions()inuseProviderHooksand exposeworkflowStatuseson the provider hooks contract.TrelloStatusMappingAdapterrendersworkflowStatuseswhen present and falls back toTRELLO_LIST_SLOTSwhen unavailable.buildSaveTriggerConfigsnow usesbuildMissingStatusTriggerConfigsso mapped custom statuses with dispatch agents get missing trigger configs without overwriting existing ones.web/src/components/projects/pm-providers/jira/wizard.ts): same wiring as Trello — query, hooks contract field, adapter dynamic source, and shared save helper.tests/unit/web/pm-wizard-hooks.test.ts): added eight provider-specificbuildSaveTriggerConfigscases for Trello and JIRA, including a mapped custom status (prd), no-overwrite of existing configs, built-in defaults preservation, and statuses with noagentTypeproducing no configs.Why
Linear's wizard already loads workflow status definitions and maps them dynamically; Trello and JIRA were stuck on static slot constants. With CASCADE supporting custom workflow statuses (e.g.
prd) globally, operators set up on Trello/JIRA had no way to wire those into the status-mapping step or persist a correspondingpm:status-changedtrigger config at save time. This change closes the parity gap.Static slot constants (
TRELLO_LIST_SLOTS,JIRA_STATUS_SLOTS) are retained as fallback data — the existing alerts and friction slot regression tests continue to pass unchanged.Test Plan
npx vitest run --project unit-core tests/unit/web/pm-wizard-hooks.test.ts— 45 tests pass (8 new)npx vitest run --project unit-core tests/unit/web/wizard-alerts-slot.test.ts tests/unit/web/wizard-friction-slot.test.ts— alerts/friction fallback tests still greennpx vitest run --project unit-core tests/unit/web/— all 549 web tests passnpx vitest run --project unit-core— 5680 unit-core tests passnpx vitest run --project unit-api— 1655 unit-api tests passnpx vitest run --project unit-triggers --project unit-backends— 2346 tests passnpm run typecheck— cleannpm run lintfor changed files — cleanOut of scope
🤖 Generated with Claude Code
🕵️ claude-code · claude-opus-4-7 · run details