Skip to content

Releases

Resgrid Unit 8.26

Choose a tag to compare

@github-actions github-actions released this 12 Nov 07:13
49fcfc0

Resgrid Unit 8.26

Channel production · build 100026 · run 26 · commit 49fcfc0

Platform Path Details
android native build 3545a1119dd9 — binaries attached
ios native build ee9be4590957 — binaries attached

Docker: resgridllc/unit:8.26, ghcr.io/resgrid/unit:8.26

Verify downloads with sha256sum -c SHA256SUMS.

Pull request #29: RO-T101 Custom Map Icon Fixes

Summary

Fix custom map icon sizing and compatibility for previously cached map markers.

Changes

  • Updated getMapDataAndMarkers to always request fullSizeIcons=true, ensuring uploaded icons are returned at their full size.
  • Added the fullSizeIcons query parameter to the mapping endpoint definition and pending Swagger contract.
  • Scaled uploaded 128 px icons to the standard 32 px map pin size while keeping status and bundled icons at their existing scale.
  • Added per-pin icon scale metadata to MapLibre symbol features.
  • Versioned persisted map marker data to version 1.
  • Added migration handling for version 0 cached markers:
    • Removes previously persisted uploaded IconUrl values that referenced undersized 32 px renditions.
    • Preserves marker locations, map center, zoom, fetch timestamps, and status pin information.
    • Handles empty or partial legacy storage safely.
  • Added tests covering the API query, icon scaling behavior, persistence versioning, and legacy storage migration.

Changes

Resgrid Responder 11.26

Choose a tag to compare

@github-actions github-actions released this 12 Nov 07:14
49fcfc0

Resgrid Responder 11.26

Channel production · build 5100026 · run 26 · commit 49fcfc0

Platform Path Details
android native build 9936a97d35eb — binaries attached
ios native build 7776f36f3af3 — binaries attached

Docker: resgridllc/responder:11.26, ghcr.io/resgrid/responder:11.26

Verify downloads with sha256sum -c SHA256SUMS.

Pull request #29: RO-T101 Custom Map Icon Fixes

Summary

Fix custom map icon sizing and compatibility for previously cached map markers.

Changes

  • Updated getMapDataAndMarkers to always request fullSizeIcons=true, ensuring uploaded icons are returned at their full size.
  • Added the fullSizeIcons query parameter to the mapping endpoint definition and pending Swagger contract.
  • Scaled uploaded 128 px icons to the standard 32 px map pin size while keeping status and bundled icons at their existing scale.
  • Added per-pin icon scale metadata to MapLibre symbol features.
  • Versioned persisted map marker data to version 1.
  • Added migration handling for version 0 cached markers:
    • Removes previously persisted uploaded IconUrl values that referenced undersized 32 px renditions.
    • Preserves marker locations, map center, zoom, fetch timestamps, and status pin information.
    • Handles empty or partial legacy storage safely.
  • Added tests covering the API query, icon scaling behavior, persistence versioning, and legacy storage migration.

Changes

Resgrid IC 2.26

Choose a tag to compare

@github-actions github-actions released this 12 Nov 07:13
49fcfc0

Resgrid IC 2.26

Channel production · build 100026 · run 26 · commit 49fcfc0

Platform Path Details
android native build 37bb3713a34c — binaries attached
ios native build 2efcfd56a6d6 — binaries attached

Docker: resgridllc/ic:2.26, ghcr.io/resgrid/ic:2.26

Verify downloads with sha256sum -c SHA256SUMS.

Pull request #29: RO-T101 Custom Map Icon Fixes

Summary

Fix custom map icon sizing and compatibility for previously cached map markers.

