Skip to content

Add manual trigger file generation in codegen#3676

Draft
devin-ai-integration[bot] wants to merge 2 commits intomainfrom
devin/1769702497-manual-trigger-codegen
Draft

Add manual trigger file generation in codegen#3676
devin-ai-integration[bot] wants to merge 2 commits intomainfrom
devin/1769702497-manual-trigger-codegen

Conversation

@devin-ai-integration
Copy link
Copy Markdown
Contributor

@devin-ai-integration devin-ai-integration Bot commented Jan 29, 2026

Summary

Adds support for generating Python trigger files for MANUAL triggers in codegen, enabling workflows to use manual triggers without requiring ENTRYPOINT nodes. This follows the same pattern as SCHEDULED, INTEGRATION, and CHAT_MESSAGE triggers.

Key changes:

  • New ManualTrigger generator class that extends BaseTrigger
  • Updated generateTriggerFiles() to handle MANUAL trigger type
  • Updated getTriggerClassInfo() to return generated trigger path instead of built-in path
  • Fixed ManualTriggerSerializer to not include type field in objectSchema (matches pattern of other trigger serializers where unionSchema discriminator handles type separately)

Review & Testing Checklist for Human

  • Verify the generated trigger file format matches expected pattern (see snapshot in generate-code.test.ts.snap)
  • Confirm the serializer change doesn't break deserialization - the type field removal follows the same pattern as other trigger serializers
  • Test round-trip: create a workflow with ManualTrigger in Python, serialize to JSON, verify it matches expected format

Test Plan

  1. Run codegen tests: cd ee/codegen && npm test
  2. Run Python integration tests: poetry run pytest ee/codegen_integration/test_code_to_display.py -k "simple_manual_trigger_workflow"
  3. Optionally test end-to-end by creating a workflow with a manual trigger and running codegen on it

Notes

  • The generated trigger class name is derived from the display label (e.g., "Manual Trigger" -> ManualTrigger)
  • This is the first step toward transitioning workflow sandboxes to use manual triggers instead of entrypoint nodes

- Create ManualTrigger generator class following the pattern of other triggers
- Update generateTriggerFiles() to handle MANUAL trigger type
- Update getTriggerClassInfo() to return generated trigger path for MANUAL
- Fix ManualTrigger serializer to not duplicate type field in objectSchema
- Add test fixture for manual trigger codegen
- Update integration test fixture to remove ENTRYPOINT node

Co-Authored-By: harrison@vellum.ai <harrison.ngo719@gmail.com>
@devin-ai-integration
Copy link
Copy Markdown
Contributor Author

🤖 Devin AI Engineer

I'll be helping with this pull request! Here's what you should know:

✅ I will automatically:

  • Address comments on this PR that start with 'DevinAI' or '@devin'.
  • Look at CI failures and help fix them

Note: I can only respond to comments from users who have write access to this repository.

⚙️ Control Options:

  • Disable automatic comment and CI monitoring

Co-Authored-By: harrison@vellum.ai <harrison.ngo719@gmail.com>
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