Commit Graph

4 Commits

  • fix: resolve symlinks in install.sh for npm/bun bin usage
    When installed via `npm install ecc-universal`, the `ecc-install` bin
    entry creates a symlink from the package manager's bin directory to
    install.sh. The old `$(dirname "$0")` resolved to the bin directory
    instead of the actual package directory, causing `cp` to fail with
    "cannot stat '.../rules/common/.'".
    
    Now follows the symlink chain with readlink before resolving SCRIPT_DIR.
    
    Fixes #199
  • fix: path traversal in install.sh, error logging in hooks
    - Validate language names in install.sh to prevent path traversal via
      malicious args like ../../etc (only allow [a-zA-Z0-9_-])
    - Replace silent catch in check-console-log.js with stderr logging so
      hook failures are visible to the user for debugging
    - Escape backticks in session-end.js user messages to prevent markdown
      structure corruption in session files
  • feat: add Cursor IDE support with pre-translated configs
    Add complete .cursor/ directory with rules, agents, skills, commands,
    and MCP config adapted for Cursor's format. This makes ecc-universal
    a truly cross-IDE package supporting Claude Code, Cursor, and OpenCode.
    
    - 27 rule files with YAML frontmatter (description, globs, alwaysApply)
    - 13 agent files with full model IDs and readonly flags
    - 30 skill directories (identical Agent Skills standard, no translation)
    - 31 command files (5 multi-* stubbed for missing codeagent-wrapper)
    - MCP config with Cursor env interpolation syntax
    - README.md and MIGRATION.md documentation
    - install.sh --target cursor flag for project-scoped installation
    - package.json updated with .cursor/ in files and cursor keywords
  • fix: preserve directory structure in installation to prevent file overwrites (#169)
    Fix installation instructions that caused file overwrites. Adds install.sh script and preserves directory structure. Fixes #164.