* feat: add CLI workspace merge command and enhance fork with datatable/color support
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix: abort fork on git branch failure, per-datatable error handling, guard resetDiffTally
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* test: add fork/merge integration tests covering full cycle
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix: support deploying deletions during fork merge (archive/delete in target)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* refactor: share deploy logic between CLI and frontend via windmill-utils-internal
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix: revert frontend to self-contained deploy, fix failure_module handling
The frontend imports windmill-utils-internal from npm (published v1.3.4)
which doesn't have the new deploy module yet. Revert frontend to its own
self-contained implementation with two improvements:
- Pass failure_module to getAllModules in flow deploy and getItemValue
- Add deleteItemInWorkspace for deploying deletions during merge
The shared deploy.ts in windmill-utils-internal remains for CLI use.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat: share deploy logic via published windmill-utils-internal, add comprehensive integration tests
- Publish windmill-utils-internal v1.3.8 with DeployProvider interface
- Frontend now uses shared deploy module (deployItem, deleteItemInWorkspace,
checkItemExists, getOnBehalfOf, getItemValue) via provider adapter
- Add 4 new integration test sub-tests: all item types, secret variables,
special characters, partial deploy + resetDiffTally
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix: remove unused folderName function from frontend utils_workspace_deploy
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
* fix: sanitize flow step summaries for filesystem-safe names
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* chore: bump windmill-utils-internal to 1.3.6
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix: handle Windows reserved device names in flow step sanitization
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix: collapse consecutive underscores in sanitized flow step names
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* chore: bump windmill-utils-internal to 1.3.7
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* bump
---------
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
* fix: parse Python datetime.datetime and datetime.date type annotations correctly
The Python parser only matched ExprKind::Name for type annotations, so
`datetime.datetime` (an Attribute expression) silently fell through to
Typ::Unknown and no datetime picker was shown in the UI.
- Extend parse_expr to resolve `datetime.*` attribute access (alongside
the existing `wmill.*` handling)
- Add Typ::Date variant for `datetime.date` → JSON schema format "date"
- Update python worker to import and convert `date.fromisoformat()`
- Update argSigToJsonSchemaType, AI types, schema validation, and SQL
datatype wasm for the new Date variant
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* all
* all
* all
* all
---------
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
* dual build for utils-internal
* bump version
* feat(cli): add aiagent module support to inline script extraction/replacement
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* add missing field in openapi
* bump yaml validator version
* cleaning
* cleaning
* cleaning
* nit
* cleaning
* cleaning
---------
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
* fix(schema): preserve user-defined JSON schema for Python list[dict]
Fixes issue where JSON schema properties manually defined in the UI are
lost when saving Python scripts with list[dict] or untyped array parameters.
Changes:
- Preserve all items fields (properties, required, additionalProperties, etc.)
- Preserve items.type instead of hardcoding "object"
- Preserve type for untyped parameters using nullish coalescing
- Add type safety check for items preservation
The Python parser cannot infer object properties from list[dict] annotations.
This fix preserves user-defined schema fields when parser cannot infer structure.
Fixes#7209
* fix(schema): preserve all fields for untyped lists, not just properties
Address bot feedback for consistency. The untyped list branch now preserves
all user-defined fields (required, additionalProperties, enum, etc.) just
like the record[] branch, instead of only preserving properties.
This ensures users who define required fields or enum values for untyped
list parameters don't lose that data on save.
Related to #7209
* nits and publish
---------
Co-authored-by: Devdatta Talele <devtalele0@gmail.com>