Changes

  • Updated getMapDataAndMarkers to always request fullSizeIcons=true, ensuring uploaded icons are returned at their full size.
  • Added the fullSizeIcons query parameter to the mapping endpoint definition and pending Swagger contract.
  • Scaled uploaded 128 px icons to the standard 32 px map pin size while keeping status and bundled icons at their existing scale.
  • Added per-pin icon scale metadata to MapLibre symbol features.
  • Versioned persisted map marker data to version 1.
  • Added migration handling for version 0 cached markers:
    • Removes previously persisted uploaded IconUrl values that referenced undersized 32 px renditions.
    • Preserves marker locations, map center, zoom, fetch timestamps, and status pin information.
    • Handles empty or partial legacy storage safely.
  • Added tests covering the API query, icon scaling behavior, persistence versioning, and legacy storage migration.

Changes

Resgrid Dispatch 2.26

Choose a tag to compare

@github-actions github-actions released this 12 Nov 07:14
49fcfc0

Resgrid Dispatch 2.26

Channel production · build 100026 · run 26 · commit 49fcfc0

Platform Path Details
android native build 682fa279de2a — binaries attached
ios native build 5196f592a168 — binaries attached

Docker: resgridllc/dispatch:2.26, ghcr.io/resgrid/dispatch:2.26

Verify downloads with sha256sum -c SHA256SUMS.

Pull request #29: RO-T101 Custom Map Icon Fixes

Summary

Fix custom map icon sizing and compatibility for previously cached map markers.

Changes

  • Updated getMapDataAndMarkers to always request fullSizeIcons=true, ensuring uploaded icons are returned at their full size.
  • Added the fullSizeIcons query parameter to the mapping endpoint definition and pending Swagger contract.
  • Scaled uploaded 128 px icons to the standard 32 px map pin size while keeping status and bundled icons at their existing scale.
  • Added per-pin icon scale metadata to MapLibre symbol features.
  • Versioned persisted map marker data to version 1.
  • Added migration handling for version 0 cached markers:
    • Removes previously persisted uploaded IconUrl values that referenced undersized 32 px renditions.
    • Preserves marker locations, map center, zoom, fetch timestamps, and status pin information.
    • Handles empty or partial legacy storage safely.
  • Added tests covering the API query, icon scaling behavior, persistence versioning, and legacy storage migration.

Changes

BigBoard 4.26

Choose a tag to compare

@github-actions github-actions released this 12 Nov 07:13
49fcfc0

BigBoard 4.26

Channel production · build 100026 · run 26 · commit 49fcfc0

Platform Path Details
android native build c29069ba0efd — binaries attached
ios native build 6a4c91100497 — binaries attached

Docker: resgridllc/bigboard:4.26, ghcr.io/resgrid/bigboard:4.26

Verify downloads with sha256sum -c SHA256SUMS.

Pull request #29: RO-T101 Custom Map Icon Fixes

Summary

Fix custom map icon sizing and compatibility for previously cached map markers.

Changes

  • Updated getMapDataAndMarkers to always request fullSizeIcons=true, ensuring uploaded icons are returned at their full size.
  • Added the fullSizeIcons query parameter to the mapping endpoint definition and pending Swagger contract.
  • Scaled uploaded 128 px icons to the standard 32 px map pin size while keeping status and bundled icons at their existing scale.
  • Added per-pin icon scale metadata to MapLibre symbol features.
  • Versioned persisted map marker data to version 1.
  • Added migration handling for version 0 cached markers:
    • Removes previously persisted uploaded IconUrl values that referenced undersized 32 px renditions.
    • Preserves marker locations, map center, zoom, fetch timestamps, and status pin information.
    • Handles empty or partial legacy storage safely.
  • Added tests covering the API query, icon scaling behavior, persistence versioning, and legacy storage migration.

Changes

Resgrid Unit 8.25

Choose a tag to compare

@github-actions github-actions released this 12 Nov 00:07
0e1aaea

Resgrid Unit 8.25

Channel production · build 100025 · run 25 · commit 0e1aaea

Platform Path Details
android native build 3545a1119dd9 — binaries attached
ios native build ee9be4590957 — binaries attached

Docker: resgridllc/unit:8.25, ghcr.io/resgrid/unit:8.25

Verify downloads with sha256sum -c SHA256SUMS.

