v2.9.0 — Figma design graphs + .ua data directory
- New analysis mode `/understand-figma` to generate navigable knowledge graphs from Figma files with pages, screens, components, variants, instances, and design-system models including design tokens
- Screen thumbnails in the dashboard sidebar for Figma analysis
- Support for Dart language
- Support for Scala language
- Support for Swift language
- Support for Kotlin language
- Support for Kiro platform
- Support for Nanobot platform
- Support for Trae platform
- Windows install.ps1 vibe support
- Conversation-language auto-detection on first run
- Data directory renamed from `.understand-anything/` to `.ua/` with full backward compatibility for legacy directories
- C++ test and benchmark ignore patterns updated
- Modern TypeScript type-declaration extraction improved
- Semantic batching and output chunking optimizations added
- Structural subdomain edges no longer silently dropped; now generate loud warnings and persisted merge-report.json with automatic retry
- Batch files that load but contribute zero nodes or edges are now flagged in the phase report
- Karpathy wiki parser now handles title-case Index.md and Log.md files and article-root-prefixed wiki links
- Cross-layer container layout cache issue resolved
- Hardened skill-injection ReDoS vulnerability
Highlights
New analysis mode: /understand-figma (#559) — by @gruming
Point the tool at a Figma file and get the same navigable knowledge graph you get for code: pages → screens → components/variants/instances, plus a light design-system model (design tokens and uses_token edges). Deterministic parsing via the Figma REST API, LLM enrichment via a new design-analyzer agent, screen thumbnails in the dashboard sidebar, incremental UP_TO_DATE re-runs, and FIGMA_TOKEN kept strictly in the request header. Schema additions are backward compatible (6 node types, 3 edge types, kind:"design"). Follow-up fixes landed for real-API style-key bridging, published component keys, kind-scoped alias normalization, and dashboard edge-category filters.
Data directory renamed to .ua/ — fully backward compatible
Analysis artifacts now live in .ua/ instead of .understand-anything/. Projects analyzed by older versions need no migration: when a legacy .understand-anything/ directory exists it keeps being used for both reads and writes. The resolution rule is implemented once in core (resolveUaDir) and honored by every bundled script, skill, agent definition, hook, and the dashboard dev server.
New language support
- Dart (#435) and C++ test/benchmark ignore patterns (#480, #466) — by @thejesh23
- Scala (#553, from #493) and Swift (#537) — by @KumamuKuma
- Kotlin (#347) — by @tirth8205
- Modern TS type-declaration extraction fixes (#532) — by @jiang4wqy
New platform support
- Kiro (#364) — by @smjeong84
- Nanobot (#419) — by @chengyongru
- Trae (#235) — by @ZebangCheng
- Windows
install.ps1vibe support (#550) and Windows test portability (#531, #538, #551) — by @KumamuKuma
Merge-pipeline reliability
- Structural subdomain edges (
contains_flow/flow_step/cross_domain) are no longer silently dropped: loud warnings, a persistedmerge-report.json, and automatic retry on the next run (#529). - Batch files that load but contribute zero nodes/edges are flagged in the phase report instead of vanishing into a partial merge (#484).
- Karpathy wiki parser handles title-case
Index.md/Log.mdand article-root-prefixed[[wiki/...]]links (#342). - Cross-layer container layout cache fix (#541) — by @computersniper; UTF-8 domain context on Windows (#524) — by @multimail-dev; Phase 7 cleanup and scan-result preservation fixes (#387, #332) — by @tirth8205 and @ZebangCheng.
Security hardening
- Skill-injection ReDoS hardening (#557) — by @jiang4wqy
- Recursive subagent dispatch prevention (#560) — by @crow-1412
Pipeline performance & DX
- Semantic batching and output chunking (#204),
/understandpipeline perf (#346) — by @tirth8205 - Conversation-language auto-detection on first run (#378) — by @BozhengLong
- Config schema validation tests (#471) — by @yiziff; CI on Node 24 runtimes.
Full Changelog: https://github.com/Egonex-AI/Understand-Anything/compare/v2.7.3...v2.9.0