Skip to content

v1.6.0

Choose a tag to compare

@follen99 follen99 released this 08 Feb 17:15
· 16 commits to main since this release

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