Added the all-time automation entries chart - #31042
Conversation
|
Navigate logical layers of code changes, visualize relationships, and explore their blast radius. Note Reviews pausedIt looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the Use the following commands to manage reviews:
Use the checkboxes below for quick actions:
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Repository: TryGhost/Ghost/.coderabbit.yaml Review profile: QUIET Plan: Advanced Run ID: 📒 Files selected for processing (1)
Included review availability: This review used your included allowance. Your plan provides up to 10 included reviews per hour; 8 remain after this review. 📜 Recent review details⏰ Context from checks skipped due to timeout. (6)
🧰 Additional context used📓 Path-based instructions (9)Review Admin UI for existing Shade reuse, correct component layer, semantic tokens, accessible interaction states, and whole-sentence translations.⚙️ CodeRabbit configuration file Files:
Review whether tests prove changed behaviour, meaningful error/edge paths, and externally observable contracts without coupling to implementation details.⚙️ CodeRabbit configuration file Files:
Review lens: "where does this data become trusted?" Boundary data (HTTP input, external API/SDK responses, env/config, DB/filesystem reads, queue/webhook/event payloads) is `unknown` until validated — Zod by default.⚙️ CodeRabbit configuration file Files:
Prioritise concrete correctness, security, data-integrity, compatibility, and regression risks.⚙️ CodeRabbit configuration file Files:
Source excerpt: This extracts source strings, updates all locale files, and synchronizes `packages/i18n/locales/context.json`.📄 CodeRabbit inference engine (docs/practices/internationalization.md) Files:
Source excerpt: Built Admin assets are copied into `ghost/core/core/built/admin/` for the Ghost release.📄 CodeRabbit inference engine (docs/codebase/monorepo-structure.md) Files:
Source excerpt: Ghost has several test suites across the monorepo.📄 CodeRabbit inference engine (docs/contributing/testing.md) Files:
Source excerpt: Errors are part of the product experience.📄 CodeRabbit inference engine (docs/practices/error-handling.md) Files:
Source excerpt: Read the human documentation before changing Shade: Source excerpt: Use the repository Shade skills for the relevant task.📄 CodeRabbit inference engine (apps/shade/AGENTS.md) Files:
🔇 Additional comments (1)
WalkthroughThe change adds a validated query for automation performance statistics and maps the results to chart data. The automation canvas displays the performance sidebar only when both analytics flags are enabled. The sidebar loads totals and a chart after it first opens. Area charts now deduplicate endpoint dates and center the tick when the data contains one distinct date. Priority: ⬇️ Low Change: Feature Merge Risk: ⚪ Minimal · up to The updated test matches the sidebar’s two-flag visibility behavior; no material merge risk is evident in the scoped change. Architecture SummaryArchitecture risk: 🔵 Low · up to The change affects 3 systems. Changed systems: Architecture concerns Review detailsSystems and components
Before / after behavior
🚥 Pre-merge checks | ✅ 6✅ Passed checks (6 passed)
✨ Finishing Touches 💡 1🛠️ Fix failing CI checks 💡
📝 Generate docstrings
🧪 Generate unit tests (beta)
Comment |
|
| Command | Status | Duration | Result |
|---|---|---|---|
nx run @tryghost/admin:test:acceptance --shard=2/2 |
✅ Succeeded | 10m 7s | View ↗ |
nx run-many -t test:unit -p @tryghost/admin-x-f... |
✅ Succeeded | 7m 9s | View ↗ |
nx run @tryghost/admin:test:acceptance --shard=1/2 |
✅ Succeeded | 6m 32s | View ↗ |
nx run ghost-monorepo:lint:boundaries |
✅ Succeeded | 29s | View ↗ |
nx run ghost-admin:test |
✅ Succeeded | 2m 58s | View ↗ |
nx run-many -t lint -p @tryghost/admin-x-framew... |
✅ Succeeded | 2m 22s | View ↗ |
nx run @tryghost/admin:build |
✅ Succeeded | 1m 59s | View ↗ |
nx run @tryghost/activitypub:test:acceptance --... |
✅ Succeeded | 34s | View ↗ |
Additional runs (3) |
✅ Succeeded | ... | View ↗ |
💡 Verify your cache is correct by running tasks in a sandbox. Read docs ↗
☁️ Nx Cloud last updated this comment at 2026-09-30 15:42:59 UTC
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #31042 +/- ##
=======================================
Coverage 69.25% 69.26%
=======================================
Files 1623 1623
Lines 59374 59374
Branches 10254 10254
=======================================
+ Hits 41119 41123 +4
+ Misses 15973 15971 -2
+ Partials 2282 2280 -2
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
f89b3d3 to
9c56c65
Compare
9c56c65 to
8ec5d17
Compare
8ec5d17 to
f52f847
Compare
f52f847 to
3db2f1e
Compare
3db2f1e to
154f0fe
Compare
154f0fe to
5e79c76
Compare
5e79c76 to
035ff18
Compare
6cd54e8 to
bdd67f4
Compare
Requires both automationRunAnalytics and automationsTinybirdSync. Displays total entries and the complete entry history in the performance sidebar using the combined performance-stats API. Adds the validated API schema and hook, chart mapping, and page-lifetime query policy. Sends the browser timezone to match web analytics and accepts localized response windows. Fetches on first opening, keeps content mounted while closed, and provides loading, empty, and retry states. Keeps single-day chart labels centered without duplicate dates. Tests cover: - Chart grouping, number formatting, browser-timezone requests, and response validation. - First-open loading, cached reopening, navigation, errors/retry, and either flag disabled. - Single-day labels, endpoint alignment, and chart tooltip values.
bdd67f4 to
f82f781
Compare
| formatter={(value) => | ||
| formatDisplayDateWithRange(String(value), range, showHours, xTickHoursOnly) | ||
| } | ||
| textAnchor={xTicks.length === 1 ? 'middle' : undefined} |
There was a problem hiding this comment.
this is so that if there's a scenario where the start and end label are the same for some reason, we don't display them right next to each other - i.e instead of Sep 30 Sep 30 right beneath a single point, it's just Sep 30. it's sort of rare bc we have hourly buckets on day of, but can still happen

closes https://linear.app/ghost/issue/NY-1583
Displays total entries and the complete entry history in the performance sidebar using the combined performance-stats API. Adds the validated API schema and hook, chart mapping, and page-lifetime query policy.
Fetches on first opening, keeps content mounted while closed, and provides loading, empty, and retry states. Keeps single-day chart labels centered without duplicate dates.
Tests cover: