Skip to content

Releases: hayek/HelpView

1.3.0

20 Feb 10:16

Choose a tag to compare

Comprehensive code audit fixes and test coverage improvements

- Fix search race condition with task cancellation and query validation
- Create fresh AI session per query to prevent conversation history accumulation
- Fall back to text-based search when AI generation fails (model not downloaded)
- Replace NSError with typed AIHelperError enum (LocalizedError)
- Add bundle parameter to public API for app extension support
- Add visionOS platform support to all #if os() checks
- Fix clipboard copy on visionOS, cancel feedback task on disappear
- Replace print() with os.Logger throughout FAQLoader
- Change FAQLoader from class to enum, deduplicate load() logic
- Use stable Topic.id derived from title instead of random UUID
- Cache markdown parsing in @State, fix duplicate MarkdownBlock IDs
- Cache all syntax highlighter regex as static properties
- Extract common highlightWithRegex helper (~150 lines reduced)
- Fix isLoadingAI not reset in clearSearch() and on task cancellation
- Fix sorting comparator strict weak ordering violation
- Add accessibility labels to expand/collapse and copy buttons
- Mark public struct properties as private, document CodingKeys
- Filter single-char search terms, use proper substring counting
- Add 29 new tests (72 -> 101): localization, markdown parsing,
  malformed data, FAQCollection topics, search edge cases

1.2.0

25 Dec 11:41

Choose a tag to compare

Localization Support

HelpView now supports full localization of FAQ content using Xcode String Catalogs (.xcstrings).

New Features

FAQ Content Localization

  • Add optional key field to FAQs for stable translation keys
  • Translations use pattern: faq.{key}.title, faq.{key}.details, topic.{slug}
  • Missing translations automatically fall back to inline English text
  • Works with both JSON and plist FAQ formats

Custom Localization Files

  • New localization parameter on HelpViewButton and HelpContentView
  • Specify a custom .xcstrings file instead of default Localizable.xcstrings

// Default
HelpViewButton(named: "app_help")

// Custom localization file
HelpViewButton(named: "app_help", localization: "HelpStrings")

Pre-translated SDK UI

  • 9 UI strings (search placeholders, buttons, labels) translated into 31 languages
  • Languages: Arabic, Chinese (Simplified/Traditional), Czech, Danish, Dutch, English, Finnish, French, German, Greek, Hebrew, Hindi, Hungarian, Indonesian, Italian, Japanese, Korean, Malay, Norwegian, Polish, Portuguese (BR/PT), Romanian, Russian, Spanish, Swedish, Thai, Turkish, Ukrainian, Vietnamese

Example App

  • Added Arabic and French translations demonstrating localization workflow

Migration

No breaking changes. Existing integrations work without modification. To add localization:

  1. Add key field to FAQs you want to translate
  2. Create translations in your .xcstrings file
  3. FAQs without keys continue to display inline English text

1.1.0

30 Nov 09:43

Choose a tag to compare

Vision OS support

1.0.0

14 Oct 12:17
a94304c

Choose a tag to compare

Update README.md

0.2

13 Oct 09:20
36ebd41

Choose a tag to compare

0.2
Update README.md

0.1

11 Oct 16:36

Choose a tag to compare

0.1
ui fix