Descrizione
Operatore di raggruppamento enterprise stile SQL GROUP BY ma applicato in-memory a un array di oggetti JavaScript proveniente da uno step upstream del workflow — fondamento di tutte le pipeline di analytics, reporting, batch processing che lavorano su dataset rappresentati come array di records (output di action_db_query, action_csv_parse, listCommits, queryDatabase Notion, ecc.). Accetta un'espressione di path/key per identificare il campo di raggruppamento — supporto nativo per path nested con notazione dot/bracket: "user.country" (group per country del nested user), "customer.address[0].city" (primo indirizzo del cliente), con precedenza al match esatto se una chiave contiene letteralmente un punto. Handling robusto dei valori mancanti: null e undefined finiscono nel gruppo speciale "__missing__" invece di essere silenziosamente droppati (evita il bug subdolo dei dataset che sembrano completi ma hanno record orfani non contati); empty string "" resta un gruppo separato da null; per le chiavi numeriche con decimali la rappresentazione è fissata a "floatPrecision" decimali (default 4) così 0.1+0.2 e 0.3 cadono nello stesso bucket. Output: { groups: { [chiave]: [item...] }, counts: { [chiave]: N }, groupCount, totalItems, largestGroup (chiave del gruppo più numeroso), smallestGroup }. Use case classici della pipeline business: raggruppare 200 ordini in pipeline per cliente prima di emettere fatture mensili consolidate via action_pdf_generate (1 fattura per cliente invece di 200 singole); aggregare 100k righe di audit_log per ora/giorno per popolare dashboard analytics tenant; raggruppare 5000 lead CRM per source ("google_ads", "linkedin_organic", "referral_partner") per il report ROI per source del marketing manager; raggruppare email triage per categoria per generare metriche di customer support per il monthly business review; pre-processing prima di logic_aggregate (group + sum/avg/min/max/count) — la coppia group_by → aggregate è il workhorse delle pipeline ETL leggere senza dover scendere a SQL diretto.
