Skip to content

v3.1.1 - #193

Open
Aiosa wants to merge 37 commits into
masterfrom
dev/v3
Open

v3.1.1#193
Aiosa wants to merge 37 commits into
masterfrom
dev/v3

Conversation

@Aiosa

@Aiosa Aiosa commented Aug 24, 2026

Copy link
Copy Markdown
Member

tba

Aiosa added 3 commits August 21, 2026 07:58
…remove font awesome dependency and reflect font selection support in flex-renderer (revendored), fix annotation wands not selecting whole viewport + initial load bug
@coderabbitai

coderabbitai Bot commented Aug 24, 2026

Copy link
Copy Markdown

Important

Review skipped

Too many files!

This PR contains 611 files, which is 511 over the limit of 100.

To get a review, reduce the PR to 100 files or fewer by splitting it into smaller PRs or changing its base branch.

Upgrade to a paid plan to raise the limit.

Usage-priced reviews support at most 300 files.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Team

Run ID: f751657b-56ea-4116-beb4-d3ec9ed83d6d

📥 Commits

Reviewing files that changed from the base of the PR and between 18c94f2 and 7b1327b.

⛔ Files ignored due to path filters (19)
  • docs/site/static/img/xopat-banner-v3.png is excluded by !**/*.png
  • modules/webtiff/dist/README.md is excluded by !**/dist/**
  • modules/webtiff/dist/decode.worker.mjs is excluded by !**/dist/**
  • modules/webtiff/dist/web-tiff.mjs is excluded by !**/dist/**
  • modules/webtiff/dist/webtiff-mt.wasm is excluded by !**/dist/**, !**/*.wasm
  • modules/webtiff/dist/webtiff-st.wasm is excluded by !**/dist/**, !**/*.wasm
  • package-lock.json is excluded by !**/package-lock.json
  • src/libs/flex-renderer/flex-renderer.js.map is excluded by !**/*.map
  • src/libs/fontawesome/webfonts/fa-brands-400.ttf is excluded by !**/*.ttf
  • src/libs/fontawesome/webfonts/fa-brands-400.woff2 is excluded by !**/*.woff2
  • src/libs/fontawesome/webfonts/fa-regular-400.ttf is excluded by !**/*.ttf
  • src/libs/fontawesome/webfonts/fa-regular-400.woff2 is excluded by !**/*.woff2
  • src/libs/fontawesome/webfonts/fa-solid-900.ttf is excluded by !**/*.ttf
  • src/libs/fontawesome/webfonts/fa-solid-900.woff2 is excluded by !**/*.woff2
  • src/libs/i18next.jquery.min.js is excluded by !**/*.min.js
  • src/libs/jquery.min.js is excluded by !**/*.min.js
  • src/libs/kinetic-v5.1.0.min.js is excluded by !**/*.min.js
  • src/libs/nouislider.min.js is excluded by !**/*.min.js
  • src/libs/scrollTo.min.js is excluded by !**/*.min.js
