Skip to content
Open
Show file tree
Hide file tree
Changes from 27 commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
19ad7c2
fix: resolve memory corruption causing SIGSEGV crashes
joalves Jan 19, 2026
5305a3d
fix: resolve functional test failures achieving 100% pass rate
joalves Jan 19, 2026
6a32ac2
fix: address security vulnerabilities and code quality issues
joalves Jan 20, 2026
3223518
feat: add comprehensive test coverage improvements
joalves Jan 27, 2026
21aa8fd
docs: add SwiftUI, UIKit, macOS examples and cancellation patterns to…
joalves Jan 30, 2026
d5e8e17
test: add canonical test parity (~195 → 308 tests)
joalves Feb 6, 2026
4630acc
fix: security fixes, error handling, and code quality improvements
joalves Feb 21, 2026
3f7e1e9
fix: resolve Swift 5.10 Linux test compilation and runtime crashes
joalves Feb 24, 2026
e900fad
fix: correct equality and containment checks in operators
joalves Feb 24, 2026
c4d7060
fix: resolve 18 unit test failures across operators, context, and HTT…
joalves Feb 24, 2026
f5a3c89
docs: restructure README to match standard SDK documentation structure
joalves Feb 24, 2026
d817a8b
fix: stabilize context and operator behavior
joalves Mar 3, 2026
6b798a1
fix: context initialization ordering and operator test improvements
joalves Mar 9, 2026
8f73366
fix: only reset exposed flag on refresh when experiment data changed
joalves Mar 15, 2026
9736a06
feat(swift-sdk): add readyError method
joalves Mar 15, 2026
47b1b06
feat(swift-sdk): add finalize/isFinalized/isFinalizing aliases and st…
joalves Mar 15, 2026
bc9409f
fix(swift-sdk): remove checkReady guards from read methods, return sa…
joalves Mar 16, 2026
212daab
fix(context): keep overridden assignment exposed flag on refresh
joalves Mar 16, 2026
3614301
fix(swift-sdk): standardize error messages in Context
joalves Mar 16, 2026
be280d6
feat: cross-SDK consistency fixes — all 201 scenarios passing
joalves Mar 17, 2026
7b7fb36
refactor: rename ContextEventHandler to ContextPublisher
joalves Mar 18, 2026
536b853
fix: address coderabbit review issues
joalves Mar 18, 2026
583ad0f
fix: restore promiseLock declaration removed by review
joalves Mar 18, 2026
0d7c3f9
fix(jsonexpr): restore haystack-first IN operator (CONTAINS semantics)
joalves Jun 15, 2026
2f50e8e
fix(jsonexpr): eq(null, null) returns null (canonical null-operand ha…
joalves Jun 16, 2026
5cbd783
test: binary ops return null for null operands (canonical handling)
joalves Jun 17, 2026
5bac787
test: add canonical astral/multibyte hashUnit regression test
joalves Jun 17, 2026
955a1a3
test: add hermetic local-HTTP integration test + CI workflow
joalves Jun 25, 2026
aff131c
fix: coerce numeric 0/1 to Int in JSON custom fields, run publish rec…
joalves Jul 14, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 16 additions & 15 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,20 +1,21 @@
.DS_Store
.vscode/
.idea/
build/

*.pbxuser
!default.pbxuser
xcuserdata/

*.xcuserstate
*.xcscmblueprint

*.hmap
*.ipa
*.dSYM.zip
*.dSYM

.build
.claude/
.DS_Store
.idea/
.swiftpm
.vscode/
*.dSYM
*.dSYM.zip
*.hmap
*.ipa
*.pbxuser
*.xcscmblueprint
*.xcuserstate
AUDIT_REPORT.md
build/
COMPLETION_SUMMARY.md
FIXES_IMPLEMENTED.md
Packages
xcuserdata/
9 changes: 5 additions & 4 deletions Example/Example/ViewController.swift
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import UIKit

class ViewController: UIViewController {
private let button = UIButton()
private var sdk: ABSmartlySDK?
private var sdk: ABsmartlySDK?
private var context: Context!

override func viewDidLoad() {
Expand Down Expand Up @@ -48,17 +48,18 @@ class ViewController: UIViewController {
do {
let client = try DefaultClient(config: clientConfig)

let sdkConfig = ABSmartlyConfig(client: client)
sdk = try ABSmartlySDK(config: sdkConfig)
let sdkConfig = ABsmartlyConfig(client: client)
sdk = try ABsmartlySDK(config: sdkConfig)
} catch {
print(error.localizedDescription)
return
}

let contextConfig = ContextConfig()
contextConfig.refreshInterval = 5
let deviceId = UIDevice.current.identifierForVendor?.uuidString ?? UUID().uuidString
contextConfig.setUnit(
unitType: "anonymous_id", uid: UIDevice.current.identifierForVendor!.uuidString + "1")
unitType: "anonymous_id", uid: deviceId + "1")

self.button.addTarget(self, action: #selector(click), for: .touchUpInside)

Expand Down
18 changes: 18 additions & 0 deletions Package.resolved

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

12 changes: 9 additions & 3 deletions Package.swift
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// swift-tools-version:5.3
// swift-tools-version:5.6
import PackageDescription

let package = Package(
Expand All @@ -17,12 +17,18 @@ let package = Package(
dependencies: [
.package(url: "https://github.com/apple/swift-atomics.git", .upToNextMajor(from: "1.0.2")),
.package(url: "https://github.com/mxcl/PromiseKit.git", .upToNextMajor(from: "6.8.4")),
.package(url: "https://github.com/SwiftyJSON/SwiftyJSON.git", .upToNextMajor(from: "5.0.0"))
.package(url: "https://github.com/SwiftyJSON/SwiftyJSON.git", .upToNextMajor(from: "5.0.0")),
.package(url: "https://github.com/apple/swift-crypto.git", .upToNextMajor(from: "3.0.0"))
],
targets: [
.target(
name: "ABSmartly",
dependencies: [.product(name: "Atomics", package: "swift-atomics"), "PromiseKit", "SwiftyJSON"],
dependencies: [
.product(name: "Atomics", package: "swift-atomics"),
"PromiseKit",
"SwiftyJSON",
.product(name: "Crypto", package: "swift-crypto")
],
Comment thread
coderabbitai[bot] marked this conversation as resolved.
path: "Sources/ABSmartly"),
.testTarget(
name: "ABSmartlyTests",
Expand Down
Loading