Releases: follen99/DeepBase
v1.8.1
DeepBase v1.8.1 - Release Notes
🐛 Bug Fixes
- Corretto caricamento
.deepbase.toml: Il file di configurazione viene ora correttamente rilevato quando si specifica un percorso assoluto o relativo diverso dalla directory corrente - Fixato errore di sintassi nell'help del tool (virgolette non chiuse correttamente)
✨ New Features
- Supporto percorsi annidati in
ignore_dirs: Ora è possibile specificare percorsi relativi dalla root del progetto (es:"app/templates","src/components/old") per ignorare directory specifiche senza influenzare altre directory con lo stesso nome in posizioni diverse - Supporto wildcard in
ignore_dirs: Pattern come"*.egg-info","temp_*"funzionano correttamente sia sui nomi che sui percorsi - Supporto percorsi e wildcard in
ignore_files: Oltre ai nomi esatti, ora si possono usare:- Percorsi relativi:
"app/config.local.py" - Wildcard:
"*.log","secrets.*" - Pattern complessi:
"temp/**/*.tmp"
- Percorsi relativi:
📊 Improvements
- Logging configurazione: Aggiunta stampa informativa all'avvio che indica:
- Se il file
.deepbase.tomlè stato trovato e caricato - Quali directory personalizzate vengono ignorate
- Quali file personalizzati vengono ignorati
- Fallback su configurazione di default quando il TOML non è presente
- Se il file
🧪 Testing
- Aggiunti test completi per verificare:
- Ignoramento directory con percorsi annidati (
app/templatesvstemplatesin root) - Ignoramento file con percorsi specifici
- Supporto wildcard in
ignore_dirseignore_files - Combinazione di pattern multipli nel TOML
- Ignoramento directory con percorsi annidati (
📝 Documentation
- Aggiornato l'help in-linea (
--help) con esempi di configurazione avanzata - Documentato il comportamento dei pattern di esclusione (nomi vs percorsi vs wildcard)
⚠️ Breaking Changes
Nessuno. I cambiamenti sono retrocompatibili con le configurazioni esistenti.
Installazione:
pip install deepbase==1.8.1Upgrade:
pip install --upgrade deepbaseDeepBase v1.8.0 — Light Mode & JavaScript Support
🚀 DeepBase v1.8.0 — Light Mode, JavaScript & Python Support
Highlights
Questa release introduce tre novità importanti: il refactoring architetturale del sistema di parsing, il supporto completo per JavaScript/TypeScript/React Native, e il supporto nativo per Python, insieme alla nuova Light Mode per l'ottimizzazione drastica dei token.
✨ Light Mode
La Light Mode è una modalità di output che permette di risparmiare fino al 92% dei token mantenendo intatta l'informazione strutturale necessaria per l'analisi del codice.
Cosa include:
- Firme di funzioni, classi, interfacce e tipi esportati
- Annotazioni di tipo (Python, TypeScript)
- Commenti JSDoc, docstring e documentazione iniziale
- Struttura del progetto con metriche di dimensione
Cosa esclude:
- Corpi delle funzioni e implementazioni
- JSX e logica interna dei componenti
- Hook, variabili locali e stato interno
Header di output:
# Project Context: [Nome Progetto]
> **[LIGHT MODE]** Questo file è stato generato in modalità risparmio token:
> vengono incluse solo le firme dei metodi/funzioni e i commenti iniziali dei file.
> Il corpo del codice è omesso. Se hai bisogno di approfondire un file, una classe
> o un metodo specifico, chiedi all'utente di fornire la porzione di codice completa.
### PROJECT STRUCTURE
> Total Size (raw): 7.78 KB | Est. Tokens (light): ~1,991
📁 OpenAndEat/
├── 📄 .gitignore (3.7% | ~75t)
├── 📁 OpenAndEatApp/ (1494.1% | ~29.7k t)
│ ├── 📄 .gitignore (4.9% | ~98t)
│ ├── 📄 App.tsx (6.1% | ~121t)
│ ├── 📄 package.json (16.1% | ~320t)
│ └── 📁 src/ (1454.4% | ~28.9k t)
│ ├── 📁 auth/ (52.4% | ~1.0k t)
│ │ ├── 📄 AuthContext.tsx (43.6% | ~868t)
│ │ └── 📄 getUserRole.ts (8.9% | ~177t)
...
🔧 Refactoring Architetturale
I parser sono stati modularizzati in file separati per migliorare la manutenibilità e facilitare l'aggiunta di nuovi linguaggi:
src/deepbase/parsers/
├── __init__.py
├── interface.py # LanguageParser ABC
├── python.py # PythonParser ✅
├── javascript.py # JavaScriptParser ✅ (NEW)
└── utils/
└── __init__.py
🌐 Multi-Language Support
JavaScript / TypeScript / React Native
Nuovo parser dedicato per l'ecosistema JS con supporto per:
| Feature | Stato |
|---|---|
export default |
✅ |
export const/function/class |
✅ |
| Arrow functions | ✅ |
| TypeScript interfaces & types | ✅ |
| React components | ✅ |
| JSDoc preservation | ✅ |
Python
Parser Python basato su AST con supporto per:
| Feature | Stato |
|---|---|
def / async def |
✅ |
Annotazioni di tipo (arg: Type) |
✅ |
Return type hints (-> Type) |
✅ |
*args, **kwargs |
✅ |
| Docstring di modulo, classe e funzione | ✅ |
| Classi e metodi | ✅ |
📊 Confronto Prestazioni (OpenAndEat)
| Modalità | Dimensione | Token | Riduzione |
|---|---|---|---|
| Full | 153.11 KB | ~39,196 | — |
| Light | 7.78 KB | ~1,991 | -92% |
Risparmio reale: ~37,000 token eliminati mantenendo l'API surface completa.
🔄 Pull Request
Questa release è disponibile nella PR feature/light-mode → main.
Branch: feature/light-mode
Target: main
Breaking Changes: Nessuno (nuova funzionalità opt-in via flag --light o configurazione)
📝 Changelog Completo
- Added: Light Mode per riduzione token (-92% su codebase React Native)
- Added: JavaScript/TypeScript/React Native parser
- Added: Python parser con supporto type hints e docstring
- Changed: Refactoring parser in moduli separati
- Improved: Supporto
export defaultper JS/TS
Happy coding with 20x fewer tokens! 🎯
DeepBase v1.7.0 - Smarter Context & Visualization
This release creates a much cleaner and more informative context for your LLMs.
✨ New Features:
- Token & Size Estimates: The project tree now displays the estimated token count (
~1.2k t) and percentage impact (5.2%) for every file and folder. You immediately know what's consuming your context window. - Visual Tree Upgrade: The folder structure is now rendered with proper tree branches for better readability.
- Smarter Defaults: DeepBase now automatically ignores huge lockfiles (
package-lock.json,yarn.lock) and mobile build folders, making it perfect for Javascript and React Native projects out of the box.
🐛 Fixes:
- No more self-inception: Fixed a bug where an existing
llm_context.mdfile in your folder would be included in the new analysis, duplicating data.
Update now:
pip install --upgrade deepbasev1.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!