@agent-native/core-corpus 0.208.0-nightly-20261013153438 → 0.208.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (84) hide show
  1. package/corpus/README.md +1 -1
  2. package/corpus/templates/analytics/CHANGELOG.md +12 -0
  3. package/corpus/templates/analytics/actions/find-data.ts +62 -1
  4. package/corpus/templates/analytics/actions/get-data-dictionary-index-status.ts +5 -3
  5. package/corpus/templates/analytics/actions/search-analytics-query-catalog.ts +1 -1
  6. package/corpus/templates/analytics/app/components/semantic-layer/IndexPanel.tsx +38 -12
  7. package/corpus/templates/analytics/app/i18n/en-US.ts +5 -0
  8. package/corpus/templates/analytics/changelog/2026-10-12-index-status-shows-source-scan-omissions-and-truncation.md +6 -0
  9. package/corpus/templates/analytics/changelog/2026-10-12-workspace-member-searches-distinguish-rosters-from-activity-.md +6 -0
  10. package/corpus/templates/analytics/changelog/2026-10-12-workspace-member-searches-now-distinguish-active-members-fro.md +6 -0
  11. package/corpus/templates/analytics/evals/synthetic-production-path/README.md +254 -0
  12. package/corpus/templates/analytics/evals/synthetic-production-path/SYNTHETIC-analytics-production-path-before-after.csv +17 -0
  13. package/corpus/templates/analytics/evals/synthetic-production-path/SYNTHETIC-analytics-production-path-v10-before-after.csv +61 -0
  14. package/corpus/templates/analytics/evals/synthetic-production-path/SYNTHETIC-analytics-production-path-v11-before-after.csv +65 -0
  15. package/corpus/templates/analytics/evals/synthetic-production-path/SYNTHETIC-analytics-production-path-v12-before-after.csv +81 -0
  16. package/corpus/templates/analytics/evals/synthetic-production-path/SYNTHETIC-analytics-production-path-v13-before-after.csv +85 -0
  17. package/corpus/templates/analytics/evals/synthetic-production-path/SYNTHETIC-analytics-production-path-v14-before-after.csv +89 -0
  18. package/corpus/templates/analytics/evals/synthetic-production-path/SYNTHETIC-analytics-production-path-v3-before-after.csv +21 -0
  19. package/corpus/templates/analytics/evals/synthetic-production-path/SYNTHETIC-analytics-production-path-v4-before-after.csv +29 -0
  20. package/corpus/templates/analytics/evals/synthetic-production-path/SYNTHETIC-analytics-production-path-v5-before-after.csv +29 -0
  21. package/corpus/templates/analytics/evals/synthetic-production-path/SYNTHETIC-analytics-production-path-v6-before-after.csv +33 -0
  22. package/corpus/templates/analytics/evals/synthetic-production-path/SYNTHETIC-analytics-production-path-v7-before-after.csv +37 -0
  23. package/corpus/templates/analytics/evals/synthetic-production-path/SYNTHETIC-analytics-production-path-v8-before-after.csv +45 -0
  24. package/corpus/templates/analytics/evals/synthetic-production-path/SYNTHETIC-analytics-production-path-v9-before-after.csv +53 -0
  25. package/corpus/templates/analytics/evals/synthetic-production-path/comparison-validation.ts +644 -0
  26. package/corpus/templates/analytics/evals/synthetic-retrieval/README.md +39 -22
  27. package/corpus/templates/analytics/evals/synthetic-retrieval/SYNTHETIC-analytics-retrieval-v6.csv +13 -0
  28. package/corpus/templates/analytics/evals/synthetic-retrieval/SYNTHETIC-analytics-retrieval.csv +12 -6
  29. package/corpus/templates/analytics/evals/synthetic-retrieval/benchmark.ts +303 -16
  30. package/corpus/templates/analytics/evals/synthetic-retrieval/measure-baseline.ts +87 -0
  31. package/corpus/templates/analytics/scripts/build-source-index.ts +46 -16
  32. package/corpus/templates/analytics/server/lib/analytics-agent-context.ts +38 -12
  33. package/corpus/templates/analytics/server/lib/analytics-query-catalog.ts +639 -40
  34. package/corpus/templates/analytics/server/lib/analytics-term-matcher.ts +88 -3
  35. package/corpus/templates/analytics/server/lib/source-index-store.ts +33 -2
  36. package/corpus/templates/brain/CHANGELOG.md +7 -0
  37. package/corpus/templates/clips/CHANGELOG.md +7 -0
  38. package/corpus/templates/clips/changelog/2026-10-13-rewind-setup-popover-expands-smoothly.md +6 -0
  39. package/corpus/templates/clips/desktop/src/lookback/LookbackRow.tsx +37 -29
  40. package/corpus/templates/clips/desktop/src/styles.css +30 -0
  41. package/corpus/templates/design/CHANGELOG.md +47 -0
  42. package/corpus/templates/design/actions/go-to-main-component.ts +24 -4
  43. package/corpus/templates/design/app/components/design/CanvasContextMenu.tsx +383 -379
  44. package/corpus/templates/design/app/components/design/LayersPanel.tsx +107 -203
  45. package/corpus/templates/design/app/components/design/context-menu-item.tsx +54 -0
  46. package/corpus/templates/design/app/components/design/context-menu-styles.ts +10 -0
  47. package/corpus/templates/design/app/components/visual-editor/ReviewCanvasPins.tsx +18 -2
  48. package/corpus/templates/design/app/i18n/en-US.ts +40 -0
  49. package/corpus/templates/design/app/pages/design-editor/commands/iframe-context-menu.ts +1 -0
  50. package/corpus/templates/design/app/pages/design-editor/commands/linked-component-structure.ts +2 -2
  51. package/corpus/templates/design/app/pages/design-editor/commands/pasted-image-files.ts +21 -10
  52. package/corpus/templates/design/app/pages/design-editor/commands/system-clipboard-paste.ts +12 -1
  53. package/corpus/templates/design/app/pages/design-editor/domains/use-editor-clipboard.tsx +5 -0
  54. package/corpus/templates/design/app/pages/design-editor/domains/use-editor-content-and-components.ts +57 -31
  55. package/corpus/templates/design/app/pages/design-editor/domains/use-editor-export-and-handoff.ts +34 -16
  56. package/corpus/templates/design/app/pages/design-editor/domains/use-editor-layer-actions.ts +31 -12
  57. package/corpus/templates/design/app/pages/design-editor/domains/use-editor-layout-and-structure.ts +77 -26
  58. package/corpus/templates/design/app/pages/design-editor/view/editor-canvas-area.tsx +85 -154
  59. package/corpus/templates/design/changelog/2026-10-12-empty-canvas-right-click-menu-now-leads-with-explore-with-ag.md +6 -0
  60. package/corpus/templates/design/changelog/2026-10-12-go-to-main-component-now-selects-the-main-component.md +6 -0
  61. package/corpus/templates/design/changelog/2026-10-12-layers-panel-right-click-menu-is-simpler-copy-copy-link-to-t.md +6 -0
  62. package/corpus/templates/design/changelog/2026-10-12-paste-here-in-the-right-click-menu-now-places-pasted-layers-.md +6 -0
  63. package/corpus/templates/design/changelog/2026-10-12-right-clicking-a-layer-now-shows-a-simpler-menu-with-edit-wi.md +6 -0
  64. package/corpus/templates/design/changelog/2026-10-12-right-clicking-several-layers-now-shows-a-multi-layer-menu-w.md +6 -0
  65. package/corpus/templates/design/changelog/2026-10-13-right-clicking-a-layer-now-has-a-send-to-menu-that-opens-cla.md +6 -0
  66. package/corpus/templates/design/e2e/helpers.ts +15 -2
  67. package/corpus/templates/dispatch/CHANGELOG.md +6 -0
  68. package/corpus/templates/plan/CHANGELOG.md +27 -0
  69. package/corpus/templates/slides/CHANGELOG.md +17 -0
  70. package/package.json +1 -1
  71. package/corpus/templates/analytics/.deploy-tmp/agent-native-provided-plugins.mjs +0 -10
  72. package/corpus/templates/assets/.deploy-tmp/agent-native-provided-plugins.mjs +0 -10
  73. package/corpus/templates/brain/.deploy-tmp/agent-native-provided-plugins.mjs +0 -10
  74. package/corpus/templates/calendar/.deploy-tmp/agent-native-provided-plugins.mjs +0 -10
  75. package/corpus/templates/chat/.deploy-tmp/agent-native-provided-plugins.mjs +0 -10
  76. package/corpus/templates/clips/.deploy-tmp/agent-native-provided-plugins.mjs +0 -10
  77. package/corpus/templates/content/.deploy-tmp/agent-native-provided-plugins.mjs +0 -10
  78. package/corpus/templates/crm/.deploy-tmp/agent-native-provided-plugins.mjs +0 -10
  79. package/corpus/templates/design/.deploy-tmp/agent-native-provided-plugins.mjs +0 -10
  80. package/corpus/templates/dispatch/.deploy-tmp/agent-native-provided-plugins.mjs +0 -10
  81. package/corpus/templates/forms/.deploy-tmp/agent-native-provided-plugins.mjs +0 -10
  82. package/corpus/templates/mail/.deploy-tmp/agent-native-provided-plugins.mjs +0 -10
  83. package/corpus/templates/plan/.deploy-tmp/agent-native-provided-plugins.mjs +0 -10
  84. package/corpus/templates/slides/.deploy-tmp/agent-native-provided-plugins.mjs +0 -10