Pull request #28: RO-T102 Fixes for Dispatch, pending operation handling, outbox

Summary

  • Restrict status hold-to-confirm behavior to native Responder and Unit apps.
  • Improve outbox handling for idempotent writes and pending operations.
  • Prevent post-delivery refreshes from blocking subsequent writes.
  • Clean up stale “Pending sync” markers when their outbox events no longer exist.
  • Improve Dispatch unit status refresh behavior and call-file upload deduplication.

Details

Status hold-to-confirm
  • Added the status.holdToConfirm capability to all app variants.
  • Enabled it only for Responder and Unit variants.
  • Dispatch, IC, BigBoard, web, and Electron builds now set statuses immediately without a hold.
  • The department’s StatusHoldToConfirm setting is honored only when the app capability and native-platform requirements are met.
  • Added manifest, configuration, provider, and behavior tests for the new capability.
Idempotent writes and retry handling
  • Added defineIdempotentDataHandler for writes that Core deduplicates using the outbox event ID.
  • HTTP 409 responses for these writes are treated as in-progress operations and remain queued instead of being marked rejected.
  • Idempotent operations receive an extended retry budget so Core’s five-minute processing claim can expire before the outbox gives up.
  • Applied this behavior to call creation, call notes, call-file uploads, personnel status/staffing updates, and unit status updates.
  • Call-file uploads now include the outbox event ID as an optional IdempotencyKey, preventing duplicate attachments when an upload is retried.
Outbox delivery and refresh behavior
  • Added a separate refresh phase for post-delivery reads.
  • Required local acknowledgement work still completes before the next write is sent.
  • Screen-refresh reads now run asynchronously after delivery and no longer block the outbox drain.
  • Updated call details, messages, check-ins, operations, routes, personnel status, and unit status handlers to use the new refresh flow.
  • Added per-failure retry budgets so handlers can use a different limit for specific errors such as HTTP 409.
Pending operation marker reconciliation
  • Added centralized reconciliation for queued-operation markers across calls, call details, check-ins, messages, personnel status, unit status, and work orders.
  • Markers are removed when their corresponding outbox event is no longer present, including delivered, discarded, expired, or dead-lettered events.
  • Reconciliation runs after data initialization and whenever the outbox changes.
  • Reconciliation failures are logged while preserving the existing markers.
Dispatch improvements
  • Multi-unit status updates no longer wait for status-list reads between each unit submission.
  • Dispatch now refreshes unit rows and map markers once after selected-unit status updates are sent.
  • Call detail reads support bypassing in-flight cached requests so a save followed by a refresh uses the latest server data.
  • Notes and files are refreshed after acknowledgement without delaying subsequent outbox operations.
Validation
  • Added coverage for:
    • Idempotent retries and HTTP 409 handling.
    • Extended retry behavior while Core holds a processing claim.
    • Duplicate-safe call-file uploads.
    • Non-blocking post-delivery refreshes.
    • Stale queued-marker cleanup and reconciliation failures.
    • Multi-unit Dispatch status updates.
    • Variant-specific status hold-to-confirm behavior.

Changes

  • RO-T101 PR #28 Fixes (2db1efb)
  • RO-T102 Fixes for Dispatch, pending operation handling, outbox (7b82e12)

Resgrid Unit 8.24

Choose a tag to compare

@github-actions github-actions released this 11 Nov 18:50
05d81c3

Resgrid Unit 8.24

Channel production · build 100024 · run 24 · commit 05d81c3

Platform Path Details
android native build 3545a1119dd9 — binaries attached
ios native build ee9be4590957 — binaries attached

Docker: resgridllc/unit:8.24, ghcr.io/resgrid/unit:8.24

Verify downloads with sha256sum -c SHA256SUMS.

Pull request #27: Develop

