Skip to content

Releases: MAYA-DATA-PRIVACY/AI-Safe-Plugin

AI-Safe Plugin v1.3.0

Choose a tag to compare

@github-actions github-actions released this 22 Jun 11:15
e854d4f

[1.3.0] - 2026-06-21

Changed (Windows)

  • Windows installer wizard now displays Maya-branded purple artwork generated at build time instead of stale placeholder BMPs, and the Windows UX fixes from this release (hidden autostart console window, metadata self-healing, cached popup status, enlarged in-field badge, themed/deduplicated offline toast) are included in this re-release.

Security

  • The local server now requires a per-machine shared token on its detection endpoints (/detect, /classify, /structure, /anonymize). The server generates the token on startup and stores it with restricted permissions; the extension fetches it through the native messaging host and sends it as X-AI-Safe-Plugin-Token, so other local processes and localhost web pages can no longer drive detection. /health stays open and reports authRequired; auth can be disabled with --no-auth / AI_SAFE_PLUGIN_NO_AUTH=1.
  • Tightened the local server's CORS policy to browser-extension origins only (configurable via AI_SAFE_PLUGIN_EXTRA_ALLOWED_ORIGINS); localhost web pages are no longer allowed to call the API from the browser.
  • Added Host-header validation (loopback only) to defend against DNS rebinding, and a per-request socket timeout so a slow or idle client cannot tie up a server worker thread.
  • Releases now publish a SHA256SUMS file, and both installers verify downloaded assets against it: a backend-bundle mismatch aborts the install, a model mismatch falls back to the Hugging Face download, and a missing SHA256SUMS (older releases) warns and continues.
  • The local server no longer writes anonymisation response bodies to its logs. Anonymisation logging is now metadata-only by default (counts, status codes, and body sizes), so raw values returned by the Maya endpoint never reach the logs. Verbose logging can be restored for debugging by setting AI_SAFE_PLUGIN_DEBUG_ANON_LOGS=1.
  • Updated idna to 3.18 to close CVE-2024-3651, a crafted-input bypass of the earlier fix. It was a transitive dependency in uv.lock.

