Announcementsยท3 min read
๐ Codify v1.2.0 - Apply Notes, Structural Diffs & Smarter dependsOn
Codify v1.2.0 is here! This release adds an apply notes system for post-install guidance, structural diffs for nested config, smarter dependsOn matching, and shell environment validation to catch noisy shell configs before they break a plugin run.
We're excited to announce Codify v1.2.0! This release focuses on making plan and apply output easier to read at a glance, and making dependency resolution more forgiving of how you actually structure real-world configs. Here's what's new.
Apply Notes - Post-Install Guidance, Front and Center
Some resources need a word after they're applied - "restart your terminal for this to take effect," "requires a manual step to finish setup," that kind of thing. Previously there was no good way for a plugin to surface that. In v1.2.0, plugins can attach apply notes to the result of a run, and Codify now shows them front and center once the apply finishes.
Notes are grouped by message, so if five resources all need you to restart your terminal, you get one clear warning listing all five - not five copies of the same line:
โ homebrew, asdf: Restart your terminal or source your shell rc file for these changes to take effectThis shows up in the interactive TUI, the plain-text reporter (for CI and non-TTY environments), and the JSON reporter, so scripted workflows can act on notes too.
Structural Diffs for Object Parameters
Plan output for object-valued parameters - things like nested macos-settings blocks - used to print a flat before/after blob, which made it hard to tell what actually changed inside a large object. Codify now renders a structural, per-key diff instead, showing exactly which fields were added, removed, or modified:
~ "mouse": {
"trackingSpeed": 3,
~ "naturalScrolling": false -> true,
},Unchanged keys stay put for context, and noop entries no longer clutter the output - a small bug where every unchanged field in an object was printed even when nothing changed has been fixed, so diffs now show only what matters.
Smarter dependsOn Matching
dependsOn references are now more flexible. Previously you could only reference a resource by its exact type, or by the fully-qualified type.name form. Now Codify also matches by name only, so you can write whichever form is most convenient for your config:
{ "type": "docker-container", "name": "app", "dependsOn": ["postgres"] }We also fixed a bug where dependsOn references that crossed OS or distro filters - for example, a docker resource depending on an apt-only resource on a machine where that filter doesn't apply - could incorrectly throw instead of resolving cleanly. Cross-platform configs with conditional resources now resolve their dependencies correctly regardless of which resources get filtered out on a given machine.
Shell Environment Validation
A surprisingly common source of confusing failures: a .zshrc or .bashrc that prints something to stdout on every shell startup - a MOTD, a version banner, a stray echo - which then leaks into the output Codify expects from plugin commands. Before running plugins, Codify now validates that your shell starts up clean using a pty-based sentinel check. If your shell isn't quiet, you'll get a clear error pointing at the specific rc file to fix, instead of a confusing downstream failure.
Fixed: zsh Auto-Correct Hanging Interactive Commands
If you're a zsh user with correctall or similar autocorrect options on, you may have hit commands during apply that just seemed to hang - zsh was actually sitting at a zsh: correct 'config' to '.config' [nyae]? prompt waiting for input that never came. Codify now disables zsh's CORRECT/CORRECT_ALL options for spawned commands, so this can't silently stall an apply anymore.
Quality-of-Life Improvements
- Fixed
codify editdesktop app installation and detection - Fixed a formatting issue in the apply completion message
- Updated desktop app download links
Try it out!
Upgrade to v1.2.0 today:
codify updateOr download the latest version from our docs.
/bin/bash -c "$(curl -fsSL https://releases.codifycli.com/install.sh)"As always, if you run into any issues or have feature requests, please open an issue on GitHub.
Cheers!