Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
191 commits
Select commit Hold shift + click to select a range
0102e55
fix(android): tighten VPN session lifecycle reliability
dazzling-no-more Apr 25, 2026
aa906e3
Merge pull request #187 from dazzling-no-more/fix/vpn-lifecycle-relia…
therealaleph Apr 25, 2026
14e7dfc
v1.6.1: Android VPN session lifecycle reliability (#187)
therealaleph Apr 25, 2026
3f014b0
v1.6.2: fix "every download capped at 256 KB" (fix #162)
therealaleph Apr 25, 2026
2c8fcc7
v1.6.3: fix Android notification SOCKS5 port mismatch (#211)
therealaleph Apr 25, 2026
b030aaf
v1.6.4: fix Full-mode L7 muxer not batching ops (#231)
therealaleph Apr 26, 2026
8b022c2
fix: add twitter.com (#245)
Parsa307 Apr 26, 2026
b963851
feat: added ability to copy logs in android (#255)
dazzling-no-more Apr 26, 2026
a028df8
feat: added bulk parser for ids on android (#257)
dazzling-no-more Apr 26, 2026
75bec21
fix: route plain HTTP proxy requests direct in google_only mode (#256)
dazzling-no-more Apr 26, 2026
465c31c
v1.6.5: bundles 4 community PRs
therealaleph Apr 26, 2026
1057797
feat: native udpgw without QUIC/DNS - QUIC/DNS with udp associate — s…
yyoyoian-pixel Apr 26, 2026
81e01d7
feat: shorten android home screen for long deployment-ID lists (#258)
dazzling-no-more Apr 26, 2026
4b72805
ci: add release-drafter + prepare-release for faster releases (#260)
dazzling-no-more Apr 26, 2026
6469e1f
v1.7.0: native udpgw, Android UI restructure, release tooling
therealaleph Apr 26, 2026
1d14930
feat(cert): add --remove-cert flag and Remove CA button for clean-sla…
dazzling-no-more Apr 26, 2026
ae948f4
v1.7.1: ship cert removal (#121)
therealaleph Apr 26, 2026
e9ce03e
ci: post macOS/Linux/Windows/Android binaries as Telegram media group
therealaleph Apr 26, 2026
1c9d288
feat(android): config import/export — clipboard, QR, deep link, share…
yyoyoian-pixel Apr 26, 2026
b18d9ab
v1.7.2: ship Android config import/export (#266)
therealaleph Apr 26, 2026
e81974c
Revert "ci: post macOS/Linux/Windows/Android binaries as Telegram med…
therealaleph Apr 26, 2026
536aa00
feat: enable udpgw via tun2proxy CLI API — no fork needed (#271)
yyoyoian-pixel Apr 26, 2026
e7326ee
v1.7.3: drop tun2proxy fork dependency (#271)
therealaleph Apr 26, 2026
0255123
fix: split YouTube domains in youtube_via_relay (#275)
therealaleph Apr 26, 2026
08efbc5
fix(docker): isolate cargo cache per TARGETPLATFORM (multi-arch race)
therealaleph Apr 26, 2026
fa4e0fc
perf: negative-cache unreachable destinations and grow startup pre-wa…
dazzling-no-more Apr 26, 2026
2a5946f
v1.7.4: ship #275 (YouTube split) + #280 (negative-cache + pre-warm)
therealaleph Apr 26, 2026
124d0c3
feat: add block_quic config option (#213)
therealaleph Apr 26, 2026
109a02d
ci: refresh in-repo releases/ folder on each release tag
therealaleph Apr 26, 2026
44854fa
v1.7.5: block_quic config (#213) + auto-refresh releases/ folder
therealaleph Apr 26, 2026
0bc7137
fix: add block_quic to UI form (E0063 in 4 of 10 builds)
therealaleph Apr 26, 2026
aba5393
v1.7.6: revert googlevideo.com SNI rewrite (#275, #281)
therealaleph Apr 26, 2026
a6db13b
ci: download release artifacts from GitHub Release page, not artifact…
therealaleph Apr 26, 2026
35d2d91
ci: add i686-pc-windows-msvc to release matrix (#272) (#288)
amiralishoja Apr 26, 2026
c677590
chore(releases): refresh prebuilt binaries for v1.7.6
github-actions[bot] Apr 26, 2026
faa891b
fix(tunnel): per-deployment legacy fallback with auto-recovery (#290)
dazzling-no-more Apr 26, 2026
6885800
v1.7.7: i686-windows + per-deployment longpoll fallback
therealaleph Apr 26, 2026
ae0a7c8
chore: bump versions to 1.7.7 (Cargo + Android)
therealaleph Apr 26, 2026
8758a75
chore(releases): refresh prebuilt binaries for v1.7.7
github-actions[bot] Apr 26, 2026
d6d1006
feat(tunnel-client): blacklist deployments after sustained timeouts (…
dazzling-no-more Apr 27, 2026
fb206d4
chore: bump versions to 1.7.8 (Cargo + Android)
therealaleph Apr 27, 2026
8bc82d5
chore(releases): refresh prebuilt binaries for v1.7.8
github-actions[bot] Apr 27, 2026
501d54e
ci(release): pin i686-pc-windows-msvc to Rust 1.77.2 for Win7 compat …
therealaleph Apr 27, 2026
11fbe3e
chore: bump versions to 1.7.9 (Cargo + Android)
therealaleph Apr 27, 2026
567937f
chore(releases): refresh prebuilt binaries for v1.7.9
github-actions[bot] Apr 27, 2026
915dba7
Fix Apps Script decoded range probe handling (#337)
freeinternet865 Apr 27, 2026
f5bd82b
fix(android): replace clipboard auto-detect with manual Paste button …
yyoyoian-pixel Apr 27, 2026
46a21b4
chore: bump versions to 1.7.10 (Cargo + Android) + fix Win7 i686 lock…
therealaleph Apr 27, 2026
d5e5dbb
chore: bump versions to 1.7.11 + drop i686 + harden release artifact …
therealaleph Apr 27, 2026
f7da4f0
chore(releases): refresh prebuilt binaries for v1.7.11
github-actions[bot] Apr 27, 2026
cb3732f
feat: v1.8.0 — DPI evasion, active-probing defense, full-mode usage c…
therealaleph Apr 27, 2026
2afa563
chore(releases): refresh prebuilt binaries for v1.8.0
github-actions[bot] Apr 27, 2026
2c4c0a9
docs(tunnel-node): add Persian translation of README (#372)
therealaleph Apr 28, 2026
7e5e2c7
ci(telegram): publish each release file individually to channel
therealaleph Apr 28, 2026
0669b93
ci(telegram): add SHA-256 to file captions + cross-link main channel …
therealaleph Apr 28, 2026
0d54c5c
ci(telegram): use public mhrv_rs link in main-channel post + add invite
therealaleph Apr 28, 2026
ce3030f
feat: v1.8.1 — decoy detection + script_id in error logs + disable_pa…
therealaleph Apr 28, 2026
fd865df
chore(releases): refresh prebuilt binaries for v1.8.1
github-actions[bot] Apr 28, 2026
d817028
feat: v1.8.2 — UI tracing reads config.log_level + softer decoy detec…
therealaleph Apr 28, 2026
4c7c90a
chore(releases): refresh prebuilt binaries for v1.8.2
github-actions[bot] Apr 28, 2026
3ce3d81
feat: H1 container keepalive + 431 oversized-headers
dazzling-no-more Apr 28, 2026
08b22bb
feat(code.gs): optional spreadsheet-backed response cache with TTL
euvel Apr 28, 2026
a7115cb
feat: bypass Apps Script tunnel for DoH endpoints on TCP/443
dazzling-no-more Apr 28, 2026
9043399
revert(Code.gs): revert back HTML output i accidentally removed
euvel Apr 28, 2026
92951e7
feat: H1 container keepalive + 431 oversized-headers (#438)
therealaleph Apr 28, 2026
554e51f
feat: bypass Apps Script tunnel for DoH endpoints on TCP/443 (#439)
therealaleph Apr 28, 2026
84ea21c
feat(code.gs): optional spreadsheet-backed response cache with TTL (#…
therealaleph Apr 28, 2026
7e8e467
chore: v1.8.3 — sheet cache + DoH bypass + H1 keepalive + 431 + clear…
therealaleph Apr 28, 2026
36e58be
chore(releases): refresh prebuilt binaries for v1.8.3
github-actions[bot] Apr 28, 2026
ca76fe9
fix(tunnel-node): raise long-poll to 15s, adaptive straggler settle u…
yyoyoian-pixel Apr 28, 2026
0ca6f77
feat(client): adaptive batch coalescing, configurable via Android UI
yyoyoian-pixel Apr 28, 2026
87ec804
fix(tunnel-node): raise long-poll to 15s, adaptive straggler settle (…
therealaleph Apr 28, 2026
7c89772
feat(client): adaptive batch coalescing with configurable UI (#448)
therealaleph Apr 28, 2026
434ad19
chore: v1.8.4 — adaptive batch coalescing + tunnel-node long-poll fixes
therealaleph Apr 28, 2026
4e47d24
chore(releases): refresh prebuilt binaries for v1.8.4
github-actions[bot] Apr 28, 2026
69d9317
docs(maintainer): add skill knowledge base for cloud-scheduled DOPR a…
therealaleph Apr 29, 2026
61196ea
Revert "docs(maintainer): add skill knowledge base for cloud-schedule…
therealaleph Apr 29, 2026
8273325
docs(maintainer): add maintainer knowledge base for contributors and …
therealaleph Apr 29, 2026
75401ac
fix: v1.8.5 — tunnel-node caps TCP drain at 16 MiB to stay under Apps…
therealaleph Apr 29, 2026
23911ae
chore(releases): refresh prebuilt binaries for v1.8.5
github-actions[bot] Apr 29, 2026
ca171f7
feat: listen on all interfaces by default, add hotspot sharing docs
yyoyoian-pixel Apr 29, 2026
8ed8e85
feat: multi-edge fronting_groups + rename google_only to direct
dazzling-no-more Apr 29, 2026
f32d343
docs(fronting-groups): add netlify (CloudFront) example
dazzling-no-more Apr 29, 2026
72ed6d8
feat(codefull.gs): edge-cache DNS to skip tunnel-node round-trip
dazzling-no-more Apr 29, 2026
d959306
feat: listen on all interfaces, hotspot sharing for iOS/laptop (#483)
therealaleph Apr 29, 2026
aad900e
feat(codefull.gs): edge-cache DNS to skip tunnel-node round-trip (#494)
therealaleph Apr 29, 2026
79cca10
feat: multi-edge fronting_groups + rename google_only to direct (#488)
therealaleph Apr 29, 2026
48a0e46
feat: v1.9.0 — multi-edge fronting + edge DNS cache + DoH default fli…
therealaleph Apr 29, 2026
7083d6e
chore(releases): refresh prebuilt binaries for v1.9.0
github-actions[bot] Apr 29, 2026
58fb141
docs(fronting-groups): add redd.it to the fastly group's domains list
therealaleph Apr 30, 2026
cd6ff8d
feat: v1.9.1 — operator quality-of-life: tunable auto-blacklist, conf…
therealaleph Apr 30, 2026
777a28a
chore(releases): refresh prebuilt binaries for v1.9.1
github-actions[bot] Apr 30, 2026
9013eb9
feat(cfw): add Apps Script + Cloudflare Worker alternative backend
dazzling-no-more Apr 30, 2026
1f7a1b3
feat(cfw): add Apps Script + Cloudflare Worker alternative backend (#…
therealaleph Apr 30, 2026
8d0004c
chore: v1.9.2 — Apps Script + Cloudflare Worker alternative backend
therealaleph Apr 30, 2026
d162a47
chore(releases): refresh prebuilt binaries for v1.9.2
github-actions[bot] Apr 30, 2026
576dfa6
feat(android): add youtube_via_relay toggle to Advanced settings
yyoyoian-pixel Apr 30, 2026
c98ae73
ci(telegram-publish): use --clobber to survive partial-download retries
therealaleph Apr 30, 2026
1929f8e
feat(android): add youtube_via_relay toggle to Advanced settings (#535)
therealaleph Apr 30, 2026
55c1256
feat(android): v1.9.3 — youtube_via_relay toggle in Android UI + CI r…
therealaleph Apr 30, 2026
d65759d
chore(releases): refresh prebuilt binaries for v1.9.3
github-actions[bot] Apr 30, 2026
4aac9a7
feat: v1.9.4 — exit node for ChatGPT/Claude/Grok + drop duplicate Tel…
therealaleph May 1, 2026
7268baf
chore(releases): refresh prebuilt binaries for v1.9.4
github-actions[bot] May 1, 2026
541b37a
fix: v1.9.5 — exit-node tolerates TLS close without close_notify (#585)
therealaleph May 1, 2026
d336bd3
chore(releases): refresh prebuilt binaries for v1.9.5
github-actions[bot] May 1, 2026
cbb0846
fix: v1.9.6 — Code.gs/CodeFull.gs hardening, goog.script.init unwrap,…
therealaleph May 1, 2026
6805027
feat: v1.9.7 — friendly LAN-share toggle + supersede unshipped v1.9.6
therealaleph May 1, 2026
b75a816
chore(releases): refresh prebuilt binaries for v1.9.7
github-actions[bot] May 1, 2026
50bb3d0
ci(telegram): include Persian changelog in announcement + main-channe…
therealaleph May 1, 2026
e85e42b
docs(readme): embed Persian setup-guide YouTube video below the langu…
therealaleph May 2, 2026
e91189c
docs(readme): open the Persian-guide video in a new tab
therealaleph May 2, 2026
880d304
docs(readme): link to @KIAN-IRANi's comprehensive Persian setup guide…
therealaleph May 2, 2026
81a0e44
docs(readme): single-line layout for Kian Irani's guide credit
therealaleph May 2, 2026
5ea77ae
docs(readme): rename video caption to "راهنمای تصویری راه اندازی به ز…
therealaleph May 2, 2026
d53399d
docs(readme): collapse the Persian guides block into a 2-item numbere…
therealaleph May 2, 2026
994dd0b
tune: lower coalesce/settle step from 40 → 10 ms, raise tunnel-node s…
yyoyoian-pixel May 3, 2026
677ec26
fix: v1.9.8 — Android disconnect crash + UI test-button gate for non-…
therealaleph May 3, 2026
3cb56c3
chore(releases): refresh prebuilt binaries for v1.9.8
github-actions[bot] May 3, 2026
38d9d9f
fix(tunnel-node): batch drain correctness and lock contention (#695)
dazzling-no-more May 4, 2026
d8d03be
Update config.fronting-groups.example.json (#696)
Shjpr9 May 4, 2026
49b6fbf
fix: v1.9.9 — Android second disconnect crash + tunnel-node drain cor…
therealaleph May 4, 2026
38c359f
chore(releases): refresh prebuilt binaries for v1.9.9
github-actions[bot] May 4, 2026
6c69244
ci(telegram): brief English bullets in announcement + cross-link, dro…
therealaleph May 4, 2026
c12ffd4
chore: redact val.town from code and docs, rename exit-node script
therealaleph May 4, 2026
b45b45f
chore(releases): refresh prebuilt binaries for v1.9.10
github-actions[bot] May 4, 2026
e13bca8
fix: block DoH by default + fix Android tunnel_doh config mismatch (#…
yyoyoian-pixel May 5, 2026
ba99d2a
perf: TLS connection pool + coalesce tuning for lower latency (#751)
yyoyoian-pixel May 5, 2026
f7ab99d
Adding `github.io` to the fronting domains (#747)
Shjpr9 May 5, 2026
c2a33a8
chore: cut v1.9.11 — DoH block + TLS pool tuning + github.io fronting
therealaleph May 5, 2026
9a21bc4
fix: v1.9.12 — gate parallel_relay fan-out to idempotent methods only…
therealaleph May 5, 2026
607d23c
hotfix: v1.9.13 — fix mhrv-rs-ui compile breakage from missing block_…
therealaleph May 5, 2026
545ff3d
chore(releases): refresh prebuilt binaries for v1.9.13
github-actions[bot] May 5, 2026
98181c2
fix: v1.9.14 — block_doh default upgrade-path regression (#773)
therealaleph May 5, 2026
1b38c54
chore(releases): refresh prebuilt binaries for v1.9.14
github-actions[bot] May 5, 2026
ea624e8
added accessibility for the ui. it can work with my screen reader as …
brightening-eyes May 6, 2026
5a07709
feat: block QUIC by default + UI toggle (Android & desktop) (#805)
yyoyoian-pixel May 6, 2026
0e67863
feat: HTTP/2 multiplexing on relay leg with idempotency-safe h1 fallb…
dazzling-no-more May 6, 2026
3e86235
docs: add GitHub Actions Full tunnel documentation and workflows (#783)
euvel May 6, 2026
3e5970c
chore: cut v1.9.15 — h2 multiplexing + block QUIC + UI a11y + GitHub …
therealaleph May 6, 2026
09a25d6
chore(releases): refresh prebuilt binaries for v1.9.15
github-actions[bot] May 6, 2026
8ae4600
docs(readme): drop sort=semver from release badge — shields.io was re…
therealaleph May 7, 2026
e714129
docs(readme): cache-bust camo on the release+downloads badges
therealaleph May 7, 2026
e9d4bb9
Update README.md
therealaleph May 7, 2026
a797830
docs(readme): bust camo cache via path change on downloads badge
therealaleph May 7, 2026
82a8cbf
docs(github-actions-tunnel): warn that cloudflared methods may not wo…
therealaleph May 7, 2026
2c9c693
fix: v1.9.16 — Full mode 50 MiB batch-response truncation (#863)
therealaleph May 7, 2026
5a4f535
chore(releases): refresh prebuilt binaries for v1.9.16
github-actions[bot] May 7, 2026
141cd6c
feat: v1.9.17 — CORS response header injection (#561 / YouTube comments)
therealaleph May 7, 2026
834785d
chore(releases): refresh prebuilt binaries for v1.9.17
github-actions[bot] May 7, 2026
6249142
docs(ngrok): correct static-domain URL behavior + Full-mode verify ad…
therealaleph May 7, 2026
54552bb
perf(tunnel): zero-copy mux + base64 off mux thread (#881)
dazzling-no-more May 8, 2026
3e599f2
chore(release): v1.9.18 — perf: zero-copy mux + base64 off mux thread…
therealaleph May 8, 2026
c774851
chore(releases): refresh prebuilt binaries for v1.9.18
github-actions[bot] May 8, 2026
f28b6b1
docs(exit_node): ship wrapper.ts for VPS users (#912)
therealaleph May 8, 2026
072a917
feat(code.gs): gzip cache bodies + status-aware TTL (#953)
dazzling-no-more May 9, 2026
c437598
fix(exit_node): strip Content-Encoding + Content-Length on response (…
therealaleph May 9, 2026
9909b9b
docs(tunnel): document ngrok *.ngrok-free.dev block + alternative hos…
therealaleph May 10, 2026
5d69079
feat(ui): label widgets with .labelled_by for NVDA / Narrator (#1015)
brightening-eyes May 10, 2026
907a492
chore(release): v1.9.19 — UI a11y labels for NVDA / Narrator (#1015)
therealaleph May 10, 2026
24534f7
chore(releases): refresh prebuilt binaries for v1.9.19
github-actions[bot] May 10, 2026
4d3e621
fix: v1.9.15 full-mode warm-up race during h2 init (#924, #1029)
rezaisrad May 10, 2026
786a970
chore(release): v1.9.20 — fix Full-mode warm-up race (#924, #1029)
therealaleph May 10, 2026
9611279
chore(releases): refresh prebuilt binaries for v1.9.20
github-actions[bot] May 10, 2026
dd7b355
perf: skip H2 for full-tunnel batch requests (#1040)
yyoyoian-pixel May 10, 2026
4c8cf9a
chore(release): v1.9.21 — skip H2 for full-tunnel batches (#1040)
therealaleph May 10, 2026
b259dd0
chore(releases): refresh prebuilt binaries for v1.9.21
github-actions[bot] May 11, 2026
2d5bd34
fix: skip H2 for tunnel_request (single ops) — completes #1040 (#1041)
yyoyoian-pixel May 11, 2026
ee54e03
chore(release): v1.9.22 — complete H2 skip for tunnel_request single …
therealaleph May 11, 2026
5cfb972
chore(releases): refresh prebuilt binaries for v1.9.22
github-actions[bot] May 11, 2026
f4f23c3
fix(code.gs): wrap _doSingle normal-relay fetch in try/catch (#1047, …
dazzling-no-more May 11, 2026
aa16abc
fix(relay): stream range-parallel downloads larger than Apps Script's…
dazzling-no-more May 12, 2026
ca24ebd
chore(release): v1.9.23 — stream large range-parallel downloads (#104…
therealaleph May 12, 2026
ab05c53
chore(releases): refresh prebuilt binaries for v1.9.23
github-actions[bot] May 12, 2026
4d2ce91
fix(docker): cargo-chef so tunnel-node builds without BuildKit (#620,…
dazzling-no-more May 13, 2026
4d135a4
fix(tunnel): batch header read honors request_timeout_secs (#1088, #1…
dazzling-no-more May 13, 2026
1c9e73e
chore(release): v1.9.24 — fix timeout cascade + Cloud Run docker buil…
therealaleph May 13, 2026
283073f
chore(releases): refresh prebuilt binaries for v1.9.24
github-actions[bot] May 13, 2026
e70947f
fix(udpgw): move magic IP out of tun2proxy virtual-DNS range (#251, #…
dazzling-no-more May 13, 2026
108b071
fix(cert): install MITM CA into LibreWolf NSS stores (#1145, #1159)
dazzling-no-more May 13, 2026
9e9a7d1
chore(release): v1.9.25 — udpgw virtual-DNS fix + LibreWolf cert inst…
therealaleph May 13, 2026
598a890
chore(releases): refresh prebuilt binaries for v1.9.25
github-actions[bot] May 13, 2026
dbb60cd
feat(tunnel): pipelined polls with adaptive depth and overlapped clie…
yyoyoian-pixel May 13, 2026
0da2d7b
fix(tunnel-node): revert LONGPOLL_DEADLINE to 2s
yyoyoian-pixel May 13, 2026
c796cc7
feat(tunnel): optimist pipelining, fast-path uploads, debug overlay, …
yyoyoian-pixel May 13, 2026
d7d7906
feat(tunnel): drain loop, upload coalesce, block_stun config, tuning
yyoyoian-pixel May 14, 2026
6a8f7ad
feat(tunnel): fully separated upload/download tasks, wseq write ordering
yyoyoian-pixel May 14, 2026
91faf24
fix(tunnel): 256KB upload cap, 10ms gap timeout, 8KB extend threshold
yyoyoian-pixel May 14, 2026
2b1293a
fix(tunnel): unbounded mux channel, disable debug locks, yield in upload
yyoyoian-pixel May 14, 2026
dc0c0db
fix(tunnel): upload flow control, suppress polls during uploads
yyoyoian-pixel May 14, 2026
377add3
refactor(tunnel): revert to single-loop with pipelining
yyoyoian-pixel May 14, 2026
bb41139
fix: keep PR 1115 pipeline changes buildable
therealaleph May 16, 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
79 changes: 79 additions & 0 deletions .github/release-drafter.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
# release-drafter config — accumulates merged-PR titles into a draft GitHub
# Release as PRs land on main, so the English half of docs/changelog/v<ver>.md
# is prefilled by the time we cut the next release.
#
# How it fits with the existing release flow:
# - PRs merge → release-drafter updates the draft release tagged `next`
# - When ready to ship, run `prepare-release.yml` which reads the draft
# body and writes it into `docs/changelog/v<ver>.md` as a stub
# - You translate the bullets into Persian above the `---` separator,
# merge the prep PR, push the `v<ver>` tag, and release.yml takes over
#
# The draft is tagged `next` (not `vX.Y.Z`) so it never collides with the
# real release-tag namespace. softprops/action-gh-release in release.yml
# will create a fresh release for the actual `vX.Y.Z` tag — the `next`
# draft just gets reset by release-drafter on the following PR merge.

name-template: 'Next release (draft)'
tag-template: 'next'

# Flat bullet template — one line per merged PR, matching the existing
# docs/changelog/v<ver>.md style:
#
# • <verb-first headline> ([#NN](url)): <full explanation>. Thanks @user
#
# We bake the `: <expand>. Thanks @AUTHOR` suffix directly into the
# template so the maintainer's job is just (a) strip the leading
# `feat:`/`fix:` Conventional-Commit prefix that PR titles in this repo
# carry (prepare-release.yml does this automatically with a sed pass),
# (b) fix the verb tense if needed (`added` → `Add`), and (c) replace
# `<expand>` with the explanatory clause.
#
# Why the placeholder is part of the template and not added later:
# putting it here means the no-changes-template fallback (below) does
# *not* get a `<expand>` suffix — only real PR-derived bullets do.
change-template: '• $TITLE ([#$NUMBER]($URL)): <expand>. Thanks @$AUTHOR'
change-title-escapes: '\<*_&'

# Fallback if no PRs have merged since the last draft reset. Rare in
# practice; here as a safety net so the draft body is never empty.
# Deliberately doesn't follow the `<expand>`-bullet shape so it's
# obviously a placeholder line, not a real release entry.
no-changes-template: '_(no PR-tracked changes since the last release)_'

# Skip PRs labelled `release-prep` from the changelog — those are the
# automated version-bump PRs opened by prepare-release.yml; including
# them would echo "release: prepare v1.6.6" into the next release notes.
exclude-labels:
- 'release-prep'
- 'skip-changelog'

# Auto-apply labels based on Conventional Commit title prefixes. The repo
# already enforces feat:/fix:/etc. on PR titles, so this is "free" — no
# contributor action needed. Labels feed the exclude-labels above and
# also unlock PR filtering on the GitHub issues page if we want it later.
autolabeler:
- label: 'release-prep'
title:
- '/^release:/i'
- label: 'type: feature'
title:
- '/^feat(\(.+\))?:/i'
- label: 'type: fix'
title:
- '/^fix(\(.+\))?:/i'
- label: 'type: chore'
title:
- '/^chore(\(.+\))?:/i'
- label: 'type: docs'
title:
- '/^docs?(\(.+\))?:/i'
- label: 'type: refactor'
title:
- '/^refactor(\(.+\))?:/i'

# Body of the draft release: just the flat bullet list. No "What's
# Changed" header, no contributors block — keep it copy-paste-ready
# into docs/changelog/v<ver>.md.
template: |
$CHANGES
Loading