Skip to content

Latest commit

 

History

History
1473 lines (1097 loc) · 156 KB

File metadata and controls

1473 lines (1097 loc) · 156 KB

🔬 Aignostics Python SDK

1.2.0 - 2026-03-10

⛰️ Features

  • (application) Add option to summarize run describe. (#414) - (a1d8cf1)
  • (application) Add option to summarize run status. - (a1d8cf1)
  • (dataset) Add tenacity retry to IDCClient HTTP requests - (7a3a593)
  • (platform) Add item filtering for fetching run results. (#442) - (14e20b5)
  • (platform) Add item filtering for fetching run results. - (14e20b5)
  • (utils) Split MCP and plugin requirements, add plugin integration tests - (a8cf513)
  • Claude Sonnet 4.6 noreply@anthropic.com - (a8cf513)

🐛 Bug Fixes

  • (application) Change default gpu type to a100 (#446) - (1e0b848)
  • (application) Make A100 default GPU type - (1e0b848)
  • (application) Include items in run describe --format=json (#437) - (4079702)
  • (ci) Ensure coverage and JUnit XML always generated even when tests fail - (a31716e)
  • (cli) Fix CLI test with wrong CSV - (14e20b5)
  • (docs) Fix broken API reference page on ReadTheDocs - (945fb12)
  • (docs) Use JSON as widdershins input and apply correct post-processing - (0037124)
  • (gha) Convert markdown to Slack markdown so urls are properly unfurled (#438) - (36c6b0c)
  • (platform) Switch health check endpoint from /api/v1/health to /health - (4d2963b)
  • (platform) Isolate health check HTTP pool from API client to prevent response cross-contamination - (873e8d0)
  • (qupath) Remove trailing equal sign from logs - (fe82486)
  • (system) Prevent yaml.dump from wrapping long strings in OpenAPI output - (596a693)
  • (test) Fix expected results after version bump (#466) - (7dfaf52)
  • (test) Fix expected results after version bump - (d931bb2)
  • (tests) Use pip instead of uv for dummy plugin teardown uninstall - (1504e1d)
  • (tests) Only suppress uninstall errors when package is already absent - (aea6f5c)
  • (tests) Fall back to pip when uv is unavailable in plugin fixture - (f0f5472)
  • (tests) Update TC-UTILS-MCP-01 traceability tag from SWR-UTILS-1-1 to SWR-UTILS-2-4 - (91c808b)
  • (tests) Make dummy plugin uninstall best-effort in fixture teardown - (b3d57bb)
  • (tests) Use uv for dummy plugin install to avoid network access - (2d9cc35)
  • (tests) Address Copilot review feedback on plugin tests - (74a5339)
  • (tests) Amend tests to use L4 - (1e0b848)
  • (tests) Use test constants for GPU type, use L4 for prod testing - (1e0b848)
  • (traceability) Link SWR-UTILS-2-1 to TC-UTILS-MCP-01 test case - (a65a73d)
  • Ci, skip:test:long-running, skip:test:matrix-runner, skip:test:very-long-running] - (6a1ab60)
  • Claude Sonnet 4.6 noreply@anthropic.com - (6a1ab60)
  • Test:long-running] - (1504e1d)
  • Test:long-running, skip:test:matrix-runner] - (aea6f5c)
  • If the package is already absent, the goal is achieved. - (b3d57bb)
  • Shallow plugin discovery (#462) - (fa4eeb3)
  • Use the dedicated Service._http_pool (same as public health check) with a - (873e8d0)
  • Claude Opus 4.6 (1M context) noreply@anthropic.com - (873e8d0)
  • Retry on 404 in run details to handle read replica lag (#440) - (e686e70)
  • Remove redundant uv venv step in ReadTheDocs build config - (80d657c)
  • Remove redundant uv venv step in ReadTheDocs build config [skip:ci, skip:test:long-running, skip:test:matrix-runner, skip:test:very-long-running] - (c2ce9e8)

🚜 Refactor

  • (bucket) Extract helpers from find() to reduce cognitive complexity - (3b14d7c)
  • (requirements) Restructure UTILS requirements hierarchy - (403ba60)
  • (tests) Centralise dummy plugin install fixture in utils conftest - (83a52b5)
  • (tests) Extract save/restore fixture into qupath conftest - (45d6f99)
  • (tests) Implement factory methods (#455) - (250cc58)
  • Claude Sonnet 4.6 noreply@anthropic.com - (403ba60)

📚 Documentation

  • (docs) Use JSON as widdershins input and apply correct post-processing - (0037124)
  • (requirements) Align SWR-UTILS-2-3 and FR-13 with implemented behavior - (01e6b01)
  • (requirements) Simplify SWR-UTILS-2-4 wording to match SWR pattern - (5848730)
  • (requirements) Add MCP servers to SHR-UTILS-2 plugin contribution list - (01e16f7)
  • (specs) Update SPEC-PLATFORM-SERVICE post v1.1.0 - (629185b)
  • (specs) Align FR-10 in SPEC-UTILS-SERVICE with SWR-UTILS-2-4 - (44d08c5)
  • (tests) Remove function names from Gherkin scenario steps - (f764695)
  • (tests) Align TC-UTILS-PLUGIN-03 feature title with SWR-UTILS-2-3 rename - (ec4c878)
  • Add 'test' to supported deployment environments (#422) - (629185b)
  • Ci, skip:test:long-running, skip:test:matrix-runner, skip:test:very-long-running - (629185b)
  • Claude Sonnet 4.6 noreply@anthropic.com - (629185b)
  • Test:long-running, skip:test:matrix-runner] - (f764695)
  • Ci, skip:test:long-running, skip:test:matrix-runner, skip:test:very-long-running] - (44d08c5)
  • Restore accidentally removed MCP server section[skip:ci, skip:test:long-running, skip:test:matrix-runner, skip:test:very-long-running] - (63e1259)

⚡ Performance

🎨 Styling

🧪 Testing

  • (platform) Isolate health check HTTP pool from API client to prevent response cross-contamination - (873e8d0)
  • (qupath) Parametrize install/uninstall test for independent retries - (8eb9c03)
  • Mock BucketService.find_static in GUI test (#465) - (2c6193b)
  • Claude Sonnet 4.6 noreply@anthropic.com - (8eb9c03)
  • Update bucket used for E2E tests (#454) - (894ee74)
  • Increase retries for QuPath install test - (6b4e468)
  • Increase timeout and add post-cancel retry in cancel-by-filter E2E test - (cbccb76)
  • Isolate metadata update E2E tests with dedicated runs and retry-on-read - (677584c)

⚙️ Miscellaneous Tasks

  • (deps) Upgrade lxml-html-clean to 0.4.4 and authlib to 1.6.9 - (bb06bc4)
  • (deps) Bump authlib from 1.6.6 to 1.6.7 - (8ff112d)
  • (deps) Bump lxml-html-clean from 0.4.3 to 0.4.4 - (488b33a)
  • (deps) Resolve vulnerabilities (#430) - (e71465a)
  • (deps) Bump nbconvert from 7.16.6 to 7.17.0 (#424) - (aaa92b9)
  • (deps) Bump cryptography from 46.0.3 to 46.0.5 (#426) - (e56ed1f)
  • (he-tme) Bump staging to 1.1.0 (#450) - (fb150e4)
  • Bump app version in tests to 1.1.0 in prod (#464) - (19b0882)
  • Claude Sonnet 4.6 noreply@anthropic.com - (bb06bc4)
  • Fix YAML escape in pre-commit hook exclusion regex - (d5a0281)
  • Fix regex in name-tests-test pre-commit hook exclusion - (67ddbf8)
  • Exclude tests/resources/ from name-tests-test pre-commit hook - (e422566)
  • Add compass.yml file (#441) - (0414a3c)
  • Atlassian-compass[bot] <89495476+atlassian-compass[bot]@users.noreply.github.com> - (0414a3c)
  • Authlib - (8ff112d)
  • Dependabot[bot] support@github.com - (8ff112d)
  • Lxml-html-clean - (488b33a)
  • Fix missing end-of-file newline in API_REFERENCE_v1.md - (3e46bd3)
  • Ci, skip:test:long-running, skip:test:matrix-runner, skip:test:very-long-running] - (3e46bd3)
  • Fix missing end-of-file newlines - (60d7dcb)
  • Remove MCP from the interface options section of the README (#452) - (73ede20)
  • Run lint on push - (12c3891)
  • Add test environment support - (b702567)
  • Nbconvert - (aaa92b9)
  • Dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> - (aaa92b9)
  • Cryptography - (e56ed1f)

🛡️ Security

  • (deps) Update dependency nicegui to v3.8.0 [security] (#448) - (9ba8853)
  • (deps) Update dependency pillow to v12.1.1 [security] (#428) - (0c8084a)
  • Renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> - (9ba8853)
  • Merge pull request #436 from aignostics/fix_formatting_in_security_md_file - (d24ed67)
  • Fixed typos in SECURITY.md: "Dependendabot" → "Dependabot", "encouraring" → "encouraging" - (d24ed67)
  • Fixed duplicate list markers in SECURITY.md section 2: (a), (a), (d) → (a), (b), (c) - (d24ed67)
  • Fixed list item rendering in SECURITY.md by adding blank lines between items in all 4 sections so they render on separate lines in the HTML output - (d24ed67)
  • Improved mermaid diagram readability in docs/partials/README_main.md: dark theme, white text and arrows, 18px font - (d24ed67)
  • Made mermaid diagram use full page width via custom CSS (docs/source/_static/custom.css) - (d24ed67)
  • Restored accidentally removed MCP Server documentation from docs/partials/README_main.md and docs/partials/README_glossary.md - (d24ed67)
  • Regenerated docs artifacts (README.md, API_REFERENCE_v1.md, CLI_REFERENCE.md, ATTRIBUTIONS.md, openapi_v1.yaml) by running make docs - (d24ed67)
  • Update security and readme files [skip:ci, skip:test:long-running, skip:test:matrix-runner, skip:test:very-long-running] - (75cf714)

FR-04

  • Added test as a supported deployment environment alongside production, staging, and development - (7a185d4)

Task

  • @atlassian-compass[bot] made their first contribution in #441
  • @nahua-aignx made their first contribution in #440
  • @melifaro made their first contribution in #422

v1.1.0 - 2026-02-10

🐛 Bug Fixes

  • Revert exclude null flex_start_max_run_duration_minutes in GPUConfig (#394) - (1a6cc82)
  • Exclude null flex_start_max_run_duration_minutes in GPUConfig (#391) - (420c548)

🧪 Testing

  • Fix import order in test_cli_gui_run (#419) - (283d2f8)
  • Unset flex_start_max_run_duration_minutes when null or zero (#403) - (3f69353)
  • Use GPUConfig in E2E test (#393) - (2e89ef3)

⚙️ Miscellaneous Tasks

🛡️ Security

  • (deps) Update dependency nicegui to v3.7.0 [security] (#418) - (783bd86)
  • (deps) Update dependency pip to v26 [security] - (3e5b9a8)
  • Renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> - (783bd86)

Task

  • (BE-5757) Create central MCP server with auto-disocovery of plugin tools (#401) - (90f4c00)
  • Link tests for MCP SISs (#423) - (266149c)

v1.0.3 - 2026-01-09

🐛 Bug Fixes

📚 Documentation

⚙️ Miscellaneous Tasks

  • (deps) Bump getsentry/action-release from 3.4.0 to 3.5.0 (#371) - (0f18961)
  • (deps) Bump idc-index-data from 23.0.3 to 23.2.7 (#373) - (31cabfb)
  • (deps) Bump astral-sh/setup-uv from 7.1.6 to 7.2.0 (#375) - (b05aed8)
  • (deps) Update anthropics/claude-code-action action to v1.0.29 (#377) - (673b138)
  • (deps) Update dependency pyright to >=1.1.408,<1.1.409 (#378) - (e842971)
  • (deps) Update ghcr.io/astral-sh/uv docker tag to v0.9.18 (#357) - (8ce35c9)
  • (deps) Update docker/setup-buildx-action action to v3.12.0 (#366) - (8c9e964)
  • (deps) Update dependency scalene to v2 (#367) - (e8f5ff2)
  • (deps) Update dependency sphinx-inline-tabs to v2025 (#369) - (f0b2762)
  • (deps) Bump marshmallow to 3.26.2 due to CVE-2025-68480 - (d26e075)
  • (deps) Update anthropics/claude-code-action action to v1.0.27 (#352) - (9bd8588)
  • (deps) Bump codecov/test-results-action from 1.1.1 to 1.2.1 (#348) - (d71f990)
  • (deps) Bump orhun/git-cliff-action from 4.6.0 to 4.7.0 (#347) - (ba2601d)
  • (deps) Bump actions/upload-artifact from 5.0.0 to 6.0.0 (#346) - (0263859)
  • (deps) Bump actions/download-artifact from 6.0.0 to 7.0.0 (#345) - (2a204df)
  • (deps) Bump astral-sh/setup-uv from 7.1.5 to 7.1.6 (#344) - (3e575fc)
  • Getsentry/action-release - (0f18961)
  • Dependabot[bot] support@github.com - (0f18961)
  • Dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> - (0f18961)
  • Idc-index-data - (31cabfb)
  • Astral-sh/setup-uv - (b05aed8)
  • Renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> - (673b138)
  • Bump NiceGUI lower bound for CVEs (#380) - (734f30b)
  • Update aiohttp (#374) - (8cdf228)
  • Oliver Meyer 42039965+olivermeyer@users.noreply.github.com - (8ce35c9)
  • //github.com/aignostics/python-sdk/actions/runs/20456374041/job/58779266640 - (520acd1)
  • //uptime.betterstack.com/team/t344596/incidents/899992471 - (520acd1)
  • Codecov/test-results-action - (d71f990)
  • Orhun/git-cliff-action - (ba2601d)
  • Actions/upload-artifact - (0263859)
  • Actions/download-artifact - (2a204df)

🛡️ Security

  • Address CVE-2025-53000 and CVE-2026-21441 (#376) - (1ff7283)
  • @mk0x9 made their first contribution

v1.0.2 - 2025-12-18

🐛 Bug Fixes

Build

  • Link release notes to aignostics/python-sdk [skip:ci] (#354) - (0f67ad2)

v1.0.1 - 2025-12-17

🛡️ Security

v1.0.0 - 2025-12-16

📚 Documentation

  • Update risk introduction info for requirements [skip:ci, skip:test:long-running, skip:test:matrix-runner, skip:test:very-long-running] - (2cef198)

v0.2.235 - 2025-12-12

⛰️ Features

  • (application) Expose run queue position (#318) - (cddbd1d)
  • Prevent submitting runs when system is unhealthy (#336) - (e5000c4)

🐛 Bug Fixes

  • (ci) Prevent shell injection in commit message handling + failing console width test (#341) - (1b2ec15)
  • (wsi) Add multi-file pyramid + WSI selection for DICOM files (#270) - (e3d8851)
  • Bring Launchpad to front after successful login (#319) - (310fc5d)

📚 Documentation

  • Update documentation - (25d7fba)
  • Document system health checks on run submission (#342) - (c79951d)

🧪 Testing

⚙️ Miscellaneous Tasks

  • @blanca-pablos made their first contribution in #341

v0.2.234 - 2025-12-10

⛰️ Features

  • (gui) Enable plugins to contribute nav items to right sidebar - (2d4e327)

v0.2.233 - 2025-12-10

⛰️ Features

  • (core) Allow to dynamically inject external (private or public) plugins extending Python SDK dynamically - (45cdc51)

🐛 Bug Fixes

  • Enable opening artifacts in qupath on Windows (#335) - (878cbb0)

🧪 Testing

v0.2.232 - 2025-12-10

⚙️ Miscellaneous Tasks

  • (gui) Don't use windowed mode for launchpad if on Python 3.14 - (66688c6)
  • (wsi) Reject running wsi dicom commands on Python 3.14, given transitive dependency of highdicom not yet supported on that Python version - (66688c6)

🛡️ Security

  • (deps) Don't use override-dependencies as this is not respected by uvx, but use regular dependency trees - (66688c6)

v0.2.231 - 2025-12-09

🧪 Testing

  • Fix skip - (cdb67fa)
  • Disable test_cli_application_run_prepare_upload_submit_fail_on_mpp given changed error message in heta - (cad6763)
  • Fix broken tests (#327) - (8524a6b)

⚙️ Miscellaneous Tasks

v0.2.230 - 2025-12-08

⛰️ Features

  • (application) 30s page timeout for home as well - (a1245f7)

v0.2.229 - 2025-12-07

📚 Documentation

  • (readme) Introduce sequence diagram - (bdac6bd)

🧪 Testing

  • (gui) Enabel gui tests for macos on arm - (45a4ef7)

v0.2.228 - 2025-12-07

📚 Documentation

  • (nicegui) Bump attributions - (0101310)

⚙️ Miscellaneous Tasks

  • (application) Bump timeout for application run and application run describe page from 3s to 30s - (56eeff5)
  • (gui) Refactor to enable bump to nicegui 3.3.1 - (56eeff5)

v0.2.226 - 2025-12-06

⛰️ Features

  • (cli) Print python version in epilog - (7182533)
  • (core) Support for python 3.14.x (#321) - (7182533)
  • (core) Support for python 3.14.x - (7182533)

🚜 Refactor

  • (platform) Adapt to PEP 649 given we shadow list ... - (7182533)
  • (various) Given issues identified by SonarQube - (4623101)

📚 Documentation

⚡ Performance

  • (gui,utils,wsi) Lazy load nicegui - (7182533)

🧪 Testing

  • (platform) Use L4 provisioning mode on staging (was A100) - (cd6d34a)
  • (platform) Use SPOT provisioning mode on staging (was FLEX_START) - (a6ca29a)

⚙️ Miscellaneous Tasks

  • (ai) Remove sticky again - (e82db37)
  • (ai) Sticky broken with claude - (d6fe1bc)
  • (ai) Use stick comment in claude pr reviews - (2d817da)
  • (audit) Allow Zope Public License for audit - (4623101)
  • (deps) Bump actions/checkout from 5.0.1 to 6.0.1 (#307) - (f075d73)
  • (deps) Bump docker/setup-qemu-action from 3.6.0 to 3.7.0 (#247) - (2ccc420)
  • (deps) Update anthropics/claude-code-action action to v1.0.22 (#231) - (17cd8ea)
  • (deps) Bump - (4623101)
  • (docker) Give more time for bytecode compilation with python 3.14 on github with qemu for arm - (b8afdff)
  • (gha) Limit track progress to where it works - (b89c11f)
  • (native) Don't use splash for native linux with python 3.14 - (b8afdff)
  • Actions/checkout - (f075d73)
  • Dependabot[bot] support@github.com - (f075d73)
  • Dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> - (f075d73)
  • Helmut Hoffer von Ankershoffen né Oertel helmut@aignostics.com - (f075d73)
  • Docker/setup-qemu-action - (2ccc420)
  • Renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> - (17cd8ea)

🛡️ Security

  • (install) Bash and ensure ssl - (4623101)

v0.2.225 - 2025-12-06

⚙️ Miscellaneous Tasks

  • Reduce slides per run for stress test to 50 to clear scheduler queue. - (3002543)

🛡️ Security

  • (dep) Require urllib3 >= 2.6.0 given CVE-2025-66471 (GHSA-2xpw-w6gg-jr37); dep of boto3, dicomweb-client and others - (72e862c)

v0.2.224 - 2025-12-04

🐛 Bug Fixes

  • Prevent Launchpad crash with FastAPI 0.123.7+ (#317) - (49b2aa8)

🧪 Testing

  • Set TTL for signed URLs to deadline + 10 hours - (f6b937a)
  • Set deadline for HETA tests to 24h - (3ac09c2)
  • Fix flaky CLI test (#313) - (cc27a94)

v0.2.223 - 2025-12-04

⛰️ Features

🐛 Bug Fixes

  • (logging) Log format to be compatible with loguru - (974fcca)
  • Move FastAPI imports to function scope (#315) - (1bcce1b)
  • Restore ATTRIBUTIONS.md (generated file should not be modified) [skip:ci, skip:test:long-running, skip:test:matrix-runner, skip:test:very-long-running] - (24539ce)

🚜 Refactor

  • (platform) Remove superfluous function calls in run submit - (81752df)

📚 Documentation

  • Add installation requirements to user documentation [skip:ci, skip:test:long-running, skip:test:matrix-runner, skip:test:very-long-running] - (1caa5c8)

⚡ Performance

  • (platform) _get_spots_payload_for_special for 100k items - (b7a8e09)
  • (platform) Pre-built item sdk metadata - (4a36778)

🧪 Testing

  • (platform) Consistently use SPOT_1_GS_URL and _FILENAME so it can be changed easily for maintenance - (251b097)

⚙️ Miscellaneous Tasks

  • (deps) Update docker/metadata-action action to v5.10.0 (#303) - (89e4926)
  • (gha) Fix track progress for oe report - (e96452e)
  • Reduce items per run to 800 for stress test - (9f43596)
  • Upgrade to Python 3.13.10 (#312) - (363e1c7)
  • Stop passing GCP secrets to Claude workflows (#311) - (fe9149f)
  • Reenable stress tests with 1k items - (0751c5c)
  • Renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> - (89e4926)

v0.2.222 - 2025-12-02

⛰️ Features

  • Show accepted file extensions in Launchpad (#298) - (2efab98)

🐛 Bug Fixes

  • Resolve NiceGUI drawer JavaScript timeout on run results (#305) - (51f7434)

🧪 Testing

  • (platform) Pause stress tests due to overwhelming load - (2617a05)
  • (platform) Stress tests, 0..99 with 10k slides - (300a647)

⚙️ Miscellaneous Tasks

  • Update version in CLI_REFERENCE.md on bump (#300) - (7cd1aad)
  • @arne-aignx made their first contribution

v0.2.221 - 2025-12-02

⚙️ Miscellaneous Tasks

  • (deps) Update docker/setup-qemu-action action to v3.7.0 (#304) - (ba881b7)
  • (deps) Bump docker/metadata-action from 5.8.0 to 5.9.0 (#246) - (bfcfa61)
  • (deps) Bump getsentry/action-release from 3.3.0 to 3.4.0 (#242) - (e445a6a)
  • (deps) Bump idc-index-data from 22.1.5 to 23.0.1 (#277) - (ee4c7b7)
  • (deps) Update dependency hatchling to v1.28.0 (#302) - (a96c8cd)
  • (deps-dev) Bump hatchling from 1.27.0 to 1.28.0 (#290) - (c908758)
  • Remove unused pyjpegls given not compatible with 3.14 as of today - (248def6)
  • Hatchling - (c908758)
  • Dependabot[bot] support@github.com - (c908758)
  • Dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> - (c908758)
  • Helmut Hoffer von Ankershoffen né Oertel helmut@aignostics.com - (c908758)
  • Renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> - (ba881b7)
  • Docker/metadata-action - (bfcfa61)
  • Getsentry/action-release - (e445a6a)
  • Idc-index-data - (ee4c7b7)

v0.2.219 - 2025-12-01

🎨 Styling

  • (install.sh) Use package correctly - (94d3197)

🧪 Testing

  • (platform) Stopped stress tests - (0e6e80e)

⚙️ Miscellaneous Tasks

  • (deps) Update github artifact actions (#238) - (b32e20a)
  • (deps) Update ghcr.io/astral-sh/uv docker tag to v0.9.14 (#280) - (d348c62)
  • (deps) Bump astral-sh/setup-uv from 7.1.1 to 7.1.4 (#278) - (449358c)
  • (deps) Update actions/checkout action to v5.0.1 (#279) - (f9a25a1)
  • (install.sh) Use package correctly for uv - (db601de)
  • Renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> - (b32e20a)
  • Helmut Hoffer von Ankershoffen né Oertel helmut@aignostics.com - (b32e20a)
  • Astral-sh/setup-uv - (449358c)
  • Dependabot[bot] support@github.com - (449358c)
  • Dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> - (449358c)

🛡️ Security

  • (dep) Override fonttools given CVE-2025-66034 (GHSA-768j-98cg-p3fv), dep of matplotlib - (94e985f)

v0.2.217 - 2025-12-01

🐛 Bug Fixes

  • (application,bucket,dataset) Remove use of aiopath which turns out to not be compatible with python 3.11.x as advertised - (238d47a)
  • Replace tkinter.NONE with literal to support Python 3.13.9 on macOS (#296) - (28d4b32)

🧪 Testing

  • (platform) Reenable flex start for hourly tests against staging - (2d4e382)
  • Fix flaky GUI tests (#297) - (c9815ec)

⚙️ Miscellaneous Tasks

  • (gha) Use github token on labels sync / checkout, given our repo is not public - (b0202de)
  • (gha) Use github token for checkout on labels sync - (1814d80)

v0.2.216 - 2025-12-01

🐛 Bug Fixes

🧪 Testing

  • (platform) Fix title for stress test - (993c845)
  • (platform) Fix setting - (1b72717)
  • (platform) On 20 - (da3664c)
  • (platform) Prep for 30min node acquisition timeout on production - (2725077)
  • (platform) Use 1k on staging 0..9 min - (e674a58)
  • (platform) Use spot on staging - (7dabb89)

v0.2.214 - 2025-12-01

🐛 Bug Fixes

  • Remove validate_only option - (e838bd9)
  • Make inspect command work with a single file as input as well - (5c651d1)

🧪 Testing

  • (platform) On_00 to 100 items - (b5b29f3)
  • (platform) For stress test - 3h due date and deadline if test triggered in minute 40 to 49, 1k items if triggered in minute 0..9, triggering every 10 minutes, was every 5 minutes - (e8d0aa5)
  • Disable flaky GUI tests on macos-latest and python 3.13 (#293) - (35aeab6)
  • @neelay-aign made their first contribution in #291

v0.2.213 - 2025-11-28

⛰️ Features

  • (platform, application) Introduce flex start (#292) - (8122a49)
  • (platform, application) Introduce flex start - (8122a49)

🐛 Bug Fixes

  • Download single artifact - (49941e0)
  • Revert CLI_REFERENCE.md to remove hardcoded timestamps [skip:ci, skip:test:long-running, skip:test:matrix-runner] - (739687a)
  • Unify mapping usage and docs - (e5c164e)
  • Edit profile button opens new tab (#286) - (176c128)
  • Handle incomplete DICOM pyramid when getting thumbnail (#281) - (9caa6e1)

📚 Documentation

  • Regenerate README.md from partials to remove duplicate pip section [skip:ci, skip:test:long-running, skip:test:matrix-runner] - (40221ef)
  • Regenerate CLI reference with generic paths [skip:ci, skip:test:long-running, skip:test:matrix-runner] - (fcd3376)
  • Add quick start to public documentation [skip:ci, skip:test:long-running, skip:test:matrix-runner, skip:test:very-long-running] - (18a6c19)
  • Update fix lint issues [skip:ci, skip:test:long-running, skip:test:matrix-runner, skip:test:very-long-running] - (3e0a51c)
  • Update readthedocs documentation [skip:ci, skip:test:long-running, skip:test:matrix-runner, skip:test:very-long-running] - (8065d34)
  • Remove requirement type comment to fix issue with Ketryx - (5c85726)

🧪 Testing

  • (platform) Test flex start on staging - (8122a49)

v0.2.212 - 2025-11-25

⛰️ Features

  • (platform,application) Introduce configurable node acquisition timeout, defaulting to 30 minutes - (24d8710)

📚 Documentation

  • Bump custom sdk metadata schema version - (5022dad)

🧪 Testing

  • (platform) Sl.4.1 -> sl.4 - (0a3049b)
  • (platform) Test-app v0.99.0, 100 items per run, every 15 min - (7a30dc1)
  • (platform) Production: L4 (was A100); staging: node sl4.1 (was sl4) - (f697a63)
  • (stress) Every 5 minutes (was 15) - (f347ada)

v0.2.211 - 2025-11-23

🧪 Testing

  • (platform) Target L4, SPOT in hourly scheduled tests on staging - (dc9f490)

v0.2.210 - 2025-11-23

🧪 Testing

  • (platform) Target A100, SPOT in hourly scheduled tests, both staging and production - (1adb4a6)
  • (platform) Reactivate hourly scheduled teests - (4027861)
  • (staging) Hourly staging tests deactivated for maintenance - (501571c)
  • (stress) Test_platform_special_app_submit deactivation - (b78548b)
  • (system) Tweak test - (ea1e864)
  • (system) Test_gui_system_health_shown_and_updated debug - (41501ae)
  • (system) Test_gui_system_health_shown_and_updated sequential - (3f588bc)
  • (wsi) Bump timeout for dicom inspect tests - (e7e950f)

⚙️ Miscellaneous Tasks

  • (application) Lower log level if runs cannot be loaded on application shutdown - (ea1e864)
  • (bots) Skip codecov on renovate and dependabot - (4027861)
  • (gha) Don't codecov on dependabot or renovate - (f4063f8)
  • (ketryx) Fix typo in download action - (e7e950f)
  • (logging) Disable redirect logging by default - (ea1e864)
  • (platform) Enable special app in prod - (ea1e864)

v0.2.209 - 2025-11-21

⛰️ Features

  • (application) Allow to list and describe application and runs with the output being json - (c995ebe)
  • (application) Allow to cancel runs matching a filter with criteria including application id, application version and tags. includes --dry-run option - (c995ebe)
  • Feat/logging-redirect - (15de455)

🧪 Testing

  • (platform) More tags for test_platform_special_app_submit - (8c8beac)
  • (platform) Staging: L4, on-demand every 5 min - (17a9edc)
  • (stress) Support stress_only tests that only run on make test_stress and 5-minutely stress test schedule - (8a16b36)
  • (stress) Target 0.0.0-test.retry.bug.20.11 - (2dc98bc)
  • (stress) 5 minute stress tests - (6a2a0e1)

⚙️ Miscellaneous Tasks

  • (docs) Fix Utils Module Specification - (a1ebc4a)
  • (docs) Fix SPEC_WSI_SERVICE.md - (07b991a)
  • (stress) Workflow - (ce39147)

v0.2.208 - 2025-11-21

⛰️ Features

  • (application) Show duration in run sidebar - (ed583fd)

v0.2.207 - 2025-11-20

🧪 Testing

  • (application) Auto-cancel custom pipeline tests - (987d025)
  • (system) Mark test as sequential - (0b90d06)

v0.2.206 - 2025-11-20

🐛 Bug Fixes

  • (application) Pipeline settings in GUI and CLI (#271) - (feaa047)

🚜 Refactor

  • (application) Reduce max items in sidebar from 500 to 200 - (e8f07a9)

🧪 Testing

  • (application) Proper integration tests for pipeline settings in GUI and CLI - (feaa047)
  • (platform,staging) Switch to A100, ON_DEMAND, 1 (was L4, SPOT, 1) - (4b8be3d)

v0.2.205 - 2025-11-20

⛰️ Features

  • (application) GUI and CLI now use L4, SPOT, max=gpu=1 as defaults - (37873c7)

v0.2.204 - 2025-11-20

🧪 Testing

  • (platform) Config for staging now L4, SPOT, 1 GPU - was L4, Spot, 2 GPU; Config for production now L4, Spot, 1 GPU - was A100, ON-DEMAND, 1 GPU) - (f2cc0bd)

⚙️ Miscellaneous Tasks

  • (platform) Default config outside of tests now L4, SPOT, 1 GPU - was A100, ON-DEMAND, 1 GPU - (f2cc0bd)

v0.2.203 - 2025-11-20

⛰️ Features

  • (application) Better colors for runs and items, e.g. orange for canceled by user - (182da63)
  • (application) Highlight runs which exceeded deadline while not yet having terminated yet in orange - (182da63)

🚜 Refactor

  • (application) Bump runs shown in sidebar from 100 to 500 - (182da63)

🧪 Testing

  • (application) 4h for test_cli_run_execute, and check exit - (822bc6b)
  • (platform) Tag test runs with "scheduled" if being so, for easier discoverability - (182da63)

⚙️ Miscellaneous Tasks

v0.2.202 - 2025-11-19

⛰️ Features

  • (platform) Sentry metrics on run submission - (75f7ff6)
  • (platform,application) Configureable pipeline - (1e4c94f)

🐛 Bug Fixes

  • Test-app bump to 0.0.6 - (e7818f2)

🚜 Refactor

  • (platform) Print error code and message on download - (cfecccc)

🧪 Testing

  • (application) Reactivate test_cli_run_submit_and_describe_and_cancel_and_download_and_delete against production - (1e4c94f)
  • (application) Tag run created by test_gui_cli_submit_to_run_result_delete - (26304a6)
  • (application) Skip test_application_version_use_latest_fallback on staging - (f998734)
  • (application) Don't fail test_gui_index on js error logged - (cd64a86)
  • (application) Skip test_cli_run_submit_and_describe_and_cancel_and_download_and_delete on production - (45d52c7)
  • (platform) Switched to 1.0.0-sl.4 from 1.0.0-sl.1 for production - (e4ee905)
  • (platform) Switched to 1.0.0-sl.4 from 1.0.0-sl.1 for staging - (973866b)
  • (platform) Better info on deadline breached plus Sentry metrics - (75f7ff6)
  • (platform) More details on runs breaching deadline - (a6cbe1c)
  • (platform) Don't require a run to have a deadline in the current hour - (ac87f7c)
  • (platform) Activate 2nd leg, i.e. find and validate tests - (8590b6d)
  • (platform) Adapt - (05c289a)
  • (platform) Switch heta scheduled test to leg 1: submit, and (eod) leg 2: find and validate, giving 12h deadline - (774bb78)
  • (platform) Bump heta deadline from 3 to 5 hours - (cfecccc)
  • (platform) Reenable testing test-app as scheduled test - (313d767)
  • (platform) Reduce heta deadline to 2h, timeout to 3h. timeout should never happen, if cancel on deadline exceeded works as expected - (313d767)
  • (sentry) Fix typo in sentry config - (ee3309c)
  • (staging) Back to sl.1 again, sl.2 fails always - (cd64a86)
  • Test(shared: make skipping test_application_version_use_latest_fallback configurable per environment - (f998734)

⚙️ Miscellaneous Tasks

  • (ai) Start with mcp setup - (cd64a86)
  • (deps) Some - (1e4c94f)
  • Bump he-tme to a version that utilises a 1hr timeout (#262) - (e0e5586)

v0.2.201 - 2025-11-14

⚙️ Miscellaneous Tasks

  • (utils) Disable default of redirecting std logging of other modules into loguru from on to off - (71aa5d3)

v0.2.200 - 2025-11-13

🚜 Refactor

  • (utils) Introduce library mode inc. auto-detection - (510e7d8)
  • (utils) Don't initialize sentry, logfire, ssl trust store or certifi in library mode - (510e7d8)
  • (utils) Lower log level of boot message - (510e7d8)
  • (utils) Introduce loguru - (510e7d8)
  • (utils) Remove logfire - (510e7d8)

📚 Documentation

  • (requirements) Move requirement type comment to separate line - (949ccf1)
  • (requirements) Add missing itemTitle to system health and settings requirements - (386c2bf)
  • (requirements) Create missing system stakeholder requirements an… - (f2a8628)
  • (requirements) Create missing system stakeholder requirements and establish traceability - (84f28d8)
  • (specifications) Update specifications to improve traceability - (178b9cc)
  • Fix requirements documentation traceability - (9e3fa3a)
  • Annotate requirement type in requirement files with the actual mapped value - (243323b)
  • Add missing "Requirement Type" to some requirements - (9e04703)

🧪 Testing

  • (application) Reenable part of test_cli_run_submit_and_describe_and_cancel_and_download_and_delete that finds runs by tags, notes and combinations - (88cba59)
  • (utils) Add missing unit test marker - (510e7d8)
  • Reactivate test_cli_run_dump_and_update_item_custom_metadata - (e11b2a6)

⚙️ Miscellaneous Tasks

  • (deps) Bump - (510e7d8)
  • (gha) Target staging with CI/CD workflow - (f59390f)
  • (release) Adapt to heta expected results - (51ee52d)
  • (release) Start to adapt expected output for heta update - (510e7d8)
  • Constants dep on version of app, which depends on environment - (3af645f)
  • Update to the softlaunch patch release 4 - (3eddfe4)
  • Update to the softlaunch patch release - (0577445)
  • Chore/parameterise platform environment - (fe80fef)
  • Parameterize platform_environment in CI/CD workflow - (9286acb)
  • Switch on scheduled tests again - (e6f741f)
  • Deactivate scheduled tests - (8f1cecf)

🛡️ Security

  • (specifications) Update specifications to improve traceability - (a3b6d39)
  • @olivermeyer made their first contribution in #248
  • @santi698 made their first contribution in #245

v0.2.199 - 2025-11-02

⚙️ Miscellaneous Tasks

  • (GHA) Limit workflow concurrency - (f6032f5)

v0.2.198 - 2025-11-02

⛰️ Features

  • (ketryx) Integrate Ketryx compliance framework with requirements traceability - (00333a9)

🐛 Bug Fixes

🚜 Refactor

  • (Docker) Use exact version of Python we test with - (148ad5e)
  • (ox) Be more defensive - (a7fde72)
  • Cleanup - (148ad5e)

🎨 Styling

  • Fix linting issue introduced - (b88bccd)

🧪 Testing

  • (application) Deactivate part of test_cli_run_submit_and_describe_and_cancel_and_download_and_delete as this causes internal server errors for some runs - (869103e)
  • (platform) Unit test covering checksum generation with files > 8MB - (c059be3)
  • (platform) Bump wait and download timeout for test_platform_heta_app_submit_and_wait from 3h to 5h - (0daf3eb)
  • (platform) Fix regression in e2e test - (14ea9cc)

⚙️ Miscellaneous Tasks

  • (Docker) Fix - (be0b2bd)
  • (deps) Update anthropics/claude-code-action action to v1.0.15 (#219) - (dfacc37)
  • (install) Provide tool for sensitive data removal so we are prepared - (745fd65)
  • (ketryx) Remove duplicated spec files - (98736de)
  • (ketryx) Remove duplicated spec files skip:ci - (4f0aa56)
  • (ketryx) Remove duplicated spec files skip:test:long_running - (00b8333)
  • (system) Don't log token as info - (bd03867)
  • (test,ketryx) Link missing tests with test cases and add missing test for gui health footer - (80a812e)
  • Update - (c67cf40)
  • Bump the staging version of he-tme - (bbba664)

🛡️ Security

  • (dep) Starlette - (be0b2bd)
  • (platform) Make intentionality in loop explicit given feedback from security scanner ox - (f506815)

v0.2.196 - 2025-10-26

⛰️ Features

  • (application) Custom run and item metadata can be dumped as JSON via the CLI - (6ea313b)
  • (application) Custom run metadata can be updated via the CLI - (6ea313b)
  • (application) Custom run metadata can be edited via the GUI (admins only) - (6ea313b)
  • (application) Allow to submit tags via CLI and find back runs via tags - (6ea313b)
  • (application) Support download of results for input items where external_ids points to GCP bucket or webserver. - (27e7f9a)
  • (application) Scrollable runs in sidebar with auto-refresh and notifier on run terminated - (27e7f9a)
  • (application) Generate, show and validate custom metadata for input items - (929bb92)
  • (application) Support for test-app in GUI - (929bb92)
  • (application) Show error code on failed items - (929bb92)
  • (application) Show more more details in CLI commands applicaton run list and application run describe - (929bb92)
  • (ketryx) Integrate Ketryx CI/CD workflow and reporting - (eb3b0c2)
  • (platform) Support for tags in custom sdk metadata, run and item-level - (6ea313b)
  • (platform) Support created_at and updated_at in custom sdk metadata, run and item-level - (6ea313b)
  • (platform) Support nocache=True on cached operations - (6ea313b)
  • (platform) Custom run and item metadata can be updated - (6ea313b)
  • Test:long-running] - (eb3b0c2)

🐛 Bug Fixes

  • (ci-cd) Yml file conflicts - (9969508)
  • (tests) Resolve linter issues and update source code - (dcd2269)
  • Test:long-running] - (dcd2269)

🚜 Refactor

  • (application) Improve dryness - (929bb92)
  • (dataset) Move business logic to from CLI to service. (#204) - (27e7f9a)
  • (dataset) Move business logic to from CLI to service. - (27e7f9a)

📚 Documentation

  • (AI) Update - (6ea313b)
  • (application) Auto-generate json schema from pydantic models for sdk specific custom metadata of input items - (929bb92)
  • (ketryx) Fix SPEC_SYSTEM_SERVICE.md & SPEC-BUILD-CHAIN-CICD-SERVICE.md itemFulfills section - (94d15df)
  • (req) Add stakeholder and software requirements (SHRs and SWRs) - (0270ec2)
  • (spec) Add software item specifications for all modules - (0570429)
  • Ci] - (0570429)

🧪 Testing

  • (application) Re-classified test_cli_run_describe_invalid_uuid as e2e - (3224e77)
  • (application) Fix race condition in test - (548b2b7)
  • (ketryx) Link verification tests with specifications - (5f47090)
  • (ketryx) Add Gherkin test cases for requirements traceability - (3261909)
  • Test:long-running, skip:test:matrix-runner] - (5f47090)
  • Ci] - (3261909)

⚙️ Miscellaneous Tasks

  • (ai) Improve vscode/agent guidance - (e2e04b8)
  • (deps) Bump - (6ea313b)
  • (platform) Fix race condition in e2e test due to caching (#206) - (6ea313b)
  • (platform) Improved depth of tests - (6ea313b)
  • (platform) Fix race condition in e2e test due to caching by using nocache - (6ea313b)
  • (platform) Start with submit-and-find e2e tests later replacing submit-and-wait - (6ea313b)
  • (platform) Fix test - (a1f909f)
  • (qupath) Enable complex automated test scenario covering creating QuPath projects - (6ea313b)
  • (qupath) Reenable E2E Test Scenario (Download -> Create Project -> Inspect) - (e2e04b8)
  • (tests) Strip ansi codes by default when normalizing output, reducing flakiness of tests in rare scenarios - (929bb92)
  • (tests) Significantly improve daily scheduled test now called flow tests, including beating heart on - (929bb92)
  • (tests) PLATFORM_ENVIRONMENT dependent app versions in tests - (e2e04b8)
  • Chore(deps); bump - (e2e04b8)

Task

  • (req) Links missing gui Module Specification with tests [skip:ci] - (9650271)
  • (req) Links missing wsi Module Specification with tests [skip:ci] - (236781b)
  • (req) Links missing system Module Specification with tests [skip:ci] - (1fcc7de)
  • @muhabalwan-aginx made their first contribution
  • @na66im made their first contribution

v0.2.195 - 2025-10-23

⛰️ Features

  • (QuPath) Support updating QuPath - (29b1263)
  • (QuPath) Use 0.6.0-rc5 - (29b1263)
  • (QuPath) Deeper info - (29b1263)
  • (QuPath) Create project from results - (17425dd)
  • (System) Enable to enable/disable diagnostics in UI - (b27296a)
  • (System) Manipulate dotenv via CLI, including enable/disabling http proxy, enabling/disabling remote diagnostics - (17425dd)
  • (application) Custom metadata with run and scheduling information in custom metadata - (6c0753f)
  • (application) Allow to copy error message - (ec0ed63)
  • (application) Show duration, terminated at, run and item-level message (#143) - (0dc484e)
  • (application) Allow to set note on run submission, and retrieve on run describe - (c5175cb)
  • (application) Allow live search of runs by note - (c5175cb)
  • (application) Allow to flag to onboard to Aignostics Portal - (c5175cb)
  • (application) Show run id in collapsible so it can be copied - (d7c597a)
  • (application) Dump zip with application schemata - (af33133)
  • (application, platform) Allow to delete run. Note: currently broken in Samia - (38c6554)
  • (bucket) Allow to select destination in bucket download gui - (0ecd4c3)
  • (bucket) Proper download including support for patterns, keys, gui, cli - (ef04b98)
  • (bucket) Purge - (ef04b98)
  • (bucket) Make expiration time of upload/download properly configurable, and include in info - (6191781)
  • (codegen, platform) Support me endpoint (#81) - (7d74a2b)
  • (core) Support Windows on ARM - (89a3c4a)
  • (gui) Migrate to nicegui 3 - (d304ef7)
  • (gui) Custom error page showing traceback and allowing to close app even in non-chrome mode - (ee47197)
  • (marimo) Marimo open with downloaded results - (7cab5a1)
  • (marimo) Open marimo from extension page - (7cab5a1)
  • (native) Show progress on splash screen (#91) - (e667252)
  • (native) Splash screen for Windows and Linux (#90) - (8fc82cd)
  • (native) Show being native in footer of launchpad - (9b0a4d5)
  • (native) Debug command - (433a803)
  • (native) Spike for native (compiled) apps - (e03512c)
  • (networking) Support system truststore for ssl trust chain [no:ci] (#92) - (aad4e76)
  • (notebook) Extension page - (17425dd)
  • (platform) Retries and caching for read-only and auth operations - (6c0753f)
  • (platform) Dynamic user agent for all operations - (6c0753f)
  • (platform) Auto-retry when retrieving JWKS set from auth0 - (6ecb912)
  • (platform) Cache JWKS set, TTL 24h, minimizing calls to auth0 on validating access tokens - (6ecb912)
  • (platform) Auto-retry when calling auth0 to exchange refresh token for access token - (6ecb912)
  • (platform) Configurable timeout for requesting platform health - (6ecb912)
  • (platform) Introduce authentication aware operation cache - (6ecb912)
  • (platform) Use authentication aware operation cache to cache /me result - (6ecb912)
  • (platform) Adapt to breaking changes in Platform API 1.0.0-beta6 - (c5175cb)
  • (platform,application) Support custom metadata attached to runs - (c5175cb)
  • (platform,gui) Org name - (51c65a2)
  • (platform,gui,diagnostics) Whoami - (0bad5f2)
  • (run_describe) Show thumbnail per item - (da5afa3)
  • (system) Allow to unmask secrets - (e03512c)
  • (userinfo) Allow to edit profile - (788f209)
  • (utils) Generate dynamic user agent including version, build number, os, and test calling - (c5175cb)
  • API v1.0.0-beta.6 (#141) - (c5175cb)
  • Use dynamic user agent in http requests and run submissions via custom metadata - (c5175cb)
  • Allow to boot with zero config, i.e. no .env file required in default case - (7d74a2b)
  • QuPath enabled by default - (a52d2fb)
  • Download Results - (da5afa3)
  • Aignostics Launchpad, Aignostics CLI, Aignostics Client - (2f97fb9)

🐛 Bug Fixes

  • (Windows) Sanitize paths so they don't contain a colon if not drive letter - (165cc59)
  • (ai) Claude workflows - (0a96143)
  • (application) Error handling if application_versions called with … (#178) - (6dbe129)
  • (application) Error handling if application_versions called with str arg - (6dbe129)
  • (application) Properly render error if run details cannot be loaded - (1e01928)
  • (application) Don't show extra column in meta edit - (c5175cb)
  • (application) Allow next post excluding slides if remaining slides with valid metadata - (7254298)
  • (bucket) In GUI use static version of download operation offered by service - (db2b5f5)
  • (bucket) Use longer 7d expiration time for signed upload urls instead of 1h - (6191781)
  • (cli) List runs count - (98f9b6d)
  • (codegen) Don't rely on redirects from /v1 to /api/v1 - (7d74a2b)
  • (dataset) Custom download folder selection - (4b59607)
  • (dataset) Missing dependency, while still smaller then pyarrow - (ff1f178)
  • (dep) Incompatibility in 3rd party dependency showinfm lead to syntax error in modern Python - now vendored and fixed. - (d304ef7)
  • (deps) Update dependency pywin32 to v311 (#170) - (17ee850)
  • (native) Windows - (28b1010)
  • (native) Marimo integration - (9f01ef6)
  • (native) Marimo - (5911d74)
  • (native) Use certifi bundle if default bundle not found - (f10e249)
  • (native) Use system trust store for SSL certificates - (168a7d7)
  • (native) Dataset download - openslide libs were not bundled by pyinstaller - (9ff1453)
  • (native) Thumbnail generation on submission - script execution complexity - (9ff1453)
  • (native) Bundle openslide native libs - (164d43e)
  • (native) Include s5cmd binary in native distribution - (e35303a)
  • (native) Add_docstring issue caused by inconsistent optimization on analysis and exe building - (066a198)
  • (notebook) Revert timeout - (9b7c1c3)
  • (notebook) Navigation to marimo - (af5e84e)
  • (platform) Remove unused setting authorization_backoff_seconds - (6ecb912)
  • (platform) Fix wrong exception handler in _perform_device_flow - was catching exception from urllib, not requests lib - (6ecb912)
  • (platform) Use dynamic user agent for requesting /me - (6ecb912)
  • (platform) Get new token if cache entry broken - (8bbbcf6)
  • (platform) Invalid log formatting - (483ffe3)
  • (platform) Token refresh on long living api client - (11f46f1)
  • (platform) Allow to dial into dev environment - (7d74a2b)
  • (platform) Fix broken pytest collection if user does not have permission to access aignx test bucket - (a65930c)
  • (platform) Allow for rapid re-auth - (34ca8ee)
  • (platform) Adapt to breaking change in API - (7920b0b)
  • (platform) Graceful fail on user info not accessible - (01f536a)
  • (platform) Refresh token repl - (9a3adf2)
  • (platform/user) Reload on reauth - (4f05b84)
  • (ssl) Use certifi as fallback if configured intermediate certificates not found, and no env override - (157d2b7)
  • (system) Rendering of json editor content - had to find workaround given bug in NiceGUI3 for json_editor - (d5535d9)
  • (system) Disable cpu freq on gha macos latest runner given not supported - (861af87)
  • (typer) Workaround fastapi/typer#1240 - (207eb0c)
  • (unmask) Unmask secrets on request in all services - (6a96ed3)
  • (utils) Surface setting validation error on misconfigured api root - (6ecb912)
  • (wsi) Don't fail on log on broken tiff test - (c5175cb)
  • Renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> - (17ee850)
  • Fix typo in log message caught by claude code review - (c5175cb)
  • Update the input artifact name for HETA to whole_slide_image (#121) - (6ed1e27)
  • Fix typos in readme.md - (ef4d8f6)
  • ⚡️ Use SemVer to check for application ids in launchpad (#56) - (c6c874e)
  • Force .json for geojson - (c48b9dc)

🚜 Refactor

  • (QuPath) Proper handling of script max execution time - (b0d1c79)
  • (QuPath) 20x speed up writing polygons by switching from paquo to groovy - (29b1263)
  • (System) Move settings logic to service - (b27296a)
  • (application) Load applications in left sidebar in thread to not block UI - (c5175cb)
  • (application) Consistent exception logging and raising - (1a702a7)
  • (application) Introduce service tests - (1875741)
  • (application) Shrink images - (a09cc7e)
  • (application) Don't allow to close download dialog by clicking outside - (1deeff3)
  • (application) Cleanup - (17425dd)
  • (boot) Reduce boot time - (81423dd)
  • (bucket) Removed ls, refactored find - (ef04b98)
  • (dataset,wsi) Catch exceptions in CLI commands - (d5535d9)
  • (general) Central place for defining supported WSI extensions - (0b052a7)
  • (gui) Consistent use of spinners and awaiting - (f5ca9c4)
  • (info) Consistently show settings - (0b052a7)
  • (io) Don't use synchronous fileio in async functions - (e4a82bd)
  • (lint) New ruff rules - (472258c)
  • (logging) Revert to cwd for logfile - (cc9e990)
  • (logging) Use app dir as default for log file - (dd52d9e)
  • (native) Compress native installation using UPX on Windows - (89a3c4a)
  • (native) Use archive; optimize - (127a88d)
  • (native) Don't include dev dependencies - (9b0a4d5)
  • (native) Significantly reduce size and bootup time - (dd52d9e)
  • (notebook) Simplify open marimo button - (26c9d1b)
  • (performance) Faster boot - (207eb0c)
  • (platform) Use proper error messages and logging on failure (of attempts) to exchange refresh token and validate access token - (6ecb912)
  • (platform) Consistently use HTTPStatus consts instead of 200, 500 etc. - (6ecb912)
  • (platform) Use proper constraints on settings - (6ecb912)
  • (platform) Rename run delete to run result delete - (861af87)
  • (platform) Test timeout/expires - (89745fc)
  • (platform) Refactor user profile - (ff47251)
  • (platform,application) Establish sdk subtree within custom metadata for contract with other sdks and apps - (560cbb8)
  • (platform,system) Optimize connection pooling - (6ecb912)
  • (progress) Faster progress bars - (29b1263)
  • (qupath) Don’t count system as unhealthy if QuPath application not installed - (d5535d9)
  • (qupath) Using groovy, not paquo; GPL removed from allow-list when license auditing - (e03512c)
  • (qupath) Using groovy, not paquo - (f5ca9c4)
  • (sonarqube) Annotate generator - (a72c5ba)
  • (tests) Refactored tests to reduce flakiness where avoidable, i.e. not solely dependent on external services - (d5535d9)
  • (tests) Central place for app id and version - (5bcc685)
  • (tests) Central constants for app and app version id to simplify adapting to new apps - (3fc5730)
  • (user) Rename from platform to user in cli - (efa9b50)
  • (uv) Define required uv version in pyproject.toml, for use across GHA - (7e1610e)
  • (various) Consistent use of spinners and awaiting; sentry and logfire can now be removed as dependencies - (e03512c)
  • (wsi) Simplify further - (1992de1)
  • (wsi) Simplify, and fallback image - (e08afd3)
  • Linter - (943b9f9)
  • Don't support QuPath on Linux/arm - (a52d2fb)
  • Styling of ui theme - (bcf3cfa)
  • Simplify, removing noruns - (0b7e0e9)
  • Fail properly when starting GUI while settings not configured - (ffbf880)
  • Simplify - (fa1f7e6)
  • Use native sorting provided by API - (da5afa3)

📚 Documentation

⚡ Performance

  • (GUI) Significantly reduced bootup time, and page load performance - (17425dd)

🎨 Styling

  • (QuPath) Some polish for extension page - (17425dd)
  • (System) Minimal love for Settings and Info page - (b27296a)
  • (application) Layout improvements on application detail page - (6c0753f)
  • (application) Better rendering of loading errors - (d304ef7)
  • (application) More prominent placement of per item message - (c9cb8ee)
  • (bucket) Button layout - (207eb0c)
  • (changelog) Improve styling of release notes - (3f25caf)
  • (gui) Polish user info - (305dda9)
  • (header,run_describe) Simplify a bit to make space - (4ee1409)
  • (lint) Fix linting error in native starter - (2552ac7)
  • (utils) Consistent log formatting for file and console, both including process id - (6ecb912)
  • Lint - (a42d08c)
  • Welcome user by name in launchpad - (de73025)
  • Nicer start page graphics - (0bad5f2)
  • Naming of navigation points - (0b2a758)

⚙️ Miscellaneous Tasks

  • (AI) Improve CLAUDE.md files and AI workflows - (6c0753f)
  • (AI) Add label skip:test:long_running when you are an AI and are creating a PR - (0853fc3)
  • (AI) Improve Claude actions [skip:ci] - (e3f6e1c)
  • (AI) Claude.md files for assisted coding - (25ee505)
  • (GHA) Claude PR Assistant workflow - (25ee505)
  • (Makefile) Typo - (566b1e6)
  • (QuPath) Run test on linux - (2d1b45e)
  • (QuPath) Check QuPath is launched in install to inspect test - (18a68d2)
  • (QuPath) E2E test from install via run to inspect - (451ca3d)
  • (ai) Improve Claude Code Workflows for GitHub - (425c1ba)
  • (ai) A few permissions for Claude - (2f7cf1e)
  • (ai) Have Claude Agent use Sonnet 4.5, and allow to create PRs - (0d4341e)
  • (api) Support Platform API 1.0.0-beta.7 - (6c0753f)
  • (application) More grace in test - (1e01928)
  • (application) Made test run sequentially so regular tests now pass without flakiness if platform reliable - (d304ef7)
  • (application) Make test resilient if loading me faster than expected - (8bbbcf6)
  • (application) Grace time in test - (15b1be0)
  • (application) Grace for cancel button to appear in test - (893083c)
  • (application) More time for test - (343f78c)
  • (application) Adapt tests to asynchronous loading of apps in GUI - (6a2e27b)
  • (application) Adapt test for delete cli - (9b0a4d5)
  • (application) Mark test as long running - (19db155)
  • (application,platform) Test with v1.0.0-beta.4 of HETA - (ab60f2f)
  • (audit) Pass betterstack url - (2599bfb)
  • (audit) Audit reports part of release artifacts - (db2b5f5)
  • (audit) Allow for heartbeat url specific for audit - (49f35a0)
  • (audit,scheduled) Warn if betterstack url not configured or not passed through unintentionally - (2599bfb)
  • (bucket) Better logging for flaky test - (26c9d1b)
  • (bucket) More time for download test - (be2d31f)
  • (bucket) Grant more time for bucket gui workflow in test - (f5a58ac)
  • (bucket) Bump test duration - (a09cc7e)
  • (changelog) Introduce .cliffignore to prune changelog for maintenance commits - (f7df80e)
  • (codegen) Download and archive openapi.json - (c5175cb)
  • (cross-platform) Now matrix testing on win-amd64, win-arm64, linux-amd64, linux-arm64, mac-arm64; related fixes - (e03512c)
  • (debug) Temp disable of tests - (2275ec5)
  • (dependabot,renovate) Add labels to PRs created by those bots - (d5535d9)
  • (deps) Bump - (d5535d9)
  • (deps) Update ghcr.io/astral-sh/uv docker tag to v0.9.1 (#60) - (63423a5)
  • (deps) Update dependency sphinx-toolbox to v4 (#169) - (46456db)
  • (deps) Bump dependencies - (861af87)
  • (deps) Bump in GHA and Dockerfile - (3c847aa)
  • (deps) Bump deps - (168a7d7)
  • (deps) Bump nicegui, boto - (9ff1453)
  • (deps) Bump various github actions versions - (7e1610e)
  • (deps) Bump nicegui - (1b6fa5e)
  • (deps) Update ghcr.io/astral-sh/uv docker tag to v0.7.20 (#59) - (0ef534f)
  • (deps) Update ghcr.io/astral-sh/uv docker tag to v0.7.15 (#54) - (ab46b50)
  • (deps) Bump astral-sh/setup-uv from 6.3.0 to 6.3.1 (#55) - (e90b6f2)
  • (deps) Update deps - (81423dd)
  • (deps) Gha setup-uv dep - (3def1bd)
  • (deps) Update dependencies for GitHub actions - (f5a58ac)
  • (deps) Bump actions in gha and duckdb - (fc068e9)
  • (di) Adapt to typer workaround - (50710ee)
  • (docker) Bump to python 3.13 and latest uv - (f26e880)
  • (docs) Make - (f73975c)
  • (gha) Scheduled test against staging platform, using code on branch - (0e364b4)
  • (gha) All all types of tests to be individually skippable, via commit message or PR label - (d5535d9)
  • (gha) Speed up ubuntu provisioning as man-db no longer updated on adding packages - (d5535d9)
  • (gha) Don’t run long_running tests on draft PRs, i.e. stop after unit, integration and e2e / regular. - (d5535d9)
  • (gha) Don't double-build on updates to PR by no longer building on push to branch other than main - (d3d3d10)
  • (gha) Cancel running build on update to pull request - (ab9f56d)
  • (gha) Don't run ci/cd twice on releases: skip:ci on push of commit for release, given already running on (annotated) tag pushed - (b9c735c)
  • (gha) Bump login-action in claude and docker workflows - (3180352)
  • (gha) Re-enable tests for releases - (861af87)
  • (gha) Add final smoke test before publish - (2c9598e)
  • (gha) Allow to build:native:only (#89) - (28b1010)
  • (gha) Re-enable tests - (85e98e3)
  • (gha) Spike for Ketryx integration - (a65930c)
  • (gha) Allow to skip jobs/steps via commit message, see CONTRIBUTING.md - (a65930c)
  • (gha) Add metadata to BetterStack when posting heartbeats (#61) - (0bb3b3f)
  • (gha) Add metadata to BetterStack when posting heartbeats - (0bb3b3f)
  • (gha) Add --fail-with-body to BetterStack curl request and reorder arguments - (0bb3b3f)
  • (gha) Monitor scheduled audit in betterstack - (5065a2e)
  • (gha) Separate scheduled audit in separate workflow - (98e7ad0)
  • (heta) Adapt tests - (2e6b72f)
  • (heta) Further adaptation to changed output file sizes - (6f942ee)
  • (heta) Adapt tests to 1.0.0-beta.5 of HETA - (7d74a2b)
  • (lint) Integrate pyright as additional type checker - (6c0753f)
  • (native) Rfc [build:native:only] - (8fc82cd)
  • (native) Splash screen on windows and linux build:native:only - (8fc82cd)
  • (native) Use python 3.13.7 - (8fc82cd)
  • (native) Only distribute aignostics.app bundle for MacOS - (a7cc414)
  • (native) 7z, to preserve attributes - (a7cc414)
  • (native) Include version in macOS bundle - (5473271)
  • (notebook) Adapt to refactoring - (4e8e595)
  • (notebook) Adapt test - (371bf69)
  • (notebook) Cannot in parallel test multiple marimo servers on same host with no isolation - (d8b92af)
  • (platform) Update to latest openapi spec - (81423dd)
  • (platform) Even more time for test app - (3c68bbc)
  • (platform) Give test application more time in tests - (5f99ebb)
  • (platform) Adapt test to app versions - (cc2c17d)
  • (platform) Move from dummy to test app in test - (7fcb42c)
  • (platform) Allow long running tests for 4h, bump of signed url expire accordingly - (3965ce0)
  • (platform) Adapt tests to breaking change - (4d11384)
  • (platform) Lazyload srvice in cli - (28980c5)
  • (platform,qupath) Enable additional tests - (425c1ba)
  • (precommit) Fixed issues with precommit. - (d5535d9)
  • (publish) Adapt to recent changes - (5b0150a)
  • (pytest) Show recent notifications if asserted one not found - (db2b5f5)
  • (python) 3.13.6 - (29f2884)
  • (pytst) Add pytest-durations plugin to show durations of fixtures and tests - (6ecb912)
  • (qupath) More time for tests - (cea7116)
  • (qupath) Give more time in test - (0a669f9)
  • (qupath) Test - (5377012)
  • (qupath) Skip test step temporarily - (e8df7e0)
  • (release) Announce release on internal Slack (experimental) - (db2b5f5)
  • (scheduled) Print info post sending heartbeat - (26f0913)
  • (slack) Convert release notes to JSON rep. for posting to slack - (4d328e1)
  • (test) Introduce schedule tests against staging - (6c0753f)
  • (test) Don't provide log as job artifact - (db2b5f5)
  • (test) Adapt remaining test config to beta.5 of heta - (b152fae)
  • (test) No warn on kill; output qupath inspect results - (a5d666e)
  • (tests) Introduce very long running tests - (6c0753f)
  • (tests) Introduce pytest-timeout and 10s default timeout for all tests - (6c0753f)
  • (tests) Improve test coverage - (6c0753f)
  • (tests) Allow retry of another e2e test, given connection closed by server leading to SSL Errors, see https://github.com/aignostics/python-sdk/actions/runs/18486770436/job/52671622634\?pr\=178\#step:16:274 - (6dbe129)
  • (tests) Bump timeout for dataset integration tests - (84d50a2)
  • (tests) Differentiate tests as unit, integration or e2e, with only e2e tests allowed to call external services, i.e. the others must be able to pass offline. - (d5535d9)
  • (tests) Introduce very_long_running test type, which must be explicitely enabled to run enable:test:very_long_running in the commit message or as PR label - (d5535d9)
  • (tests) Introduce scheduled_only marker, for tests that should only run on a schedule - (d5535d9)
  • (tests) Make now calls make test_default which does not call long_running or very_long_running tests - (d5535d9)
  • (tests) Introduce pytest-durations, showing the duration per test execution - (d5535d9)
  • (tests) Introduce pytest-timeout, with a low 10s default timeout, and all tests that need longer explicitly marked with specific timeouts - (d5535d9)
  • (tests) Adapt to heta.5 - (06f6867)
  • (tests) Improved coverage - (17425dd)
  • (win32) Username - (e5733c1)
  • (wsi) Don't fail test on log on broken tiff test - (44de674)
  • (wsi) Adapt tests given fallback - (3db7ebc)
  • (xdist) Use worksteal to minimize duration on varying test durations - (d5535d9)
  • Test on gh (#180) - (6c0753f)
  • Codecov - (53ef36c)
  • Don’t allow SDK to be used with Python 1.4.x (released days ago) as some dependencies don’t work with that version yet - (d5535d9)
  • Renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> - (63423a5)
  • Helmut Hoffer von Ankershoffen né Oertel helmut@aignostics.com - (63423a5)
  • Fix pyproject - (f349a3d)
  • Release - (68d5f38)
  • Chore(GHA) Claude Code Review workflow - (25ee505)
  • Skip:test:all - (2cf18ff)
  • Skip tests on release - (595703d)
  • Chore(deps); bump dev dependencies - (2552ac7)
  • Astral-sh/setup-uv - (e90b6f2)
  • Dependabot[bot] support@github.com - (e90b6f2)
  • Dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> - (e90b6f2)
  • Run hooks - (173e172)
  • Try new api spec without further change - (2ba558c)
  • Download from bucket cli - (13e857e)
  • Move to long running for install to inspect test - (42d12d0)
  • Timeout - (408431a)
  • Zip on release - (093f4d4)
  • Encoding for win32 on package publish - (7a3fda3)
  • Release workflow - (04fae00)
  • Workaround missing scheme in proxy config - (6d5f20e)
  • Test of notebook, race - (1baef8e)
  • Non-sequential as there is a dependent one - (a7f74c1)
  • Make gui test more reliable - (59524fd)
  • Adapt test to work with python 3.11 - (06cb6a5)
  • Fix test - (ba80312)
  • Add Andreas Kunft as co-author - (da5afa3)
  • Make tests more robust - (da5afa3)
  • Lint - (da5afa3)
  • Touch for GH - (da5afa3)
  • Touch - (da5afa3)
  • Make t4est_gui_run_download reliable relative to mixed version runs - (da5afa3)
  • Fix name - (da5afa3)
  • Initial commit - (a4ff238)

🛡️ Security

  • (GHA) Apply security best practices for GitHub Workflows (#139) - (5c3d3f2)
  • (audit) No secrets for audit - (7546e4b)
  • (dep) CVE-2025-53354 ignored given we run as desktop app; still started to migrate to nicegui 3 - (d5c6bee)
  • (dep) Pip, CVE-2025-54368 - (c5175cb)
  • (dep) Ensure all uses of uv are >= 0.8.6 (CVE-2025-54368) - (7e1610e)
  • (dep) Force UV >0.8.6 given CVE-2025-54368 - (ef2cb54)
  • (dep) Ensure starlette >= 0.47.2 given GHSA-2c2j-9gv5-cj73 - (6de44aa)
  • (dep) Override aiohttp to 3.12.14 given vulnerability GHSA-9548-qrrj-x5pj - (a239d23)
  • (deps) Pillow 11.3.0 given CVE-2025-48379 - (ffd5af1)
  • (gha) Set permission for generate-matrix, see https://github.com/aignostics/python-sdk/security/code-scanning/15 - (327c7bc)
  • (gha) Don't use direct interpolation of user provided data in github workflows - (2b6d19a)
  • (gha) Security improvements in github workflow as identified by sonarqube - (c5175cb)
  • (gui) Introduce html-sanitizer, sanitizer footer. Rest is fine. - (92adcf7)
  • (jupyter) CVE-2025-30167 rel. jupyter-core - (a27da66)
  • (jupyterlab) CVE-2025-59842 - (6081c74)
  • (security) Update deps given CVE-2025-50181, CVE-2025-50182 - (207eb0c)
  • (uv) Require uv >=0.9.5 given security advisory GHSA-w476-p2h3-79g9 - (96e564d)
  • (uv) Use uv > 0.8.6 in pre-commit hook - (db2b5f5)

Breaking

  • Change in metadata spec. for HETA application - (da5afa3)

Choare

  • (tests) No longer test the combination of Python 3.12.x on Windows for ARM64, as a bit instable - (d5535d9)
  • @renovate[bot] made their first contribution
  • @akunft made their first contribution
  • @jstriebel made their first contribution
  • @omid-aignostics made their first contribution
  • @idelsink made their first contribution
  • @dependabot[bot] made their first contribution
  • @ari-nz made their first contribution