{"record":{"id":"8d5a952b7ee764eb","repo":"ruvnet/ruflo","slug":"no-measurement-started-for-name","errorCode":null,"errorMessage":"No measurement started for: ${name}","messagePattern":"No measurement started for: (.+?)","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"v3/@claude-flow/testing/src/helpers/setup-teardown.ts","lineNumber":576,"sourceCode":" * @example\n * const perf = createPerformanceTestHelper();\n * perf.startMeasurement('search');\n * await search();\n * const duration = perf.endMeasurement('search');\n */\nexport function createPerformanceTestHelper(): PerformanceTestHelper {\n  const measurements = new Map<string, number[]>();\n  const starts = new Map<string, number>();\n\n  return {\n    startMeasurement(name: string): void {\n      starts.set(name, performance.now());\n    },\n\n    endMeasurement(name: string): number {\n      const start = starts.get(name);\n      if (start === undefined) {\n        throw new Error(`No measurement started for: ${name}`);\n      }\n\n      const duration = performance.now() - start;\n      starts.delete(name);\n\n      if (!measurements.has(name)) {\n        measurements.set(name, []);\n      }\n      measurements.get(name)!.push(duration);\n\n      return duration;\n    },\n\n    getMeasurements(): Record<string, number[]> {\n      return Object.fromEntries(measurements);\n    },\n\n    getStats(name: string): { min: number; max: number; avg: number; p95: number } {","sourceCodeStart":558,"sourceCodeEnd":594,"githubUrl":"https://github.com/ruvnet/ruflo/blob/fa13ee4ad60ac2090b1480656eb233521790d640/v3/@claude-flow/testing/src/helpers/setup-teardown.ts#L558-L594","documentation":"PerformanceTestHelper.endMeasurement was called for a name with no matching startMeasurement call in the starts Map. The helper cannot compute a duration without a start timestamp, so this indicates unbalanced start/end calls in the test.","triggerScenarios":"Thrown at v3/@claude-flow/testing/src/helpers/setup-teardown.ts:576 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Call startMeasurement(name) before endMeasurement(name).","Check for a name mismatch between the start and end calls."],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"fa13ee4ad60ac2090b1480656eb233521790d640","analyzedAt":"2026-08-18T21:34:22.708Z","contentChangedAt":"2026-08-18T21:34:22.708Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}