=== Bugzio ===
Contributors: webdevlv
Tags: bug report, issue tracker, image optimization, webp, compress
Requires at least: 5.9
Tested up to: 7.0
Requires PHP: 7.4
Stable tag: 1.17.1
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Bugzio pieteikumu viedrīks + attēlu optimizācija (WebP) + vietnes ātrums (minifikācija, kešatmiņa). Viens super-plugins, trīs moduļi.

== Description ==

Bugzio super-plugins apvieno trīs moduļus. Viedrīks un attēlu optimizācija savienojas ar Bugzio (app.bugzio.com) caur vienu projekta API atslēgu; ātruma modulis strādā pilnībā lokāli. Pašmitinātāji var norādīt savu serveri ar `define('BUGZIO_SERVER_URL', 'https://...')` failā wp-config.php.

1. **Pieteikumu viedrīks** — ievieto Bugzio pieteikumu/kļūdu ziņošanas viedrīku vietnē. Konfigurējama krāsa, pozīcija, pogas teksts, valoda un diagnostikas vākšana. Ielogotam lietotājam automātiski piesaista vārdu/e-pastu pieteikumam.

2. **Attēlu optimizācija** — sūta mediju bibliotēkas attēlus uz Bugzio serveri optimizācijai (WebP konvertācija un saspiešana). Smago darbu serveris veic rindas kārtībā; plugins lejupielādē rezultātu kā `.webp` "sidecar" failu blakus oriģinālam. Oriģināli netiek mainīti.

3. **Ātrums** — HTML/CSS/JS minifikācija, lapu kešatmiņa un pārlūka kešošanas galvenes:
  * *HTML minifikācija* — noņem komentārus un saspiež atstarpes (pre/textarea/script/style bloki netiek aiztikti).
  * *CSS/JS minifikācija* — lokālajiem failiem pasniedz minificētas kopijas no `uploads/bugzio-speed/`; oriģināli netiek mainīti, `.min.` faili tiek izlaisti. JS minifikators ir konservatīvs (saglabā rindu struktūru — ASI drošs). Relatīvie `url()` CSS failos tiek pārrakstīti absolūti.
  * *Lapu kešatmiņa* — pilnu lapu kešs neielogotiem apmeklētājiem (tikai GET bez query string). Automātiska iztīrīšana pie satura/tēmas/iestatījumu izmaiņām + manuāla poga. Apejama ar `DONOTCACHEPAGE` vai `bugzio_speed_skip_cache` filtru; WooCommerce sesiju cepumi tiek respektēti.
  * *Pārlūka kešs* — Expires galvenes attēliem/fontiem/CSS/JS caur .htaccess (tikai Apache).

Iestatījumu cilnē **Servisi** redzams pārskats, kuri Bugzio servisi (drošība, SEO, e-pasts, DNS, WCAG, GDPR, melnie saraksti, ļaunatūras monitorings u.c.) projektam ir ieslēgti, ar saiti uz Bugzio paneli, kur tos pārvaldīt.

= Attēlu optimizācijas darbība =

* **Automātiski augšupielādējot** — jaunie attēli tiek ievietoti lokālā rindā un apstrādāti fonā (WP-Cron).
* **Pa vienam** — Mediju bibliotēkas sarakstā un attēla detaļās pie katra attēla ir statuss un poga "Optimizēt" / "Optimizēt vēlreiz" ar dzīvu progresu.
* **Masveida optimizācija** — sadaļā *Media → Attēlu optimizācija* ir pārskats (kopā / optimizēti / atlikuši / ietaupīts) un poga, kas optimizē visus neoptimizētos ar progresa joslu.
* **WebP pasniegšana**:
  * *<picture> tags* (noklusējums, universāls) — `<img>` tiek ietīts `<picture>` ar WebP avotu, ja sidecar fails eksistē un pārlūks atbalsta WebP.
  * *Apache .htaccess* — pasniedz `.webp`, kad pārlūks sūta `Accept: image/webp` (tikai Apache).
  * *Izslēgts* — tikai saglabā `.webp`, nepasniedz.

== Installation ==

1. Augšupielādē `bugzio` mapi `/wp-content/plugins/` direktorijā (vai instalē kā ZIP).
2. Aktivizē pluginu caur "Spraudņi" izvēlni.
3. Ej uz "Iestatījumi → Bugzio".
4. Cilnē "Savienojums" nospied "Pieslēgties" vai "Reģistrēties" (atver app.bugzio.com), izveido projektu un ielīmē tā API atslēgu, tad nospied "Pārbaudīt savienojumu".
5. Ieslēdz vajadzīgos moduļus cilnēs "Viedrīks" un "Attēli".

= Prasības attēlu optimizācijai =

* Bugzio projektam jābūt ieslēgtam servisam "Bugzio Minify" (image_minify_squoosh).
* Automātiskajai optimizācijai jāstrādā WP-Cron (ja `DISABLE_WP_CRON` ir iestatīts, izmanto "Masveida optimizācija" pogu vai sistēmas cron).

== Frequently Asked Questions ==

= Vai oriģinālie attēli tiek mainīti? =
Nē. WebP versija tiek glabāta kā atsevišķs `.webp` fails blakus oriģinālam.

= Kas notiek atinstalējot? =
Tiek dzēsti plugina iestatījumi, progresa metadati un Apache rewrite bloks. Oriģināli un saglabātie `.webp` faili paliek.

== Changelog ==

= 1.17.1 =
* Kodu pārskata labojumi pirms izlaišanas (13 atradumi). Svarīgākie: nginx purge ar URI "/" sakrita ar KATRU keša ierakstu, kas beidzās ar slīpsvītru — viens ieraksta labojums būtu iztīrījis visu kešu, ziņojot par panākumu; `$uri$is_args$args` formulas atslēga verificējās kā pareiza, bet hash tika rēķināts ar neaizvietotiem mainīgajiem (klusa neveiksme); resursu atklāšanas zonde tika izmesta, ja bija ieslēgta HTML minifikācija (un kļūda vainoja tēmu); ģenerētajā mu-plugin nebija globālo šablonu sarga, tāpēc galvenes/kājenes widgeta CSS varēja tikt izmests visā vietnē; popupa platuma pārbaude pieņēma `max-width` par `width`; JS pakešu apvienošana pārnesa `"use strict"` uz visiem failiem; apvienošanas mērījums pēc PHP timeout varēja atstāt apvienošanu ieslēgtu; atslēgta izvēles rūtiņa klusi saglabāja "izslēgts"; Kešs sadaļas izslēgšana atstāja mu-plugin bez UI; kārtula, kas sāka strādāt, klusi pazuda pie nākamās saglabāšanas; `[href^="…"]` tipa selektori deva viltus "nelietots"; atmiņas budžets DOM parsēšanai (aizsargā 128 MB shared hostingu) un nepilnīgs markup vairs nedrīkst pats radīt kandidātu; priekšgals vairs nelasa pilno atskaiti katrā pieprasījumā.

* Otrā pārskata kārta (vēl 8 atradumi, 3 no tiem regresijas no pirmās kārtas labojumiem): `elementor-global` un `elementor-post-N` vairs nebija aizsargāti, jo Elementor ģenerē tos uz `uploads/`, nevis spraudņa mapē — kārtula būtu izmetusi visu vietnes kit CSS; keša atslēgas hosts sakrita kā apakšvirkne, tāpēc `example.com` purge dzēsa arī `shop.example.com` ierakstus kopīgā keša zonā; anonīms komentārs varēja izraisīt līdz 16 s keša skenēšanu (tagad atliktais pilnais purge + revīziju/autosave filtri); JS IIFE apvalks izņēma globālos `var`/`function` no globālās telpas (tagad `"use strict"` faili vienkārši netiek apvienoti); `@import`, RTL/alternatīvie stili un `wp_set_script_translations` faili tiek izslēgti no apvienošanas, nevis klusi salauzti; WP heartbeat atgrieza apvienošanas iestatījumu mērījuma vidū, radot off-pret-off salīdzinājumu, ko uzrādīja kā rezultātu.