Summary

  • Restricts EAS/OTA updates to critical and emergency fixes delivered from the hotfix branch.

    • Pull requests into hotfix run validation only and publish nothing.
    • Native changes are detected by comparing fingerprint sources with the hotfix branch, with changed packages, files, and app configuration reported.
    • The required hotfix-ok check passes only when the native comparison and OTA dry runs succeed.
    • Pushes to hotfix publish updates for all variants on the production channel.
    • Manual updates are accepted only when dispatched from hotfix, with selectable variants, platforms, and channels.
    • Updates are refused unless released binaries on the target channel use the bundle’s runtime fingerprint, including support for matching an older store build behind newer release candidates.
  • Changes release.yml so every release run builds native Android and iOS binaries and never publishes an EAS update.

    • Removes the native-versus-OTA decision stage, OTA release job, and force_native input.
    • Keeps fingerprint calculation to record platform runtimes in fingerprints.json.
    • Removes OTA metadata from release assembly and records only native build or carried-forward binary information.
    • Ensures web and Electron fixes continue to be delivered through regular release runs.
  • Enables R8 minification for Android release builds across all variants.

    • Adds keep rules for native libraries and code that relies on reflection, JNI, or name-based lookups.
    • Keeps resource shrinking disabled so runtime-discovered notification and audio resources remain available.
    • Updates app configuration tests to verify R8 settings, keep rules, and the supported expo-navigation-bar options.
  • Adds coverage for hotfix update behavior, including:

    • Runtime matching and failed-build handling.
    • Finding compatible binaries among multiple releases.
    • Native source change reporting.
    • Enforcing that only ota.yml publishes EAS updates and only from hotfix.
    • Verifying that regular release workflows always build native binaries.
  • Updates architecture, CI secrets, build guidance, app-update documentation, implementation status, and agent instructions to reflect the hotfix-only OTA policy and Android R8 configuration.

Changes

  • RO-T102 PR #27 Fixes (633989b)
  • RO-T102 Hotfix OTA Build support (87f8920)
  • RO-T102 DEX Fix for Google Play Hotfix Logic fix (e22ee04)

Resgrid Responder 11.25

Choose a tag to compare

@github-actions github-actions released this 12 Nov 00:07
0e1aaea

Resgrid Responder 11.25

Channel production · build 5100025 · run 25 · commit 0e1aaea

Platform Path Details
android native build 9936a97d35eb — binaries attached
ios native build 7776f36f3af3 — binaries attached

Docker: resgridllc/responder:11.25, ghcr.io/resgrid/responder:11.25

Verify downloads with sha256sum -c SHA256SUMS.

Pull request #28: RO-T102 Fixes for Dispatch, pending operation handling, outbox

Summary

  • Restrict status hold-to-confirm behavior to native Responder and Unit apps.
  • Improve outbox handling for idempotent writes and pending operations.
  • Prevent post-delivery refreshes from blocking subsequent writes.
  • Clean up stale “Pending sync” markers when their outbox events no longer exist.
  • Improve Dispatch unit status refresh behavior and call-file upload deduplication.

Details

Status hold-to-confirm
  • Added the status.holdToConfirm capability to all app variants.
  • Enabled it only for Responder and Unit variants.
  • Dispatch, IC, BigBoard, web, and Electron builds now set statuses immediately without a hold.
  • The department’s StatusHoldToConfirm setting is honored only when the app capability and native-platform requirements are met.
  • Added manifest, configuration, provider, and behavior tests for the new capability.
Idempotent writes and retry handling
  • Added defineIdempotentDataHandler for writes that Core deduplicates using the outbox event ID.
  • HTTP 409 responses for these writes are treated as in-progress operations and remain queued instead of being marked rejected.
  • Idempotent operations receive an extended retry budget so Core’s five-minute processing claim can expire before the outbox gives up.
  • Applied this behavior to call creation, call notes, call-file uploads, personnel status/staffing updates, and unit status updates.
  • Call-file uploads now include the outbox event ID as an optional IdempotencyKey, preventing duplicate attachments when an upload is retried.
