> 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/v8.x-releases.md).

# v8.x Releases

## v8.x Release Series

> 5 releases in this series. Last updated: 2026-07-09 17:52 UTC

### v8.4.0 — Phase 3 — OPcache + Cloudflare WAF + Slack Error Monitoring

**Released:** 2026-07-08  |  **Category:** Infrastructure  |  **Commit:** [`9134154`](https://github.com/goesscay/xenoraa/commit/9134154)

* PHP OPcache: 256MB memory, 20000 max files, validate\_timestamps=0, JIT off (production-tuned)
* Cloudflare security: SSL=full, always\_use\_https=on, min\_tls=1.2, security\_level=medium
* Cloudflare performance: brotli=on, minify(css+html+js)=on, browser\_cache\_ttl=14400
* Cloudflare WAF (5 custom rules, ruleset: f3fd2dba282e4c22901c317f879cbc1f):
* 1. BLOCK: malicious scanners (sqlmap, nikto, masscan, zgrab, nmap, nuclei)
* 2. BLOCK: common exploit paths (.env, .git, wp-admin, phpmyadmin, adminer)
* 3. BLOCK: direct IP access (host=69.62.75.225)
* 4. MANAGED\_CHALLENGE: suspicious login POST attempts (threat\_score > 10)
* 5. BLOCK: PHP exploit endpoints (xmlrpc.php, config.php, setup.php, install.php)
* Slack error monitoring: LOG\_SLACK\_WEBHOOK\_URL configured, stack=\[single+slack], level=error
* Test message sent to Slack successfully
* GitHub commit: 9134154

***

### v8.3.0 — Phase 2 — CI/CD + Staging Environment

**Released:** 2026-07-08  |  **Category:** Infrastructure  |  **Commit:**

* Staging environment: /var/www/xenoraa-staging, DB: xenoraa\_staging
* staging.xenoraa.com: Nginx vhost + Let's Encrypt SSL
* Cloudflare DNS: staging A record → 69.62.75.225 (DNS only)
* GitHub Actions: deploy-production.yml (push to main → xenoraa.com)
* GitHub Actions: deploy-staging.yml (push to develop → staging.xenoraa.com)
* Deploy SSH key: Ed25519 key pair, public key in authorized\_keys
* develop branch created on GitHub
* Staging login: <support@xenoraa.com> / @biSou20717 (super admin)
* Staging tenant: <gopi@staging.xenoraa.com> / @biSou20717 (via /gopi/login)

***

### v8.2.0 — Phase 1 — Redis + Queue Workers + DB Backups

**Released:** 2026-07-08  |  **Category:** Infrastructure  |  **Commit:**

* APP\_URL fixed to <https://xenoraa.com>
* Redis installed, CACHE/SESSION/QUEUE all use redis driver
* Supervisor: 2 xenoraa-worker processes (auto-restart, survives reboots)
* Daily PostgreSQL backups: /root/xenoraa-backup.sh, 2:00 AM UTC, 7-day rotation

***

### v8.1.0 — ChatGPT Integration — Tenant API Token Management

**Released:** 2026-07-08  |  **Category:** Xena AI  |  **Commit:**

* xena\_api\_tokens table: id, user\_id, token, name, last\_used\_at, created\_at
* Route: GET /admin/xena/chatgpt-token (token management page)
* Route: POST /admin/xena/chatgpt-token/generate (generate/regenerate token)
* Route: POST /admin/xena/chatgpt-token/revoke (revoke token)
* View: resources/views/admin/xena/chatgpt\_token.blade.php
* Sidebar nav link: ChatGPT Integration (after Xena Knowledge Base)
* Admin.blade.php updated with nav link

***

### v8.0.0 — ChatGPT Actions API

**Released:** 2026-07-08  |  **Category:** Xena AI  |  **Commit:**

* routes/api.php: GET /api/v1/xena/openapi, POST /api/v1/xena/action
* XenaApiController: Bearer token auth via xena\_api\_tokens table
* OpenAPI 3.1.0 spec auto-generated at /api/v1/xena/openapi
* Custom GPT created: Xenoraa Business Assistant (private, gopi.blog tenant)
* GPT ID: g-6a4cfc6ff2508191a764cd96b3d71edd
* API token for gopi.blog: xr\_live\_gopi\_chatgpt\_action\_token\_98234710

***


---

# 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/v8.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.
