Skip to content

v1.6.0

Latest

Choose a tag to compare

@eugeniodepalo eugeniodepalo released this 29 Aug 14:57
· 2 commits to main since this release
v1.6.0
76c6292

Read the announcement: GTKX 1.6: Agents and the road to 2.0.

New Features

  • First-class coding-agent context — Codegen now writes an exact, project-local element reference under .gtkx/reference, maintains a marked GTKX rules block in AGENTS.md, and creates a CLAUDE.md bridge when one does not already exist. The generated guidance points agents at the project's own GIR-derived props, signals, methods, development commands, and live-app verification workflow; either output can be disabled through agents.rules or agents.reference. (#586)
  • The CLI now owns MCP setup and executiongtkx mcp runs the server version paired with the project's CLI, while gtkx mcp init --client configures Claude Code, Cursor, VS Code, or OpenCode and prints the Codex snippet to add. mcp.tools, mcp.readOnly, --tools, and --read-only can narrow the registered surface; tools carry client-facing safety annotations, and screenshots can be saved without returning image content. New projects include the GTKX MCP configuration. (#586)
  • Opt-in tree-shakeable generated storesfuture.v2TreeShaking makes each generated class register with its own definition, allowing production builds to drop unused classes, JSX metadata, namespaces, and animated widgets while retaining everything reachable through rendered elements and binding signatures. Static animated(Component) and animated.GtkX uses are rewritten to exact imports; dynamic access keeps the full widget namespace and produces a build warning. New projects enable the flag. (#593)
  • Opt-in Adwaita default bindingsfuture.v2DefaultLibraries makes Gtk-4.0 and Adw-1 the mandatory default set, so libraries names only additional dependencies. Generated Adwaita imports, deployment dependencies, and license notices then follow the same resolved library inventory. New projects enable the flag. (#588)
  • A guided path to GTKX 2.0 — Commands that load gtkx.config.ts now emit one grouped stderr warning for every unset future flag, with stable IDs and targeted migration advice. deprecations.silence acknowledges individual warnings, unknown future keys are reported during codegen, and the new upgrading guide covers every flag and deprecated GTKX symbol so projects can adopt 2.0 behavior while still on 1.6. (#587, #588, #593)

Deprecations

  • libraries: "*" is deprecated because its generated API depends on the build host's installed GIR files; list the libraries the project uses instead. It is removed in GTKX 2.0. (#588)
  • Property access on animated, such as animated.GtkLabel, is deprecated. Import the component and call animated(GtkLabel) instead; the wrapper is cached, and this is the form retained in GTKX 2.0. The exported AnimatedElements type remains as a deprecated alias of AnimatedElementMap until 2.0. (#593)

Bug Fixes

  • Source import discovery now skips every hidden directory, preventing editor caches, copied sources, and other dot-directories from contributing unintended settings schemas or assets to codegen and builds. (#592)

Full changelog: v1.5.0...v1.6.0