Release Notes
What's new in each Isabyte PowerTools release — across all six frameworks.
- feat(map): B6 map epic — matrix 95→10, only the two documented IE gaps remain
- feat(elements): B4+B5 element-prop parity — wrongControl 0, missing down to the map epic
- feat(charts): legend, data-change animation, tooltip templates, client re-bin + date format (red-cells B3)
- feat(demo): matrix param-gap sweep + onValue/valueMap knob machinery (red-cells B1+B2)
- docs: sweep close-out — expect-comment correction + ticket 15
- chore: dead mirror fields + controller doc + expect provenance
- fix(i18n): regen locale labels for aiChatCopy + gate the catalogs in CI
- fix(core): #11b ai-chat chrome family under the CSS-coverage guard
- feat(lp): #11 assistant-bubble Copy action ×3 techs
- fix(i18n): #13c dedicated resx key restores aiConnectInfo translations
- fix(copy): #13b core aiConnectInfo matches its real key store
- fix(copy): #13 native key-storage wording + brand purge completion + zh-CN provider term
- docs(ie): #10 desktop-only AI panel is a documented decision
- test(core): #12 deflake isabyte-chart under full-suite load
- test(demo): #9 harden host clone tests against getter-contract changes
- refactor(lp): #8 drop the unemitted prompt field from the clone contract
- fix(tools): #6 scope-verify the overlay crop + record the LP expectation
- fix(lp): #6 template-modal parity (harness crop bug + core CSS drift)
- feat(rn): #5 port applyAiImageResult (AI image ingestion)
- fix(lp): #4 isolate embedded-editor events at the embed boundary
- feat(tools): #3 wire react+angular into the ui-parity route map
- fix(i18n): #7 nb-NO KI consistency + es/sv polish
- feat(i18n): #7 real translations for the AI strings ×6 cultures
- fix(tickets): #2 vue canvas crash + core-dump sweep
- feat(hub): Developer role access model + per-user AI key page
- test(flutter): regenerate the LP AI connect-card golden after de1903e1
- fix(dist): the event reorder's remaining build outputs
- fix(matrix): green the event-order line — manifest events follow the master
- fix(matrix): green the render-order line — relative ordering + knobOrder sync
- test(demo): vue+angular cover the canned clone loop
- docs(demo): LP clone pipeline recipe
- feat(demo): landing-page demos walk the canned Clone-with-AI loop
- feat(flutter): LP host-owned Clone-with-AI pipeline
- feat(rn): LP host-owned Clone-with-AI pipeline
- feat(lp): optional requestId correlation on the clone contract
- fix(lp): unconditional clone-dialog close, empty-generation guard, request-scoped staleness
- feat(lp): host-owned Clone-with-AI pipeline (lpCloneRequest + cloneResponse)
- fix(copy): LP canned reply matches its prompt-only payload + clean the aiMessages API doc
- docs(demo): LP AI chat recipe
- feat(demo): landing-page demos answer ai-request with the canned reply
- fix(lp): align AI bubble chrome to the master CSS across natives + doc the list-identity contract
- feat(flutter): LP host-owned AI chat (aiMessages + onAiRequest)
- feat(rn): LP host-owned AI chat (aiMessages + onAiRequest)
- test(lp): pin host-owned mode reversal + whitespace prompt guard
- feat(lp): host-owned AI chat surface (aiMessages + isabyte:ai-request)
- feat(demo): rn image-editor demo answers onAiRequest with the canned reply
- docs(demo): RN ImageEditor AI surface now available
- fix(rn): AI chat draft persistence, transcript scroll, and hardened payload tests
- feat(rn): hand-port the ImageEditor AI chat surface (aiMessages + onAiRequest)
- fix(hub): wire the Theme Studio AI panel through the AI proxy
- chore(i18n): regen landing-page labels + docs payload (final review fold-ins)
- fix(i18n): resx parity + proxy-copy accuracy + localized brand purge (final review)
- fix(i18n): gen-demo-copy hard-fails when an EXTRA_KEYS neutral value is missing
- feat(i18n): register AI demo/connect strings in the translation pipelines
- fix(copy): AI connect-card brand + proxy-accurate key-storage copy (EN)
- feat(docs): render usageNotes on all five generated API-reference pages
- docs(demo): AI wiring recipe (image-editor) + honest LP AI status
- feat(docs): demo-spec usageNotes → sanitized usage in the docs payload
- feat(demo): flutter image-editor demo answers onAiRequest with a canned reply
- feat(demo): angular image-editor demo answers ai-request with a canned reply
- feat(demo): vue image-editor demo answers ai-request with a canned reply
- feat(demo): react image-editor demo answers ai-request with a canned reply
- feat(matrix): control-kind dimension per parameter
- feat(matrix): cell detail as a modal; move the matrix to the Support group
- fix(fpt): null-safe hostname in the signed-in hint web shim
- feat(test-matrix): admin Product Test matrix, bug pins, and host test mode
- feat(hub): explain passkeys and API tokens, and make passkey sign-in reachable
- feat(hub): /download leads with the OS choice, and it filters the page
- fix(hub): shrink the staff view pill and let it through on small screens
- fix(hub): package-feed URLs in the docs follow the tier, not the stored text
Maintenance release.
- fix(hosts): ship the switcher's manifest into the images, and unpin the probe
- fix(switcher): theme tokens in host-theme.css, and a visible modal title
- feat(switcher): the last two hosts — React Native and Flutter
- feat(switcher): the brand mark opens a product switcher, on the hub and 4 hosts
- fix(ci): give the RN matrix cell a 30s per-test timeout — 5s assumed an idle runner
- fix(ci): restore the wrapper matrix on tags — it is the release's only component tests
- fix(tools): scope the concurrency canary to this repository
- tools(ci): concurrency canary + correct CLAUDE.md's disk-hygiene claims
- perf(ci): make the release pipeline parallel-safe and move the version matrix nightly
- fix(hub): products page links to the tier you're browsing, not production
- fix(hub): phones open My Account instead of a nav menu they can't scroll
- feat(hub): the tech badge opens a product switcher instead of one exit
- feat(hub): product boxes wear their tech's colours, and the wordmark fits
- fix(support): generate the component dropdown instead of hand-keeping it
- fix(server-monitor): render the sort arrow, not the literal text "u25BC"
- fix(hub): drop the generic glyph beside the flagship product headline
- feat(hub): give the terminal + server-monitor home cards their screenshots
- fix(content): make every tutorial tech-centric, not a port of Blazor
- fix(quickpub): refuse to run while a v* release run is active
- feat(tools): quickpub — tech-scoped publish to the live TEST demo hosts in minutes
- fix(docs-gen): keep Blazor-migration framing out of the API Reference
- fix(content): stop the Learning pages teaching Vue customers Blazor
- fix(fpt): give the docs page its hero band and card index on phones
- fix(npt): collapse the nav behind a hamburger on narrow shells
- fix(hosts): nav dropdowns open on tap and keyboard, not only hover
Maintenance release.
- fix(rn): stop Metro from applying the type-only tsconfig paths at runtime
- fix(blazor): deliver the licence verdict from static SSR, not only interop
- fix(rn): pin one React type identity for the host tsc + refresh stale tests
- feat(registries): per-customer auth for package downloads (hub-minted, licence-tied)
- feat(theme-studio): mobile-friendly on phones — activate the builder's dormant mobile chrome; core licence gate restores on late verdicts
- feat(hub): admin dashboard categories render as distinct group panels
- feat(hub): CI-seeded release notes are VISIBLE immediately, on both tiers
- feat(hosts): auth-aware nav (Sign in <-> My Account + Log out) x6 techs; mobile menu closes on navigation
- feat(hub): prune old release artifacts behind /download
- docs(registries): three guards, not two
- fix(registries): refuse an id that is both dropped and pinned
- feat(registries): retire a package name entirely (DROP_IDS)
- refactor(blazor-test): migrate the test clients off the pre-rename package
- feat(registries): purge BaGetter rows whose blob directory is missing
- fix(registries): repair the package-version prune and extend it to all 3 feeds
- feat(ci): prove licensing works in every artifact before anything is published
- feat(demo-host): minify and integrity-stamp the RCL assets the demo site serves
- fix(apt-host): carry the demo licence in a generated constant, not import.meta.env
Maintenance release.
- feat(hosts+hub): nuget.isabyte.com, Isabyte provider band ×6 homes, catalog grid, full-bleed demo headers, mobile flag alignment
- fix(skills): multi-client README at the SOURCE the skillset zip is built from
- feat(hub): download page UI cleanup + multi-client AI skillsets guidance
- feat(hub): home page — component showcase replaces filler sections
- feat(hub): release-notes lists all three registries; admin note editor stays on-screen on phones
- fix(hub): release-notes page mobile overflow + the focus box on every page title
- fix(ci): un-strand the v1.10.13 deploys — stale Dockerfile gates + dash-echo jq kill
- feat(hub): /products overhaul — flagship + six tech voices + Build-with-AI
- feat(demos): demo-page description copy derived from the master resx, localized ×8
- feat(hub): light theme by default + dark-mode Bootstrap coverage + nav/email fixes
- test(docs): un-rot the RN availability assertions the d1b27fdf map port stranded
- feat(i18n): all 8 master cultures in the 5 native hosts + language-selector a11y
- recovery: add off-site copy of the debiansrv backup/restore kit
- fix(demo): vendor the Nordic GeoJSON sample + surface load failures
- fix(release): seed notes + assets into the hub, not the retired demo-db
- fix(map): GeoJSON review remediations — demo circuit guard + renderer input hardening
- fix(demo): cap the map demo's offline downloads at 250 tiles
- docs(map-offline): record FMTC's GPL-3.0 + fix the stale gap-matrix pointer
- feat(rn-map): persistent offline tiles via the UrlTile cache contract, zero new deps
- feat(flutter-map): IsabyteMapFileOfflineStore — persistent app-sandboxed tiles, zero new deps
- feat(flutter-map): offline store interface + async tile resolver
- fix(registry): folded map chrome never gets generic Flutter builders
- chore(docs): availability regen for the map-chrome natives
- feat(map-chrome): MapDatapoints + MapOfflineStorage hand-ported to RN and Flutter — 50/50





