Compare commits

...

6 Commits

Author SHA1 Message Date
CyberMind
c043c5fca8
Merge pull request #584 from CyberMind-FR/fix/ad-ghost-collapse-placeholders
Some checks are pending
License Headers / check (push) Waiting to run
ad_ghost: remove ad placeholders entirely (collapse)
2026-06-14 15:02:02 +02:00
10d22f05b7 feat(ad_ghost): remove ad placeholders entirely — collapse, no black-hole
Reverses #576: ghosted ad slots collapse with display:none (space gone),
no void/black-hole. Host-blocking (204) still saves bandwidth.
secubox-toolbox 2.6.31.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-14 15:01:35 +02:00
CyberMind
5ece3f1208
Merge pull request #583 from CyberMind-FR/feature/576-ad-ghost-replace-ghosted-ad-with-a-css-l
ad_ghost: black-hole placeholder for ghosted ads (#576)
2026-06-14 14:58:35 +02:00
5ca4ecf455 feat(ad_ghost): ghosted ads become a CSS black-hole placeholder (closes #576)
Replace display:none with a layered dark void — radial-gradient bg + inset
glow + glowing accretion-disc (::after), content hidden. Intentional
reclaimed space instead of a collapsed gap. R3+/R4, ad_ghost filter.
secubox-toolbox 2.6.30.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-14 14:58:10 +02:00
CyberMind
ace77976fa
Merge pull request #582 from CyberMind-FR/fix/581-postinst-portal-stays-dead-after-dpkg-up
fix(postinst): portal reliably restarts after dpkg upgrade (#581)
2026-06-14 14:52:06 +02:00
4ffd66bb2d fix(toolbox): postinst reliably restarts portal after upgrade (closes #581)
The dpkg upgrade SIGTERMs the units before postinst runs, so the
try-restart loop was a no-op on the already-stopped portal -> kbin 503
(hit twice 2026-06-14). Now enabled units get a full restart (start even
if stopped); others keep try-restart. secubox-toolbox 2.6.29.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-14 14:51:42 +02:00
3 changed files with 47 additions and 10 deletions

View File

@ -1,3 +1,31 @@
secubox-toolbox (2.6.31-1~bookworm1) bookworm; urgency=medium
* ad_ghost: remove ad placeholders entirely (#584, reverses #576). Ghosted
ad slots now collapse with display:none — no black-hole/void, the space
disappears. Host-blocking (204) still saves the bandwidth.
-- Gerald KERMA <devel@cybermind.fr> Sun, 14 Jun 2026 14:00:00 +0200
secubox-toolbox (2.6.30-1~bookworm1) bookworm; urgency=medium
* ad_ghost: ghosted ads become a CSS "black hole" placeholder (#576).
Instead of display:none (a collapsed blank gap), the ghosted ad slot is
a layered dark void — radial-gradient background + inset glow + a glowing
accretion-disc via ::after, real content hidden. Intentional reclaimed
space, R3+/R4, toggle via the ad_ghost filter.
-- Gerald KERMA <devel@cybermind.fr> Sun, 14 Jun 2026 13:30:00 +0200
secubox-toolbox (2.6.29-1~bookworm1) bookworm; urgency=medium
* fix(postinst): portal reliably restarts after dpkg upgrade (#581). The
upgrade SIGTERMs the units before postinst runs, so the old try-restart
loop was a no-op on the already-stopped portal → secubox-toolbox.service
stayed dead → kbin 503 (hit twice 2026-06-14). Now ENABLED units get a
full `restart` (starts even if stopped); others keep `try-restart`.
-- Gerald KERMA <devel@cybermind.fr> Sun, 14 Jun 2026 13:00:00 +0200
secubox-toolbox (2.6.28-1~bookworm1) bookworm; urgency=medium secubox-toolbox (2.6.28-1~bookworm1) bookworm; urgency=medium
* Eye graph: hide all IP nodes + cap clients list (#575). * Eye graph: hide all IP nodes + cap clients list (#575).

View File

@ -231,14 +231,15 @@ fi
fi fi
fi fi
# Phase 10 (#501 perf) : on UPGRADE ($2 = previous version), try-restart # Phase 10 (#501 perf) : on UPGRADE ($2 = previous version), bring the
# the long-running daemons so the new code is live without operator # long-running daemons back on the new code without operator action.
# intervention. dh_installsystemd ships --no-start --no-enable in # dh_installsystemd ships --no-start --no-enable in debian/rules.
# debian/rules so without this loop secubox-toolbox.service stays dead # #581 fix : the dpkg upgrade SIGTERMs the units BEFORE this postinst
# post-upgrade until reboot (caught 2026-06-09 : kbin.gk2 503'd for 5 min # runs, so `try-restart` (a no-op on a stopped unit) left
# after the 2.5.0 → 2.5.1 upgrade because the unit was SIGTERMed and # secubox-toolbox.service DEAD post-upgrade -> kbin 503 (caught twice on
# never restarted). try-restart is a no-op when the unit is not # 2026-06-14, first on 2026-06-09). So : ENABLED units get a full
# running, so it's safe on fresh install / unconfigured boards. # `restart` (starts them even if currently stopped) ; everything else
# keeps `try-restart` (preserve an operator's deliberate stop).
if [ -n "${2:-}" ] && [ -d /run/systemd/system ]; then if [ -n "${2:-}" ] && [ -d /run/systemd/system ]; then
for unit in secubox-toolbox.service \ for unit in secubox-toolbox.service \
secubox-toolbox-mitm.service \ secubox-toolbox-mitm.service \
@ -246,7 +247,11 @@ fi
secubox-toolbox-mitm-wg-worker@2.service \ secubox-toolbox-mitm-wg-worker@2.service \
secubox-toolbox-mitm-wg-worker@3.service \ secubox-toolbox-mitm-wg-worker@3.service \
secubox-toolbox-mitm-wg-worker@4.service ; do secubox-toolbox-mitm-wg-worker@4.service ; do
systemctl try-restart "$unit" 2>/dev/null || true if systemctl is-enabled --quiet "$unit" 2>/dev/null; then
systemctl restart "$unit" 2>/dev/null || true
else
systemctl try-restart "$unit" 2>/dev/null || true
fi
done done
fi fi
;; ;;

View File

@ -108,7 +108,11 @@ def _style_for(cats: dict) -> bytes:
sels.extend(_COSMETIC[cat]) sels.extend(_COSMETIC[cat])
if not sels: if not sels:
return b"" return b""
rule = ",".join(sels) + "{display:none!important;visibility:hidden!important}" sel = ",".join(sels)
# #584 — NO placeholder : collapse the ghosted ad slot entirely so the
# space disappears (display:none), rather than leaving a void/black-hole.
# Host-blocking (204) still saves the bandwidth ; this just hides the box.
rule = sel + "{display:none!important;visibility:hidden!important;}"
return (b"<style id=\"sbx-ghost-style\">" + rule.encode("utf-8") + b"</style>") return (b"<style id=\"sbx-ghost-style\">" + rule.encode("utf-8") + b"</style>")