Changed

  • Rebranded the product to MAYA AISafe Plugin across the toolbar popup, options page, onboarding, playground, README, and a new categorized features doc (docs/FEATURES.md). Internal identifiers, native-host names, and the repository slug are unchanged.

  • Made the extension Chrome Web Store-ready: scripts/build_crx.sh --store (and npm run build:zip:store) produce a key-free upload package, and each GitHub release now also publishes an …-webstore.zip asset. The unpacked/GitHub zip keeps its pinned key for a stable extension ID.

  • Installers now auto-detect MAYA AISafe Plugin builds already present in a local Chromium browser (e.g. the Web Store build, whose ID Google assigns) and register those IDs for native messaging alongside the pinned default, so the Web Store and GitHub/unpacked installs both work.

  • Replaced the README logo with a single transparent-background mark so it stays visible in both light and dark themes.

  • Renamed the extension to AI-Safe Plugin, dropping the "AI Privacy Guard" / "Privacy Guard" suffix from the manifest, options page, and privacy policy.

  • Fixed Windows native-messaging setup by pinning AI-Safe Plugin's extension ID (aggkonihfabdcbgomkfecjhdolddfabe) and defaulting installers/native-host registration to that ID when no explicit custom ID is supplied. Existing unpacked installs must reload the extension once and rerun setup once so Chrome and the native-host manifest agree.

  • Rebranded the Windows local-server install path and scheduled task to AI-Safe-Plugin / AISafePluginGLiNER2, while keeping legacy cleanup for older Veil/PrivacyShield task names.

  • Hardened the local server against Windows client disconnects (WinError 10053) and corrupt runtime state files so aborted browser requests and partial writes no longer produce noisy startup or handler failures.

  • Fixed the macOS install on Apple Silicon where the downloaded managed Python was killed with SIGKILL ("Killed: 9"): the installer and native host now strip the Gatekeeper quarantine attribute and ad-hoc-sign the interpreter before it runs, so uv sync and the local server can start.

  • The native-host registration now accepts multiple browser extension IDs (and always includes the pinned ID), so one local server can be shared across Chrome, Brave, Edge, and other Chromium browsers on the same machine.

  • Refreshed the popup and settings UI: the toolbar/settings pages now use the high-resolution Maya mark (crisp white on the purple header, on a purple brand chip on light backgrounds) instead of the old low-contrast icon, and ship the Inter font for a consistent, professional look across devices. The browser toolbar action icons were regenerated to the white Maya atom on a purple rounded tile.

  • Tidied the popup header layout: the brand name now stays on a single line, the live "Active (Local)" status moved into the stats/hero area, and the Beta badge and version moved down into the footer.

  • Surfaced the beta product stage as a slim, dismissible banner at the top of the popup and settings pages (replacing the inline "Beta" chip in the settings sidebar), so the early-access status reads clearly and can be retired in one place later.

  • Refreshed the in-page field badge to the Maya atom mark on a brand-purple disc with a white halo so it stays clearly visible on any website background, plus a gentle resting animation; it still turns amber with a count when items need attention and green with a check when protected. The atom is drawn inline (bolder strokes) so it stays legible at the small badge size, and the onboarding welcome icon now uses the white Maya mark.

  • Improved the beta banner's contrast (deeper background, brighter text) and shrank its dismiss button, and fixed the playground page card so it is horizontally centered again.

  • Enlarged the in-field corner badge slightly (easier to see and click) and fixed the redaction panel's per-item action buttons rendering as oversized purple pills on the playground — the settings page's global button styling is now scoped to the settings and playground containers so it no longer leaks onto the injected in-page panel.

  • Re-themed the in-page UI (field panel, popover, token chips, toast notifications) from the old warm cream/brown palette to the purple Material-You theme used across the rest of the extension, so the injected surfaces match the brand. Semantic colours — risk-tier badges, error/warning toasts, and per-category detection colours — are unchanged.

Added

  • Non-sensitive settings now sync across your devices via Chrome sync: protection toggle, sensitivity, redaction mode, auto-redact, enabled types, custom patterns and detectors, and monitored/excluded sites and selectors. Secrets (Maya API key, anonymisation seed, server token), per-site ledgers, caches, local stats, and per-site snoozes are never synced and stay on the device. Local remains the source of truth; a newer copy from another device is applied on startup and live.

Changed

  • Expanded the default monitored-sites list to cover today's major AI chat apps — ChatGPT, Claude, Gemini, Copilot, Perplexity, Grok, DeepSeek, Mistral Le Chat, Poe, Character.AI, Pi, You.com, Meta AI, Qwen, DuckDuckGo (duck.ai), Hugging Face, Phind, and T3 Chat — so scoped monitoring protects them out of the box. (With "monitor all sites" on by default, every site is already covered; this improves the allowlist used when you scope monitoring to specific sites.)
  • AI-Safe Plugin now initializes lazily on ordinary websites: on pages that aren't known AI chat apps, it does no work until you focus a text field, instead of always loading its model ping, observers, and polling on every page. Known AI sites (ChatGPT, Claude, Gemini) still activate immediately on load.

