github intellectronica/ruler v0.3.0

latest releases: v0.3.6, v0.3.5, v0.3.4...
10 days ago

Ruler 0.3.0

Ruler 0.3.0 is primarily a code quality and refactoring release, streamlining the internal architecture and improving maintainability, with a handful of new features and enhancements.

Functional Changes & Additions

  • Unified configuration: MCP servers are now configured in ruler.toml plus optional legacy .ruler/mcp.json migration path; single loader normalizes agents + MCP servers.
  • New agents added: Zed, Warp, Kiro, Qwen Code (plus MCP capability coverage broadened across existing agents).
  • AGENTS.md becomes the default rules file (automatic scaffold on init) with graceful fallback to legacy instructions.md and root precedence detection.
  • Source marker improvements: consistent HTML comment markers with normalized path separators across platforms.

Technical / Refactors

  • Introduced AbstractAgent base class; many agents now inherit common behavior (including new AgentsMdAgent specialization).
  • Centralized agent selection, action prefix formatting, config key mapping, and output path resolution.
  • Split large monolithic apply/revert functions into apply-engine and revert-engine modules with focused utilities.
  • Added unified config loader/types, hashing utilities, and capability filtering module for MCP.
  • Expanded and reorganized test harness: new integration & e2e suites for unified config, MCP flows, agent detection, and revert logic; substantial unit test coverage for each agent.
  • Strengthened TypeScript typing (eliminated any usages) and formatting consistency; numerous lint/format cleanups.
  • Simplified legacy migration path (removed obsolete instructions warning code and deprecated generation of mcp.json on init).

Notes

This release lays the groundwork for future extensibility: unified config + abstracted engines reduce duplication and make adding new agents or MCP transport types straightforward.

Thanks to all contributors and testers for the rapid iteration leading to 0.3.0.


What's Changed

  • Consolidate duplicated getAgentOutputPaths function into shared utility by @Copilot in #94
  • Refactor monolithic applyAllAgentConfigs and revertAllAgentConfigs functions by @intellectronica in #97
  • Refactor: centralize agent registry by @intellectronica in #99
  • Fix CI test failures by preventing build race conditions by @Copilot in #100
  • Add Claude Code GitHub Workflow by @intellectronica in #110
  • Refactor: Augment Test Coverage for New Agents by @intellectronica in #111
  • refactor: Eliminate 'any' Types and Strengthen TypeScript Typing by @intellectronica in #112
  • AmpAgent: back up target file before writing by @intellectronica in #114
  • Refactor: Decouple CLI Command Logic from Command Definitions by @opencode-agent[bot] in #115
  • Refactor: Streamline Test Suite with Shared Harness and Utilities by @Copilot in #117
  • Refactor: Abstract Common Agent Logic to Reduce Code Duplication by @Copilot in #118
  • feat: introduce DEFAULT_RULES_FILENAME constant (Task 1 of AGENTS.md migration) by @intellectronica in #120
  • feat: default rules file switched to AGENTS.md with legacy fallback by @intellectronica in #121
  • feat(init): scaffold .ruler/AGENTS.md with header and legacy detection (task 3 of #119) by @intellectronica in #122
  • feat: auto-detect root AGENTS.md (Task 4) by @intellectronica in #123
  • Migrate non-legacy tests to AGENTS.md (Task 7) by @intellectronica in #124
  • feat(agent): add agentsmd pseudo-agent writing root AGENTS.md (task 5) by @intellectronica in #125
  • feat: emit legacy instructions.md warning once per process (Task 9) by @intellectronica in #126
  • Refactor: Inherit AgentsMdAgent in CodexCli, OpenCode, Jules by @intellectronica in #127
  • docs: sync README with AGENTS.md precedence and legacy fallback by @intellectronica in #128
  • Update Amp agent to inherit from AgentsMdAgent and use AGENTS.md by @Copilot in #138
  • Update Aider agent to use AGENTS.md instead of ruler_aider_instructions.md by @Copilot in #139
  • feat(gemini): inherit AgentsMdAgent and set .gemini/settings.json contextFileName to AGENTS.md; update tests and docs (#132) by @intellectronica in #140
  • Fix Zed Editor MCP Configuration Format to Match Official Documentation by @Copilot in #141
  • Add Qwen Code agent support by @intellectronica in #143
  • feat: unified configuration loader (ruler.toml + rules + MCP + agents) by @intellectronica in #144
  • Add MCP server configuration support in TOML format by @Copilot in #146
  • Remove mcp.json generation from ruler init and add sample MCP servers to ruler.toml by @Copilot in #147
  • feat: warn on legacy .ruler/mcp.json usage by @intellectronica in #148
  • feat: remove legacy instructions.md warning by @intellectronica in #149
  • Fix: always generate Codex .codex/config.toml when requested by @intellectronica in #150
  • Fix OpenCode agent to always create opencode.json configuration file by @Copilot in #151
  • Add comprehensive integration testing for all CLI agent types and generated files by @Copilot in #152
  • Fix MCP server propagation to use merged configuration data instead of legacy file by @Copilot in #154
  • Add MCP capability-based filtering system and fix failing tests by @Copilot in #155
  • Fix Windows/Unix path separator inconsistency in generated rule files by @Copilot in #157
  • Fix OpenHands MCP remote server propagation - ensure remote servers appear in config.toml by @Copilot in #158
  • Fix OpenHands config path: Move from .openhands/config.toml to config.toml by @Copilot in #159
  • Fix duplicate legacy MCP warning displayed multiple times by @Copilot in #161
  • feat: #92 add Kiro agent support by @ayushtankha in #156
  • Fix Claude Code MCP configuration generating empty string keys by @Copilot in #163
  • feat: HTML comment source markers (2 blank lines before, 1 after) by @intellectronica in #164
  • Add WARP.md agent support by @Copilot in #165
  • feat: restrict MCP writes to project root by @intellectronica in #166
  • Refactor config key mapping to centralized utility function by @Copilot in #171
  • Refactor: Extract Repeated Dry-Run Logging Pattern to a Central Function by @Copilot in #170
  • Consolidate duplicate agent selection logic into reusable helper function by @Copilot in #172

New Contributors

Full Changelog: v0.2.19...v0.3.0

Don't miss a new ruler release

NewReleases is sending notifications on new releases.