Context
Time-series visualizations are graphs (see the companion issue for the decision and its rationale). This issue covers the last piece: identifiers that are written into stored dashboard configuration, so renaming them requires a config version bump and a migration.
Do not bump the config version for this alone. The rename is cosmetic and the migration risk is not. Fold it into the next bump made for a reason that justifies one on its own, and treat this issue as the checklist for that bump.
Identifiers to rename
Config keys (src/app/core/interfaces/widgets-interface.ts):
| Current |
New |
datachartPath (:414) |
datagraphPath |
datachartSource (:416) |
datagraphSource |
datachartAngleRange (:418) |
datagraphAngleRange |
showMiniChart (:275) |
showMiniGraph |
verticalChart (:460) |
verticalGraph |
datasetAverageArray (:420) |
averageArray |
showDatasetMinimumValueLine (:432) |
showMinimumValueLine |
showDatasetMaximumValueLine (:434) |
showMaximumValueLine |
showDatasetAverageValueLine (:436) |
showAverageValueLine |
showDatasetAngleAverageValueLine (:438) |
showAngleAverageValueLine |
The Dataset prefix drops rather than becoming Graph: "dataset" is a KIP concept Skip no longer has (the registry and client-side recorder went away in the v12 upgrade), so the word is being removed, not translated. The companion issue covers the non-persisted half of that removal.
Widget type strings: widget-data-chart → widget-data-graph, widget-windtrends-chart → widget-windtrends-graph. These are component selectors, but the selector doubles as the persisted type field of a stored widget (widgets-interface.ts:67), so they are not free to rename.
Touchpoints
configuration-upgrade.service.ts — a new version transform following the existing v11..v19 chain, plus two existing tables keyed by the old strings: the path-defaults map ('widget-windtrends-chart', :61) and the legacy class-name map ('WidgetDataChart': 'widget-data-chart', :139).
src/default-config/config.blank.dashboard.ts — the seeded default dashboard stores the type strings.
src/assets/skip-dashboard-schema.json — regenerate with npm run gen:mcp-schema; test:mcp-schema gates drift in npm run ci.
widget.service.ts, dashboard-history-series-sync.service.ts, skip-series-contract.ts, remote-context-demand.util.ts and the corresponding specs all match on the type strings.
- The embed route
#/widget/:type (app.routes.ts:60) resolves a widget by selector, and single-widget-host.component.spec.ts asserts that as a cross-package string contract with @halos-org/skip-freeboard-panel. The panel's manifest currently exposes only widget-wind-steer, so no time-series widget crosses that boundary today — but check the manifest again before renaming, not just this repo.
Verification
- A dashboard saved on the previous config version upgrades on load, with every affected widget keeping its configured path, source, angle range and orientation.
- An exported config file from the previous version imports successfully.
npm run ci passes with the schema artifact regenerated.
Companion issue for the wording and the non-persisted identifiers: #591
Context
Time-series visualizations are graphs (see the companion issue for the decision and its rationale). This issue covers the last piece: identifiers that are written into stored dashboard configuration, so renaming them requires a config version bump and a migration.
Do not bump the config version for this alone. The rename is cosmetic and the migration risk is not. Fold it into the next bump made for a reason that justifies one on its own, and treat this issue as the checklist for that bump.
Identifiers to rename
Config keys (
src/app/core/interfaces/widgets-interface.ts):datachartPath(:414)datagraphPathdatachartSource(:416)datagraphSourcedatachartAngleRange(:418)datagraphAngleRangeshowMiniChart(:275)showMiniGraphverticalChart(:460)verticalGraphdatasetAverageArray(:420)averageArrayshowDatasetMinimumValueLine(:432)showMinimumValueLineshowDatasetMaximumValueLine(:434)showMaximumValueLineshowDatasetAverageValueLine(:436)showAverageValueLineshowDatasetAngleAverageValueLine(:438)showAngleAverageValueLineThe
Datasetprefix drops rather than becomingGraph: "dataset" is a KIP concept Skip no longer has (the registry and client-side recorder went away in the v12 upgrade), so the word is being removed, not translated. The companion issue covers the non-persisted half of that removal.Widget type strings:
widget-data-chart→widget-data-graph,widget-windtrends-chart→widget-windtrends-graph. These are component selectors, but the selector doubles as the persistedtypefield of a stored widget (widgets-interface.ts:67), so they are not free to rename.Touchpoints
configuration-upgrade.service.ts— a new version transform following the existing v11..v19 chain, plus two existing tables keyed by the old strings: the path-defaults map ('widget-windtrends-chart', :61) and the legacy class-name map ('WidgetDataChart': 'widget-data-chart', :139).src/default-config/config.blank.dashboard.ts— the seeded default dashboard stores the type strings.src/assets/skip-dashboard-schema.json— regenerate withnpm run gen:mcp-schema;test:mcp-schemagates drift innpm run ci.widget.service.ts,dashboard-history-series-sync.service.ts,skip-series-contract.ts,remote-context-demand.util.tsand the corresponding specs all match on the type strings.#/widget/:type(app.routes.ts:60) resolves a widget by selector, andsingle-widget-host.component.spec.tsasserts that as a cross-package string contract with@halos-org/skip-freeboard-panel. The panel's manifest currently exposes onlywidget-wind-steer, so no time-series widget crosses that boundary today — but check the manifest again before renaming, not just this repo.Verification
npm run cipasses with the schema artifact regenerated.Companion issue for the wording and the non-persisted identifiers: #591