<feed xmlns='http://www.w3.org/2005/Atom'>
<title>dpibreak.git, branch v0.4.1</title>
<subtitle>System-wide DPI circumvention with minimal configuration
</subtitle>
<id>http://git.dilluti0n.com/dpibreak.git/atom?h=v0.4.1</id>
<link rel='self' href='http://git.dilluti0n.com/dpibreak.git/atom?h=v0.4.1'/>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/dpibreak.git/'/>
<updated>2026-02-15T13:52:18Z</updated>
<entry>
<title>Bump version to 0.4.1</title>
<updated>2026-02-15T13:52:18Z</updated>
<author>
<name>dilluti0n</name>
<email>hskimse1@gmail.com</email>
</author>
<published>2026-02-15T13:52:18Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/dpibreak.git/commit/?id=3389e6f7106c586759f20037d25ef0aeb7b2380b'/>
<id>urn:sha1:3389e6f7106c586759f20037d25ef0aeb7b2380b</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Merge branch 'fix/nft-flush-startup'</title>
<updated>2026-02-15T13:40:52Z</updated>
<author>
<name>dilluti0n</name>
<email>hskimse1@gmail.com</email>
</author>
<published>2026-02-15T13:40:52Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/dpibreak.git/commit/?id=dbc011b1933ae529c938db28ac8a69a3b1c23c8a'/>
<id>urn:sha1:dbc011b1933ae529c938db28ac8a69a3b1c23c8a</id>
<content type='text'>
Fixes: #13
Link: https://github.com/dilluti0n/dpibreak/issues/13
Fixes: #6
Link: https://github.com/dilluti0n/dpibreak/issues/6
</content>
</entry>
<entry>
<title>linux: add PID file locking for single instance enforcement</title>
<updated>2026-02-15T13:36:06Z</updated>
<author>
<name>dilluti0n</name>
<email>hskimse1@gmail.com</email>
</author>
<published>2026-02-15T13:36:06Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/dpibreak.git/commit/?id=b26c2c8de5260b0e2a0b52cd838cb8a4bc1a63c1'/>
<id>urn:sha1:b26c2c8de5260b0e2a0b52cd838cb8a4bc1a63c1</id>
<content type='text'>
Prevent multiple non-daemon dpibreak instances using flock(). Show
existing PID on conflict and maintain lock until process termination.
</content>
</entry>
<entry>
<title>linux: extract PID_FILE constant for reuse</title>
<updated>2026-02-15T13:13:35Z</updated>
<author>
<name>dilluti0n</name>
<email>hskimse1@gmail.com</email>
</author>
<published>2026-02-15T13:05:13Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/dpibreak.git/commit/?id=f31938fd8eea3d05f9e62daee236cf7c56ade227'/>
<id>urn:sha1:f31938fd8eea3d05f9e62daee236cf7c56ade227</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Consolidate setup logic into run()</title>
<updated>2026-02-15T13:04:25Z</updated>
<author>
<name>dilluti0n</name>
<email>hskimse1@gmail.com</email>
</author>
<published>2026-02-15T13:01:43Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/dpibreak.git/commit/?id=3cb2c192454964c2ae01e196eaa7fdd6434efeb5'/>
<id>urn:sha1:3cb2c192454964c2ae01e196eaa7fdd6434efeb5</id>
<content type='text'>
The bootstrap/run separation was unnecessary. Move all initialization
(cleanup + nftables setup): into run() and skip bootstrap in daemon
mode. We repurpose the bootstrap() function to only run in non-daemon
mode for future foreground-only initialization.

- Add OPT_DAEMON option to detect daemon mode
- Move cleanup() and install_rules() from bootstrap() to run()
- Make bootstrap() a no-op (only called in non-daemon mode)
</content>
</entry>
<entry>
<title>ci: move download artifacts before making release note</title>
<updated>2026-02-15T09:30:17Z</updated>
<author>
<name>dilluti0n</name>
<email>hskimse1@gmail.com</email>
</author>
<published>2026-02-15T09:30:17Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/dpibreak.git/commit/?id=dcba8b5442ae6e969d353f1ef9dc5948ff14ece8'/>
<id>urn:sha1:dcba8b5442ae6e969d353f1ef9dc5948ff14ece8</id>
<content type='text'>
so download link and buildinfo can be generated.
</content>
</entry>
<entry>
<title>ci: fix release cannot find download artifacts</title>
<updated>2026-02-15T09:18:38Z</updated>
<author>
<name>dilluti0n</name>
<email>hskimse1@gmail.com</email>
</author>
<published>2026-02-15T09:18:38Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/dpibreak.git/commit/?id=12418da9d07c87b6463f72e6aac2a6332fd9ed9c'/>
<id>urn:sha1:12418da9d07c87b6463f72e6aac2a6332fd9ed9c</id>
<content type='text'>
</content>
</entry>
<entry>
<title>docs: CHANGELOG: unwrap lines to single-line entries</title>
<updated>2026-02-15T08:56:54Z</updated>
<author>
<name>dilluti0n</name>
<email>hskimse1@gmail.com</email>
</author>
<published>2026-02-15T08:56:54Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/dpibreak.git/commit/?id=9903736e3f10556fa28e24ad838518e10f5c0172'/>
<id>urn:sha1:9903736e3f10556fa28e24ad838518e10f5c0172</id>
<content type='text'>
GitHub Release notes treat newlines as &lt;br&gt;, causing mid-sentence line
breaks in rendered release notes.
</content>
</entry>
<entry>
<title>ci: add checkout to read CHANGELOG.md on release</title>
<updated>2026-02-15T08:47:48Z</updated>
<author>
<name>dilluti0n</name>
<email>hskimse1@gmail.com</email>
</author>
<published>2026-02-15T08:47:48Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/dpibreak.git/commit/?id=388d220af4898f54aeb309d6ef64ae565a1fbcf9'/>
<id>urn:sha1:388d220af4898f54aeb309d6ef64ae565a1fbcf9</id>
<content type='text'>
</content>
</entry>
<entry>
<title>ci: pass --no-verify to cargo publish</title>
<updated>2026-02-15T08:36:26Z</updated>
<author>
<name>dilluti0n</name>
<email>hskimse1@gmail.com</email>
</author>
<published>2026-02-15T08:36:26Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/dpibreak.git/commit/?id=c856f069d64d522922b5847d4351f7dd74660f78'/>
<id>urn:sha1:c856f069d64d522922b5847d4351f7dd74660f78</id>
<content type='text'>
build.rs writes dpibreak.1 outside OUT_DIR, which is safe for
cargo install but fails publish verification. --no-verify skips
this check without affecting end users.
</content>
</entry>
</feed>
