-
Notifications
You must be signed in to change notification settings - Fork 837
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
enable UrlBlock building in workflow service #1689
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
👍 Looks good to me! Incremental review on 604df13 in 1 minute and 0 seconds
More details
- Looked at
451
lines of code in4
files - Skipped
0
files when reviewing. - Skipped posting
1
drafted comments based on config settings.
1. skyvern/forge/sdk/workflow/service.py:1752
- Draft comment:
Missing import forUrlBlockYAML
. Addfrom skyvern.forge.sdk.workflow.models.yaml import UrlBlockYAML
to avoid runtime errors. - Reason this comment was not posted:
Decided after close inspection that this draft comment was likely wrong and/or not actionable:
The comment points out a potential issue with missing imports. However, looking at the full file, I don't see any evidence thatUrlBlockYAML
is actually needed. Theblock_yaml_to_block
function handles YAML conversion for all block types, and it's using the existing YAML types frommodels.yaml
. There's no indication that a special YAML class is needed for URL blocks.
I could be wrong if there's a separate YAML models file that defines block types that I can't see. The comment author may have knowledge of the codebase architecture that I don't have.
While that's possible, the pattern shown in the code suggests that block types are handled through the existing YAML infrastructure. The comment makes an assumption without strong evidence.
The comment should be deleted as it suggests adding an import without clear evidence that it's needed. The existing YAML handling appears sufficient.
Workflow ID: wflow_GBAFJj4J5Dwyxpkz
You can customize Ellipsis with 👍 / 👎 feedback, review rules, user-specific overrides, quiet
mode, and more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
👍 Looks good to me! Reviewed everything up to 604df13 in 1 minute and 47 seconds
More details
- Looked at
451
lines of code in4
files - Skipped
0
files when reviewing. - Skipped posting
1
drafted comments based on config settings.
1. skyvern/forge/sdk/workflow/service.py:1755
- Draft comment:
Missing import forUrlBlockYAML
. Addfrom skyvern.forge.sdk.workflow.models.yaml import UrlBlockYAML
to ensure the new UrlBlock type is properly integrated. - Reason this comment was not posted:
Comment was not on a valid diff hunk.
Workflow ID: wflow_yA3a0pKnei1lYkAo
You can customize Ellipsis with 👍 / 👎 feedback, review rules, user-specific overrides, quiet
mode, and more.
<!-- ELLIPSIS_HIDDEN --> > [!IMPORTANT] > Add `UrlBlock` support for GOTO_URL tasks in workflow execution and observer initialization. > > - **Behavior**: > - Add `UrlBlock` handling in `execute_step()` in `agent.py` for tasks without navigation or data extraction goals. > - Add `_generate_goto_url_task()` in `observer_service.py` to create `UrlBlock` for initial observer tasks. > - **Models**: > - Update `StepStatus` in `models.py` to allow transition to `completed` from `created`. > - **Workflow Service**: > - Add `UrlBlock` support in `block_yaml_to_block()` in `service.py` to convert YAML to `UrlBlock`. > - **Misc**: > - Remove `is_last` terminal status check in `validate_update()` in `models.py`. > > <sup>This description was created by </sup>[<img alt="Ellipsis" src="https://img.shields.io/badge/Ellipsis-blue?color=175173">](https://www.ellipsis.dev?ref=Skyvern-AI%2Fskyvern-cloud&utm_source=github&utm_medium=referral)<sup> for b1093ead99be460ddc0b933ecdb9a3b5bbf6ffe3. It will automatically update as commits are pushed.</sup> <!-- ELLIPSIS_HIDDEN -->
604df13
to
bd885b3
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
👍 Looks good to me! Incremental review on bd885b3 in 1 minute and 9 seconds
More details
- Looked at
456
lines of code in4
files - Skipped
0
files when reviewing. - Skipped posting
3
drafted comments based on config settings.
1. skyvern/forge/agent.py:345
- Draft comment:
The logic here assumes that if a task has nonavigation_goal
,data_extraction_goal
,complete_criterion
, orterminate_criterion
, it is a GOTO_URL task. This assumption might not always hold true, leading to incorrect task completion status. Consider adding a more explicit check for GOTO_URL tasks. - Reason this comment was not posted:
Decided after close inspection that this draft comment was likely wrong and/or not actionable:
The comment raises a valid concern about the assumption, but looking at the code more carefully:
- The comment is speculative ("might not always hold true")
- The code comment already acknowledges this is "most likely" a GOTO_URL task
- The behavior seems intentional - if a task has none of these goals/criteria, what else could it be for?
- There's no clear suggestion for what a "more explicit check" would look like
- The code handles this case gracefully by just completing the task
I could be missing some edge cases where a task legitimately has no goals or criteria but isn't a GOTO_URL task. The code comment's use of "most likely" suggests the developers are aware of some ambiguity.
While edge cases might exist, the current behavior is a reasonable default - if a task has no goals or success criteria, marking it complete is sensible. The speculative nature of the comment without concrete examples or clear fixes makes it not very actionable.
Delete the comment. While it raises a theoretical concern, it's speculative and doesn't provide actionable feedback. The code's behavior is reasonable and the inline comment already acknowledges the assumption.
2. skyvern/forge/sdk/models.py:83
- Draft comment:
The check foris_last is False
seems unnecessary and restrictive. Consider removing this check to allow more flexibility in updating steps. - Reason this comment was not posted:
Comment was on unchanged code.
3. skyvern/forge/sdk/services/observer_service.py:368
- Draft comment:
The assignmenttask_history_record = {"type": task_type, "task": plan}
is redundant as it is already assigned on line 363. Consider removing this line to clean up the code. - Reason this comment was not posted:
Confidence changes required:50%
Inobserver_service.py
, therun_observer_task_helper
function has a redundant assignment oftask_history_record
in the first iteration block. This can be removed to clean up the code.
Workflow ID: wflow_ZgfKre45AGk6sqMU
You can customize Ellipsis with 👍 / 👎 feedback, review rules, user-specific overrides, quiet
mode, and more.
Important
Add support for
UrlBlock
in workflow service to handle GOTO_URL tasks, including model updates and task execution logic changes.UrlBlock
inexecute_step()
inagent.py
to handle GOTO_URL tasks by marking them as completed immediately.run_observer_task_helper()
inobserver_service.py
to initialize GOTO_URL tasks in the first iteration.UrlBlock
andUrlBlockYAML
toobserver_service.py
andservice.py
.StepStatus
inmodels.py
to allow transition tocompleted
fromcreated
._generate_goto_url_task()
inobserver_service.py
andservice.py
to create GOTO_URL tasks.is_last
invalidate_update()
inmodels.py
.This description was created by for bd885b3. It will automatically update as commits are pushed.