Skip to content

Releases: Rabithua/FeedbackKit

FeedbackKit 2.3.9

Choose a tag to compare

@Rabithua Rabithua released this 23 Oct 09:53
6f628d0

Fix content-sized custom app update reminders.

  • Apply SDK update-sheet detents only to the default layout: regular sizes retain .fraction(0.42), .medium, and .large; accessibility sizes retain .large.
  • Let custom FeedbackAppUpdateSheetLayout content own its native SwiftUI presentation detents, including Dynamic Type handling.
  • Preserve the same-sheet Continue transition to the feedback composer's own .medium height.
  • Keep all public initializers and SDK update actions, busy/dismiss protection, failed-link details, localization, and haptics unchanged.

Migration: apply presentationDetents inside the custom layout closure using the host's measured content height. Hosts such as Rote can remove temporary FeedbackUpdateSheetSizing UIKit adapters after updating.

Validation: 238 Swift package tests passed (opt-in live contract skipped), generic iOS SDK and Demo builds passed, and four focused iPhone 16e / iOS 26.3 UI scenarios passed for default/custom layouts, accessibility sizes, single-detent behavior after dragging, and continuation to the composer (initial height/continuation cases also passed on iOS 18.6). Independent source review passed.

PR: #65

FeedbackKit 2.3.8

Choose a tag to compare

@Rabithua Rabithua released this 22 Oct 10:30
1ae34d7

Make feedback submission visibly progress and complete within the existing half-height composer.

  • Show centered sending and sent states inside the same composer sheet.
  • Keep entered text, attachments, and scroll position when a submission fails.
  • Preserve the original hollow send button at the end of the form.
  • Briefly acknowledge success before dismissing, with localized status text in all five supported languages.
  • Preserve draft cleanup and prevent duplicate completion when cancellation overlaps a successful submission.

Validation: PR and merged-main CI passed (package tests, generic iOS SDK build, and Demo build). 238 local Swift package tests passed; Rote built, installed, and launched on Huawei Air. Updated Demo UI tests compiled for a physical iOS device; device UI execution remains unverified because the test runner disconnected before bootstrapping.

PR: #64

FeedbackKit 2.3.7

Choose a tag to compare

@Rabithua Rabithua released this 19 Oct 15:09
f964778

Let native iOS sheet and navigation containers provide page backgrounds, avoiding solid content rectangles and seams around the grabber and safe areas while dragging.

  • Covers questionnaires, the feedback center, activity, personal feedback, roadmap, releases, diagnostics, and identity pages.
  • Preserves button, card, input, form-row, and footer backgrounds.
  • Keeps the existing macOS window surface and public APIs.

Validation: all 236 Swift package tests and the generic iOS package build passed. Independent review found no issues.

PR: #63

FeedbackKit 2.3.6

Choose a tag to compare

@Rabithua Rabithua released this 19 Oct 04:13
dfe0563

Fix skeleton borders moving toward the upper-left corner while the feedback center loads on iOS 18.

  • Limit the repeating skeleton pulse to opacity so initial layout and border geometry remain fixed.
  • Keep existing pulse timing, layouts, public APIs, and Reduce Motion behavior.

Validation: all 236 Swift tests, generic iOS package build, and Fixture Demo CI passed. A six-second loading recording on an iOS 18.6 small-screen simulator reproduced the bug before the patch and confirmed stable card bounds across multiple pulse cycles afterward. Independent review found no issues; temporary verification hooks were removed.

PR: #62

FeedbackKit 2.3.5

Choose a tag to compare

@Rabithua Rabithua released this 19 Oct 03:26
9b49af4

Custom update reminders can now use a host app's existing button styles while keeping SDK-owned behavior.

  • Expose localized display titles, full accessibility labels, and continuation/update callbacks in FeedbackAppUpdateSheetLayout.Content.
  • Keep content.actions and the default SDK layout compatible with existing hosts.
  • Reuse the same busy guards, haptics, update URL handling, failure details, and successful dismissal for native and custom actions.
  • Preserve shorter Dynamic Type display titles and complete accessibility labels.