Added

  • Added a local "Your privacy impact" summary in the options About section: a durable, privacy-safe tally of how many items you've protected in total, this week, and your top detection types. Counts only — it never stores the protected values or the sites you used — and the "Delete all data" control clears it.
  • Added a first-run interactive playground: a built-in "try it" page (linked from the end of onboarding and the options About section) where new users can insert synthetic sample text and watch AI-Safe Plugin detect, underline, and redact it — using the real in-page engine, without visiting any third-party site and without sending anything anywhere.
  • Accessibility pass on the in-page UI: the field badge is now a keyboard-operable button (Tab to it, Enter/Space opens the panel) with a screen-reader label that reflects its state; the detection panel is a focus-trapped dialog that closes on Escape and returns focus to the badge; status changes like "N items protected" are announced through an ARIA live region; toasts and token-tray chips carry proper roles/labels; and all animation continues to respect the reduced-motion setting.
  • Added keyboard shortcuts: Alt+Shift+R redacts all detections in the focused field, and Alt+Shift+V toggles AI-Safe Plugin off/on for the current site using the per-site exclude list.
  • Added per-site quick controls to the popup: the current host can be paused for one hour or turned off/on directly, backed by excludedSites and siteSnoozes storage that content scripts honor live.
  • Added a live count on the AI-Safe Plugin toolbar icon: an amber badge shows how many detections still need attention on the current page, flips to a green check when everything is protected, and clears when you navigate away — so you get an at-a-glance signal without opening the popup. Push-based and throttled; no new permissions.
  • Brought back the hover popover on detection underlines: hovering an unredacted detection now shows a small card with the detection type, a one-line explanation of why it matters, and Redact / Dismiss actions — so the colored underlines are self-explanator...
Read more

Veil v1.2.8

Choose a tag to compare

@github-actions github-actions released this 04 Apr 11:51

[1.2.8] - 2026-04-04

Windows Installer

  • Added a branded offline VeilSetup.exe Windows installer flow that stages the backend files and release metadata, then provisions the Windows runtime locally during setup instead of shipping a non-portable CI-built virtualenv.
  • Updated the Windows install UX so Veil can generate a command that downloads the latest VeilSetup.exe release asset and passes /EXTENSION_ID=<chrome.runtime.id>, while the installer only falls back to a manual extension-ID prompt when that argument is missing.
  • Added a stable VeilSetup.exe latest-release alias alongside the versioned installer asset so extension-generated install commands do not need to guess the current versioned filename.
  • Switched the Windows installer to a lighter bootstrap flow that downloads the GLiNER2 model from the release assets during setup with installer progress, instead of baking the model into VeilSetup.exe.
  • Windows and Unix refresh installs now reuse an existing valid local GLiNER2 model cache instead of redownloading it on every update, while full uninstall still removes the cached model data.
  • Fixed the Windows popup install command so PowerShell can paste and run it correctly without expanding $installer too early in the current shell.
  • Fixed the Windows setup model extraction path so the downloaded veil-model-fp16.tar.gz now unpacks correctly during install.
  • Fixed the Windows installer script ordering so the Inno Setup compiler can resolve the model extraction helpers during release builds.
  • Fixed the Windows setup runtime bootstrap so the installed .venv is created on the user's machine and no longer points back to the GitHub Actions runner Python path.

Windows Runtime Reliability

  • Fixed Windows native-host PID liveness checks so Veil no longer uses the Unix-style os.kill(pid, 0) probe on Windows, which could surface low-level OSError failures during server start.
  • Switched Windows stop behavior to taskkill-based process teardown and hardened server launch with safer Windows-specific process creation flags and clearer startup error reporting.

Release Automation and Coverage

  • Added a Windows installer staging builder, branded installer assets, and release-pipeline automation that compiles and publishes the Windows setup binary from GitHub Actions.
  • Added regression coverage for the Windows setup packaging flow and for the Windows-specific native-host process handling changes.

Veil v1.2.7

Choose a tag to compare

@github-actions github-actions released this 04 Apr 07:13

[1.2.7] - 2026-04-04

Improvements

  • Bundled GLiNER2 fp16 ONNX model in GitHub Release assets, eliminating the slow HuggingFace Hub download during install. Model downloads are now served from GitHub CDN.
  • Fixed double model download caused by mismatched cache paths between the install script pre-download and the systemd/launchd service.
  • Added cache environment variables to the Windows scheduled task and immediate server start, ensuring the model is found in the correct location.
  • Moved installer scripts (install.sh, install.ps1, uninstall.sh, uninstall.ps1) from the repository root to scripts/installers/ for a cleaner project structure.
  • Added scripts/sync_version.py for single-source versioning: edit package.json once, then run npm run version:sync to propagate to manifest.json and pyproject.toml. CI checks for drift automatically.
  • Made e2e test version assertions dynamic, reading from the extension manifest instead of hardcoded values.

