Repository navigation
v0.9.1
Bug fixes for MapCanvas, LineChart and KanbanBoard, and agent skills regenerated to cover
every public export.
Fixed
MapCanvas— the initial view now fits the data (#296). It used to open
on an empty grid at the top-left of the world with pins, tracks and heatmaps off-screen: the fit
misread its own zoom calculation, never applied the zoom it computed, and panned in a different
coordinate space from the one content is drawn in. Content is now projected once, at the level
that frames the data (orbounds) with 60px padding at scale 1, and centred; a single point
opens at level 12, the fit stops at level 16, and no data shows the whole world. Zooming only
scales that projection, so it no longer jumps as you zoom. Tiles come from the integer level
nearest the on-screen zoom.onViewportChange'scenteris now the map point under the middle
of the view;zoomis still the scale factor, 1 being the fitted view.usePanZoom—onViewportChangeno longer fires again just because the callback's identity
changed. A caller that set state from an inline callback, the usual way to write it, re-rendered
forever (MapCanvaswith an inlineonViewportChangelogged "Maximum update depth exceeded").LineChart— no longer throws whenseriesswitches between empty and non-empty data
(#297). A hook ran after the empty-data early return, so the hook count
changed between renders.KanbanBoard—onMoveCard'sindexis now the card's final position for pointer drags
downward within the card's own column too (#298). It was one slot too high,
so a remove-then-insert handler landed the card one slot low. Keyboard and cross-column moves
were already correct.
Added
agent-skills/heimdall-observability— new skill forTraceViewer(with thefromOTLP/
fromXRayadapters and the trace-model helpers),LogStream,DiffViewer,HashSetDiff,
SideBySideDiff,VersionTimelineandLineageRail.agent-skills/heimdall-planning— new skill forCalendar,MiniCalendarandKanbanBoard.npm run check:skills(scripts/check-skill-coverage.mjs) — fails when an exported
component has no section in its assigned skill, a hook or utility export is never named, a skill
documents a component that is not exported, or a props table names a prop the component type
does not accept or leaves out one declared insrc/. The release workflow runs it before the
visual tests.
Changed
- Every agent skill regenerated against the current source. The skills were written in May
and had drifted: 22 public components were in no skill, and many props tables were incomplete.
All 13 skills now cover every value exported fromsrc/index.ts. Notable corrections:heimdall-chartsdocumented aPieChartthat does not exist; it is removed, and the pie case
is described underDonut.ChartWrapperandBarChartgained sections.heimdall-inputsdescribedSelectas a native<select>wrapper. It is a custom dropdown
with single and multi modes andSelect.Item/Select.CheckboxItem/Select.Separator/
Select.SectionTitlechildren.heimdall-data-displayimpliedTablesorts its rows; it only tracks the sort header, and
the consumer sorts inonSort. AddedResultCard,AssetCard,AssetGridandMapCanvas.heimdall-shellno longer tells consumers to pad theShellLayoutcanvas (it pads itself),
and documents the mobile drawer behavior behindmobileBreakpoint.- Added
Avatar(primitives),TooltipandPopover(overlays),ChatMarkdownContent
(chat),useMediaQuery(layout), and inheimdall-graph:GraphEdgeShape,GraphToolbar,
GraphCollapseControl,GraphEdgeInspector,DetailDrawer,usePanZoomand the geometry
utilities. - Missing props added across
Sidebar,Topbar,AppTitle,Statusbar,VersionPill,
Drawer,FilterDropdown,EntityPicker,RowMenu,PipelineCard,ChatComposer,
GraphCanvas,GraphNode,GraphEdgeand six charts.Iconpoints atICONSinstead of a
stale list of names.
/refine-component-skills— the category table now assigns every public export to a skill
(two new categories: observability, planning). Prop tables use backticked names so the checker
can read them.- README — new "Agent skills" section with setup instructions and the skill list.
agent-skills/heimdall-graph— brought up to date with 0.9.0. The skill now covers all
eightGraphCanvaslayouts (what data each suits, the props it reads, and its limits;organic
andorthogonalare marked proof of concept), the hierarchy and collapse props,
nodePopover/edgePopoverand the tooltip triggers, therenderNodefourthpropsargument
a custom renderer must wire for popovers, click tooltips andaria-describedby, the new
GraphNodeprops, and the headlessorganicLayout,orthogonalLayout,radialTreeLayout,
uxNavLayoutandgalaxyLayoutfunctions.