MDriven v7.0.x - June 2025
Released: Jul 10, 2025
v7.0.x - June 2025 での更新項目
機能
Designer
- Enhancements
- Vibe/LLM Integration:
- Vibe information now available in the plan dialog.
- Vibe UI LLM updated prompt and fed XML to reduce misunderstandings.
- Vibe View content - work in progress.
- New Vibe-coding technique to let LLM redesign your ViewModel - experimental but encouraging.
- Added setting to xml package loader IncludeAllEvenDefaultValues, to better help with sending good info for Vibe-coding.
- Reworked all calls to LLM/Vibing to be async and non locking.
- Updating LLM engine to Gemini 2.5 in order to hold size of complex UI's.
- Vibe UI format simplified to reduce LLM mistakes.
- Vibe information continued work.
- OCLDebugger has new button to Vibe demo data from a given diagram.
- Vibe information - actions to created views are collected to menugroups.
- ViewModel Design & Configuration:
- Added checkboxes on ViewModelNesting to set Editable and MultiSelect tagged values when Nesting will be rendered as some kind of list.
- Added checkbox on ViewModelColumn for new TV IncludeHere that controls de-reference/cursoring of single-link reference in list nesting.
- When using ListViews, the "IncludeHere" tag value can be set on the Mount-point-column or on a SingleLink-reference to better handle sub-nestings from rows, including MountedViewModels inside ListViewRows.
- New action under Extras/"Convert all viewmodels to actions default Opt-out", to help with large model move to use new action default Opt-out.
- Adding setting on package DefaultOptOutActionsOnNewViewModels, that controls if new ViewModels should treat actions as default opt-out.
- Runtime updated to allow for default-opt-out of actions making it easier to maintain large model where some viewModels should be stable and not get new class actions as they are added - but rather wait for explicit opt-in.
- Designer updated to allow for default-opt-out of actions making it easier to maintain large model where some viewModels should be stable and not get new class actions as they are added - but rather wait for explicit opt-in.
- Action Handling:
- ActionRenderPosition has a new value: ButtonOnly. This is used when a leftside/toolbar action is opted out - but still used in one or more buttons. This change fixes several old problems; specially the one that AreYouSureQuestions where not properly handled of action was outopted but used in button, and that optout level had importance for ViewModelContextAction.
- ActionGroups on Vibed Vms.
- Performance & Stability Improvements
- Vibe Progress Feedback: Better progress feedback on vibing functions.
- WPF Redraw Loop: Issues with recent changes regarding Actions (default optout) and also Tracking of type needed for IncludeHere-option that made the ViewModel editor loop/blink/sluggish due to WPF redraw-loop - fixed.
- Runtime Model Invalidation: Problem that changes to ViewModel name did not invalidate RT model and thus failed - fixed.
- Span Name Change: When changing the name of the Span as it will need to redo the Type.ViewModels. type - fixed.
- Error Check Optimization: Error check GetUsedMembersAndClassifiersAndVariables wrongfully tried to evaluate ShownBy-contextactions that will most likely use other context variables and thus fail - logic updated to avoid wasted time.
- XML Parsing: When parsing xml datablock we now fallback to check for Ansi-datetime on datetimes (before only binary).
Framework
- Enhancements
- ListViews & Mounted ViewModels:
- When building ListViews with de-reference to single nesting (as happens when mounting a ViewModel), there is now support for the IncludeHere tagged value. This will not de-reference and put cursored controls out of the listview as standard; instead, the IncludeHere tag will bring in rendering into the current listview row, making it possible to have a list of mounted ViewModels (all the same definition though).
- When using ListViews, the supported behavior has been extended to allow sub-nestings from a row (previously only worked if sub-nesting was another listview). For single links, these were interpreted as "dereference/render-after," but for MountedViewModel, this made it impossible to have Mounts inside the ListViewRow. To better handle this, the "IncludeHere" tag value can be set on the Mount-point-column or also on a SingleLink-reference.
- ViewModel Design & Configuration:
- Added checkboxes on ViewModelNesting to set Editable and MultiSelect tagged values when Nesting will be rendered as some kind of list.
- Added checkbox on ViewModelColumn for new TV IncludeHere that controls de-reference/cursoring of single-link reference in list nesting.
- Runtime updated to allow for default-opt-out of actions, making it easier to maintain large models where some ViewModels should be stable and not get new class actions as they are added, but rather wait for explicit opt-in. This is a per-ViewModel choice named default-opt-out.
- Search Functionality:
- Seekers in Turnkey will now initialize their vSeekerResultCount to -1, which will be used to avoid showing "No results" prior to the first search.
- The special search for missing words (replacing space with wildcard) has been limited to strings under 200 in length to avoid undue database stress.
- Introducing numberhash:dec for StringFormatAngular, where number:2 is two decimals, but the new numberhash:2 is two decimals unless there are more decimals (i.e., 0.00#).
- Logging & Tracing:
- TraceLogTurnkey now catches the first trace with TRACESTART and prunes app with PRUNEAPP trace entries to better see dynamics of usage.
- XML Parsing: When parsing XML datablock, the system now falls back to checking for Ansi-datetime on datetimes (before only binary).
- Menu Sorting: Improved sorting on menus in web when mixing menus without group and those with group.
- Vibe Information: Continued work with Vibe-information.
- Image Handling for Reports: Image conversion for reports added also for TK-legacy (windows draw).
- ZXing Update: Updated ZXIng to support SKia rendering (post .net6 and linux requirement). Added SkiaSharp Version="3.119.0", SkiaSharp.NativeAssets.Linux Version="3.119.0", ZXing.Net Version="0.16.10", ZXing.Net.Bindings.SkiaSharp Version="0.16.21".
Turnkey
- Enhancements
- ListViews & Mounted ViewModels:
- When building ListViews with de-reference to single nesting (as happens when mounting a ViewModel), there is now support for the IncludeHere tagged value. This will not de-reference and put cursored controls out of the listview as standard; instead, the IncludeHere tag will bring in rendering into the current listview row, making it possible to have a list of mounted ViewModels (all the same definition though).
- When using ListViews, the supported behavior has been extended to allow sub-nestings from a row (previously only worked if sub-nesting was another listview). For single links, these were interpreted as "dereference/render-after," but for MountedViewModel, this made it impossible to have Mounts inside the ListViewRow. To better handle this, the "IncludeHere" tag value can be set on the Mount-point-column or also on a SingleLink-reference.
- ViewModel Design & Configuration:
- Added checkboxes on ViewModelNesting to set Editable and MultiSelect tagged values when Nesting will be rendered as some kind of list.
- Added checkbox on ViewModelColumn for new TV IncludeHere that controls de-reference/cursoring of single-link reference in list nesting.
- Runtime updated to allow for default-opt-out of actions, making it easier to maintain large models where some ViewModels should be stable and not get new class actions as they are added, but rather wait for explicit opt-in. This is a per-ViewModel choice named default-opt-out.
- Search Functionality:
- Seekers in Turnkey will now initialize their vSeekerResultCount to -1, which will be used to avoid showing "No results" prior to the first search.
- The special search for missing words (replacing space with wildcard) has been limited to strings under 200 in length to avoid undue database stress.
- Introducing numberhash:dec for StringFormatAngular, where number:2 is two decimals, but the new numberhash:2 is two decimals unless there are more decimals (i.e., 0.00#).
- Logging & Tracing:
- TraceLogTurnkey now catches the first trace with TRACESTART and prunes app with PRUNEAPP trace entries to better see dynamics of usage.
- XML Parsing: When parsing XML datablock, the system now falls back to checking for Ansi-datetime on datetimes (before only binary).
- Menu Sorting: Improved sorting on menus in web when mixing menus without group and those with group.
- Vibe Information: Continued work with Vibe-information.
- Image Handling for Reports: Image conversion for reports added also for TK-legacy (windows draw).
- ZXing Update: Updated ZXIng to support SKia rendering (post .net6 and linux requirement). Added SkiaSharp Version="3.119.0", SkiaSharp.NativeAssets.Linux Version="3.119.0", ZXing.Net Version="0.16.10", ZXing.Net.Bindings.SkiaSharp Version="0.16.21".
Server
- Enhancements
- Logging & Tracing: Better return of checksum, null checks after real life scenarios. TraceLogTurnkey now catches first trace with TRACESTART and prunes app with PRUNEAPP trace entries to better see dynamics of usage.
不具合の修正
Designer
- UI & Usability Fixes
- ViewModel Editor:
- Reduced saturation on some colors in ViewModelEditor.
- Better info and link to wiki from theme-styling dialog.
- Diagram Placed ViewModels now has the Focus-In-Tree option.
- Consolidated code for introducing PlacingContainer.
- Renaming AdvancedStyling-tab to ThemeStyling.
- Changing to default to WPF viewmodel editor since WebView requires a lot of prereqs.
- Checkbox for requires root object was too wide in ViewModelEditor controls.
- WPF Preview: Newly introduced bug that WPF preview in ViewModelEditor did not update when changing view via combo - fixed.
- Drag and Drop: Fixing drag and drop in tree that sometimes was not caught due to buttons receiving the drop.
- WebClient: WebClient right-click also updated selection which made right-click action to target vSelected hard.
- Paging Buttons: Paging buttons in web-ui (Blazor/Angular); when no results - "No results" is written where normally "0-50 of 1000" is written.
- Menu Sorting: Improved sorting on menus in web when mixing menus without group and those with group.
- Bug Fixes
- PlacingContainer Issues:
- New error message on "Using placingcontainer in root" was a bit trigger happy and talked before knowing - fixed.
- Fixed a glitch in Vibe progress close.
- Detection of issue with missing PlacingContainer in single Nestings when Span has them - this issue break rendering a new error in error check has been added - and also a rescue operation to fix with one click.
- Fixing PlacingContainer Index bug of child PC's.
- Fixed ColumnarLayout to also include PCs on singleLink Nestings.
- DefaultValue of PCIgnoreContent was set to false, but should be False to be ignored. Same for IgnoreContent on PlacingContainer.
- Added IgnoreContent boolean on Columns in PlacingContainers, and on PlacingContainers. IgnoreContent sets the underlying flex-content to zero instead of the default auto (before it was set to content, but since content has poor browser support we switch auto). Currently not implemented in WPF.
- Nesting Issues: Issue with Nesting referring itself - fixed.
- ListViews: A recently created bug from implementation of IncludeHere made ListViews de-reference/cursor/show-only-current not work. This is fixed.
- Live-Edit: A recently created bug from implementation of Default-optout for actions had knocked out live-edit in turnkey due to a missed subscription. Fixed.
- Rename Operation: Rename operation is now checking type-match when updating each expression - before the single expression was just search and replace and that could give erroneous replacements for things having the same name within the same expression.
- selfVM.ExecuteAction: selfVM.ExecuteAction used internal function that could fail if Nestings for searchexpressions were present - fixed.
- Vibe UI GUIDs: VibeUI updated when discovered that LLM changed random signs in GUIDs - fixed.
- StylesInModel: Multiple Issues with StylesInModel and theme data: 1. It only survived save/load if there was at least one Style declared - Fixed 2. It only loaded in turnkey if there was at least one Style declared - Fixed 3. Since it StylesInModel is a Singleton load packageload ran into trouble if it was already present - Fixed.
- Model Load Clean-up: Added Silent clean-up of mishaps discovered on model load (rouge associations and ends).
- TagValue Creation Order: Modlr was confused order tagvalue creation - certain TV should force codegen, some should not - and if we assign the TV value prior to attaching it to owner modlr could not understand - order changed to first add, then set.
- Mounted ViewModel Naming: Better check that Mounted ViewModel does not give duplicate nesting names.
- DoNotPersist Flagging: Updated check that change to modellayer attribute with DoNotPersist does not flag Model as needing change.
- Actions in ViewModel Tree: Problems on Actions in ViewModel tree - intermittent that they disappeared on Nestings, and on really large viewmodels they disappeared after first optout change - root cause discovered and fixed.
- Angular Context Menu: The angular context menu for tables could show wrong set of actions due to bug regarding actions referenced from placed action column and opted out (ButtonOnly renderingposition) - this checking corrects the error from the 20th of May.
Framework
- Bug Fixes
- Placeholder Handling: There were two ways to set placeholder values (one old tagged value, one new subcolumn). TextArea only supported the new way, and Input checked the old way first. Updated to first check the new way, and if that doesn't exist, check the old way for both.
- ListViews & IncludeHere: A recently created bug from the implementation of IncludeHere made ListViews de-reference/cursor/show-only-current not work. This is fixed.
- Live-Edit: A recently created bug from the implementation of Default-optout for actions had knocked out live-edit in Turnkey due to a missed subscription. Fixed.
- Validation Initiation: If zero ordinary columns were present on the Toplevel in ViewModel, the validations used on nestings were not initiated - fixed.
- First Visible Column: Missed check-in for firstvisiblecolumn - fixed.
- MDrivenServerSync-block Checksum: A real-life case where MDrivenServerSync-block was tagged with the wrong ModelChecksum due to the checksum from the actual save block creation not being caught and kept. Instead, the checksum was retrieved again prior to the insert of the sync block, and at this point, the evolve had added a new version. This freak occurrence is now blocked from happening again.
- SearchLogic: A mistake in SearchLogic from the last check-in made TotalCount get the value of pagecount if a special search (missing words+semicolon) was tested but not applied - fixed.
- Checksum Return: Better return of checksum, null checks after real-life scenarios.
- OCLEditor Context: Issue with ocleditor context finding when writing expressions - specially the case self.DeepClone(SomeType.ViewModels.SomeView) was not any good at any of the levels of the inner expression SomeType.ViewModels.SomeView - fixed.
- Seekers Paging:
- The special search for missing words (replacing space with wildcard) had been limited to strings under 200 in length to avoid undue DB stress - fixed.
- The special search for multi-search had issues with AutoForms/Template created seeker forms due to use of vSeekParamWildcard that included wildcard in value to allow for SQLite to not have a parser issue - fixed.
- Seekers-paging-buttons in web did not show count if the count was 1; it does now.
- Report Image Rescaling: Issue in Turnkey that it did not rescale images to fit opendocument reports - fixed with SKia draw.
- Cell Selection Clarity: Clear cell select when multi-rows are selected to avoid user confusion on what will happen on copy.
- Multiselect Checkbox: When shift-clicking straight into the multiselect checkbox in datagrids, nothing happened - fixed.
- Current Row Indicator: When having dynamically hidden columns in datatables - and that column being the first column - the current row indicator was lost in angularjs (works in blazor). To mitigate this, a new style firstvisiblecolumn is now on the first visible column - this is maintained js but set to default on render.
- Modlr TagValue Creation Order: Modlr was confused order tagvalue creation - certain TV should force codegen, some should not - and if we assign the TV value prior to attaching it to owner modlr could not understand - order changed to first add, then set.
- WebClient Right-Click Selection: WebClient right-click also updated selection which made right-click action to target vSelected hard.
- SysDocBatchView Modality: Issue with SysDocBatchView - it won't show if the View requesting reports is already modal - now checks for modality and if so returns document as download direct (default).
- OnShowExpression Dirty Context: Problem with Turnkey OnShowExpression dirtycontext - the sending context's dirtylist was added to the receiving OnShowcontext leading to cancel of instigator if OnShowCOntext was modal and cancelled - fixed.
- Angular Context Menu: The angular context menu for tables could show wrong set of actions due to bug regarding actions referenced from placed action column and opted out (ButtonOnly renderingposition) - this checking corrects the error from the 20th of May.
Turnkey
- Bug Fixes
- Placeholder Handling: There were two ways to set placeholder values (one old tagged value, one new subcolumn). TextArea only supported the new way, and Input checked the old way first. Updated to first check the new way, and if that doesn't exist, check the old way for both.
- ListViews & IncludeHere: A recently created bug from the implementation of IncludeHere made ListViews de-reference/cursor/show-only-current not work. This is fixed.
- Live-Edit: A recently created bug from the implementation of Default-optout for actions had knocked out live-edit in Turnkey due to a missed subscription. Fixed.
- Validation Initiation: If zero ordinary columns were present on the Toplevel in ViewModel, the validations used on nestings were not initiated - fixed.
- First Visible Column: Missed check-in for firstvisiblecolumn - fixed.
- MDrivenServerSync-block Checksum: A real-life case where MDrivenServerSync-block was tagged with the wrong ModelChecksum due to the checksum from the actual save block creation not being caught and kept. Instead, the checksum was retrieved again prior to the insert of the sync block, and at this point, the evolve had added a new version. This freak occurrence is now blocked from happening again.
- SearchLogic: A mistake in SearchLogic from the last check-in made TotalCount get the value of pagecount if a special search (missing words+semicolon) was tested but not applied - fixed.
- Checksum Return: Better return of checksum, null checks after real-life scenarios.
- OCLEditor Context: Issue with ocleditor context finding when writing expressions - specially the case self.DeepClone(SomeType.ViewModels.SomeView) was not any good at any of the levels of the inner expression SomeType.ViewModels.SomeView - fixed.
- Seekers Paging:
- The special search for missing words (replacing space with wildcard) had been limited to strings under 200 in length to avoid undue DB stress - fixed.
- The special search for multi-search had issues with AutoForms/Template created seeker forms due to use of vSeekParamWildcard that included wildcard in value to allow for SQLite to not have a parser issue - fixed.
- Seekers-paging-buttons in web did not show count if the count was 1; it does now.
- Report Image Rescaling: Issue in Turnkey that it did not rescale images to fit opendocument reports - fixed with SKia draw.
- Cell Selection Clarity: Clear cell select when multi-rows are selected to avoid user confusion on what will happen on copy.
- Multiselect Checkbox: When shift-clicking straight into the multiselect checkbox in datagrids, nothing happened -> fixed.
- Current Row Indicator: When having dynamically hidden columns in datatables - and that column being the first column - the current row indicator was lost in angularjs (works in blazor). To mitigate this, a new style firstvisiblecolumn is now on the first visible column - this is maintained js but set to default on render.
- Modlr TagValue Creation Order: Modlr was confused order tagvalue creation - certain TV should force codegen, some should not - and if we assign the TV value prior to attaching it to owner modlr could not understand - order changed to first add, then set.
- WebClient Right-Click Selection: WebClient right-click also updated selection which made right-click action to target vSelected hard.
- SysDocBatchView Modality: Issue with SysDocBatchView - it won't show if the View requesting reports is already modal - now checks for modality and if so returns document as download direct (default).
- OnShowExpression Dirty Context: Problem with Turnkey OnShowExpression dirtycontext - the sending context's dirtylist was added to the receiving OnShowcontext leading to cancel of instigator if OnShowCOntext was modal and cancelled - fixed.
- Angular Context Menu: The angular context menu for tables could show wrong set of actions due to bug regarding actions referenced from placed action column and opted out (ButtonOnly renderingposition) - this checking corrects the error from the 20th of May.
Server
- Bug Fixes
- MDrivenServerSync-block Checksum: Real life case where MDrivenServerSync-block was tagged with wrong ModelChecksum due to checksum from actual save block creation was not caught and kept - instead the checksum was retrieved again prior to insert of synkblock and at this point the evolve had added a new version. Freak occurrence blocked from happening again.