Releases: kylebegeman/comet
Releases · kylebegeman/comet
Release list
Comet 0.4.4
Added
URLSessionTransportnow importsFoundationNetworkingwhere available, so the coreComettarget can build and run live HTTP requests on server-side Swift.- CI now builds the core
Comettarget in a Swift 6.2 Linux container.
Changed
URLSessionTransport.streamkeeps true incremental streaming on Apple platforms and emits buffered stream events on server Swift builds.- Server transport docs now mark HTTP live transport as supported and keep
URLSessionWebSocketTransportscoped to Apple platforms.
Comet 0.4.3
Added
- OpenAPI reusable component references now resolve for parameters, request bodies, and responses.
- OpenAPI request generation now covers JSON bodies without schemas, plain-text bodies, form URL-encoded bodies, and multipart form-data bodies backed by
HTTPBody.multipartFormData. - OpenAPI error responses now generate typed JSON, string, or raw data serializers from the declared response content.
- OpenAPI schema generation now covers free-form
additionalPropertiesdictionaries throughCometOpenAPIJSONValueandoneOforanyOfunion enums. - OpenAPI discriminator metadata now generates discriminator-aware decoding for component union schemas.
- OpenAPI security requirements now populate generated request metadata tags.
HTTPBody.MultipartPartandHTTPBody.multipartFormDatafor constructing multipart form-data requests.- Stale-while-revalidate background refreshes now emit request lifecycle activity and completed
RequestTracevalues for refresh successes and failures.
Changed
- Generated Swift type names now preserve uppercase acronym words in component and operation names.
Comet 0.4.2
Patch release for expanded OpenAPI schema model generation.
Added
- OpenAPI component schemas can now alias local component
$refs. - Component object properties with inline object schemas now generate nested Swift structs.
- Arrays whose items are inline object schemas now generate nested
Itemstructs.
Fixed
- Local schema
$reflookup now preserves raw OpenAPI component keys before generating Swift type names, so references such as#/components/schemas/pet-aliasresolve correctly.
Verification
git diff --checkswift test --disable-xctest.github/scripts/check-api-breaking-changes.sh v0.4.1
Comet 0.4.0
Comet 0.4.0 expands the V3 foundation with schema-aware OpenAPI generation, YAML input, optional SQLiteData persistence, TCA playground coverage, and cache and middleware hardening.
Breaking change:
- CometTCA request effects now use the public
Effect<Action>return type instead of the underscored_Effect<Action>spelling.
Highlights:
- Schema-aware OpenAPI generation for component models, local
$refs, typed JSON success serializers, and typed error-response hooks. - YAML OpenAPI input support through Yams.
- New
CometSQLiteDataproduct for persisted activity events and generated artifacts. - Playground saved activity history and reducer-backed TCA demo flows.
- Cache, streaming, middleware, authentication, and WebSocket hardening.
Validation:
swift test --disable-xctest.github/scripts/check-api-breaking-changes.shafter taggingv0.4.0.github/scripts/fresh-client-smoke.sh- XcodeBuildMCP simulator smoke for
CometPlaygroundApp, 5 tests passed on iPhone 16 Pro, iOS 18.5
Comet 0.3.0
Added
0.3.0release train plan in Markdown and static HTML, with patch milestones from0.2.xthrough the final minor release.- Fresh external client smoke script for validating package adoption outside this repository.
TraceContextandTracePropagationMiddlewarefor W3Ctraceparentpropagation.- Propagated trace IDs on
RequestMetadataand completedRequestTracevalues. - Playground raw-response proof that shows the outbound trace header in mock mode.
HTTPCachePolicy,HTTPCacheKey,CachedHTTPResponse,HTTPCacheStore, andMemoryHTTPCacheStore.HTTPCacheControlandHTTPCacheMetadatafor typedCache-Control,Expires,ETag, andLast-Modifiedparsing.CacheMiddlewarefor opt-in safe-method response caching.- HTTP cache revalidation with conditional
If-None-MatchandIf-Modified-Sincerequests,304 Not Modifiedmerge behavior, and replacement storage for refreshed200responses. - Cache-only, network-only, return-cache-else-load, reload-ignoring-cache, and revalidate request policies.
- Cache hit, miss, bypass, stale, revalidate, update, store, and skipped-store events on completed
RequestTracevalues. FileHTTPCacheStoreandFileHTTPCacheStoreConfigurationfor namespace-isolated persistent cache entries with size limits, oldest-entry pruning, and corrupted-entry cleanup.- Stale-if-error cache fallback through
HTTPCachePolicy(allowsStaleIfError:). - Playground cache lab scenario covering first load, fresh cache hit, stale revalidation, offline stale fallback, and clear cache.
ContractExpectation,ContractTransport,ContractReport, andMockServerfor strict request contract testing and JSON report export.- Cassette-to-contract conversion for turning recorded fixtures into strict transport expectations.
CometOpenAPIGeneratorandcomet-openapi-generatefor dependency-free JSON OpenAPI request generation.ReachabilitySnapshot,ReachabilityHintProvider, andStaticReachabilityHintProviderfor app-owned reachability hints.CometRequestStatefor lightweight TCA request loading, value, and failure state.- Playground contract server scenario covering strict expectation matching and clean contract reports.
Changed
- Playground test target now links
HTTPTypesdirectly to match the app target and reduce Xcode dependency-scan ambiguity.
v0.2.0
Added
- Playground response viewer snapshots for demo output, HTTP metadata, failure bodies, and socket transcript results.
- Playground socket monitor snapshots for realtime frames, transports, subprotocols, and close codes.
- Playground cassette viewer exports deterministic mock HTTP scenarios as
CometTestingcassette JSON. WebSocketConnection.messages()for consuming socket frames as anAsyncThrowingStream.- Playground trace timeline panels group request and socket activity by demo.
- Playground cassette replay verification checks exported mock cassettes with
ReplayTransport. HTTPClient.tracesemits completedRequestTracevalues with attempts, retry delays, timings, bytes, metadata, and final outcomes.AuthenticationCoordinatorandAuthenticationMiddlewareprovide token reads, refresh de-duplication, and safe 401 replay.- Streaming and transfer primitives with
HTTPClient.stream,HTTPClient.lines,HTTPClient.serverSentEvents,HTTPStreamingTransport, and progress-awaresendRaw. WebSocketSessionadds a resilient actor wrapper with lifecycle events, message streams, and bounded reconnect attempts.
Comet 0.1.5
Added
- Typed API error decoding with
ErrorResponseSerializer,APIRequestWithErrorResponse,APIClientError, andHTTPClient.sendWithTypedErrors. - cURL command options for pretty-printed JSON request bodies and configurable verbose logging output.
- A CI API stability gate that fails on public API breaks against the latest release tag.
- DocC workflow tutorials for authenticated JSON, retries and activity, typed errors, testing and cassettes, WebSockets, and TCA integration.
- Playground failure-gallery scenarios for timeout, 401 typed errors, 429 retry, 500 errors, malformed JSON, cancellation, and WebSocket close diagnostics.
HTTPClient.prepare(_:)plus playground request inspectors and structured activity detail screens.
Comet 0.1.4
Added
- Query item helpers for optional values, boolean flags, repeated items, joined collections, and date encodings.
- Diagnostic computed properties on NetworkEvent for event kind, metadata, status, duration, retry details, and summaries.
- cURL command formatting styles for multiline and compact output.
Changed
- QueryItemsBuilder now accepts arrays of optional query items and drops absent values.
Verification
- swift test
- git diff --check
- swift package diagnose-api-breaking-changes v0.1.3
Comet 0.1.3
Patch release on the 0.1.x public-prep line.
Highlights:
- Adds a real Comet app icon set to the iOS playground.
- Restores the XcodeGen app icon compiler setting to AppIcon.
- Updates README, contribution docs, and brand asset notes for the 0.1.3 patch line.
Validation:
- swift package clean, then swift test
- swift package diagnose-api-breaking-changes v0.1.2
- iOS playground smoke tests on iPhone 16 Pro simulator
- git diff --check
- Public docs punctuation scan
- Secret-pattern scan reviewed with only expected docs, test, and redaction references
Comet 0.1.2
Patch release on the 0.1.x public-prep line.
Highlights:
- Adds first-party SVG brand assets under Resources/Brand.
- Refreshes the README with the Comet mark, badges, clearer package positioning, and 0.1.2 install instructions.
- Adds the Comet gradient icon to the playground app through an asset catalog.
- Updates playground and architecture docs to reference the brand assets and current layout.
Validation:
- swift test
- swift package diagnose-api-breaking-changes v0.1.1
- iOS playground smoke tests on iPhone 16 Pro simulator
- Playground app launch and screenshot inspection
- git diff --check
- Public docs punctuation scan
- Secret-pattern scan reviewed with only expected docs, test, and redaction references