Validation: all 236 Swift package tests and generic iOS package build passed locally; CI also passed package tests, iOS build, and Fixture Demo build. Independent review found no issues.

PR: #61

FeedbackKit 2.3.4

Choose a tag to compare

@Rabithua Rabithua released this 09 Sep 08:40
27e7a00

FeedbackKit now checks for app updates silently when the feedback center opens.

  • Start the host's version check in the background, independently of loading the feedback center.
  • Open Report a Bug immediately when the result is pending, unavailable or says there is no update. The checking screen has been removed.
  • Show the existing update reminder only when a newer version is already known when the user opens the bug report.
  • Keep late results from interrupting a composer the user has already opened, and reuse the completed result for repeated bug entries within the center.

The public host checker API and custom reminder layouts remain compatible. Hosts can cache results and coalesce requests across center presentations.

Validation: 236 Swift tests, generic iOS package build and Fixture Demo build passed locally and in CI.

PR: #60

FeedbackKit 2.3.3

Choose a tag to compare

@Rabithua Rabithua released this 09 Sep 08:19
7c6b1ee

FeedbackKit now follows the server's current attachment capability when composing feedback.

  • Hide new attachment selection when bootstrap reports an attachment count of zero.
  • Refresh bootstrap before submission. If attachment access has been removed, retain the text and local files, stop uploading, and ask the user to remove the attachments before retrying.
  • Keep removal controls available for existing drafts and restore attachment selection when entitlement returns.
  • Add Free and downgrade scenarios to the Fixture Demo, with localized explanations in all five supported languages.

Validation: 237 Swift tests, the generic iOS package build and the Fixture Demo build passed locally and in PR CI. Free was opened on an iPhone SE simulator; complete removal-button edge/corner interaction validation remains limited by simulator automation failing to scroll the existing sheet.

PR: #59

FeedbackKit 2.3.2

Choose a tag to compare

@Rabithua Rabithua released this 06 Sep 17:27
1023193

This release brings the approved bug-feedback update reminder and MetricKit crash protection together for Rote's next build.

  • Apps can offer an update before bug feedback when a newer App Store version is available. Users can still continue to feedback, and unavailable update checks do not block reporting.
  • The reminder can use the host app's existing sheet template through FeedbackAppUpdateSheetLayout. Real feedback entry and host previews can share the same layout; the SDK no longer adds an opaque background.
  • Refine the reminder with a compact icon, a larger version-and-arrow row, and an accented semibold new version.
  • Retain the MetricKit JSON depth guard: deeply nested diagnostic reports return a redacted marker before recursive Foundation JSON processing can overflow the callback stack.

The bug-feedback checker and diagnostic guard remain included from earlier releases; the changes since 2.3.1 complete the host template integration and accepted version-row styling.

Validation: 235 package tests, generic iOS package build, and Fixture Demo build passed in CI. The release tree matches the final source installed on Huawei Air and accepted by the user. The diagnostic guard also passed Rote's physical-device regression on a 512 KiB callback stack.

PR: #58

2.3.1

Choose a tag to compare

@Rabithua Rabithua released this 06 Sep 17:00
25c9c93
  • Reduce the update reminder icon to 24×24 points while preserving its existing alignment.
  • Show installed and available versions as “old version → new version”, highlighting the new version in the accent color with semibold weight.
  • Include the MetricKit deeply nested diagnostic JSON redaction crash fix previously released in 2.2.2.

2.3.0

Choose a tag to compare

@Rabithua Rabithua released this 06 Sep 16:43
a9ac34b

FeedbackKit can now remind users to update before reporting a bug.

  • Add the optional FeedbackAppUpdateChecking host integration to FeedbackCenterView.
  • Show the installed and latest versions before opening the bug composer, with actions to update or continue reporting.
  • Allow users to bypass a slow check; failed checks preserve normal feedback access, and dismissed checks cannot present stale results.
  • Include a reusable FeedbackAppUpdateSheet with five localizations and native action controls.

Existing integrations retain their current behavior until an update checker is supplied.

Validation: 231 package tests and CI iOS package/Demo builds passed. Rote integration builds and version-comparison tests passed on a physical device.