Skip to content

Releases: follen99/DeepBase

v1.8.1

15 Feb 22:09

Choose a tag to compare

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"

📊 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

🧪 Testing

  • Aggiunti test completi per verificare:
    • Ignoramento directory con percorsi annidati (app/templates vs templates in root)
    • Ignoramento file con percorsi specifici
    • Supporto wildcard in ignore_dirs e ignore_files
    • Combinazione di pattern multipli nel TOML

📝 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.1

Upgrade:

pip install --upgrade deepbase

DeepBase v1.8.0 — Light Mode & JavaScript Support

13 Feb 21:08
9ba5960

Choose a tag to compare

🚀 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-modemain.

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 default per JS/TS

Happy coding with 20x fewer tokens! 🎯

DeepBase v1.7.0 - Smarter Context & Visualization

12 Feb 14:31

Choose a tag to compare

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.md file in your folder would be included in the new analysis, duplicating data.

Update now:

pip install --upgrade deepbase

v1.6.0

08 Feb 17:15

Choose a tag to compare

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 --all

Output 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 . --toon

Output:

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.md

Risultato: Il file context.md conterrà:

  • TOON skeleton per tutte le tabelle
  • Schema completo (colonne, FK, indici) solo per users e orders
  • 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 sqlite3 della 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

27 Jan 22:11

Choose a tag to compare

LaTeX Support

".tex", ".bib", ".sty", ".cls"

v1.4.0

04 Dec 18:19

Choose a tag to compare

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 . -t

Result: 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.txt

V1.3.0

26 Nov 15:50
3b2ae82

Choose a tag to compare

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

13 Nov 10:31

Choose a tag to compare

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_dirs list.
  • Include new file names or extensions in the significant_extensions list.

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.txt file has been removed, as pyproject.toml is 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 deepbase

This 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

12 Nov 21:59

Choose a tag to compare

First stable release!