Releases
v0.96.1
Compare
Sorry, something went wrong.
No results found
[0.96.1] — 2026-03-11
Bug Fixes
core: Correct git-cliff archive path in release workflows
core: Use find to locate git-cliff binary after extraction
core: Restrict valid? to country-based timezones to prevent UTC fallback showing first list entry
Features
core: Add GitHub release workflows and cliff.toml
[0.99.22] — 2026-03-11
Bug Fixes
core: Show theme background in embedded Rhythm iframes
core: Fix timezone dropdown positioning in embedded iframes
core: Use fixed height on iframe wrapper instead of minHeight
Features
core: Display version number in site footer
core: Rewrite session cookie to SameSite=None for cross-site iframes
[0.99.21] — 2026-03-10
Bug Fixes
core: Correct build-docker.sh to operate within apps/tymeslot/
[0.99.20] — 2026-03-10
Features
core: Log Cloudron addon detection at startup
core: Auto-detect Cloudron OIDC addon in runtime config
core: Auto-detect Cloudron sendmail addon in runtime config
core: Add CloudronConfig module for sendmail addon
core: Declare OIDC addon in Cloudron manifest
core: Declare sendmail addon in Cloudron manifest
[0.99.19] — 2026-03-10
Bug Fixes
core: Stop sanitizing calendar integration passwords
core: Prevent integration passwords from leaking into debug logs
[0.99.18] — 2026-03-10
Bug Fixes
core: Update embed pipeline integration test for dev/test localhost behaviour
core: Allow localhost embedding in dev/test without configuring allowed domains
Features
core: Add iframe embedding, weekly calendar view, and shared scheduling init
core: Add canonical URL tag and current_url/1 layout helper
[0.99.17] — 2026-03-06
Bug Fixes
core: Address code quality issues in Telegram integration
core: Address code review issues in Telegram integration
core: Skip calendar deletion for unlinked meetings and fix resolve_client fallback
core: Resolve confirmation page overflow in rhythm theme
core: Pass attendee_locale through ContentBuilder for cancellation and reschedule emails
Features
core: Add Telegram notification integration
core: Add Credo check for hand-rolled modal backdrops
core: Shared-bot Telegram wizard with link expiry and reconnect
core: Add Telegram notification integration
[0.99.16] — 2026-03-05
Bug Fixes
Request meetings.space.created scope in Google Meet OAuth flow
Use hexpm bookworm builder to satisfy cloudron/base OpenSSL 3.0
Use debian:trixie-slim runtime to satisfy OpenSSL 3.4 requirement
Features
core: Add changelog link to site footer
Add Docs link to site footer
[0.99.15] — 2026-03-04
Bug Fixes
core: Move circuit breaker provider lookups from compile time to runtime
core: Use consistent short labels for OAuth buttons on signup page
core: Resolve flaky booking LiveView tests caused by config pollution
core: Add update_subscription_status/3 callback to SubscriptionManager behaviour
core: Fix reset-password token URI matching and update OAuth tests to use session
core: Add is_verified flag to OAuth email-linking test
core: Fill empty English translations for cancel/reschedule meeting strings
core: Unwrap {state, timestamp} tuple in OAuth state session test
core: Correct OAuth provider callback specs and remove dead clauses
core: Add top-level aliases and remove TODO tag in OAuth state modules
core: Harden OAuth SSO security and validation
core: Accept string email_verified claim and document IdP switching
core: Add defensive fallbacks and fix email verification default
core: Use constant-time comparison and TTL for OAuth state
core: Move OAuth registration data from URL params to session
Features
Add PASSWORD_AUTH_ENABLED flag to disable password-based auth
[0.99.14] — 2026-03-03
Bug Fixes
core: Validate generic OAuth config and respect email_verified claim
core: Dispatch meeting.rescheduled event in reschedule flow
Features
core: Add generic OAuth/OIDC provider support for SSO authentication
core: Localize meeting cancel, reschedule, and cancel-confirmed pages
[0.99.13] — 2026-03-03
Bug Fixes
core: Request calendar.events scope instead of broad calendar scope
Features
saas: Add floating docs table-of-contents hook
[0.99.12] — 2026-03-03
Bug Fixes
core: Gate OAuth registration paths on REGISTRATION_ENABLED flag
core: Deduplicate registration-disabled message and gate complete-registration route
Features
core: Build embed.js via esbuild and bump version to 0.99.12
saas: Add SEO-optimised author profile pages with docs bylines
core: Add REGISTRATION_ENABLED flag to gate all registration paths
[0.99.11] — 2026-02-27
Bug Fixes
core: Name unused variable consistently in calendar workflows
core: Add missing in_person provider icon assets
core: Correct broken calendar link in meeting settings empty state
core: Show inactive calendar integrations in meeting settings and fix persist fallback
Features
core: Add arrow_right icon to IconComponents
[0.99.10] — 2026-02-27
Bug Fixes
health_check: Name unused pattern variables consistently
onboarding: Persist browser-detected timezone to DB on mount
health_check: Normalize orchestrate_health_check return to match spec
test: Configure google_oauth state secret in VideoOAuthController test setup
test: Fix FunctionClauseError in webhook worker timeout test
[0.99.9] — 2026-02-26
Bug Fixes
dialyzer: Suppress false-positive call_without_opaque in gettext.ex
core: Harden worker logging — safe error formatting, early discard on missing meeting
payments: Expire superseded Stripe checkout sessions on retry
db: Cascade delete meetings when user is deleted
structured_logger: Suppress unused variable warning in log_by_phase/2
Features
core: Add ObanLogger telemetry handler for job process tracing
core: Add LoggerMetadataHook for LiveView process tracing
webhooks: Store Stripe event payload and auto-nullify after 30 days
[0.99.8] — 2026-02-26
Bug Fixes
logging: Raise Credo checks to :high and clear all remaining Core violations (Phase 5)
logging: Fix workers and web layer Logger violations (Phase 3)
logging: Fix infrastructure and security domain Logger violations (Phase 3)
logging: Fix integrations domain Logger violations (Phase 3, integrations)
logging: Fix payments domain Logger violations (Phase 3, payments)
logging: Fix auth domain Logger violations (Phase 3, auth)
credo: Detect lazy Logger fn forms; disable MissedMetadataKeyInLoggerConfig
Features
credo: Add logger hygiene checks (Phase 2)
logging: Structured logging infrastructure (Phase 1)
[0.99.7] — 2026-02-26
Bug Fixes
Correctly preserve meeting duration through the booking flow (closes #17 )
video-oauth: Use provider-specific state secrets for Google Meet and Teams
[0.99.5] — 2026-02-25
Bug Fixes
caldav: Correct false-vs-nil conflation and remove dead rescue
caldav: Harden percent-encoding fix for reliability and completeness
caldav: Handle percent-encoded calendar IDs in validation and matching
dev: Increase Oban stage_interval to avoid crash during code reload
tests: Resolve ambiguous selectors and async assertion in VideoSettingsComponentTest
dialyzer: Suppress false contract_with_opaque on valid_ids/0
caldav: Suppress retries on guessed discovery path
ui: Move integration card action buttons next to toggle on desktop
ui: Improve theme customization toolbar and background tabs on mobile
ui: Improve webhook card layout on mobile
ui: Improve calendar integration card layout on mobile
ui: Improve video integration card and modal layout on mobile
ui: Fix mobile layout of meeting type cards and edit form header
ui: Raise mobile sidebar z-index above top navigation bar
Features
Per-attendee locale for email rendering
emails: Add plain-text fallbacks to all email templates
caldav: Add RFC 4791 discovery fallback, Zimbra CRUD coverage, and XML parser improvements
ui: Add mobile timeline view for availability grid
video: Add edit modal, show URLs in list, fix test connection
ui: Close mobile sidebar on nav link selection
ui: Add logo to mobile sidebar header next to close button
[0.99.4] — 2026-02-24
Bug Fixes
core: Add zimbra to calendar provider DB constraint
core: Convert non-standard HTTP methods to uppercase strings for Finch
core: Left-align body text in integration unhealthy email
config: Fix coveralls terminal_options key and set file_column_width to 125
lint: Resolve Credo warnings in CalDAV base and discovery service
core: Migrate CalDAV header handling to Req map format
core: Add Zimbra to DiscoveryService routing and path_utils
core: Snooze CalendarEventWorker for circuit recovery on :circuit_open
core: Return error when all calendar fetches fail in range queries
core: Register Zimbra provider in registry and add discovery case
core: Resolve Credo warnings for unused var names and thin wrapper
core: Correct country mapping for Asia/Yangon to Myanmar
core: Sort availability slots chronologically within each time period
deploy: Make asset builds hermetic in all Dockerfiles
[0.99.3] — 2026-02-23
Bug Fixes
core: Restore visibility and center "Forgot password?" link on login
core: Build JS bundles in Docker and make asset build hermetic
railway: Replace shell script with railpack.json start command
railway: Use absolute path for release binary in railway_start.sh
railway: Use shell script for start cmd to avoid eval escaping issues
railway: Move nixpacks.toml to apps/tymeslot (Railway root directory)
[0.99.1] — 2026-02-20
Bug Fixes
microsoft-oauth: Surface admin consent required error to users
docker: Remove redundant hex/rebar install step
csp: Resolve Credo warnings in SecurityHeadersPlug
csp: Add analytics provider origins to script-src
test: Rename bare _ to _i in for comprehension to satisfy Credo consistency check
test: Pre-exhaust rate limit via API to prevent clear_all race in embed settings test
core: Resolve compiler warnings and Credo violations
core: Language switcher clickaway and lazy hook destroy collision
core: Guard against nil duration in maybe_assign_meeting_type
core: Address code review issues in embed test suite
core: Fix scheduling box overflow when time slots list is too long
core: Remove duplicate Tymeslot suffix from page titles
core: Harden password DoS guard and sanitize backslash redirects
core: Fix failing and flaky tests across multiple test modules
core: Remove unused LinkAccessPolicy alias in theme integration test
core: Move @moduletag after use in all test modules
core: Add @moduletag :security to rate_limiter_dashboard_test
core: Add @moduletag taxonomy tags to test modules
core: Remove @moduletag inserted inside alias blocks in test files
core: Sort Tymeslot.Security aliases alphabetically in auth modules
core: Rename anonymous _ variables to _error in input validators test
core: Remove unreachable list guard in booking orchestrator
core: Remove unreachable catch-all clause in theme customization rate limiter
core: Correct @SPEC type for assign_form_errors from list() to map()
core: Remove unreachable nil guard in assign_theme_customization_data
core: Address review issues in webhook input validation sanitization
core: Add UniversalSanitizer to webhook name and URL validation
core: Update rhythm theme confirmation page layout and label
core: Fix reCAPTCHA v3 hook so booking form token is populated on submit
core: Fix honeypot visibility and recaptcha disclaimer layout in booking themes
core: Fix logger_json formatter config for OTP 28
core: Remove unreachable clause in sanitize_css_class
core: Fix type errors in proxy verifier
test: Make availability fetch truly synchronous in tests
core: Align credo version and resolve sitemap routing issues
core: Handle HTML entity escaping in theme readiness error test
core: Resolve compiler warnings and test failures
core: Exclude Credo checks from compilation paths
core: Add Phoenix.CodeReloader listener to mix.exs
core: Resolve Credo warnings for nested module aliases and line length
core: Handle empty string meeting_id in custom video provider
security: Sanitize CSS class names in icon rendering to prevent XSS
coverage: Replace .coveralls.exs with coveralls.json for proper exclusions
brand: Add w-auto to logo images to preserve dimensions while fixing layout
brand: Add explicit dimensions to logo images to prevent layout shift
rhythm theme: Improve language dropdown text contrast
test: Correct error message expectation in ErrorHandler test
test: Use dynamic future date in quill meeting tests
quill: Improve step navigation contrast on bright backgrounds
scheduling: Hide language dropdown after slide 1 and fix layout jump
Correct CAStore API usage in SMTP config
Remove unreachable pattern match in meeting settings card
onboarding: Remove unreachable pattern match clauses
Correct CAStore API usage in mailer health check
Features
auth: Add regenerate_verification_token/1 to Auth context
core: Add integration_unhealthy email template tests and fix strong tag rendering
core: Persist integration health state and notify users on sustained failures
core: Add page titles and meta descriptions to auth pages
core: Add rate limiting to all dashboard write operations
core: Add rate limiting to all dashboard write operations
core: Implement structured logging with logger_json
security: Add spam protection to booking forms with honeypot and reCAPTCHA v3
security: Add rate limiting to theme customization and meeting operations
core: Add Zimbra calendar provider with SSRF protection
core: Fix proxy authentication and add verification tools
quill: Add --flag-height design token for consistency
[0.98.0] — 2026-02-15
Features
core: Add HTTP proxy environment variable support
core: Add HTTP proxy configuration support
Add Zimbra calendar provider support
[0.97.1] — 2026-02-13
Bug Fixes
Resize caldav, local, and custom icons to match other provider icons
Remove vertical jump on brand-card hover
Remove false positive logging in universal sanitizer
Restore spillover functionality in availability tests
Sync video circuit breaker providers with actual video integrations
Add fallback for unsupported Flagpack country codes in timezone selector
Correctly parse castore CA certificates from PEM file
Improve CalDAV server detection accuracy and legacy support
Correct Docker build context and use committed dependency versions
Correct Microsoft OAuth redirect URIs and add missing details in .env.example
Correct Google Meet provider name from google_calendar to google_meet
Support slug format in duration formatting
Move custom_input_mode_helper.ex to match module name convention
Use consistent provider icons across all integration UI surfaces
Update test assertions after component and locale changes
Update locale plug tests after adding French support
Auto-detect CalDAV server types for proper authentication
Add missing translation strings to English locale
Align postgrex version in core mix.lock with root
Use dynamic app URL instead of hardcoded domain in onboarding
Use standard ports for Docker URL generation in production
Add nil-safe fallbacks to pricing and fix zero-duration parsing
Features
Add configurable LISTEN_IP with robust validation
Enhance custom video provider support
Add template variable support for custom video URLs with fragment validation
Add complete French (fr) translation support
[0.96.1] — 2026-03-11
Bug Fixes
Explicitly block auth routes in robots.txt
Remove unused variable in ensure_calendar_list
Resolve code quality warnings
Improve code readability and performance in core
Resolve race condition and improve queue monitoring infrastructure
Remove Core deps symlink and align dependency versions
Enable standalone core deployment and make Stripe optional
Skip empty blur validation and extract avatar modal
Unify form input spacing for leading icons and prefixes
Streamline video room creation and theme tests
Import flash_group in auth layout
embed: Build safe URLs and restore overflow
Stop video playback on slow connections
Address compilation and credo warnings
utils: Improve ISO 8601 duration parsing correctness
Guard dashboard hook config
Suppress log noise during initial booking form render
Make language switcher click-away handler conditional
Add missing track_form_change event handler in VideoSettingsComponent
Resolve UndefinedFunctionError in MiroTalk provider HTTP client
Improve MiroTalk provider robustness and fix test assertions
Improve video room worker robustness and fix test assertions
Allow localhost and 127.0.0.1 for embedding in development
Restore QuillVideo hook and add theme hook tests
Remove unused scheduling.css from tailwind build config
quill: Prevent duration tag from stretching with multi-line titles
Ensure custom credo checks are loaded in core app
Expand Stripe webhook handling and idempotency
Enhance payment reconciliation and subscription persistence reliability
Improve payment system robustness and configuration consistency
Resolve credo and logger warnings in admin alerts and email service
Resolve credo issues and warnings across umbrella project
Resolve unreachable patterns and high complexity in webhook handlers
Allow websocket connections in dev by updating CSP
Improve citation box rotation and mobile responsiveness
Add missing @SPEC type specifications and fix linting issues
Improve locale persistence and navigation on theme booking pages
Replace String.to_atom/1 with String.to_existing_atom/1 in validation helpers
test: Improve test robustness, performance, and utility nil-safety
security: Implement recursive sanitization and deterministic errors
Handle DST gaps in business hours and harden OAuth token validation
availability: Respect business days in fallback logic and harden tests
email-testing: Update testers with missing fields for template rendering
Features
email: Add comprehensive SMTP configuration and startup validation
Add external database support for Docker deployment
Restore marketing screenshots and update gitignore rules
Generate video poster frames from video start
Add video background posters separate from thumbnails
theme: Add video poster for presets
saas: Record legal acceptance on signup
booking: Suppress validation errors until form interaction
Enhance datetime utils with more robust parsing and testing
Add user agent to LiveView connect_info and improve extraction
Add generic analytics provider support with Umami implementation
Dynamic robots.txt serving based on deployment type
Implement sitemap.xml for SaaS marketing site
Suppress LiveView disconnect toast during OAuth navigation
Implement secure-by-default embedding and dashboard preview
Implement video room recovery mechanism and enhanced retry logic
Implement feature gating for automations and SaaS subscription integration
Cache branding status and refresh on subscription changes
Add show_branding feature flag to control "Powered by Tymeslot" visibility
Rename notification settings to automation and add bolt icon
Implement integrated branding footer for scheduling pages
Background subscription event processing and cancellation persistence
Replace native confirmation with themed modal for subscription cancellation
Add support for customer.updated webhook event
Enhance subscription flow with race condition handling and trialing support
Add Stripe billing portal support and subscription status views
Implement Phase 4 - payment system feature completeness
Make add break form collapsible in availability settings
Implement robust Stripe webhook handlers for disputes, refunds, and trials
Implement SaaS-specific payment email templates and tests
Log unhandled stripe events and update env template
Enhance embed widget security and customization
Implement drag-and-drop reordering for meeting types
Implement Stripe payments and SaaS subscription management
Enhance SaaS email infrastructure and dashboard integration
Add default reminder settings and transition to slug-based meeting types
Customizable multiple reminders per appointment type
integrations: Harden Outlook availability and Microsoft Teams OAuth
integrations: Enhance Microsoft (Outlook and Teams) integration
security: Enhance input validation, rate limiting, and security test coverage
availability: Implement duration-aware gap logic and ETS caching
layout: Implement generic theme extension system for UI injection
auth: Harden session security and improve OAuth resilience
security: Add support for wildcard domain prefixes in allowed embed domains
emails: Redesign templates with modern design tokens and Inter font
ui: Overhaul dashboard UI with token-based design system and glassmorphism
core: Enhance availability engine and scheduling logic
webhooks: Enhance security, delivery resilience, and atomic failure tracking
i18n: Implement comprehensive localization and internationalization support
integrations: Implement pluggable calendar architecture and improve worker resilience
Add internationalization (i18n) support for booking pages
Implement booking widget embedding with security controls
Complete app redesign and modernization
Refactor webhooks into a unified notifications dashboard
You can’t perform that action at this time.