Skip to content

Arkitect 2.2.1

Choose a tag to compare

@github-actions github-actions released this 01 Oct 15:34
· 112 commits to main since this release
fff9e0b

Added

  • doctor opens with the version, root and platform, and says which style each engine draws with: the house style, an applied override, or an ignored one with the fields at fault, never their values (#309).
  • doctor checks that the Arkitect adapters in the current project point at this install, and names any that point at another install or at one that is gone (#310).
  • arkitect install gemini writes GEMINI.md, the default project context file Gemini CLI actually reads, instead of relying on an AGENTS.md alias.

Changed

  • The docs are 11 pages, not 17: install.md takes agent setup and the npm and npx routes, apps.md the Excalidraw container, Draw.io Desktop and the MCP server, icons.md all five icon pages, and maintenance.md the pack-building and review detail. cli.md documents the 2.2.0 spec fields.
  • docs/audit-prompt.md has the auditor sweep seven defect classes and report a measured result for each, measure every host's reading route, not only SKILL.md, search the whole tracker from a file, and diagnose each finding to a cause, a control, its reach, the commit that introduced it and the test that missed it. It files from body files, re-running each reproduction first and reading each issue back after. Its issues carry audit, and its rejected ideas become one issue closed as not planned, so the next audit reads them as settled.
  • Issues carry no release. The release:patch, release:minor and release:major labels are gone; the bump is picked when a release is prepared, from [Unreleased] (docs/maintenance.md, "Version bumps").

Fixed

  • The edit-existing eval case takes "validates successfully" as a validation result, as it takes PASS; an accurate report failed on it.
  • doctor exits 1 when Node is older than 20 or a bundled asset is missing or does not parse; it always exited 0 (#308).
  • doctor parses the icon catalog, the pack list, the AWS pack, the Excalidraw library index and the plugin manifest, and checks every file they name. A file cut short read "present" (#306).
  • doctor reports the browser an Excalidraw PNG render would use or why its ARKITECT_BROWSER pin is refused, and on Linux the display or xvfb-run a Draw.io export would use, from the renderers' own discovery (#305).
  • doctor checks the local Excalidraw app's whole route: the docker CLI, Compose, a running local engine and the compose file. A remote engine is named, not contacted (#307).
  • arkitect drawio sheets --help prints usage and exits 0; it looked for a pack called --help and threw (#311).
  • The committed Excalidraw AWS data-platform example validates clean: its error lane lines up with the band below, so the straight edge into the dead-letter queue misses the lane's name (#319).
  • Excalidraw route: "avoid" finds a detour when a band as wide as the drawing leaves no lane between columns. It took its lanes from the whole drawing, found none, and kept the crossing (#319).
  • An Excalidraw edge label with something on both sides of its run's middle slides along the run to the first spot clear of nodes, text, lines and boundary strokes; one sat on an icon in the AWS example. A rebuilt spec with such a label draws it elsewhere (#319).
  • The report check runs after a build by arkitect, npx arkitect, any engine alias (dio, ex) and the PowerShell tool, not only by a script path or bin/arkitect.mjs (#301).
  • The Codex skill sends the agent to one engine guide instead of all of AGENTS.md first, and the AGENTS.md pointer says the guide takes the contract's place under Codex: 15,894 bytes off every Codex diagram (#303).
  • The adapters and AGENTS.md teach icon ... --compact, as both guides already did: 145 bytes for "bedrock" instead of 4,611 (#304).
  • Both builders report an unsupported boundary kind under unknownKinds, including its scope fallback and the valid choices, instead of silently discarding it (#300).
  • Excalidraw validate warns when an arrow runs through free text: a caption, a sublabel, a boundary's name or the arrow's own label, naming both. Bound labels don't count (#316).
  • An Excalidraw edge label takes the other side of its run when the preferred side is crossed by another edge or holds more text, and a label whose middle falls on a jog too short for it goes on the route's longest run. Shorter runs under captions (#314) had moved one onto another edge's line; the elbow labels #315 left on their lines are clear.
  • The free label of a straight diagonal Excalidraw edge moves out along the line's normal until it clears it, below the line when above holds more text; it used to sit on its own line. Level and upright labels are where they were (#315).
  • Excalidraw edges that meet one side of a node at one point are spread along it, 28px apart, ordered by where each goes, so a fan-out, a fan-in or a request and its reply draws as separate lines; validate warns when two arrows share more than 10px of one line. A rebuilt spec with fan-in or fan-out draws differently (#313).
  • An Excalidraw edge leaving a node downward, or entering it from below, runs clear of the node's caption and sublabel: the rectangle its arrows bind to reaches down over them, and a loop comes back in under them. A rebuilt spec with stacked captioned nodes draws differently (#314).
  • Excalidraw arrows into a cylinder, an actor or a library icon bind to a transparent rectangle over the node, in its group, instead of a line or one piece of it, so they follow the node when it is dragged; validate refuses a binding to an element the app cannot bind. A rebuilt spec gains that rectangle per such node; routes are unchanged (#294).
  • The Excalidraw preview frames a rotated element whole; SVG and PNG sized the viewport from its unrotated box and cut it off (#297).
  • Excalidraw build reports when an edge's explicit colour, dash or width contradicts the sample for its connector kind in the legend (#296).
  • CI's npm dry run takes a prerelease version: npm 12 refuses even a dry run over a published one, which turned main red once 2.2.0 shipped (#126).