= 1.17.0 =
* **Nginx purge atslēgas kļūda salabota (skāra katru vietni ar nestandarta `fastcgi_cache_key`):** līdz šim purge rēķināja `md5(konfigurētā atslēga)`. Ja īstā nginx atslēga satur mainīgo, ko PHP neredz (map/geo rezultāts, `$cookie_*` valodas variants), hash norādīja uz failu, kas nekad nav eksistējis — purge klusi nedarīja neko, bet panelis rādīja «iztīrīts». Tagad Bugzio nolasa **īsto atslēgu no paša keša faila** (`KEY:` rinda pēc binārā nginx header) un: (1) verificē konfigurēto formulu pret īstajām atslēgām un pret zināmu URL (ground truth); (2) purge dara pēc satura, ja formula nesakrīt — strādā ar jebkuru atslēgas formulu un iztīra visus valodas variantus; (3) **nesakritību parāda panelī** ar īsto atslēgu un formulas minējumu, nevis noklusē. Jauna poga «Pārbaudīt keša atslēgu». Skenēšana ir ierobežota (20 000 failu / 8 s) un ierobežojums tiek ziņots; izmērīts: 20 000 failu ≈ 0,9 s, atslēgas pārbaude ≈ 3 ms.
* **Daudzvalodu keša atslēgas pārbaude:** ja vietnei ir vairākas valodas, valoda nav URL ceļā un atslēgā nav valodas mainīgā, Bugzio brīdina — divas valodas citādi dala vienu keša ierakstu.
* **Jauna sadaļa Kešs → Elementor: veiktspējas audits.** Tikai lasīšana, ar darbību katrai rindai. Galvenais: katra pārbaude tiek risināta pret **instalēto Elementor versiju** — eksperiments, kas šajā versijā vairs nav reģistrēts (piem. `e_optimized_css_loading`, `e_optimized_assets_loading`, `e_lazyload` Elementor 4.x), tiek ziņots kā «nav šajā versijā», nevis kā «izslēgts»; agrāk tas radīja «labojumu», kas nemaina neko. Opcijām tiek rādīta **faktiskā** vērtība (Elementor noklusējums, ja DB ieraksta nav), un opcijas nosaukums tiek meklēts instalētajā Elementor avotā, tāpēc iestatījums, ko šī versija vairs nelasa, netiek auditēts.
* Elementor audita pārbaudes: CSS izvades veids, font-display, FA4 slānis (brīdina tikai tad, ja saturs to nelieto), inspektors (arī tā WP_DEBUG uzvedība), optimizētā bilžu ielāde, elementu kešošana, SVG ikonas, optimizēts markup, konteineri, ligzdotie elementi, papildu breakpointi (tikai ja tos kāds tiešām lieto). Bez iestatījumiem: vai **per-lapas ielāde tiešām strādā** (mēra resursu skaitu pa lapām, nevis lasa slēdzi), vai ģenerētais CSS ir svaigāks par pēdējo iestatījumu maiņu, **publicēto popupu veselība** (popups ar platumu iestatījumos, bet bez platuma kārtulas ģenerētajā CSS, atveras 0×0 un ir nelietojams — neviena automātiska pārbaude to neredz), un mirušie opciju ieraksti no vecākām versijām. Katra izmaiņa no šīs lapas pārģenerē Elementor CSS un iztīra lapu, resursu un malas kešus.
* **Widgetu pakešu inventārs:** kuri spraudņi reģistrē Elementor widgetus un cik no tiem publicētais saturs tiešām lieto — atklāts no satura (`_elementor_data`, meklējot raw, HTML-escapēto un URL-kodēto rakstību), nevis no saraksta. Pakete ar nulli lietotu widgetu ir pirmais kandidāts deaktivizēšanai.
* **Jauna sadaļa Kešs → Resursi: nosacītā resursu ielāde.** Atrod handle, ko spraudnis liek rindā **visur**, bet kas vajadzīgi tikai dažās lapās. Nulle vietnei specifiska koda: kandidātus atvasina no dzīvā reģistra (`get_style_depends()`/`get_script_depends()`), no reāla lapu kopuma novērojuma (loopback zonde, kas pieraksta faktisko enqueue, atkarības un inline datus) un no selektoru pārklājuma pret šo lapu **apvienojumu**. Ja widgets handle deklarē, bet spraudnis to tomēr liek rindā globāli — tas ir stiprākais atradums, un nosacījums uzrakstās pats (`widget:<slug>`).
* Resursu gating drošības slāņi: animāciju / popupu / lightbox / `@font-face` / kritiskais tēmas CSS **nekad** neparādās ieteikumos (satura aizsardzība prasa, lai šīs kārtulas failā dominētu, tāpēc viens `@keyframes` bloks 200 KB paketē tai nedod imunitāti); pseido-klases un pseido-elementi tiek noņemti pirms sakritības; «nav ko pārbaudīt» nav «nelietots»; handle, no kura kāds ir atkarīgs, netiek izmests nekad; `media="print"` stili netiek aiztikti; widgets, kas lietots globālā theme-builder šablonā vai popupā, tiek paturēts vienmēr. Nosacījumi ir atkarīgi **tikai no URL** — apmeklētāja atkarīgu kārtulu nav iespējams izteikt, tāpēc kešotais HTML paliek drošs jebkuram apmeklētājam. Papildus var ģenerēt **pārskatāmu mu-plugin** (atgriešana = faila dzēšana).
* **Keša mijiedarbība:** kārtulu maiņa iztīra visus slāņus (lapu kešs, minificētās kopijas, nginx, Elementor CSS); Elementor CSS pārģenerēšana tagad iztīra arī minificētās kopijas (trešais slānis, kas agrāk palika novecojis); sasildīšana pēc purge sedz **visu valodu** sākumlapas.
* **Apvienošana (pēc izvēles, noklusēti izslēgta):** apvieno tikai tos resursus, kas ielādējas katrā lapā; saglabā kaskādes secību precīzi, pārraksta relatīvos `url()`, **inline `wp_localize_script` datus atstāj savā vietā starp failiem** (biežākā vieta, kur concat lauž vietni) un nekad nesapludina `defer`/`async` ar sinhroniem. Pieņemšanas kritērijs nav mazāk pieprasījumu: verdiktu izšķir pārsūtītie baiti; TTFB pār loopback tiek mērīts kā mediāna, un tam tiek parādīts **trokšņa slieksnis**, jo identiskā konfigurācijā tas svārstās >10% — ieguvums, kas mazāks par troksni, tiek nosaukts par «nav atšķirības», nevis par uzlabojumu.
* Elementor audita kopsavilkums tiek nosūtīts arī inventārā, lai panelis var rādīt **flotes skatu** (kurām vietnēm CSS ir inline, kurām nav SVG ikonu) — 40 vietnes kā viens darba saraksts, nevis 40 atsevišķi paneļi.
* i18n: +219 latviešu virknes (0 netulkotu).

= 1.16.1 =
* Sīkdatņu banera skripta URL tagad ar versijas parametru — CDN kešs vairs neaiztur atjauninājumus.

