Skip to content

Arkitect 2.1.0

Choose a tag to compare

@github-actions github-actions released this 23 Sep 23:52
· 148 commits to main since this release
0c26610

Added

  • Draw.io validate warns when two edges between the same two nodes, in either direction, run along one line, naming both: drawn that way they read as one double-headed line of one kind (#272).
  • Both build reports list, under namesAProduct, a plain box whose label names a product with a bundled mark, with the node, the text and the id an icon node would draw; a note is never asked, and a generic word (now also "bus" and "schema") is not a product (#240).
  • Draw.io validate places an unconstrained edge end where Draw.io's router does (an L between diagonal boxes), and warns when a route runs through a node, not only a caption, or when two edges share one line into the same port (#242, #246).
  • Draw.io validate prints info lines for an icon no edge touches and an edge that ends on a container's border, naming its children; the Draw.io build report notes the boundary edge too, and Excalidraw's notes the icon, since a scene cannot tell one. Neither changes PASS or the exit code (#244, #245).
  • Draw.io validate warns when a title, legend or edge label lies across a container's border or over its name, and when a page fit to 1920px wide draws its labels under 9px; each page line now counts its icons (#243, #247).
  • Draw.io boundaries take labelAlign (left, center, right) to move their name along the top; an unknown value keeps the default and is listed under unknownKinds, and a spec without it builds byte-identical (#250).
  • analyze --find "<label>", in both engines, returns the full id of the cell or shape a label names, with its page and geometry, even in a compressed Draw.io page; it prints no page XML or image data, and --cells stays label-free. The editing references send a named component there (#266).

Changed

  • Fetched logos, made icons and libraries installed from the public catalogue are cached in the store, ~/.arkitect/<engine>/ (or $ARKITECT_HOME), beside your learned style, so a plugin update no longer loses them. What was cached inside the plugin before is still read from there; nothing new is written there (#257).

Fixed

  • The Draw.io numbered-flow pattern says what to number: one sequence per page, from 1, on edges only; entry points and parallel paths are not steps, so they stay unnumbered or take letters. A new eval case measures it (#251).
  • Asked about a diagram's style, an agent that loaded no skill promised to remember it for later diagrams. The Claude Code plugin now carries one hook: for a prompt that asks about a diagram's style, and no other, it adds the rule that a style is kept only by /learn-drawio-style or /learn-excalidraw-style, and sends back once a final reply that still makes the promise (#265).
  • AGENTS.md and the Excalidraw skill no longer say style is a field in neither engine: Excalidraw applies a top-level style, and only one on a node, edge or boundary is dropped and listed under unknownFields. A test holds the contract to the builder (#268).
  • Both drawing skills' report step, and AGENTS.md's, names each validate warning left with every id it gives, as a defect still there, and each defect seen in the render and left by page, never "minor" or "a few"; a new eval case holds the report to it (#248). Both validators say it where the agent reads it: the PASS line counts the warnings, and a last line says each is a defect to fix or quote with its ids.
  • The eval script's syntax test passes scripts/eval.sh relative to the repository, so it no longer fails on Windows when the bash on PATH is WSL's (#267).