diff --git a/eng/MetaInfo.props b/eng/MetaInfo.props index 37e2f6d..ee30d11 100644 --- a/eng/MetaInfo.props +++ b/eng/MetaInfo.props @@ -1,7 +1,7 @@ - 0.0.8 + 0.0.9 LittleLittleCloud git false diff --git a/src/StepWise.WebAPI/DTO.cs b/src/StepWise.WebAPI/DTO.cs index cbf346d..1563e79 100644 --- a/src/StepWise.WebAPI/DTO.cs +++ b/src/StepWise.WebAPI/DTO.cs @@ -130,7 +130,7 @@ public record StepRunDTO( [property:JsonPropertyName("step")] StepDTO? Step, [property:JsonPropertyName("variables")] - VariableDTO[] Variables, + VariableDTO[]? Variables, [property:JsonPropertyName("result")] VariableDTO? Result, [property:JsonPropertyName("exception")] diff --git a/src/StepWise.WebAPI/StepWiseControllerV1.cs b/src/StepWise.WebAPI/StepWiseControllerV1.cs index 48ae9fe..7854059 100644 --- a/src/StepWise.WebAPI/StepWiseControllerV1.cs +++ b/src/StepWise.WebAPI/StepWiseControllerV1.cs @@ -308,7 +308,7 @@ public async Task> ListCheckpointsAsync(string workflow) var checkpointFolder = Path.Combine(_stepWiseServiceConfiguration.Workspace.FullName, StepWiseServiceConfiguration.CheckpointFolderName, workflow); if (!Directory.Exists(checkpointFolder)) { - return NotFound($"Checkpoint folder for workflow {workflow} not found"); + return Ok(Array.Empty()); } var checkpoints = Directory.GetFiles(checkpointFolder).Select(Path.GetFileName).ToArray(); return Ok(checkpoints); diff --git a/stepwise-studio/components/checkpoint-selector.tsx b/stepwise-studio/components/checkpoint-selector.tsx index 7870038..c308775 100644 --- a/stepwise-studio/components/checkpoint-selector.tsx +++ b/stepwise-studio/components/checkpoint-selector.tsx @@ -207,10 +207,13 @@ export const CheckpointSelector: FC = ({ var checkpointName = "checkpoint_" + highest + ".json"; await onSaveCheckpoint?.({ name: checkpointName }); await fetchCheckpoints(workflow); - toast("Checkpoint saved", { description: `Checkpoint has been saved successfully as ${checkpointName}`, }); + } catch (err) { + toast.error("Error", { + description: "Failed to save checkpoint" + err, + }); } finally { setIsSaving(false); } diff --git a/stepwise-studio/components/image-upload.tsx b/stepwise-studio/components/image-upload.tsx index 92a6cad..f94783e 100644 --- a/stepwise-studio/components/image-upload.tsx +++ b/stepwise-studio/components/image-upload.tsx @@ -129,19 +129,10 @@ const ImageUpload: React.FC = ({ onUpload, onCanceled }) => { size={"tiny"} onClick={handleRemove} className="text-base" - disabled={!file || uploading} > Cancel - {/* - {uploadStatus && ( - - {uploadStatus.message} - - )} */} ); }; diff --git a/stepwise-studio/components/workflow.tsx b/stepwise-studio/components/workflow.tsx index 68617ca..39e4998 100644 --- a/stepwise-studio/components/workflow.tsx +++ b/stepwise-studio/components/workflow.tsx @@ -625,15 +625,24 @@ const WorkflowInner: React.FC = (props) => { checkpoint.name, ); - await postApiV1StepWiseControllerV1SaveCheckpoint( - { - query: { - checkpointName: checkpoint.name, - workflow: workflow?.name, - }, - body: completedRunSteps, - } as PostApiV1StepWiseControllerV1SaveCheckpointData, - ); + var res = + await postApiV1StepWiseControllerV1SaveCheckpoint( + { + query: { + checkpointName: + checkpoint.name, + workflow: workflow?.name, + }, + body: completedRunSteps, + } as PostApiV1StepWiseControllerV1SaveCheckpointData, + ); + + if (res.error) { + throw new Error( + "Failed to save checkpoint: " + + res.error, + ); + } }} onCheckpointSelect={async (checkpoint) => { console.log( diff --git a/website/release_notes/0_0.md b/website/release_notes/0_0.md index ee228bc..de02882 100644 --- a/website/release_notes/0_0.md +++ b/website/release_notes/0_0.md @@ -1,3 +1,33 @@ +# Release Notes - StepWise v0.0.9 🚀 + +Welcome to version 0.0.9 of StepWise! We are excited to introduce new features and enhancements designed to enhance the functionality and user experience of both the StepWise Server and WebUI. Here's what's new: + +## New Features and Enhancements 🚀 + +### WebUI Enhancements + +1. **Notification System** 📢 ([#98](https://github.com/LittleLittleCloud/StepWise/issues/98)) + - A new notification system has been implemented to keep users informed about key events, including: + - Saving, deleting, or selecting a checkpoint. + - Starting or completing a workflow. + +2. **Markdown Copy Button** 📋 ([#92](https://github.com/LittleLittleCloud/StepWise/issues/92)) + - A new copy button for markdown content has been added, allowing users to easily copy markdown text to their clipboard, improving workflow efficiency. + +### Server Enhancements 🖥️ + +1. **Workspace Configuration** 🗂️ ([#95](https://github.com/LittleLittleCloud/StepWise/issues/95)) + - The StepWise Server now supports workspace configuration to organize and store: + - Logs + - Checkpoints + - Images and blobs + - This enhancement improves structured data storage and retrieval, enhancing user experience in managing workflow data. + +### Reload/Continue from Previous Checkpoint ♻️ + +- Users can now reload or continue workflows from previous checkpoints with data stored under the `{Workspace}/checkpoints/{WorkflowName}` folder ([#91](https://github.com/LittleLittleCloud/StepWise/issues/91)). This feature ensures data persistence and workflow continuity, allowing users to resume work seamlessly from saved states. + + # Release Notes - StepWise v0.0.8 🚀 Disable python3 kernel in code interpreter example