Repository navigation
Conversation
…eads at a glance Dumbbells now grid every tick and guide every row, pack rows 36px apart, draw a heavier connector and bigger dots, end the axis at a round tick near the data, and print each row's lowest and highest value beside its outer dots. Rows over dates are names, so each gets its own connector instead of one line through them all.
Next step Pass interrupted; current webhook state retained. Final answersSession Pass interrupted; current webhook state retained. Session Pass interrupted; current webhook state retained. Session Pass interrupted; current webhook state retained. Session Pass interrupted; current webhook state retained. Session Pass interrupted; current webhook state retained. Session Pass interrupted; current webhook state retained. Session Pass interrupted; current webhook state retained. Session Pass interrupted; current webhook state retained. Session Pass interrupted; current webhook state retained. Session Pass interrupted; current webhook state retained. |
🚀 Deploying Preview to Cloudflare 🚀Preview Deployments by commit
View all previews: View all previews ↗ |
There was a problem hiding this comment.
Important
The new dumbbell endpoint labels are computed from the wrong Vega fields after the chart's x/y encoding is flipped.
Reviewed changes
This review covers the dumbbell rendering changes and their focused HTML rendering tests.
- Dumbbell layout — Adds explicit round x ticks, x/y gridlines, tighter rows, stronger connectors, larger dots, and endpoint text layers.
- Date rows — Forces dumbbell rows to remain separate when the x labels are dates.
- Coverage — Adds assertions for ticks, gridlines, endpoint values, and per-row connectors.
gpt-5.6-sol | 𝕏
|
Fixed the dumbbell label transform to aggregate numeric endpoints by row (the flipped encoding fields), and added scale room for both low and high endpoint labels so worst-case charts stay within the plot. |
There was a problem hiding this comment.
Important
The new label-field fix is addressed, but the incremental scale-padding changes still leave two edge cases that can produce clipped or unusable dumbbells.
Reviewed changes
This review covers the changes since the prior Pullfrog review, especially endpoint-label scale padding and the corrected per-row label aggregation.
- Expanded endpoint padding — Added right-edge padding for the largest endpoint and updated the existing left-edge padding comment.
- Corrected label fields — Changed the label transforms to aggregate numeric endpoints by row and render the endpoint field.
- Retained dumbbell coverage — Kept the grid, tick, endpoint-label, and date-row connector assertions while the new edge cases remain untested.
gpt-5.6-sol | 𝕏
There was a problem hiding this comment.
Important
The equal-endpoint fallback now avoids a degenerate scale, but the axis still receives the original duplicate tick values.
Reviewed changes
This incremental review covers the dumbbell scale guards added since the prior Pullfrog review.
- Filtered invalid endpoints — Ignores non-finite values when deriving the dumbbell domain and skips scale adjustment when no finite endpoint remains.
- Widened equal domains — Expands a single-value domain so identical endpoints can render on a nonzero quantitative scale.
gpt-5.6-sol | 𝕏
There was a problem hiding this comment.
✅ No new issues found.
Reviewed changes
This incremental review covers the equal-endpoint scale fix and the merge resolution since the prior Pullfrog review.
- Regenerated equal-domain ticks — Recomputed explicit axis tick values after widening an all-equal endpoint domain, removing the previously reported duplicate-tick case.
- Preserved dumbbell rendering — Retained finite endpoint filtering, iterative label padding, corrected per-row endpoint aggregation, and the date-row connector fix.
- Verification —
pnpm --filter comark-charts testpasses.
gpt-5.6-sol | 𝕏
There was a problem hiding this comment.
Important
The latest rendering refactor removes the exported drawSpec path, so every Vega-Lite chart now fails during parsing and falls back to showing only its table.
Reviewed changes
This incremental review covers the commits since 95b650c, including the rendering-helper cleanup and the final source-formatting change.
- Inlined chart rendering — Moved the ordinary chart
Viewconstruction and SVG cleanup directly intodraw. - Simplified waterfall iteration — Removed the unused waterfall row binding from the level calculation.
- Retained dumbbell behavior — Preserved the dumbbell gridlines, scale handling, labels, and date-row connector coverage.
gpt-5.6-sol | 𝕏
There was a problem hiding this comment.
✅ No new issues found.
Reviewed changes
This incremental review covers the changes since the prior Pullfrog review, especially the restored Vega-Lite spec rendering path.
- Restored spec rendering — Reintroduced the exported
drawSpecimplementation while retaining the shared renderer, sealed loader, and recursive nested-data sanitization. - Preserved dumbbell behavior — Kept the dumbbell gridlines, scale handling, endpoint labels, and per-date-row connector behavior unchanged.
- Verification —
pnpm --filter comark-charts testpasses.
gpt-5.6-sol | 𝕏
There was a problem hiding this comment.
✅ No new issues found.
Reviewed changes
This incremental review covers the merge commit since the prior Pullfrog review, including the landing canvas first-paint fix and its end-to-end coverage.
- Measured canvas activation — Synchronously captured the viewport dimensions before the first canvas draw during client navigation, preventing a zero-width centering offset.
- Added navigation coverage — Verified that the first card remains centered across animation frames after navigating to the landing page.
- Updated generated footer credit — Removed the Comark team attribution from the generated footer.
gpt-5.6-sol | 𝕏
There was a problem hiding this comment.
✅ No new issues found.
Reviewed changes
This incremental review covers the field-guard adjustment in packages/charts/src/draw.ts since the prior Pullfrog review.
- Loosened field guards — Changed the dumbbell encoding checks to use field-property presence while preserving the assembled string fields used by valid package dumbbells.
- Preserved chart behavior — Verified that the new commit does not alter the numeric endpoint, row grouping, label, or Vega-Lite spec rendering paths.
gpt-5.6-sol | 𝕏
There was a problem hiding this comment.
✅ No new issues found.
Reviewed changes
This incremental review covers the field-type narrowing and direct field access added since the prior Pullfrog review.
- Narrowed dumbbell fields — Required the x encoding field to be a string and safely narrowed the optional y row field before using the generated Vega-Lite fields.
- Preserved chart behavior — Verified that valid repository dumbbells still assemble string fields, including date-labeled rows, and that the endpoint aggregation continues to use the numeric field.
- Verification —
pnpm --filter comark-charts testpasses.
gpt-5.6-sol | 𝕏
There was a problem hiding this comment.
✅ No new issues found.
Reviewed changes
This incremental review covers the final dumbbell field-guard cleanup since the prior Pullfrog review.
- Removed redundant runtime checks — Replaced the remaining string checks with casts for the internally generated Vega-Lite field names.
- Preserved dumbbell rendering — Confirmed the public parser still supplies string fields and the endpoint aggregation, row grouping, labels, and per-row connectors remain valid.
- Verification —
pnpm --filter comark-charts testpasses.
gpt-5.6-sol | 𝕏
There was a problem hiding this comment.
Important
The latest clearance adjustment can leave valid narrow dumbbell endpoint labels at the plot edge and clip them.
Reviewed changes
This incremental review covers the clearance increase since the prior Pullfrog review.
- Increased endpoint clearance — Raised the estimated outside-label allowance from 10px to 24px for both low and high endpoints.
- Preserved dumbbell behavior — Retained the existing scale, gridline, row-layout, label, and per-date-row connector implementation.
- Verification —
pnpm --filter comark-charts testpasses.
gpt-5.6-sol | 𝕏
There was a problem hiding this comment.
Important
The new cap can make endpoint-padding passes expand a dumbbell's domain instead of converging for narrow charts with wide numeric labels.
Reviewed changes
This incremental review covers the endpoint-padding change since the prior Pullfrog review.
- Capped label clearance — Replaced the
need < 1bypass with a0.9cap for both low and high endpoint labels. - Retained chart coverage — Preserved the dumbbell row layout, gridlines, labels, scale handling, and existing rendering tests.
gpt-5.6-sol | 𝕏
…cannot fit Rows whose series tie matched the min filter once per series, so the same value was drawn twice on one dot. The edge padding was also solved with a stale opposite edge for three passes, which under-padded wide plots and, on plots narrowed by long row names, pushed the scale far past the data so the fallback ticks at the data's ends overlapped. The span is now iterated to its fixed point, and when the end labels would take more than 60% of the plot the table carries the numbers instead.
comark-annotate
comark-carousel
comark-charts
comark-chips
comark-code
comark-diff
comark-embed
comark-github
comark-icon
comark-include
comark-linter
comark-tabs
comark-zoom
commit: |
There was a problem hiding this comment.
✅ No new issues found.
Reviewed changes
This incremental review covers the changes since the prior Pullfrog review: replacing the capped sequential endpoint padding with a convergent all-row calculation, suppressing labels when the plot is too narrow for them, and printing tied row endpoints only once.
- Convergent endpoint padding — Derives both scale bounds from all row extrema on each pass, addressing the prior narrow-plot expansion concern.
- Narrow-plot fallback — Omits endpoint text when its estimated clearance would consume more than 60% of the plot, leaving the data table as the readable fallback.
- Tied endpoint labels — Uses per-row aggregation and window filtering so repeated endpoint values share one label.
- Verification —
pnpm --filter comark-charts testpasses.
gpt-5.6-sol | 𝕏

The dumbbell chart was hard to read: four rows far apart, a thin pale connector, no gridlines, and an axis running well past the largest value.
Only dumbbells change. The new tests in
packages/charts/test/charts.test.tscheck the ticks, the gridlines, the printed values, and one connector per row over dates.🤖 Generated with Claude Code