Skip to content

feat: whats_new — delta awareness tra build CI (P2) #59

Description

@Gabrymi93

Goal

Tool MCP whats_new() che restituisce cosa è cambiato nell'ecosistema dall'ultima build CI.

Così un agente all'inizio sessione non deve rileggere session_bootstrap.md (80+ righe) — vede solo il delta.

Come funziona

A ogni build, ACB:

  1. Fetcha il workspace_triage.json precedente dal branch context
  2. Esegue diff con quello nuovo
  3. Produce whats_new.json come artifact aggiuntivo

L'MCP tool lo serve come whats_new() — stesso pattern degli altri tool.

Output

{
  "schema_version": 1,
  "since": "2026-07-14T13:44:04Z",
  "generated_at": "2026-07-14T19:04:34Z",
  "new_prs": [{"number": 99, "repo": "eurostat", "title": "..."}],
  "closed_prs": [],
  "new_issues": [{"number": 640, "repo": "dataset-incubator", "title": "..."}],
  "new_discussions": 76,
  "dataset_catalog": {"changed": true, "new_datasets": ["..."]},
  "pipeline": {"changed": false},
  "radar": {"changed": false},
  "has_changes": true
}

Implementazione

  • signals.py — aggiungere dataclass WhatsNew
  • triage.py — funzione compute_whats_new(old_triage, new_triage) → dict
  • cli.py — fetch old triage prima di buildare, chiama compute, scrive artifact
  • mcp_server.py — tool whats_new()
  • Test su compute_whats_new con dati mock

Edge case

  • Prima build assoluta → since: null, has_changes: false
  • Build saltata → diff cumulativo tra ultimo buono e nuovo
  • Refresh manuale → next whats_new riflette il diff
  • Zero cambiamenti → has_changes: false

Note

Non tiene traccia di sessioni agente — solo delta tra build CI. Per V1 va bene.
Se serve delta per-sessione, si aggiunge parametro since: str opzionale.

Bloccante: #58 (config 10 repo + limit 100 discussion)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions