feat(trello): route custom mapped lists to workflow-definition agents#1375
Merged
Conversation
Collaborator
|
👀 On it — checking the PR #1375 changes 🕵️ run details |
Codecov Report❌ Patch coverage is
📢 Thoughts on this report? Let us know! |
nhopeatall
approved these changes
May 18, 2026
Collaborator
nhopeatall
left a comment
There was a problem hiding this comment.
LGTM - the Trello custom status trigger follows the existing PM status-dispatch shape, preserves built-in/merged handling through registration and match filtering, and the ready-label resolver now covers custom workflow definitions without breaking the existing splitting/planning/todo paths. I also ran the focused Trello trigger and manifest unit suites locally.
🕵️ 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
Adds a new
TrelloCustomStatusChangedTriggerthat fires when a card is created or moved into a Trello list mapped under a custom (non-built-in) workflow status key, and updatesReadyToProcessLabelTriggerso ready-to-process labels on custom-mapped lists dispatch the correct custom agent. Mirrors the JIRA equivalent shipped in MNG-1066 (#1373).Issue: https://linear.app/mongrel/issue/MNG-1067
Changes
Backend
src/triggers/trello/status-changed.tsTrelloCustomStatusChangedTriggerclass beside the existing per-list factory instances.matches()claims onlycreateCard/updateCardevents whose destination list ID is mapped under a CUSTOM workflow status key (built-in keys are filtered viaBUILTIN_WORKFLOW_STATUS_KEYSso the existing per-list triggers stay authoritative for splitting/planning/todo/backlog/merged, and the other built-ins — inProgress/inReview/done/alerts/friction — naturally short-circuit because they have noagentType).handle()resolves the agent viaresolvePMStatusAgentByIdFromWorkflowDefinitions, preserves the existing trigger enablement,onCreate/onMovegating, pipeline capacity gate, coalesce key (projectId:cardId), URL/title extraction, and logging conventions.src/triggers/trello/label-added.tsresolvePMLabelAgentByList(built-in-only) withresolvePMLabelAgentByStatusIdFromWorkflowDefinitionsso ready-to-process labels on custom-mapped lists resolve to their custom agent type. Logs the matchedcascadeStatusfor parity with the JIRA equivalent.src/integrations/pm/trello/manifest.ts+src/triggers/trello/register.tsTrelloCustomStatusChangedTriggerafter the five built-in status triggers and before the ready-label trigger, keepingTrelloStatusChangedMergedTrigger(snapshot invalidation + backlog-manager retrigger) unchanged.Tests
tests/unit/triggers/trello-custom-status-changed.test.ts(18 tests) covers:matchesfor custom keys, exclusion of built-in keys, exclusion of unmapped lists and no-op moves, full custom dispatch shape, custom on-create dispatch, custom agent lookup,onCreate/onMovegating, no-agent / no-match / disabled-trigger fallthrough, and missing-card-id handling.tests/unit/triggers/label-added.test.tswith a 5-testcustom workflow status mappingblock: dispatch, no-agent slot, missing definition, enablement call site, and disabled-trigger path.tests/unit/triggers/builtins.test.tsto register the new trigger via the mocked PM registry, bump the expected handler count to 26, and pin the registration order (aftertrello-status-changed-merged, beforeready-to-process-label).status-changed.test.ts,merged-status-changed.test.ts,builtins-uniqueness.test.ts) still pass — merged-trigger snapshot-invalidation behavior is preserved.Acceptance Criteria
TrelloCustomStatusChangedTriggermatchescreateCardandupdateCardevents whose destination list is mapped under a custom workflow status key.agentType.onCreate/onMoveparameter, capacity gate, coalesce key, and work item metadata behavior.ReadyToProcessLabelTriggerdispatches custom agents when the fetched cardidListmaps to a custom workflow status.Test plan
🕵️ claude-code · claude-opus-4-7 · run details