Skip to content

Releases: syrin-labs/cli

v1.5.0

17 Feb 17:13

Choose a tag to compare

What's Changed

New Features

  • W116: Schema-Description Drift rule - detects params not mentioned in tool description
  • W117: Idempotency Signal rule - detects mutation tools lacking idempotency signal

Analysis Engine Improvements

  • Fixed dependency confidence threshold (enabled E103, E105, E106, E107, W105)
  • Enhanced normalizer: support for oneOf/anyOf/allOf, format field, and array items schemas

Embedding-Based Semantic Analysis

  • New semantic-embedding.ts module using @xenova/transformers
  • Concept embeddings: USER_DATA, SENSITIVE, RETURNS_DATA, IDEMPOTENT, MUTATION
  • Updated rules (E108, E112, E100, W117) to use embeddings instead of hardcoded keywords

v1.4.3

16 Feb 12:30

Choose a tag to compare

What's Changed

Critical Bug Fixes

This hotfix release addresses 4 critical production bugs that were blocking public launch.

1. ESM Compatibility - __dirname Error

  • Issue: src/utils/package-manager.ts used __dirname, which doesn't exist in ESM modules
  • Impact: syrin update and syrin rollback commands were completely broken
  • Fix: Replaced with ESM-compatible approach using import.meta.url and fileURLToPath

2. Logger Output Stream

  • Issue: log.error() used console.log instead of console.error
  • Impact: Error output couldn't be separated from normal output (Unix convention violation)
  • Fix: Changed to properly output errors to stderr

3. Tool Result Conversation Role

  • Issue: Tool results were added to conversation history with role: 'assistant' instead of role: 'tool'
  • Impact: Broke multi-turn tool calling; LLM couldn't distinguish its own responses from tool outputs
  • Fix:
    • Updated MessageRole type to include 'tool'
    • Changed all tool result messages to use correct 'tool' role

v1.4.2

04 Feb 07:35

Choose a tag to compare

What's Changed

Improvements

  • Init – Transport type (http/stdio) shown as checklist; no free-text input.
  • Status – UI split into Local / Global; config, .env, project, and LLM providers per section; minimal styling aligned with doctor.
  • Analyse – Errors and warnings numbered (CLI and CI); dependency graph edges numbered; CI uses logger for success/error.
  • Zero-configsyrin list, syrin analyse, syrin test --connection work with --url or --script only; no local or global config required (dev still needs config for LLM).
  • Configmcp_url renamed to url in syrin.yaml; version kept; template comments cleaned (no "v1.3.0" labels); LLM keys must be env var names only.

Documentation

  • Docs and README updated for new behaviour and commands.

v1.4.1

03 Feb 06:39

Choose a tag to compare

What's Changed?

Breaking Changes

  1. --mcp-url renamed to --url - The --mcp-url flag in syrin dev has been renamed to --url for consistency across all commands.

Improvements

  1. Updated Dependencies - Upgraded all CLI dependencies to their latest versions.
  2. Updated README - Restructured quickstart, added demo GIFs, and improved documentation for launch.

v1.4.0

21 Jan 16:28

Choose a tag to compare

Features

  1. Global Configuration Support - Syrin can now be used from anywhere without project-specific configuration.

    • syrin init --global creates user-wide LLM configuration at ~/.syrin/syrin.yaml
    • syrin dev works with global config using --transport and --mcp-url/--script flags
    • Global .env support at ~/.syrin/.env for shared API keys
    • Configuration precedence: CLI flags > Local config > Global config > Defaults
  2. New syrin status Command - Quick project health overview (like git status).

    • Shows configuration status (local/global)
    • Displays project details and LLM provider status
    • Shows environment file status
    • Provides suggested actions for unconfigured items
  3. New syrin config Command Suite - Complete configuration management without editing YAML files.

    • syrin config list - List all configuration values
    • syrin config get <key> - Get a specific value
    • syrin config set <key> <value> - Set a configuration value
    • syrin config edit - Open config in editor
    • syrin config edit-env - Open .env file in editor
    • syrin config set-default <provider> - Set default LLM provider
    • syrin config remove <provider> - Remove an LLM provider
  4. Command Aliases - Shorter alternatives for frequently used commands.

    • syrin lssyrin list
    • syrin docsyrin doctor
    • syrin cfgsyrin config
  5. Global CLI Flags - New flags available on all commands.

    • --quiet / -q - Minimal output (errors only), perfect for CI/CD
    • --verbose - Verbose output for debugging
  6. Improved Checkbox UX - Added hint text "SPACE to toggle, ENTER to confirm" in init prompts.