Veil v1.2.6

Choose a tag to compare

@github-actions github-actions released this 04 Apr 05:17

Veil Extension v1.2.6

Installation

  1. Download veil-extension-1.2.6.zip below
  2. Extract the zip file
  3. Open Chrome -> -> Enable Developer mode
  4. Click Load unpacked and select the extracted folder

Local Server Install / Update

Linux/macOS:

Windows:

Local Server Uninstall

Linux/macOS:
Veil local server is not installed at /home/runner/.local/share/veil.

Windows:

Chrome Web Store

Submit the zip to the Chrome Web Store Developer Console.

Changelog

[1.2.6] - 2026-04-04

Bug Fixes

  • Fixed sender-tab guard blocking popup and settings page communication with the background service worker, which caused "Active (Setup Needed)", "Native host missing", and "message port closed" errors even when the server was installed and running.
  • Fixed popup status subtitle flickering by removing the competing renderStats override on the status subtitle element — server status is now solely managed by renderServerStatus.

Veil v1.2.5

Choose a tag to compare

@github-actions github-actions released this 04 Apr 04:20

Security Hardening

  • Added Content-Security-Policy (script-src 'self'; object-src 'none') to the extension manifest, blocking eval, inline scripts, and object embeds in all extension pages.
  • Fixed an XSS vector in textToHtmlPreserveLayout where code-block and inline-code content bypassed HTML escaping before innerHTML insertion in contentEditable elements.
  • Added a ReDoS guard (1,000-match cap) to the custom-pattern regex loop in the background service worker, preventing catastrophic backtracking from user-defined patterns.
  • Replaced inline onerror event handlers in popup and options HTML with CSP-safe JavaScript listeners.
  • Removed raw PII entries from the server-side anonymization request log; only entries_count is logged now.
  • Added length limits on custom-pattern fields: label ≤ 64, regex ≤ 500, replacement ≤ 200 characters.
  • Added HTTPS-scheme validation on release-link URLs sourced from the GitHub API before assigning them to anchor href attributes.
  • Added a sender-tab guard on the background message handler, rejecting messages that don't originate from a content script in a real tab.
  • Replaced realistic-looking dummy API keys in test fixtures with clearly fake placeholders to avoid git secret-scanner false positives.

Installer Improvements

  • Windows install is now one-command: powershell -ExecutionPolicy Bypass -File install.ps1 --extension-id <ID> or $env:VEIL_EXTENSION_ID='<ID>'; irm .../install.ps1 | iex.
  • Windows uninstall is now one-command: powershell -ExecutionPolicy Bypass -File uninstall.ps1 or irm .../uninstall.ps1 | iex.
  • Improved uninstall messaging to confirm removal of server, venv, models, and all cached data.

Popup and Onboarding Polish

  • Reworked the popup onboarding flow into a consistent Material 3 purple surface, removing the leftover amber/gold treatment and tightening the popup-sized layout.
  • Fixed the first-use mask hint so it appears after onboarding is dismissed instead of being silently consumed while the onboarding overlay is still covering the popup.
  • Updated release-state messaging so Veil no longer shows a prominent delayed-check warning when GitHub is temporarily unavailable but the installed extension and local server bundle already match locally.
  • Fixed popup status subtitle flickering between server status and "Not active on this page" when server is online.

Redaction UX

  • Cleaned up the popup/settings redaction key so it shows only currently active redactions instead of long-lived response-restore aliases and partial-name mappings.
  • Improved redaction key layout so long anonymized values wrap cleanly instead of blowing out the dropdown panel.
  • Corrected live popup/settings stats so detected counts all active detections on the page while protected continues to reflect the redacted subset.

