Skip to content

fix(mcp): wrapper aggregate_ops.layer_query propaga dry_run al backend - #458

Merged
Gabrymi93 merged 1 commit into
mainfrom
fix/layer-dry-run-mcp-wrapper
Aug 8, 2026
Merged

fix(mcp): wrapper aggregate_ops.layer_query propaga dry_run al backend#458
Gabrymi93 merged 1 commit into
mainfrom
fix/layer-dry-run-mcp-wrapper

Conversation

@Gabrymi93

Copy link
Copy Markdown
Member

Tipo

fix (hotfix su regressione della #457) — il wrapper MCP aggregate_ops.layer_query non propagava dry_run al backend.

Problema reale

La PR #457 ha aggiunto dry_run in due punti della catena MCP ma non nel terzo:

  • ✅ backend toolkit/domain/layer.py (layer_sql + layer_query)
  • ✅ tool toolkit/mcp/server.py (toolkit_layer passa dry_run=dry_run)
  • wrapper intermedio toolkit/mcp/aggregate_ops.py (layer_query — che è layer_query_impl usato dal tool)

Risultato: toolkit_layer con dry_run=True crashava sul percorso reale con:

TypeError: layer_query() got an unexpected keyword argument 'dry_run'

Verificato simulando il codice di main pulito (stash del wrapper).

Contratto riusato/sostituito

Implementazione

File Cosa
toolkit/mcp/aggregate_ops.py Firma dry_run: bool = False + propagazione a _layer_query_core (+ docstring)
tests/test_query_cross_dataset.py TestMCPWrapperDryRun.test_wrapper_propagates_dry_run (regression: il wrapper accetta e propaga dry_run)

Verifica

  • Test di regressione: fallisce senza fix (TypeError), passa con fix ✅
  • Percorso end-to-end via wrapper MCP: dry_run valido → valid: True + piano; colonna inesistente → valid: False + Binder Error
  • 1324 test verdi, ruff pulito

Rischio residuo

Nessuno — fix minimo (2 righe + docstring) sul punto intermedio mancante.

Follow-up

  • Riavvio MCP per caricare il fix.
  • Questo conferma che la verifica end-to-end va fatta sul percorso MCP reale (wrapper), non solo sul dominio diretto.

Regressione della #457: dry_run aggiunto a domain.layer (layer_sql) e al
tool server.py, ma non al wrapper intermedio aggregate_ops.layer_query —
il percorso reale del tool toolkit_layer crashava con
TypeError: layer_query() got an unexpected keyword argument 'dry_run'.

Fix: parametro dry_run nella firma del wrapper + propagazione a
_layer_query_core (= domain.layer.layer_query).

Test: regression TestMCPWrapperDryRun (verifica che il wrapper accetti e
propaghi dry_run) — fallisce senza fix, passa con fix. 1324 verdi.
@Gabrymi93
Gabrymi93 merged commit 6dbb44c into main Aug 8, 2026
3 checks passed
@Gabrymi93
Gabrymi93 deleted the fix/layer-dry-run-mcp-wrapper branch August 8, 2026 20:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant