55 lines
7.3 KiB
Plaintext
55 lines
7.3 KiB
Plaintext
[2026-05-14T19:29:51.808Z] RESULT
|
|
============================================================
|
|
{
|
|
"success": true,
|
|
"output": "This repository contains **no application source code** — it is a pure infrastructure/runtime project with only a SQL schema and configuration files. There are no React components, ORM queries, or application logic to analyze.\n\nHere is what I can actually report:\n\n---\n\n## Performance Analysis: What Exists\n\n### SQL Schema (`data/memory/schema.sql`)\n\n**Observations:**\n\n**Missing composite indexes** — several query patterns will require full scans:\n```sql\n-- Current: separate indexes on namespace and status\n-- Queries like: WHERE namespace = ? AND status = 'active' ORDER BY created_at\n-- won't use either index efficiently\n\n-- Add:\nCREATE INDEX IF NOT EXISTS idx_memory_ns_status ON memory_entries(namespace, status);\nCREATE INDEX IF NOT EXISTS idx_memory_ns_accessed ON memory_entries(namespace, last_accessed_at DESC);\n```\n\n**`embedding` stored as JSON text** — vector similarity search requires deserializing every row:\n```sql\n-- Current: embedding TEXT (JSON array string)\n-- Every cosine similarity scan deserializes all rows in namespace\n-- Already mitigated by HNSW in vector_indexes, but only if the HNSW index\n-- is rebuilt on insert. If vectors are stored but HNSW isn't updated,\n-- fallback is a full TEXT scan.\n```\n\n**`trajectory_steps` has no compound index** — replays will full-scan:\n```sql\n-- Add:\nCREATE INDEX IF NOT EXISTS idx_steps_traj_step ON trajectory_steps(trajectory_id, step_number);\n```\n\n**`pattern_history` grows unbounded** — no TTL, no partition:\n```sql\n-- Add a cleanup trigger or scheduled DELETE:\nDELETE FROM pattern_history\nWHERE created_at < (strftime('%s','now') - 7776000) * 1000; -- 90 days\n```\n\n**Known bug in schema** (documented at line 305): the default `vector_indexes` dimension is `384`, but a mismatch causes all `memory_store --vector` calls to fail silently (`#1947`). This is a correctness issue with a direct performance impact (silent failures mean retries).\n\n### Configuration (`claude-flow.config.json`)\n\n| Setting | Current | Concern |\n|---------|---------|---------|\n| `memory.cacheSize` | `1000` | Fine for moderate workloads |\n| `swarm.healthCheckInterval` | `30000` ms | 30s polling is reasonable |\n| `agents.timeout` | `300000` ms (5 min) | Could leak agent slots if tasks stall — consider a lower default with per-task overrides |\n| `swarm.autoScale` | `false` | Manual ceiling at 8 agents; no concern unless queue depth grows |\n\n---\n\n## What Was Not Found\n\n| Requested Analysis | Finding |\n|---|---|\n| N+1 query patterns | No ORM/query code exists |\n| React unnecessary re-renders | No frontend code exists |\n| Caching opportunities | No application logic exists |\n| Memory leaks | No application code to leak |\n| Redundant computations | No application code exists |\n\nIf you have a different codebase in mind or plan to add application code, I can analyze that instead.\n",
|
|
"parsedOutput": {
|
|
"sections": [
|
|
{
|
|
"title": "Performance Analysis: What Exists",
|
|
"content": "\n",
|
|
"level": 2
|
|
},
|
|
{
|
|
"title": "SQL Schema (`data/memory/schema.sql`)",
|
|
"content": "\n**Observations:**\n\n**Missing composite indexes** — several query patterns will require full scans:\n```sql\n-- Current: separate indexes on namespace and status\n-- Queries like: WHERE namespace = ? AND status = 'active' ORDER BY created_at\n-- won't use either index efficiently\n\n-- Add:\nCREATE INDEX IF NOT EXISTS idx_memory_ns_status ON memory_entries(namespace, status);\nCREATE INDEX IF NOT EXISTS idx_memory_ns_accessed ON memory_entries(namespace, last_accessed_at DESC);\n```\n\n**`embedding` stored as JSON text** — vector similarity search requires deserializing every row:\n```sql\n-- Current: embedding TEXT (JSON array string)\n-- Every cosine similarity scan deserializes all rows in namespace\n-- Already mitigated by HNSW in vector_indexes, but only if the HNSW index\n-- is rebuilt on insert. If vectors are stored but HNSW isn't updated,\n-- fallback is a full TEXT scan.\n```\n\n**`trajectory_steps` has no compound index** — replays will full-scan:\n```sql\n-- Add:\nCREATE INDEX IF NOT EXISTS idx_steps_traj_step ON trajectory_steps(trajectory_id, step_number);\n```\n\n**`pattern_history` grows unbounded** — no TTL, no partition:\n```sql\n-- Add a cleanup trigger or scheduled DELETE:\nDELETE FROM pattern_history\nWHERE created_at < (strftime('%s','now') - 7776000) * 1000; -- 90 days\n```\n\n**Known bug in schema** (documented at line 305): the default `vector_indexes` dimension is `384`, but a mismatch causes all `memory_store --vector` calls to fail silently (`#1947`). This is a correctness issue with a direct performance impact (silent failures mean retries).\n\n",
|
|
"level": 3
|
|
},
|
|
{
|
|
"title": "Configuration (`claude-flow.config.json`)",
|
|
"content": "\n| Setting | Current | Concern |\n|---------|---------|---------|\n| `memory.cacheSize` | `1000` | Fine for moderate workloads |\n| `swarm.healthCheckInterval` | `30000` ms | 30s polling is reasonable |\n| `agents.timeout` | `300000` ms (5 min) | Could leak agent slots if tasks stall — consider a lower default with per-task overrides |\n| `swarm.autoScale` | `false` | Manual ceiling at 8 agents; no concern unless queue depth grows |\n\n---\n\n",
|
|
"level": 3
|
|
},
|
|
{
|
|
"title": "What Was Not Found",
|
|
"content": "| Requested Analysis | Finding |\n|---|---|\n| N+1 query patterns | No ORM/query code exists |\n| React unnecessary re-renders | No frontend code exists |\n| Caching opportunities | No application logic exists |\n| Memory leaks | No application code to leak |\n| Redundant computations | No application code exists |\n\nIf you have a different codebase in mind or plan to add application code, I can analyze that instead.",
|
|
"level": 2
|
|
}
|
|
],
|
|
"codeBlocks": [
|
|
{
|
|
"language": "sql",
|
|
"code": "-- Current: separate indexes on namespace and status\n-- Queries like: WHERE namespace = ? AND status = 'active' ORDER BY created_at\n-- won't use either index efficiently\n\n-- Add:\nCREATE INDEX IF NOT EXISTS idx_memory_ns_status ON memory_entries(namespace, status);\nCREATE INDEX IF NOT EXISTS idx_memory_ns_accessed ON memory_entries(namespace, last_accessed_at DESC);"
|
|
},
|
|
{
|
|
"language": "sql",
|
|
"code": "-- Current: embedding TEXT (JSON array string)\n-- Every cosine similarity scan deserializes all rows in namespace\n-- Already mitigated by HNSW in vector_indexes, but only if the HNSW index\n-- is rebuilt on insert. If vectors are stored but HNSW isn't updated,\n-- fallback is a full TEXT scan."
|
|
},
|
|
{
|
|
"language": "sql",
|
|
"code": "-- Add:\nCREATE INDEX IF NOT EXISTS idx_steps_traj_step ON trajectory_steps(trajectory_id, step_number);"
|
|
},
|
|
{
|
|
"language": "sql",
|
|
"code": "-- Add a cleanup trigger or scheduled DELETE:\nDELETE FROM pattern_history\nWHERE created_at < (strftime('%s','now') - 7776000) * 1000; -- 90 days"
|
|
}
|
|
]
|
|
},
|
|
"durationMs": 59183,
|
|
"model": "sonnet",
|
|
"sandboxMode": "permissive",
|
|
"workerType": "optimize",
|
|
"timestamp": "2026-05-14T19:29:51.808Z",
|
|
"executionId": "optimize_1778786932625_a2dgfh"
|
|
}
|