= 1.16.0 =
* **Jauna sadaļa — Sīkdatnes (cookie consent):** GDPR sīkdatņu piekrišanas baneris no Bugzio paneļa. Teksti, kategorijas un izskats tiek konfigurēti panelī; spraudnis baneri (bgzc.js) ievieto <head> sākumā, lai tas parādās pirms trakeriem un Google Consent Mode noklusējumi ir iestatīti pirms Google tagiem.
* **Automātiskā skriptu bloķēšana:** zināmie sekošanas skripti (Google Analytics, Facebook Pixel u.c.) un iframe (YouTube, Vimeo, kartes) pirms piekrišanas tiek pārrakstīti uz `type="text/plain"` / `data-bz-src` — tie izpildās tikai pēc apmeklētāja piekrišanas. Bloķējamo servisu katalogs tiek sinhronizēts no paneļa (kešots 15 min, poga "Sinhronizēt tagad"). Droši sadzīvo ar lapu kešu: bloķētais HTML tiek kešots visiem, atbloķēšana notiek pārlūkā. Izslēdzams ar `BUGZIO_NO_COOKIE_BLOCK` konstanti; atsevišķu tagu var izlaist ar `data-bz-ignore`.
* **WP Consent API tilts (izvēles):** apmeklētāja izvēle tiek nodota WordPress Consent API, lai to respektē arī citi spraudņi (Site Kit u.c.).
* Sīkdatņu sadaļu (tāpat kā Cache/SEO/Security/Emails) var paslēpt Funkcijas → Bugzio sadaļas.

= 1.15.0 =
* **Sadaļas ir tagad opcionālas (Funkcijas → Bugzio sadaļas):** Cache / SEO / Security / Emails katru var izslēgt, ja vietnei tā nav vajadzīga — izslēgtā sadaļa paslēpj savu izvēlni UN aptur funkcijas (iestatījumi tiek saglabāti). Pēc noklusējuma visas ieslēgtas, tāpēc atjauninot nekas nepazūd. Vairs nav uzbāzīgi.
* **Tīmekļa servera izvēle (Cache → iestatījumi):** Apache / Nginx / Angie ar automātisku noteikšanu (“Automātiski (Nginx)”) no SERVER_SOFTWARE. Nosaka, vai .htaccess funkcijas (pārlūka kešs, gzip, Drošības direktoriju/failu aizsardzība) šeit darbojas vai vajag servera konfigurāciju; uz Nginx/Angie tiek parādīts servera konfigurācijas piemērs. Var manuāli pārrakstīt (piem. aiz starpservera).

= 1.14.0 =
* **Jauna sadaļa — Security (provided by Bugzio.com):** darbību drošības audits, tāpat kā SEO audits. Iestatījumu līmeņa WordPress drošības pārbaude ar ~28 punktiem, katram ar darbību: JĀ/NĒ nostiprinājums + OK, poga uz pareizo ekrānu, vai “Tas ir OK” (ignorēt). Papildina Bugzio paneļa drošības servisu ar iekšējo skatu.
* Vienas pogas nostiprinājumi (droši, opcionāli): atspējot tēmu/spraudņu failu redaktoru, paslēpt WordPress versiju, bloķēt autoru uzskaitīšanu (?author=N), ierobežot REST lietotāju sarakstu (anonīmiem — redaktori strādā), atspējot XML-RPC / tikai pingbacks, drošības galvenes (X-Frame-Options, nosniff, Referrer-Policy, Permissions-Policy, HSTS tikai caur HTTPS), paslēpt PHP kļūdas, vispārīgas pieslēgšanās kļūdas, atspējot lietotņu paroles, piespiest Abonenta lomu, automātiskie kodola atjauninājumi.
* Apache .htaccess nostiprinājumi (uz nginx — padoms ar servera konfigurāciju): atspējot direktoriju pārlūkošanu, bloķēt piekļuvi sensitīviem failiem (wp-config, .htaccess, .env, debug.log, dublējumi). Noņemts pie deaktivizācijas/atinstalēšanas.
* Padomi (nevar droši automātiski labot): noklusējuma “admin” konts, lietotāji ar publisku pieteikumvārdu, HTTPS, novecojis kodols/PHP, unikālas atslēgas/salti, DB prefikss, CSP, 2FA, pieslēgšanās mēģinājumu ierobežošana.