Outbox delivery and refresh behavior
  • Added a separate refresh phase for post-delivery reads.
  • Required local acknowledgement work still completes before the next write is sent.
  • Screen-refresh reads now run asynchronously after delivery and no longer block the outbox drain.
  • Updated call details, messages, check-ins, operations, routes, personnel status, and unit status handlers to use the new refresh flow.
  • Added per-failure retry budgets so handlers can use a different limit for specific errors such as HTTP 409.
Pending operation marker reconciliation
  • Added centralized reconciliation for queued-operation markers across calls, call details, check-ins, messages, personnel status, unit status, and work orders.
  • Markers are removed when their corresponding outbox event is no longer present, including delivered, discarded, expired, or dead-lettered events.
  • Reconciliation runs after data initialization and whenever the outbox changes.
  • Reconciliation failures are logged while preserving the existing markers.
Dispatch improvements
  • Multi-unit status updates no longer wait for status-list reads between each unit submission.
  • Dispatch now refreshes unit rows and map markers once after selected-unit status updates are sent.
  • Call detail reads support bypassing in-flight cached requests so a save followed by a refresh uses the latest server data.
  • Notes and files are refreshed after acknowledgement without delaying subsequent outbox operations.
Validation
  • Added coverage for:
    • Idempotent retries and HTTP 409 handling.
    • Extended retry behavior while Core holds a processing claim.
    • Duplicate-safe call-file uploads.
    • Non-blocking post-delivery refreshes.
    • Stale queued-marker cleanup and reconciliation failures.
    • Multi-unit Dispatch status updates.
    • Variant-specific status hold-to-confirm behavior.

Changes

  • RO-T101 PR #28 Fixes (2db1efb)
  • RO-T102 Fixes for Dispatch, pending operation handling, outbox (7b82e12)

Resgrid Responder 11.24

Choose a tag to compare

@github-actions github-actions released this 11 Nov 18:50
05d81c3

Resgrid Responder 11.24

Channel production · build 5100024 · run 24 · commit 05d81c3

Platform Path Details
android native build 9936a97d35eb — binaries attached
ios native build 7776f36f3af3 — binaries attached

Docker: resgridllc/responder:11.24, ghcr.io/resgrid/responder:11.24

Verify downloads with sha256sum -c SHA256SUMS.

Pull request #27: Develop

Summary

  • Restricts EAS/OTA updates to critical and emergency fixes delivered from the hotfix branch.

    • Pull requests into hotfix run validation only and publish nothing.
    • Native changes are detected by comparing fingerprint sources with the hotfix branch, with changed packages, files, and app configuration reported.
    • The required hotfix-ok check passes only when the native comparison and OTA dry runs succeed.
    • Pushes to hotfix publish updates for all variants on the production channel.
    • Manual updates are accepted only when dispatched from hotfix, with selectable variants, platforms, and channels.
    • Updates are refused unless released binaries on the target channel use the bundle’s runtime fingerprint, including support for matching an older store build behind newer release candidates.
  • Changes release.yml so every release run builds native Android and iOS binaries and never publishes an EAS update.

    • Removes the native-versus-OTA decision stage, OTA release job, and force_native input.
    • Keeps fingerprint calculation to record platform runtimes in fingerprints.json.
    • Removes OTA metadata from release assembly and records only native build or carried-forward binary information.
    • Ensures web and Electron fixes continue to be delivered through regular release runs.
  • Enables R8 minification for Android release builds across all variants.

    • Adds keep rules for native libraries and code that relies on reflection, JNI, or name-based lookups.
    • Keeps resource shrinking disabled so runtime-discovered notification and audio resources remain available.
    • Updates app configuration tests to verify R8 settings, keep rules, and the supported expo-navigation-bar options.
  • Adds coverage for hotfix update behavior, including:

    • Runtime matching and failed-build handling.
    • Finding compatible binaries among multiple releases.
    • Native source change reporting.
    • Enforcing that only ota.yml publishes EAS updates and only from hotfix.
    • Verifying that regular release workflows always build native binaries.
  • Updates architecture, CI secrets, build guidance, app-update documentation, implementation status, and agent instructions to reflect the hotfix-only OTA policy and Android R8 configuration.