Bug Fixes

  1. Dev Mode Validation Details - Now shows which required parameter is missing when validation fails.
  2. [object Object] in Init Output - Fixed logging bug that displayed object context incorrectly.
  3. Exit Code 0 for Help - Running syrin with no arguments now exits with code 0 (was 1).
  4. Duplicate Error Messages - Fixed duplicate error logging in command error handler.
  5. Wrong Env Source in Doctor - Fixed environment variable priority (local .env now takes precedence over global .env for local context).

v1.3.2

12 Jan 16:17

Choose a tag to compare

What's Changed

Breaking Changes

  1. Config File Location Changed - The configuration file has been moved from .syrin/config.yaml to syrin.yaml at the project root. This is the first breaking change in Syrin.

Features

  1. Tool-Level Structural Safety Validation (syrin test)** - New default behavior for syrin test command that validates tool contracts through sandboxed execution.
  2. New Behavioral Error Rules
  3. New Behavioral Warning Rules
  4. Enhanced syrin test Command
  5. Configuration Enhancements

Improvements

  1. Performance: Process reuse strategy significantly reduces overhead when testing many tools (100+ tools in 1-3 minutes)
  2. Safety: Network calls are allowed but monitored for side effects and non-determinism (does not block legitimate API calls)
  3. Flexibility: Supports both contract-defined tests and synthetic input generation from schemas
  4. Developer Experience: Clear error messages with suggestions for fixing issues

v1.2.2

08 Jan 19:37

Choose a tag to compare

v1.2.2

Bug Fixes

  1. Updated STDIO test using script - Fixed CLI test when script was passed

Features

  1. Env Support for CLI - Support for multiple ENV variables using (--env) for script in CLI
  2. Auth Header Support for CLI - Support for multiple auth headers using (--auth-header) for URL in CLI

v1.2.1

06 Jan 14:07

Choose a tag to compare

v1.2.1

Bug Fixes (Critical)

  1. CLI Not Working After Global Install - Fixed critical issue where syrin commands produced no output when installed globally via npm.

v1.2.0

06 Jan 13:49

Choose a tag to compare

v1.2.0

Features

  1. Static Tool Contract Analysis (syrin analyse) - New command to perform static analysis on MCP tool contracts, catching issues before runtime.
  2. Comprehensive Analysis Rules - 20 analysis rules (10 errors, 10 warnings) covering critical issues like missing output schemas, type mismatches, and circular dependencies.
  3. CI Integration Support - Added --ci flag for continuous integration pipelines with appropriate exit codes.
  4. JSON Output Format - Added --json flag to output analysis results in JSON format.
  5. Dependency Graph Visualization - Added --graph flag to visualize tool dependencies.
  6. Tool Dependency Inference - Automatic detection and analysis of implicit dependencies between MCP tools.

Bug Fixes

  1. ESM Main Entry Point Detection - Fixed issue where run() function was being called when the module was imported programmatically.
  2. Hardcoded Version in MCP Connection - Fixed issue where syrin test always displayed "syrin v1.0.0" instead of the actual current version.

v1.1.0

01 Jan 07:58

Choose a tag to compare

v1.1.0

Features

  1. Event-Driven Chat Visibility - Real-time event updates in chat UI to increase visibility of testing operations and tool executions.
  2. Update Command - Added syrin update command to update Syrin to the latest version.
  3. Large JSON File Saving - Added /save-json command to save large tool result JSON files for testing and analysis.

Optimizations

  1. Code Optimizations - Moved gradient colors array outside map callback, simplified welcome message builder, and refactored version checking with centralized package name constant.

UI

  1. Chat UI Performance - Revamped chat UI to eliminate lag and improve responsiveness.