Repository navigation
feat(a2ui): add compact activity calendar heatmaps - #145
Merged
Merged
Conversation
Lancetnik
added this pull request to stack #131
October 10, 2026 17:19
Branch coverage
49 files skipped due to complete coverage. |
7 tasks done
marklysze
approved these changes
Oct 11, 2026
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.
Why are these changes needed?
A Table's readable column minimum makes GitHub-like activity calendars too wide. Add
CalendarHeatmapas a validated Card/Screen primitive with small squares, weekdays in rows and weeks in columns. Positive daily counts set intensity; analysis, pause, missed, unknown and upcoming days remain distinct. Missing dates remain unknown, and multiple sessions must be aggregated into one dated entry.Support inclusive 1–366-day ranges, Monday/Sunday start, semantic cell sizes, locale labels, tooltips and a status legend. Literal contracts reject invalid dates/ranges, negative or fractional counts, unknown states and duplicate dates. Bound data is checked by the renderer and reports a contained error. Wide ranges scroll within the calendar frame. Preview diagnostics also report the inner CalendarHeatmap and Table scroll regions, so a contained scroll is visible even when the outer frame stays bounded.
Document the primitive in existing card-author resources and screens instructions. No tool is added; visual inspection uses the existing
screens/previewscript from #144.Related issue number
Compact activity calendar follow-up. Stacked on #144 in stack #131.
Checks
ruff check .,ruff format --check ., andpytest -m "not integration"locally and they pass.web/, I rebuilt and committed the SPA bundle (npm --prefix web run build).Validation: 2474 Python tests passed; mypy passed; 561 SPA tests passed; svelte-check reports no errors or warnings. API tests verify persisted calendars and namespaced bindings after restart. Model tests cover calendar placement, explicit/missing states, leap days, UTC year boundaries and invalid data. Live Chrome: 123 layout fixtures passed, including monthly/annual calendars at two frame widths, three cell sizes and English/Russian labels, with console and network checks. Desktop/narrow screenshots were also produced through screens' actual preview renderer.
AI assistance
Implementation and documentation were prepared with Codex assistance and reviewed against the actual diff, calendar cases and browser behavior.