feat(extension): browser extension for Chrome/Edge/Firefox + CI + v0.8.0
Some checks failed
Beta Release / beta (push) Failing after 48s
Some checks failed
Beta Release / beta (push) Failing after 48s
Adds a WXT-based browser extension that replaces manual JS snippet injection for AI-driven browser testing. The extension auto-connects to the Muyue server via WebSocket on every page, using the exact same protocol as the existing snippet — zero backend changes needed. - Chrome/Edge (MV3) + Firefox (MV2) from single codebase via WXT - Content script: auto-connect WS, console capture, URL tracking, RPC - Background service worker: token management, screenshots, badge - Popup + side panel with server status, sessions, URL config - CI workflows: build extension, attach .zip to releases - Makefile targets: ext, ext-chrome, ext-firefox, ext-zip - Version bumped to 0.8.0 Assisted-by: GLM-5.1 via Crush <crush@charm.land>
This commit is contained in:
51
CHANGELOG.md
51
CHANGELOG.md
@@ -4,6 +4,57 @@ All notable changes to this project will be documented in this file.
|
||||
|
||||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
|
||||
|
||||
## v0.8.0
|
||||
|
||||
### Extension navigateur — Chrome, Edge, Firefox
|
||||
|
||||
Nouvelle fonctionnalité majeure : une extension navigateur multi-plateforme qui remplace l'injection manuelle du snippet JS pour les tests pilotés par l'IA.
|
||||
|
||||
**Ce que fait l'extension :**
|
||||
|
||||
- **Auto-injection** du client Muyue sur chaque page HTTP/HTTPS — plus besoin de copier-coller le snippet dans la console DevTools
|
||||
- **Capture console** temps réel (log/warn/error/debug + window.onerror + unhandledrejection) transmise au serveur Muyue
|
||||
- **Screenshots natifs** via `chrome.tabs.captureVisibleTab` / `browser.tabs.captureVisibleTab` — pixels parfaits, pas le hack SVG foreignObject
|
||||
- **Side Panel** (Chrome/Edge) et **Sidebar** (Firefox) pour monitoring statut serveur + sessions connectées
|
||||
- **Popup toolbar** : statut serveur, nombre de sessions, erreurs console, lien vers le dashboard
|
||||
- **Badge dynamique** : nombre de sessions connectées (vert) ou statut serveur (rouge/orange)
|
||||
- **Détection URL** via interception History API (pushState, replaceState, popstate) + MutationObserver + fallback polling — survit aux navigations SPA
|
||||
- **Auto-reconnect** avec backoff exponentiel en cas de déconnexion transitoire
|
||||
- **Compatible Firefox** via Manifest V2 (sidebar_action) et Chrome/Edge via Manifest V3 (sidePanel API)
|
||||
|
||||
**Architecture technique :**
|
||||
|
||||
- **WXT framework** (build multi-navigateur) avec Vite 8
|
||||
- **Content script** : même protocole WS que le snippet existant — aucun changement backend nécessaire
|
||||
- **Background service worker** : `chrome.alarms` pour health checks périodiques (pas de `setInterval`), `chrome.storage.local` pour la config (pas de `localStorage` en MV3)
|
||||
- **Builds** : `npm run build` (Chrome MV3) + `npm run build:firefox` (Firefox MV2) + `npm run zip` (packages stores)
|
||||
- **CI** : les 3 workflows (PR, beta, stable) buildent l'extension et attachent les `.zip` aux releases
|
||||
|
||||
**Fichiers ajoutés :**
|
||||
|
||||
```
|
||||
extension/
|
||||
├── package.json, wxt.config.js, .gitignore, README.md
|
||||
├── public/icon/ # Icons copiés depuis assets/
|
||||
└── src/
|
||||
├── entrypoints/
|
||||
│ ├── background.js # Service worker (token, badge, screenshots)
|
||||
│ ├── content.js # Auto-injection WS + console capture + History API
|
||||
│ ├── popup/ # HTML + JS du popup toolbar
|
||||
│ └── sidepanel/ # HTML + JS du side panel / sidebar
|
||||
├── lib/
|
||||
│ ├── config.js # Storage async (chrome.storage + localStorage)
|
||||
│ └── page-rpc.js # DOM RPC (list_clickables, click, type, eval)
|
||||
└── styles/panel.css # Thème cyberpunk cohérent avec Muyue
|
||||
```
|
||||
|
||||
**Autres changements :**
|
||||
|
||||
- **CI** : les 3 workflows (`ci-pr.yml`, `ci-develop.yml`, `ci-main.yml`) buildent l'extension et attachent les `.zip` aux releases
|
||||
- **Makefile** : cibles `ext`, `ext-chrome`, `ext-firefox`, `ext-zip` ajoutées
|
||||
- **README** : section "Browser Extension" ajoutée avec instructions install + dev
|
||||
- **Version** : bump 0.7.9 → 0.8.0
|
||||
|
||||
## v0.7.9
|
||||
|
||||
### Tests pilotés par l'IA — robustesse + captures d'écran
|
||||
|
||||
Reference in New Issue
Block a user