Skip to content

Submit issue reports to the LoopKit developers - #2585

Merged
ps2 merged 1 commit into
next-devfrom
issue-reports
Oct 15, 2026
Merged

ps2 merged 1 commit into
next-devfrom
issue-reports

Conversation

@ps2

@ps2 ps2 commented Oct 15, 2026

Copy link
Copy Markdown
Collaborator

Settings > Support > Report Issue now opens a single screen. From there the person can either submit a report to the LoopKit developers (POST https://ingest.loopkit.org/v1/issues) or tap Export Locally Instead, which opens the existing Issue Report screen to save or share themselves.

Submitting

  • A description is required; the title is optional.
  • Up to 8 screenshots from the photo picker. PNGs are sent as they are; anything else (HEIC from the camera) is converted to JPEG under 10 MB, since the server accepts only PNG, JPEG and UTF-8 text.
  • Submit Anonymously is on by default and sends no contact details. Turning it off shows optional Name, Email, Zulip and GitHub fields. The analytics device ID is never sent.
  • Include Diagnostic Report is on by default and attaches Loop's issue report as diagnostic-report.txt, capped at 10 MB. Its footer says the report contains health data.
  • Also Sent lists the details that go with every report, using the same values as the Support rows (Show branch, revision, customizations and launch time in Support #2583): appVersion, buildNumber, branch, workspaceRevision, loopRevision, customizations, deviceModel (model identifier, e.g. iPhone17,1), osVersion, pumpModel, cgmModel. Keys with no value (for example branch on a detached checkout) are left out.
  • A footer explains that reports are visible only to the dev team, and that the IP address is used only for rate limiting and never stored.
  • On success the report ID (IR-…) is shown with a Copy ID button, so it can be quoted on Zulip or GitHub. Errors show a readable message, with Try Again only for network and 5xx errors.
  • Submitting works whether or not analytics sharing is enabled.

Testing

  • Built with the LoopWorkspace scheme for the simulator and for a device, and installed on a phone.
  • IssueReportSubmitter was run against the live endpoint from a macOS harness. A TEST report returned an ID (since deleted), and an attachment of junk bytes returned 415 unsupported_attachment.

The "Create Issue Report" action in the canceled automatic bolus alert still opens the export screen directly.

Settings > Support > Report Issue now opens one screen where the person
either submits a report to ingest.loopkit.org/v1/issues or exports Loop's
diagnostic report locally, which opens the existing issue report screen.

A submitted report has a description, optional title and screenshots.
It is anonymous unless the person fills in a name, email, Zulip or GitHub
contact, and the analytics device ID is never sent. Build and device
details (version, build, branch, revisions, customizations, device model,
OS, pump and CGM model) are listed on the screen and sent with every
report. Loop's diagnostic report is attached as text by default; the
toggle says it contains health data. Photos other than PNG are converted
to JPEG.
@ps2
ps2 merged commit 06b2155 into next-dev Oct 15, 2026
ps2 added a commit that referenced this pull request Oct 18, 2026
* Require iOS 17.6

The project-level 15.1 setting overrode Loop.xcconfig, so the app still
targeted iOS 15.1. Remove it and raise Loop.xcconfig to 17.6, which
matches next-dev and the plugins that already require it.

* Submit issue reports to the LoopKit developers

Backport of #2585 from next-dev. Settings > Support > Report
Issue now opens one screen where the person either submits a report to
ingest.loopkit.org/v1/issues or exports Loop's diagnostic report locally,
which opens the existing issue report screen.

A submitted report has a description, optional title and screenshots.
It is anonymous unless the person fills in a name, email, Zulip or GitHub
contact, and the analytics device ID is never sent. Build and device
details (version, build, branch, revisions, device model, OS, pump and
CGM model) are listed on the screen and sent with every report. Loop's
diagnostic report is attached as text by default; the toggle says it
contains health data. Photos other than PNG are converted to JPEG.

dev has no build customizations list, so that context key is left out.
The diagnostic report and the pump and CGM models come from the
settings delegate, since dev's settings view model has no device
manager.

* Include build customizations in issue reports

Backport of #2577 from next-dev. capture-build-details.sh
records each *.loopcustomization file that the LoopWorkspace
customization script adds, the diagnostic report lists them, and an
issue report sends them as "customizations" with the other build details.
ps2 added a commit to LoopKit/LoopWorkspace that referenced this pull request Oct 19, 2026
Loop: issue reports to the LoopKit developers (LoopKit/Loop#2585), even
alarm loudness (LoopKit/Loop#2589), stop AlarmKit alarms after a relaunch
(LoopKit/Loop#2590), alarms play through silent mode (LoopKit/Loop#2591),
carb entry sync identifier (LoopKit/Loop#2587).

LoopKit: watch glucose duplicate crash (LoopKit/LoopKit#655), chart
back-gesture (LoopKit/LoopKit#656, LoopKit/LoopKit#658), iOS 17.6 and
watchOS 10.6 (LoopKit/LoopKit#659), previous pump's reservoir values
(LoopKit/LoopKit#657), carb entry sync identifier (LoopKit/LoopKit#654).

LibreLoop: not-an-Abbott-product notice (LoopKit/LibreLoop#25), iOS 17.6
(LoopKit/LibreLoop#26), backfilled readings in Recent Readings
(LoopKit/LibreLoop#27).

LibreTransmitter: forward the newest trend reading (LoopKit/LibreTransmitter#58).

EversenseKit and MixpanelService: iOS 17.6 (LoopKit/EversenseKit#7,
LoopKit/MixpanelService#9).
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