Skip to content

Merge dev to main#295

Merged
zbigniewsobiecki merged 4 commits intomainfrom
dev
Feb 16, 2026
Merged

Merge dev to main#295
zbigniewsobiecki merged 4 commits intomainfrom
dev

Conversation

@zbigniewsobiecki
Copy link
Copy Markdown
Member

Summary

Merge dev branch to main after successful CI. Includes PR #294:

  • JIRA integration with PM-agnostic abstraction layer
  • Fly.io lifecycle removal
  • PM-agnostic CLI commands (trello → pm)
  • All tests updated for PM provider migration

🤖 Generated with Claude Code

zbigniewsobiecki and others added 4 commits February 16, 2026 15:19
… Fly.io lifecycle

Introduce a provider-based PM abstraction (`src/pm/`) that allows CASCADE to work
with both Trello and JIRA through a unified interface. This includes:

- PM provider pattern using AsyncLocalStorage context (`withPMProvider`/`getPMProvider`)
- PMLifecycleManager for board lifecycle operations (labels, comments, card moves)
- JIRA client and adapter with ADF (Atlassian Document Format) rendering
- Trello adapter wrapping existing Trello gadgets behind the PM interface
- PM-agnostic gadgets (`src/gadgets/pm/`) replacing direct Trello gadget usage
- JIRA webhook handler and triggers (comment-mention, issue-transitioned)
- JIRA integration config in project schema and dashboard UI
- Webhook routing for JIRA events alongside existing Trello/GitHub webhooks
- Agent prompts and shared trigger utilities updated for PM-agnostic work items

Also removes all Fly.io-specific lifecycle management:

- Remove startFreshMachineTimer, cancelFreshMachineTimer, scheduleShutdownAfterJob
- Remove FLY_APP_NAME conditionals from all webhook handlers
- Make watchdog timer unconditional (useful for any deployment)
- Drop fresh_machine_timeout_ms and post_job_grace_period_ms DB columns
- Remove related config fields from schema, API, CLI, and dashboard UI
- Add DB migration 0007 to drop the Fly.io columns

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Rename src/cli/trello/ to src/cli/pm/ and update all 7 CLI commands to use
PM-agnostic gadgets from src/gadgets/pm/core/ instead of Trello-specific ones:

- read-card → read-work-item (uses readWorkItem)
- post-comment → post-comment (uses postComment)
- update-card → update-work-item (uses updateWorkItem)
- create-card → create-work-item (uses createWorkItem)
- list-cards → list-work-items (uses listWorkItems)
- add-checklist → add-checklist (uses addChecklist)
- update-checklist-item → update-checklist-item (uses updateChecklistItem)

Also:
- Add JIRA credential scoping and PM provider context to CredentialScopedCommand
- Update Claude Code backend guidance text for PM-agnostic terminology
- Update adapter CLI command strings from cascade-tools trello to cascade-tools pm
- Update CLAUDE.md CLI binary documentation
- Update claude-code backend tests for new tool names

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Update test mocks from direct Trello client calls to PM provider interface:
- prompts.test.ts: ReadTrelloCard/CreateTrelloCard → ReadWorkItem/CreateWorkItem
- fetchImplementationSteps.test.ts: mock getPMProvider instead of trelloClient
- progress.test.ts: mock getPMProviderOrNull instead of trelloClient.addComment
- budget.test.ts: mock getPMProvider.getCustomFieldNumber instead of trelloClient
- debug-runner.test.ts: mock getPMProvider.addComment instead of trelloClient

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…igration

feat: JIRA integration, PM-agnostic CLI, Fly.io removal
@zbigniewsobiecki zbigniewsobiecki merged commit 15c3d96 into main Feb 16, 2026
8 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