> For the complete documentation index, see [llms.txt](https://docs.xenoraa.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.xenoraa.com/xenoraa-release-notes/v10.x-releases.md).

# v10.x Releases

## v10.x Releases

### v10.x Release Series

> 2 releases in this series. Last updated: 2026-07-09 19:50 UTC

#### v10.0.3 — Full Sentry Observability Suite — 8 Enhancements

**Released:** 2026-07-09 | **Category:** Observability & Monitoring | **Commit:** [`1250855`](https://github.com/goesscay/xenoraa/commit/1250855)

The entire platform is now fully observable via Sentry, tracking errors, performance, logs, background jobs, and user feedback in one unified dashboard.

**8 Key Enhancements Deployed:**

1. **Tenant User Context** (`TenantMiddleware.php`): Every error automatically attaches the affected tenant's ID, email, username, domain, and subscription plan as searchable tags.
2. **Release Tracking** (`deploy-production.yml`): Integrates with GitHub Actions to auto-tag Sentry events with the specific Git commit hash (`SENTRY_RELEASE`) on every deployment.
3. **Sentry Logs Channel** (`config/logging.php`): Adds the `sentry_logs` driver to the default stack. All application logs (`Log::error()`, `Log::warning()`, `Log::info()`) are now searchable in Sentry's Logs explorer.
4. **Queue Job Context** (`SendCampaignJob.php`): Injects Sentry tags and context before processing queue jobs. Any campaign sending failure shows which tenant and campaign broke.
5. **Dynamic Traces Sampler** (`AppServiceProvider.php`): Implements smart tracing — 100% traces for critical routes (Invoices, POS, Payments, APIs, Orders) and 10% default for standard traffic.
6. **HTTP Uptime Monitors** (`routes/web.php`): Added a lightweight `/up` health check route (JSON 200 OK) live on `xenoraa.com/up`, `gopi.blog/up`, and `staging.xenoraa.com/up`.
7. **Business Event Capture**: Captures custom messages for key business events (subscription activated, tenant registered, trial reminders sent) to track SaaS funnel health.
8. **User Feedback Widget** (`admin.blade.php`): Injects a floating **🐛 Report** button in the bottom-right of every tenant's admin dashboard, letting them report bugs directly with their user info pre-filled.

***

#### v10.0.2 — Sentry Cron Monitoring for All Scheduled Jobs

**Released:** 2026-07-09 | **Category:** Observability & Monitoring | **Commit:** [`6d8f867`](https://github.com/goesscay/xenoraa/commit/6d8f867)

Protects all critical cron jobs and backup scripts from silent failures.

**Scheduled Monitors Active:**

* **Laravel Kernel Scheduler** (`app/Console/Kernel.php`):
  * `xenoraa-notification-reminders` (Every 30 min)
  * `xenoraa-trial-reminders` (Daily 9:00 AM)
  * `xena-daily-snapshot` (Daily 6:00 AM)
* **PostgreSQL Daily Backups** (`/usr/local/bin/xenoraa-backup.sh`):
  * `xenoraa-db-backup` (Daily 2:00 AM) — script sends `in_progress` check-in with config at start, and `ok`/`error` with duration on exit.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.xenoraa.com/xenoraa-release-notes/v10.x-releases.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