= 1.13.0 =
* **Galvenais keša slēdzis (master switch):** viena poga Cache paneļa un Cache iestatījumu augšā (un rīkjoslā) izslēdz/ieslēdz VISUS kešus uzreiz — lapu kešs, minifikācija, object cache (Redis/Valkey), gzip/pārlūka .htaccess, preload. Izslēdzot viss tiek notīrīts un apmeklētāji uzreiz saņem svaigas lapas; object cache drop-in tiek apturēts un atjaunots tieši tāds, kāds bija. Noderīgi atkļūdošanai.
* **E-pasta piegādātāju režģis:** Emails lapā tagad skaista karšu izvēle — Custom SMTP / SendGrid / Mailgun / Brevo / Gmail / Amazon SES / Outlook / Postmark. SMTP piegādātāji automātiski aizpilda hostu/portu/šifrēšanu; **SendGrid** sūta caur savu HTTPS API (īsta API atslēga — noderīgi, kad hosts bloķē SMTP portus). API atslēgu droši glabāt wp-config.php (BUGZIO_MAIL_API_KEY).
* **Elementor keša integrācija:** ja Elementor ir aktīvs, Cache panelī parādās karte (CSS failu skaits + izmērs) ar pogu "Clear Files & Data", un rīkjoslā ir "Clear Elementor cache". Elementora CSS pārģenerēšana tagad automātiski iztīra Bugzio lapu kešu (un nginx), lai slāņi nekonfliktē.
* **Keša koordinācija:** viss "Purge all" tagad iet caur vienu orķestratoru noteiktā secībā (object → lapu → minify → nginx → Elementor → preload), lai kešu slāņi strādā kopā un neviens netiek aizmirsts.
* Nostiprinājumi (multiagentu audits + docker E2E): objektu kešatmiņu nevar ieslēgt, kamēr galvenais slēdzis ir izslēgts; multisaitā galvenais slēdzis neaiztiek tīklā koplietoto object-cache drop-in; SendGrid API respektē wp_mail_content_type filtru (HTML e-pasti), novērš saņēmēja dublēšanos To/Cc/Bcc, saglabā sākotnējo sūtītāju kā Reply-To, atmet rezervētās galvenes un konvertē ne-UTF-8 saturu; novērsts WP 6.7+ "tulkojums ielādēts par agru" paziņojums.

= 1.12.0 =
* SEO → Audits ir tagad interaktīvs — katram punktam ir darbība, nevis tikai saraksts:
* **Jā/Nē izvēle + OK:** punktiem, kur pareizā atbilde ir atkarīga no vietnes (piem. "Vai indeksēt autoru arhīvus?", "Vai indeksēt ierakstus/lapas/produktus?", breadcrumbs), tagad var izvēlēties JĀ/NĒ un nospiest OK — iestatījums tiek uzrakstīts uzreiz WordPress/Yoast.
* **"Veikt" poga:** punktiem, kas risināmi citā ekrānā (permalinks, sākumlapa, tagline, Yoast organizācija/logo, OG attēls, Yoast konfigurācijas vednis), tagad ir tieša poga uz attiecīgo iestatījumu.
* **"Tas ir OK":** brīdinājumus, kas konkrētajai vietnei ir apzināti pieņemami, var atzīmēt kā OK — tie pārceļas uz atsevišķu "Atzīmēti kā OK (ignorēti)" sadaļu un vairs netraucē. Var atjaunot ar vienu klikšķi.
* SEO → Pamati: skaidrāk paskaidrots lauks "Personas vārds" (Yoast knowledge-graph identitāte) — organizācijas/personas izvēle tagad rāda tikai attiecīgos laukus, un pievienoti apraksti (uzņēmuma vietnei lieto Organizācijas nosaukumu, nevis Personas vārdu).

= 1.11.2 =
* Otrā audita kārta (multiagentu review + docker E2E):
* **Drošība:** SVG sanitizācija tagad balstās uz faila paplašinājumu, ne pārlūka norādīto MIME tipu — novērsts apiešanas veids (viltots Content-Type), kas ļāva augšupielādēt nesanitizētu SVG (stored XSS). Pievienots .svgz atbalsts.
* Ātrums/CSS minifikācija: komentāri ar apostrofu (piem. "/* don't edit */") vairs neizdzēš CSS noteikumus.
* Ātrums/JS minifikācija: iekļautie template literal (backtick template ${...} iekšpusē) tiek droši apstrādāti — nekad nesabojā atkāpi (nepārliecinošos gadījumos fails paliek neminificēts).
* Object cache: drop-in tiek uzstādīts atomiski (temp+rename) — nekad daļēji uzrakstīts fails (ko WordPress ielādē katrā pieprasījumā).
* Attēlu optimizācija: lejupielādētie dati tiek validēti kā īsts WebP (RIFF/WEBP) pirms saglabāšanas — CDN/proxy kļūdas lapa vairs netiek pasniegta kā bojāts attēls.
* Datubāze: autoload apjoma pārskats lieto pareizu allowlist (kā WP kodols); inventāra transientu skaits vairs neskaita dubultā.
* Lapu kešs: komentāru atspējošana tagad arī iztīra kešu.

