Ship tableau-mcp v6.0.5: 6 metadata_get_* GraphQL drift fixes via traversal-from-asset queries; centralized result-unwrap helper matching upstream metadata_client.execute_query data-payload contract

Decision

Ship tableau-mcp v6.0.5: 6 metadata_get_* GraphQL drift fixes via traversal-from-asset queries; centralized result-unwrap helper matching upstream metadata_client.execute_query data-payload contract; two-layer regression surface (static query-string guards + in-container live introspection probe); 8-surface version cascade.

Rationale

Reasoning chain: first_principles_decomposition isolated 3 root causes (wrong filter args / wrong field selections / wrong root field); add_thought analysis decomposed which fix shape applies to each tool (4 tools need parent traversal, 1 tool needs root-field swap, 1 tool needs scope rejection); add_thought synthesis identified the minimal regression surface (static guards catch author-side reintroduction, runtime probe catches schema evolution — both necessary, neither sufficient alone); add_evidence captured the live in-container smoke output (4108 global calcs, 21 workbook calcs, 6 parameters incl ‘Sort by’, 2204 tables, 19 columns, 55 databases) confirming all 6 fixes return real data. Codex cross-model gate caught the critical envelope-unwrap bug between drafts — defended against shipping a regression that would have made every successful tool call return []. Reversibility high (no signature changes; rollback = IMAGE_TAG=6.0.4 docker compose up -d).

Alternatives Rejected

Outcome

Pending