feat(dashboard): sixel timeseries via shared pixel-core renderer - #1410
Draft
jared-outpost[bot] wants to merge 1 commit into
Draft
feat(dashboard): sixel timeseries via shared pixel-core renderer#1410jared-outpost[bot] wants to merge 1 commit into
jared-outpost[bot] wants to merge 1 commit into
Conversation
Rework the opt-in sixel timeseries rendering (#1231) around a single resolution-independent chart core instead of a standalone sixel-only renderer. chart-core.ts builds a ChartModel from a TimeseriesResult and rasterizes it into an RGBA canvas at a caller-chosen resolution. The sixel path (pixel resolution) is now a thin wrapper over the core, and the ASCII renderer shares the same categorical palette, so both outputs agree on hue and stacking. Output target picks the resolution upfront. Opt-in via --sixel / SENTRY_DASHBOARD_SIXEL=1 / displayType timeseries_sixel; falls back to text when the terminal lacks support. Closes #1231
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Reworks the opt-in sixel timeseries rendering to use a single shared pixel core, per review feedback on #1409 (that PR is closed; this supersedes it).
Instead of a standalone sixel-only renderer duplicating the palette and bar-geometry that the ASCII renderer already had, there's now one resolution-independent chart core:
chart-core.ts—buildChartModel(TimeseriesResult)produces a resolution-independentChartModel(buckets, maxVal, stacked);rasterizeChart(model, {width, height})draws it into an RGBA canvas at a caller-chosen resolution. The output target picks the resolution upfront.sixel-timeseries.ts— now a thin wrapper: build model → rasterize at pixel resolution →encodeImageToSixel.dashboard.ts— the ASCII renderer shares the sameSERIES_PALETTEfrom the core, so sixel and ASCII agree on hue and stacking.Opt-in unchanged:
--sixel(alias-s) /SENTRY_DASHBOARD_SIXEL=1/ widgetdisplayType: timeseries_sixel. Falls back to text rendering when the terminal doesn't support sixel.Testing
tsc --noEmitcleanvitest run test/lib/formatters/— 1012 passing (includes newchart-core.test.ts, plus the existing sixel + dashboard-sixel integration tests)biome checkclean on changed filesCloses #1231
cc @BYK — this is the shared-renderer v2 you asked for.