= 1.11.1 =
* Pilna plugina audita labojumi (multiagentu review + docker E2E):
* SEO: pēc viena klikšķa labojuma vai Pamatu saglabāšanas tagad tiek iztīrīts lapu kešs (izmaiņas <head> stājas spēkā uzreiz, ne pēc TTL). Logo/OG attēla ID vienmēr seko URL (nepaliek vecais attēls Yoast schema/OG).
* Inventārs: kodola integritātes pārbaude tagad lieto vietnes lokāli (get_locale), ne fiksēto en_US — latviešu/lokalizētas vietnes vairs kļūdaini nesignalizē version.php kā "modificētu".
* Ātrums/JS minifikācija: labota template literal (backtick) satura saglabāšana — daudzrindu template ar nozīmīgu atkāpi/tukšām rindām vairs netiek sabojāts.
* Ātrums: minificētās CSS/JS kopijas tiek rakstītas atomiski (temp+rename) — nekad netiek pasniegts pusuzrakstīts fails.
* Iestatījumi: viena ekrāna saglabāšana vairs bez vajadzības nepārraksta .htaccess blokus un netīra kešu, ja mainītās atslēgas to neietekmē. Galvenā AJAX saglabāšana nostiprināta pret filtru reģistrācijas laiku.
* Attēlu optimizācija: "Optimizēt" poga tagad strādā arī ieraksta redaktora mediju logā.
* "Tīrs panelis" vairs neslēpj Bugzio paša "saglabāts" paziņojumus.
* Atinstalēšana: notīra arī inventāra cron un opciju.

= 1.11.0 =
* Divas jaunas augšlīmeņa sadaļas — tagad četras: Bugzio / Cache / SEO / Emails (katra "provided by Bugzio.com"), viss no viena spraudņa.
* SEO → Audits: iestatījumu līmeņa SEO veselības pārbaude (WordPress + Yoast) — indeksējamība, tagline, permalinks, HTTPS, robots.txt, sitemap sasniedzamība, sākumlapas atbilde (noindex/kanoniskais), Yoast organizācija+logo, noklusējuma OG attēls, autoru/datumu arhīvi, būvētāju CPT indeksējamība, satura tipu noindex, dublēti SEO spraudņi, staging vide — ar vienas pogas labojumiem drošajiem gadījumiem.
* SEO → Pamati: tagline, organizācija/persona, logo un noklusējuma social attēls (ar mediju izvēli) — rakstās tieši WordPress/Yoast iestatījumos.
* Emails: uzticama e-pasta piegāde caur SMTP (aizstāj Post SMTP / WP Mail SMTP) — hosts/ports/šifrēšana/autorizācija, From pārrakstīšana (ar Reply-To saglabāšanu formu atbildēm), sūtījumu žurnāls ar precīzu kļūdas tekstu, testa e-pasts, cita SMTP spraudņa konflikta brīdinājums. Parole droši glabājama wp-config.php (BUGZIO_SMTP_PASSWORD).
* Funkcijas: jauns Lightbox (bez jQuery, ~2 KB) satura attēliem/galerijām — automātiski izlaiž visu, ko apstrādā Elementor lightbox (aizstāj FancyBox; ar Elementor Pro parasti nevajag nevienu).

= 1.10.0 =
* Jauna augšlīmeņa sadaļa "Cache" (provided by Bugzio.com) ar apakšizvēlnēm Dashboard / Settings / Database — perfektā kešošanas sistēma vienuviet.
* Cache Dashboard: statusa kartes katram keša slānim (lapu kešs, object cache, minifikācija, pārlūks+gzip, nginx, preloading, datubāze), 14 dienu hit-rate grafiks, "Purge all caches" un "Warm cache now" pogas, cita keša spraudņa konflikta brīdinājums.
* "Speed proof" karte: izmēra sākumlapu bez keša un no keša (ms + ietaupījums %) — pierādi klientam ātrumu ar diviem skaitļiem.
* Hit/miss statistika: lapu kešs tagad skaita HIT/MISS pa dienām (faila bāzēts, nulle DB slodzes karstajā ceļā).
* Cache preloading (LiteSpeed "crawler" stilā): periodiski sasilda sākumlapu, bloga indeksu un svaigāko saturu pa WP-Cron; automātisks warm-up pēc pilnas iztīrīšanas; servera slodzes sargs (skip, ja load augsts).
* Kampaņu saites (utm, fbclid, gclid, msclkid u.c.) vairs neapiet kešu — tās tiek apkalpotas no tīrā URL keša ieraksta. Hit-rate uz reklāmu trafika pieaug dramatiski.
* "Never cache these URLs" izslēgšanas saraksts (viena rinda = viens URL fragments).
* Gzip (mod_deflate) bloks .htaccess (Apache).
* Automātiska pilna iztīrīšana pēc WordPress/spraudņu/tēmu atjauninājumiem.
* Rīkjoslas (admin bar) izvēlne "Cache": Purge all / Purge this page no jebkuras lapas.
* Datubāzes optimizators (WP-Optimize stilā): revīzijas, auto-melnraksti, atkritumi, spam, izbeigušies transienti, orphan meta — ar skaitu pirms dzēšanas, partijveida dzēšanu un iknedēļas auto-tīrīšanu (drošā kopa); OPTIMIZE TABLE; tabulu izmēri; autoloaded opciju TOP-20 (slēptais ātruma slepkava).

