Skip to content

v2.0 - #23

Merged
maxches99 merged 4 commits into
mainfrom
v2.0
Jul 14, 2026
Merged

v2.0#23
maxches99 merged 4 commits into
mainfrom
v2.0

Conversation

@maxches99

Copy link
Copy Markdown
Owner

Summary

  • What changed:
    • Added typed Endpoint<Response> and AnyEndpoint<Response> APIs.
    • Completed Swift 6 strict-concurrency audit and removed unchecked NetworkClient conformance.
    • Reworked loadBatch into bounded concurrent execution with stable ordering and collecting mode.
    • Added incremental streaming and native upload/download APIs with progress and cancellation.
    • Added single-flight HTTP Auth Refresh Coordinator.
    • Added the standalone cross-platform NovaNetworkCore product.
    • Added HTTP Cache 2.0: ETag/Last-Modified revalidation, corrected age, request directives, stale-if-error, and safe Vary: * handling.
    • Added Swift 6.3 compatibility CI.
    • Fixed a WebSocket ping() double-continuation crash discovered by real-API E2E testing.
  • Why:
    • Establish a safer, typed, modular networking architecture for the v2.0 release.
    • Improve concurrency, transfer scalability, authentication recovery, cache correctness, and cross-platform reuse while preserving existing umbrella APIs.

DFR

  • DFR link: docs/dfr/NOVA_NETWORK_V2_DFR.md
  • Requirement IDs implemented:
    • FR-CONC-1...3
    • FR-END-1...3
    • FR-BATCH-1...4
    • FR-XFER-1...4
    • FR-AUTH-1...4
    • FR-MOD-1...2
    • FR-CACHE-1...5
    • UR-1...4
    • DR-1...4
    • AR-1...4
    • NFR-1...7
    • EC-1...10

Traceability

Requirement ID | Code/tests reference -- | -- FR-CONC-1...3 | RequestCoalescer.swift, NetworkClient.swift, NetworkClientEventHubs.swift, ConcurrencySafetyTests.swift FR-END-1...3 | Sources/NovaNetworkCore/Endpoint.swift, NetworkClient+Endpoint.swift, EndpointTests.swift FR-BATCH-1...4, AR-1 | BatchTypes.swift, NetworkClient+Batch.swift, BatchExecutionTests.swift FR-XFER-1...4, AR-2 | TransferTypes.swift, Transport+Transfers.swift, NetworkClient+Transfers.swift, TransferTests.swift FR-AUTH-1...4, AR-3 | HTTPAuthRefresh.swift, NetworkClient+HTTPAuthRefresh.swift, HTTPAuthRefreshTests.swift FR-MOD-1...2 | Package.swift, Sources/NovaNetworkCore/, NovaNetworkCoreExports.swift, NovaNetworkCoreTests.swift FR-CACHE-1...5, DR-4, AR-4 | Cache implementations, NetworkClient+CacheInternals.swift, HTTPCacheV2Tests.swift NFR-7 | Tests/NovaNetworkClientTests/E2E/E2ECoverageTests+V2.swift Test matrix link/path | docs/TRACEABILITY_PACK_v2.0.md and section 8 of the DFR

Analytics Verification

  • New/updated analytics requirements are implemented (AR-*)
  • Event triggers validated
  • Payload schema/properties validated
  • Negative path verified (no false success events)
  • Evidence:
    • BatchExecutionTests.swift
    • TransferTests.swift
    • HTTPAuthRefreshTests.swift
    • HTTPCacheV2Tests.swift
    • E2ECoverageTests+V2.swift
    • docs/TRACEABILITY_PACK_v2.0.md

QA Sign-off

  • QA owner: TBD
  • Sign-off date: TBD
  • Evidence links:
    • Local unit/integration result: 271 tests passed.
    • Local real-public-API E2E result: 31 tests passed.
    • Combined source line coverage: 92.59%.
    • Swift 6.3 CI verification: pending branch push and CI execution.

Coverage

  • Unit test coverage (%): 92.59%
  • Coverage is above 90%
  • E2E suite executed with RUN_E2E_TESTS=1 swift test --filter E2ECoverageTests
  • E2E tests use real public APIs only (no mocks/stubs/fake transports)

Release Notes ("What's New")

  • Added or updated
  • File/path: docs/WHATS_NEW_v2.0.md
  • User-facing impact summary:
    • Introduces typed endpoints, bounded concurrent batching, native transfers, automatic auth refresh, modular Core, and standards-aware HTTP caching.
    • Existing raw APIRequest and import NovaNetworkClient workflows remain supported.

Rollout

  • Feature flag: Not required; new APIs are opt-in. Existing loadBatch retains its API but now executes concurrently.
  • Initial rollout percentage: 100% for v2.0 adopters.
  • Target segments:
    • Typed endpoint adopters.
    • High-throughput batch consumers.
    • Applications requiring streaming or file transfers.
    • Authenticated API clients.
    • Shared-model and cross-platform Core consumers.
    • Applications using HTTP response caching.
  • Monitoring/alerts:
    • Batch success/failure/cancellation telemetry.
    • Transfer completion/failure/cancellation telemetry.
    • Auth refresh success/failure and waiter counts.
    • Cache revalidation and stale-if-error events.
    • Existing retry, circuit-breaker, coalescer, and queue metrics.
  • Rollback plan:
    • Pin consumers to the latest v1.19 release.
    • Stop the v2.0 rollout if CI, concurrency, cache-integrity, auth-loop, or transfer-integrity regressions appear.
    • Preserve existing raw request APIs to allow feature-level rollback without application-wide migration.

Checklist

  • Product compliance checked against DFR
  • Engineering quality reviewed (architecture/readability/testability/performance)
  • No undocumented behavior changes

@maxches99
maxches99 merged commit 66707fc into main Jul 14, 2026
2 checks passed
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