Skip to content

fix(harbor): recognise multi-step tasks in the converter#509

Open
Ulusha wants to merge 1 commit into
hud-evals:mainfrom
Ulusha:ulusha/fix-harbor-multi-step-detection
Open

fix(harbor): recognise multi-step tasks in the converter#509
Ulusha wants to merge 1 commit into
hud-evals:mainfrom
Ulusha:ulusha/fix-harbor-multi-step-detection

Conversation

@Ulusha

@Ulusha Ulusha commented Jul 23, 2026

Copy link
Copy Markdown

_is_harbor_task requires a root instruction.md, so valid multi-step tasks aren't recognised — their instructions live under steps/<name>/, declared by a [[steps]] array in task.toml. load() then raises no Harbor tasks found or drops every task at parse.

Reproducible on Harbor's own examples/tasks/hello-multi-step-simple:

_is_harbor_task(): False

though Harbor's own tooling builds and runs it fine.

Fix: recognise a task by a parseable task.toml plus an instruction in either form — root instruction.md (single-step) or a [[steps]] array (multi-step). _is_harbor_task and _parse_task share the check.

Behaviour note: _parse_task now rejects an unparseable task.toml (previously tolerated with an empty config), since detection must read it.

Tested: 3 single-step + 2 multi-step tasks accepted; non-Harbor folder, task.toml without instruction/steps, and broken task.toml rejected.


Note

Low Risk
Scoped to Harbor task discovery/parsing in the integration layer, with new tests; behavior change is limited to which task directory layouts are accepted.

Overview
Harbor load/detect no longer treats a root instruction.md as mandatory. Tasks are valid when task.toml parses and either that file exists (single-step) or the config defines a [[steps]] array (multi-step, instructions under steps/<name>/).

_read_task_config, _task_has_instruction, and updated _is_harbor_task / _parse_task share that rule. task.toml alone (no root instruction and no steps) is excluded. Broken task.toml still loads only if a root instruction.md is present (empty config); multi-step dirs without parseable config are dropped because steps cannot be detected otherwise.

Tests add make_multi_step_task and cover detect/load for multi-step tasks, mixed datasets, and bare task.toml rejection.

Reviewed by Cursor Bugbot for commit f6ef295. Bugbot is set up for automated code reviews on this repo. Configure here.

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Cursor Bugbot has reviewed your changes using default effort and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Want higher recall? High effort reviews run extra passes and find more bugs. A team admin can switch effort levels in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit 0198416. Configure here.

Comment thread integrations/harbor.py Outdated
@Ulusha
Ulusha force-pushed the ulusha/fix-harbor-multi-step-detection branch from 0198416 to f6ef295 Compare July 23, 2026 13:08
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