Skip to content

Daylily 0.1.0-alpha.3

Pre-release
Pre-release

Choose a tag to compare

@sinduke sinduke released this 26 Sep 04:15
· 10 commits to main since this release

Daylily 0.1.0-alpha.3 publishes the operational-readiness increment after alpha.2. Public APIs remain experimental. Requires Swift 6.3+; validation uses Swift 6.3.2 on macOS and Linux.

What's new

  • Configurable complete-request-header and upload-idle deadlines, with upload timing paused during framework backpressure.
  • Bounded graceful shutdown: stop acceptance, close idle connections, let active responses finish, then close remaining connections at the grace deadline. Task cancellation remains the immediate force-stop path.
  • Optional terminal response-transfer observation with completed/cancelled/failed outcome, flushed body-byte count, transmission duration and request context. Includes in-memory, console and SwiftLog adapters, wired through Application and ServiceLifecycle entry points.
  • Reproducible two-replica Linux/Caddy API and SSE deployment trial covering disconnect, slow peers, post-header failure and rolling restart.
  • Directional OpenAPI compatibility checks, actual old/new generated-client HTTP regressions and retained evidence from six fixed AI-edit trials.

Upgrade behavior

Existing normal startup calls remain source-compatible, but their defaults change: 15 seconds for a complete request head, 30 seconds for upload idle, and 10 seconds for graceful drain. Header/upload durations must be positive, or use nil to disable. Grace accepts .zero for immediate close and nil for unlimited draining.

Inbound timers do not cap handler execution or outgoing SSE lifetime. Shutdown grace bounds transport draining, not arbitrary application cleanup; application cancellation remains cooperative. Observers run asynchronously outside event loops and delivery is best effort at process exit. Flushed bytes do not prove peer consumption; applications own durable telemetry export.

See the alpha.3 migration guide, operational guide, and changelog.

Validation and limits

The operational candidate passed nine CI jobs, including 65 Swift tests and 29 compatibility checks on each platform. The local Linux/Caddy trial ran for 300 seconds with 31,382 successful requests and zero failures; the clean Linux amd64 CI trial independently passed. Six narrow, open-test AI edits passed acceptance; those results are not a general model benchmark. Release preparation cfa835792cca3cce614999ddc7adca290015a801 passed all nine CI jobs, including the expanded external operational API checks. Exact-tag validation passed all 11 jobs. Ten downloaded resolver files across macOS/Linux consumer, template, commerce, OpenAPI and contract packages all pin 0.1.0-alpha.3 to cfa835792cca3cce614999ddc7adca290015a801. Each release platform passed eight external consumer tests (including all four observer-enabled server entry points) and all four actual generated-client HTTP contract scenarios. See current release verification for the maintained record.

This remains an HTTP/1.1 alpha: no native TLS/HTTP2, public-cloud certification, durable jobs, ORM or managed authentication. The measured container trial is not an overnight soak or production capacity benchmark.

.package(url: "https://github.com/sinduke/Daylily.git", exact: "0.1.0-alpha.3")