package/corpus/README.md CHANGED
@@ -32,4 +32,4 @@ rg -n "defineAction|useActionQuery" node_modules/@agent-native/core-corpus/corpu
32
32
 
33
33
  ## Generated Counts
34
34
 
35
- - template files: 12227
35
+ - template files: 12209
@@ -3,6 +3,18 @@
3
3
  All notable user-facing changes to Agent-Native Analytics are documented here. Open it any
4
4
  time from the command menu (Cmd+K → "What's new") or from Settings.
5
5
 
6
+ ## 2026-10-12
7
+
8
+ ### Improved
9
+
10
+ - Google Sheets exports request only file-level access
11
+ - Index status shows source scan omissions and truncation
12
+ - Workspace member searches distinguish rosters from activity and time-based totals, including when you ask for active members.
13
+
14
+ ### Fixed
15
+
16
+ - Workspace-member searches now distinguish active members from users the question excludes.
17
+
6
18
  ## 2026-10-11
7
19
 
8
20
  ### Improved
@@ -6,10 +6,61 @@ import {
6
6
  import { z } from "zod";
7
7
 
8
8
  import { searchAnalyticsQueryCatalog } from "../server/lib/analytics-query-catalog.js";
9
+ import type {
10
+ SourceIndexFreshness,
11
+ SourceIndexScanCoverage,
12
+ } from "../server/lib/source-index-store.js";
13
+
14
+ function countLabel(
15
+ count: number,
16
+ singular: string,
17
+ plural = `${singular}s`,
18
+ ): string {
19
+ return `${count} ${count === 1 ? singular : plural}`;
20
+ }
21
+
22
+ function sourceIndexScanGuidance(
23
+ status: "not-configured" | "unavailable" | "invalid" | "available",
24
+ coverage: SourceIndexScanCoverage | null,
25
+ ): string {
26
+ if (status !== "available" || !coverage) return "";
27
+ const messages = [
28
+ coverage.unsafeEntriesOmitted !== null && coverage.unsafeEntriesOmitted > 0
29
+ ? `${countLabel(coverage.unsafeEntriesOmitted, "entry", "entries")} ${coverage.unsafeEntriesOmitted === 1 ? "was" : "were"} omitted by safety checks`
30
+ : "",
31
+ coverage.unsafeFieldsOmitted !== null && coverage.unsafeFieldsOmitted > 0
32
+ ? `${countLabel(coverage.unsafeFieldsOmitted, "field")} ${coverage.unsafeFieldsOmitted === 1 ? "was" : "were"} omitted by safety checks`
33
+ : "",
34
+ coverage.truncatedFields !== null && coverage.truncatedFields > 0
35
+ ? `${countLabel(coverage.truncatedFields, "field")} ${coverage.truncatedFields === 1 ? "was" : "were"} truncated`
36
+ : "",
37
+ coverage.unresolvedTrackingCallSites !== null &&
38
+ coverage.unresolvedTrackingCallSites > 0
39
+ ? `${countLabel(coverage.unresolvedTrackingCallSites, "tracking call site")} ${coverage.unresolvedTrackingCallSites === 1 ? "has" : "have"} unresolved event names`
40
+ : "",
41
+ ].filter(Boolean);
42
+ if (Object.values(coverage).some((count) => count === null)) {
43
+ messages.push(
44
+ "Some source-index scan coverage counts are unavailable for this revision. Treat absence from generated references as unknown and verify with schema or source metadata.",
45
+ );
46
+ }
47
+ if (messages.length > 0) {
48
+ return `Source-index scan coverage: ${messages.join("; ")}. Treat missing source-index matches as incomplete and verify with schema or source metadata.`;
49
+ }
50
+ return "";
51
+ }
52
+
53
+ function sourceIndexFreshnessGuidance(
54
+ status: "not-configured" | "unavailable" | "invalid" | "available",
55
+ freshness: SourceIndexFreshness | null,
56
+ ): string {
57
+ if (status !== "available" || !freshness?.stale) return "";
58
+ return `The generated source index is stale (${freshness.ageDays} days old; refresh threshold ${freshness.staleAfterDays} days). Use its entries only to discover leads; do not treat its definitions, grain, joins, or omissions as current. Verify current schema and owner-approved definitions before querying.`;
59
+ }
9
60
 
10
61
  export default defineAction({
11
62
  description:
12
- "Find definitions, dashboard SQL, and source-index references. Returns ranked metadata only, never live values. Use `search-bigquery-schema` for exact columns or partitions, then run one live query before reporting values.",
63
+ "Find definitions, dashboard SQL, and source-index references. Returns ranked metadata, source-index freshness and scan coverage, never live values. Treat stale generated entries as discovery hints; use `search-bigquery-schema` for exact columns or partitions, then run one live query before reporting values.",
13
64
  schema: z.object({
14
65
  question: z
15
66
  .string()
@@ -44,6 +95,14 @@ export default defineAction({
44
95
  result.sourceIndexStatus === "unavailable"
45
96
  ? "The generated source index could not be read, so treat these references as incomplete and verify with search-bigquery-schema."
46
97
  : "";
98
+ const scanGuidance = sourceIndexScanGuidance(
99
+ result.sourceIndexStatus,
100
+ result.sourceIndexScanCoverage,
101
+ );
102
+ const freshnessGuidance = sourceIndexFreshnessGuidance(
103
+ result.sourceIndexStatus,
104
+ result.sourceIndexFreshness,
105
+ );
47
106
  return {
48
107
  question,
49
108
  results: candidates,
@@ -52,6 +111,8 @@ export default defineAction({
52
111
  guidance: [
53
112
  "Treat saved SQL and source-index entries as examples or unapproved metadata. Verify source scope, live schema, partitions, and current values before answering. If truncated is true and nextPage is present, continue with that cursor; if truncated is true and nextPage is null, refine the search or use an explicit dashboard/schema search because a source cap was reached.",
54
113
  sourceIndexGuidance,
114
+ scanGuidance,
115
+ freshnessGuidance,
55
116
  ]
56
117
  .filter(Boolean)
57
118
  .join(" "),
@@ -7,12 +7,13 @@ import { z } from "zod";
7
7
 
8
8
  import {
9
9
  readSourceIndex,
10
+ sourceIndexScanCoverage,
10
11
  sourceIndexFreshness,
11
12
  } from "../server/lib/source-index-store.js";
12
13
 
13
14
  export default defineAction({
14
15
  description:
15
- "Read the status and aggregate metadata for the organization’s imported source index. Does not return index contents.",
16
+ "Read the status, source scan coverage counts, and aggregate metadata for the organization’s imported source index. Does not return index contents.",
16
17
  schema: z.object({}),
17
18
  readOnly: true,
18
19
  http: { method: "GET" },
@@ -27,6 +28,7 @@ export default defineAction({
27
28
  const result = await readSourceIndex(getRequestOrgId() || null);
28
29
  if (result.status !== "available") return { status: result.status };
29
30
  const freshness = sourceIndexFreshness(result.bundle.generatedAt);
31
+ const scanCoverage = sourceIndexScanCoverage(result.bundle);
30
32
  const entryCountsBySource = new Map<string, number>();
31
33
  for (const entry of result.bundle.entries) {
32
34
  entryCountsBySource.set(
@@ -38,8 +40,8 @@ export default defineAction({
38
40
  status: result.status,
39
41
  generatedAt: result.bundle.generatedAt,
40
42
  entryCount: result.bundle.entries.length,
41
- unresolvedTrackingCallSites:
42
- result.bundle.scanSummary?.unresolvedTrackingCallSites ?? null,
43
+ scanCoverage,
44
+ unresolvedTrackingCallSites: scanCoverage.unresolvedTrackingCallSites,
43
45
  sources: result.bundle.sources,
44
46
  sourceCounts: result.bundle.sources.map(({ id }) => ({
45
47
  source: id,
@@ -9,7 +9,7 @@ import { searchAnalyticsQueryCatalog } from "../server/lib/analytics-query-catal
9
9
 
10
10
  export default defineAction({
11
11
  description:
12
- "Search Analytics' existing query knowledge before writing a new query. This bounded search ranks saved dashboard panels, data-dictionary definitions, and imported source-index metadata. Results are references, not live data. Scope compatibility is ranked before certification. The result reports searched/available counts, truncation, and a `nextPage` cursor. Use it for ordinary metric discovery, then inspect live schema if exact columns or current source availability are needed; run one authoritative source query before reporting values.",
12
+ "Search Analytics' existing query knowledge before writing a new query. This bounded search ranks saved dashboard panels, data-dictionary definitions, and imported source-index metadata. Results are references, not live data; generated entries include freshness metadata, and stale entries are discovery hints only. Scope compatibility is ranked before certification. The result reports searched/available counts, truncation, and a `nextPage` cursor. Use it for ordinary metric discovery, then inspect live schema if exact columns or current source availability are needed; run one authoritative source query before reporting values.",
13
13
  schema: z.object({
14
14
  search: z
15
15
  .string()
@@ -116,7 +116,12 @@ type IndexStatusAvailable = {
116
116
  status: "available";
117
117
  generatedAt: string;
118
118
  entryCount: number;
119
- unresolvedTrackingCallSites: number | null;
119
+ scanCoverage: {
120
+ unsafeEntriesOmitted: number | null;
121
+ unsafeFieldsOmitted: number | null;
122
+ truncatedFields: number | null;
123
+ unresolvedTrackingCallSites: number | null;
124
+ };
120
125
  sources: Array<{ id: string; revision?: string }>;
121
126
  sourceCounts?: Array<{ source: string; entryCount: number }>;
122
127
  ageDays: number;
@@ -390,17 +395,33 @@ function StatusSection() {
390
395
  </Badge>
391
396
  </SettingRow>
392
397
  ) : null}
393
- {available ? (
394
- <SettingRow label={t("indexPanel.unresolvedTrackingCallSites")}>
395
- <span className="text-sm tabular-nums text-muted-foreground">
396
- {available.unresolvedTrackingCallSites === null
397
- ? t("indexPanel.unresolvedTrackingCallSitesUnavailable")
398
- : formatters.formatNumber(
399
- available.unresolvedTrackingCallSites,
400
- )}
401
- </span>
402
- </SettingRow>
403
- ) : null}
398
+ {available
399
+ ? (
400
+ [
401
+ [
402
+ "unsafeEntriesOmitted",
403
+ available.scanCoverage.unsafeEntriesOmitted,
404
+ ],
405
+ [
406
+ "unsafeFieldsOmitted",
407
+ available.scanCoverage.unsafeFieldsOmitted,
408
+ ],
409
+ ["truncatedFields", available.scanCoverage.truncatedFields],
410
+ [
411
+ "unresolvedTrackingCallSites",
412
+ available.scanCoverage.unresolvedTrackingCallSites,
413
+ ],
414
+ ] as const
415
+ ).map(([key, count]) => (
416
+ <SettingRow key={key} label={t(`indexPanel.${key}`)}>
417
+ <span className="text-sm tabular-nums text-muted-foreground">
418
+ {count === null
419
+ ? t("indexPanel.unresolvedTrackingCallSitesUnavailable")
420
+ : formatters.formatNumber(count)}
421
+ </span>
422
+ </SettingRow>
423
+ ))
424
+ : null}
404
425
  {rows.map((row) =>
405
426
  row.id === DBT_SOURCE_ID ? (
406
427
  <SourceStatusRowView
@@ -414,6 +435,11 @@ function StatusSection() {
414
435
  ),
415
436
  )}
416
437
  </div>
438
+ {available ? (
439
+ <p role="note" className="text-sm text-muted-foreground">
440
+ {t("indexPanel.sourceIndexCoverageCaveat")}
441
+ </p>
442
+ ) : null}
417
443
  {available ? (
418
444
  <p role="note" className="text-sm text-muted-foreground">
419
445
  {t("indexPanel.dynamicTrackingCoverageCaveat")}
@@ -1868,8 +1868,13 @@ export default {
1868
1868
  presetWeekdays: "Weekdays at 06:00",
1869
1869
  presetWeekly: "Weekly on Monday at 06:00",
1870
1870
  status: "Status",
1871
+ unsafeEntriesOmitted: "Entries omitted by safety checks",
1872
+ unsafeFieldsOmitted: "Fields omitted by safety checks",
1873
+ truncatedFields: "Truncated fields",
1871
1874
  unresolvedTrackingCallSites: "Unresolved tracking calls",
1872
1875
  unresolvedTrackingCallSitesUnavailable: "Unavailable",
1876
+ sourceIndexCoverageCaveat:
1877
+ "Safety checks may withhold entries or fields, and truncation or unresolved tracking calls may limit coverage.",
1873
1878
  dynamicTrackingCoverageCaveat:
1874
1879
  "Calls with runtime-computed event names are excluded; aliases or other tracking APIs may be missed.",
1875
1880
  overviewFailed: "Build state could not be loaded.",
@@ -0,0 +1,6 @@
1
+ ---
2
+ type: improved
3
+ date: 2026-10-12
4
+ ---
5
+
6
+ Index status shows source scan omissions and truncation
@@ -0,0 +1,6 @@
1
+ ---
2
+ type: improved
3
+ date: 2026-10-12
4
+ ---
5
+
6
+ Workspace member searches distinguish rosters from activity and time-based totals, including when you ask for active members.
@@ -0,0 +1,6 @@
1
+ ---
2
+ type: fixed
3
+ date: 2026-10-12
4
+ ---
5
+
6
+ Workspace-member searches now distinguish active members from users the question excludes.
@@ -0,0 +1,254 @@
1
+ # Synthetic production-path retrieval harness
2
+
3
+ This harness runs the shared Analytics production agent loop with the Analytics
4
+ production prompt, read-only action registry, final-response guard, explicit
5
+ synthetic caller identity, and usage capture. A deterministic in-memory engine
6
+ emits one `find-data` call and a safe metadata-only closeout; it does not call a
7
+ hosted model.
8
+
9
+ The fixtures use invented group and member entities, synthetic table and
10
+ column names, and an artificial test-member exclusion rule. They contain no
11
+ production model names, source definitions, production membership policy, or
12
+ identities. Catalog reads use fixture-backed Analytics dictionary, source-index,
13
+ and dashboard storage seams. Embedding discovery is disabled so the test cannot
14
+ read credentials or call an embedding provider. The action allowlist contains
15
+ only `find-data`; warehouse and connected-data actions are unavailable to the
16
+ loop.
17
+
18
+ ## Current v14 comparison (candidate snapshot `ba536105`)
19
+
20
+ The checked-in v14 artifact runs twenty-two synthetic cases twice in each
21
+ phase through the same production agent loop. The baseline is `origin/main` at
22
+ `0fb4de3ed8bd4e317543575c9b188b93db392d26`; the candidate source snapshot is
23
+ `ba53610515501c3f8657168c2c7346a713ac03df`. The added stale-index case places
24
+ an approved current workspace-assignment definition beside an old generated
25
+ roster entry. Both phases rank the approved definition first. The candidate
26
+ also labels the old entry as stale and unapproved, preserves it as a discovery
27
+ lead, and tells the agent to verify current schema and owner-approved
28
+ definitions. The explicit stale-entry marker appears in 0/44 baseline rows and
29
+ 2/44 candidate rows, one for each run of that case.
30
+
31
+ Across the full case set, the baseline passed top-1 retrieval and production
32
+ path checks in 8/44 runs (18.2%) and returned the expected candidate in the top
33
+ five in 22/44 (50%). The candidate passed 44/44 (100%) on both measures. All 88
34
+ runs completed without aborts; each made one `find-data` call and no other or
35
+ failed action. Each run exercised the production prompt, caller and
36
+ organization context, final-response guard, and usage capture. The deterministic
37
+ in-memory engine does not call a hosted model, BigQuery, or a connected data
38
+ source. These scores measure synthetic retrieval and production-path
39
+ integrity, not hosted-model answer quality or production latency.
40
+
41
+ Evaluated code hashes are
42
+ `sha256:16768496b83db90ba30f74df6ea49f934c1ee11e6ba3fb8d1c7f65ee089e44ac`
43
+ before and
44
+ `sha256:70424c4be93310ac67c21eaf3af6d68e10c18d87e495bce2653c5c40b409e07c`
45
+ after. Both phases use identical harness bytes, hash
46
+ `sha256:04428dd484b504b646a93e1b6b35151fcc344568c8c1cd7780fa498822df8a93`.
47
+ The harness checked the source bytes against each pinned commit when it emitted
48
+ the CSV. The checked-in validator pins those revisions and hashes; it does not
49
+ recompute Git-object hashes.
50
+
51
+ The CSV contains only synthetic case IDs, source revisions, coded ranks and
52
+ scores, action counts, completion state, token totals, elapsed time, and the
53
+ stale-index marker. It contains no prompts, tool inputs, SQL, identities, or
54
+ source values. The v14 artifact is
55
+ [`SYNTHETIC-analytics-production-path-v14-before-after.csv`](./SYNTHETIC-analytics-production-path-v14-before-after.csv).
56
+
57
+ ## Historical v13 comparison (candidate snapshot `586b87b5`)
58
+
59
+ The checked-in v13 artifact runs twenty-one synthetic cases twice in each
60
+ phase through the same production agent loop. The baseline is current
61
+ `origin/main` at `afe2ee7e45f6f3f380571a6d18918fc49d71c6e1`; the candidate
62
+ source snapshot is `586b87b50a99fe0d5023637df9c735bafb47d035`. The new case
63
+ places an approved monthly workspace-membership aggregate beside an unapproved
64
+ generated row-level membership bridge and checks that a plain membership
65
+ lookup selects the row-grain source. All prompts, models, identities, and
66
+ warehouse names are synthetic.
67
+
68
+ The baseline passed both the top-1 retrieval and production-path checks in
69
+ 6/42 runs (14.3%) and retrieved the expected candidate in the top five in
70
+ 20/42 runs (47.6%). The candidate passed 42/42 (100%) on both measures. All 84
71
+ runs completed without aborts; each made one `find-data` call and no other or
72
+ failed action. Each run exercised the production prompt, caller and
73
+ organization context, final-response guard, and usage capture. The deterministic
74
+ in-memory engine does not call a hosted model, BigQuery, or a connected data
75
+ source. These scores measure synthetic retrieval and production-path
76
+ integrity, not hosted-model answer quality or production latency.
77
+
78
+ Evaluated code hashes are
79
+ `sha256:5efa951a394abdcc5d39090b58d0277f1e0392a0ca1c984c96def8935cabcafe`
80
+ before and
81
+ `sha256:f1cda350256c3ec48f87bf151c7284291ecf4467b2c1f9fa5c5062e5fea8b764`
82
+ after. Both phases use identical harness bytes, hash
83
+ `sha256:91a1a65cebb864d1368b624b9dac7e2ab4c32710357e52c4a9c25c6c705a7d97`.
84
+ The harness checked the source bytes against each pinned commit when it emitted
85
+ the CSV. The checked-in validator pins those revisions and hashes; it does not
86
+ recompute Git-object hashes.
87
+
88
+ The CSV contains only synthetic case IDs, source revisions, coded ranks and
89
+ scores, action counts, completion state, token totals, and elapsed time. It
90
+ contains no prompts, tool inputs, SQL, identities, or source values. The v13
91
+ artifact is
92
+ [`SYNTHETIC-analytics-production-path-v13-before-after.csv`](./SYNTHETIC-analytics-production-path-v13-before-after.csv).
93
+
94
+ ## Historical v12 comparison (candidate snapshot `35fdffa8`)
95
+
96
+ The checked-in v12 artifact runs twenty synthetic cases twice in each phase
97
+ through the same production agent loop. The baseline is `origin/main` at
98
+ `1999aef1ad68dcf9d44423fa95df1a7acb67e8c5`; the candidate is
99
+ `35fdffa8f309e2a7820d6c6e1e5decad04ebf989`. The fixture adds long exclusion
100
+ phrases and independent or negated removal clauses to the existing retrieval
101
+ cases. All prompts and identities are invented.
102
+
103
+ The baseline passed both retrieval and production-path checks in 6/40 runs
104
+ (15%) and retrieved the expected candidate in the top five in 18/40 (45%). The
105
+ candidate passed 40/40 (100%) on both measures. All 80 runs completed without
106
+ aborts; each made one `find-data` call and no other or failed action. Each run
107
+ also exercised the production prompt, caller and organization context, final
108
+ response guard, and usage capture. These are deterministic synthetic retrieval
109
+ and path-integrity scores, not hosted-model answer quality, real production
110
+ latency, or a re-run of private user transcripts.
111
+
112
+ The fixture supplies nonzero synthetic source-index scan counts to check that
113
+ the action reports omitted entries, omitted fields, truncated fields, and
114
+ unresolved tracking call sites. It does not execute `build-source-index.ts` or
115
+ measure production-index completeness. The CSV contains only case IDs,
116
+ provenance, coded scores and ranks, action counts, completion state, usage
117
+ totals, and elapsed time; it contains no prompts, tool inputs, SQL, identities,
118
+ or source values. The artifact is
119
+ [`SYNTHETIC-analytics-production-path-v12-before-after.csv`](./SYNTHETIC-analytics-production-path-v12-before-after.csv).
120
+
121
+ Evaluated code hashes are
122
+ `sha256:5bf2d8b224e03b2fb8081a0f61e6e626d420a51c2a3de60c6d6d50595063e8f7`
123
+ before and
124
+ `sha256:7b4e074cb1b62a254e00af4924c37ac923ff280dfdf74b63fb000a207d929e38`
125
+ after. Both phases use the same harness bytes, hash
126
+ `sha256:ca70d1a86c17bff2777ac22b4428f4f4370e4d71ad96e60266f22a54a6ba2792`.
127
+ The harness checks source bytes against the pinned commits when producing the
128
+ CSV. The checked-in validator checks the recorded hashes against reviewed
129
+ constants; it does not recompute Git-object hashes.
130
+
131
+ The validator keeps failed and aborted runs in the comparison with score zero,
132
+ so a regression remains reportable instead of suppressing the CSV. A separate
133
+ production-path test still fails when a candidate run does not pass.
134
+
135
+ ## Historical v11 comparison (candidate snapshot `fb583843`)
136
+
137
+ This historical comparison measures candidate commit
138
+ `fb583843666f597c9eced3d7f4f297fd5cdcec26`. Later ranking and source-index
139
+ changes are not covered by its 32/32 after score. Its fixture supplies a
140
+ hard-coded synthetic source index and does not invoke `build-source-index.ts`.
141
+
142
+ The v11 comparison adds the case `negated-counts-preserve-role-detail` to cover
143
+ the review finding where a negated count request lost the following role
144
+ detail. It uses the same production path and synthetic fixtures as the earlier
145
+ v10 comparison, with sixteen cases run twice in each phase. The before phase is
146
+ pinned to `d0caebd20464a2a00ad417c78943d81438d9333a`; the after phase measures
147
+ the Analytics source changes at `fb583843666f597c9eced3d7f4f297fd5cdcec26`.
148
+
149
+ The evaluated code hashes are
150
+ `sha256:a31ae9051b291723b73c09752df3711dcea125df319de7b96483a52769def191`
151
+ before and
152
+ `sha256:2b0445b08a32d9afabc18ba1e429ee07898ad7033c4575d70e46ac6f184f9358`
153
+ after. Both phases use the candidate harness, whose hash is
154
+ `sha256:b9acd1d7c3c9758d57a4485fd56a72c7954ad2b3fefe74f128fc16fb1ca18472`.
155
+ Generation checks compare the harness and production source bytes with pinned
156
+ Git objects. The checked-in validator compares the CSV's hash fields with its
157
+ pinned constants; it does not independently read Git objects.
158
+
159
+ Top-1 retrieval rose from 6/32 to 32/32 runs (18.75% to 100%). Hit@5 rose from
160
+ 18/32 to 32/32 (56.25% to 100%). The added role-detail case moved from rank 4
161
+ before to rank 1 after. All 64 runs completed without aborts; each made one
162
+ `find-data` call and no other or failed action. These scores use the
163
+ deterministic synthetic engine, so they measure retrieval and production-path
164
+ integrity rather than hosted-model answer quality or production latency. The
165
+ v11 artifact is
166
+ `SYNTHETIC-analytics-production-path-v11-before-after.csv`.
167
+
168
+ To reproduce the v11 comparison, run the harness from candidate commit
169
+ `fb583843666f597c9eced3d7f4f297fd5cdcec26` twice: once against production
170
+ source files pinned to baseline commit
171
+ `d0caebd20464a2a00ad417c78943d81438d9333a`, and once with all evaluated source
172
+ files at the candidate commit. Set `ANALYTICS_EVAL_HARNESS_REVISION` to the
173
+ candidate commit for both runs and retain the emitted CSV only after verifying
174
+ that the before/after rows share the harness hash and fixture revision.
175
+
176
+ The v10 artifact and its original provenance remain unchanged for historical
177
+ comparison; the validator continues to check both versions against their own
178
+ pinned cases and commits.
179
+
180
+ ## Historical v10 reproduction
181
+
182
+ The before phase is pinned to the exact `origin/main` snapshot
183
+ `d0caebd20464a2a00ad417c78943d81438d9333a`. The candidate source revision is
184
+ `595a07f9a507bba5ba43d6478969c6e19bea9ac2`, pinned in the comparison
185
+ validator. Both phases used the same `synthetic-analytics-retrieval-v10` fixture
186
+ and fifteen cases, twice each. The candidate SHA identifies the exact commit
187
+ whose production source files and harness were measured; the later artifact
188
+ commit adds the CSV, comparison assertions, and this README. It does not change
189
+ evaluated production source or harness files.
190
+
191
+ Before-phase checks verify all evaluated production source bytes against the
192
+ pinned baseline commit and require the copied harness to match the bytes at the
193
+ candidate commit named by `ANALYTICS_EVAL_HARNESS_REVISION`. The CSV records the
194
+ harness hash separately, and the validator requires it to be identical in both
195
+ phases. After-phase checks require a clean candidate source tree and every
196
+ evaluated file to match the supplied candidate commit. The evaluated code hashes
197
+ are `sha256:fb3f0bad8151998d81fcf994a55143ee58f64ed8c3483404237669514656a268`
198
+ before and
199
+ `sha256:9a1fc94f54d57e6656dc2793628bcccf917a416980fa1c861b7f44bd28f3d139`
200
+ after. The shared harness hash is
201
+ `sha256:5e746b9ffc64ce67cb7ee0b16a05b276ca6341bd26e90ba7bf12e26028df9ac9`.
202
+
203
+ The pinned baseline is newer than the PR's base, so this measures current main
204
+ against the candidate source commit rather than replaying the historical PR
205
+ base. The v9 artifact remains in the directory as historical evidence.
206
+
207
+ Re-run the already prepared baseline worktree at
208
+ `/tmp/analytics-eval-before-v10-d0caebd-595a07f9`:
209
+
210
+ ```sh
211
+ ANALYTICS_EVAL_PHASE=before ANALYTICS_EVAL_GIT_REVISION=d0caebd20464a2a00ad417c78943d81438d9333a ANALYTICS_EVAL_HARNESS_REVISION=595a07f9a507bba5ba43d6478969c6e19bea9ac2 ANALYTICS_EVAL_EMIT_CSV=1 pnpm --filter analytics exec vitest run evals/synthetic-production-path/production-path.spec.ts
212
+ ```
213
+
214
+ Re-run the candidate in its clean worktree at
215
+ `/tmp/analytics-eval-after-v10-595a07f9`:
216
+
217
+ ```sh
218
+ ANALYTICS_EVAL_PHASE=after ANALYTICS_EVAL_GIT_REVISION=595a07f9a507bba5ba43d6478969c6e19bea9ac2 ANALYTICS_EVAL_EMIT_CSV=1 pnpm --filter analytics exec vitest run evals/synthetic-production-path/production-path.spec.ts
219
+ ```
220
+
221
+ The combined artifact is
222
+ `SYNTHETIC-analytics-production-path-v10-before-after.csv`. Its validator checks
223
+ the privacy-safe schema, all fifteen case IDs, exactly two runs per phase,
224
+ matching before/after `(case_id, run)` pairs, fixture, code, and shared harness
225
+ revisions, completion state, and the one-action allowlist. To verify the CSV and
226
+ the validator's mismatch tests, run:
227
+
228
+ ```sh
229
+ pnpm --filter analytics exec vitest run evals/synthetic-production-path/comparison-validation.spec.ts
230
+ ```
231
+
232
+ ### Historical v10 results
233
+
234
+ Top-1 retrieval rose from 6/30 to 30/30 runs (20% to 100%). Hit@5 rose from
235
+ 16/30 to 30/30 (53.3% to 100%). All 60 runs completed without aborts; each made
236
+ one `find-data` call and no other or failed action. Each phase recorded 7,200
237
+ input and 1,440 output tokens in the deterministic harness. Per-run latency is
238
+ local synthetic harness telemetry, not a hosted-model or production latency
239
+ claim.
240
+
241
+ The CSV serializer permits only synthetic case IDs and execution metadata:
242
+ phase, Git, code, and harness revisions, fixture revision, run number, coded
243
+ score and reason, expected rank and hit@5, action counts, completion and abort
244
+ state, aggregate token counts, and elapsed time. Prompts, model output, tool
245
+ inputs and results, SQL, identities, and fixture values are never serialized.
246
+ Scores measure retrieval and production-path integrity with a deterministic test
247
+ engine; they do not measure hosted-model answer quality or reproduce historical
248
+ user chats.
249
+
250
+ The synthetic retrieval-only benchmark is recorded separately in
251
+ `../synthetic-retrieval/SYNTHETIC-analytics-retrieval-v6.csv`. Its twelve cases
252
+ improved top-1 from 5/12 to 12/12, hit@5 from 10/12 to 12/12, and mean reciprocal
253
+ rank from 0.625 to 1.00. Earlier production-path artifacts remain unchanged for
254
+ historical reference.
@@ -0,0 +1,17 @@
1
+ case_id,phase,git_revision,code_revision,fixture_revision,run,score,reason_code,expected_rank,hit_at_5,find_data_calls,other_action_calls,failed_action_calls,completed,aborted,input_tokens,output_tokens,llm_calls,latency_ms
2
+ current-organization-role-roster,before,8ff15a5577e6530316d59c4e4b2aa751a8f56a63,sha256:9ab7eb6ee7051e2e376721d57a110c28ff2e4aefd185e1840d3e2961749e572b,synthetic-analytics-retrieval-v2,1,0,ranked_below_1,2,true,1,0,0,true,false,240,48,2,68
3
+ current-organization-role-roster,before,8ff15a5577e6530316d59c4e4b2aa751a8f56a63,sha256:9ab7eb6ee7051e2e376721d57a110c28ff2e4aefd185e1840d3e2961749e572b,synthetic-analytics-retrieval-v2,2,0,ranked_below_1,2,true,1,0,0,true,false,240,48,2,25
4
+ current-organization-role-roster,after,9c593ada1a427bc9295f8d7e818483fa06f9fcd6,sha256:484b22f263cdb57ac77a94b1c69364a3f0cd44eff70f7cf03f1ceb7a606b4913,synthetic-analytics-retrieval-v2,1,1,rank_1,1,true,1,0,0,true,false,240,48,2,93
5
+ current-organization-role-roster,after,9c593ada1a427bc9295f8d7e818483fa06f9fcd6,sha256:484b22f263cdb57ac77a94b1c69364a3f0cd44eff70f7cf03f1ceb7a606b4913,synthetic-analytics-retrieval-v2,2,1,rank_1,1,true,1,0,0,true,false,240,48,2,42
6
+ monthly-organization-user-count,before,8ff15a5577e6530316d59c4e4b2aa751a8f56a63,sha256:9ab7eb6ee7051e2e376721d57a110c28ff2e4aefd185e1840d3e2961749e572b,synthetic-analytics-retrieval-v2,1,1,rank_1,1,true,1,0,0,true,false,240,48,2,23
7
+ monthly-organization-user-count,before,8ff15a5577e6530316d59c4e4b2aa751a8f56a63,sha256:9ab7eb6ee7051e2e376721d57a110c28ff2e4aefd185e1840d3e2961749e572b,synthetic-analytics-retrieval-v2,2,1,rank_1,1,true,1,0,0,true,false,240,48,2,23
8
+ monthly-organization-user-count,after,9c593ada1a427bc9295f8d7e818483fa06f9fcd6,sha256:484b22f263cdb57ac77a94b1c69364a3f0cd44eff70f7cf03f1ceb7a606b4913,synthetic-analytics-retrieval-v2,1,1,rank_1,1,true,1,0,0,true,false,240,48,2,29
9
+ monthly-organization-user-count,after,9c593ada1a427bc9295f8d7e818483fa06f9fcd6,sha256:484b22f263cdb57ac77a94b1c69364a3f0cd44eff70f7cf03f1ceb7a606b4913,synthetic-analytics-retrieval-v2,2,1,rank_1,1,true,1,0,0,true,false,240,48,2,26
10
+ active-product-users-map-to-activity,before,8ff15a5577e6530316d59c4e4b2aa751a8f56a63,sha256:9ab7eb6ee7051e2e376721d57a110c28ff2e4aefd185e1840d3e2961749e572b,synthetic-analytics-retrieval-v2,1,0,ranked_below_1,3,true,1,0,0,true,false,240,48,2,22
11
+ active-product-users-map-to-activity,before,8ff15a5577e6530316d59c4e4b2aa751a8f56a63,sha256:9ab7eb6ee7051e2e376721d57a110c28ff2e4aefd185e1840d3e2961749e572b,synthetic-analytics-retrieval-v2,2,0,ranked_below_1,3,true,1,0,0,true,false,240,48,2,22
12
+ active-product-users-map-to-activity,after,9c593ada1a427bc9295f8d7e818483fa06f9fcd6,sha256:484b22f263cdb57ac77a94b1c69364a3f0cd44eff70f7cf03f1ceb7a606b4913,synthetic-analytics-retrieval-v2,1,1,rank_1,1,true,1,0,0,true,false,240,48,2,26
13
+ active-product-users-map-to-activity,after,9c593ada1a427bc9295f8d7e818483fa06f9fcd6,sha256:484b22f263cdb57ac77a94b1c69364a3f0cd44eff70f7cf03f1ceb7a606b4913,synthetic-analytics-retrieval-v2,2,1,rank_1,1,true,1,0,0,true,false,240,48,2,25
14
+ builder-product-users-map-to-identities,before,8ff15a5577e6530316d59c4e4b2aa751a8f56a63,sha256:9ab7eb6ee7051e2e376721d57a110c28ff2e4aefd185e1840d3e2961749e572b,synthetic-analytics-retrieval-v2,1,1,rank_1,1,true,1,0,0,true,false,240,48,2,22
15
+ builder-product-users-map-to-identities,before,8ff15a5577e6530316d59c4e4b2aa751a8f56a63,sha256:9ab7eb6ee7051e2e376721d57a110c28ff2e4aefd185e1840d3e2961749e572b,synthetic-analytics-retrieval-v2,2,1,rank_1,1,true,1,0,0,true,false,240,48,2,23
16
+ builder-product-users-map-to-identities,after,9c593ada1a427bc9295f8d7e818483fa06f9fcd6,sha256:484b22f263cdb57ac77a94b1c69364a3f0cd44eff70f7cf03f1ceb7a606b4913,synthetic-analytics-retrieval-v2,1,1,rank_1,1,true,1,0,0,true,false,240,48,2,27
17
+ builder-product-users-map-to-identities,after,9c593ada1a427bc9295f8d7e818483fa06f9fcd6,sha256:484b22f263cdb57ac77a94b1c69364a3f0cd44eff70f7cf03f1ceb7a606b4913,synthetic-analytics-retrieval-v2,2,1,rank_1,1,true,1,0,0,true,false,240,48,2,27
@@ -0,0 +1,61 @@
1
+ case_id,phase,git_revision,code_revision,harness_revision,fixture_revision,run,score,reason_code,expected_rank,hit_at_5,find_data_calls,other_action_calls,failed_action_calls,completed,aborted,input_tokens,output_tokens,llm_calls,latency_ms
2
+ current-organization-role-roster,before,d0caebd20464a2a00ad417c78943d81438d9333a,sha256:fb3f0bad8151998d81fcf994a55143ee58f64ed8c3483404237669514656a268,sha256:5e746b9ffc64ce67cb7ee0b16a05b276ca6341bd26e90ba7bf12e26028df9ac9,synthetic-analytics-retrieval-v10,1,0,ranked_below_1,3,true,1,0,0,true,false,240,48,2,62
3
+ current-organization-role-roster,before,d0caebd20464a2a00ad417c78943d81438d9333a,sha256:fb3f0bad8151998d81fcf994a55143ee58f64ed8c3483404237669514656a268,sha256:5e746b9ffc64ce67cb7ee0b16a05b276ca6341bd26e90ba7bf12e26028df9ac9,synthetic-analytics-retrieval-v10,2,0,ranked_below_1,3,true,1,0,0,true,false,240,48,2,22
4
+ active-workspace-member-roster-with-roles,before,d0caebd20464a2a00ad417c78943d81438d9333a,sha256:fb3f0bad8151998d81fcf994a55143ee58f64ed8c3483404237669514656a268,sha256:5e746b9ffc64ce67cb7ee0b16a05b276ca6341bd26e90ba7bf12e26028df9ac9,synthetic-analytics-retrieval-v10,1,0,candidate_missing,,false,1,0,0,true,false,240,48,2,23
5
+ active-workspace-member-roster-with-roles,before,d0caebd20464a2a00ad417c78943d81438d9333a,sha256:fb3f0bad8151998d81fcf994a55143ee58f64ed8c3483404237669514656a268,sha256:5e746b9ffc64ce67cb7ee0b16a05b276ca6341bd26e90ba7bf12e26028df9ac9,synthetic-analytics-retrieval-v10,2,0,candidate_missing,,false,1,0,0,true,false,240,48,2,22
6
+ active-workspace-users-map-to-membership,before,d0caebd20464a2a00ad417c78943d81438d9333a,sha256:fb3f0bad8151998d81fcf994a55143ee58f64ed8c3483404237669514656a268,sha256:5e746b9ffc64ce67cb7ee0b16a05b276ca6341bd26e90ba7bf12e26028df9ac9,synthetic-analytics-retrieval-v10,1,0,candidate_missing,,false,1,0,0,true,false,240,48,2,21
7
+ active-workspace-users-map-to-membership,before,d0caebd20464a2a00ad417c78943d81438d9333a,sha256:fb3f0bad8151998d81fcf994a55143ee58f64ed8c3483404237669514656a268,sha256:5e746b9ffc64ce67cb7ee0b16a05b276ca6341bd26e90ba7bf12e26028df9ac9,synthetic-analytics-retrieval-v10,2,0,candidate_missing,,false,1,0,0,true,false,240,48,2,20
8
+ exclude-inactive-show-active-members,before,d0caebd20464a2a00ad417c78943d81438d9333a,sha256:fb3f0bad8151998d81fcf994a55143ee58f64ed8c3483404237669514656a268,sha256:5e746b9ffc64ce67cb7ee0b16a05b276ca6341bd26e90ba7bf12e26028df9ac9,synthetic-analytics-retrieval-v10,1,0,candidate_missing,,false,1,0,0,true,false,240,48,2,20
9
+ exclude-inactive-show-active-members,before,d0caebd20464a2a00ad417c78943d81438d9333a,sha256:fb3f0bad8151998d81fcf994a55143ee58f64ed8c3483404237669514656a268,sha256:5e746b9ffc64ce67cb7ee0b16a05b276ca6341bd26e90ba7bf12e26028df9ac9,synthetic-analytics-retrieval-v10,2,0,candidate_missing,,false,1,0,0,true,false,240,48,2,20
10
+ not-excluding-active-members,before,d0caebd20464a2a00ad417c78943d81438d9333a,sha256:fb3f0bad8151998d81fcf994a55143ee58f64ed8c3483404237669514656a268,sha256:5e746b9ffc64ce67cb7ee0b16a05b276ca6341bd26e90ba7bf12e26028df9ac9,synthetic-analytics-retrieval-v10,1,0,candidate_missing,,false,1,0,0,true,false,240,48,2,20
11
+ not-excluding-active-members,before,d0caebd20464a2a00ad417c78943d81438d9333a,sha256:fb3f0bad8151998d81fcf994a55143ee58f64ed8c3483404237669514656a268,sha256:5e746b9ffc64ce67cb7ee0b16a05b276ca6341bd26e90ba7bf12e26028df9ac9,synthetic-analytics-retrieval-v10,2,0,candidate_missing,,false,1,0,0,true,false,240,48,2,20
12
+ exclude-everyone-but-active-members,before,d0caebd20464a2a00ad417c78943d81438d9333a,sha256:fb3f0bad8151998d81fcf994a55143ee58f64ed8c3483404237669514656a268,sha256:5e746b9ffc64ce67cb7ee0b16a05b276ca6341bd26e90ba7bf12e26028df9ac9,synthetic-analytics-retrieval-v10,1,0,candidate_missing,,false,1,0,0,true,false,240,48,2,19
13
+ exclude-everyone-but-active-members,before,d0caebd20464a2a00ad417c78943d81438d9333a,sha256:fb3f0bad8151998d81fcf994a55143ee58f64ed8c3483404237669514656a268,sha256:5e746b9ffc64ce67cb7ee0b16a05b276ca6341bd26e90ba7bf12e26028df9ac9,synthetic-analytics-retrieval-v10,2,0,candidate_missing,,false,1,0,0,true,false,240,48,2,20
14
+ full-workspace-roster-excludes-active-only-source,before,d0caebd20464a2a00ad417c78943d81438d9333a,sha256:fb3f0bad8151998d81fcf994a55143ee58f64ed8c3483404237669514656a268,sha256:5e746b9ffc64ce67cb7ee0b16a05b276ca6341bd26e90ba7bf12e26028df9ac9,synthetic-analytics-retrieval-v10,1,0,candidate_missing,,false,1,0,0,true,false,240,48,2,21
15
+ full-workspace-roster-excludes-active-only-source,before,d0caebd20464a2a00ad417c78943d81438d9333a,sha256:fb3f0bad8151998d81fcf994a55143ee58f64ed8c3483404237669514656a268,sha256:5e746b9ffc64ce67cb7ee0b16a05b276ca6341bd26e90ba7bf12e26028df9ac9,synthetic-analytics-retrieval-v10,2,0,candidate_missing,,false,1,0,0,true,false,240,48,2,22
16
+ nonpositive-count-instruction-keeps-member-rows,before,d0caebd20464a2a00ad417c78943d81438d9333a,sha256:fb3f0bad8151998d81fcf994a55143ee58f64ed8c3483404237669514656a268,sha256:5e746b9ffc64ce67cb7ee0b16a05b276ca6341bd26e90ba7bf12e26028df9ac9,synthetic-analytics-retrieval-v10,1,0,ranked_below_1,4,true,1,0,0,true,false,240,48,2,18
17
+ nonpositive-count-instruction-keeps-member-rows,before,d0caebd20464a2a00ad417c78943d81438d9333a,sha256:fb3f0bad8151998d81fcf994a55143ee58f64ed8c3483404237669514656a268,sha256:5e746b9ffc64ce67cb7ee0b16a05b276ca6341bd26e90ba7bf12e26028df9ac9,synthetic-analytics-retrieval-v10,2,0,ranked_below_1,4,true,1,0,0,true,false,240,48,2,18
18
+ negated-counts-keep-positive-monthly-trend,before,d0caebd20464a2a00ad417c78943d81438d9333a,sha256:fb3f0bad8151998d81fcf994a55143ee58f64ed8c3483404237669514656a268,sha256:5e746b9ffc64ce67cb7ee0b16a05b276ca6341bd26e90ba7bf12e26028df9ac9,synthetic-analytics-retrieval-v10,1,1,rank_1,1,true,1,0,0,true,false,240,48,2,19
19
+ negated-counts-keep-positive-monthly-trend,before,d0caebd20464a2a00ad417c78943d81438d9333a,sha256:fb3f0bad8151998d81fcf994a55143ee58f64ed8c3483404237669514656a268,sha256:5e746b9ffc64ce67cb7ee0b16a05b276ca6341bd26e90ba7bf12e26028df9ac9,synthetic-analytics-retrieval-v10,2,1,rank_1,1,true,1,0,0,true,false,240,48,2,19
20
+ monthly-organization-user-count,before,d0caebd20464a2a00ad417c78943d81438d9333a,sha256:fb3f0bad8151998d81fcf994a55143ee58f64ed8c3483404237669514656a268,sha256:5e746b9ffc64ce67cb7ee0b16a05b276ca6341bd26e90ba7bf12e26028df9ac9,synthetic-analytics-retrieval-v10,1,1,rank_1,1,true,1,0,0,true,false,240,48,2,19
21
+ monthly-organization-user-count,before,d0caebd20464a2a00ad417c78943d81438d9333a,sha256:fb3f0bad8151998d81fcf994a55143ee58f64ed8c3483404237669514656a268,sha256:5e746b9ffc64ce67cb7ee0b16a05b276ca6341bd26e90ba7bf12e26028df9ac9,synthetic-analytics-retrieval-v10,2,1,rank_1,1,true,1,0,0,true,false,240,48,2,19
22
+ monthly-workspace-users-by-role,before,d0caebd20464a2a00ad417c78943d81438d9333a,sha256:fb3f0bad8151998d81fcf994a55143ee58f64ed8c3483404237669514656a268,sha256:5e746b9ffc64ce67cb7ee0b16a05b276ca6341bd26e90ba7bf12e26028df9ac9,synthetic-analytics-retrieval-v10,1,0,ranked_below_1,2,true,1,0,0,true,false,240,48,2,19
23
+ monthly-workspace-users-by-role,before,d0caebd20464a2a00ad417c78943d81438d9333a,sha256:fb3f0bad8151998d81fcf994a55143ee58f64ed8c3483404237669514656a268,sha256:5e746b9ffc64ce67cb7ee0b16a05b276ca6341bd26e90ba7bf12e26028df9ac9,synthetic-analytics-retrieval-v10,2,0,ranked_below_1,2,true,1,0,0,true,false,240,48,2,19
24
+ bare-active-members-map-to-membership,before,d0caebd20464a2a00ad417c78943d81438d9333a,sha256:fb3f0bad8151998d81fcf994a55143ee58f64ed8c3483404237669514656a268,sha256:5e746b9ffc64ce67cb7ee0b16a05b276ca6341bd26e90ba7bf12e26028df9ac9,synthetic-analytics-retrieval-v10,1,0,candidate_missing,,false,1,0,0,true,false,240,48,2,19
25
+ bare-active-members-map-to-membership,before,d0caebd20464a2a00ad417c78943d81438d9333a,sha256:fb3f0bad8151998d81fcf994a55143ee58f64ed8c3483404237669514656a268,sha256:5e746b9ffc64ce67cb7ee0b16a05b276ca6341bd26e90ba7bf12e26028df9ac9,synthetic-analytics-retrieval-v10,2,0,candidate_missing,,false,1,0,0,true,false,240,48,2,18
26
+ active-product-users-map-to-activity,before,d0caebd20464a2a00ad417c78943d81438d9333a,sha256:fb3f0bad8151998d81fcf994a55143ee58f64ed8c3483404237669514656a268,sha256:5e746b9ffc64ce67cb7ee0b16a05b276ca6341bd26e90ba7bf12e26028df9ac9,synthetic-analytics-retrieval-v10,1,0,ranked_below_1,3,true,1,0,0,true,false,240,48,2,19
27
+ active-product-users-map-to-activity,before,d0caebd20464a2a00ad417c78943d81438d9333a,sha256:fb3f0bad8151998d81fcf994a55143ee58f64ed8c3483404237669514656a268,sha256:5e746b9ffc64ce67cb7ee0b16a05b276ca6341bd26e90ba7bf12e26028df9ac9,synthetic-analytics-retrieval-v10,2,0,ranked_below_1,3,true,1,0,0,true,false,240,48,2,18
28
+ sample-product-users-map-to-identities,before,d0caebd20464a2a00ad417c78943d81438d9333a,sha256:fb3f0bad8151998d81fcf994a55143ee58f64ed8c3483404237669514656a268,sha256:5e746b9ffc64ce67cb7ee0b16a05b276ca6341bd26e90ba7bf12e26028df9ac9,synthetic-analytics-retrieval-v10,1,1,rank_1,1,true,1,0,0,true,false,240,48,2,18
29
+ sample-product-users-map-to-identities,before,d0caebd20464a2a00ad417c78943d81438d9333a,sha256:fb3f0bad8151998d81fcf994a55143ee58f64ed8c3483404237669514656a268,sha256:5e746b9ffc64ce67cb7ee0b16a05b276ca6341bd26e90ba7bf12e26028df9ac9,synthetic-analytics-retrieval-v10,2,1,rank_1,1,true,1,0,0,true,false,240,48,2,19
30
+ active-sample-product-users-map-to-activity,before,d0caebd20464a2a00ad417c78943d81438d9333a,sha256:fb3f0bad8151998d81fcf994a55143ee58f64ed8c3483404237669514656a268,sha256:5e746b9ffc64ce67cb7ee0b16a05b276ca6341bd26e90ba7bf12e26028df9ac9,synthetic-analytics-retrieval-v10,1,0,ranked_below_1,3,true,1,0,0,true,false,240,48,2,19
31
+ active-sample-product-users-map-to-activity,before,d0caebd20464a2a00ad417c78943d81438d9333a,sha256:fb3f0bad8151998d81fcf994a55143ee58f64ed8c3483404237669514656a268,sha256:5e746b9ffc64ce67cb7ee0b16a05b276ca6341bd26e90ba7bf12e26028df9ac9,synthetic-analytics-retrieval-v10,2,0,ranked_below_1,3,true,1,0,0,true,false,240,48,2,20
32
+ current-organization-role-roster,after,595a07f9a507bba5ba43d6478969c6e19bea9ac2,sha256:9a1fc94f54d57e6656dc2793628bcccf917a416980fa1c861b7f44bd28f3d139,sha256:5e746b9ffc64ce67cb7ee0b16a05b276ca6341bd26e90ba7bf12e26028df9ac9,synthetic-analytics-retrieval-v10,1,1,rank_1,1,true,1,0,0,true,false,240,48,2,82
33
+ current-organization-role-roster,after,595a07f9a507bba5ba43d6478969c6e19bea9ac2,sha256:9a1fc94f54d57e6656dc2793628bcccf917a416980fa1c861b7f44bd28f3d139,sha256:5e746b9ffc64ce67cb7ee0b16a05b276ca6341bd26e90ba7bf12e26028df9ac9,synthetic-analytics-retrieval-v10,2,1,rank_1,1,true,1,0,0,true,false,240,48,2,36
34
+ active-workspace-member-roster-with-roles,after,595a07f9a507bba5ba43d6478969c6e19bea9ac2,sha256:9a1fc94f54d57e6656dc2793628bcccf917a416980fa1c861b7f44bd28f3d139,sha256:5e746b9ffc64ce67cb7ee0b16a05b276ca6341bd26e90ba7bf12e26028df9ac9,synthetic-analytics-retrieval-v10,1,1,rank_1,1,true,1,0,0,true,false,240,48,2,66
35
+ active-workspace-member-roster-with-roles,after,595a07f9a507bba5ba43d6478969c6e19bea9ac2,sha256:9a1fc94f54d57e6656dc2793628bcccf917a416980fa1c861b7f44bd28f3d139,sha256:5e746b9ffc64ce67cb7ee0b16a05b276ca6341bd26e90ba7bf12e26028df9ac9,synthetic-analytics-retrieval-v10,2,1,rank_1,1,true,1,0,0,true,false,240,48,2,78
36
+ active-workspace-users-map-to-membership,after,595a07f9a507bba5ba43d6478969c6e19bea9ac2,sha256:9a1fc94f54d57e6656dc2793628bcccf917a416980fa1c861b7f44bd28f3d139,sha256:5e746b9ffc64ce67cb7ee0b16a05b276ca6341bd26e90ba7bf12e26028df9ac9,synthetic-analytics-retrieval-v10,1,1,rank_1,1,true,1,0,0,true,false,240,48,2,30
37
+ active-workspace-users-map-to-membership,after,595a07f9a507bba5ba43d6478969c6e19bea9ac2,sha256:9a1fc94f54d57e6656dc2793628bcccf917a416980fa1c861b7f44bd28f3d139,sha256:5e746b9ffc64ce67cb7ee0b16a05b276ca6341bd26e90ba7bf12e26028df9ac9,synthetic-analytics-retrieval-v10,2,1,rank_1,1,true,1,0,0,true,false,240,48,2,29
38
+ exclude-inactive-show-active-members,after,595a07f9a507bba5ba43d6478969c6e19bea9ac2,sha256:9a1fc94f54d57e6656dc2793628bcccf917a416980fa1c861b7f44bd28f3d139,sha256:5e746b9ffc64ce67cb7ee0b16a05b276ca6341bd26e90ba7bf12e26028df9ac9,synthetic-analytics-retrieval-v10,1,1,rank_1,1,true,1,0,0,true,false,240,48,2,31
39
+ exclude-inactive-show-active-members,after,595a07f9a507bba5ba43d6478969c6e19bea9ac2,sha256:9a1fc94f54d57e6656dc2793628bcccf917a416980fa1c861b7f44bd28f3d139,sha256:5e746b9ffc64ce67cb7ee0b16a05b276ca6341bd26e90ba7bf12e26028df9ac9,synthetic-analytics-retrieval-v10,2,1,rank_1,1,true,1,0,0,true,false,240,48,2,30
40
+ not-excluding-active-members,after,595a07f9a507bba5ba43d6478969c6e19bea9ac2,sha256:9a1fc94f54d57e6656dc2793628bcccf917a416980fa1c861b7f44bd28f3d139,sha256:5e746b9ffc64ce67cb7ee0b16a05b276ca6341bd26e90ba7bf12e26028df9ac9,synthetic-analytics-retrieval-v10,1,1,rank_1,1,true,1,0,0,true,false,240,48,2,29
41
+ not-excluding-active-members,after,595a07f9a507bba5ba43d6478969c6e19bea9ac2,sha256:9a1fc94f54d57e6656dc2793628bcccf917a416980fa1c861b7f44bd28f3d139,sha256:5e746b9ffc64ce67cb7ee0b16a05b276ca6341bd26e90ba7bf12e26028df9ac9,synthetic-analytics-retrieval-v10,2,1,rank_1,1,true,1,0,0,true,false,240,48,2,29
42
+ exclude-everyone-but-active-members,after,595a07f9a507bba5ba43d6478969c6e19bea9ac2,sha256:9a1fc94f54d57e6656dc2793628bcccf917a416980fa1c861b7f44bd28f3d139,sha256:5e746b9ffc64ce67cb7ee0b16a05b276ca6341bd26e90ba7bf12e26028df9ac9,synthetic-analytics-retrieval-v10,1,1,rank_1,1,true,1,0,0,true,false,240,48,2,30
43
+ exclude-everyone-but-active-members,after,595a07f9a507bba5ba43d6478969c6e19bea9ac2,sha256:9a1fc94f54d57e6656dc2793628bcccf917a416980fa1c861b7f44bd28f3d139,sha256:5e746b9ffc64ce67cb7ee0b16a05b276ca6341bd26e90ba7bf12e26028df9ac9,synthetic-analytics-retrieval-v10,2,1,rank_1,1,true,1,0,0,true,false,240,48,2,30
44
+ full-workspace-roster-excludes-active-only-source,after,595a07f9a507bba5ba43d6478969c6e19bea9ac2,sha256:9a1fc94f54d57e6656dc2793628bcccf917a416980fa1c861b7f44bd28f3d139,sha256:5e746b9ffc64ce67cb7ee0b16a05b276ca6341bd26e90ba7bf12e26028df9ac9,synthetic-analytics-retrieval-v10,1,1,rank_1,1,true,1,0,0,true,false,240,48,2,61
45
+ full-workspace-roster-excludes-active-only-source,after,595a07f9a507bba5ba43d6478969c6e19bea9ac2,sha256:9a1fc94f54d57e6656dc2793628bcccf917a416980fa1c861b7f44bd28f3d139,sha256:5e746b9ffc64ce67cb7ee0b16a05b276ca6341bd26e90ba7bf12e26028df9ac9,synthetic-analytics-retrieval-v10,2,1,rank_1,1,true,1,0,0,true,false,240,48,2,61
46
+ nonpositive-count-instruction-keeps-member-rows,after,595a07f9a507bba5ba43d6478969c6e19bea9ac2,sha256:9a1fc94f54d57e6656dc2793628bcccf917a416980fa1c861b7f44bd28f3d139,sha256:5e746b9ffc64ce67cb7ee0b16a05b276ca6341bd26e90ba7bf12e26028df9ac9,synthetic-analytics-retrieval-v10,1,1,rank_1,1,true,1,0,0,true,false,240,48,2,27
47
+ nonpositive-count-instruction-keeps-member-rows,after,595a07f9a507bba5ba43d6478969c6e19bea9ac2,sha256:9a1fc94f54d57e6656dc2793628bcccf917a416980fa1c861b7f44bd28f3d139,sha256:5e746b9ffc64ce67cb7ee0b16a05b276ca6341bd26e90ba7bf12e26028df9ac9,synthetic-analytics-retrieval-v10,2,1,rank_1,1,true,1,0,0,true,false,240,48,2,27
48
+ negated-counts-keep-positive-monthly-trend,after,595a07f9a507bba5ba43d6478969c6e19bea9ac2,sha256:9a1fc94f54d57e6656dc2793628bcccf917a416980fa1c861b7f44bd28f3d139,sha256:5e746b9ffc64ce67cb7ee0b16a05b276ca6341bd26e90ba7bf12e26028df9ac9,synthetic-analytics-retrieval-v10,1,1,rank_1,1,true,1,0,0,true,false,240,48,2,19
49
+ negated-counts-keep-positive-monthly-trend,after,595a07f9a507bba5ba43d6478969c6e19bea9ac2,sha256:9a1fc94f54d57e6656dc2793628bcccf917a416980fa1c861b7f44bd28f3d139,sha256:5e746b9ffc64ce67cb7ee0b16a05b276ca6341bd26e90ba7bf12e26028df9ac9,synthetic-analytics-retrieval-v10,2,1,rank_1,1,true,1,0,0,true,false,240,48,2,20
50
+ monthly-organization-user-count,after,595a07f9a507bba5ba43d6478969c6e19bea9ac2,sha256:9a1fc94f54d57e6656dc2793628bcccf917a416980fa1c861b7f44bd28f3d139,sha256:5e746b9ffc64ce67cb7ee0b16a05b276ca6341bd26e90ba7bf12e26028df9ac9,synthetic-analytics-retrieval-v10,1,1,rank_1,1,true,1,0,0,true,false,240,48,2,20
51
+ monthly-organization-user-count,after,595a07f9a507bba5ba43d6478969c6e19bea9ac2,sha256:9a1fc94f54d57e6656dc2793628bcccf917a416980fa1c861b7f44bd28f3d139,sha256:5e746b9ffc64ce67cb7ee0b16a05b276ca6341bd26e90ba7bf12e26028df9ac9,synthetic-analytics-retrieval-v10,2,1,rank_1,1,true,1,0,0,true,false,240,48,2,20
52
+ monthly-workspace-users-by-role,after,595a07f9a507bba5ba43d6478969c6e19bea9ac2,sha256:9a1fc94f54d57e6656dc2793628bcccf917a416980fa1c861b7f44bd28f3d139,sha256:5e746b9ffc64ce67cb7ee0b16a05b276ca6341bd26e90ba7bf12e26028df9ac9,synthetic-analytics-retrieval-v10,1,1,rank_1,1,true,1,0,0,true,false,240,48,2,28
53
+ monthly-workspace-users-by-role,after,595a07f9a507bba5ba43d6478969c6e19bea9ac2,sha256:9a1fc94f54d57e6656dc2793628bcccf917a416980fa1c861b7f44bd28f3d139,sha256:5e746b9ffc64ce67cb7ee0b16a05b276ca6341bd26e90ba7bf12e26028df9ac9,synthetic-analytics-retrieval-v10,2,1,rank_1,1,true,1,0,0,true,false,240,48,2,53
54
+ bare-active-members-map-to-membership,after,595a07f9a507bba5ba43d6478969c6e19bea9ac2,sha256:9a1fc94f54d57e6656dc2793628bcccf917a416980fa1c861b7f44bd28f3d139,sha256:5e746b9ffc64ce67cb7ee0b16a05b276ca6341bd26e90ba7bf12e26028df9ac9,synthetic-analytics-retrieval-v10,1,1,rank_1,1,true,1,0,0,true,false,240,48,2,77
55
+ bare-active-members-map-to-membership,after,595a07f9a507bba5ba43d6478969c6e19bea9ac2,sha256:9a1fc94f54d57e6656dc2793628bcccf917a416980fa1c861b7f44bd28f3d139,sha256:5e746b9ffc64ce67cb7ee0b16a05b276ca6341bd26e90ba7bf12e26028df9ac9,synthetic-analytics-retrieval-v10,2,1,rank_1,1,true,1,0,0,true,false,240,48,2,55
56
+ active-product-users-map-to-activity,after,595a07f9a507bba5ba43d6478969c6e19bea9ac2,sha256:9a1fc94f54d57e6656dc2793628bcccf917a416980fa1c861b7f44bd28f3d139,sha256:5e746b9ffc64ce67cb7ee0b16a05b276ca6341bd26e90ba7bf12e26028df9ac9,synthetic-analytics-retrieval-v10,1,1,rank_1,1,true,1,0,0,true,false,240,48,2,32
57
+ active-product-users-map-to-activity,after,595a07f9a507bba5ba43d6478969c6e19bea9ac2,sha256:9a1fc94f54d57e6656dc2793628bcccf917a416980fa1c861b7f44bd28f3d139,sha256:5e746b9ffc64ce67cb7ee0b16a05b276ca6341bd26e90ba7bf12e26028df9ac9,synthetic-analytics-retrieval-v10,2,1,rank_1,1,true,1,0,0,true,false,240,48,2,26
58
+ sample-product-users-map-to-identities,after,595a07f9a507bba5ba43d6478969c6e19bea9ac2,sha256:9a1fc94f54d57e6656dc2793628bcccf917a416980fa1c861b7f44bd28f3d139,sha256:5e746b9ffc64ce67cb7ee0b16a05b276ca6341bd26e90ba7bf12e26028df9ac9,synthetic-analytics-retrieval-v10,1,1,rank_1,1,true,1,0,0,true,false,240,48,2,32
59
+ sample-product-users-map-to-identities,after,595a07f9a507bba5ba43d6478969c6e19bea9ac2,sha256:9a1fc94f54d57e6656dc2793628bcccf917a416980fa1c861b7f44bd28f3d139,sha256:5e746b9ffc64ce67cb7ee0b16a05b276ca6341bd26e90ba7bf12e26028df9ac9,synthetic-analytics-retrieval-v10,2,1,rank_1,1,true,1,0,0,true,false,240,48,2,27
60
+ active-sample-product-users-map-to-activity,after,595a07f9a507bba5ba43d6478969c6e19bea9ac2,sha256:9a1fc94f54d57e6656dc2793628bcccf917a416980fa1c861b7f44bd28f3d139,sha256:5e746b9ffc64ce67cb7ee0b16a05b276ca6341bd26e90ba7bf12e26028df9ac9,synthetic-analytics-retrieval-v10,1,1,rank_1,1,true,1,0,0,true,false,240,48,2,31
61
+ active-sample-product-users-map-to-activity,after,595a07f9a507bba5ba43d6478969c6e19bea9ac2,sha256:9a1fc94f54d57e6656dc2793628bcccf917a416980fa1c861b7f44bd28f3d139,sha256:5e746b9ffc64ce67cb7ee0b16a05b276ca6341bd26e90ba7bf12e26028df9ac9,synthetic-analytics-retrieval-v10,2,1,rank_1,1,true,1,0,0,true,false,240,48,2,21