Test and Fixture Hygiene

  • Replaced production-looking fixture secrets in the shared regex smoke corpus with clearly synthetic placeholders while preserving detector coverage.
  • Refreshed the regex smoke demo and shared fixture references for the v1.2.5 release.

Veil v1.2.4

Choose a tag to compare

@github-actions github-actions released this 03 Apr 14:40

Veil Extension v1.2.4

Installation

  1. Download veil-extension-1.2.4.zip below
  2. Extract the zip file
  3. Open Chrome -> -> Enable Developer mode
  4. Click Load unpacked and select the extracted folder

Local Server Install / Update

Linux/macOS:

Windows:

Local Server Uninstall

Linux/macOS:
Veil local server is not installed at /home/runner/.local/share/veil.

Windows:

Chrome Web Store

Submit the zip to the Chrome Web Store Developer Console.

Changelog

[1.2.4] - 2026-04-02

Update UX and Backend Tracking

  • Split extension and backend release state in the popup/settings UI so Veil can clearly show mixed states like “extension behind, backend already updated” instead of masking backend success behind one generic update warning.
  • Refreshed release-state checks whenever the popup or settings view regains focus, reducing the need to close and reopen Veil after refreshing the local server bundle.
  • Surfaced missing backend release metadata as a one-time refresh step instead of incorrectly implying that the installed backend is definitely outdated.
  • Fixed Unix release metadata stamping so the stored backend html_url is extracted from the actual GitHub release payload instead of occasionally capturing an unrelated nested URL.
  • Embedded canonical release metadata directly into the backend bundles so local installs can verify the installed server version even when api.github.com is temporarily rate-limited or unavailable.
  • Updated the Unix and Windows installers to stamp .runtime/bundle_release.json from the bundled metadata and add installed_at locally instead of depending on a live GitHub API call during install.
  • Changed the settings popup/update surface to treat GitHub latest-release lookups as best-effort only: Veil now shows a verified local bundle state when installed metadata is known, and falls back to “backend version unknown” when both GitHub and local metadata are unavailable.

Settings and Maintenance

  • Fixed settings-page sidebar navigation so section headers land fully below the sticky control bar, improved bottom-of-page scroll-spy behavior, and made the About section reliably selectable.
  • Moved local server uninstall into Diagnostics so setup, logs, runtime details, and repair actions live in one Local Server workflow.
  • Polished the Local Server maintenance surface with clearer recovery copy and a more explicit uninstall command section for removing the native host, autostart entry, and installed backend bundle.

Regex Detection

  • Unified Veil’s built-in sensitive-token patterns into one shared regex catalog used by the background runtime, popup/options editor, and content-side settings normalization, eliminating drift between UI and detection behavior.
  • Updated the online regex toggle to govern all regex-based detectors while GLiNER is healthy, while keeping regex fallback automatic when the local server is offline.
  • Switched new installs and unset profiles to default to AI + Regex so structured secrets are protected alongside GLiNER from the first run.
  • Expanded the built-in regex catalog coverage for GitHub tokens, IPv6, PAN, Aadhaar, passport, IFSC, and Indian driver-license patterns, and ensured explicit regex replacements are respected even in anonymize mode for token-style detections.
  • Added a dedicated built-in MAC-address detector so colon-delimited MAC values no longer get mislabeled as IPv6 placeholders during regex protection.
  • Added a shared regex smoke corpus and hostile-editor E2E fixtures so built-in and custom regex detectors are verified in online, offline, and internal-scroll scenarios without depending on a live local server.

Overlay and Onboarding Polish

  • Reworked hostile-editor overlay refresh so external highlight boxes are rebuilt from tracked state, clipped to the visible editor scroll bounds, and refreshed through one anchored UI scheduler instead of lingering as stray floating boxes during Gemini-style internal scrolling.
  • Stabilized hostile-editor overlay highlights by updating them in place instead of destroying and recreating them on every layout pass, reducing visible flicker in Gemini/Claude-style editors.
  • Added a stable hover-intent reveal card for redacted hostile-editor overlays so original text stays readable while moving the pointer from the token to the reveal card.
  • Added clearer live regex-runtime status notes to popup and settings so users can tell whether Veil is currently running in AI only, AI + Regex, or Regex fallback mode.
  • Updated the setup flow styling to keep button text readable on hover and align the onboarding surface with Veil’s dashboard color language.

