vpnhide/changelog.d
okhsunrog 6067d8eea8 chore(lsposed): drop dead check_netlink_getlink_recv probe
It was added with comment "Temporary check to verify the recvfrom
hook works." The hook is verified in production; the probe carries
no diagnostic value beyond what check_netlink_getlink already gives.
2026-04-26 05:28:23 +03:00
..
fixed-catch-tunnels-renamed-to-the-kernel-d126.md fix(filter): catch tunnels renamed to if<N> (issue #86) 2026-04-26 04:08:36 +03:00
fixed-dashboard-vpn-active-detection-now-matches-5f3a.md fix(lsposed/app): unify VPN-active detection on codegen matcher 2026-04-26 05:12:02 +03:00
fixed-native-diagnostics-now-recognize-utun-l2tp-5a82.md refactor: drive VPN-iface matching from a single TOML source of truth (#90) 2026-04-25 20:53:11 +03:00
fixed-notification-time-increased-to-make-it-fc9a.md fix(changelog): drop stray "gi" prefix from notification fragment 2026-04-26 05:03:05 +03:00
fixed-restore-debug-logging-flag-for-the-dcb2.md fix(lsposed): restore zygisk debug-logging flag on app start 2026-04-26 04:06:54 +03:00
fixed-save-snackbar-on-the-app-hiding-fcab.md fix(lsposed): show user-app hidden count in save snackbar (#88) 2026-04-25 20:34:24 +03:00
README.md fix(scripts): CHANGELOG.md at release time + Markdown fragments 2026-04-19 21:57:34 +03:00
removed-drop-redundant-netlink-rtm-getlink-recv-8c6c.md chore(lsposed): drop dead check_netlink_getlink_recv probe 2026-04-26 05:28:23 +03:00

Unreleased changelog fragments

Each .md file here is a single entry that will land in the next release. ./scripts/release.py rotates all fragments into history[0] of lsposed/app/src/main/assets/changelog.json and deletes the files.

Adding an entry

./scripts/changelog.py <type> "<EN text>" "<RU text>"

Types: added, changed, fixed, removed, deprecated, security.

This writes a single file changelog.d/<type>-<slug>-<hex4>.md. That's the only file modified — CHANGELOG.md is regenerated only at release time, so two concurrent PRs can't collide on it. The 4-char hex suffix is random; two teammates picking the same slug still produce different filenames.

Commit the new fragment alongside your code change. To preview the pending (fragments-only) changelog, run ./scripts/preview-changelog.py.

Fragment file format

Filename: <type>-<slug>-<hex4>.md — the type is part of the name so you can tell what kind of change a fragment is at a glance in the directory listing.

Body: a date line on top, then two language sections. Renders directly on GitHub — no TOML, no YAML frontmatter, no parser dependency.

_2026-04-19_

## English

App no longer crashes when ...

## Русский

Приложение больше не падает когда ...

The date is in YYYY-MM-DD format, wrapped in _…_ so GitHub renders it as a subtle italic line. changelog.py writes today's date automatically; when editing by hand, keep the format literal so the parser recognises it.

Leading/trailing whitespace inside each language section is stripped when loaded. Fragments are sorted chronologically by that date when the Unreleased preview is rendered; ties fall back to filename order.

Prefer the changelog.py script for creating fragments; editing by hand works but you need to match the filename pattern and section headings exactly.