Skip to content

Rename geometry workflow API to Catalyst#1978

Open
maciej-flexcompute wants to merge 4 commits intomainfrom
maciej/codex/catalyst-workflow-api
Open

Rename geometry workflow API to Catalyst#1978
maciej-flexcompute wants to merge 4 commits intomainfrom
maciej/codex/catalyst-workflow-api

Conversation

@maciej-flexcompute
Copy link
Copy Markdown
Collaborator

@maciej-flexcompute maciej-flexcompute commented Apr 9, 2026

Summary

  • replace the public geometry workflow knobs with workflow="standard" or workflow="catalyst"
  • keep the existing REST compatibility field at the serialization boundary while removing nextflow naming from the Python package and tests
  • add regression coverage for Project.from_geometry passthrough and the Catalyst-to-REST mapping

Testing

  • python3 -m py_compile flow360/component/project.py flow360/component/geometry.py flow360/cloud/flow360_requests.py tests/simulation/test_project.py
  • uv run pytest tests/simulation/test_project.py -q

Note

Medium Risk
Moderate risk because it changes the public geometry/project creation API and the serialized request field sent to the backend; incorrect mapping could route geometry processing through the wrong pipeline.

Overview
Renames the geometry-processing pipeline switch from Nextflow wording to a workflow selector. Geometry/project creation now accepts workflow="standard"|"catalyst" (default standard) instead of the prior boolean flag, with added validation.

Updates the REST payload mapping and adds regression tests. GeometryDraft serializes workflow="catalyst" to useCatalyst=true in NewGeometryRequest, and Project.from_geometry() passes the workflow through; new tests cover both passthrough and correct API payload for standard vs catalyst.

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

Copy link
Copy Markdown

@cursor cursor bot left a comment

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 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.

Reviewed by Cursor Bugbot for commit 9bf84bc. Configure here.

use_catalyst: bool = pd_v2.Field(
default=False,
alias="useNextflow",
description="Route geometry processing through Nextflow pipeline instead of legacy system",
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Missing REST alias changes serialized payload field name

High Severity

The old use_nextflow field had an explicit alias="useNextflow" which ensured the REST API payload used the key useNextflow. The rename to use_catalyst removed this explicit alias, so the alias_generator=to_camel on Flow360RequestsV2 now produces useCatalyst instead. Since dict() calls model_dump(by_alias=True), the serialized payload key has silently changed from useNextflow to useCatalyst. The PR description explicitly states the intent to "keep the existing REST compatibility field at the serialization boundary," which means the field needs alias="useNextflow" to preserve backend compatibility. Without it, the backend will not recognize the new key and the Catalyst workflow will never activate.

Additional Locations (1)
Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit 9bf84bc. Configure here.

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.

@maciej-flexcompute This is going to be handled by the Java alias I think..? Although if we are changing the names here, we could probably just drop the old name in the Java API as well?

use_catalyst: bool = pd_v2.Field(
default=False,
alias="useNextflow",
description="Route geometry processing through Nextflow pipeline instead of legacy system",
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.

@maciej-flexcompute This is going to be handled by the Java alias I think..? Although if we are changing the names here, we could probably just drop the old name in the Java API as well?

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.

2 participants