Skip to content

feat(platform): add time resume triggers#1766

Closed
radu-mocanu wants to merge 2 commits into
mainfrom
feat/time-triggers-resumable
Closed

feat(platform): add time resume triggers#1766
radu-mocanu wants to merge 2 commits into
mainfrom
feat/time-triggers-resumable

Conversation

@radu-mocanu

@radu-mocanu radu-mocanu commented Jun 27, 2026

Copy link
Copy Markdown
Collaborator

Summary:

  • Add core time resume trigger payload support with cronExpression and timeZoneId.
  • Add WaitTimeTrigger and wire it through the resumable trigger creator/reader.
  • Cover serialization and pending-reader behavior in HITL tests.

Tests:

  • uv run --with-editable ../uipath-core pytest tests/services/test_hitl.py -q
  • uv run --with-editable ../uipath-core ruff check src/uipath/platform/common/interrupt_models.py src/uipath/platform/common/init.py src/uipath/platform/resume_triggers/_protocol.py tests/services/test_hitl.py ../uipath-core/src/uipath/core/triggers/trigger.py ../uipath-core/src/uipath/core/triggers/init.py

Development Packages

uipath

[project]
dependencies = [
  # Exact version (copy-paste ready):
  "uipath==2.11.13.dev1017666985",

  # Any version from this PR (uncomment to use a range instead):
  # "uipath>=2.11.13.dev1017660000,<2.11.13.dev1017670000",
]

[[tool.uv.index]]
name = "testpypi"
url = "https://test.pypi.org/simple/"
publish-url = "https://test.pypi.org/legacy/"
explicit = true

[tool.uv.sources]
uipath = { index = "testpypi" }
uipath-platform = { index = "testpypi" }
uipath-core = { index = "testpypi" }

[tool.uv]
override-dependencies = ["uipath-platform==0.1.78.dev1017666985", "uipath-core==0.5.23.dev1017666985"]

uipath-platform

[project]
dependencies = [
  # Exact version (copy-paste ready):
  "uipath-platform==0.1.78.dev1017666985",

  # Any version from this PR (uncomment to use a range instead):
  # "uipath-platform>=0.1.78.dev1017660000,<0.1.78.dev1017670000",
]

[[tool.uv.index]]
name = "testpypi"
url = "https://test.pypi.org/simple/"
publish-url = "https://test.pypi.org/legacy/"
explicit = true

[tool.uv.sources]
uipath-platform = { index = "testpypi" }
uipath-core = { index = "testpypi" }

[tool.uv]
override-dependencies = ["uipath-core==0.5.23.dev1017666985"]

uipath-core

[project]
dependencies = [
  # Exact version (copy-paste ready):
  "uipath-core==0.5.23.dev1017666984",

  # Any version from this PR (uncomment to use a range instead):
  # "uipath-core>=0.5.23.dev1017660000,<0.5.23.dev1017670000",
]

[[tool.uv.index]]
name = "testpypi"
url = "https://test.pypi.org/simple/"
publish-url = "https://test.pypi.org/legacy/"
explicit = true

[tool.uv.sources]
uipath-core = { index = "testpypi" }

Copilot AI review requested due to automatic review settings June 27, 2026 19:27
@radu-mocanu radu-mocanu added the build:dev Create a dev build from the pr label Jun 27, 2026
@github-actions github-actions Bot added test:uipath-langchain Triggers tests in the uipath-langchain-python repository test:uipath-runtime test:uipath-integrations labels Jun 27, 2026

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds first-class support for Orchestrator “time resume” triggers (Timer) so suspended jobs can be resumed by schedule via Orchestrator, including payload modeling and HITL coverage.

Changes:

  • Introduces UiPathTimeTrigger and wires it into UiPathResumeTrigger as time_resume (timeResume on the wire).
  • Adds WaitTimeTrigger as a suspend value and teaches the resume-trigger creator to emit Timer triggers with cron/timezone payload.
  • Updates the resume-trigger reader to treat Timer triggers as non-pollable (pending) and adds HITL tests for creation/serialization/pending behavior.

Reviewed changes

Copilot reviewed 6 out of 6 changed files in this pull request and generated no comments.

Show a summary per file
File Description
packages/uipath-platform/tests/services/test_hitl.py Adds HITL tests validating Timer trigger creation, serialization aliases, and pending reader behavior.
packages/uipath-platform/src/uipath/platform/resume_triggers/_protocol.py Wires WaitTimeTrigger into trigger type/name detection, populates time_resume, and marks Timer reads as pending.
packages/uipath-platform/src/uipath/platform/common/interrupt_models.py Adds WaitTimeTrigger model with cron expression and time zone aliases.
packages/uipath-platform/src/uipath/platform/common/init.py Exports WaitTimeTrigger through the common module surface.
packages/uipath-core/src/uipath/core/triggers/trigger.py Adds UiPathTimeTrigger and UiPathResumeTrigger.time_resume (timeResume) payload support.
packages/uipath-core/src/uipath/core/triggers/init.py Exports UiPathTimeTrigger from the core triggers package.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@radu-mocanu radu-mocanu force-pushed the feat/time-triggers-resumable branch from 028a8c0 to aa02b2f Compare June 27, 2026 19:50
@radu-mocanu radu-mocanu force-pushed the feat/time-triggers-resumable branch from aa02b2f to 8977bd0 Compare June 27, 2026 20:02
@sonarqubecloud

Copy link
Copy Markdown

Quality Gate Failed Quality Gate failed

Failed conditions
43.2% Coverage on New Code (required ≥ 90%)

See analysis details on SonarQube Cloud

@github-actions

Copy link
Copy Markdown

🚨 Heads up: uipath-integrations cross-tests are FAILING 🚨

Your changes may break one or more integrations in uipath-integrations-python:

  • uipath-openai-agents
  • uipath-google-adk
  • uipath-agent-framework
  • uipath-llamaindex
  • uipath-pydantic-ai

⚠️ These checks are NOT enforced by branch protection rules. Please review the failures before merging.

🔍 Inspect the failed run →

@radu-mocanu

Copy link
Copy Markdown
Collaborator Author

Closing in favor of the split PR stack starting at #1767.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

build:dev Create a dev build from the pr test:uipath-integrations test:uipath-langchain Triggers tests in the uipath-langchain-python repository test:uipath-runtime

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants