Skip to content

Transformation Workflow#290

Open
Kerem-G wants to merge 1 commit intomasterfrom
unifiedBuildWorkflow
Open

Transformation Workflow#290
Kerem-G wants to merge 1 commit intomasterfrom
unifiedBuildWorkflow

Conversation

@Kerem-G
Copy link
Collaborator

@Kerem-G Kerem-G commented Feb 2, 2026

No description provided.

@Kerem-G Kerem-G linked an issue Feb 2, 2026 that may be closed by this pull request
@Kerem-G Kerem-G marked this pull request as ready for review March 10, 2026 22:28
@github-actions
Copy link

Azure Static Web Apps: Your stage site is ready! Visit it here: https://witty-hill-08172a210-290.centralus.5.azurestaticapps.net

Copy link
Contributor

@doublergreer doublergreer left a comment

Choose a reason for hiding this comment

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

LGTM

@Gonza10V
Copy link
Contributor

@codex make a detailed review of this PR

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR removes the legacy “Assembly Plan” editor/object type and shifts workflow UI focus to the Transformations panel by expanding the Transformation wizard into a multi-step “Design → Build → Collection → Execute” flow.

Changes:

  • Removed the Assembly panel type and Assembly object type from the frontend registries.
  • Deleted the Assembly editor panel/wizard implementation.
  • Expanded TransformationWizard with additional workflow steps and configuration UI (assembly method/compiler/machine selections).

Reviewed changes

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

Show a summary per file
File Description
frontend/src/panels.js Removes the Assembly panel type registration.
frontend/src/objectTypes.js Removes the Assembly object type registration.
frontend/src/components/panels/transformations/TransformationWizard.jsx Adds a 4-step transformation workflow UI and build configuration selections.
frontend/src/components/panels/assembly-editor/AssemblyWizard.jsx Deletes the previous Assembly wizard implementation.
frontend/src/components/panels/assembly-editor/AssemblyPanel.jsx Deletes the previous Assembly panel implementation.
frontend/src/activities.js Removes Assembly object type from the Explorer activity’s listed object types.
Comments suppressed due to low confidence (2)

frontend/src/panels.js:114

  • After removing the AssemblyPlanCreator panel type, GiThorHammer appears to be unused in this file. Please remove the unused icon import to avoid dead code and potential lint/build warnings.
    Experiment: {
        id: "synbio.panel-type.data-collector",
        title: "Data Collector",
        component: CollectionPanel,
        objectTypes: [ ObjectTypes.Experiments.id ],
        icon: FcAddDatabase,

frontend/src/objectTypes.js:105

  • With the Assembly object type removed, the GiThorHammer icon import at the top of this file is now unused. Please remove the unused import to keep the ObjectTypes module clean and avoid lint/build warnings.
        subdirectory: "strains",
        downloadable: true,
    },
    Transformations: {
        id: "synbio.object-type.transformations",
        title: "Transformations",
        listTitle: "Transformations",
        fileNameMatch: /\.json$/,
        icon: GiSewingMachine,
        createable: true,
        extension: '.json',
        subdirectory: "transformations"

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

Comment on lines 61 to 65
objectTypesToList: [
ObjectTypes.Plasmids.id,
ObjectTypes.Strains.id,
ObjectTypes.Assembly.id,
ObjectTypes.Transformations.id,
]
Copy link

Copilot AI Mar 10, 2026

Choose a reason for hiding this comment

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

This PR removes ObjectTypes.Assembly, but there is still code elsewhere that classifies files/folders as synbio.object-type.assembly-plan (e.g., OneDrive mapping for the assemblyPlans subdirectory). After this change, those files will become unclassified/invisible in the explorer. Consider updating the remaining classifier/mapping logic or providing a migration path so existing assemblyPlans content is handled intentionally.

Copilot uses AI. Check for mistakes.
@@ -13,44 +37,126 @@ export default function TransformationWizard() {
const nextStep = () => setActiveStep((current) => (current < numSteps ? current + 1 : current))
Copy link

Copilot AI Mar 10, 2026

Choose a reason for hiding this comment

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

nextStep uses current < numSteps even though activeStep === numSteps - 1 is treated as the last step. With 4 steps (indexes 0–3), this allows activeStep to become 4, which puts Mantine Stepper into an out-of-range/completed state (no <Stepper.Completed> is defined) and can render nothing. Update the increment condition to cap at numSteps - 1 (or compute numSteps from the actual Stepper children) so the last valid step index is not exceeded.

Suggested change
const nextStep = () => setActiveStep((current) => (current < numSteps ? current + 1 : current))
const nextStep = () => setActiveStep((current) => (current < numSteps - 1 ? current + 1 : current))

Copilot uses AI. Check for mistakes.
const nextStep = () => setActiveStep((current) => (current < numSteps ? current + 1 : current))
const prevStep = () => setActiveStep((current) => (current > 0 ? current - 1 : current))

const [assemblyMethod, setAssemblyMethod] = usePanelProperty(panelId, "assemblyMethod", false, AssemblyMethods.MOCLO)
Copy link

Copilot AI Mar 10, 2026

Choose a reason for hiding this comment

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

The const [assemblyMethod, ...] = usePanelProperty(...) line is mis-indented relative to the rest of the function body, which makes the state block harder to scan and looks accidental. Align it with the other const declarations.

Suggested change
const [assemblyMethod, setAssemblyMethod] = usePanelProperty(panelId, "assemblyMethod", false, AssemblyMethods.MOCLO)
const [assemblyMethod, setAssemblyMethod] = usePanelProperty(panelId, "assemblyMethod", false, AssemblyMethods.MOCLO)

Copilot uses AI. Check for mistakes.
Comment on lines 61 to +88
<Button
variant="outline"
fullWidth
style={{ marginBottom: 16 }}
>
Insert Plasmids from SynBioHub
Select Abstract Design
</Button>
<Button
variant="outline"
fullWidth
style={{ marginBottom: 16 }}
>
Select Plasmids
</Button>
</Stepper.Step>
<Stepper.Step
allowStepSelect={activeStep > 1}
label="Collections"
>
<Button
variant="outline"
fullWidth
style={{ marginBottom: 16 }}
>
Import Strains from SynBioHub
Select Backbone
</Button>
<Button
variant="outline"
fullWidth
style={{ marginBottom: 16 }}
>
Select Chassis
</Button>
Copy link

Copilot AI Mar 10, 2026

Choose a reason for hiding this comment

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

Several UI controls are rendered as active buttons but have no onClick handler (e.g., “Select Abstract Design”, “Select Plasmids”, “Select Backbone”, “Select Chassis”, “Select Destination Collection”). As-is they appear functional but do nothing, which is confusing in the workflow. Either wire these to the intended selection workflows, or mark them disabled / replace with non-interactive placeholders until implemented.

Copilot uses AI. Check for mistakes.
Copy link

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 13231a1ec1

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment on lines 62 to 64
ObjectTypes.Plasmids.id,
ObjectTypes.Strains.id,
ObjectTypes.Assembly.id,
ObjectTypes.Transformations.id,

Choose a reason for hiding this comment

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

P1 Badge Preserve access to legacy assembly-plan files

Dropping ObjectTypes.Assembly.id from the Build activity removes the only explorer bucket that can surface existing assembly-plan assets, but the app still classifies OneDrive files under assemblyPlans/*.json as synbio.object-type.assembly-plan (mapOneDriveItemToObjectType in frontend/src/microsoft-utils/oneDrive/fetchFromOneDrive.js). After this change, users with pre-existing assembly plans can no longer find/open those files from the workflow UI, which is a regression in data accessibility unless a migration/fallback path is added.

Useful? React with 👍 / 👎.

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.

Assembly/Transformation workflow frontends

4 participants