# Changelog All notable changes to this project will be documented in this file. The format is based on [Common Changelog](https://common-changelog.org/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ## [Unreleased] ### Added - feat: Sprint 3 - Landing Page Development Started - Initialize React + Vite + TypeScript project in `frontend/` directory - Install and configure Tailwind CSS, PostCSS, Autoprefixer - Setup project structure following docs/frontend_landing_plan.md - Configure .gitignore for frontend dependencies and build artifacts - Add Tailwind directives to src/index.css - Ready for component development and styling - feat: Create n8n workflow `LogWhisperer_Ingest` for secure log ingestion - Webhook trigger on POST `/webhook/logwhisperer/ingest` - HMAC-SHA256 signature validation with anti-replay protection - Data validation (UUID, severity levels, non-empty raw_log) - PostgreSQL storage with automatic table creation - Conditional AI processing for critical severity logs - JSON export at `workflows/logwhisperer_ingest.json` - Test suite at `workflows/test_workflow.sh` - Integration guide at `workflows/INTEGRATION.md` - Documentation at `workflows/README.md` - Implements Metodo Sacchi: Safety First, Little Often, Double Check - feat: Configure MCP servers for enhanced AI capabilities - sequential-thinking MCP for structured problem solving - context7 MCP for contextual library documentation retrieval - n8n MCP for workflow automation integration - docs: Add agent-specific configurations in `.opencode/agents/` - @n8n_specialist_agent for n8n workflow management - @context_auditor_agent for documentation alignment checks - docs: Add skill playbooks in `.opencode/skills/` - TDD_Python_Specialist: Test-driven development workflow - Git_and_Changelog: Conventional commits and changelog standards - n8n_automation_mastery: n8n workflow best practices - context7_documentation_retrivial: Context-aware documentation lookup - docs: Add requirements.txt with Python dependencies (pytest, requests) - docs: Add AI Pipeline technical specification - System prompt with Metodo Sacchi integration (Safety First, Little Often, Double Check) - OpenRouter configuration (migrated from OpenAI direct) - 25% cost savings (~$0.00015/call vs ~$0.0002/call) - Multi-provider fallback (300+ models available) - Automatic failover if primary provider down - Complete n8n Code Node JavaScript implementation - OpenRouter endpoint: https://openrouter.ai/api/v1 - Required headers: HTTP-Referer, X-Title for ranking - Model format: provider/model (e.g., openai/gpt-4o-mini) - JSON output schema with severity mapping (critical/medium/low) - Error handling with circuit breaker pattern - Security guidelines (data sanitization, rate limiting) - 10 acceptance criteria defined - 5 test scenarios with expected input/output - 5 real-world examples (OOM, disk full, connection refused, etc.) - Implementation checklist for developers ### Changed - docs: Update README.md with complete project structure - Add MCP configuration section - Document all agent configurations - Include skill playbooks in project tree - Update setup instructions with requirements.txt - docs: Refactor setup documentation structure (moved to `docs/1.setup_procedure/`) ## [0.1.1] - 2026-04-02 ### Added - docs: Project Review Sprint 1 complete analysis - Product Manager review: UVP alignment (7.05/10) - Tech Lead review: Architecture assessment (7.5/10) - Security Auditor review: Risk analysis (5.75/10) - Comprehensive recommendations for Sprint 2 ### Changed - docs: Major README.md refactoring with badges and improved navigation - docs: Updated all sprint documentation to "Completed" status ## [0.1.0] - 2026-04-02 ### Added - feat: Implement log ingestion script (`logwhisperer.sh`) for monitoring system logs - Monitor multiple log sources: syslog, nginx, postgresql - Pattern matching for critical errors (FATAL, ERROR, OOM, segfault, disk full) - JSON payload generation with severity levels (low, medium, critical) - Rate limiting to prevent alert flooding (30s per source/pattern) - Offset tracking for each log file to avoid reprocessing - HTTP POST dispatch to configurable webhook with retry logic - Dry-run mode for testing pattern matching without sending webhooks - Configuration file support (`/etc/logwhisperer/config.env`) - Command-line flags: `--help`, `--validate`, `--config`, `--dry-run`, `--test-line` - feat: Create installation script (`install.sh`) - Interactive configuration wizard - UUID v4 generation for CLIENT_ID - Systemd service creation (when run as root) - Support for both system-wide and user-local installation - Prerequisite checking (bash, curl) - Connectivity test to webhook URL - test: Add comprehensive test suite (`tests/test_logwhisperer.py`) - Script existence and executable validation - Configuration validation tests - Pattern matching tests (FATAL, OOM, ERROR patterns) - JSON payload structure validation - Severity mapping verification - docs: Create technical specification for Feature 1 (Log Ingestion) - Architecture diagram and component description - Requirements (functional and non-functional) - Safety guidelines (Metodo Sacchi) - Acceptance criteria - docs: Create Sprint 1 verification report (`docs/sprint1_verification.md`) - Complete verification of all Sprint 1 deliverables - Test results summary (12/12 tests passed) - Acceptance criteria checklist - Security audit results - Code quality assessment ### Security - Configuration files created with restrictive permissions (600) - No hardcoded credentials in scripts - HTTPS validation for webhook URLs (warning for non-HTTPS) - Read-only access to log files (no modifications)