📒 Files selected for processing (611)
  • .gitignore
  • AGENTS.md
  • CHANGELOG.md
  • DEVELOPMENT.md
  • INTEGRATION.md
  • README.md
  • THIRD_PARTY_LICENSES.md
  • UPSTREAM.md
  • docs/example_sessions/partially-visualization.json
  • docs/include.js
  • docs/site/docs/index.md
  • docs/site/docs/live-demo.mdx
  • docs/site/docs/visualization-flexibility.mdx
  • docs/site/docusaurus.config.js
  • docs/site/package.json
  • docs/site/scripts/generate-fixtures.mjs
  • docs/site/sidebars.js
  • docs/site/src/components/DemoFrame/index.js
  • docs/site/src/data/byokChatDemo.js
  • docs/site/src/data/summerSchoolDemos.js
  • docs/site/src/data/visualizationFlexibilityDemos.js
  • env/.env.example
  • env/README.md
  • env/env.default.json
  • env/parts/auth/google-oidc-server.json
  • env/parts/auth/keycloak-oidc.json
  • env/parts/auth/keycloak-saml.json
  • env/parts/auth/none.json
  • env/parts/base/core.json
  • env/parts/chat/anthropic-server-key.json
  • env/parts/chat/byok.json
  • env/parts/chat/medgemma-vision.json
  • env/parts/chat/off.json
  • env/parts/chat/openai-compatible-cerit.json
  • env/parts/chat/openai-server-key.json
  • env/parts/data/dicomweb-google.json
  • env/parts/data/dicomweb-idc.json
  • env/parts/data/synthetic-dzi.json
  • env/parts/data/tiff-geotiff.json
  • env/parts/data/tiff-webtiff.json
  • env/parts/data/wsi-service.json
  • env/parts/demo/visualization-flexibility.json
  • env/parts/flags/production.json
  • env/parts/flags/secure-mode.json
  • env/parts/flags/whitelist-plugins.json
  • env/parts/io/github.json
  • env/parts/io/mlflow.json
  • env/parts/logging/chat-transcript.json
  • env/parts/roles/dev-all.json
  • env/parts/roles/guest-pathologist-researcher.json
  • env/parts/storage/persistent-30d.json
  • env/parts/storage/tiered-sessions.json
  • env/parts/transport/proxy-image-server.json
  • env/presets.json
  • modules/README.md
  • modules/annotations/EVENTS.md
  • modules/annotations/README.md
  • modules/annotations/annotations-canvas.js
  • modules/annotations/annotations.js
  • modules/annotations/convert/geoJSON.js
  • modules/annotations/fixed-area-mode.js
  • modules/annotations/include.json
  • modules/annotations/locales/en.json
  • modules/annotations/magic-wand.js
  • modules/annotations/objectAdvancedFactories.js
  • modules/annotations/objectGenericFactories.js
  • modules/annotations/objects.js
  • modules/annotations/presets.js
  • modules/annotations/spatial-index.js
  • modules/annotations/test/integration/creation-mode-selection.test.mjs
  • modules/annotations/test/unit/click-up-contract.test.mjs
  • modules/annotations/test/unit/label-value.test.mjs
  • modules/annotations/test/unit/spatial-index-clustering.test.mjs
  • modules/annotations/viewport-segmentation.js
  • modules/chat-based-tester/chat-dev.ts
  • modules/demo-vector-layers/README.md
  • modules/demo-vector-layers/include.json
  • modules/demo-vector-layers/index.mjs
  • modules/demo-vector-layers/locales/en.json
  • modules/demo-vector-layers/test/unit/tile-index.test.mjs
  • modules/empaia-workbench/README.md
  • modules/empaia-workbench/auth-broker.ts
  • modules/empaia-workbench/convertor.ts
  • modules/empaia-workbench/ead.ts
  • modules/empaia-workbench/include.json
  • modules/empaia-workbench/index.ts
  • modules/empaia-workbench/inputs.ts
  • modules/empaia-workbench/job-runner.ts
  • modules/empaia-workbench/locales/en.json
  • modules/empaia-workbench/outputs.ts
  • modules/empaia-workbench/pixelmap-tile-source.ts
  • modules/empaia-workbench/sink.ts
  • modules/empaia-workbench/test/fixtures/ead/ta01.json
  • modules/empaia-workbench/test/fixtures/ead/ta02.json
  • modules/empaia-workbench/test/fixtures/ead/ta03.json
  • modules/empaia-workbench/test/fixtures/ead/ta04.json
  • modules/empaia-workbench/test/fixtures/ead/ta05.json
  • modules/empaia-workbench/test/fixtures/ead/ta06.json
  • modules/empaia-workbench/test/fixtures/ead/ta07.json
  • modules/empaia-workbench/test/fixtures/ead/ta08.json
  • modules/empaia-workbench/test/fixtures/ead/ta09.json
  • modules/empaia-workbench/test/fixtures/ead/ta10.json
  • modules/empaia-workbench/test/fixtures/ead/ta11.json
  • modules/empaia-workbench/test/fixtures/ead/ta12.json
  • modules/empaia-workbench/test/fixtures/ead/ta13.json
  • modules/empaia-workbench/test/fixtures/ead/ta14.json
  • modules/empaia-workbench/test/unit/annotation-mapping.test.mjs
  • modules/empaia-workbench/test/unit/batch.test.mjs
  • modules/empaia-workbench/test/unit/empty-outputs.test.mjs
  • modules/empaia-workbench/test/unit/inputs.test.mjs
  • modules/empaia-workbench/test/unit/job-results.test.mjs
  • modules/empaia-workbench/test/unit/outputs.test.mjs
  • modules/empaia-workbench/test/unit/polling.test.mjs
  • modules/empaia-workbench/test/unit/region-visibility.test.mjs
  • modules/empaia-workbench/test/unit/source-mode.test.mjs
  • modules/empaia-workbench/test/unit/token-expiry.test.mjs
  • modules/empaia-workbench/test/unit/visible-jobs.test.mjs
  • modules/empaia-workbench/tile-source.ts
  • modules/empaia-workbench/token-expiry.ts
  • modules/empaia-workbench/types.ts
  • modules/empaia-workbench/visibility.ts
  • modules/empaia-workbench/wbs3-client.ts
  • modules/empaia-wsi-tile-source/include.json
  • modules/fabricjs/openseadragon-fabricjs-overlay.js
  • modules/geotiff/README.md
  • modules/geotiff/include.json
  • modules/io-github-sink/README.md
  • modules/markdown/MarkdownView.ts
  • modules/markdown/README.md
  • modules/markdown/include.json
  • modules/markdown/links.ts
  • modules/markdown/locales/en.json
  • modules/markdown/markdown.ts
  • modules/markdown/package.json
  • modules/markdown/renderer.ts
  • modules/markdown/style.css
  • modules/markdown/test/unit/links.test.mjs
  • modules/markdown/test/unit/renderer.test.mjs
  • modules/marked/entry.js
  • modules/marked/include.json
  • modules/marked/package.json
  • modules/menu-pages/README.md
  • modules/menu-pages/menu.js
  • modules/oidc-client-ts/README.md
  • modules/oidc-client-ts/oidc-auth.js
  • modules/oidc-client-ts/test/unit/silent-route-classification.test.mjs
  • modules/oidc-server-ts/auth-broker.js
  • modules/pathology-foundation/README.md
  • modules/pathology-foundation/include.json
  • modules/pathology-foundation/lib/answers.ts
  • modules/pathology-foundation/lib/checklist.ts
  • modules/pathology-foundation/lib/evidence.ts
  • modules/pathology-foundation/lib/fields.ts
  • modules/pathology-foundation/lib/geometry.ts
  • modules/pathology-foundation/lib/ladder.ts
  • modules/pathology-foundation/lib/pipeline.ts
  • modules/pathology-foundation/lib/plan.ts
  • modules/pathology-foundation/lib/presentation.ts
  • modules/pathology-foundation/lib/scheduler.ts
  • modules/pathology-foundation/lib/scope.ts
  • modules/pathology-foundation/lib/types.ts
  • modules/pathology-foundation/lib/verdict.ts
  • modules/pathology-foundation/pathologyFoundation.ts
  • modules/pathology-foundation/scripting/api.ts
  • modules/pathology-foundation/test/unit/answers.test.mjs
  • modules/pathology-foundation/test/unit/checklist.test.mjs
  • modules/pathology-foundation/test/unit/drill-gate.test.mjs
  • modules/pathology-foundation/test/unit/evidence.test.mjs
  • modules/pathology-foundation/test/unit/exploration-scope.test.mjs
  • modules/pathology-foundation/test/unit/field-planner.test.mjs
  • modules/pathology-foundation/test/unit/ladder.test.mjs
  • modules/pathology-foundation/test/unit/overlap.test.mjs
  • modules/pathology-foundation/test/unit/pipeline.test.mjs
  • modules/pathology-foundation/test/unit/plan.test.mjs
  • modules/pathology-foundation/test/unit/reading-order.test.mjs
  • modules/pathology-foundation/test/unit/refine-budget.test.mjs
  • modules/pathology-foundation/test/unit/scheduler.test.mjs
  • modules/pathology-foundation/test/unit/verdict.test.mjs
  • modules/rationai-wsi-tile-source/README.md
  • modules/rationai-wsi-tile-source/tile-source.js
  • modules/recorder/recorder-module.ts
  • modules/recorder/recorder.d.ts
  • modules/recorder/scripting/api.ts
  • modules/recorder/test/unit/captioned-stop.test.mjs
  • modules/recorder/test/unit/id-coercion.test.mjs
  • modules/recorder/test/unit/tour-summary.test.mjs
  • modules/recorder/test/unit/tour-timing.test.mjs
  • modules/saml-auth/include.json
  • modules/saml-auth/renew-window.ts
  • modules/saml-auth/saml-auth.ts
  • modules/saml-auth/test/unit/renew-window.test.mjs
  • modules/vercel-ai-chat-sdk/README.md
  • modules/vercel-ai-chat-sdk/chat.ts
  • modules/vercel-ai-chat-sdk/chatService.ts
  • modules/vercel-ai-chat-sdk/include.json
  • modules/vercel-ai-chat-sdk/server/chat.server.ts
  • modules/vercel-ai-chat-sdk/server/chatRegistry.server.ts
  • modules/vercel-ai-chat-sdk/server/inference.server.ts
  • modules/vercel-ai-chat-sdk/server/model-messages.ts
  • modules/vercel-ai-chat-sdk/server/transcript.ts
  • modules/vercel-ai-chat-sdk/server/tuning.ts
  • modules/vercel-ai-chat-sdk/server/vision-log.ts
  • modules/vercel-ai-chat-sdk/shared/errors.ts
  • modules/vercel-ai-chat-sdk/shared/session-title.ts
  • modules/vercel-ai-chat-sdk/shared/tool-envelope.ts
  • modules/vercel-ai-chat-sdk/style.css
  • modules/vercel-ai-chat-sdk/test/unit/blank-assistant-turns.test.mjs
  • modules/vercel-ai-chat-sdk/test/unit/namespace-intent-hints.test.mjs
  • modules/vercel-ai-chat-sdk/test/unit/provider-registration-auth.test.mjs
  • modules/vercel-ai-chat-sdk/test/unit/session-title.test.mjs
  • modules/vercel-ai-chat-sdk/test/unit/transcript-records.test.mjs
  • modules/vercel-ai-chat-sdk/test/unit/truncated-script.test.mjs
  • modules/vercel-ai-chat-sdk/test/unit/vision-assets.test.mjs
  • modules/vercel-ai-chat-sdk/types/shared.d.ts
  • modules/vercel-ai-chat-sdk/ui/ChatMessageList.ts
  • modules/vercel-ai-chat-sdk/ui/ChatPanel.ts
  • modules/vercel-ai-chat-sdk/ui/ChatVoiceController.ts
  • modules/webtiff/README.md
  • modules/webtiff/index.mjs
  • modules/webtiff/test/unit/descriptor-channels.test.mjs
  • modules/webtiff/test/unit/preview-level-numbering.test.mjs
  • modules/webtiff/test/unit/slide-options.test.mjs
  • modules/webtiff/test/unit/texture-flatten.test.mjs
  • modules/webtiff/tiff-metadata.mjs
  • modules/webtiff/tiff-statistics.mjs
  • modules/webtiff/tile-source.mjs
  • package.json
  • playwright.config.mjs
  • plugins/README.md
  • plugins/annotations/annotationsPlugin.mjs
  • plugins/annotations/board/annotationBoardPanel.mjs
  • plugins/annotations/components/globalPluginWindow.mjs
  • plugins/annotations/components/presetCard.mjs
  • plugins/annotations/locales/en.json
  • plugins/annotations/methods/handlers.mjs
  • plugins/annotations/methods/io.mjs
  • plugins/annotations/methods/presets.mjs
  • plugins/annotations/methods/viewerMenu.mjs
  • plugins/chat-anthropic/index.workspace.js
  • plugins/chat-openai-compatible/index.workspace.js
  • plugins/chat-openai/index.workspace.js
  • plugins/dicom-browser/README.md
  • plugins/dicom-browser/include.json
  • plugins/dicom-browser/index.workspace.mjs
  • plugins/dicom-browser/locales/en.json
  • plugins/dicom-browser/package.json
  • plugins/dicom/README.md
  • plugins/dicom/annotation-convertor.mjs
  • plugins/dicom/derived-tile-source.mjs
  • plugins/dicom/dicom-query.mjs
  • plugins/dicom/include.json
  • plugins/dicom/index.workspace.mjs
  • plugins/dicom/lazy-lib.mjs
  • plugins/dicom/locales/en.json
  • plugins/dicom/pixel-pipeline.mjs
  • plugins/dicom/radiology-geometry.mjs
  • plugins/dicom/radiology-tile-source.mjs
  • plugins/dicom/shaders/dicom-parametric.mjs
  • plugins/dicom/shaders/dicom-seg.mjs
  • plugins/dicom/shaders/dicom-window.mjs
  • plugins/dicom/shaders/index.mjs
  • plugins/dicom/shaders/voi-controls.mjs
  • plugins/dicom/slide-orientation.mjs
  • plugins/dicom/test/unit/concatenation.test.mjs
  • plugins/dicom/test/unit/dataid-completion.test.mjs
  • plugins/dicom/test/unit/dicom-window-shader.test.mjs
  • plugins/dicom/test/unit/frame-batching.test.mjs
  • plugins/dicom/test/unit/half-float-packs.test.mjs
  • plugins/dicom/test/unit/level-geometry.test.mjs
  • plugins/dicom/test/unit/monochrome-slide-window.test.mjs
  • plugins/dicom/test/unit/protocol-autonomy.test.mjs
  • plugins/dicom/test/unit/pyramid-scan-budget.test.mjs
  • plugins/dicom/test/unit/radiology-geometry.test.mjs
  • plugins/dicom/test/unit/radiology-query.test.mjs
  • plugins/dicom/test/unit/radiology-tile-source.test.mjs
  • plugins/dicom/test/unit/real-world-range.test.mjs
  • plugins/dicom/test/unit/sign-extend-stored.test.mjs
  • plugins/dicom/test/unit/slide-orientation.test.mjs
  • plugins/dicom/test/unit/sparse-frame-map.test.mjs
  • plugins/dicom/test/unit/sparse-tiles.test.mjs
  • plugins/dicom/test/unit/sr-discovery.test.mjs
  • plugins/dicom/test/unit/wsi-pixel-spacing.test.mjs
  • plugins/dicom/tile-source.mjs
  • plugins/dicom/tools/find-idc-overlays.mjs
  • plugins/dicom/tools/find-idc-sparse.mjs
  • plugins/empaia-app-ui/README.md
  • plugins/empaia-app-ui/TESTING.md
  • plugins/empaia-app-ui/empaia-app-ui.mjs
  • plugins/empaia-app-ui/include.json
  • plugins/empaia-app-ui/jobs-window.mjs
  • plugins/empaia-app-ui/locales/en.json
  • plugins/empaia-app-ui/panel.mjs
  • plugins/empaia-app-ui/quick-roi-mode.mjs
  • plugins/empaia-app-ui/sections/batch.mjs
  • plugins/empaia-app-ui/sections/job-status.mjs
  • plugins/empaia-app-ui/sections/jobs.mjs
  • plugins/empaia-app-ui/sections/pixelmaps.mjs
  • plugins/empaia-app-ui/sections/region-eligibility.mjs
  • plugins/empaia-app-ui/sections/results.mjs
  • plugins/empaia-app-ui/sections/roi.mjs
  • plugins/empaia-app-ui/test/unit/job-status.test.mjs
  • plugins/empaia-app-ui/test/unit/region-eligibility.test.mjs
  • plugins/extra-tutorials/tutorials.js
  • plugins/pathology-medgemma/include.json
  • plugins/pathology-medgemma/index.workspace.js
  • plugins/profiler/profile.js
  • plugins/questionaire-new/README.md
  • plugins/questionaire-new/dom.ts
  • plugins/questionaire-new/include.json
  • plugins/questionaire-new/locales/en.json
  • plugins/questionaire-new/plugin.ts
  • plugins/questionaire-new/schema.ts
  • plugins/questionaire-new/scripting/api.ts
  • plugins/questionaire-new/test/unit/page-lookup-errors.test.mjs
  • plugins/questionaire-new/test/unit/schema-round-trip.test.mjs
  • plugins/questionaire-new/test/unit/schema-strict.test.mjs
  • plugins/questionaire-new/test/unit/submit-payload.test.mjs
  • plugins/questionaire-new/test/unit/viewer-slot-identity.test.mjs
  • plugins/questionaire-new/types.ts
  • plugins/rationai-wsi-file-browser/file-browser.js
  • plugins/rationai-wsi-file-browser/include.json
  • plugins/rationai-wsi-file-browser/locales/en.json
  • plugins/recorder/include.json
  • plugins/recorder/locales/en.json
  • plugins/recorder/overlay-editor.ts
  • plugins/recorder/overlay-renderer.ts
  • plugins/recorder/placement-anchor-grid.ts
  • plugins/recorder/recorder-plugin.ts
  • plugins/sam-segment-tool-experimental/samInference.ts
  • plugins/slide-info/include.json
  • plugins/slide-info/locales/en.json
  • plugins/slide-info/slide-info.mjs
  • plugins/slide-info/slideSwitcherMenu.mjs
  • plugins/slide-info/test/e2e/download-gating.test.mjs
  • plugins/slide-info/test/e2e/page-markup.test.mjs
  • plugins/youtrack-feedback-form/feedback-form.js
  • plugins/youtrack-feedback-form/locales/en.json
  • server/LOGGING.md
  • server/README.md
  • server/node/README.md
  • server/node/auth.js
  • server/node/constants.js
  • server/node/error.js
  • server/node/examples.js
  • server/node/index.js
  • server/node/logging.js
  • server/node/roles.js
  • server/node/server-helpers.js
  • server/node/server-module-loader.js
  • server/node/server-runtime.js
  • server/php/README.md
  • server/php/inc/auth.php
  • server/php/inc/core.php
  • server/php/inc/error.php
  • server/php/inc/init.php
  • server/php/inc/modules.php
  • server/php/inc/plugins.php
  • server/php/inc/proxy.php
  • server/php/init.php
  • server/php/user_setup.php
  • server/static/build.grunt.js
  • server/templates/README.md
  • server/templates/dev-setup.html
  • server/templates/error.html
  • server/templates/index.html
  • server/templates/javascript/core.js
  • server/templates/javascript/modules.js
  • server/templates/javascript/plugins.js
  • server/types/xopat-server.d.ts
  • server/utils/grunt/tasks/i18n-audit.js
  • server/utils/grunt/tasks/jsodc.js
  • server/utils/grunt/tasks/realtime-compile.js
  • server/utils/grunt/tasks/storage-audit.js
  • server/utils/mixins/build-logic.js
  • server/utils/node/dev-mode.js
  • server/utils/node/dotenv.js
  • server/utils/node/env-cli.mjs
  • server/utils/node/env-compose.mjs
  • server/utils/node/env-picker.mjs
  • server/utils/node/slide-fileserver.mjs
  • src/AUTH.md
  • src/AUTHORIZATION_AND_PROXY_AND_USERS.md
  • src/EVENTS.md
  • src/HTTP_CLIENT.md
  • src/IO_PIPELINE.md
  • src/IO_SINK_AUTHORING.md
  • src/LOGGING.md
  • src/MULTI_VIEWPORTS.md
  • src/README.md
  • src/SHORTCUTS.md
  • src/STORAGE.md
  • src/TUTORIALS.md
  • src/USER_ROLES.md
  • src/VIRTUAL_VIEWPORTS_SPLIT.md
  • src/app.ts
  • src/assets/custom.css
  • src/assets/style.css
  • src/classes/app/application-context.ts
  • src/classes/app/application-lifecycle-controller.ts
  • src/classes/app/assemble-render-output.ts
  • src/classes/app/auth-user-menu.ts
  • src/classes/app/canvas-context-menu.ts
  • src/classes/app/core-capabilities.ts
  • src/classes/app/deployment-key.ts
  • src/classes/app/flex-renderer-context.ts
  • src/classes/app/i18n-dom.ts
  • src/classes/app/live-config-sync.ts
  • src/classes/app/logging.ts
  • src/classes/app/overlay-pixel-scale.ts
  • src/classes/app/request-scheduler.ts
  • src/classes/app/scalebar-utilities.ts
  • src/classes/app/session-log.ts
  • src/classes/app/setup-isolated-viewer.ts
  • src/classes/app/slide-file-download.ts
  • src/classes/app/tutorial/index.ts
  • src/classes/app/tutorial/overlay-canvas.ts
  • src/classes/app/tutorial/step-layout.ts
  • src/classes/app/tutorial/tour-chrome.ts
  • src/classes/app/tutorial/tour-engine.ts
  • src/classes/app/tutorial/tween.ts
  • src/classes/app/viewer-demo-overlay.ts
  • src/classes/app/viewer-error-wiring.ts
  • src/classes/app/viewer-faulty-source-registry.ts
  • src/classes/app/viewer-interaction-controller.ts
  • src/classes/app/viewer-open-pipeline.ts
  • src/classes/app/viewer-state-binding-controller.ts
  • src/classes/app/viewer-visualization-runtime.ts
  • src/classes/app/visualization-validation.ts
  • src/classes/auth/xopat-auth.ts
  • src/classes/background-config.ts
  • src/classes/http-client.ts
  • src/classes/io/bootstrap.ts
  • src/classes/io/index.ts
  • src/classes/io/io-kv-handle.ts
  • src/classes/io/io-pipeline.ts
  • src/classes/io/io-resource.ts
  • src/classes/io/kv-drivers.ts
  • src/classes/io/sinks/file-download.ts
  • src/classes/io/sinks/file-upload.ts
  • src/classes/osd/scalebar/chrome.ts
  • src/classes/osd/scalebar/constants.ts
  • src/classes/osd/scalebar/index.ts
  • src/classes/osd/scalebar/scalebar.ts
  • src/classes/osd/scalebar/units.ts
  • src/classes/osd/scalebar/viewport-sync-api.ts
  • src/classes/osd/tools.ts
  • src/classes/osd/viewport-registration.ts
  • src/classes/playground/playground-page.ts
  • src/classes/playground/playground-service.ts
  • src/classes/preview-level.ts
  • src/classes/remote-endpoint.ts
  • src/classes/scripting-manager.ts
  • src/classes/scripting/abstract-api.ts
  • src/classes/scripting/abstract-types.d.ts
  • src/classes/scripting/app-api.scripts.d.ts
  • src/classes/scripting/app-api.ts
  • src/classes/scripting/visualization-api.scripts.d.ts
  • src/classes/scripting/visualization-api.ts
  • src/classes/tile-sources/preview-slide-source.ts
  • src/classes/user-roles-core.ts
  • src/classes/user.ts
  • src/config.json
  • src/external/data-structures.ts
  • src/external/enjoyhint.css
  • src/external/enjoyhint.js
  • src/external/js.cookie.js
  • src/external/scalebar.js
  • src/libs/flex-renderer/flex-renderer.js
  • src/libs/fontawesome/css/v6-all.css
  • src/libs/nouislider.css
  • src/libs/phoshor-icons/fa-overrides.css
  • src/libs/stats.js
  • src/loader.ts
  • src/locales/en.json
  • src/parse-input.js
  • src/store.ts
  • src/tile-source.ts
  • src/types/app.d.ts
  • src/types/config.d.ts
  • src/types/globals.d.ts
  • src/types/io.d.ts
  • src/types/slide-protocols.d.ts
  • src/user-interface.js
  • src/workers/registration-worker.js
  • tailwind.config.js
  • test/MANUAL_TESTING.md
  • test/README.md
  • test/TEST_COVERAGE_GAPS.md
  • test/env/errors.json
  • test/env/oidc-chat.json
  • test/env/oidc.json
  • test/env/production.json
  • test/env/saml.json
  • test/env/secure.json
  • test/env/synthetic.json
  • test/fixtures/data/README.md
  • test/fixtures/data/manifest.json
  • test/fixtures/keycloak/README.md
  • test/fixtures/keycloak/docker-compose.yaml
  • test/fixtures/keycloak/realm-xopat.json
  • test/fixtures/sessions/README.md
  • test/fixtures/sessions/all-shaders.json
  • test/fixtures/sessions/basic-overlay.json
  • test/fixtures/sessions/channel-series.json
  • test/fixtures/sessions/dicom-google-standalone-explicit.json
  • test/fixtures/sessions/dicom-google-standalone.json
  • test/fixtures/sessions/empty-session.json
  • test/fixtures/sessions/errors-all-invalid.json
  • test/fixtures/sessions/errors-partial-viz.json
  • test/fixtures/sessions/fluorescence-background.json
  • test/fixtures/sessions/fluorescence-cross-source.json
  • test/fixtures/sessions/grouped-errors.json
  • test/fixtures/sessions/index.json
  • test/fixtures/sessions/multi-view-goals.json
  • test/fixtures/sessions/time-series.json
  • test/fixtures/sessions/two-backgrounds.json
  • test/fixtures/sessions/viz-flex-geojson.json
  • test/fixtures/sessions/viz-flex-grid.json
  • test/fixtures/sessions/viz-flex-mask-coarse.json
  • test/fixtures/sessions/viz-flex-mask-preview.json
  • test/fixtures/sessions/viz-flex-multichannel.json
  • test/fixtures/sessions/viz-flex-mvt.json
  • test/harness/data/derive.mjs
  • test/harness/data/fetch.mjs
  • test/harness/data/lib/contour.mjs
  • test/harness/data/lib/mvt-read.mjs
  • test/harness/data/lib/mvt-write.mjs
  • test/harness/data/lib/tiff-read.mjs
  • test/harness/data/lib/tiff-write.mjs
  • test/harness/data/session-urls.mjs
  • test/harness/env-scratch.mjs
  • test/harness/fixtures/server.mjs
  • test/harness/fixtures/viewer.mjs
  • test/harness/index.mjs
  • test/harness/requires.mjs
  • test/harness/shims.mjs
  • test/legacy/server/http-surface.mjs
  • test/suites/e2e/error-rendering.test.mjs
  • test/suites/e2e/export-unrestricted.test.mjs
  • test/suites/e2e/oidc-roles.test.mjs
  • test/suites/e2e/saml-roles.test.mjs
  • test/suites/integration/logging-surface.test.mjs
  • test/suites/unit/auth-auto-login.test.mjs
  • test/suites/unit/auth-callback-verdict.test.mjs
  • test/suites/unit/auth-credential-recovery.test.mjs
  • test/suites/unit/auth-transition-events.test.mjs
  • test/suites/unit/background-fill-color.test.mjs
  • test/suites/unit/capability-labels.test.mjs
  • test/suites/unit/cookie-driver.test.mjs
  • test/suites/unit/demo-data-geometry.test.mjs
  • test/suites/unit/deployment-key.test.mjs
  • test/suites/unit/env-compose.test.mjs
  • test/suites/unit/faulty-source-budget.test.mjs
  • test/suites/unit/flex-context-budget.test.mjs
  • test/suites/unit/flex-renderer-control-skin.test.mjs
  • test/suites/unit/identity-refine-secrets.test.mjs
  • test/suites/unit/io-export-routes.test.mjs
  • test/suites/unit/io-kv-values.test.mjs
  • test/suites/unit/io-rights-phases.test.mjs
  • test/suites/unit/logging-client-broker.test.mjs
  • test/suites/unit/logging-client-ingest.test.mjs
  • test/suites/unit/logging-stream-sink.test.mjs
  • test/suites/unit/osd-batch-job-release.test.mjs
  • test/suites/unit/outbox-serialize-contract.test.mjs
  • test/suites/unit/outbox-warning-dedupe.test.mjs
  • test/suites/unit/overlay-pixel-scale.test.mjs
  • test/suites/unit/preview-level-eligibility.test.mjs
  • test/suites/unit/proxy-access.test.mjs
  • test/suites/unit/region-render-completeness.test.mjs
  • test/suites/unit/scripting-dts-parser.test.mjs
  • test/suites/unit/scripting-method-manifest.test.mjs
  • test/suites/unit/scripting-sensitive-masking.test.mjs
  • test/suites/unit/secret-refresh-budget.test.mjs
  • test/suites/unit/secret-refresh-loop.test.mjs
  • test/suites/unit/server-bundle-freshness.test.mjs
  • test/suites/unit/server-roles-parity.test.mjs
  • test/suites/unit/session-cache-scope.test.mjs
  • test/suites/unit/slide-file-download.test.mjs
  • test/suites/unit/tiled-image-config-contract.test.mjs
  • test/suites/unit/user-roles-claims.test.mjs
  • test/suites/unit/visualization-validation.test.mjs
  • ui/classes/baseComponent.mjs
  • ui/classes/components/autocomplete.mjs
  • ui/classes/components/contextMenu.mjs
  • ui/classes/components/dockableWindow.mjs
  • ui/classes/components/explorer.mjs
  • ui/classes/components/floatingWindow.mjs
  • ui/classes/components/fullscreenMenuModal.mjs
  • ui/classes/components/mainLayout.mjs
  • ui/classes/components/mainPanel.mjs
  • ui/classes/components/menu.mjs
  • ui/classes/components/multiPanelMenu.mjs
  • ui/classes/components/shaderLayer.mjs
  • ui/classes/components/tabsMenu.mjs
  • ui/classes/components/toolbar/toolbar.mjs
  • ui/classes/components/toolbar/toolbarChoiceGroup.mjs
  • ui/classes/components/toolbar/toolbarItem.mjs
  • ui/classes/components/toolbar/toolbarPanelButton.mjs
  • ui/classes/components/tutorialsModal.mjs
  • ui/classes/components/userRolesPanel.mjs
  • ui/classes/elements/dropdown.mjs
  • ui/classes/elements/fa-icon.mjs
  • ui/classes/elements/image-icon.mjs
  • ui/classes/elements/ph-icon.mjs
  • ui/index.mjs
  • ui/services/README.md
  • ui/services/appBar.mjs
  • ui/services/appBarActions.mjs
  • ui/services/fullscreenMenus.mjs
  • ui/services/mobileBottomBar.mjs
  • ui/test_ui.html

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

