- Fix import ordering in __init__.py - Remove unused imports from dependencies.py - Fix import sorting across multiple files - Apply ruff auto-fixes No functional changes
192 lines
7.1 KiB
Markdown
192 lines
7.1 KiB
Markdown
# 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.
|