Repository navigation
Version Packages - #9340
Version Packages#9340
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
PR SummaryLow Risk Overview Versions: Reviewed by Cursor Bugbot for commit d373e3d. Bugbot is set up for automated code reviews on this repo. Configure here. |
f88ffd0 to
aee8cd1
Compare
3319fdd to
3843181
Compare
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #9340 +/- ##
==========================================
- Coverage 68.27% 68.27% -0.01%
==========================================
Files 1981 1981
Lines 204985 204988 +3
Branches 8665 8665
==========================================
Hits 139963 139963
- Misses 63355 63358 +3
Partials 1667 1667
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
b2b99f3 to
6e2b92d
Compare
6f85461 to
20c2865
Compare
5c6340c to
51ffa88
Compare
ceaf230 to
a37f9ae
Compare
bd01409 to
f30f5cf
Compare
cc7059f to
a907d94
Compare
22c8f94 to
09f9498
Compare
6cda5da to
40b4e1d
Compare
a10b069 to
eb816f7
Compare
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 3 potential issues.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Want fixes drafted automatically? Bugbot Autofix can create code changes for findings. A team admin can enable Autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit 8adb779. Configure here.

This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated.
Releases
@hashintel/ds-components@0.4.0
Minor Changes
clearableonSelect,TextInputandNumberInputis nowboolean | { onClear }, andsearchableonSelectisboolean | { onSearch?, hideCount?, hideSelectAllToggle? }.Banner'sdismissibleis nowfalse | { onDismiss }, andremoveableonChipandFilterisfalse | { onRemove }. These replace the previous object shapes with an inner enabled flag. (@alex-e-leon, #9646)Per-component subpaths (
@hashintel/ds-components/<name>) export only components: importiconNames,ChipSizeanduseFieldIdfrom the root, andFieldIdProviderfrom/field-id-providerinstead of/field-id-context. (@CiaranMn, #9966)renderSelectedItemnow renders one selected value inside the multi select's trigger, and a string result also supplies that value's summary text. The newrenderSelectedAllrenders the whole selection, asrenderSelectedItemdid before, andFiltermulti-select inputs accept both. (@alex-e-leon, #9684)Buttonno longer shows a pressed state foraria-expandedor emitsaria-pressed: thepressedprop is visual-only, andMenupasses pressed state toButtonthrough context. (@alex-e-leon, #10024)Remove the
styleprop fromTextInputandNumberInput. (@alex-e-leon, #10031)Patch Changes
Fix
OverflowRowmeasurement inside fit-content containers, soFilterand the naked and multi variants ofSelectandComboboxshow summary views more consistently. (@alex-e-leon, #10040)Add
Comboboxcomponent (@alex-e-leon, #9806)Add
multiplesupport toCombobox(@alex-e-leon, #9866)Add
IconProvider, which overrides named icons within a component tree and keeps the defaults for icons it omits. (@kube, #9695)Dialogaccepts content refs and inline styles, for movable and resizable layouts. (@kube)DraweracceptsinitialFocusRefandreturnFocusRefrefs that startnull, asPopoverdoes. (@kube, #9607)Filteroperators can declare select inputs, Select + Inputs handles overflowing content better, andSelectkeyboard navigation follows the APG guidelines more closely. (@alex-e-leon, #9646)MenuandSelectableListitems withsubItemsaccept amenuClassName. (@CiaranMn, #9739)Slideracceptsdisabled, which dims the control and turns its input off. (@kube, #9516)Slidergains aplainvariant with a small fixed-size thumb for dense rows, and its rail spans the slider's root however the root aligns its children. (@kube, #9607)Slidertreats 0 as a value, anduseElementSizetracks an element that mounts after the first render. (@kube, #9421)SlideracceptsstepandonChangeEnd. (@kube, #9398)Add
resolvePandaBuildInfoPathto@hashintel/ds-components/preset, which turns a shippedpanda.buildinfo.jsoninto a path Panda'sincludeaccepts on every platform. (@aacarcrash, #9834)Add header and footer options to
SelectableList, with minor UI improvements. (@alex-e-leon, #9584)Add a
Breadcrumbcomponent. (@alex-e-leon, #9502)@blockprotocol/graph@0.5.1
Patch Changes
@blockprotocol/type-system@0.2.3
Patch Changes
@hashintel/ds-icons@0.0.1
Patch Changes
@hashintel/ds-icons, HASH's animated SVG icon set:HashIconand named icon components with adjustable stroke weight, motion and reduced-motion support.hashIconPackmaps every@hashintel/ds-componentsicon name to the set forIconProvider, and a Panda preset and build info are included. (@aacarcrash, #9981)@hashintel/petrinaut@0.0.20
Patch Changes
Scenarios are written in one form that defines initial state, parameters and variables inline, with type-checked expression editors. Experiments, optimizations and quick simulation can run an ad-hoc scenario defined inline when no saved scenario is selected. (@kube)
Hosts can register validated AI tools that run automatically against the editor.
ErrorTrackerContext.captureExceptionaccepts an optional{ source, tags }context, and the assistant reports its failures there. (@lunelson, #9649)Transition kernels, lambdas and differential equations can be written as a bare function body ending in
return. Theexport defaultmodule form still works. (@kube, #9370)The bottom toolbar moves aside when a side panel would cover it, and collapses to its essential controls when space is narrow. (@kube, #9533)
ExperimentHostContext.runExperimentruns a validated experiment of up to 100,000 runs, with progress callbacks, cancellation and captured results. (@kube, #9676)Hosts can inspect or refuse AI edits through
aiAssistant.executeMutation, add their own assistant tab, and follow the canonical conversation history. (@lunelson, #9562)Hosts can run AI tool calls themselves while the response streams, through
aiAssistant.inBandBrowserTools, and apply one AI edit withexecutePetrinautAiMutation. (@lunelson, #9811)Host assistant tools can read editor commands, current diagnostics, optimizer availability and user-guide content. (@lunelson, #9667)
Hosts can label assistant tabs, flag unseen tab activity, show tool results as pending or refused, show approval controls on matching tool calls, and make Stop durable before the stream is cancelled. (@lunelson, #9722)
Large nets play back and respond to hover faster: only changed nodes re-render, firing animations run only in view, and a closed timeline stops drawing. (@kube, #9592)
Hovering or selecting a node highlights its inputs in blue and its outputs in orange, and the Highlight on hover setting turns the hover highlight off. (@kube, #9591)
The canvas opens centred on the net and remembers each net's position and zoom. Component instances grow to fit their ports, and auto-layout on import ignores the compact/classic setting. (@kube, #9352)
Add a command registry for host-rendered command palettes:
createCommandRegistryandcombineCommandRegistriesin core, andCommandRegistryProvider,useCommand,useCommandsandformatShortcutKeysin@hashintel/petrinaut/react. (@kube, #9457)Copying notification details shows whether the copy succeeded, with a fallback when the Clipboard API refuses it. (@kostandinang, #9792)
createExperimentresolves with the experiment record, which now carries the scenario it compiled (ExperimentRecord.scenario), and no longer selects it. (@kube, #9689)Canvas nodes have a lighter style: places are circles, and transitions are rectangles showing an icon, the wrapped name and the transition type. Arc weight labels sit on the curve. (@kube, #9595)
The left panel always shows the Entities tree, which replaces the separate entity lists and the "Entities tree view" setting. (@kube, #9597)
Hosts can offer retries for failed experiment runs and report experiment activity to the assistant composer. (@kostandinang, #9857)
Experiments can sweep numeric scenario parameters over intervals. A range-slider navigator selects a point or region, metric distributions stream in live, and a Surface plots a contour over two parameters. (@kube, #9093)
Add
aiAssistant.presentation, which selects the Brunch conversation layout: each turn's reasoning and tool calls group under a collapsible Activity row above the answer. The stock layout stays the default. (@kostandinang, #9829)prepareExperimentis exported from@hashintel/petrinaut/react, so a host can resolve an experiment request against the live model without starting a run. (@kostandinang, #9771)Optimization studies run from a sweep's Parameters card, replacing the Optimizations tab. A study can run in the browser, be stopped and continued with more steps, and keeps its best parameters available through View best. (@kube, #9685)
Cmd/Ctrl+click adds a node to the selection or removes it, and a selection box drawn with Cmd/Ctrl held adds to the selection. (@vilkinsons, #9895)
Experiments split their runs across Web Workers, one per logical core minus one, with identical results at any worker count.
experimentShardCountonExperimentsProviderandshardCountoncreateMonteCarloExperimentcap the parallelism. (@kube, #9162)Update the
aidependency to 6.0.286 and@ai-sdk/reactto 3.0.289. (@TimDiekmann, #9849)Add a
navigationprop toPetrinaut, a router-neutral controller through which a host reads and drives the editor's location as browser history.EditorGlobalModeandSimulateViewModeare exported for hosts that encode it. (@kube, #9426)Editor icons come from
@hashintel/ds-icons, a new dependency, with animated hover and state effects. Hosts that compile styles from@hashintel/petrinaut/panda.buildinfo.jsonmust also include@hashintel/ds-icons/panda.buildinfo.json. (@aacarcrash, #9981)New entities get UUID ids. Links, scenarios and subnet references that use older ids still resolve, and
canonicalizePetrinautIdsis re-exported. (@kube, #9957)Add
PetrinautPreviewto@hashintel/petrinaut/preview: a compact read-only embed with optional Quick Simulation from precompiled HIR, and a Full view link fromfullViewUrl. (@kube, #9545)Allow hosts to render application-specific content in the Labs settings section. (@kostandinang, #9793)
Adds a palette command that starts a blank net when the host manages nets. (@kube, #9946)
Add a plugin API:
<Petrinaut plugins>takes plugins that add buttons, top-bar items, commands, settings and UI, listed under Plugins in User settings. (@kube, #9904)Add a
presentationProfileprop toPetrinaut(editororreview) that hides authoring-only controls inreview. (@kube, #9425)Remove
slots.topBarStart,slots.topBarEnd,slots.titleStyleand theviewportActionsprop from<Petrinaut>, theViewportActiontype, and the built-in welcome guide with itsWalkthrough*exports and setting. Plugins replace them. (@kube, #9913)User Settings open in a movable, resizable dialog with keyboard-accessible sections. (@kube)
A place's state visualizer opens from the hovered place, with or without a run, and can be pinned while scrubbing the timeline. (@kube, #9601)
Places can declare a maximum token capacity, and a transition cannot fire if it would take an output place over capacity. (@kube, #9177)
The playback readout shows elapsed and total simulated time instead of frame numbers. (@kube, #9598)
Sidebar, toolbar and properties panel styling is more consistent, with clickable checkbox labels and list labels that use the full row width. (@kube, #9728)
Add experimental automatic arc connections, drawn from one hover handle, with curves that follow node outlines. (@kube, #9677)
The AI assistant docks on the right or floats as a movable, resizable panel, and Cmd/Ctrl+Shift+K toggles it. (@kube, #9659)
On read-only nets, property values show as text instead of disabled inputs, and a blocked edit shows a brief notice that a plugin can extend with an action. (@kube, #9596)
An AI edit that leaves the document unchanged is reported as not applied. (@lunelson, #9537)
Experiment and Scenario panels are resizable, routed and keyboard-selectable, and can open fullscreen. (@kube, #9723)
Net identifiers named after
Object.prototypemembers, such as__proto__, are rejected at import and before simulation. Place visualizer code runs under the same sandbox as scenario code. (@kube, #9222)Scenario code runs in an interpreter instead of
new Function, and is stricter:==is strict, conditions take booleans, unknown place names are errors, and only.map,.reduceand.concatarray methods are available. (@kube, #9332)Properties panels show and edit an element's optional
description. (@CiaranMn, #9484)ExperimentExecutionCardis exported from@hashintel/petrinaut/ui, so host assistants can show experiment and optimization progress with the built-in UI. (@kostandinang, #9800)Experiment and optimization drawers share one layout: a condensing header, a Parameters band, and fixed-height metric cards with a Chart options menu, an Enlarge button and faster distribution heatmaps. (@kube, #9607)
The AI assistant can run experiments and optimizations from chat, with progress, cancellation and a link to the results. (@kube, #9678)
Hosts can add a Voice mode to the AI assistant with
renderVoiceModeand report its state withreportVoiceSessionState.PetrinautAiInputModeis exported, Voice mode controls gainsetMicrophoneMuted, andrenderComposerControlstill adds a control beside the message box. (@kostandinang, #9355)A tool stopped mid-run shows Cancelled, and a message the host has accepted no longer returns to the composer if its stream later fails. (@kostandinang, #9883)
Code sections expand to fill the Properties panel, and Canvas and Definitions are Edit views with browser history navigation. (@kube, #9664)
During a Voice session a compact dock replaces the composer, with a live waveform, microphone mute, interruption by speaking, audio and voice settings, and errors behind a warning icon. (@kostandinang, #9671)
UserSettingsProvideris exported from@hashintel/petrinaut/react, so hosts can read and change user settings from components abovePetrinaut. (@kube, #9634)Hosts can withdraw a pending voice input with an
AbortSignal, and show original voice transcripts through an optional message display projection. (@kostandinang, #9836)Add a WebGPU backend for experiments that matches the CPU engine's semantics and falls back to the CPU for nets it cannot run. A Compilation panel shows the compiled conditions, kernels and equations. (@kube, #9179)
Restore design-system component styles in Petrinaut builds on Windows. (@aacarcrash, #9808)
Export keyboard-focus primitives for panels built from grids and controls:
FocusStack,FocusRoot,useFocusGridanduseFocusStops. (@kube, #9411)Nets and optimization manifests can be imported and exported in YAML and JSON. (@kube, #9379)
Updated dependencies:
@hashintel/petrinaut-core@0.0.5
Patch Changes
Scenarios can store an ad-hoc definition (
initialState.type: "adhoc") that compiles to a generated code-mode scenario and optimization bindings. An LSP session type-checks its value expressions, and bundled example scenarios are editable this way. (@kube, #9284)Transition kernels, lambdas and differential equations can be written as a bare function body ending in
return. Theexport defaultmodule form still works. (@kube, #9370)Add in-browser optimization that runs Optuna in a Pyodide worker, downloaded from jsDelivr and PyPI unless
pyodide.indexURLsays otherwise. The./optimizationentry addsparseOptimizationManifest,isUnknownOptimizationRunErrorandPETRINAUT_OPTIMIZATION_UNKNOWN_RUN_ERROR_CODE, and the main entry addscreateReadableStore. (@kube, #9515)Expose explicit browser and headless diagnostics for captured definitions, and start document observation only when subscribed. (@lunelson, #9667)
Add a command registry for host-rendered command palettes:
createCommandRegistryandcombineCommandRegistriesin core, andCommandRegistryProvider,useCommand,useCommandsandformatShortcutKeysin@hashintel/petrinaut/react. (@kube, #9457)The layout module exports canvas geometry:
compactNodeDimensions,classicNodeDimensions,getComponentInstanceHeight,getBoundsOfCenteredBoxes,getMinZoomForBoundsandZOOM_PADDING. Classic places are 104 × 104 and classic transitions 180 × 60. (@kube, #9352)Register the
createExperimentAI tool with its validated request schema. (@kube, #9678)State constraint expressions accept a trailing semicolon and no explicit
return, and a constraint with separate statements reports the missingreturn. (@kube, #9725)Add the
@hashintel/petrinaut-core/experimentsentry point with anExperimentBackendinterface, a worker-pool backend andselectExperimentBackend.ExperimentRequestaccepts per-run overrides inruns. (@kube, #9178)createJsonDocHandleacceptsSDCPNInput, a loose authoring form ofSDCPNwhose omitted extension fields the newnormalizeSDCPNfills with defaults. Both are exported from the package root. (@kube, #8926)File import defaults a place's
colorId,dynamicsEnabledanddifferentialEquationId, and an arc'sweight, instead of rejecting a file that omits them. (@kube, #9715)Transitions with weighted coloured input arcs, or with lambdas that read no tokens, do far less work per frame. Trajectories are unchanged for every seed. (@kube, #9386)
Metric specs can sample every run that has not errored with
sampleRuns: "notErrored". (@kube, #9685)Add constraint margin and state-indicator evaluators, an optional manifest
constraintPolicy, andaggregateTimesupport ingetRunValues. (@kube, #9604)Export
PetrinautOptimizationDirection, the objective'smaximize|minimizeunion, from the package root and the/optimizationentry. (@kube, #9653)Experiments split their runs across Web Workers, one per logical core minus one, with identical results at any worker count.
experimentShardCountonExperimentsProviderandshardCountoncreateMonteCarloExperimentcap the parallelism. (@kube, #9162)Removes
petrinautAiPrompt; hosts compose their own system prompt frompetrinautAiCapabilityGuidanceor its parts,petrinautAiCapabilitySections. (@kube, #9949)selectionItemTypesandcanonicalizeSelectionare available from the dependency-free@hashintel/petrinaut-core/selectionentry, so hosts can validate selections from a URL or request. (@kube, #9426)Export
petrinautDiagnosticsContextMessageId, the id of the diagnostics message the assistant appends after client tool results. (@lunelson, #9854)Adds
hashPetrinautDocument, a structural hash of a net that ignores the order of object keys and can leave out layout and other non-semantic parts. (@kube, #9935)Entity, net and subnet ids are UUIDs: documents with other ids get stable UUIDs when they load, older ids still resolve, and
petrinautIdSchemavalidates and converts an id field. (@kube, #9958)Places can declare a maximum token capacity, and a transition cannot fire if it would take an output place over capacity. (@kube, #9177)
An AI edit that leaves the document unchanged is reported as not applied. (@lunelson, #9537)
Net identifiers named after
Object.prototypemembers, such as__proto__, are rejected at import and before simulation. Place visualizer code runs under the same sandbox as scenario code. (@kube, #9222)Mark Space as the default starting place in the Probabilistic Satellite Launcher example. (@kube, #9764)
Scenario code runs in an interpreter instead of
new Function, and is stricter:==is strict, conditions take booleans, unknown place names are errors, and only.map,.reduceand.concatarray methods are available. (@kube, #9332)SDCPN elements accept an optional
description, and transitions, subnets, component instances and the net root accept an optional host-definedmetadatarecord of JSON values. (@CiaranMn, #9484)The AI assistant's documentation adds the ad-hoc scenarios, Preview, code editor and simulation panel guides, and describes snapshot validation and its diagnostics. (@kube, #9723)
Distribution frames carry the extent of their bins. (@kube, #9478)
Optimization trials run their seeded replicates in parallel, and the CLI's
--threads <n>bounds the number of workers. (@kube, #9358)Add validated experiment request and result schemas and a
runExperimenthost interface for up to 100,000 runs. (@kube, #9676)Add the Vaccination Campaign example, an SIR model with vaccination and contact reduction built for optimization demos. (@kube, #9516)
Reject arc creation when the referenced transition does not exist instead of treating it as an unchanged mutation. (@lunelson, #9722)
Add a WebGPU backend for experiments that matches the CPU engine's semantics and falls back to the CPU for nets it cannot run. A Compilation panel shows the compiled conditions, kernels and equations. (@kube, #9179)
Nets and optimization manifests can be imported and exported in YAML and JSON. (@kube, #9379)
@hashintel/refractive@0.0.5
Patch Changes