{
  "launcher": "0.1.39",
  "cli": "0.1.25",
  "runtime": "http://127.0.0.1:18067",
  "namespace": "chinook-composition",
  "datasource": "chinook-composition-sqlite",
  "identity": "anonymous dev/test; Console/FAP disabled",
  "evidenceDirectory": "练习目录\\lab\\evidence\\composition-0.1.39\\verification\\20261024-215743-506061",
  "passed": [
    {
      "case": "00-derived-filter",
      "rows": 20,
      "result": "matches independent original rows"
    },
    {
      "case": "01-detail-left",
      "rows": 95,
      "result": "matches independent original rows"
    },
    {
      "case": "03-aggregate-left",
      "rows": 59,
      "result": "matches independent original rows"
    },
    {
      "case": "05-aggregate-both-sides",
      "rows": 47,
      "result": "matches independent original rows"
    },
    {
      "case": "10-invalid-join-key",
      "result": "rejected before execute",
      "error": {
        "code": "COMPOSE_SCRIPT_INVALID",
        "field": "missing_customer_id",
        "message": "JoinPlan.on[0].right='missing_customer_id' not in right side's output schema [bill_count, bill_customer_id, total_amount]",
        "path": "root.source.on[0].right",
        "phase": "compose.validate",
        "safeToAutoRepair": true,
        "suggestedNextAction": "Inspect compose fields/schema and retry."
      },
      "diagnostics": {
        "attributes": {
          "availableFields": [
            "bill_count",
            "bill_customer_id",
            "total_amount"
          ],
          "composeErrorCode": "compose-schema-error/join/on-right-unknown-field",
          "composeErrorPhase": "schema-derive",
          "datasourceType": "sqlite",
          "defaultDialect": "sqlite",
          "dialectSource": "namespace-datasource-type",
          "joinSide": "right",
          "namespace": "chinook-composition",
          "namespaceDatasourceId": "chinook-composition-sqlite",
          "namespaceDatasourceStatus": "active",
          "onIndex": 0,
          "path": "root.source.on[0].right",
          "planPath": "root.source",
          "resolvedDialect": "sqlite"
        },
        "warnings": []
      }
    },
    {
      "case": "11-early-limit-demonstration",
      "rows": 5,
      "result": "matches independent original rows"
    },
    {
      "case": "20-top-customers-then-bills",
      "rows": 7,
      "result": "matches independent original rows"
    },
    {
      "case": "21-derived-top-customers-then-bills",
      "rows": 7,
      "result": "matches independent original rows"
    }
  ],
  "findings": [],
  "independentBaseline": {
    "customers": 59,
    "activeCustomers": 47,
    "invoiceCount": 83,
    "invoiceAmount": "477.53",
    "top3": [
      26,
      34,
      13
    ],
    "top3InvoiceRows": 7
  },
  "originalModelsAndDataUnchanged": true,
  "teachingDatabaseUnchanged": true,
  "newGitHubIssuesSubmitted": false
}
