Skip to content

Conversation

@github-actions
Copy link

@github-actions github-actions bot commented Dec 5, 2025

This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated.

Releases

@marcurry/core@0.1.0

Minor Changes

  • f2a3dc1: Environment validation is here

    You can now validate environments the same way you validate flags. We've also unified key validation across the board—flags and environments now share the same rules, so you get consistent error messages everywhere.

    New exports:

    • validateEnvironment – validate environment objects before saving
    • validateKey and KEY_REGEX – reusable key validation for your own use cases

    This is a non-breaking change. If you're already using flag validation, everything works as before.

  • 10d6196: Project and environment validation

    Core

    New validators and error classes for projects and environments:

    • validateProject() — Validates project name (required, max 200 characters)
    • ProjectValidationError — Thrown when project validation fails
    • ProjectMustHaveEnvironmentError — Thrown when creating a project without environments
    • CannotDeleteLastEnvironmentError — Thrown when attempting to delete the last environment in a project

    Web

    Projects now require at least one environment at creation time. This rule is enforced at the service layer, ensuring data integrity regardless of how the API is called.

    • Creating a project without environments will now fail with a clear error message
    • Attempting to delete the last environment in a project returns a descriptive error
    • Project names are validated before saving

@marcurry/sdk@0.1.0

Minor Changes

  • 0bb6e87: Feature flag SDK for JavaScript/TypeScript

    Evaluate feature flags in your application with a simple, type-safe client:

    • createClient - Initialize once with your API key and environment
    • isEnabled() - Check if a flag is on for a user
    • getValue() - Get a flag's value with a default fallback
    • evaluateFlag() - Get the full evaluation result with reason
    import { createClient } from '@marcurry/sdk';
    
    const client = createClient({
      apiKey: 'mc_your-api-key',
      environmentKey: 'production',
      baseUrl: 'https://your-app.example.com',
    });
    
    const enabled = await client.isEnabled('my-feature', { id: 'user-123' });

Patch Changes

  • Updated dependencies [f2a3dc1]
  • Updated dependencies [10d6196]
    • @marcurry/core@0.1.0

@marcurry/web@0.1.0

Minor Changes

  • 10d6196: Project and environment validation

    Core

    New validators and error classes for projects and environments:

    • validateProject() — Validates project name (required, max 200 characters)
    • ProjectValidationError — Thrown when project validation fails
    • ProjectMustHaveEnvironmentError — Thrown when creating a project without environments
    • CannotDeleteLastEnvironmentError — Thrown when attempting to delete the last environment in a project

    Web

    Projects now require at least one environment at creation time. This rule is enforced at the service layer, ensuring data integrity regardless of how the API is called.

    • Creating a project without environments will now fail with a clear error message
    • Attempting to delete the last environment in a project returns a descriptive error
    • Project names are validated before saving
  • 4299bcb: Feature flag evaluation API & key management

    UI

    API Key Management

    Create and manage API keys directly from your project's Edit dialog. Each key gives your applications secure access to evaluate feature flags.

    • Named keys — Give each key a descriptive name (e.g., "Production Backend", "Staging App")
    • Environment scoping — Select which environments each key can access
    • Key rotation — Rotate keys anytime with a confirmation step to prevent accidents
    • Usage tracking — See when each key was last used
    • One-time secret — Secret keys are shown only once at creation, so save them somewhere safe

    API

    Flag Evaluation Endpoint

    Evaluate feature flags programmatically with POST /api/v1/flags/evaluate:

    curl -X POST https://your-app.com/api/v1/flags/evaluate \
      -H "Content-Type: application/json" \
      -H "X-API-Key: mc_your-api-key" \
      -d '{
        "environmentKey": "production",
        "flagKey": "my-feature",
        "actor": { "id": "user-123" }
      }'

    The response includes the flag's enabled state, resolved value, and evaluation reason — everything you need to make feature decisions in your code.

  • c0f0b41: Improved theme switching experience with a new dropdown menu

Patch Changes

  • 1a11207: Streamline project and environment forms

    Description fields have been removed from the UI as they were never persisted to the database. Forms are now streamlined to only show fields that are actually saved.

  • 757c7c0: Improve UI elements theme consistency

    Some UI elements were inconsistent with the theming, in this update, we are addressing the issue.

  • 7f78184: New Light & Dark Theme Toggle

    We've added a theme switcher so you can choose the look that works best for you.

  • f2a3dc1: Better environment validation

    Creating or updating environments now automatically validates your input before saving. Invalid keys or names are caught early with clear error messages, so you'll know exactly what to fix.

  • Updated dependencies [f2a3dc1]

  • Updated dependencies [10d6196]

    • @marcurry/core@0.1.0

@github-actions github-actions bot force-pushed the changeset-release/main branch 19 times, most recently from aae02b5 to 7b7accb Compare December 7, 2025 07:16
@github-actions github-actions bot force-pushed the changeset-release/main branch from 7b7accb to fdb6132 Compare December 7, 2025 07:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant