CHANGELOG
Shipping log
What we built, when we built it. Newest first. Material breaking changes are flagged in bold.
July 2026 · The Access Centre
- App settings are scriptable.
tilldev auth apps updatechanges MFA enforcement, unverified-sign-in, redirect origins and the rest from CI or a setup script — the settings that previously existed only in the dashboard. Partial by design: flags you omit keep their value, and the same policy guards apply (a change that would strand users is refused with a count). - Duplicate sign-ups are no longer a dead end. Signing up with an address that already has an account still returns a deliberately non-enumerating response — but the address's real owner now gets an “you already have an account” email pointing at sign-in and password reset (throttled, and customisable like every other TillAuth email).
- Hash-preserving user migration for TillAuth. Bring an existing user base over without forcing a single password reset: SCIM
POST /Usersand a new bulk/admin/apps/<id>/users/importendpoint accept legacy bcrypt and pbkdf2 hashes verbatim, sign-in verifies against them, and each user is transparently upgraded to Argon2id on their first successful sign-in. Provisioning guide → Migration. - Per-member access grants across every product. Inviting or editing a developer/viewer now scopes them to specific TillAuth apps, Forge repositories, projects (Pulse & Shield), cache namespaces and secrets projects — one grant model, per-product default-allow, enforced live on lists and detail routes. Members and API tokens now speak the same resource vocabulary.
- Shield edge-key provisioning made legible: the API, CLI and README now say the key binds to a Pulse project and show the zero-to-key commands.
- Fixed: freshly created projects could render their DSN against a development ingest host. DSNs are re-rendered per read, so existing projects self-corrected with no rotation.
July 2026 · Identity pipeline + the API platform
- TillAuth end-user API published as OpenAPI 3.1 —
auth.tilldev.dev/openapi.json, asserted against the live route table in CI so it cannot drift. New guides: API reference, embedded account settings, Workers + edge verification. - Credential pipeline: password-less accounts set a first password from a signed-in session; hosted
/securityis one truthful ledger (passwords, passkeys incl. counter-lock unlock, TOTP + backup-code count); removals that would strand an account are refused with the reason stated. - Platform API tokens, Cloudflare-style:
product.resource.actionscopes, resource pinning, IP conditions, expiry, live creator cap, andGET /api/tokens/verify. TillAuth admin surface enforces scopes first; more products follow. - TillShield inline WAF: Workers wiring guide + stale-while-revalidate config refresh — a control-plane outage now costs zero request latency after first fetch.
- TillForge device flow returns you to the approval screen after login; TillSecrets docs teach deploy-time injection (never a vault call on your hot path).
v1.0 — May 2026 · Public launch
- Public landing site, documentation, legal pages, and SEO.
- Visual redesign — warm dark palette, Instrument Serif display, single signal accent.
- Cloudflare Pages deployment guide and CI/CD recipe.
- Status: production.
April 2026 · Phase 9 visual redesign
- New design tokens —
--tp-*custom properties,--tp-signal #FF4A1C,--tp-void #05070a. - New pages: Alerts (fired + rules), Ask Pulse multi-turn chat, Field Map (D3-geo globe), Releases / Compare, TillMind hypothesis cards.
- OpenRouter SSE streaming for Ask Pulse.
April 2026 · Phase 8 capability fill
- App-start cold/warm timing + frame jank (slow >16.67ms / frozen >700ms) — native iOS (CADisplayLink) + Android (Choreographer) for both RN and Flutter.
- Cross-customer threat intel (privacy-preserving hashed indicators only).
- SSO via OIDC with PKCE; per-org issuer + JIT user creation.
- Linear + Jira integrations, two-way status sync, signed webhook receivers.
- CLI
tillpulse— login, releases, source-maps, ProGuard, dSYM. - Mobile companion app (Expo Router) for triage on the go.
March 2026 · Phase 7 ops
- Resend-backed branded email alerts.
critical_pathalert trigger with glob matching.- Multi-region routing — projects pin to
af-south-1 | eu-central-1 | us-east-1; processor readsPROCESSOR_REGION. - Devices & Security pages.
- Battery per-screen attribution.
- PagerDuty + MS Teams alert action types.
- Root / jailbreak detection on RN + Flutter.
- Android overlay-attack detection.
- NLQ via Claude with SELECT-only, table allow-list, project filter injected server-side.
- Breaking: event ingest stream partitioned by region; older events drained during migration.
February 2026 · Phase 6 integrations
- Slack interactive — Resolve / Ignore / View buttons on alert messages with JWT-signed payloads and signature-verified handler.
- Symbols upload UI (JS source maps / ProGuard / dSYM tabs in settings).
- GitHub repo + webhook secret management UI.
- Release-health refresh worker — pre-computed crash-free %, A–F grading.
January 2026 · Phase 5 deeper symbols
- ProGuard / R8 mapping parser — pure-JS, multi-entry resolution.
- iOS dSYM upload + LC_UUID extraction (thin + fat Mach-O).
- GitHub webhook receiver — signature-verified, push events upsert
commitswithfiles_changed. - Best-effort blame heuristic to populate
issues.git_blame_owner. - First-run onboarding wizard — five steps, polls for first event.
December 2025 · Phase 4 native
- Native crash handlers on iOS (NSSetUncaughtExceptionHandler) and Android (Thread.setDefaultUncaughtExceptionHandler) for both RN and Flutter SDKs.
- OOM heuristic — alive-marker on init, cleared on graceful close, drains pending native crashes on next launch.
- Release tracking — idempotent upsert, dashboard page, sidebar nav.
- Issue assignment + threaded comments.
November 2025 · Phase 3 performance + search
- Performance tracking — transactions, spans, sample rate, p50/p95/p99 dashboard.
- Meilisearch-backed full-text issue search with graceful offline fallback.
November 2025 · Phase 2 AI & symbols
- TillMind AI — a routed inference provider with adaptive thinking + JSON-schema structured output, fired on new issues + regressions.
- JS source-map symbolication — 50MB cap, source-map@0.7 SourceMapConsumer, per-release LRU cache.
- MaxMind GeoLite2 lazy-loaded geo enrichment.
- Resend-backed invite + password reset flow with single-use sha256-hashed tokens.
- Flutter SDK — full federated plugin, mirrors RN feature set in idiomatic Dart.
October 2025 · Phase 1 — public alpha
- Fastify ingest API on :3001 with DSN auth, sliding-window rate limit, PII scrub.
- Event processor — durable stream processing, fingerprinting, ClickHouse insert, alert evaluation, dead-letter handling on repeated failure.
@tillstack/react-nativeSDK with offline queue, breadcrumbs, friction detection,beforeSendhook.- Next.js 15 dashboard — overview, issues, alerts, settings.
- Auth: hardened password hashing + signed access tokens + refresh-token rotation.
Want a deeper look at the architecture? See the docs.