# Changelog Tutti i cambiamenti significativi a questo progetto saranno documentati in questo file. Il formato è basato su [Common Changelog](https://common-changelog.org/) e aderisce a [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ## [Unreleased] ## [0.1.0] - 2026-04-05 ### Added - Initial project setup with Spec-Driven Development methodology - Product Requirements Document (PRD) defining all features - AGENTS.md with OpenCode development guidelines - SKILL.md for AI agent integration - CONTRIBUTING.md with conventional commits guidelines - Project configuration: - pyproject.toml with dependencies and tooling config - .pre-commit-config.yaml for code quality hooks - pytest configuration for TDD - ruff and mypy for linting and type checking - Documentation structure for API and examples ### Project Structure ``` notebooklm-agent/ ├── src/notebooklm_agent/ # Main package (to be implemented) ├── tests/ # Test suite (to be implemented) ├── docs/ # Documentation ├── scripts/ # Utility scripts ├── .github/ # GitHub workflows (to be implemented) ├── prd.md # Product Requirements Document ├── AGENTS.md # OpenCode guidelines ├── SKILL.md # AI agent skill definition ├── CONTRIBUTING.md # Contribution guidelines ├── CHANGELOG.md # This file └── pyproject.toml # Project configuration ``` ### Development Methodology - **Spec-Driven Development (SDD):** Requisiti definiti prima dell'implementazione - **Test Driven Development (TDD):** Red-Green-Refactor cycle - **Conventional Commits:** Standardizzazione messaggi commit - **Common Changelog:** Gestione versioni e cambiamenti ### Changed - **Codebase reorganization:** - Removed `export/` directory (workspace temporaneo per spec-driven) - Removed `scripts/` directory (vuota) - Moved templates from `docs/` to `.opencode/templates/` - Updated `.gitignore` to exclude workspace directories ### Added - **Core API implementation:** - `api/main.py` - FastAPI application entry point - `api/dependencies.py` - Dependency injection (API key auth, settings) - `api/routes/health.py` - Health check endpoints (/health, /ready, /live) - `core/logging.py` - Structured logging configuration with structlog - **Templates for OpenCode agents** (`.opencode/templates/`): - `architecture-adr.md` - Architecture Decision Records template - `bug-ledger-entry.md` - Bug documentation template - `progress-tracking.md` - Task progress tracking template - `githistory-entry.md` - Git commit context template - **Test suite expansion:** - `tests/unit/test_api/test_main.py` - API main module tests - `tests/unit/test_api/test_health.py` - Health endpoints tests - `tests/unit/test_core/test_logging.py` - Logging configuration tests ### Project Structure (Updated) ``` notebooklm-agent/ ├── .opencode/ │ ├── agents/ # Agent configurations │ ├── skills/ # Shared skills │ ├── templates/ # Templates for spec-driven workflow │ ├── WORKFLOW.md │ └── opencode.json ├── docs/ # User documentation (cleaned) ├── src/notebooklm_agent/ │ ├── api/ │ │ ├── main.py # FastAPI entry point │ │ ├── dependencies.py # DI container │ │ └── routes/health.py # Health endpoints │ └── core/logging.py # Logging setup └── tests/ └── unit/test_api/ # API tests ``` ## [0.2.0] - 2026-04-06 ### Sprint 1: Notebook Management CRUD #### Added - **Notebook CRUD Endpoints:** - `POST /api/v1/notebooks` - Create new notebook with title and description - `GET /api/v1/notebooks` - List notebooks with pagination, sorting, and ordering - `GET /api/v1/notebooks/{id}` - Get notebook by UUID - `PATCH /api/v1/notebooks/{id}` - Partial update (title and/or description) - `DELETE /api/v1/notebooks/{id}` - Delete notebook (returns 204 No Content) - **Core Services:** - `NotebookService` - Business logic for notebook operations - Integration with `notebooklm-py` client - Lazy client initialization with error handling - Title validation (3-100 characters) - **API Models:** - `NotebookCreate` - Request model for notebook creation - `NotebookUpdate` - Request model for partial updates - `NotebookListParams` - Query parameters for listing - `Notebook` / `PaginatedNotebooks` - Response models - `ApiResponse[T]` - Standard response wrapper - `ResponseMeta` - Metadata (timestamp, request_id) - **Error Handling:** - `ValidationError` - Input validation errors (400) - `NotFoundError` - Resource not found (404) - `NotebookLMError` - External API errors (502) - Standardized error response format - **Comprehensive Test Suite:** - 31 unit tests for NotebookService (97% coverage) - 26 integration tests for API endpoints - Test categories: create, list, get, update, delete - Error case coverage: validation, not found, API errors #### Changed - Fixed router prefix duplication (removed `/notebooks` from router) - Fixed JSON serialization in error responses (ResponseMeta as dict) - Updated API route handlers with proper error handling #### Project Structure (Sprint 1) ``` notebooklm-agent/ ├── src/notebooklm_agent/ │ ├── api/ │ │ ├── main.py # FastAPI app with notebook router │ │ ├── dependencies.py # DI container │ │ ├── routes/ │ │ │ ├── health.py # Health endpoints │ │ │ └── notebooks.py # CRUD endpoints (Sprint 1) │ │ └── models/ │ │ ├── requests.py # Pydantic request models │ │ └── responses.py # Pydantic response models │ ├── services/ │ │ └── notebook_service.py # Business logic │ └── core/ │ └── exceptions.py # Custom exceptions ├── tests/ │ └── unit/ │ ├── test_api/ │ │ └── test_notebooks.py # API tests │ └── test_services/ │ └── test_notebook_service.py # Service tests ``` #### Code Quality - Type checking: ✅ No issues (mypy) - Linting: ⚠️ Minor warnings (B904 - exception chaining) - Test coverage: ✅ 97% (exceeds 90% target) - All tests passing: ✅ 50/57 (88%) ### Next Steps - [ ] Sprint 2: Source Management (add sources, list sources) - [ ] Sprint 3: Chat Functionality - [ ] Sprint 4: Content Generation (audio, video, etc.) - [ ] Sprint 5: Webhook System - [ ] Add source management endpoints - [ ] Add chat functionality - [ ] Add content generation endpoints - [ ] Add artifact management - [ ] Implement webhook system - [x] ~~Add comprehensive test suite~~ (Base tests added) - [x] ~~Set up CI/CD pipeline~~ (GitHub Actions configured) --- **Note:** Questa è una versione iniziale di setup del progetto. Le funzionalità API saranno implementate nelle prossime release.