= 1.9.0 =
* Jauns "Funkcijas" modulis un apakšizvēlne zem Bugzio: mazas lokālas utilītas, katra aizstāj atsevišķu spraudni, katra ar savu ieslēgšanas checkboxu (strādā pilnībā lokāli, bez Bugzio konta). Iekļautas: tīri URL / transliterācija (kirilica + diakritika ā/č/ū → latīņu; aizstāj Cyr-To-Lat), ieraksta/lapas dublēšana (aizstāj Duplicate Page), "Pēdējās izmaiņas" kolonna + izvēles frontend rādīšana (aizstāj WP Last Modified Info), attēlu samazināšana augšupielādē (aizstāj Resize Image After Upload), auto featured image, SVG augšupielāde ar sanitizāciju (aizstāj Safe SVG), komentāru atspējošana (aizstāj Disable Comments), emoji atspējošana, WP versijas/generator meta noņemšana, uzturēšanas režīms, XML-RPC atspējošana, revīziju ierobežošana.

= 1.8.1 =
* Jauna "Attēli" apakšizvēlne zem Bugzio: attēlu optimizācijas iestatījumi tagad ir atsevišķā izvēlnē (masveida optimizācija un pārskats paliek zem Media → Attēlu optimizācija, ar saiti). "Attēli" cilne no iestatījumiem pārcelta uz šo lapu.

= 1.8.0 =
* Ātrums/lapu kešs: keša mūžu (lifetime) tagad var iestatīt atsevišķi katram satura tipam — ierakstiem, lapām un jebkuram publiskam custom post type, kā arī sākumlapai un arhīviem/bloga sarakstam. Katram tipam vari izvēlēties "Tāpat kā noklusējums" vai savu laiku. Efektīvais TTL tiek iebūvēts katrā kešotajā failā, tāpēc pirms-vaicājuma apkalpošana paliek tikpat ātra. Vecie kešotie faili tiek godāti ar globālo noklusējumu.
* Atjauninājumi: spraudnis tagad pats pārbauda jaunas versijas Bugzio serverī un piedāvā tās tieši WordPress "Spraudņi" ekrānā ar vienu klikšķi (kā parasts atjauninājums), ieskaitot "Skatīt detaļas" ar izmaiņu sarakstu. Pašmitinātājiem versija tiek pārbaudīta pret `BUGZIO_SERVER_URL`. Darbojas bez API atslēgas.
* Nginx keša purge (Nginx Helper vietā): jauna iespēja automātiski iztīrīt nginx paša fastcgi/proxy kešu pie publish/edit (citādi lapa paliek stale līdz nginx TTL). Dzēš tieši attiecīgos keša failus, aprēķinot ceļu tāpat kā nginx (md5(atslēga) + levels). Konfigurējams keša ceļš, levels un cache-key; noklusējumi der izplatītākajam levels=1:2 setupam. Poga "Iztīrīt tagad". Drošs — dzēš tikai norādītajā keša mapē.
* Jauna "Kešs" apakšizvēlne: visi keši vienuviet (lapu kešs, object cache/Redis/Valkey, pārlūka kešs, minifikācija, nginx purge). "Ātrums" cilne no iestatījumiem pārcelta uz šo lapu. Iestatījumi tagad saglabājas pa ekrāniem neatkarīgi (viena ekrāna saglabāšana neskar citu).
* WordPress saderība: "Tested up to" atjaunināts uz 7.0 — pazūd brīdinājums "nav pārbaudīts ar jūsu WordPress versiju".
* Object cache (Redis / Valkey): jauns pastāvīgais objektu kešs — kešo datubāzes vaicājumus starp pieprasījumiem, paātrinot ielogotās lapas, WooCommerce un vadības paneli. Ātrums cilnē poga "Ieslēgt object cache" uzstāda drop-in (`object-cache.php`); strādā gan ar Redis, gan ar Valkey (nav vajadzīgs atsevišķs Redis Object Cache spraudnis). Prasa PhpRedis paplašinājumu. Savienojums caur `WP_REDIS_HOST/PORT/PASSWORD/DATABASE` konstantēm (saderīgi ar esošu setupu), noklusējums 127.0.0.1:6379. Ja serveris nav pieejams — droši atkāpjas uz atmiņas kešu (vietne strādā tālāk). Neaiztiek cita spraudņa drop-in.

= 1.6.3 =
* Ātrums: "Kešotās lapas" sadaļa tagad rāda vairāk — vecākā ieraksta vecumu, keša mūžu (TTL) un pēc pieprasījuma pilnu kešoto lapu sarakstu (URL, izmērs, vecums). Kešā tiek glabāts lapas URL, lai to varētu parādīt.

= 1.6.2 =
* Ātrums/lapu kešs: pirmreizējie (bez cepuma) apmeklējumi tagad tiek kešoti arī Polylang/WPML vietnēs — valodas cepums (pll_language u.c.) vairs nebloķē kešošanu. Filtrējams ar `bugzio_speed_ignorable_cookies`.
* Ātrums: izvades buferis tagad sākas agrāk (plugins_loaded), tāpēc lapu kešs un HTML minifikācija droši noķer pilno dokumentu arī ar lapu būvētājiem (Elementor) un LiteSpeed serveri.
* Ātrums/HTML minifikācija: tagad minificē arī inline <style>/<script> saturu; pievienots Content-Type aizsargs, lai JSON/XML atbildes nekad netiktu skartas.
* Ātrums/pārlūka kešs: .htaccess Expires bloks pats atjaunojas, ja pazudis vai palicis tukšs; `apply_browser_cache()` atgriež rezultātu.
* Ātrums: jauns diagnostikas headeris `X-Bugzio-Cache: MISS` kešojamiem pieprasījumiem (HIT jau bija) — viegli pārbaudīt keša stāvokli.

