v1.59.0
馃殌 Features
-
Flow Control in Dynamic Views:

Besides
parallel, steps can now be grouped into flow blocks with an optional title --opt,loopandbreakblocks,altwithwhen/elsebranches, andtry/catch/finally. Sequence diagrams render these as nested frames, actors stay visible when zoomed in, and during a walkthrough a docked Sequence Outline panel shows the flow as a collapsible tree. #3084, resolves #2745, #2993, #3074 -
Title, Description and Links on Relationship Kinds:
Definetitle,descriptionandlinkon relationship kinds in thespecification, the same way as for element kinds. These properties are inherited by every relationship of that kind and can be overridden per relationship. Thanks @farhan523, #3053, closes #2260 -
Tags on Relationship Kinds:
Define tags on relationship kinds in thespecification. Tags are inherited by every relationship of that kind (merged with the relationship's own tags), so they can be used in view predicates likewhere tag is #tcp. Thanks @farhan523, #3083, closes #2533 -
Programmatic Enrichment and DSL Writeback:
New SDK APIs to seed aBuilderfrom a loaded workspace and write it back to.c4DSL:Builder.fromParsed(data, mode?),LikeC4.parsedModel(),LikeC4.toBuilder(),LikeC4.toTypedBuilder(),LikeC4.toDSL(), and the Node-onlywriteDSL()helper. The DSL round-trip is intentionally lossy -- comments, source positions and original formatting are not preserved. #2984, resolves #2833 -
Diagram Accessibility Improvements:
Diagrams now expose node and relationship text to assistive technologies and allow focused nodes and relationships to be activated from the keyboard. Added keyboard zoom shortcuts for focused diagrams and made zoomable diagrams keyboard-focusable. Thanks @ckeller42, #2990, #3056, fixes #2988, #2915 -
View Description Tooltip in Navigation Panel:
Hovering a view in the navigation menu now reveals its complete description in a tooltip, so long (truncated) descriptions stay readable. Thanks @farhan523, #3060, closes #2933
馃悶 Bug Fixes
-
Inherit relationship kind styles in dynamic views. Thanks @ckeller42, #3055, fixes #2916
-
Fixed
EMFILE: too many open files, watchcrash inlikec4 serve/devon large repositories -- the file watcher now honors the project'sexcludepatterns. Thanks @Vinceveve, #3058 -
Fixed project
excludepatterns so they also filter matching files loaded throughinclude.paths. Thanks @ckeller42, #3093 -
Keep generated
dot,d2,mermaid, andplantumlfiles inside the requested output directory when views come from external include paths. Thanks @ckeller42, #3094 -
Stop stdio MCP servers when the client closes stdin, so file watchers are cleaned up instead of leaving orphaned processes. Thanks @ckeller42, #3097
-
Relationships browser: keep the direct parent of leaf elements when flattening hierarchy, so a nested component's owner stays visible. Thanks @kindasorrow, #3099
-
Fixed sidebar navigation drawer rendering every view as an empty expandable folder instead of a clickable leaf. Thanks @kindasorrow, #3089