[{"data":1,"prerenderedAt":404},["ShallowReactive",2],{"navigation_docs":3,"-docs-metrics-metrics-dashboard":158,"-docs-metrics-metrics-dashboard-surround":399},[4,15,74,98,113],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":6},"Getting Started",false,"\u002Fdocs\u002Fgetting-started","docs\u002F1.getting-started",[10],{"title":11,"path":12,"stem":13,"icon":14},"Zeeq Introduction","\u002Fdocs\u002Fgetting-started\u002Fintroduction","docs\u002F1.getting-started\u002F1.introduction","i-lucide-house",{"title":16,"path":17,"stem":18,"children":19,"page":6},"Key Features","\u002Fdocs\u002Fkey-features","docs\u002F3.key-features",[20,25,30,35,40,45,50,55,59,64,69],{"title":21,"path":22,"stem":23,"icon":24},"Membership Invitations","\u002Fdocs\u002Fkey-features\u002Fmembership-invitations","docs\u002F3.key-features\u002F1.membership-invitations","i-hugeicons-cube",{"title":26,"path":27,"stem":28,"icon":29},"Command Palette","\u002Fdocs\u002Fkey-features\u002Fcommand-palette","docs\u002F3.key-features\u002F10.command-palette","i-hugeicons-search-01",{"title":31,"path":32,"stem":33,"icon":34},"Library Import and Export","\u002Fdocs\u002Fkey-features\u002Flibrary-import-export","docs\u002F3.key-features\u002F11.library-import-export","i-lucide-package-open",{"title":36,"path":37,"stem":38,"icon":39},"LLM Settings Configuration","\u002Fdocs\u002Fkey-features\u002Fllm-settings-configuration","docs\u002F3.key-features\u002F2.llm-settings-configuration","i-hugeicons-ai-magic",{"title":41,"path":42,"stem":43,"icon":44},"Agent Code Review Findings","\u002Fdocs\u002Fkey-features\u002Fagent-code-review-findings","docs\u002F3.key-features\u002F3.agent-code-review-findings","i-lucide-list-checks",{"title":46,"path":47,"stem":48,"icon":49},"Credentials & API Tokens","\u002Fdocs\u002Fkey-features\u002Fcredentials","docs\u002F3.key-features\u002F4.credentials","i-hugeicons-key-01",{"title":51,"path":52,"stem":53,"icon":54},"Manual Document Libraries","\u002Fdocs\u002Fkey-features\u002Fmanual-document-libraries","docs\u002F3.key-features\u002F5.manual-document-libraries","i-lucide-library-big",{"title":56,"path":57,"stem":58,"icon":29},"Snippet Search","\u002Fdocs\u002Fkey-features\u002Fsnippet-search","docs\u002F3.key-features\u002F6.snippet-search",{"title":60,"path":61,"stem":62,"icon":63},"Shared Prompt Fragment","\u002Fdocs\u002Fkey-features\u002Fshared-prompt-fragment","docs\u002F3.key-features\u002F7.shared-prompt-fragment","i-lucide-notebook-pen",{"title":65,"path":66,"stem":67,"icon":68},"Code Review Sources & Telemetry","\u002Fdocs\u002Fkey-features\u002Fcode-review-sources","docs\u002F3.key-features\u002F8.code-review-sources","i-hugeicons-book-01",{"title":70,"path":71,"stem":72,"icon":73},"Excluding Documents from Code Reviews","\u002Fdocs\u002Fkey-features\u002Fcode-review-document-exclusion","docs\u002F3.key-features\u002F9.code-review-document-exclusion","i-lucide-eye-off",{"title":75,"path":76,"stem":77,"children":78,"page":6},"Runtime Configuration","\u002Fdocs\u002Fconfiguration","docs\u002F5.configuration",[79,84,89,93],{"title":80,"path":81,"stem":82,"icon":83},"Google Cloud Configuration","\u002Fdocs\u002Fconfiguration\u002Fgcp-runtime","docs\u002F5.configuration\u002F1.gcp-runtime","i-hugeicons-google",{"title":85,"path":86,"stem":87,"icon":88},"GitHub Configuration","\u002Fdocs\u002Fconfiguration\u002Fgithub-configuration","docs\u002F5.configuration\u002F2.github-configuration","i-hugeicons-github",{"title":90,"path":91,"stem":92},"Local OpenIddict Certificates","\u002Fdocs\u002Fconfiguration\u002Flocal-openiddict-certificates","docs\u002F5.configuration\u002F3.local-openiddict-certificates",{"title":94,"path":95,"stem":96,"icon":97},"System Admin Access","\u002Fdocs\u002Fconfiguration\u002Fsystem-admin-access","docs\u002F5.configuration\u002F4.system-admin-access","i-hugeicons-shield-01",{"title":99,"path":100,"stem":101,"children":102,"page":6},"Metrics","\u002Fdocs\u002Fmetrics","docs\u002F6.metrics",[103,108],{"title":104,"path":105,"stem":106,"icon":107},"Metrics Dashboard","\u002Fdocs\u002Fmetrics\u002Fmetrics-dashboard","docs\u002F6.metrics\u002F1.metrics-dashboard","i-hugeicons-analytics-01",{"title":109,"path":110,"stem":111,"icon":112},"Metrics Pipeline","\u002Fdocs\u002Fmetrics\u002Fmetrics-pipeline","docs\u002F6.metrics\u002F2.metrics-pipeline","i-hugeicons-database-02",{"title":114,"path":115,"stem":116,"children":117,"page":6},"Design and Architecture","\u002Fdocs\u002Farchitecture","docs\u002F9.architecture",[118,123,128,133,137,141,145,150,154],{"title":119,"path":120,"stem":121,"icon":122},"Caching","\u002Fdocs\u002Farchitecture\u002Fcaching","docs\u002F9.architecture\u002F1.caching","i-lucide-database",{"title":124,"path":125,"stem":126,"icon":127},"Messaging and Queueing","\u002Fdocs\u002Farchitecture\u002Fmessaging-and-queueing","docs\u002F9.architecture\u002F2.messaging-and-queueing","i-lucide-message-square",{"title":129,"path":130,"stem":131,"icon":132},"GitHub Comment Rendering","\u002Fdocs\u002Farchitecture\u002Fgithub-comment-rendering","docs\u002F9.architecture\u002F3.github-comment-rendering","i-lucide-github",{"title":134,"path":135,"stem":136},"GitHub Integration","\u002Fdocs\u002Farchitecture\u002Fgithub-integration","docs\u002F9.architecture\u002F4.github-integration",{"title":138,"path":139,"stem":140},"LLM Settings and Secret Storage","\u002Fdocs\u002Farchitecture\u002Fllm-settings-and-secret-storage","docs\u002F9.architecture\u002F5.llm-settings-and-secret-storage",{"title":142,"path":143,"stem":144},"Organization Activation and Routes","\u002Fdocs\u002Farchitecture\u002Forganization-activation-and-routes","docs\u002F9.architecture\u002F6.organization-activation-and-routes",{"title":146,"path":147,"stem":148,"icon":149},"MCP Uploaded-Diff Code Reviews","\u002Fdocs\u002Farchitecture\u002Fmcp-uploaded-diff-code-reviews","docs\u002F9.architecture\u002F7.mcp-uploaded-diff-code-reviews","i-lucide-file-search",{"title":151,"path":152,"stem":153},"Repository Content Ingest","\u002Fdocs\u002Farchitecture\u002Frepository-content-ingest","docs\u002F9.architecture\u002F8.repository-content-ingest",{"title":155,"path":156,"stem":157},"Telemetry Ingest","\u002Fdocs\u002Farchitecture\u002Ftelemetry-ingest","docs\u002F9.architecture\u002F9.telemetry-ingest",{"id":159,"title":104,"body":160,"description":392,"extension":393,"links":394,"meta":395,"navigation":396,"path":105,"seo":397,"stem":106,"__hash__":398},"docs\u002Fdocs\u002F6.metrics\u002F1.metrics-dashboard.md",{"type":161,"value":162,"toc":378},"minimark",[163,171,176,216,222,225,229,234,237,241,267,282,286,289,309,322,326,340,347,351,371,375],[164,165,166,167,170],"p",{},"The home page is a tabbed dashboard of organization metrics rendered with Apache ECharts. Every panel is a single-organization, window-scoped query served by cached read endpoints; the dashboard never reads raw rows. See ",[168,169,109],"a",{"href":110}," for how the underlying data is captured and stored.",[172,173,175],"h2",{"id":174},"window-and-refresh","Window and Refresh",[164,177,178,179,183,184,188,189,188,192,188,195,188,198,188,201,204,205,188,208,211,212,215],{},"A shared ",[180,181,182],"strong",{},"time window"," selector sits above the tabs and applies to every panel, so switching the range reshapes the whole dashboard at once. Nine fixed windows are available — ",[185,186,187],"code",{},"15m",", ",[185,190,191],{},"30m",[185,193,194],{},"1h",[185,196,197],{},"4h",[185,199,200],{},"12h",[185,202,203],{},"24h"," (default), ",[185,206,207],{},"7d",[185,209,210],{},"14d",", and ",[185,213,214],{},"30d"," — and the set is closed on the server, so arbitrary ranges are rejected by construction and query plans stay predictable.",[164,217,218,221],{},[180,219,220],{},"Auto-refresh"," runs next to the window selector with three modes: off, every 45 seconds, and every 3 minutes (persisted per browser). A manual refresh button and an \"Updated Xs ago\" label are always available. Auto-refresh pauses while you interact with a chart (for example dragging a zoom brush) so a tick never yanks a chart out from under you, and it never overlaps an in-flight refresh.",[164,223,224],{},"Only the active tab is mounted; switching to a tab (or changing the window or a filter) reloads just that tab's panels.",[172,226,228],{"id":227},"tabs","Tabs",[230,231,233],"h3",{"id":232},"overview","Overview",[164,235,236],{},"Headline stat cards for the window: total tool calls, knowledge reads, and reviews, plus critical and major finding totals and the p95 review duration. New installs with no data in the window show an empty state instead of zeros-everywhere noise.",[230,238,240],{"id":239},"mcp-usage","MCP Usage",[242,243,244,251],"ul",{},[245,246,247,250],"li",{},[180,248,249],{},"Tool calls by user"," — a stacked area of MCP tool-call volume, one band per user.",[245,252,253,256,257,188,260,188,263,266],{},[180,254,255],{},"Tool calls by agent"," — a stacked bar grouped by the connecting agent (for example ",[185,258,259],{},"claude-code",[185,261,262],{},"opencode",[185,264,265],{},"cursor",").",[164,268,269,270,273,274,277,278,281],{},"Filters: ",[180,271,272],{},"user"," and ",[180,275,276],{},"tool"," (multi-select). High-cardinality groupings are capped to the top series with the remainder folded into a single ",[180,279,280],{},"Other"," band so the chart stays readable.",[230,283,285],{"id":284},"code-reviews","Code Reviews",[164,287,288],{},"Sourced directly from code-review records (not the metric pipeline):",[242,290,291,297,303],{},[245,292,293,296],{},[180,294,295],{},"Findings by severity"," — a stacked bar of critical\u002Fmajor\u002Fminor\u002Fsuggestion\u002Fcomment totals per repository (or author).",[245,298,299,302],{},[180,300,301],{},"Review volume"," — bucketed review counts over time.",[245,304,305,308],{},[180,306,307],{},"Review mix"," — a donut of review volume by series.",[164,310,269,311,273,314,317,318,321],{},[180,312,313],{},"repository",[180,315,316],{},"author"," (multi-select) and ",[180,319,320],{},"origin"," (single-select: repository webhook, agent, or manual). Repository options include repositories whose mapping was later removed, so historical review data stays selectable; repositories that share a display name are disambiguated with a short id suffix.",[230,323,325],{"id":324},"knowledge-base","Knowledge Base",[242,327,328,334],{},[245,329,330,333],{},[180,331,332],{},"Knowledge reads by library"," — a stacked area of document, section, and snippet reads combined, one band per library.",[245,335,336,339],{},[180,337,338],{},"Most-read paths"," — a ranked horizontal bar (a leaderboard, not a time series) of the most-read document paths across section and snippet reads.",[164,341,342,343,346],{},"Filter: ",[180,344,345],{},"library"," (single-select), which scopes both panels.",[230,348,350],{"id":349},"performance-cost","Performance & Cost",[242,352,353,359,365],{},[245,354,355,358],{},[180,356,357],{},"Review duration percentiles"," — p50\u002Fp95\u002Fp99 lines over the window.",[245,360,361,364],{},[180,362,363],{},"Duration vs. tokens"," — a scatter of review duration against token count; samples with no recorded token count are omitted.",[245,366,367,370],{},[180,368,369],{},"Review cost"," — reserved for a future per-run cost feature; it shows a \"coming soon\" empty state today.",[172,372,374],{"id":373},"empty-states","Empty States",[164,376,377],{},"Every panel renders an explicit \"no data for this window\" placeholder rather than a blank chart, because a new organization (or a short window) legitimately has empty partitions. Stat cards fall back to an em dash while loading.",{"title":379,"searchDepth":380,"depth":380,"links":381},"",2,[382,383,391],{"id":174,"depth":380,"text":175},{"id":227,"depth":380,"text":228,"children":384},[385,387,388,389,390],{"id":232,"depth":386,"text":233},3,{"id":239,"depth":386,"text":240},{"id":284,"depth":386,"text":285},{"id":324,"depth":386,"text":325},{"id":349,"depth":386,"text":350},{"id":373,"depth":380,"text":374},"The home page tabbed dashboard for tool usage, code reviews, knowledge reads, and review performance.","md",null,{},{"icon":107},{"title":104,"description":392},"a63ml2wbTAqM99olxsRzLYNj8m55UodJ9s-q-Stw6u8",[400,402],{"title":94,"path":95,"stem":96,"description":401,"icon":97,"children":-1},"Configure system-admin operators and use the admin diagnostics surface.",{"title":109,"path":110,"stem":111,"description":403,"icon":112,"children":-1},"How application metrics are captured, batched, stored, and served for the dashboard.",1784297365800]