There is a newer version of the record available.

Published June 6, 2026 | Version v4.0.0

HSF/phoenix: v4.0.0

Description

4.0.0 (2026-06-06)

Bug Fixes

  • accessibility: add descriptive alt text (8e16302)
  • add Angular 20 compatibility by upgrading dependencies and migrating to application builder (a1bccdc), closes #728
  • add missing ngOnDestroy cleanup in 4 UI components (bb2278b), closes #865
  • add unsubscribe mechanism to prevent callback memory leaks (9c10385)
  • align screenshot mode button styling (40bf07b)
  • app: fixing tests (9402d2f)
  • app: isolate Jest and Cypress TypeScript types to restore IntelliSense (4eee288)
  • apply lint formatting fixes (183294c)
  • clean up event listeners in OverlayComponent and SSModeComponent (54ba286), closes #762
  • clear selections before track extension to prevent stale outlines (594e3e8)
  • convert makeRequest() to async/await with proper error propagation (8b770da), closes #847
  • correct stretch rendering logic, remove crop offsets, proper viewOffset and aspect handling (1b836b3)
  • correct Stretch screenshot aspect ratio & restore camera aspect (5a1662c)
  • correct viewOffset typing to resolve TS2349 error (07e9fc1)
  • deduplicate three.js instance bundled by jsroot (8e13cbc), closes #655
  • dispose intermediate geometries after merging (ad79b44)
  • dispose WebGL renderers and revoke blob URLs to prevent resource leaks (a59b067), closes #845
  • dispose WebGL resources and event listeners on cleanup (b7cd200)
  • effects-manager: sync selection outlines with object transforms (cf02404)
  • event-display: a patch to a typo (90db004)
  • exclude generated docs from ESLint to fix release build (ca4c63b)
  • gltf: dispose intermediate geometries after merge (c50d18b)
  • hide eta-phi panel button on LHCb section (4f0c25c)
  • hide labels during animations until event objects fully appear (efd4e3e)
  • ignore generated docs in eslint (c0dc65f)
  • import-manager: dispose intermediate geometries after GLTF merge (2d4fb93)
  • initialize callback functions + update Docker install step to fix CI (4a6d799)
  • initialize callbacks + update Dockerfile base image to fix CI (e86b35d)
  • io-options-dialog: add try/catch for JSON parse errors with user feedback (#842) (d77601f)
  • jivexml: prevent crash on missing XML tags in vertex parsing (2752bb8)
  • make-picture: remove outdated size check for tiled screenshots (6d7a5f0)
  • phoenix-objects: guard against undefined track.pos (35d496f)
  • preserve main renderer during cleanup to prevent disposed-renderer reuse (4cdb72a)
  • python install and node-gyp python3 path for CI (82e5612)
  • re-apply collection cuts after event switch and clear registry on rebuild (4683c91)
  • release: add OIDC permissions, pin action versions, fix exports warnings (44dd281), closes #851
  • release: use actual release version for Docker tags (4e4c7b8)
  • remove checkSize and disabled logic as requested (c9ee693)
  • remove unsupported --verbose flag from yarn install (56317f2)
  • rename RendererManager.removeControls() to removeRenderer() (#809) (66a7762)
  • renderer-manager: swap renderers in class state instead of local params (9409909), closes #808
  • replace cypress-plugin-snapshots with @frsource/cypress-plugin-visual-regression-diff (10b296a), closes #733
  • replace deprecated substr() with substring() in url-options-manager\n\nReplace window.location.href.substr() with substring() and add a guard\nfor missing query string to prevent incorrect behavior when the URL\nhas no '?' character." (ddbd110)
  • replace hardcoded column exclusion list with configurable Input (c693972)
  • reset callbacks and state on view transitions (0c12096)
  • resolve Dockerfile conflict and enable native build for lmdb (247b909)
  • resolve duplicate AttributePipe and stabilize Angular 20 tests (3646a9f)
  • restore callback typings + initialize defaults + replace python with python3 in Dockerfile (0c41d48)
  • restore crop/stretch logic + integrate tiling safely (cc8b764)
  • restore default UI config for LHCb (f4b4b4e)
  • restore stretch aspect logic + safe TS guards (5eddf2d)
  • revert rainbow selection to amber glow, improve jet and selection UX (#839) (0f6da97)
  • safe camera view offset calls (e06a9c2)
  • scene-manager: dispose GPU resources on event switch (ae6df4a)
  • selection-manager: prevent duplicate event listeners on re-init (cb9daec)
  • stabilize Jest tests for Angular 20 compatibility (3270baf)
  • test: make setup-jest ESLint-safe for Angular 20 (504a131)
  • three-manager: clear selections on event switch to prevent memory leak (1335d57)
  • three-manager: complete event listener cleanup on re-init (a72f27b)
  • ui: clear cycle-events interval on component destroy (8b650d5)
  • ui: handle FileReader errors in IO options dialog (005e6d1)
  • upgrade tween.js to v25 with explicit group management (acec46c), closes #680
  • upgrade TypeScript to 5.7 with Jest ESM mocks (7969ece)
  • use Angular build configs for deploy scripts to avoid outputPath override (5d5a986)
  • use distinct icon for collections info panel (7cbb895)
  • use InstancedMesh for CaloCells to prevent WebGL crash (#474) Signed-off-by: rx18-eng remopanda78@gmail.com (766d3ba)

Features

  • add eta-phi energy map panel (012fb8d)
  • add event dataset browser with physics-aware filtering (#861) (28a8995)
  • add EventAutoloader for live event streaming from directories/endpoints (4b3f139)
  • add masterclass panel and ATLAS masterclass landing page (closes #835, closes #915) (8a6784c)
  • add per-collection track extension to radius (#177) (2983295)
  • add PHYSLITE ROOT file loader for ATLAS Open Data (#823) (d9ff993)
  • add tiled screenshot rendering to support very large images (#581) (67d522d)
  • add track kinematics panel with config-driven columns (846edca)
  • add typed event data pipeline with loader registry (901707a)
  • add URL deep linking with full view state sharing (4124325)
  • add URL event loading with auto-refresh clean-branch(#448) (1b95c31)
  • effects-manager: add EffectsState enum and setHoverColor() (#886) (eabcdbf)
  • event-display: implement performant rainbow selection system with multi-object support (bfa2705)
  • event-display: implement rainbow outline selection system with EdgesGeometry (6bb0256)
  • event-display: migrate to controls-based architecture with dual canvas support (b045001)
  • make UI components configurable via UIMenuConfig (#61) (09efeb8)
  • merge screenshot mode into make picture menu (#540) (0edb178)
  • notification-service: add NotificationService with 4 severity levels (#886) (067155a)
  • offload JiveXML/JSON parsing to Web Worker to prevent UI freeze (f101fb3)
  • state-manager: serialize cut state to JSON and restore via Load State (092814b), closes #872 #863
  • support per-track linewidth in TracksMesh (4c7d711)

Performance Improvements

Reverts

  • Revert "chore: apply prettier and eslint fixes" (8904c1c)

Files

HSF/phoenix-v4.0.0.zip

Files (140.8 MB)

Name Size Download all
md5:b5df7cbe7f69b9a9745837988adab427
140.8 MB Preview Download

Additional details

Related works

Is supplement to
Software: https://github.com/HSF/phoenix/tree/v4.0.0 (URL)

Software