Privacy Hardening

  • Removed inline response de-anonymization from provider-owned chat threads so Veil no longer writes original PII back into ChatGPT/Gemini/Claude-style message history.
  • Tightened ChatGPT input monitoring so historical user turns are never mistaken for live composer surfaces.
  • Standardized anonymize-mode fallback so supported entities fall back to safe masking instead of alias placeholders when Maya anonymization is unavailable.
  • Restored original PII only in assistant responses on the user’s device while keeping user-thread prompts permanently protected in provider-owned history.
  • Improved staged refinement so Maya-supported labels like emails inherit their anonymized replacements after the fast local regex pass instead of remaining stuck in temporary mask placeholders.
  • Clarified popup/settings copy that Maya anonymization is the trusted remote path for supported labels, unsupported detections stay local, and Diagnostics are local-only troubleshooting data.

Performance and Composer Protection

  • Added a staged long-paste protection flow that applies fast local regex/custom masking first, then refines the same canonical source text with GLiNER and Maya anonymization in the background.
  • Tightened send guards so Veil blocks submission while protection is still pending, preventing large pasted prompts from slipping through before refinement completes.
  • Switched popup protection counts to compute from the live redaction state so the UI reflects the actual number of protected items on the page during staged refinement.

Windows Installer

  • Changed the Windows PowerShell installer to treat autostart registration as a warning when permissions block scheduled-task creation, allowing the core backend/native-host install to finish cleanly in non-admin sessions.
  • Added a safe immediate-start step after install on Windows so Veil can start the local server for the current session when port 8765 is free, while still warning instead of failing if the server is already running or the port is occupied.
  • Replaced the previous cmd.exe-only manual start guidance in the Windows autostart script with both Command Prompt and PowerShell-safe instructions.

Veil v1.2.3

Choose a tag to compare

@github-actions github-actions released this 31 Mar 16:26

Veil Extension v1.2.3

Installation

  1. Download veil-extension-1.2.3.zip below
  2. Extract the zip file
  3. Open Chrome -> -> Enable Developer mode
  4. Click Load unpacked and select the extracted folder

Local Server Install / Update

Linux/macOS:

Windows:

Local Server Uninstall

Linux/macOS:
Veil local server is not installed at /home/runner/.local/share/veil.

Windows:

Chrome Web Store

Submit the zip to the Chrome Web Store Developer Console.

Changelog

[1.2.3] - 2026-03-31

Runtime and Packaging

  • Included the Windows installer follow-up fix and regression test that harden the PowerShell install path and keep the release line aligned with commit b26472e258d48cc0ca1631cbb409fa6d8d0d5a4c.
  • Tightened the local GLiNER2 server CORS behavior so it only reflects trusted browser-extension and localhost origins instead of sending a wildcard allow-origin header.

Privacy UX and Settings

  • Persisted the Maya anonymization seed in extension storage so anonymized replacements stay stable across sessions instead of changing on each browser restart.
  • Switched first-use defaults and guidance toward mask mode, including one-time mask-mode hints in both the popup and content-script flow so users understand the zero-setup path before opting into anonymization.
  • Polished the onboarding overlay layout for popup-sized surfaces and replaced the welcome icon with the Veil brand asset for a cleaner first-run experience.
  • Escaped custom pattern and custom entity labels before rendering them in the popup/settings UI, closing an HTML injection path in user-supplied display text.

Veil v1.2.2

Choose a tag to compare

@github-actions github-actions released this 27 Mar 15:07

Veil Extension v1.2.2

Installation

  1. Download veil-extension-1.2.2.zip below
  2. Extract the zip file
  3. Open Chrome -> -> Enable Developer mode
  4. Click Load unpacked and select the extracted folder

Local Server Install / Update

Linux/macOS:

Windows:

Local Server Uninstall

Linux/macOS:
Veil local server is not installed at /home/runner/.local/share/veil.

Windows:

Chrome Web Store

Submit the zip to the Chrome Web Store Developer Console.

Changelog

[1.2.2] - 2026-03-27

Runtime and Packaging

  • Replaced the ad-hoc venv + pip + requirements.txt bootstrap path with a pinned uv runtime contract: uv 0.10.7, managed Python 3.11.11, project metadata in pyproject.toml, and a committed uv.lock for deterministic installs.
  • Updated the Linux and Windows installers to provision Veil’s runtime inside the install directory, preserve .env and .runtime, rebuild incompatible environments in place, and stop Veil-owned processes before overwriting backend files.
  • Switched backend bundle creation to ship the uv metadata files required for offline-consistent runtime sync and removed the now-obsolete requirements.txt dependency definition.
  • Fixed the Windows PowerShell installer path that previously failed on fresh systems when schtasks /end was called for a missing legacy task, and migrated autostart/native-host identifiers from the old PrivacyShield... naming to Veil-branded names with cleanup for both generations during reinstall and uninstall.

Native Host and Local Server Control

  • Extended the native messaging host with explicit restart support, richer runtime metadata, and settings-page diagnostics for the managed Python path, pinned uv binary, and local port ownership state.
  • Tightened server lifecycle semantics so Veil only stops Veil-owned backend processes discovered from tracked PID state or Veil-specific command lines under the current install directory.
  • Added non-destructive port-conflict handling for 127.0.0.1:8765: when another local process owns the port, Veil now reports the conflict in the settings UI instead of attempting to terminate it.
  • Added a dedicated Unix native-host launcher that always executes the Veil-managed interpreter, aligning Chrome native-messaging startup with the same local .venv used by manual start, autostart, and backend tests.

Settings Experience

  • Promoted the settings page into the primary post-install control surface by adding an explicit Restart Server action alongside the existing start/stop/refresh controls.
  • Expanded diagnostics to expose the active GLiNER2 model, runtime directory, managed interpreter version, uv version, log path, and live port state so runtime failures are debuggable without opening a terminal.
  • Carried forward the last 20 upstream commits’ release and installer work into a single technical release narrative: manual tag-based publishing, backend release metadata, richer update notices, improved popup/options server management, backend server tests, and hardened reinstall/uninstall paths.

Release Engineering and Tests

  • Migrated Python CI and release jobs to astral-sh/setup-uv and uv sync --frozen, so test and release workflows now validate the same locked runtime that end users install.
  • Added native-host unit coverage for port-conflict detection, ownership-safe stop behavior, and restart sequencing, plus popup/options E2E coverage for the new restart control.
  • Cleaned up release documentation so contributor setup, test commands, and manual release steps all reference the uv-managed runtime rather than the removed requirements.txt flow.

Veil v1.2.1

Choose a tag to compare

@github-actions github-actions released this 27 Mar 14:11

Veil Extension v1.2.1

Installation

  1. Download veil-extension-1.2.1.zip below
  2. Extract the zip file
  3. Open Chrome -> -> Enable Developer mode
  4. Click Load unpacked and select the extracted folder

Local Server Install / Update

Linux/macOS:

Windows:

Local Server Uninstall

Linux/macOS:
Veil local server is not installed at /home/runner/.local/share/veil.

Windows:

Chrome Web Store

Submit the zip to the Chrome Web Store Developer Console.

Changelog

[1.2.1] - 2026-03-27

Runtime and Packaging

  • Replaced the ad-hoc venv + pip + requirements.txt bootstrap path with a pinned uv runtime contract: uv 0.10.7, managed Python 3.11.11, project metadata in pyproject.toml, and a committed uv.lock for deterministic installs.
  • Updated the Linux and Windows installers to provision Veil’s runtime inside the install directory, preserve .env and .runtime, rebuild incompatible environments in place, and stop Veil-owned processes before overwriting backend files.
  • Switched backend bundle creation to ship the uv metadata files required for offline-consistent runtime sync and removed the now-obsolete requirements.txt dependency definition.

Native Host and Local Server Control

  • Extended the native messaging host with explicit restart support, richer runtime metadata, and settings-page diagnostics for the managed Python path, pinned uv binary, and local port ownership state.
  • Tightened server lifecycle semantics so Veil only stops Veil-owned backend processes discovered from tracked PID state or Veil-specific command lines under the current install directory.
  • Added non-destructive port-conflict handling for 127.0.0.1:8765: when another local process owns the port, Veil now reports the conflict in the settings UI instead of attempting to terminate it.
  • Added a dedicated Unix native-host launcher that always executes the Veil-managed interpreter, aligning Chrome native-messaging startup with the same local .venv used by manual start, autostart, and backend tests.

Settings Experience

  • Promoted the settings page into the primary post-install control surface by adding an explicit Restart Server action alongside the existing start/stop/refresh controls.
  • Expanded diagnostics to expose the active GLiNER2 model, runtime directory, managed interpreter version, uv version, log path, and live port state so runtime failures are debuggable without opening a terminal.
  • Carried forward the last 20 upstream commits’ release and installer work into a single technical release narrative: manual tag-based publishing, backend release metadata, richer update notices, improved popup/options server management, backend server tests, and hardened reinstall/uninstall paths.

Release Engineering and Tests

  • Migrated Python CI and release jobs to astral-sh/setup-uv and uv sync --frozen, so test and release workflows now validate the same locked runtime that end users install.
  • Added native-host unit coverage for port-conflict detection, ownership-safe stop behavior, and restart sequencing, plus popup/options E2E coverage for the new restart control.
  • Cleaned up release documentation so contributor setup, test commands, and manual release steps all reference the uv-managed runtime rather than the removed requirements.txt flow.

Veil v1.2.0

Choose a tag to compare

@github-actions github-actions released this 27 Mar 11:07

Veil Extension v1.2.0

Installation

  1. Download veil-extension-1.2.0.zip below
  2. Extract the zip file
  3. Open Chrome -> -> Enable Developer mode
  4. Click Load unpacked and select the extracted folder

Local Server Install / Update

Linux/macOS:

Windows:

Local Server Uninstall

Linux/macOS:

Windows:

Chrome Web Store

Submit the zip to the Chrome Web Store Developer Console.

Changelog

[1.2.0] - 2026-03-27

Features

  • Add dependabot configuration for automated dependency updates (097a7b8)
  • Add GitHub Actions for CI, CodeQL, and Dependabot, and update README badges. (4798939)
  • Add JWT utility functions and simplify CSS animations and transitions across various UI elements. (df79936)
  • enhance UI with design tokens and improve styling for various elements (b66bff7)
  • implement reveal overlay for redacted text and enhance external highlights (2f20499)
  • Integrate MayaData anonymization service with JWT token management and API communication. (fe63c51)
  • Major feature additions — GLiNER2 server integration, custom PII types, cross-platform install scripts, tests (7c75332)
  • migrate storage from chrome.storage.sync to chrome.storage.local (b4d16c0)
  • Refactor content-editable rendering to use string-based HTML generation with delegated event listeners, improve detection filtering to prevent overlaps, and enhance synthetic token recognition. (1734b89)
  • Rename extension to "Veil" and enhance UI (db526fa)
  • Rename project to Veil, update package metadata, and add GitHub funding configuration. (83ab788)

Bug Fixes

  • ci: summarize release-please outputs in workflow summary (36d26df)
  • ensure build script output path is absolute and correct manifest path in release workflow. (fe10b68)
  • Update CI pip install to use --extra-index-url for PyTorch wheels. (7593711)
  • Update README to enhance clarity and improve branding with new logo and descriptions (bf8c9ed)