Skip to content

v0.8.0

Choose a tag to compare

@nerdv2 nerdv2 released this 18 Sep 13:37
· 37 commits to master since this release
Immutable release. Only release title and notes can be modified.
4fe29cb

Added

  • Add explicit connection lifecycle inspection (isClosed(), isReusable())
    and terminal discard() for application-owned recovery, with stale-query,
    cursor, and managed-transaction safeguards and no automatic reconnect or replay.
  • Add normalized ConnectionException evidence (operation, sqlState,
    driverCode, driver, connectionLabel) for connection construction
    failures and closed/compiler-only misuse, without retaining the raw
    PDOException, driver message, or trace.
  • Add an executable framework-free worker request lifecycle example with
    lazy per-role acquisition, pinned owners, monotonic idle boundaries, session
    initialization and restoration, eviction isolation, bounded counters, and
    finally cleanup.
  • Add a direct MariaDB/MySQL session-hygiene probe covering session-scoped
    statement limits, functional restoration, replacement reinitialization, idle
    and lock inputs, observation boundaries, and acquisition cost.

Changed

  • Normalize missing or malformed PDO errorInfo and integer exception codes
    consistently for connection construction and query execution failures, and
    mark the Connection::connect() DSN parameter #[SensitiveParameter].
  • Document the framework-free worker recipe and FrankenPHP worker-loop mapping,
    session initialization and restoration, engine-specific timeout boundaries,
    per-role eviction, and application-owned lifecycle counters.
  • Record the 0.8 lifecycle observation decision: lifecycle counters remain
    application-owned and no lifecycle observer is added.
  • Validate min()/max() scalar returns and declare int|float|string|null,
    aligning them with sum()/average(); an unsupported driver scalar now
    throws QueryExecutionException and ADR-006 records the amendment.
  • Document demonstrated write-interoperability pitfalls with executable
    fixtures and a direct-engine probe: raw vendor upsert and ignored-duplicate
    generated-ID behavior, boolean adapter ambiguity, chunk atomicity, and
    duplicate-submission reconciliation.
  • Record the D5 decision to retain the transaction ownership guard and
    inspection cost, with controlled control-count tests, direct-engine component
    timings, and a paired v0.7.0 comparison (ADR-008 amended).