feat(setup): wizard prompt tweaks and quieter query-history filter output (#259)

Setup wizard flow tweaks:
- Add a reveal-tail password prompt (reveal-password-prompt.ts) that unmasks
  the last few characters of a typed/pasted secret, and wire it into the setup
  prompt adapter in place of clack's password(); adds the @clack/core dep.
- Reorder wizard select options: surface "Paste a key" before the
  environment-variable option across embeddings/models/sources, promote
  Metabase/Notion in the source list, put Git URL before Local path, reorder
  the Notion crawl-mode choices, and relabel the sources "Done" action.

Query-history filter picker output:
- Collapse the per-template parse-failure lines into a single count in the
  setup output and route the full template-id list to --debug stderr.
- Model parse failures as a structured parseFailedTemplateIds field instead of
  warning strings.
- Add a privacy-safe query_history_filter_completed telemetry event
  (counts/enums only), mirrored into the Python daemon schema.
This commit is contained in:
Andrey Avtomonov 2026-06-04 14:11:08 +02:00 committed by GitHub
parent 8eb1cd3e79
commit c2beaf7d55
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
22 changed files with 494 additions and 34 deletions

View file

@ -206,6 +206,17 @@
"errorClass",
"durationMs"
]
},
{
"name": "query_history_filter_completed",
"description": "Emitted after the setup query-history service-account filter picker runs.",
"fields": [
"dialect",
"consideredRoleCount",
"excludedRoleCount",
"parseFailedCount",
"outcome"
]
}
],
"$defs": {
@ -1434,6 +1445,77 @@
"durationMs"
],
"additionalProperties": false
},
"query_history_filter_completed": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"cliVersion": {
"type": "string"
},
"nodeVersion": {
"type": "string"
},
"osPlatform": {
"type": "string"
},
"osRelease": {
"type": "string"
},
"arch": {
"type": "string"
},
"runtime": {
"type": "string",
"enum": [
"node",
"daemon-py"
]
},
"isCi": {
"type": "boolean"
},
"dialect": {
"type": "string"
},
"consideredRoleCount": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"excludedRoleCount": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"parseFailedCount": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"outcome": {
"type": "string",
"enum": [
"ok",
"error"
]
}
},
"required": [
"cliVersion",
"nodeVersion",
"osPlatform",
"osRelease",
"arch",
"runtime",
"isCi",
"dialect",
"consideredRoleCount",
"excludedRoleCount",
"parseFailedCount",
"outcome"
],
"additionalProperties": false
}
}
}

View file

@ -36,4 +36,5 @@ def test_python_schema_copy_matches_node_schema() -> None:
"daemon_stopped",
"sl_plan_completed",
"sql_gen_completed",
"query_history_filter_completed",
]