Changes

  • RO-T102 PR #27 Fixes (633989b)
  • RO-T102 Hotfix OTA Build support (87f8920)
  • RO-T102 DEX Fix for Google Play Hotfix Logic fix (e22ee04)

Resgrid IC 2.25

Choose a tag to compare

@github-actions github-actions released this 12 Nov 00:07
0e1aaea

Resgrid IC 2.25

Channel production · build 100025 · run 25 · commit 0e1aaea

Platform Path Details
android native build 37bb3713a34c — binaries attached
ios native build 2efcfd56a6d6 — binaries attached

Docker: resgridllc/ic:2.25, ghcr.io/resgrid/ic:2.25

Verify downloads with sha256sum -c SHA256SUMS.

Pull request #28: RO-T102 Fixes for Dispatch, pending operation handling, outbox

Summary

  • Restrict status hold-to-confirm behavior to native Responder and Unit apps.
  • Improve outbox handling for idempotent writes and pending operations.
  • Prevent post-delivery refreshes from blocking subsequent writes.
  • Clean up stale “Pending sync” markers when their outbox events no longer exist.
  • Improve Dispatch unit status refresh behavior and call-file upload deduplication.

Details

Status hold-to-confirm
  • Added the status.holdToConfirm capability to all app variants.
  • Enabled it only for Responder and Unit variants.
  • Dispatch, IC, BigBoard, web, and Electron builds now set statuses immediately without a hold.
  • The department’s StatusHoldToConfirm setting is honored only when the app capability and native-platform requirements are met.
  • Added manifest, configuration, provider, and behavior tests for the new capability.
Idempotent writes and retry handling
  • Added defineIdempotentDataHandler for writes that Core deduplicates using the outbox event ID.
  • HTTP 409 responses for these writes are treated as in-progress operations and remain queued instead of being marked rejected.
  • Idempotent operations receive an extended retry budget so Core’s five-minute processing claim can expire before the outbox gives up.
  • Applied this behavior to call creation, call notes, call-file uploads, personnel status/staffing updates, and unit status updates.
  • Call-file uploads now include the outbox event ID as an optional IdempotencyKey, preventing duplicate attachments when an upload is retried.
Outbox delivery and refresh behavior
  • Added a separate refresh phase for post-delivery reads.
  • Required local acknowledgement work still completes before the next write is sent.
  • Screen-refresh reads now run asynchronously after delivery and no longer block the outbox drain.
  • Updated call details, messages, check-ins, operations, routes, personnel status, and unit status handlers to use the new refresh flow.
  • Added per-failure retry budgets so handlers can use a different limit for specific errors such as HTTP 409.
Pending operation marker reconciliation
  • Added centralized reconciliation for queued-operation markers across calls, call details, check-ins, messages, personnel status, unit status, and work orders.
  • Markers are removed when their corresponding outbox event is no longer present, including delivered, discarded, expired, or dead-lettered events.
  • Reconciliation runs after data initialization and whenever the outbox changes.
  • Reconciliation failures are logged while preserving the existing markers.
Dispatch improvements
  • Multi-unit status updates no longer wait for status-list reads between each unit submission.
  • Dispatch now refreshes unit rows and map markers once after selected-unit status updates are sent.
  • Call detail reads support bypassing in-flight cached requests so a save followed by a refresh uses the latest server data.
  • Notes and files are refreshed after acknowledgement without delaying subsequent outbox operations.
Validation
  • Added coverage for:
    • Idempotent retries and HTTP 409 handling.
    • Extended retry behavior while Core holds a processing claim.
    • Duplicate-safe call-file uploads.
    • Non-blocking post-delivery refreshes.
    • Stale queued-marker cleanup and reconciliation failures.
    • Multi-unit Dispatch status updates.
    • Variant-specific status hold-to-confirm behavior.

Changes

  • RO-T101 PR #28 Fixes (2db1efb)
  • RO-T102 Fixes for Dispatch, pending operation handling, outbox (7b82e12)