Tags

Tags give the ability to mark specific points in history as being important
  • v0.6.0

    v0.6.0
    
    Ingest awaitables ride django-vcache 3.1's async bridge
    (BridgeValue::Custom) — hand-rolled IngestAwaitable deleted; cancel is
    Python-side only (no abort: dedupe-SETNX + pg BEGIN-window hazards,
    abort-safety is Phase 4). Live-service seam tests for IngestSession
    (postgres+valkey CI services). gt-symbolic: symbolic 13.9 bindings
    (Archive/SymCache/ProguardMapper/SourceMapCache, demangle,
    normalize_debug_id, parse_addr) with panic landingpad and
    decompression bounds.
  • v0.5.0

    v0.5.0
    
    django-vcache 3.0.0 on the shared gt-runtime pool (GIL-free completion
    pipe, blocking-connection pool, real cancellation, sentinel hardening);
    GT_TOKIO_WORKER_THREADS sizing knob; envelope max_items count cap +
    deflate zlib/raw sniff; streaming EnvelopeReader; ingest pipeline merged
    but mothballed (not enabled anywhere); postgres pool-lifetime/COPY line.
  • v0.4.0

    v0.4.0 — COPY FROM STDIN, psycopg-parity diagnostics, C-API marshalling
    
    - COPY ... FROM STDIN write path (session-aware start, bounded chunk
      streaming, abort-on-drop) with psycopg-shaped sync/async cursor.copy()
      context managers, plus write_rows(): batch encoding in Rust that meets
      (logs) or beats (~2.6x, event payloads) psycopg's C Transformer on CPU
      per batch.
    - Structured server error diagnostics: every DB-API error carries
      psycopg-parity .sqlstate and .diag (18 Diagnostics fields), enabling
      driver-agnostic conflict handling in glitchtip's ingest fallbacks.
    - C-API value marshalling: uuid read cells built without the pure-Python
      hex parse (0.56x psycopg CPU), datetime/date/uuid params read via
      PyDateTime C API / uuid.int (no isoformat/str round-trips), exact-type
      fast paths ahead of the param ladder.
    - Lossless NUMERIC params: binary NUMERIC encoded from str(Decimal) —
      arbitrary precision, display scale, NaN/±Infinity, fuzz-verified
      against psycopg; huge-exponent Decimals are a clean DataError instead
      of an unbounded allocation.
    - Awaited result sets release in the same event-loop step (multi-consumer
      futures detected via done-callback count keep the value). Deliberate
      asyncio.Future deviation: result() after a sole plain await raises
      InvalidStateError.
    - Connection buffer cap (write buffers shrink after oversized batches);
      pool max_lifetime psycopg-parity fix.
    - prepared-statement JSON decode contract, orjson-shared COPY JSON
      serializer, escape fast paths.
  • v0.3.1

    v0.3.1 — verify-ca hostname drop-in fix
    
    Tolerate rustls 0.23 NotValidForNameContext under sslmode=verify-ca so the
    Rust Postgres driver matches libpq/psycopg semantics (CA chain checked,
    hostname not) — fixes connecting through a pooler whose serving cert is
    issued for the cluster service names.
  • v0.3.0

    v0.3.0 — Rust Postgres driver surface (gt_rust.django_backend, sync + async)
  • v0.2.1

    Release v0.2.1: bound attacker-declared item length (DoS fix) + hardening
  • v0.2.0

    Release v0.2.0: generic decompress() primitive
  • v0.1.0

    glitchtip-rust v0.1.0 — first release (valkey driver + envelope reader)