Comment thread src/classes/app/tutorial/step-layout.ts Fixed
Comment thread src/classes/app/tutorial/step-layout.ts Fixed
Comment thread src/classes/osd/scalebar/units.ts Fixed
Comment thread src/classes/osd/scalebar/units.ts Fixed
Comment thread src/classes/osd/scalebar/units.ts Fixed
Comment thread src/classes/osd/scalebar/chrome.ts Fixed
Comment thread modules/vercel-ai-chat-sdk/ui/ChatPanel.ts Fixed
Comment thread src/classes/osd/scalebar/scalebar.ts Fixed
Comment thread src/classes/osd/scalebar/scalebar.ts Fixed
Comment thread modules/empaia-workbench/index.ts Fixed
Comment thread plugins/empaia-app-ui/empaia-app-ui.mjs Fixed
Comment thread modules/recorder/test/unit/tour-summary.test.mjs Fixed
Aiosa and others added 13 commits August 26, 2026 07:00
fix: static assets 404 in packaged binary (pkg snapshot)
…ction), support ENV deployments by generic composition of test-defined ENV elements; slide downloading feature, more robust core tiled image handling, ability to sepcify background color per; stable magnification (avoid guessing); global menu mobile behavior fix
…mode selects annotation when action discarded, hit tolerance on object selection; background fill docs & type defs
…marter epxloration; vercel chat advanced logging, improved region link (positional not area), robust auth (not reporting missing auth as failed, not trying to list models when auth is on but not logged in lazy mode)
…ng, always show annotations on max zoom