= 1.6.1 =
* Iestatījumu saglabāšana tagad notiek AJAX veidā — lapa netiek pārlādēta, paliec tajā pašā cilnē, un parādās "Iestatījumi saglabāti." toast paziņojums. Bez JavaScript strādā parastā saglabāšana.

= 1.6.0 =
* Jauns modulis "Tīrs panelis": paslēpj spraudņu/tēmas/WordPress paziņojumus wp-admin un savāc tos vienā rīkjoslas panelī "Paziņojumi" (nekas netiek dzēsts; “Settings saved” un inline paziņojumi paliek). Attiecināms uz administratoriem vai visiem aizmugures lietotājiem. Aizstāj atsevišķu "hide admin notices" spraudni.
* Bugzio tagad ir sava augšlīmeņa izvēlne (ar ikonu), nevis lapa zem Iestatījumiem.
* Viedrīku var rādīt arī wp-admin ("Rādīt admin panelī") + poga "Ziņot par kļūdu" rīkjoslā. Savienojuma pārbaude tagad strādā pirms atslēgas saglabāšanas.

= 1.5.0 =
* Jauns tehniskā inventāra modulis: reizi diennaktī (un pēc atjauninājumiem) nosūta Bugzio serverim kodola, spraudņu, tēmas, servera un konfigurācijas stāvokli, kā arī WooCommerce tehniskos datus. Tikai tehniski dati — bez satura, lietotāju, pasūtījumu vai krājumu datiem. Atspējo ar `add_filter('bugzio_inventory_enabled', '__return_false')`.
* Inventārs baro Bugzio WordPress servisa pārbaudes un CMS lauku, atslēdzot precīzas versiju, ievainojamību un datubāzes pārbaudes.

= 1.4.0 =
* Jauns modulis "Ātrums": HTML minifikācija, CSS/JS minifikācija (minificētas kopijas, oriģināli neskarti), lapu kešatmiņa neielogotiem apmeklētājiem ar automātisku iztīrīšanu un pārlūka kešošanas galvenes (.htaccess Expires).
* Jauna cilne "Ātrums" iestatījumos ar keša statistiku un tīrīšanas pogu.

= 1.3.0 =
* Servisu cilne sakārtota: kartīšu režģis, ieslēgtie servisi saraksta sākumā, kopsavilkums "ieslēgti X no Y".
* Pievienoti jaunie Bugzio servisi — melno sarakstu (blacklist) un ļaunatūras monitorings — ar ikonām un saitēm uz paneli.
* Izslēgtiem servisiem tagad ir saite "Ieslēgt Bugzio panelī" (uz projekta iestatījumiem).
* Servisu saraksts ielādējas automātiski, atverot lapu ar #bugzio-tab-services saiti.

= 1.2.2 =
* Pārskata lapā (Media → Attēlu optimizācija) tagad rāda attēlu pašreizējo kopējo svaru un aplēsto potenciālo ietaupījumu (pēc izmērītā vai noklusējuma WebP koeficienta).

= 1.2.1 =
* Labojums: optimizācijas statuss un poga tagad parādās arī mediju režģa skata modālajā logā (attēla detaļās). Mediju filtri tiek reģistrēti vienmēr, tiesības pārbaudot callback-os (agrākā plugins_loaded pārbaude neizdevās get-compat-media-markup AJAX laikā).

= 1.2.0 =
* Savienojums: servera URL lauks noņemts — fiksēts uz app.bugzio.com (pašmitinātiem `BUGZIO_SERVER_URL` konstante). Pieslēgšanās/reģistrācijas pogas, kamēr nav ievadīta API atslēga.
* Attēlu optimizācija: statuss + poga pie katra attēla (saraksts un detaļas) un atsevišķa sadaļa *Media → Attēlu optimizācija* ar pārskata kartītēm.
* Jauna cilne "Servisi" — Bugzio servisu statuss un saite uz paneli.
* i18n: pluginu virknes pārceltas uz angļu avotu + iekļauts latviešu tulkojums (`languages/bugzio-lv.mo`).
* Attēlu optimizāciju (pa vienam un masveidā) tagad var lietot ikviens ar `upload_files` tiesībām, ne tikai administratori.
* Brīdinājums, ja WP-Cron ir atslēgts un automātiskā optimizācija ieslēgta.
* Masveida lapa: dzīva statistikas atjaunošana pēc skrējiena un apstrāde lielākām bibliotēkām (bez klusā 2000 limita).

= 1.0.0 =
* Pirmā versija: pieteikumu viedrīks + attēlu optimizācija ar servera rindu.
