Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
83 commits
Select commit Hold shift + click to select a range
39ed905
chore: add husky lint-staged prettier pre-commit and commitlint hook
vannt-dev Apr 2, 2026
032b0d6
chore: optimize tooling, hooks and CI workflows
vannt-dev Apr 2, 2026
bbcd1e0
ci: fix commitlint target revision resolution
vannt-dev Apr 2, 2026
b4e7253
chore: customize husky commitlint error format
vannt-dev Apr 2, 2026
b0acf88
docs: update README with development standards
vannt-dev Apr 2, 2026
267e244
feat: core logic updates (background, panel, ui, shared, package)
vannt-dev Apr 2, 2026
15deb8e
feat: update core sources and tests
vannt-dev Apr 20, 2026
feaa133
fix: add privacy policy and optimize for store review
vannt-dev Apr 20, 2026
55c189c
feat: add tab navigation, collapsible types, refresh loading, and mul…
vannt-dev May 8, 2026
ac7e66d
fix: update test to expect clearApis message in init flow
vannt-dev May 8, 2026
850adc8
feat: add wildcard glob matching and URL redirect with substitution
vannt-dev May 8, 2026
9e49875
feat: add tab navigation, URL redirect, and usage guides
vannt-dev May 8, 2026
d023782
chore: bump version to 2.0.0
vannt-dev May 8, 2026
3ea0d15
chore: align package.json version with manifest
vannt-dev May 8, 2026
090032d
chore: increase commitlint header max length to 100
vannt-dev May 8, 2026
07081c7
chore: trim manifest description to meet store 132-char limit
vannt-dev May 8, 2026
07d3116
fix: per-domain storage isolation, debounce persistence, and test har…
vannt-dev May 12, 2026
b48db84
fix: persist enable state with flat storage key to survive F5 navigation
vannt-dev May 13, 2026
d84d07e
fix: reconnect API stream after service worker suspends, plus cleanup…
vannt-dev Jul 7, 2026
695ecde
fix: dedupe lint-staged config (package.json key was shadowed by lint…
vannt-dev Jul 7, 2026
4629f37
docs: add design spec for per-rule toggle, method matching, and impor…
vannt-dev Jul 7, 2026
3bcadf8
docs: add implementation plan for per-rule toggle, method matching, a…
vannt-dev Jul 7, 2026
819a221
chore: ignore .worktrees/ directory used for isolated feature work
vannt-dev Jul 7, 2026
7a4bb4d
feat: add enabled/method fields to OverrideRule and matchesMethod helper
vannt-dev Jul 7, 2026
69c6af7
feat: findOverride skips disabled rules and method-mismatched rules
vannt-dev Jul 7, 2026
3ed07a5
feat: split rule matching from enabled state so disabled rules stay v…
vannt-dev Jul 7, 2026
a7fee50
fix: prefer enabled rule over disabled rule when multiple overrides m…
vannt-dev Jul 7, 2026
dc1ab64
chore: remove stray test-output.txt/test-results.txt committed by mis…
vannt-dev Jul 7, 2026
a70e22a
feat: add per-rule enable/disable checkbox to the Rules list
vannt-dev Jul 8, 2026
f963214
feat: add HTTP method field to the override add/edit modal
vannt-dev Jul 8, 2026
c7225ee
feat: export current domain's override rules as a JSON file
vannt-dev Jul 8, 2026
28cd2c5
feat: import override rules from a JSON file with merge/replace choice
vannt-dev Jul 8, 2026
d1339b5
fix: reject imported rules with non-string method/body/redirectUrl or…
vannt-dev Jul 8, 2026
86849f4
docs: document per-rule toggle, method matching, and import/export
vannt-dev Jul 8, 2026
7e4a38e
fix: prevent pre-push commitlint hook from crashing on a branch's fir…
vannt-dev Jul 8, 2026
839fe19
fix: address whole-branch review polish items for import/export and r…
vannt-dev Jul 8, 2026
764aa07
fix: close jsdom windows after tests to stop CI from hanging
vannt-dev Jul 8, 2026
e09a3e6
docs: add phase 1 reliability design spec
vannt-dev Jul 9, 2026
c1f1359
docs: add phase 1 reliability implementation plan
vannt-dev Jul 9, 2026
f4c8da3
fix: make glob * match empty segments and stop re-substituting captures
vannt-dev Jul 9, 2026
9923d03
feat: add TabStateStore with session mirror, caps, dispose, and rehyd…
vannt-dev Jul 9, 2026
47fd9ea
refactor: move background per-tab state onto TabStateStore
vannt-dev Jul 9, 2026
30e9207
feat: rehydrate tab state and re-attach debugger on worker startup
vannt-dev Jul 9, 2026
3235558
feat: follow tab navigation across origins and capture cross-origin r…
vannt-dev Jul 9, 2026
b52c636
fix: ignore stale overrides load when tab navigates again mid-fetch
vannt-dev Jul 9, 2026
a66a763
feat: record and report debugger attach status, dedupe concurrent att…
vannt-dev Jul 10, 2026
5fcda5f
feat: surface debugger attach status in the popup and panel
vannt-dev Jul 10, 2026
bef3504
fix: validate mode and method values on rule import
vannt-dev Jul 10, 2026
402a439
ci: run the CI workflow on pushes to develop
vannt-dev Jul 10, 2026
ff54831
ci: require the build and test suite to pass before any push
vannt-dev Jul 10, 2026
b368f47
fix: adopt surviving debugger sessions and report attach status reliably
vannt-dev Jul 10, 2026
4e3e8d6
test: remove duplicated background flow tests
vannt-dev Jul 10, 2026
62df99a
chore: silence expected namespace unused-var warnings in eslint
vannt-dev Jul 10, 2026
7928f66
ci: lint only the head commit when the push before-SHA is missing
vannt-dev Jul 10, 2026
516e029
test: add a real-browser smoke test driving the unpacked extension
vannt-dev Jul 10, 2026
6c54acd
test: cover panel HAR streaming and background fulfill fallback branches
vannt-dev Jul 10, 2026
9b4b898
fix: keep tab state on external debugger detach instead of disposing it
vannt-dev Jul 10, 2026
d2c113b
fix: compact JSON rule bodies in exported files
vannt-dev Jul 10, 2026
460543c
feat: export JSON rule bodies as nested JSON and accept them on import
vannt-dev Jul 10, 2026
94302ee
docs: add phase 2 mock power design spec
vannt-dev Jul 10, 2026
543ed03
docs: add phase 2 mock power implementation plan
vannt-dev Jul 10, 2026
da988ed
ci: format mjs files with prettier and cover mjs/cjs in lint-staged
vannt-dev Jul 11, 2026
a040530
feat: fail matching requests at the network layer with optional delay
vannt-dev Jul 11, 2026
573bb94
feat: override status and headers and delay mocked responses
vannt-dev Jul 11, 2026
3b9d1f5
feat: add fail type and advanced mock fields to the override modal
vannt-dev Jul 11, 2026
d9ebf87
feat: show status, delay, and fail badges on the rules list
vannt-dev Jul 11, 2026
2bd72fa
feat: accept and validate mock power fields on rule import
vannt-dev Jul 11, 2026
c04b79a
test: smoke-check status override and network-layer fail
vannt-dev Jul 11, 2026
9a1de97
docs: document status, headers, delay, and fail mocking
vannt-dev Jul 11, 2026
26580ee
fix: keep mock marker headers unique and mention the fail type in the…
vannt-dev Jul 11, 2026
b2e933f
docs: sync README with tab-state module, per-domain rule keys, and mo…
vannt-dev Jul 11, 2026
5a91dff
build: bump to 2.1.0 and clean dist before store packaging
vannt-dev Jul 11, 2026
ca100b7
chore: add check script to package.json for pre-commit verification
vannt-dev Aug 8, 2026
857cdbb
chore: add watch script to package.json for live compilation
vannt-dev Aug 8, 2026
ecb206e
feat: implement request headers override, rule duplication, profiles,…
vannt-dev Aug 8, 2026
16dc6e2
chore: bump version to 2.2.0 and update documentation with Chrome Web…
vannt-dev Aug 8, 2026
b2a8e45
ci: add automated GitHub Release workflow on merge to main
vannt-dev Aug 8, 2026
6050f93
ci: add Chrome Web Store auto-publish step to release workflow
vannt-dev Aug 8, 2026
8ed4d26
feat: implement response templating, graphql operation interception, …
vannt-dev Aug 8, 2026
445ef96
ci: enhance pipeline with concurrency, ESLint check, and Playwright b…
vannt-dev Aug 8, 2026
fb042f2
feat: refine override UI and refactor extension modules
vannt-dev Aug 8, 2026
995b07e
docs: add Chrome Web Store screenshot gallery
vannt-dev Aug 8, 2026
2065464
chore: reconcile main history into develop
vannt-dev Aug 8, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 25 additions & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,13 @@ on:
branches:
- main
- master
- develop
pull_request:

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
test:
runs-on: ubuntu-latest
Expand All @@ -29,17 +34,36 @@ jobs:
- name: Check code formatting
run: npx prettier --check .

- name: Lint TypeScript code
run: npm run lint

- name: Lint commit messages
run: |
if [ "${{ github.event_name }}" = "pull_request" ]; then
npx commitlint --from origin/${{ github.base_ref }} --to HEAD
else
elif git cat-file -e "${{ github.event.before }}" 2>/dev/null; then
npx commitlint --from ${{ github.event.before }} --to ${{ github.sha }}
else
# Force-push or new branch: the "before" SHA no longer exists; lint just the head commit.
npx commitlint --last
fi

- name: Run tests with coverage
run: npm run ci:test

- name: Cache Playwright Chromium
uses: actions/cache@v4
id: playwright-cache
with:
path: ~/.cache/ms-playwright
key: ${{ runner.os }}-playwright-${{ hashFiles('package-lock.json') }}

- name: Install Playwright Chromium dependencies
run: npx playwright install --with-deps chromium

- name: Run Playwright smoke test
run: xvfb-run --auto-servernum npm run smoke

- name: Upload coverage artifact
if: always()
uses: actions/upload-artifact@v6
Expand Down
78 changes: 78 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
name: Automated Release

on:
push:
branches:
- main

jobs:
release:
name: Build & Create GitHub Release
runs-on: ubuntu-latest
permissions:
contents: write

steps:
- name: Checkout repository
uses: actions/checkout@v6
with:
fetch-depth: 0

- name: Setup Node.js
uses: actions/setup-node@v6
with:
node-version: 24
cache: npm

- name: Install dependencies
run: npm ci

- name: Read version from package.json
id: get_version
run: |
VERSION=$(node -p "require('./package.json').version")
echo "VERSION=$VERSION" >> $GITHUB_ENV
echo "TAG_NAME=v$VERSION" >> $GITHUB_ENV

- name: Check if tag already exists
id: check_tag
run: |
if git rev-parse "${{ env.TAG_NAME }}" >/dev/null 2>&1; then
echo "EXISTS=true" >> $GITHUB_OUTPUT
else
echo "EXISTS=false" >> $GITHUB_OUTPUT
fi

- name: Build store release package
if: steps.check_tag.outputs.EXISTS != 'true'
run: npm run package:store

- name: Create GitHub Release
if: steps.check_tag.outputs.EXISTS != 'true'
uses: softprops/action-gh-release@v2
with:
tag_name: ${{ env.TAG_NAME }}
name: Network Overrides DevTools ${{ env.TAG_NAME }}
body: |
## Network Overrides API (DevTools) ${{ env.TAG_NAME }}

### 🚀 Automatic Build & Store Package
- **Zip Package**: `network-overrides-api-devtools-${{ env.TAG_NAME }}-store.zip`
- **Chrome Web Store**: [Link](https://chromewebstore.google.com/detail/network-overrides-api-dev/holdjgmcnpelgclhopiejilhhkfcmpba)

*Refer to `README.md` and `USE.md` for installation and usage instructions.*
files: release/*.zip
draft: false
prerelease: false
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

- name: Upload & Publish to Chrome Web Store
if: steps.check_tag.outputs.EXISTS != 'true' && secrets.CWS_CLIENT_ID != ''
uses: chrome-stats/chrome-extension-upload-action@v2
with:
extension-id: 'holdjgmcnpelgclhopiejilhhkfcmpba'
file-path: release/network-overrides-api-devtools-${{ env.TAG_NAME }}-store.zip
client-id: ${{ secrets.CWS_CLIENT_ID }}
client-secret: ${{ secrets.CWS_CLIENT_SECRET }}
refresh-token: ${{ secrets.CWS_REFRESH_TOKEN }}
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -8,3 +8,6 @@ release/
Thumbs.db
*.env
.env*
.worktrees/
test-output.txt
test-results.txt
15 changes: 14 additions & 1 deletion .husky/commit-msg
Original file line number Diff line number Diff line change
@@ -1,2 +1,15 @@
#!/usr/bin/env sh
npx commitlint --edit "$1"
if ! npx commitlint --edit "$1" > /dev/null 2>&1; then
echo ""
echo "======================================================="
echo "❌ ERROR: Invalid commit message format!"
echo "Please use the standard format (Conventional Commits):"
echo "👉 <type>[optional scope]: <description>"
echo ""
echo "Valid examples:"
echo " feat: add new feature"
echo " fix: resolve bug"
echo " chore: update config"
echo "======================================================="
exit 1
fi
7 changes: 6 additions & 1 deletion .husky/pre-push
Original file line number Diff line number Diff line change
@@ -1,7 +1,12 @@
#!/usr/bin/env sh
set -e

# Lint all commits that are about to be pushed
upstream=$(git rev-parse --abbrev-ref --symbolic-full-name @{u} 2>/dev/null)
upstream=$(git rev-parse --abbrev-ref --symbolic-full-name @{u} 2>/dev/null || true)
if [ -z "$upstream" ]; then
upstream="origin/main"
fi
npx commitlint --from "$upstream" --to HEAD --verbose

# Only allow the push when the build and the full test suite pass
npm test
Loading
Loading