Releases: follen99/DeepBase
v1.6.0
DeepBase v1.6.0 - Database Context Extraction
🗄️ Supporto completo per database SQLite
DeepBase ora è in grado di analizzare file database SQLite e generare contesto strutturato sullo schema, rendendo più facile fornire alle AI informazioni precise sulle tabelle, relazioni e vincoli del tuo progetto.
🚀 Nuove Funzionalità
Rilevamento Automatico Database
- Riconoscimento file SQLite tramite magic bytes (
SQLite format 3) — funziona anche senza estensione standard - Estensioni supportate:
.db,.sqlite,.sqlite3,.db3 - Icona visiva 🗄️ nell'albero del progetto per identificare rapidamente i database
Tre Modalità di Contesto
| Modalità | Flag | Descrizione |
|---|---|---|
| Schema Completo | --all |
Tabelle, colonne (tipi, nullable, default, PK), foreign keys, indici, row count |
| TOON (Skeleton) | --toon |
Rappresentazione compatta: Tabella(col:tipo[PK], col2:tipo[FK→tabella.campo]) |
| Ibrida con Focus | --toon --focus |
TOON per tutto, dettaglio completo solo per tabelle specifiche |
Focus a Livello di Tabella
Nuova sintassi per focalizzarsi su tabelle specifiche all'interno di un database:
# Focus su singola tabella
deepbase . --toon --focus "app.db/users"
# Multiple tabelle
deepbase . --toon --focus "app.db/users" --focus "app.db/orders"
# Tramite file di focus
echo "production.db/customers" > task.txt
echo "production.db/orders" >> task.txt
deepbase . --toon --focus-file task.txt📋 Esempi di Utilizzo
1. Analisi Base (Solo Struttura)
deepbase .Output include l'albero del progetto con 🗄️ per identificare i database:
📂 ./
📄 README.md
🗄️ data.sqlite
📂 src/
📄 main.py
2. Schema Completo di un Database
deepbase data.db --allOutput generato:
# Database: data.db
## Overview
- Total Tables: 3
- Total Rows: 15,420
- File Size: 2,048 KB
## Schema Details
### Table: `users`
- Rows: 1,240
#### Columns:
| Column | Type | Nullable | Default | PK |
|--------|------|----------|---------|-----|
| `id` | INTEGER | NOT NULL | - | ✓ |
| `email` | TEXT | NOT NULL | - | |
| `created_at` | DATETIME | ✓ | CURRENT_TIMESTAMP | |
#### Foreign Keys:
- `role_id` → `roles`.`id` (ON UPDATE: CASCADE, ON DELETE: SET NULL)
#### Indexes:
- UNIQUE `idx_email` on (`email`)3. Modalità TOON (Token-Efficiente)
deepbase . --toonOutput:
DB: app.sqlite
Tables: 5 | Rows: 45,231
T: users(id:INTEGER[PK,NN], email:TEXT[NN], role_id:INTEGER[FK→roles.id])
T: orders(id:INTEGER[PK], user_id:INTEGER[FK→users.id], total:REAL)
T: products(id:INTEGER[PK], name:TEXT, price:REAL)
T: roles(id:INTEGER[PK], name:TEXT[NN])
T: order_items(id:INTEGER[PK], order_id:INTEGER[FK→orders.id], product_id:INTEGER[FK→products.id])
4. Workflow Ibrido (Consigliato per LLM)
# Contesto leggero per tutto, dettaglio per tabelle critiche
deepbase . --toon --focus "app.db/users" --focus "app.db/orders" -o context.mdRisultato: Il file context.md conterrà:
- TOON skeleton per tutte le tabelle
- Schema completo (colonne, FK, indici) solo per
userseorders - Markup visivo
[FOCUSED - FULL CONTENT]per identificare le tabelle dettagliate
🔧 Configurazione Avanzata
Aggiungi estensioni personalizzate in .deepbase.toml:
# Riconosci anche file senza estensione standard
significant_extensions = [".db", ".sqlite", "mydatafile"]
# Ignora database di test o cache
ignore_dirs = ["test_dbs", "cache", "__pycache__"]🐛 Bug Fixes
- Nessuno (prima release con supporto database)
📦 Dipendenze
- Nessuna dipendenza aggiuntiva — utilizza solo
sqlite3della standard library Python
💡 Casi d'Uso Consigliati
| Scenario | Comando |
|---|---|
| Onboarding sviluppatore su codebase legacy | deepbase . --all |
| Code review con focus su autenticazione | deepbase . --toon --focus "auth.db/users" --focus "auth.db/sessions" |
| Ottimizzazione query (vedere indici) | deepbase production.db --all |
| Documentazione API con schema DB | deepbase . --toon -o api_context.md |
Full Changelog: v1.5.0...v1.6.0
V1.5.0
v1.4.0
2. Smart Token Optimization (TOON)
For large projects, sending all code to an LLM is expensive and inefficient. TOON (Token Oriented Object Notation) extracts only the semantic "skeleton" of your code (classes, signatures, docstrings), ignoring implementations.
deepbase . --toon
# or
deepbase . -tResult: LLMs understand your architecture using minimal tokens.
3. Hybrid Mode (Focus)
This is the power user feature. You can provide the TOON skeleton for the entire project (background context) while focusing on specific files (full content).
Focus via CLI:
Use -f or --focus with glob patterns (e.g., *auth*, src/utils/*).
deepbase . --toon --focus "server/controllers/*" --focus "client/src/login.js"Focus via File:
Instead of typing patterns every time, create a text file (e.g., context_task.txt) with the list of files/folders you are working on.
content of context_task.txt:
server/routes/auth.js
server/models/User.js
client/src/components/LoginForm.jsx
Run deepbase loading the file:
deepbase . --toon --focus-file context_task.txtV1.3.0
Markdown features
now you can create the structure of a single markdown file, including just the titles or titles + whole content
Output Example
# File Structure Analysis: README.md
================================================================================
### DOCUMENT STRUCTURE (Outline) ###
================================================================================
# DeepBase
## Features
## Installation
## How to Use
### Advanced Configuration
# Add more directories to ignore.
# These will be added to the default ones.
# Add more extensions or filenames to include.
### Single File Analysis (New!)
# Generates "llm_context.md" containing only the headers tree.
# Generates "llm_context.md" containing the outline followed by the full text.
## Development Workflow
### 1. Local Setup & Testing
# Install in editable mode
# Run tests
# Test the tool locally without reinstalling
# You can now use the 'deepbase' command directly and it reflects your code changes immediately.
### 2. Release Process
## License
================================================================================
### FILE CONTENT ###
================================================================================
--- START OF FILE: README.md ---
...
V1.2.0
DeepBase v1.2.0: The Modernization & Configuration Update
This is a landmark release for DeepBase, focusing on making the tool more robust, configurable, and aligned with modern Python development standards. We've introduced major enhancements to both the user experience and the underlying project structure.
📢 Major Announcement: Project Language Transition to English
To foster a more inclusive and broader community of users and contributors, the entire DeepBase project will be managed in English from this version forward. This includes all code (comments, docstrings), documentation, and future communications.
We believe this change will make the project more accessible and easier to contribute to for developers worldwide.
✨ New Features & Enhancements
1. Customizable Configuration via .deepbase.toml
You now have full control over the scanning process! DeepBase will automatically detect and load a .deepbase.toml file in the root directory of the project you are analyzing. This allows you to:
- Add custom directories to the
ignore_dirslist. - Include new file names or extensions in the
significant_extensionslist.
2. Enhanced CLI and User Experience
The command-line interface has been completely rebuilt using Typer and Rich. This brings several benefits:
- A more intuitive and powerful CLI with clearer help messages.
- Beautiful, colored output for better readability.
- A progress bar that provides real-time feedback when analyzing large projects.
3. Robust File Encoding Detection
To prevent errors with non-standard files, DeepBase now intelligently detects file encodings using the chardet library before reading them. This ensures that a much wider variety of files can be processed without issues.
🛠️ Under-the-Hood & Developer Experience
1. Complete Migration to pyproject.toml
We have fully embraced modern Python packaging standards (PEP 621) by migrating all project metadata and dependencies into pyproject.toml.
- The project's dependencies are now defined in the
[project.dependencies]section. - Development dependencies (like
pytest) are specified under[project.optional-dependencies]. - The
requirements.txtfile has been removed, aspyproject.tomlis now the single source of truth.
2. Introduction of Automated Testing with pytest
The project is now more reliable and maintainable with the introduction of a testing suite powered by pytest.
- A
tests/directory has been added with initial unit tests covering core functionality. - This ensures that new changes do not break existing features.
3. Standardized Project Structure and Imports
The project now correctly handles the standard src-layout for Python packages. The tests have been updated to import the deepbase package correctly, ensuring that our testing methodology mimics how the tool is used in the real world.
How to Upgrade
To get the latest version, simply run:
pip install --upgrade deepbaseThis release lays a solid foundation for future features. Thank you for using DeepBase, and we look forward to your feedback
v1.0.0 - The First Stable Release
First stable release!