DocsResourcesChangelog

Changelog

Track the latest updates and changes to Cleo.

📝 Changelog

All notable changes to Cleo will be documented in this file.

[1.0.9] - "Confident Hofstadter" - 2025-01-27

🚀 New Features

Client-Server Architecture

  • 🔄 Implemented new CleoClient and CleoWorker classes for distributed task management
  • 🌐 Added seamless integration with NextJS and Bun
  • 📦 Enhanced queue management system with improved worker handling

🏗 Architecture Overview

flowchart LR
    Client[CleoClient] -->|Schedule Tasks| Queue((Queue))
    Queue -->|Process Tasks| Worker[CleoWorker]
    Worker -->|Results| Client
    subgraph "Task Processing"
    Queue
    Worker
    end

💻 Technical Implementation

Client Implementation:

import { CleoClient } from 'cleo';
 
const client = new CleoClient({
  endpoint: 'worker-url',
  options: {
    // client configuration
  }
});
 
await client.scheduleTask({
  type: 'processData',
  payload: {...}
});

Worker Implementation:

import { CleoWorker } from 'cleo';
 
const worker = new CleoWorker({
  tasks: {
    processData: async (payload) => {
      // task implementation
    }
  }
});
 
worker.start();

📚 Documentation

  • Comprehensive documentation covering client-server setup and configuration
  • Task scheduling patterns guide
  • Worker pool management documentation
  • Integration guides for NextJS and Bun

🔧 Dependencies

  • Added @types/node for TypeScript support
  • Added Bun runtime support packages

📋 Setup Instructions

  1. Install the package: npm install cleo@1.0.9
  2. Add scripts to package.json:
{
  "scripts": {
    "start:worker": "bun run worker.ts",
    "start:client": "next dev"
  }
}

⚡ Performance

  • Improved task queue processing efficiency
  • Optimized worker handling for better resource utilization
  • Reduced latency in client-server communication

🔐 Security

  • Implemented secure communication channels between client and worker
  • Added request validation and sanitization

📝 Notes

  • This is a major architectural update that sets the foundation for distributed task processing
  • All client-server communications are type-safe and validated
  • Backward compatible with previous task definitions

[1.0.8] - 2025-03-13

🚀 New Features

  • Enhanced task decorator with improved event filtering and lifecycle management
  • Added exponential and fixed backoff strategies for retries
  • Introduced task weights for group priority management
  • Added comprehensive worker metrics and task history tracking
  • Implemented group state change events
  • Added support for Redis key prefixing for multi-tenant setups

🔧 Improvements

  • Enhanced group task processing with better error handling
  • Improved task event handling with filtered notifications
  • Added task history with group information
  • Enhanced worker monitoring capabilities
  • Improved graceful shutdown procedures
  • Added support for queue-specific concurrency limits

🐛 Bug Fixes

  • Fixed race conditions in group task processing
  • Resolved issues with duplicate event notifications
  • Fixed memory leaks in long-running workers
  • Improved error handling in task decorators
  • Fixed task timeout handling

📚 Documentation

  • Updated API reference with new configuration options
  • Added comprehensive examples for group processing
  • Improved best practices documentation
  • Added scaling guidelines
  • Enhanced monitoring documentation

[1.0.7] - 2024-03-20

Note: Cleo is currently in active development. Features and APIs may change.

🎯 Core Features Added

  • Redis-based distributed task processing
  • Advanced group task management
  • Real-time task monitoring
  • Priority-based queue processing
  • Event-driven architecture using Redis pub/sub
  • Built-in error handling with configurable retries

👥 Group Processing Features

  • Round Robin task distribution
  • FIFO (First In, First Out) processing
  • Priority-based processing with group weights
  • Dynamic group creation and management
  • Group statistics and metrics
  • Real-time group state tracking

📊 Monitoring & Events

  • Task status change events
  • Task progress tracking
  • Group state change events
  • Performance metrics collection
  • Real-time task updates

🏗️ Infrastructure

  • Monorepo setup with workspaces:
    • @cleo/core: Core task processing engine
    • @cleo/dashboard: Web dashboard for monitoring
    • @cleo/docs: Documentation site
  • Example projects and implementations
  • Development tooling and scripts

🛠️ Developer Experience

  • TypeScript-first development
  • Decorator-based task definitions
  • Clean and intuitive API
  • Comprehensive documentation
  • Example implementations

📦 Package Structure

  • Core package for task processing
  • Dashboard for monitoring and management
  • Documentation with examples and guides
  • Basic and advanced usage examples

🔧 Scripts & Tooling

  • Build scripts for all packages
  • Development server configurations
  • Example project runners
  • Concurrent development setup

[Upcoming]

Planned Features

  • GraphQL API for task management
  • Kubernetes integration
  • Machine learning powered scheduling
  • Enhanced dashboard features
  • Additional processing strategies
  • Extended monitoring capabilities