Skip to content

v3.2.2

Choose a tag to compare

@github-actions github-actions released this 05 Aug 02:02
· 224 commits to master since this release
1b85786

Added

  • The Message Monitor now has a Live mode alongside the existing snapshot
    view. It drains the bus emission buffer on a timer into a columnar log with a
    record/pause toggle, named Untargeted/Targeted/Broadcast filter chips, the same
    typed filter query as snapshot mode (type:, message:, context:, stack:),
    a detail pane for the selected row whose stack trace starts collapsed, and a
    footer reporting shown, buffered, recorded and missed counts. Repeated identical
    emissions coalesce into one counted row, and a LIVE badge plus a footer line
    say so, so the merged N column is not a mystery. The log updates in place as
    it drains, so scrolling into older rows is not undone by the next poll, and
    emissions the bus overwrote before the log could drain them raise a notice
    saying the log has gaps instead of leaving that to a number in the footer. Live
    mode is editor-only and reads data the bus already records, so it adds no
    runtime cost.
  • Add a Message subscriptions section to every MessageAwareComponent
    inspector. It lists the registrations its MessageRegistrationToken holds: the
    message type, the registration kind, a priority badge, the observed call count,
    and a dot showing whether the registration is currently subscribed on the bus.
    Call counts read as calls n/a while diagnostics are off rather than as zero.
    Multi-object selections group matching registrations, show how many selected
    components carry each one, and mark mixed enabled states so a missing or
    disabled handler stands out across a scene selection
    (#297).
    See Inspector Overlay.

Changed

  • Change Flow Graph to lead with an interactive node-and-edge canvas. Message
    nodes connect to receiver nodes through live registration edges, with pan,
    zoom, automatic framing, and selection. Text-heavy route analysis, trace
    activity, raw topology, and overflow rows now start inside one collapsed
    section. Empty captures explain how to restore live registrations instead of
    filling the window with zero-value summaries. A crossing-aware layered layout
    and ordered node ports keep arrow paths traceable without text labels on the
    lines. Nodes use named metric rows instead of compact +N summaries, and
    multi-kind message types use neutral MIXED metrics until filtered to one
    route kind. Route selection opens responsive route, activity, emission, and
    trace cards. Evidence lists message types and call sites as separate rows,
    links every resolvable type declaration and live call-site asset, and keeps
    dense type sets behind an eight-row disclosure. Technical diagnostics now
    use separate route-health and trace-coverage cards with bordered relationship
    records for their busiest paths. Captured object contexts render as breadcrumb
    hierarchies, call sites separate the method from the file and line, and compact
    selection headers keep exact identities in tooltips. Breadcrumbs backed by an
    exact captured Unity-object identity and relationship endpoints select their graph items, message
    details expose a bounded on-demand route roster with receiver, registration,
    context, and context-ID identities, and global observers use the accessible amber taxonomy
    badge. The complete text report remains available through Copy diagnostics
    without rendering a text wall.
    Broadcast and targeted routes
    expose recent component- and registration-exact delivery call sites without
    leaking evidence across message buses. Global accept-all
    registrations appear as ANY MESSAGE observers instead of a misleading
    IMessage message type. Destroyed Unity context references fall back to their
    stable instance ID instead of aborting capture for that component. Follow-up
    interaction work makes the full feathered route path clickable, dims unrelated
    paths after selection, adds explicit fit and zoom controls with a 20 percent
    overview floor, and removes the automatic default selection. Route activity
    now leads while emission, trace, and technical evidence start collapsed.
    Message and call-site source links open the exact declaration or captured
    line when Unity can resolve it, and evidence disclosures stay open when the
    background source index refreshes. Dense many-to-many coverage keeps hundreds of
    crossing routes present and selectable in constrained layouts
    (#345).
  • Change the snapshot Message Monitor to the same columnar surface as its live
    log. Rows are fixed-height and carry the route kind, message type, context, and
    dispatch id under a column header; the stack trace moved out of every row into
    the selected entry's detail pane, behind a disclosure that starts collapsed.
    A SNAPSHOT badge and a one-line explanation say that the log is buffered
    history with one row per emission, so it is no longer ambiguous whether the
    window is streaming or merging. Named taxonomy chips carrying per-kind counts
    act as both the color legend and a per-kind filter, and Copy JSON follows
    them. The always-expanded message-type and context lane panels became one
    collapsed Breakdown disclosure of clickable filter pills, with their counts
    and member lists in tooltips, and component diagnostics moved behind its own
    collapsed disclosure. The log now flexes while the detail pane holds its height,
    so neither is pushed off the bottom of the window. The detail pane also links out
    to what a row stands for: the message type opens its declaring source, the
    context selects and pings its object in the Hierarchy while that object is still
    alive, and the stack trace renders one row per frame with its own Open
    button, leaving out Unity's own stack-capture frames so the first row is the
    emitting call site. The mode badge is now the mode switch in both directions, so
    live mode is no longer one-way; the log gutter sits on the row rather than on the
    live-only time column, so snapshot rows are no longer flush against the window
    edge; Component Diagnostics and the stack trace carry drag handles instead of a
    fixed cap; and everything that answers a click shows the pointer cursor
    (#344).
  • Improve targeted and source-bound broadcast routing throughput and reduce the
    memory retained by their per-target lookup tables without changing the public
    messaging API or delivery behavior
    (#289).
  • The MessagingComponent inspector's matched and potential-match emission labels
    now use the design system's colors instead of raw green and yellow, so they stay
    readable on the light editor skin.

Fixed

  • Fix Flow Graph message-source links stalling the editor while scanning large
    compilation assemblies. Source declarations now index in the background and
    each assembly source file is read once, while exact nested and generic source
    links continue to appear when the index completes
    (#345).
  • Keep a selected Flow Graph route and its marker above dimmed paths at crossings
    so the highlighted route remains visible and wins overlapping clicks
    (#345).
  • Reflexive message dispatch to a destroyed GameObject or Component target
    now skips Unity hierarchy delivery instead of throwing
    MissingReferenceException; normal targeted bus handlers still run.
  • Fix the Diagnostics Tooling Exerciser losing all live registrations after a
    reload-disabled Play Mode reset. Active receivers now rebuild their tokens and
    the runner restarts its deterministic emissions on every activation
    (#346).
  • Pooled collection rentals now return to their pool when attaching them to a
    registration or reclamation owner throws, instead of remaining stranded
    after a failed ownership transfer.
  • Documentation-site pages load faster. Every page was downloading the Mermaid
    renderer (about 950 KB compressed) whether or not it had a diagram, and pages
    that did have one rendered it twice. Diagrams now go through the site theme's own
    Mermaid integration, which loads it only where a diagram exists and colors it
    from the site palette in both light and dark. The display font is also linked
    rather than @import-ed, so it no longer waits on the stylesheet that requested
    it.
  • The documentation-site footer no longer wraps its social icon onto its own
    left-aligned line, and it carries links to the repository, releases, changelog,
    issue reporting and license.

Install

  • Import the attached .unitypackage directly into your Unity project, or
  • add com.wallstop-studios.dxmessaging through the Unity Package Manager, pinning this
    release as com.wallstop-studios.dxmessaging@3.2.2 (scoped npm registry) or the
    matching Git tag.

Each release attaches the npm tarball and the .unitypackage, each with a
.sha256 checksum; verify a download with sha256sum -c <file>.sha256.