feat: ability to view selected measurements, not only length/area
…IDs in tiff (worked when delivered e.g. WSI-Service, but by default not fetched when requested via oblivious server or directly)
…ed), improve window shader to respect normalization rule on FlexRender UI
Aiosa and others added 11 commits September 4, 2026 11:06
…rding user actions, robust visualization syntax checking, IO pipeline - make file IO special class, new tile-source api (precision and intristic placement), smaller shader UX - more space

fix: auth race condition
…ovider cleanup, questionaire 3-way sink - state/submission/template + roles, sensitive data filter hardening + predicate, slide-info test (parsing)
…x renderer classes, wsi-source download support
Completes 892bc9e with the tooling and config half:

- npm run fixtures:{synthetic,fetch,derive,urls,serve}; slide-fileserver
  root moves to test/fixtures/data
- env-compose: scanForPrivateHosts, wired into up:check as exit 5. The
  legacy whole-ENV pile leaked no keys, it leaked topology (a Tailscale
  IP, internal *.dyn.cloud.e-infra.cz hosts, an institutional login
  endpoint) and a key-shaped regex cannot see any of that
- .gitignore: fixture slides and derived overlays; docs/data rules gone
- prose repointed at the new paths across CHANGELOG, UPSTREAM,
  DEVELOPMENT, INTEGRATION, src/config.json, server/node/examples.js

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JsvSUYJXen5vqXuBPehwb4
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant