Contributing to Jev Shield ๐ก๏ธ
September 18, 2026 ยท View on GitHub
Thank you for your interest in contributing to Jev Shield! We welcome bug reports, feature proposals, and pull requests from both human developers and autonomous AI coding agents.
Code of Conduct
Please be respectful, constructive, and kind in all discussions and code reviews.
Development Setup
1. Prerequisites
- Node.js v20.0 or higher
- Google Chrome (or Chromium-based browser)
- A TypeSafe AI API Key
2. Getting the Code
git clone https://github.com/vmendes90/jev-shield.git
cd jev-shield
npm install
3. Building the Extension
npm run build
This runs tsc && vite build. Output is written directly into dist/.
4. Running Chrome with Extension Loaded
# Launch a dedicated Chrome test window loaded with Jev Shield in an isolated profile
npm run test:chrome
# Or target a specific test page directly
node scripts/launch_chrome.js "https://canyoublockit.com/testing/"
Invariants & Critical Architecture Rules
Before writing code or opening a PR, please read AGENTS.md thoroughly. Key rules include:
- YouTube DeclarativeNetRequest: NEVER add internal player endpoints (
/youtubei/v1/player/ad_break*or/pagead/*) torules/ad_rules.json. This causes intentional 10โ15 second fake buffering stalls enforced by YouTube's player. - YouTube Video Seeking: NEVER set
video.currentTime = video.duration. Doing so jumps to the end of the entire main video or starves MSE media buffers. Instead, use the 16x muted acceleration engine. - Synthetic Clicks: Always use
simulateClick(element)(pointerdownโmousedownโpointerupโmouseupโclick) rather than bare.click(). - Media Safeguards: Never collapse or apply
display: noneto#movie_player,ytd-player, or any element matchingisMediaOrPlayerElement(). - BYOK Security: Never add telemetry, tracking, or remote key transmission. The user's API key must only ever communicate with
api.typesafe.ai.
Submitting Pull Requests
- Fork the repository and create your branch from
mainormaster. - Ensure your changes compile cleanly with
npm run build(exit code 0). - Follow conventional commit messages (
feat:,fix:,refactor:,docs:,chore:). - Open a Pull Request with a clear description of the problem solved and manual testing steps.