diff --git a/docs/DEVELOPMENT.md b/docs/DEVELOPMENT.md
index f0e493d6..ba3be94a 100644
--- a/docs/DEVELOPMENT.md
+++ b/docs/DEVELOPMENT.md
@@ -157,8 +157,10 @@ sits in the path of a connection, and a switch that did nothing would be worse t
- Every refusal travels back as a `BlockEvent` and becomes a **Connection blocked** alert naming the agent, the
process, the destination and the fact that it didn't get there. That alert's context menu offers *Allow … from
Now On*, which adds the destination to the agent's list and pushes the change straight back to the filter.
-- A flow through the HTTPS inspection proxy leaves the Mac as Flowlight's own traffic, which is never refused, so
- blocking and inspection don't compose for the same agent.
+- A flow through the HTTPS inspection proxy leaves the Mac as exempt Flowlight traffic. Before opening that upstream
+ connection, the proxy attributes the original client and applies destination rules plus the exact managed-pack snapshot
+ acknowledged by the extension. Pack refusal waits for its durable activity record and fails open if that record cannot
+ commit. Agent allowlists remain extension-only and do not compose with the proxied leg.
- `BlockRules` is plain functions over plain data (like `AgentPolicy.matches`), so `BlockingTests` covers the whole
decision without a filter installed.
@@ -332,6 +334,26 @@ cannot revoke its own signing authority. If compromise is suspected, stop publis
resume with a higher sequence signed by a trusted key. Clients reject rollback by sequence, so restoring an older
catalog always means republishing its contents under a new, higher sequence.
+### Consuming the official rule-pack feed
+
+`RulePackCatalogUpdater` is app-owned and has one compiled HTTPS source. It uses an ephemeral cookieless session,
+requires same-origin redirects and JSON, caps both declared and streamed response bytes, sends persisted ETag and
+Last-Modified validators, and permits only one request at a time. Healthy automatic checks run daily; failures back off
+from one hour to six hours and then 24 hours. Manual checks bypass only that schedule. Demo and XCTest startup establish
+the local trusted catalog but do not use the network unless a test explicitly injects a transport.
+
+The receipt watermark and exact envelope cache are separate SQLite rows. Startup reverifies the exact accepted bytes
+before saved configuration or exceptions can produce a snapshot, and capture does not start until that reload completes.
+If a higher watermark has missing, corrupt, expired-before-acceptance, or newly untrusted bytes, definitions and the
+snapshot stay empty while recovery fetches without validators; the bundled lower sequence is never silently restored.
+An already accepted envelope may reverify after expiry as stale last-known-good.
+
+Acceptance runs in `BEGIN IMMEDIATE`: rollback/equivocation checks, exact bytes, validators, scheduling state, and consent
+invalidation commit together. Only then may `RulePackStore` publish definitions or a snapshot. New packs default off;
+changed content preserves saved scope, app selection, exceptions, and historical activity but is effectively disabled.
+Every enabling Save carries the immutable pack and catalog receipt displayed when the editor opened, and SQLite checks
+the durable catalog again inside the save transaction.
+
## Releasing
```sh
diff --git a/docs/about/index.html b/docs/about/index.html
index dc495c4d..fcbba1bf 100644
--- a/docs/about/index.html
+++ b/docs/about/index.html
@@ -153,7 +153,7 @@
Drei offizielle Pakete sind integriert, sichtbar und standardmäßig deaktiviert. Flowlight prüft einen einzigen festgelegten HTTPS-Feed auf signierte Updates; neue oder geänderte Inhalte werden erst durchgesetzt, nachdem du genau diese Version geprüft und Sichern gedrückt hast. Verifizierte, akzeptierte Inhalte können bei einem Ausfall als sichtbar veralteter letzter bekannter funktionsfähiger Stand erhalten bleiben.
Sie blockieren nach Hostname und können daher keine Erstanbieterwerbung, Lücken im DOM oder Layout, Browser-Overlays, skriptgesteuerten Pop-ups oder Fenster nativer Apps entfernen.
⛔ Verweigert
Schutzregeln für die Tools eines Agenten
@@ -435,7 +436,7 @@
Ein Wächter, den du nicht bewachen musst
Bleibt auf deinem Mac
Eine lokale SQLite-Datei. Kein Konto, keine Cloud-Synchronisierung, keine Telemetrie.
Standardmäßig nur Metadaten
Hostnamen, Ports und Byte-Zahlen. HTTPS zu entschlüsseln ist ein eigener Modus, den du einschalten musst – und er bleibt auf deinem Mac.
Im Kernel gefiltert
Die Erfassung lässt nur DNS-Antworten und TLS-ClientHellos durch. Alles andere wird verworfen, bevor Flowlight es sieht.
-
Abfragen, die du steuerst
Um zu benennen, wem eine Adresse gehört, gehen nur öffentliche IPs ohne Hostnamen an Team Cymru – abschaltbar mit einem Klick. Die tägliche Update-Prüfung fragt GitHub nur nach der neuesten Version und lässt sich ebenfalls abschalten.
+
Abfragen, die du steuerst
Um zu benennen, wem eine Adresse gehört, gehen nur öffentliche IPs ohne Hostnamen an Team Cymru. Release- und signierte Regelpaket-Prüfungen senden Standard-HTTPS-Anfragen ohne Verkehrs- oder Paketeinstellungen. Jede Prüfung hat einen eigenen Abschalter.
Eine normale HTTPS-Anfrage nach der neuesten Version; GitHub sieht deine IP-Adresse und den User-Agent Flowlight/<version>
Beim Start und täglich, ab 0.1.2. Abschalten in Einstellungen › Allgemein
Update-Download
github.com
Das Image und seine Prüfsummendatei
Nur wenn du auf „Herunterladen & öffnen“ klickst
+
Offizielle Regelpaket-Aktualisierung
flowlight.xinbetween.com
Eine standardmäßige HTTPS-Anfrage an den festgelegten offiziellen Feed. Der Server sieht deine IP-Adresse, den User-Agent Flowlight/<version> und bedingte Cache-Validatoren; er erhält weder Datenverkehr noch Paketeinstellungen oder eine Gerätekennung
Nach dem Start, sobald eine Prüfung fällig ist, und danach bei störungsfreiem Betrieb höchstens einmal täglich. Standardmäßig aktiviert; Ausschalter und manuelle Option Jetzt suchen unter Regeln › Pakete
Reverse-DNS
Der von dir eingerichtete DNS-Resolver
Eine Abfrage des registrierten Namens einer IP-Adresse, wenn kein Hostname gesehen wurde
Nach Bedarf, im Erfassungsmodus des Samplers, der Standard ist, bis die Netzwerkerweiterung läuft. Kein Schalter zum Abschalten: ohne sie kann der Sampler die meisten Verbindungen nicht benennen. Die Netzwerkerweiterung benennt sie aus dem Datenverkehr selbst und macht diese Abfrage nicht
Abfrage des Netzinhabers
Team Cymru, über DNS
Öffentliche IP-Adressen ohne bekannten Hostnamen. Private und reservierte Adressen verlassen deinen Mac nie
Standardmäßig ein. Abschalten in Erfassung › Netzinhaber bestimmen
Fragen mit einem gehosteten Modell
Der Anbieter, den du wählst: Anthropic, OpenAI, Google Gemini oder ein kompatibler Endpunkt
Deine Frage und die Ergebnisse der nur lesenden Flowlight-Abfragen, die das Modell ausgewählt hat. Die Verkehrsdatenbank selbst wird nicht hochgeladen
Nur wenn du einen gehosteten Anbieter wählst und eine Frage abschickst. Der Bildschirm Fragen zeigt die gesendeten Anfragen
Eine Regel, die Verbindungen verweigert, wird von der Netzwerkerweiterung ausgeführt, im Weg der Verbindung, bevor sie zustande kommt. Eine
- Regel, die eine URL nennt, führt stattdessen der Inspektions-Proxy aus, der die Anfrage mit einem Status beantwortet, den die App lesen kann.
- Das sind die einzigen zwei Teile von Flowlight, die handeln statt zu berichten – der nettop-Sampler kann überhaupt nichts verweigern, auf einem
- Mac, der mit dem Sampler erfasst, wird also keine Regel durchgesetzt, und Flowlight sagt das, statt einen Schalter anzubieten, der nichts tut.
+
Eine Regel, die Verbindungen verweigert, wird normalerweise von der Netzwerkerweiterung ausgeführt, im Weg der Verbindung, bevor sie zustande kommt.
+ Bei Datenverkehr, der durch die HTTPS-Inspektion geleitet wird, wendet der lokale Proxy Zielregeln und aktivierte verwaltete Pakete auf den
+ ursprünglichen Client an, bevor er die Verbindung zum Ursprungsserver öffnet; eine Regel, die eine URL nennt, führt er nach der Entschlüsselung
+ ebenfalls dort aus und antwortet mit einem Status, den die App lesen kann. Das sind die einzigen zwei Teile von Flowlight, die handeln statt zu
+ berichten – der nettop-Sampler kann überhaupt nichts verweigern, auf einem Mac, der mit dem Sampler erfasst, wird also keine Regel durchgesetzt,
+ und Flowlight sagt das, statt einen Schalter anzubieten, der nichts tut.
Verhindern ist es trotzdem nicht. Ein Agent, der eine Shell ausführen kann, kann von Hand tun, was ein verweigertes Tool getan hätte. Eine
Verweigerung, die du mit einem Klick aufheben kannst, ist eine Verweigerung, durch die der nächste Versuch eines Agenten hindurchgehen kann.
Lokaler Datenverkehr, DNS, Apples eigene Dienste und Flowlights eigene Verbindungen werden nie verweigert, denn ein blockierter Mac ist ein
schlechteres Ergebnis als ein blockierter Agent. Und die Durchsetzung endet wenige Sekunden nachdem Flowlight nicht mehr läuft: Eine
Verweigerung, die niemand sehen kann, ist schlimmer als keine.
-
Inspektion und Verweigerung lassen sich nicht verbinden. Datenverkehr, der über Flowlights eigenen Proxy geleitet wird,
- verlässt den Mac als Flowlights Datenverkehr, und Flowlight verweigert sich selbst nie – eine App, deren Anfragen du liest, ist also eine App,
- deren Verbindungen Regeln nicht mehr stoppen. Die Inspektion einzuschalten, um mehr zu sehen, kostet dich die Durchsetzung, und auf dem
- Bildschirm stand das vorher nirgends.
+
Die Inspektion erhält die Verweigerung nach Hostnamen, mit einer Grenze. Datenverkehr, der durch Flowlights Proxy geleitet wird,
+ verlässt den Mac als ausgenommener Flowlight-Datenverkehr. Deshalb entscheidet der Proxy zuerst anhand der ursprünglichen App-Identität über
+ gewöhnliche Zielregeln und aktivierte verwaltete Pakete. Das funktioniert auch bei angepinnten oder nie entschlüsselten Tunneln, weil CONNECT den
+ Host nennt. Agenten-Erlaubnislisten bleiben eine Entscheidung der Netzwerkerweiterung und gelten nicht für diesen über den Proxy geleiteten Weg
+ zum Ursprungsserver; Datenverkehr ohne vertrauenswürdigen Eigentümer oder Hostnamen wird im Zweifel zugelassen, statt unsichtbar verweigert zu werden.
Was Flowlight selbst aufbewahrt
Metadaten zum Datenverkehr in einer lokalen SQLite-Datenbank, mit veröffentlichten Aufbewahrungsfristen. Bei eingeschalteter
HTTPS-Inspektion außerdem Anfrage- und Antwort-Bodys für drei Tage – das Sensibelste, was es überhaupt aufbewahrt. Header mit Zugangsdaten
werden nach Name und nach Wortbestandteil unlesbar gemacht, was eine Heuristik ist und keine Garantie; ein Header, der ein Geheimnis unter
einem Namen trägt, den nichts erkennt, kann aufgezeichnet werden.
-
Die Datenbank mit dem Datenverkehr wird nie hochgeladen. Drei kleinere Dinge verlassen den Mac, ohne dass jemand danach fragt, alle drei auf der
- Datenschutzseite benannt: die Update-Prüfung, die GitHub beim Start und täglich nach der neuesten Version
- fragt; die Abfrage zum Netzinhaber, die Team Cymru nach öffentlichen Adressen ohne Hostnamen fragt; und, solange Flowlight Zähler liest
- statt seine Erweiterung zu betreiben, eine Reverse-DNS-Abfrage der Adressen, zu denen es keinen Namen gesehen hat. Die ersten beiden haben
- Schalter zum Abschalten. Die dritte nicht, denn auf dem Sampler ist sie fast der einzige Weg, auf dem eine Verbindung überhaupt zu einem
- Namen kommt – sie geht an den Resolver, den der Mac schon benutzt, und sie hört auf, sobald die Erweiterung übernimmt und Verbindungen aus dem
- Datenverkehr selbst benennt. Fragen mit einem gehosteten Modell sendet weit mehr als alle drei und ist das eine, das aus bleibt, bis du es
- einrichtest.
+
Die Datenbank mit dem Datenverkehr wird nie hochgeladen. Die Datenschutzseite nennt jede ausgehende Anfrage: Release- und signierte Regelpaket-Prüfungen, die optionale Abfrage zum Netzinhaber und Reverse-DNS im Sampler. Die ersten drei haben Abschalter; Reverse-DNS nicht, weil der Sampler sonst die meisten Verbindungen nicht benennen könnte. Fragen mit einem gehosteten Modell senden weit mehr und bleiben aus, bis du sie einrichtest.
Updates
Versionen sind mit einer Developer ID signiert und notarisiert. Die Updatefunktion verlangt eine veröffentlichte Prüfsumme und verweigert
einen Download ohne sie, und prüft dann vor der Installation, dass die heruntergeladene App vom selben Team signiert ist wie die laufende
Kopie. Ein Update, das jemand anderes signiert hat, wird verweigert, auch wenn es sonst gültig ist.
+
Offizielle Regelpakete verwenden eine separate zweckgebundene Signatur und eine einzige festgelegte HTTPS-Quelle. Die App verwaltet unabhängig davon die höchste Sequenznummer, verifiziert beim Start die exakten zwischengespeicherten Bytes erneut, weist Rollbacks und widersprüchliche Veröffentlichungen zurück und behandelt eine Herausgebersignatur niemals als Erlaubnis, geänderte Inhalte durchzusetzen. Neue oder geänderte Pakete erfordern eine ausdrückliche Prüfung des exakten Inhalts und Sichern; veraltete akzeptierte Inhalte werden als letzter bekannter funktionsfähiger Stand gekennzeichnet, während ein Vertrauensentzug oder beschädigte Bytes sicherheitshalber zur Sperrung führen.
Cursor ⇥ raw.githubusercontent.com · rechazada 4 veces · de lunes a viernes 18:00–09:00
+
⛔ Previa activación
Paquetes gestionados de publicidad y rastreadores
Hay tres paquetes oficiales integrados, visibles y desactivados de forma predeterminada. Flowlight consulta un único feed HTTPS fijo para buscar actualizaciones firmadas; el contenido nuevo o modificado no se aplica hasta que revises esa versión exacta y pulses Guardar. Durante una interrupción, el contenido verificado y aceptado puede conservarse como la última versión válida conocida, marcada visiblemente como obsoleta.
Bloquean por nombre de host, por lo que no pueden eliminar anuncios propios del sitio, huecos del DOM o del diseño, superposiciones del navegador, ventanas emergentes generadas por scripts ni ventanas de aplicaciones nativas.
⛔ Rechaza
Salvaguardas sobre las herramientas de un agente
@@ -435,7 +436,7 @@
Un monitor que no tienes que vigilar
Se queda en tu Mac
Un único archivo SQLite local. Sin cuenta, sin sincronización en la nube, sin telemetría.
Metadatos por defecto
Nombres de host, puertos y bytes. Descifrar HTTPS es un modo aparte que tienes que activar, y también se queda en tu Mac.
Filtrado en el núcleo
La captura solo deja pasar las respuestas DNS y los ClientHello de TLS. Todo lo demás se descarta antes de que Flowlight lo vea.
-
Consultas que tú controlas
Para saber de quién es una dirección solo se envían a Team Cymru las IP públicas sin nombre de host, y se desactiva con un clic. La comprobación diaria de actualizaciones solo pregunta a GitHub por la última versión, y también puede desactivarse.
+
Consultas que tú controlas
Para saber de quién es una dirección solo se envían a Team Cymru las IP públicas sin nombre de host. Las comprobaciones de versiones y de paquetes de reglas firmados envían solicitudes HTTPS estándar sin tráfico ni configuración de paquetes. Cada una tiene su propio interruptor.
diff --git a/docs/es/privacy/index.html b/docs/es/privacy/index.html
index bbe7d615..7d62b059 100644
--- a/docs/es/privacy/index.html
+++ b/docs/es/privacy/index.html
@@ -48,7 +48,7 @@
-
+
Ir al contenido
@@ -125,6 +125,7 @@
Peticiones de red que hace la app
Petición
Enviada a
Qué contiene
Cuándo
Comprobación de actualizaciones
api.github.com
Una petición HTTPS normal de la última versión; GitHub ve tu dirección IP y el agente de usuario Flowlight/<version>
Al arrancar y a diario, desde la 0.1.2. Interruptor para desactivarla en Ajustes › General
Descarga de la actualización
github.com
La imagen de disco y su archivo de suma de verificación
Solo cuando pulsas Descargar y abrir
+
Actualización oficial del paquete de reglas
flowlight.xinbetween.com
Una solicitud HTTPS estándar al feed oficial fijo. El servidor ve tu dirección IP, el agente de usuario Flowlight/<version> y los validadores condicionales de caché; no recibe tráfico, ajustes de paquetes ni ningún identificador del dispositivo
Después del inicio, cuando corresponda, y luego como máximo una vez al día mientras todo funcione correctamente. Activada de forma predeterminada; interruptor para desactivarla y opción manual Buscar ahora en Reglas › Paquetes
DNS inverso
El servidor DNS que tengas configurado
Una consulta del nombre registrado de una dirección IP, cuando no se ha visto ningún nombre de host
Según haga falta, en el modo de captura del muestreador, que es el predeterminado hasta que la extensión de red esté en marcha. Sin interruptor para desactivarla: sin ella el muestreador no puede nombrar la mayoría de las conexiones. La extensión de red las nombra a partir del propio tráfico y no hace esta consulta
Consulta del propietario de la red
Team Cymru, por DNS
Direcciones IP públicas sin nombre de host conocido. Las direcciones privadas y reservadas no salen nunca de tu Mac
Activada por defecto. Interruptor para desactivarla en Captura › Identificar a los propietarios de la red
Preguntar con un modelo alojado
El proveedor que elijas: Anthropic, OpenAI, Google Gemini o un endpoint compatible
Tu pregunta y los resultados que devuelvan las consultas de solo lectura de Flowlight que elija el modelo. La base de datos de tráfico en sí no se sube
Solo cuando eliges un proveedor alojado y envías una pregunta. La pantalla Preguntar muestra las peticiones transmitidas
diff --git a/docs/es/threat-model/index.html b/docs/es/threat-model/index.html
index d10fb6d9..1f1e7f54 100644
--- a/docs/es/threat-model/index.html
+++ b/docs/es/threat-model/index.html
@@ -48,7 +48,7 @@
-
+
Ir al contenido
@@ -152,36 +152,34 @@
Lo que la inspección se pierde
cosas se aplica, app por app.
Qué es bloquear, y qué no
-
De una regla que rechaza conexiones se encarga la extensión de red, en el camino, antes de que la conexión se haga. De una regla que nombra
- una URL se encarga en cambio el proxy de inspección, que responde a la petición con un estado que la app puede leer. Esas son las dos únicas
- partes de Flowlight que actúan en lugar de informar — el muestreador nettop no puede rechazar nada en absoluto, así que en un Mac que captura
- con el muestreador no se aplica ninguna regla, y Flowlight lo dice en lugar de ofrecer un interruptor que no hace nada.
+
De una regla que rechaza conexiones se encarga normalmente la extensión de red, en el camino, antes de que la conexión se haga. Para el tráfico
+ encaminado por la inspección HTTPS, el proxy local aplica las reglas de destino y los paquetes gestionados activados al cliente original antes
+ de abrir la conexión con el servidor de origen; una regla que nombra una URL también se aplica allí, después del descifrado, y responde con un
+ estado que la app puede leer. Esas son las dos únicas partes de Flowlight que actúan en lugar de informar — el muestreador nettop no puede
+ rechazar nada en absoluto, así que en un Mac que captura con el muestreador no se aplica ninguna regla, y Flowlight lo dice en lugar de ofrecer
+ un interruptor que no hace nada.
Aun así no es impedir. Un agente que puede ejecutar un shell puede hacer a mano lo que habría hecho la herramienta rechazada. Un rechazo que
puedes deshacer con un clic es un rechazo por el que el siguiente intento del agente puede pasar. El tráfico local, el DNS, los servicios de
Apple y las propias conexiones de Flowlight no se rechazan nunca, porque un Mac bloqueado es peor resultado que un agente bloqueado. Y la
aplicación de las reglas caduca unos segundos después de que Flowlight deje de ejecutarse: un rechazo que nadie puede ver es peor que ninguno.
-
La inspección y el rechazo no se combinan. El tráfico encaminado por el propio proxy de Flowlight sale del Mac como tráfico
- de Flowlight, y Flowlight no se rechaza nunca a sí mismo — así que una app cuyas peticiones estás leyendo es una app cuyas conexiones las
- reglas ya no detienen. Activar la inspección para ver más te cuesta la aplicación de las reglas, y hasta ahora nada en la pantalla lo decía.
+
La inspección conserva el rechazo por nombre de host, con un límite. El tráfico encaminado por el proxy de Flowlight sale del
+ Mac como tráfico exento de Flowlight, así que el proxy decide primero las reglas de destino normales y los paquetes gestionados activados usando
+ la identidad original de la app. Puede hacerlo incluso con túneles que fijan certificados o que nunca se descifran, porque CONNECT nombra el host.
+ Las listas de permitidos de agentes siguen siendo una decisión de la Extensión de red y no se aplican a ese tramo hacia el servidor de origen a
+ través del proxy; el tráfico sin un propietario fiable o sin nombre de host se permite en vez de rechazarse sin que nadie lo vea.
Lo que guarda Flowlight mismo
Metadatos de tráfico en una base de datos SQLite local, con una retención publicada. Con la inspección HTTPS activada guarda además los
cuerpos de las peticiones y las respuestas durante tres días: lo más delicado que llega a conservar. Las cabeceras con credenciales se
censuran por nombre y por palabra, lo cual es una heurística y no una garantía; una cabecera que lleve un secreto con un nombre que nada
reconoce puede quedar registrada.
-
La base de datos de tráfico nunca se sube. Tres cosas más pequeñas sí salen del Mac sin que nadie las pida, las tres nombradas en la
- página de privacidad: la comprobación de actualizaciones, que pide a GitHub la última versión al arrancar y a
- diario; la consulta del propietario de la red, que pregunta a Team Cymru por direcciones públicas que no tienen nombre de host; y, mientras
- Flowlight lee contadores en vez de ejecutar su extensión, una consulta de DNS inverso de las direcciones para las que no vio ningún nombre.
- Las dos primeras se pueden desactivar. La tercera no, porque en el muestreador es casi la única manera en la que una conexión llega a tener
- nombre: va al servidor DNS que el Mac ya usa, y se detiene en cuanto la extensión toma el relevo y nombra las conexiones a partir del propio
- tráfico. Preguntar con un modelo alojado envía mucho más que cualquiera de ellas, y es lo único que está desactivado hasta que lo
- configuras.
+
La base de datos de tráfico nunca se sube. La página de privacidad enumera cada petición saliente: comprobaciones de versión y de paquetes de reglas firmados, la consulta opcional del propietario de red y DNS inverso en el muestreador. Las tres primeras tienen interruptores; el DNS inverso no, porque sin él el muestreador no podría nombrar la mayoría de las conexiones. Preguntar con un modelo alojado envía mucho más y permanece desactivado hasta que lo configuras.
Actualizaciones
Las versiones se firman con un Developer ID y se notarizan. El actualizador exige una suma de comprobación publicada y rechaza una descarga
que no la tenga; después comprueba que la app descargada esté firmada por el mismo equipo que la copia en ejecución antes de instalarla. Una
actualización firmada por otra persona se rechaza aunque por lo demás sea válida.
+
Los paquetes de reglas oficiales usan una firma independiente limitada a este fin y una única fuente HTTPS fija. La aplicación mantiene por separado una marca de la secuencia más alta, vuelve a verificar al iniciarse los bytes exactos almacenados en caché, rechaza las regresiones y las publicaciones contradictorias, y nunca considera la firma del editor como permiso para aplicar contenido modificado. Los paquetes nuevos o modificados requieren la revisión explícita del contenido exacto y Guardar; el contenido obsoleto ya aceptado se etiqueta como la última versión válida conocida, mientras que la revocación de la confianza o los bytes dañados provocan un rechazo seguro.
diff --git a/docs/fr/index.html b/docs/fr/index.html
index ae22ced8..a013e9fb 100644
--- a/docs/fr/index.html
+++ b/docs/fr/index.html
@@ -48,7 +48,7 @@
-
+
Aller au contenu
@@ -90,7 +90,7 @@
Voyez l’activité réseau de vos apps.
brew install --cask xinbetween/tap/flowlight
-
v0.15.3macOS 15+UniverselGPL-3.0Sans télémétrie
+
v0.15.4macOS 15+UniverselGPL-3.0Sans télémétrie
@@ -236,6 +236,7 @@
Voyez comment les agents IA se servent du réseau
une barrière contre ceux auxquels vous n’en faites pas — voyez le modèle de menaces.
Cursor ⇥ raw.githubusercontent.com · refusé 4 fois · en semaine 18:00–09:00
+
⛔ Sur activation
Packs gérés de publicité et de traqueurs
Trois packs officiels sont intégrés, visibles et désactivés par défaut. Flowlight consulte un flux HTTPS fixe unique pour rechercher les mises à jour signées ; tout contenu nouveau ou modifié reste inappliqué jusqu’à ce que vous examiniez cette version exacte et appuyiez sur Enregistrer. Pendant une panne, le contenu vérifié et accepté peut être conservé comme dernière version valide connue, visiblement signalée comme obsolète.
Ils bloquent par nom d’hôte et ne peuvent donc pas supprimer les publicités internes au site, les vides dans le DOM ou la mise en page, les superpositions du navigateur, les fenêtres contextuelles générées par des scripts ni les fenêtres d’applications natives.
⛔ Refuse
Des garde-fous sur les outils d’un agent
@@ -435,7 +436,7 @@
Un moniteur que vous n’avez pas à surveiller
Reste sur votre Mac
Un seul fichier SQLite local. Pas de compte, pas de synchronisation cloud, pas de télémétrie.
Des métadonnées par défaut
Noms d’hôte, ports et nombre d’octets. Déchiffrer le HTTPS est un mode distinct que vous devez activer, et qui reste sur votre Mac.
Filtré dans le noyau
La capture ne laisse passer que les réponses DNS et les ClientHello TLS. Tout le reste est écarté avant que Flowlight le voie.
-
Des recherches que vous maîtrisez
Nommer le propriétaire d’une adresse n’envoie à Team Cymru que des IP publiques sans nom d’hôte, et se désactive en un clic. La recherche quotidienne de mise à jour ne demande à GitHub que la dernière version, et peut aussi être désactivée.
+
Des recherches que vous maîtrisez
Nommer le propriétaire d’une adresse n’envoie à Team Cymru que les IP publiques sans nom d’hôte. Les vérifications de version et de packs de règles signés envoient des requêtes HTTPS standard sans trafic ni réglages de packs. Chacune dispose de son propre interrupteur.
diff --git a/docs/fr/privacy/index.html b/docs/fr/privacy/index.html
index 3829d0ee..642647a8 100644
--- a/docs/fr/privacy/index.html
+++ b/docs/fr/privacy/index.html
@@ -48,7 +48,7 @@
-
+
Aller au contenu
@@ -125,6 +125,7 @@
Les requêtes réseau que fait l’app
Requête
Envoyée à
Ce qu’elle contient
Quand
Recherche de mise à jour
api.github.com
Une requête HTTPS standard pour la dernière version ; GitHub voit votre adresse IP et l’agent utilisateur Flowlight/<version>
Au lancement et une fois par jour, depuis 0.1.2. Interrupteur d’arrêt dans Réglages › Général
Téléchargement de mise à jour
github.com
L’image disque et son fichier de somme de contrôle
Seulement quand vous cliquez sur Télécharger & ouvrir
+
Mise à jour du pack de règles officiel
flowlight.xinbetween.com
Une requête HTTPS standard vers le flux officiel fixe. Le serveur voit votre adresse IP, l’agent utilisateur Flowlight/<version> et les validateurs conditionnels du cache ; il ne reçoit ni trafic, ni réglages des packs, ni identifiant d’appareil
Après le démarrage, lorsqu’une vérification est due, puis au maximum une fois par jour tant que le service fonctionne normalement. Activée par défaut ; interrupteur de désactivation et option manuelle Rechercher maintenant dans Règles › Packs
DNS inverse
Le résolveur DNS que vous avez configuré
Une recherche du nom enregistré d’une adresse IP, quand aucun nom d’hôte n’a été observé
Au besoin, dans le mode de capture par échantillonnage, qui est celui par défaut jusqu’à ce que l’extension réseau tourne. Pas d’interrupteur d’arrêt : sans elle, l’échantillonneur ne peut pas nommer la plupart des connexions. L’extension réseau les nomme à partir du trafic lui-même et ne fait pas cette recherche
Recherche du propriétaire de réseau
Team Cymru, par DNS
Des adresses IP publiques sans nom d’hôte connu. Les adresses privées et réservées ne quittent jamais votre Mac
Activé par défaut. Interrupteur d’arrêt dans Capture › Identifier les propriétaires de réseau
Demander avec un modèle hébergé
Le fournisseur que vous choisissez : Anthropic, OpenAI, Google Gemini ou un point de terminaison compatible
Votre question et les résultats renvoyés par les requêtes Flowlight en lecture seule choisies par le modèle. La base de données de trafic elle-même n’est pas envoyée
Seulement quand vous choisissez un fournisseur hébergé et soumettez une question. L’écran Demander montre les requêtes transmises
diff --git a/docs/fr/threat-model/index.html b/docs/fr/threat-model/index.html
index a7b6e757..69add445 100644
--- a/docs/fr/threat-model/index.html
+++ b/docs/fr/threat-model/index.html
@@ -48,7 +48,7 @@
-
+
Aller au contenu
@@ -155,36 +155,34 @@
Ce que l’inspection manque
des deux s’applique, app par app.
Ce que le blocage est, et n’est pas
-
Une règle qui refuse des connexions est exécutée par l’extension réseau, sur le chemin, avant que la connexion ne soit faite. Une règle qui
- nomme une URL est exécutée par le proxy d’inspection, qui répond à la requête avec un statut que l’app peut lire. Ce sont les deux seules
- parties de Flowlight qui agissent au lieu de rapporter — l’échantillonneur nettop, lui, ne peut rien refuser du tout : sur un Mac qui
- capture avec l’échantillonneur, aucune règle n’est appliquée, et Flowlight le dit plutôt que de proposer un interrupteur qui ne fait rien.
+
Une règle qui refuse des connexions est normalement exécutée par l’extension réseau, sur le chemin, avant que la connexion ne soit faite. Pour
+ le trafic acheminé par l’inspection HTTPS, le proxy local applique les règles de destination et les packs gérés activés au client d’origine
+ avant d’ouvrir la connexion au serveur d’origine ; une règle qui nomme une URL y est également exécutée après le déchiffrement, avec un
+ statut que l’app peut lire. Ce sont les deux seules parties de Flowlight qui agissent au lieu de rapporter — l’échantillonneur nettop, lui, ne
+ peut rien refuser du tout : sur un Mac qui capture avec l’échantillonneur, aucune règle n’est appliquée, et Flowlight le dit plutôt que de
+ proposer un interrupteur qui ne fait rien.
Ce n’est pourtant toujours pas empêcher. Un agent qui peut lancer un shell peut faire à la main ce que l’outil refusé aurait fait. Un refus que
vous pouvez annuler d’un clic est un refus que la tentative suivante d’un agent peut franchir. Le trafic local, le DNS, les services d’Apple et
les connexions de Flowlight lui-même ne sont jamais refusés, parce qu’un Mac bloqué est un pire résultat qu’un agent bloqué. Et l’application
des refus cesse quelques secondes après l’arrêt de Flowlight : un refus que personne ne peut voir est pire que pas de refus.
-
Inspection et refus ne se combinent pas. Le trafic passé par le proxy de Flowlight lui-même quitte le Mac comme du trafic de
- Flowlight, et Flowlight ne se refuse jamais lui-même — une app dont vous lisez les requêtes est donc une app dont les règles n’arrêtent plus
- les connexions. Activer l’inspection pour en voir plus vous coûte l’application des refus, et rien à l’écran ne le disait jusqu’ici.
+
L’inspection préserve le refus par nom d’hôte, avec une limite. Le trafic acheminé par le proxy de Flowlight quitte le Mac comme
+ du trafic Flowlight exempté ; le proxy décide donc d’abord des règles de destination ordinaires et des packs gérés activés en utilisant
+ l’identité d’origine de l’app. Il peut le faire même pour les tunnels épinglés ou jamais déchiffrés, car CONNECT nomme l’hôte. Les listes
+ d’autorisation des agents restent une décision de l’Extension réseau et ne s’appliquent pas à ce trajet vers le serveur d’origine par le proxy ;
+ le trafic sans propriétaire fiable ou sans nom d’hôte est autorisé plutôt que refusé sans que personne ne le voie.
Ce que Flowlight lui-même conserve
Des métadonnées de trafic dans une base de données SQLite locale, avec une durée de conservation publiée. Avec l’inspection HTTPS activée, il
conserve aussi les corps des requêtes et des réponses pendant trois jours — la chose la plus sensible qu’il garde jamais. Les en-têtes
d’identification sont masqués par nom et par mot, ce qui est une heuristique et non une garantie ; un en-tête qui porte un secret sous un
nom que rien ne reconnaît peut être enregistré.
-
La base de données de trafic n’est jamais téléversée. Trois choses plus petites quittent bien le Mac sans qu’on les demande, toutes trois
- nommées sur la page Confidentialité : la recherche de mise à jour, qui demande à GitHub la dernière version
- au lancement et une fois par jour ; la consultation du propriétaire du réseau, qui interroge Team Cymru sur les adresses publiques sans
- nom d’hôte ; et, tant que Flowlight lit des compteurs au lieu de faire tourner son extension, une recherche DNS inverse des adresses dont
- il n’a vu aucun nom. Les deux premières ont un interrupteur d’arrêt. La troisième non, parce que sur l’échantillonneur c’est l’essentiel de la
- façon dont une connexion obtient un nom : elle va au résolveur que le Mac utilise déjà, et elle s’arrête dès que l’extension prend le
- relais et nomme les connexions à partir du trafic lui-même. Demander avec un modèle hébergé envoie bien plus que n’importe laquelle d’entre
- elles, et c’est la seule chose qui reste désactivée jusqu’à ce que vous la configuriez.
+
La base de données de trafic n’est jamais téléversée. La page Confidentialité répertorie chaque requête sortante : vérifications de version et de packs de règles signés, consultation facultative du propriétaire du réseau et DNS inverse avec l’échantillonneur. Les trois premières ont des interrupteurs ; le DNS inverse non, car sans lui l’échantillonneur ne pourrait pas nommer la plupart des connexions. Un modèle hébergé envoie bien plus et reste désactivé jusqu’à configuration.
Mises à jour
Les versions sont signées avec un Developer ID et notarisées. Le programme de mise à jour exige une somme de contrôle publiée et refuse un
téléchargement qui n’en a pas, puis vérifie que l’app téléchargée est signée par la même équipe que la copie en cours d’exécution avant de
l’installer. Une mise à jour signée par quelqu’un d’autre est refusée, même si elle est valide par ailleurs.
+
Les packs de règles officiels utilisent une signature distincte limitée à cet usage et une source HTTPS fixe unique. L’application conserve séparément un repère de la séquence la plus élevée, revérifie au démarrage les octets exacts mis en cache, rejette les retours en arrière et les publications contradictoires, et ne considère jamais la signature d’un éditeur comme une autorisation d’appliquer un contenu modifié. Les packs nouveaux ou modifiés exigent l’examen explicite du contenu exact et Enregistrer ; le contenu obsolète déjà accepté est étiqueté comme dernière version valide connue, tandis qu’une révocation de confiance ou des octets corrompus entraînent un refus sécurisé.
See your apps' network activity. brew install --cask xinbetween/tap/flowlight
-
v0.15.3macOS 15+UniversalGPL-3.0No telemetry
+
v0.15.4macOS 15+UniversalGPL-3.0No telemetry
@@ -248,7 +248,9 @@
Monitor how AI agents use the network
⛔ Opt-in
Managed ad and tracker packs
Three official packs — Advertising, Cross-site tracking, and Privacy and telemetry — are built in, visible and off by
- default. With the Network Extension, apply one to every app or only selected apps; preview it against retained traffic,
+ default. Flowlight checks one fixed HTTPS feed for signed updates; new or changed content remains out of enforcement until
+ you review that exact version and press Save. During an outage, verified accepted content is visibly stale last-known-good.
+
With the Network Extension, apply one to every app or only selected apps; preview it against retained traffic,
see grouped, explainable activity, and add pack-specific exceptions for an app. Ordinary allow rules remain the universal
escape hatch, global Pause Blocking applies, and essential system traffic stays allowed.
They block by hostname, so they cannot remove first-party ads, DOM or layout gaps, browser overlays, scripted popups, or
@@ -455,7 +457,7 @@
A monitor you don't have to monitor
Stays on your Mac
One local SQLite file. No account, no cloud sync, no telemetry.
Metadata by default
Hostnames, ports and byte counts. Decrypting HTTPS is a separate mode you have to turn on, and it stays on your Mac.
Filtered in the kernel
Capture passes only DNS answers and TLS ClientHellos. Everything else is dropped before Flowlight sees it.
-
Lookups you control
Naming who owns an address sends only public IPs with no hostname to Team Cymru, and turns off in one click. The daily update check only asks GitHub for the latest version, and can be turned off too.
+
Lookups you control
Naming who owns an address sends only public IPs with no hostname to Team Cymru. Release and signed rule-pack checks send standard HTTPS requests with no traffic or pack settings. Each has an off switch.
Cursor ⇥ raw.githubusercontent.com · rifiutata 4 volte · nei giorni feriali 18:00–09:00
+
⛔ Da attivare
Pacchetti gestiti per pubblicità e tracker
Tre pacchetti ufficiali sono integrati, visibili e disattivati per impostazione predefinita. Flowlight controlla un unico feed HTTPS fisso per gli aggiornamenti firmati; i contenuti nuovi o modificati restano esclusi dall’applicazione finché non esamini quella versione esatta e premi Salva. Durante un’interruzione, i contenuti verificati e accettati possono restare disponibili come ultima versione valida nota, visibilmente indicata come obsoleta.
Bloccano in base al nome host, quindi non possono rimuovere pubblicità proprietarie, spazi vuoti nel DOM o nel layout, sovrapposizioni del browser, popup generati da script o finestre native delle app.
⛔ Rifiuta
Protezioni sugli strumenti di un agente
@@ -435,7 +436,7 @@
Un monitoraggio che non devi monitorare
Resta sul tuo Mac
Un solo file SQLite locale. Nessun account, nessuna sincronizzazione nel cloud, nessuna telemetria.
Metadati, per impostazione predefinita
Nomi host, porte e byte conteggiati. Decifrare HTTPS è una modalità separata che devi attivare tu, e resta sul tuo Mac.
Filtrato nel kernel
L'acquisizione lascia passare solo le risposte DNS e i ClientHello TLS. Tutto il resto viene scartato prima che Flowlight lo veda.
-
Ricerche che controlli tu
Per dare un nome al proprietario di un indirizzo vengono inviati a Team Cymru solo gli IP pubblici senza nome host, e si disattiva con un clic. Il controllo giornaliero degli aggiornamenti chiede a GitHub solo l'ultima versione, e anche quello si può disattivare.
+
Ricerche che controlli tu
Per dare un nome al proprietario di un indirizzo vengono inviati a Team Cymru solo gli IP pubblici senza nome host. I controlli della versione e dei pacchetti di regole firmati inviano richieste HTTPS standard senza traffico né impostazioni dei pacchetti. Ciascuno ha il proprio interruttore.
diff --git a/docs/it/privacy/index.html b/docs/it/privacy/index.html
index adf1c035..ffb0cc18 100644
--- a/docs/it/privacy/index.html
+++ b/docs/it/privacy/index.html
@@ -48,7 +48,7 @@
-
+
Vai al contenuto
@@ -125,6 +125,7 @@
Richieste di rete che fa l'app
Richiesta
Inviata a
Cosa contiene
Quando
Controllo aggiornamenti
api.github.com
Una normale richiesta HTTPS per l'ultima versione; GitHub vede il tuo indirizzo IP e lo user agent Flowlight/<version>
All'avvio e una volta al giorno, dalla 0.1.2. Interruttore per disattivarla in Impostazioni › Generali
Download dell'aggiornamento
github.com
L'immagine disco e il suo file di checksum
Solo quando fai clic su Scarica e apri
+
Aggiornamento ufficiale del pacchetto di regole
flowlight.xinbetween.com
Una richiesta HTTPS standard al feed ufficiale fisso. Il server vede il tuo indirizzo IP, lo user agent Flowlight/<version> e i validatori condizionali della cache; non riceve traffico, impostazioni dei pacchetti o identificatori del dispositivo
Dopo l’avvio, quando previsto, e successivamente non più di una volta al giorno durante il normale funzionamento. Attivo per impostazione predefinita; interruttore per disattivarlo e opzione manuale Controlla ora in Regole › Pacchetti
DNS inverso
Il resolver DNS che hai configurato
Una ricerca del nome registrato di un indirizzo IP, quando non è stato rilevato alcun nome host
Quando serve, nella modalità di acquisizione a campionamento, che è quella predefinita finché l'estensione di rete non è in funzione. Nessun interruttore per disattivarla: senza di essa il campionatore non può dare un nome alla maggior parte delle connessioni. L'estensione di rete le nomina dal traffico stesso e non fa questa ricerca
Ricerca del proprietario della rete
Team Cymru, via DNS
Indirizzi IP pubblici senza nome host noto. Gli indirizzi privati e riservati non lasciano mai il tuo Mac
Attiva per impostazione predefinita. Interruttore per disattivarla in Acquisizione › Identifica i proprietari della rete
Chiedi con un modello ospitato
Il provider che selezioni: Anthropic, OpenAI, Google Gemini o un endpoint compatibile
La tua domanda e i risultati restituiti dalle query di sola lettura di Flowlight selezionate dal modello. Il database del traffico non viene caricato
Solo quando selezioni un provider ospitato e invii una domanda. La schermata Chiedi mostra le richieste trasmesse
diff --git a/docs/it/threat-model/index.html b/docs/it/threat-model/index.html
index aad21923..2bb204f9 100644
--- a/docs/it/threat-model/index.html
+++ b/docs/it/threat-model/index.html
@@ -48,7 +48,7 @@
-
+
Vai al contenuto
@@ -154,35 +154,34 @@
Cosa sfugge all'ispezione
cose valga, app per app.
Cosa è, e cosa non è, il blocco
-
Una regola che rifiuta le connessioni viene eseguita dall'estensione di rete, sul percorso, prima che la connessione venga stabilita. Una
- regola che nomina un URL viene eseguita invece dal proxy di ispezione, che risponde alla richiesta con uno stato che l'app può leggere. Sono le
- sole due parti di Flowlight che agiscono invece di riferire — il campionatore nettop non può rifiutare proprio nulla, quindi su un Mac che
- acquisisce con il campionatore nessuna regola viene applicata, e Flowlight lo dice invece di offrire un interruttore che non fa niente.
+
Una regola che rifiuta le connessioni viene normalmente eseguita dall'estensione di rete, sul percorso, prima che la connessione venga stabilita.
+ Per il traffico instradato attraverso l'ispezione HTTPS, il proxy locale applica le regole di destinazione e i pacchetti gestiti attivi al client
+ originale prima di aprire la connessione al server di origine; una regola che nomina un URL viene eseguita anche lì, dopo la decifratura, con uno
+ stato che l'app può leggere. Sono le sole due parti di Flowlight che agiscono invece di riferire — il campionatore nettop non può rifiutare
+ proprio nulla, quindi su un Mac che acquisisce con il campionatore nessuna regola viene applicata, e Flowlight lo dice invece di offrire un
+ interruttore che non fa niente.
Non è comunque impedire. Un agente che può eseguire una shell può fare a mano ciò che avrebbe fatto lo strumento rifiutato. Un rifiuto che
puoi annullare con un clic è un rifiuto attraverso cui il tentativo successivo di un agente può passare. Il traffico locale, il DNS, i servizi
di Apple e le connessioni di Flowlight stesso non vengono mai rifiutati, perché un Mac bloccato è un esito peggiore di un agente bloccato. E
l'applicazione decade pochi secondi dopo che Flowlight smette di funzionare: un rifiuto che nessuno può vedere è peggio di nessun rifiuto.
-
Ispezione e rifiuto non si combinano. Il traffico instradato attraverso il proxy di Flowlight stesso lascia il Mac come
- traffico di Flowlight, e Flowlight non rifiuta mai se stesso — quindi un'app di cui stai leggendo le richieste è un'app le cui connessioni le
- regole non fermano più. Attivare l'ispezione per vedere di più ti costa l'applicazione delle regole, e finora nulla sullo schermo lo diceva.
+
L'ispezione mantiene il rifiuto per nome host, con un limite. Il traffico instradato attraverso il proxy di Flowlight lascia il
+ Mac come traffico Flowlight esente, quindi il proxy decide prima le normali regole di destinazione e i pacchetti gestiti attivi usando l'identità
+ originale dell'app. Può farlo anche per tunnel con pinning o mai decifrati, perché CONNECT specifica l'host. Gli elenchi consentiti degli agenti
+ restano una decisione dell'Estensione di rete e non si applicano a quel tratto verso il server di origine attraverso il proxy; il traffico senza
+ un proprietario attendibile o senza nome host viene consentito invece di essere rifiutato senza che nessuno lo veda.
Cosa conserva Flowlight stesso
Metadati del traffico in un database SQLite locale, con una conservazione pubblicata. Con l'ispezione HTTPS attiva conserva anche i corpi delle
richieste e delle risposte per tre giorni — la cosa più delicata che arrivi mai a tenere. Le intestazioni con credenziali vengono oscurate per
nome e per parola, che è un'euristica e non una garanzia; un'intestazione che porta un segreto sotto un nome che nulla riconosce può essere
registrata.
-
Il database del traffico non viene mai caricato. Tre cose più piccole lasciano il Mac senza che nessuno le chieda, tutte e tre nominate nella
- pagina sulla privacy: il controllo degli aggiornamenti, che chiede a GitHub l'ultima versione all'avvio e una
- volta al giorno; la ricerca del proprietario della rete, che chiede a Team Cymru degli indirizzi pubblici senza nome host; e, finché Flowlight
- legge i contatori invece di far girare la sua estensione, una ricerca DNS inversa degli indirizzi per cui non ha visto alcun nome. Le prime due
- hanno un interruttore per disattivarle. La terza no, perché sul campionatore è in gran parte il modo in cui una connessione arriva ad avere un
- nome: va al resolver che il Mac già usa, e si ferma appena l'estensione prende il suo posto e nomina le connessioni dal traffico stesso. Chiedi
- con un modello ospitato invia molto più di ognuna di esse, ed è la sola cosa che resta disattivata finché non la configuri.
+
Il database del traffico non viene mai caricato. La pagina sulla privacy elenca ogni richiesta in uscita: controlli della versione e dei pacchetti di regole firmati, ricerca facoltativa del proprietario della rete e DNS inverso con il campionatore. Le prime tre hanno interruttori; il DNS inverso no, perché senza di esso il campionatore non potrebbe nominare la maggior parte delle connessioni. Un modello ospitato invia molto di più e resta disattivato finché non lo configuri.
Aggiornamenti
Le versioni sono firmate con un Developer ID e notarizzate. L'aggiornamento richiede una checksum pubblicata e rifiuta un download che non ne
ha una, poi verifica che l'app scaricata sia firmata dallo stesso team della copia in esecuzione prima di installarla. Un aggiornamento firmato
da qualcun altro viene rifiutato anche se per il resto è valido.
+
I pacchetti di regole ufficiali usano una firma distinta e limitata a questo scopo e un’unica fonte HTTPS fissa. L’app conserva separatamente un marcatore della sequenza più alta, verifica di nuovo all’avvio gli esatti byte memorizzati nella cache, rifiuta rollback e pubblicazioni discordanti e non considera mai la firma dell’editore un’autorizzazione ad applicare contenuti modificati. I pacchetti nuovi o modificati richiedono l’esame esplicito del contenuto esatto e Salva; i contenuti obsoleti già accettati sono indicati come ultima versione valida nota, mentre la revoca dell’attendibilità o byte danneggiati fanno rifiutare il contenuto per sicurezza.
トラフィックのデータベースがアップロードされることはありません。それでも、頼まなくても Mac から出ていくものが 3 つあり、
- どれもプライバシーのページに挙げてあります。起動時と 1 日 1 回、最新のリリースを GitHub に
- 尋ねるアップデートの確認。ホスト名のない公開アドレスについて Team Cymru に尋ねるネットワーク所有者の照会。そして、
- Flowlight が機能拡張ではなくカウンタを読んでいるあいだ、名前が見つからなかったアドレスの逆引き DNS 照会です。
- はじめの 2 つにはオフのスイッチがあります。3 つめにはありません。サンプラーでは、接続に名前が付く道のほとんどがそれだからです。
- 照会はこの Mac がすでに使っているリゾルバへ行き、機能拡張が引き継いでトラフィック自身から名前を付けるようになれば止まります。
- ホスト型モデルでの質問は、そのどれよりもはるかに多くを送りますが、設定するまではオフのままである唯一のものです。
+
トラフィックのデータベースがアップロードされることはありません。プライバシーのページには、リリースと署名付きルールパックの確認、任意のネットワーク所有者照会、サンプラーの逆引き DNS というすべての送信を記載しています。最初の 3 つにはオフのスイッチがあります。逆引き DNS は、多くの接続に名前を付けるため必要なのでありません。ホスト型モデルはより多くを送信し、設定するまでオフです。
アップデート
リリースは Developer ID で署名され、公証されています。アップデート機能は公開されたチェックサムを要求し、それがないダウンロードを
拒否します。そのうえで、ダウンロードしたアプリが実行中のコピーと同じチームの署名であることを確かめてから、インストールします。
別の誰かが署名したアップデートは、ほかの点で有効であっても拒否されます。
세 가지 공식 팩이 내장되어 있고 처음부터 표시되지만 모두 기본적으로 꺼져 있습니다. Flowlight는 서명된 업데이트가 있는지 하나의 고정 HTTPS 피드를 확인합니다. 새 콘텐츠나 변경된 콘텐츠는 정확한 해당 버전을 검토하고 저장을 누를 때까지 차단 적용에서 제외됩니다. 서비스 중단 중에는 검증되고 승인된 콘텐츠가 오래된 상태임을 명확히 표시한 마지막 정상 버전으로 유지될 수 있습니다.
호스트 이름을 기준으로 차단하므로 자사 광고, DOM이나 레이아웃의 빈 공간, 브라우저 오버레이, 스크립트로 생성된 팝업 또는 네이티브 앱 창은 제거할 수 없습니다.
⛔ 거부
에이전트의 도구에 두는 가드레일
@@ -435,7 +436,7 @@
감시하지 않아도 되는 감시 도구
Mac 안에 머무릅니다
로컬 SQLite 파일 하나. 계정도, 클라우드 동기화도, 텔레메트리도 없습니다.
기본은 메타데이터
호스트 이름과 포트, 바이트 수. HTTPS 복호화는 직접 켜야 하는 별도 모드이며, 그 결과도 Mac 안에 남습니다.
커널에서 걸러냅니다
캡처는 DNS 응답과 TLS ClientHello만 통과시킵니다. 나머지는 Flowlight가 보기 전에 버려집니다.
-
조회는 내가 정합니다
주소의 소유자를 알아낼 때는 호스트 이름이 없는 공용 IP만 Team Cymru로 보내며, 클릭 한 번으로 끌 수 있습니다. 하루 한 번 업데이트 확인은 GitHub에 최신 버전만 물어보고, 이것도 끌 수 있습니다.
+
조회는 내가 정합니다
주소의 소유자를 알아낼 때는 호스트 이름이 없는 공용 IP만 Team Cymru로 보냅니다. 릴리스와 서명된 규칙 팩 확인은 트래픽이나 팩 설정 없이 표준 HTTPS 요청을 보냅니다. 각각 별도로 끌 수 있습니다.
연결을 거부하는 규칙을 실행하는 것은 네트워크 확장이며, 그 경로 안에서, 연결이 만들어지기 전에 실행합니다. URL을 지정하는
- 규칙은 검사 프록시가 대신 실행해, 앱이 읽을 수 있는 상태 코드로 요청에 답합니다. 보고하는 대신 실제로 손을 쓰는 Flowlight의
- 부분은 이 둘뿐입니다. nettop 샘플러는 아무것도 거부할 수 없으므로, 샘플러로 돌아가는 Mac에서는 어떤 규칙도 적용되지 않습니다.
- Flowlight는 아무 일도 하지 않는 스위치를 내놓는 대신 그렇다고 말합니다.
+
연결을 거부하는 규칙은 보통 네트워크 확장이 그 경로 안에서, 연결이 만들어지기 전에 실행합니다. HTTPS 검사를 거치는 트래픽은
+ 로컬 프록시가 원본 서버 연결을 열기 전에 원래 클라이언트에 대상 규칙과 활성화된 관리형 팩을 적용합니다. URL을 지정하는 규칙도
+ 복호화 후 그곳에서 실행되어, 앱이 읽을 수 있는 상태 코드로 응답합니다. 보고하는 대신 실제로 손을 쓰는 Flowlight의 부분은 이
+ 둘뿐입니다. nettop 샘플러는 아무것도 거부할 수 없으므로, 샘플러로 돌아가는 Mac에서는 어떤 규칙도 적용되지 않습니다. Flowlight는
+ 아무 일도 하지 않는 스위치를 내놓는 대신 그렇다고 말합니다.
그래도 예방은 아닙니다. 셸을 쓸 수 있는 에이전트는 거부된 도구가 했을 일을 직접 할 수 있습니다. 클릭 한 번으로 되돌릴 수 있는
거부는, 에이전트의 다음 시도가 걸어 나갈 수 있는 거부입니다. 로컬 트래픽과 DNS, Apple 기본 서비스, Flowlight 자신의 연결은 절대
거부되지 않습니다. 막힌 Mac은 막힌 에이전트보다 나쁜 결과이기 때문입니다. 그리고 Flowlight가 멈추면 몇 초 뒤에 적용이 풀립니다.
아무도 볼 수 없는 거부는 거부가 없는 것보다 나쁘기 때문입니다.
-
검사와 거부는 함께 가지 않습니다. Flowlight 자신의 프록시를 거친 트래픽은 Flowlight의 트래픽으로 Mac을
- 떠나고, Flowlight는 자기 자신을 거부하지 않습니다. 그러니 요청을 읽고 있는 앱은, 규칙으로는 더 이상 연결을 막을 수 없는
- 앱입니다. 더 보려고 검사를 켜는 일은 적용을 내주는 일이기도 한데, 화면에는 지금까지 그런 말이 없었습니다.
+
검사에서도 호스트 이름에 따른 거부는 유지되지만 경계가 있습니다. Flowlight의 프록시를 거친 트래픽은 예외 처리된
+ Flowlight 트래픽으로 Mac을 떠나므로, 프록시가 먼저 원래 앱의 신원을 사용해 일반 대상 규칙과 활성화된 관리형 팩을 결정합니다.
+ CONNECT가 호스트 이름을 지정하므로 인증서가 고정되었거나 복호화되지 않는 터널에서도 이 판정을 할 수 있습니다. 에이전트 허용 목록은
+ 네트워크 확장의 결정으로 남으며 프록시에서 원본 서버로 가는 구간에는 적용되지 않습니다. 신뢰할 수 있는 소유자나 호스트 이름이 없는
+ 트래픽은 보이지 않게 거부하지 않고 연결을 허용합니다.
Flowlight 자신이 갖고 있는 것
트래픽 메타데이터를 로컬 SQLite 데이터베이스에, 공개된 보관 기간만큼 갖고 있습니다. HTTPS 검사를 켜 두면 요청과 응답의 본문도
3일 동안 갖고 있는데, 이것이 Flowlight가 보관하는 것 중 가장 민감한 것입니다. 인증 정보 헤더는 이름과 낱말로 가려지지만, 그것은
추정 규칙이고 보장이 아닙니다. 아무것도 알아보지 못하는 이름 아래 비밀을 실어 보내는 헤더는 기록될 수 있습니다.
-
트래픽 데이터베이스는 업로드되지 않습니다. 그래도 묻지 않아도 Mac을 떠나는 것이 세 가지 있고, 셋 다
- 개인정보 페이지에 이름이 적혀 있습니다. 실행할 때와 하루에 한 번 GitHub에 최신 릴리스를 묻는
- 업데이트 확인, 호스트 이름이 없는 공개 주소를 Team Cymru에 묻는 네트워크 소유자 조회, 그리고 Flowlight가 확장 대신 카운터를
- 읽고 있는 동안 이름을 보지 못한 주소에 대한 역방향 DNS 조회입니다. 앞의 둘은 끄는 스위치가 있습니다. 셋째는 없습니다.
- 샘플러에서는 연결에 이름이 붙는 길이 대부분 그것이기 때문입니다. 그 조회는 Mac이 이미 쓰는 리졸버로 가고, 확장이 이어받아
- 트래픽 자체에서 이름을 붙이기 시작하면 멈춥니다. 호스팅 모델로 하는 질문은 그 셋 가운데 어느 것보다도 훨씬 많은 것을
- 보내지만, 직접 설정할 때까지 꺼져 있는 유일한 것입니다.
+
트래픽 데이터베이스는 업로드되지 않습니다. 개인정보 페이지에는 릴리스와 서명된 규칙 팩 확인, 선택 사항인 네트워크 소유자 조회, 샘플러의 역방향 DNS 등 모든 외부 요청이 나열됩니다. 앞의 세 항목에는 끄기 스위치가 있습니다. 역방향 DNS는 대부분의 연결에 이름을 붙이는 데 필요해 스위치가 없습니다. 호스팅 모델은 훨씬 더 많은 정보를 보내며 설정하기 전에는 꺼져 있습니다.
업데이트
릴리스는 Developer ID로 서명되고 공증됩니다. 업데이터는 공개된 체크섬을 요구하고 그것이 없는 내려받기를 거부하며, 그다음 설치
전에 내려받은 앱이 실행 중인 사본과 같은 팀의 서명인지 확인합니다. 다른 사람이 서명한 업데이트는 나머지가 다 유효해도
거부됩니다.
+
공식 규칙 팩은 용도를 한정한 별도의 서명과 하나의 고정 HTTPS 소스를 사용합니다. 앱은 독립적인 최고 시퀀스 워터마크를 유지하고, 시작할 때 캐시된 정확한 바이트를 다시 검증하며, 롤백과 서로 상충하는 콘텐츠의 제시를 거부합니다. 또한 게시자 서명을 변경된 콘텐츠의 차단 적용을 허용하는 권한으로 취급하지 않습니다. 새 팩이나 변경된 팩에는 정확한 콘텐츠를 명시적으로 검토하고 저장하는 절차가 필요합니다. 오래된 승인 콘텐츠에는 마지막 정상 버전이라는 표시가 붙으며, 신뢰가 취소되었거나 바이트가 손상된 경우에는 안전을 위해 거부됩니다.
diff --git a/docs/llms-full.txt b/docs/llms-full.txt
index 2186f98f..7b3605a1 100644
--- a/docs/llms-full.txt
+++ b/docs/llms-full.txt
@@ -62,7 +62,7 @@ Documentation
Using Flowlight
- Everything from the first launch to tuning the agent rules. Flowlight 0.15.3, macOS 15 or later.
+ Everything from the first launch to tuning the agent rules. Flowlight 0.15.4, macOS 15 or later.
On this page
@@ -518,12 +518,19 @@ open build/Build/Products/Release/Flowlight.app
advertising delivery and auction hosts; Cross-site tracking covers common analytics, session replay and
cross-site measurement hosts; and Privacy and telemetry covers crash reporting, install attribution, and
audited Apple advertising and analytics hosts. The packs are visible from the start and all are off by default.
- Nothing changes on an update until you choose a pack and enable it.
+
+ Official-only, signed updates. Flowlight checks one fixed HTTPS source for newer publisher-signed catalogs.
+ Automatic checks are on by default and can be switched off here. A signature authenticates content but does not enable it:
+ a new pack stays off, and changed destinations remove an enabled pack from enforcement until you review the exact new version
+ and press Save. If content changes while its editor is open, the stale Save is refused. An accepted catalog may remain available
+ as visibly stale last-known-good during an outage; rollback, equivocation, revoked trust, or corrupt cached bytes fail closed.
Each pack has its own scope. Apply it globally to every app, or only to selected applications. Blocking needs
- the Network Extension: the nettop sampler can record traffic, but it cannot sit in a connection's path and refuse it. Essential
- system traffic remains allowed — including the services that carry Apple accounts, push notifications, software updates,
- certificate checks and iCloud — even when a pack applies globally.
+ the Network Extension: the nettop sampler can record traffic, but it cannot sit in a connection's path and refuse it. When HTTPS
+ inspection routes an app through Flowlight's proxy, enabled packs and ordinary destination rules are decided against that original
+ app before any origin connection opens. This also covers pinned and never-decrypted tunnels by hostname; agent allowlists remain
+ limited to the direct Network Extension path. Essential system traffic remains allowed — including the services that carry Apple
+ accounts, push notifications, software updates, certificate checks and iCloud — even when a pack applies globally.
Preview before enforcing. Test against recent traffic replays the proposed pack and scope against up
to seven days of retained traffic. It reports only decisions that would actually change after ordinary rules, the global pause,
@@ -838,9 +845,9 @@ open build/Build/Products/Release/Flowlight.app
It shows which extensions are installed, whether macOS actually started Flowlight's filter, and how recently anything was recorded.
Paste it into an issue.
Does Flowlight send anything about me anywhere?
- No account, no telemetry, no analytics, and your traffic database is never uploaded. Three requests do leave the Mac, all listed on the
- privacy page: the daily update check and the optional network-owner lookup, both with off switches, and
- reverse DNS while Flowlight is on the sampler, which has none — without it the sampler could not name most connections.
+ No account, no telemetry, no analytics, and your traffic database is never uploaded. Four requests can leave the Mac, all listed on the
+ privacy page: release and signed rule-pack checks plus the optional network-owner lookup, all with off
+ switches, and reverse DNS while Flowlight is on the sampler, which has none — without it the sampler could not name most connections.
Will it slow my Mac down or drain the battery?
With the window closed Flowlight does almost nothing: it keeps the menu bar rates and writes one row a second. The Network Extension
costs less than the fallback sampler, which starts a short-lived nettop process every second.
@@ -887,7 +894,7 @@ Understand your AI agents.
brew install --cask xinbetween/tap/flowlightCopy
- v0.15.3macOS 15+UniversalGPL-3.0No telemetry
+ v0.15.4macOS 15+UniversalGPL-3.0No telemetry
connectionslive
@@ -1038,7 +1045,10 @@ Optional. What did the agent actually send, and which tool call made it? Decrypt
Managed ad and tracker packs
Three official packs — Advertising, Cross-site tracking, and Privacy and telemetry — are built in, visible and off by
- default. With the Network Extension, apply one to every app or only selected apps; preview it against retained traffic,
+ default. Flowlight checks one fixed HTTPS feed for signed updates; new or changed content remains out of enforcement until
+ you review that exact version and press Save. During an outage, verified accepted content is visibly stale last-known-good.
+
+ With the Network Extension, apply one to every app or only selected apps; preview it against retained traffic,
see grouped, explainable activity, and add pack-specific exceptions for an app. Ordinary allow rules remain the universal
escape hatch, global Pause Blocking applies, and essential system traffic stays allowed.
@@ -1256,7 +1266,7 @@ e.g. Wireshark
Filtered in the kernelCapture passes only DNS answers and TLS ClientHellos. Everything else is dropped before Flowlight sees it.
- Lookups you controlNaming who owns an address sends only public IPs with no hostname to Team Cymru, and turns off in one click. The daily update check only asks GitHub for the latest version, and can be turned off too.
+ Lookups you controlNaming who owns an address sends only public IPs with no hostname to Team Cymru. Release and signed rule-pack checks send standard HTTPS requests with no traffic or pack settings. Each has an off switch.
One agent, every tool call. Traffic from the git, curl and MCP servers Claude Code started counts as Claude Code's.
With HTTPS inspection on, the Tool calls tab shows what the model asked for, what came back, and the requests each tool made:
@@ -1569,6 +1579,8 @@ Privacy
Update downloadgithub.comThe disk image and its checksum fileOnly when you click Download & Open
+ Official rule-pack updateflowlight.xinbetween.comA standard HTTPS request to the fixed official feed for a publisher-signed catalog. The server sees your IP address, the Flowlight/ user agent, and conditional cache validators; it receives no traffic, pack settings, or device identifierAfter startup when due and then at most daily while healthy. On by default; off switch and manual Check Now in Rules › Packs
+
Reverse DNSYour configured DNS resolverA lookup of an IP address's registered name, when no hostname was seenAs needed, in the sampler capture mode, which is the default until the Network Extension is running. No off switch: without it the sampler cannot name most connections. The Network Extension names them from the traffic itself and does not do this
Network owner lookupTeam Cymru, over DNSPublic IP addresses with no known hostname. Private and reserved addresses never leave your MacOn by default. Off switch in Capture › Identify network owners
@@ -1617,8 +1629,31 @@ Releases
Downloads, checksums and full notes for each version are on GitHub Releases.
+ 0.15.4
+October 20, 2026Latest
+
+ Consume verified official rule-pack updates. Flowlight checks its one fixed HTTPS feed with conditional
+ requests, verifies publisher signatures and compatibility before persistence, and keeps exact last-known-good bytes plus
+ an independent anti-rollback watermark.
+
+ Keep every policy change consentful. New packs stay off. Changed versions or destinations immediately leave
+ enforcement while preserving scope, selected apps, exceptions and history; explicit review and Save of the exact new content
+ restores consent, and a refresh racing an open editor makes its old Save stale.
+
+ Expose trust and failure state without overclaiming. Rules › Packs now shows automatic-refresh controls,
+ verification status, sequence, source, signer, timestamps, bundled-versus-downloaded provenance, stale last-known-good, and
+ independent fetch/apply failures. Refresh sends no traffic, pack settings or device identifier.
+
+ Fail closed at startup and on the wire. Capture waits for catalog verification plus saved exceptions;
+ redirects, MIME, size, timeout, rollback, equivocation, revoked trust, corrupt cache and failed database commits cannot publish
+ unseen definitions or replace the active snapshot.
+
+ Keep managed packs enforcing during HTTPS inspection. Before the local proxy opens a CONNECT tunnel or
+ plaintext origin connection, it applies the extension-acknowledged pack snapshot to the original app identity. A refusal is
+ returned only after its activity record commits; failed persistence allows the connection instead of blocking invisibly.
+
0.15.3
-October 19, 2026Latest
+October 19, 2026
Publish official rule packs as signed data. Flowlight now defines a purpose-scoped P-256
signature contract for its official managed-pack catalog, with the public verification key included in the
@@ -2976,19 +3011,23 @@ Threat model
What blocking is, and isn't
- A rule that refuses a connection is carried out by the Network Extension, in the path, before the connection is made. A rule
- that names a URL is carried out by the inspection proxy instead, which answers the request with a status the app can read.
- Those are the only two parts of Flowlight that act rather than report — the nettop sampler can refuse nothing at all, so on a
- Mac running the sampler no rule is enforced, and Flowlight says so rather than offering a switch that does nothing.
+ A rule that refuses a connection is normally carried out by the Network Extension, in the path, before the connection is made.
+ For traffic routed through HTTPS inspection, the local proxy applies destination rules and enabled managed packs against the
+ original client before it opens the upstream connection; a rule that names a URL is also carried out there, after decryption,
+ with a status the app can read. Those are the only two parts of Flowlight that act rather than report — the nettop sampler can
+ refuse nothing at all, so on a Mac running the sampler no rule is enforced, and Flowlight says so rather than offering a switch
+ that does nothing.
It is still not prevention. An agent that can run a shell can do by hand what a refused tool would have done. A refusal you
can undo in one click is a refusal an agent's next attempt may walk through. Local traffic, DNS, Apple's own services and
Flowlight's own connections are never refused, because a blocked Mac is a worse outcome than a blocked agent. And enforcement
lapses a few seconds after Flowlight stops running: a refusal nobody can see is worse than none.
- Inspection and refusal do not combine. Traffic routed through Flowlight's own proxy leaves the Mac as
- Flowlight's traffic, and Flowlight never refuses itself — so an app whose requests you are reading is an app whose connections
- rules no longer stop. Turning inspection on to see more costs you enforcement, and nothing on screen previously said so.
+ Inspection preserves hostname refusal, with a boundary. Traffic routed through Flowlight's proxy leaves the
+ Mac as exempt Flowlight traffic, so the proxy decides ordinary destination rules and enabled managed packs first, using the
+ original app identity. It can do this even for pinned or never-decrypted tunnels because CONNECT names the host. Agent allowlists
+ remain a Network Extension decision and do not apply to that proxied upstream leg; traffic with no trustworthy owner or no
+ hostname fails open rather than being refused invisibly.
What Flowlight itself holds
@@ -2996,13 +3035,12 @@ Threat model
response bodies for three days — the most sensitive thing it ever keeps. Credential headers are redacted by name and by word,
which is a heuristic and not a guarantee; a header carrying a secret under a name nothing recognises can be recorded.
- The traffic database is never uploaded. Three smaller things do leave the Mac without being asked for, all of them named on
- the privacy page: the update check, which asks GitHub for the latest release on launch and
- daily; the network-owner lookup, which asks Team Cymru about public addresses that have no hostname; and, while Flowlight is
- reading counters instead of running its extension, a reverse-DNS lookup of addresses it saw no name for. The first two have
- off switches. The third does not, because on the sampler it is most of how a connection gets a name at all — it goes to the
- resolver the Mac already uses, and it stops once the extension takes over and names connections from the traffic itself.
- Ask with a hosted model sends far more than any of them, and is the one thing that stays off until you configure it.
+ The traffic database is never uploaded. Four smaller things do leave the Mac without being asked for, all of them named on
+ the privacy page: the release update check; the fixed official rule-pack feed, which receives
+ no traffic or pack settings; the network-owner lookup, which asks Team Cymru about public addresses with no hostname; and,
+ while Flowlight is reading counters instead of running its extension, reverse DNS through the Mac's configured resolver.
+ The first three have off switches. Reverse DNS does not, because on the sampler it is most of how a connection gets a name;
+ it stops once the extension takes over. Ask with a hosted model sends far more than any of them, and stays off until configured.
Updates
@@ -3010,6 +3048,11 @@ Threat model
without one, then verifies that the downloaded app is signed by the same team as the running copy before installing it. An
update signed by somebody else is refused even if it is otherwise valid.
+ Official rule packs use a separate purpose-scoped P-256 signature and one compiled HTTPS source. The app keeps an independent
+ highest-sequence watermark, reverifies exact cached bytes at launch, rejects rollback and equivocation, and never treats a
+ publisher signature as permission to enforce changed content. New or changed packs require explicit exact-content review and
+ Save; stale accepted content is labeled last-known-good, while revoked trust or corrupt bytes fail closed.
+
Reporting a vulnerability
Use GitHub's private vulnerability reporting, or email
diff --git a/docs/llms.txt b/docs/llms.txt
index 939c0eb5..63570739 100644
--- a/docs/llms.txt
+++ b/docs/llms.txt
@@ -1,6 +1,6 @@
# Flowlight
-> Free, open-source (GPL-3.0) application-aware network monitor for macOS, with focused visibility into AI agents. It attributes observed TCP and UDP activity to the application that made it and records the destination, protocol and byte counts, keeping local history from second to year. Recognized AI agents are listed by name along with the tools and MCP servers they start, under per-agent allowlists. It can also refuse, once asked: a rule blocks an application, a destination or a URL for as long as you specify, and a guardrail withholds a tool from an agent before its model is offered it. Runs on macOS 15 or later; capture is by a sampler or a Network Extension. Current version: 0.15.3.
+> Free, open-source (GPL-3.0) application-aware network monitor for macOS, with focused visibility into AI agents. It attributes observed TCP and UDP activity to the application that made it and records the destination, protocol and byte counts, keeping local history from second to year. Recognized AI agents are listed by name along with the tools and MCP servers they start, under per-agent allowlists. It can also refuse, once asked: a rule blocks an application, a destination or a URL for as long as you specify, and a guardrail withholds a tool from an agent before its model is offered it. Runs on macOS 15 or later; capture is by a sampler or a Network Extension. Current version: 0.15.4.
- [Download Flowlight.dmg](https://github.com/xinbetween/flowlight/releases/latest/download/Flowlight.dmg)
- [Source code](https://github.com/xinbetween/flowlight)
diff --git a/docs/plugins/index.html b/docs/plugins/index.html
index 305efd70..25276876 100644
--- a/docs/plugins/index.html
+++ b/docs/plugins/index.html
@@ -211,7 +211,7 @@
A standard HTTPS request for the latest release; GitHub sees your IP address and the Flowlight/<version> user agent
After a clean quit and relaunch, and daily. Off switch in Settings › General
Update download
github.com
The disk image and its checksum file
Only when you click Download & Open
+
Official rule-pack update
flowlight.xinbetween.com
A standard HTTPS request to the fixed official feed for a publisher-signed catalog. The server sees your IP address, the Flowlight/<version> user agent, and conditional cache validators; it receives no traffic, pack settings, or device identifier
After startup when due and then at most daily while healthy. On by default; off switch and manual Check Now in Rules › Packs
Reverse DNS
Your configured DNS resolver
A lookup of an IP address's registered name, when no hostname was seen
As needed, in the sampler capture mode, which is the default until the Network Extension is running. No off switch: without it the sampler cannot name most connections. The Network Extension names them from the traffic itself and does not do this
Network owner lookup
Team Cymru, over DNS
Public IP addresses with no known hostname. Private and reserved addresses never leave your Mac
On by default. Off switch in Capture › Identify network owners
Ask with a hosted model
The provider you select: Anthropic, OpenAI, Google Gemini or a compatible endpoint
Your question and the results returned by the read-only Flowlight queries selected by the model. The traffic database itself is not uploaded
Only when you select a hosted provider and submit a question. The Ask screen shows the transmitted requests
Cursor ⇥ raw.githubusercontent.com · recusado 4 vezes · dias de semana 18:00–09:00
+
⛔ Por opção
Pacotes geridos de publicidade e rastreadores
Estão integrados três pacotes oficiais, visíveis e desativados por predefinição. O Flowlight consulta um único feed HTTPS fixo para obter atualizações assinadas; os conteúdos novos ou alterados ficam fora da aplicação até rever essa versão exata e premir Guardar. Durante uma indisponibilidade, os conteúdos verificados e aceites podem continuar disponíveis como a última versão válida conhecida, visivelmente assinalada como desatualizada.
Bloqueiam por nome de anfitrião, pelo que não conseguem remover anúncios próprios, espaços vazios no DOM ou no esquema da página, sobreposições do navegador, janelas emergentes criadas por scripts nem janelas nativas das aplicações.
⛔ Recusa
Proteções nas ferramentas de um agente
@@ -435,7 +436,7 @@
Um monitor que não tem de monitorizar
Fica no seu Mac
Um único ficheiro SQLite local. Sem conta, sem sincronização na nuvem, sem telemetria.
Metadados por predefinição
Nomes de anfitrião, portas e contagens de bytes. Desencriptar HTTPS é um modo separado que tem de ativar, e fica tudo no seu Mac.
Filtrado no núcleo
A captura só deixa passar as respostas de DNS e os ClientHello de TLS. Todo o resto é descartado antes de o Flowlight o ver.
-
Consultas sob o seu controlo
Saber quem é o proprietário de um endereço envia à Team Cymru apenas IPs públicos sem nome de anfitrião, e desativa-se num clique. A procura diária de atualizações só pergunta ao GitHub pela versão mais recente e também pode ser desativada.
+
Consultas sob o seu controlo
Saber quem é o proprietário de um endereço envia à Team Cymru apenas IPs públicos sem nome de anfitrião. As verificações de versões e de pacotes de regras assinados enviam pedidos HTTPS normais, sem tráfego nem definições dos pacotes. Cada uma tem o seu próprio interruptor.
diff --git a/docs/pt-PT/privacy/index.html b/docs/pt-PT/privacy/index.html
index e2cff2c4..452c2b6e 100644
--- a/docs/pt-PT/privacy/index.html
+++ b/docs/pt-PT/privacy/index.html
@@ -48,7 +48,7 @@
-
+
Ir para o conteúdo
@@ -125,6 +125,7 @@
Pedidos de rede que a app faz
Pedido
Enviado para
O que contém
Quando
Procura de atualizações
api.github.com
Um pedido HTTPS normal pela versão mais recente; o GitHub vê o seu endereço IP e o agente de utilizador Flowlight/<version>
Na abertura e uma vez por dia, a partir da 0.1.2. Interruptor para desativar em Definições › Geral
Transferência da atualização
github.com
A imagem de disco e o seu ficheiro de soma de verificação
Só quando clica em Transferir e abrir
+
Atualização oficial do pacote de regras
flowlight.xinbetween.com
Um pedido HTTPS padrão ao feed oficial fixo. O servidor vê o seu endereço IP, o agente do utilizador Flowlight/<version> e os validadores condicionais de cache; não recebe tráfego, definições dos pacotes nem qualquer identificador do dispositivo
Após o arranque, quando for necessário, e depois, no máximo, uma vez por dia enquanto funcionar normalmente. Ativa por predefinição; opção para desativar e Procurar agora manualmente em Regras › Pacotes
DNS inverso
O resolvedor de DNS que tem configurado
Uma consulta do nome registado de um endereço IP, quando não foi visto nenhum nome de anfitrião
Conforme necessário, no modo de captura por amostrador, que é a predefinição até a extensão de rede estar a correr. Sem interruptor para desligar: sem isto, o amostrador não consegue dar nome à maioria das ligações. A extensão de rede dá-lhes nome a partir do próprio tráfego e não faz esta consulta
Consulta do proprietário da rede
Team Cymru, por DNS
Endereços IP públicos sem nome de anfitrião conhecido. Os endereços privados e reservados nunca saem do seu Mac
Ativada por predefinição. Interruptor para desativar em Captura › Identificar os proprietários da rede
Perguntar com um modelo alojado
O fornecedor que escolher: Anthropic, OpenAI, Google Gemini ou um endpoint compatível
A sua pergunta e os resultados devolvidos pelas consultas de leitura do Flowlight escolhidas pelo modelo. A base de dados de tráfego em si não é enviada
Só quando escolhe um fornecedor alojado e submete uma pergunta. O ecrã Perguntar mostra os pedidos transmitidos
diff --git a/docs/pt-PT/threat-model/index.html b/docs/pt-PT/threat-model/index.html
index 8f6d8d32..7e4f7030 100644
--- a/docs/pt-PT/threat-model/index.html
+++ b/docs/pt-PT/threat-model/index.html
@@ -48,7 +48,7 @@
-
+
Ir para o conteúdo
@@ -154,36 +154,33 @@
O que escapa à inspeção
coisas se aplica, app por app.
O que o bloqueio é, e não é
-
Uma regra que recusa ligações é levada a cabo pela extensão de rede, no caminho, antes de a ligação ser feita. Uma regra que nomeia um URL é
- levada a cabo pelo proxy de inspeção, que responde ao pedido com um estado que a app consegue ler. São as duas únicas partes do Flowlight que
- agem em vez de relatar — o amostrador nettop não consegue recusar nada, por isso num Mac que capta com o amostrador nenhuma regra é aplicada, e
- o Flowlight di-lo em vez de oferecer um interruptor que não faz nada.
+
Uma regra que recusa ligações é normalmente levada a cabo pela extensão de rede, no caminho, antes de a ligação ser feita. Para o tráfego
+ encaminhado pela inspeção HTTPS, o proxy local aplica as regras de destino e os pacotes geridos ativos ao cliente original antes de abrir a
+ ligação ao servidor de origem; uma regra que nomeia um URL também é aplicada ali, depois da desencriptação, com um estado que a app consegue ler.
+ São as duas únicas partes do Flowlight que agem em vez de relatar — o amostrador nettop não consegue recusar nada, por isso num Mac que capta com
+ o amostrador nenhuma regra é aplicada, e o Flowlight di-lo em vez de oferecer um interruptor que não faz nada.
Continua a não ser impedir. Um agente que consiga executar uma shell pode fazer à mão o que a ferramenta recusada teria feito. Uma recusa
que pode desfazer num clique é uma recusa por onde a tentativa seguinte de um agente pode passar. O tráfego local, o DNS, os serviços da
Apple e as ligações do próprio Flowlight nunca são recusados, porque um Mac bloqueado é um resultado pior do que um agente bloqueado. E a
aplicação efetiva caduca uns segundos depois de o Flowlight deixar de correr: uma recusa que ninguém consegue ver é pior do que nenhuma.
-
A inspeção e a recusa não se combinam. O tráfego encaminhado pelo próprio proxy do Flowlight sai do Mac como tráfego do
- Flowlight, e o Flowlight nunca se recusa a si mesmo — por isso uma app cujos pedidos está a ler é uma app cujas ligações as regras já não
- travam. Ligar a inspeção para ver mais custa-lhe a aplicação das regras, e até agora nada no ecrã o dizia.
+
A inspeção preserva a recusa por nome de anfitrião, com um limite. O tráfego encaminhado pelo proxy do Flowlight sai do Mac como
+ tráfego isento do Flowlight, por isso o proxy decide primeiro as regras de destino comuns e os pacotes geridos ativos com base na identidade
+ original da app. Consegue fazê-lo mesmo em túneis com certificado fixado ou nunca decifrados, porque CONNECT indica o anfitrião. As listas de
+ permissões dos agentes continuam a ser uma decisão da Extensão de rede e não se aplicam a esse trajeto pelo proxy até ao servidor de origem; o
+ tráfego sem um proprietário fiável ou sem nome de anfitrião é permitido em vez de ser recusado sem que ninguém o veja.
O que o próprio Flowlight guarda
Metadados de tráfego numa base de dados SQLite local, com uma retenção publicada. Com a inspeção HTTPS ligada, guarda também os corpos dos
pedidos e das respostas durante três dias — a coisa mais sensível que chega a manter. Os cabeçalhos de credenciais são ocultados por nome e
por palavra, o que é uma heurística e não uma garantia; um cabeçalho que leve um segredo sob um nome que nada reconhece pode ficar
registado.
-
A base de dados de tráfego nunca é enviada. Há, ainda assim, três coisas mais pequenas que saem do Mac sem lhe serem pedidas,
- todas nomeadas na página de privacidade: a procura de atualizações, que pede ao GitHub a versão mais
- recente no arranque e uma vez por dia; a consulta do proprietário da rede, que pergunta ao Team Cymru por endereços públicos sem
- nome de anfitrião; e, enquanto o Flowlight lê contadores em vez de correr a sua extensão, uma consulta de DNS inverso dos endereços
- para os quais não viu nome. As duas primeiras têm interruptores para desligar. A terceira não tem, porque no amostrador é quase
- tudo aquilo que dá um nome a uma ligação — vai para o resolvedor de DNS que o Mac já usa e para quando a extensão assume e passa a
- nomear as ligações a partir do próprio tráfego. Perguntar com um modelo alojado envia muito mais do que qualquer uma delas, e é a
- única coisa que fica desligada até a configurar.
+
A base de dados de tráfego nunca é enviada. A página de privacidade lista cada pedido externo: verificações de versão e de pacotes de regras assinados, consulta opcional do proprietário da rede e DNS inverso com o amostrador. Os três primeiros têm interruptores; o DNS inverso não, porque sem ele o amostrador não conseguiria nomear a maioria das ligações. Um modelo alojado envia muito mais e fica desligado até o configurar.
Atualizações
As versões são assinadas com um Developer ID e notarizadas. O atualizador exige uma soma de verificação publicada e recusa uma
transferência sem ela; depois verifica que a app transferida está assinada pela mesma equipa que a cópia em execução antes de a instalar. Uma
atualização assinada por outra pessoa é recusada mesmo que no resto seja válida.
+
Os pacotes de regras oficiais usam uma assinatura distinta e limitada a esta finalidade e uma única fonte HTTPS fixa. A aplicação mantém separadamente um marcador da sequência mais alta, volta a verificar no arranque os bytes exatos guardados em cache, rejeita regressões e publicações contraditórias e nunca trata a assinatura do editor como autorização para aplicar conteúdos alterados. Os pacotes novos ou alterados exigem a revisão explícita do conteúdo exato e Guardar; os conteúdos desatualizados já aceites são assinalados como a última versão válida conhecida, enquanto a revogação da confiança ou bytes corrompidos fazem com que o conteúdo seja recusado por segurança.
Consume verified official rule-pack updates. Flowlight checks its one fixed HTTPS feed with conditional
+ requests, verifies publisher signatures and compatibility before persistence, and keeps exact last-known-good bytes plus
+ an independent anti-rollback watermark.
+
Keep every policy change consentful. New packs stay off. Changed versions or destinations immediately leave
+ enforcement while preserving scope, selected apps, exceptions and history; explicit review and Save of the exact new content
+ restores consent, and a refresh racing an open editor makes its old Save stale.
+
Expose trust and failure state without overclaiming. Rules › Packs now shows automatic-refresh controls,
+ verification status, sequence, source, signer, timestamps, bundled-versus-downloaded provenance, stale last-known-good, and
+ independent fetch/apply failures. Refresh sends no traffic, pack settings or device identifier.
+
Fail closed at startup and on the wire. Capture waits for catalog verification plus saved exceptions;
+ redirects, MIME, size, timeout, rollback, equivocation, revoked trust, corrupt cache and failed database commits cannot publish
+ unseen definitions or replace the active snapshot.
+
Keep managed packs enforcing during HTTPS inspection. Before the local proxy opens a CONNECT tunnel or
+ plaintext origin connection, it applies the extension-acknowledged pack snapshot to the original app identity. A refusal is
+ returned only after its activity record commits; failed persistence allows the connection instead of blocking invisibly.
+
+
+
+
+
0.15.3
Publish official rule packs as signed data. Flowlight now defines a purpose-scoped P-256
signature contract for its official managed-pack catalog, with the public verification key included in the
@@ -1274,7 +1295,7 @@
A rule that refuses a connection is carried out by the Network Extension, in the path, before the connection is made. A rule
- that names a URL is carried out by the inspection proxy instead, which answers the request with a status the app can read.
- Those are the only two parts of Flowlight that act rather than report — the nettop sampler can refuse nothing at all, so on a
- Mac running the sampler no rule is enforced, and Flowlight says so rather than offering a switch that does nothing.
+
A rule that refuses a connection is normally carried out by the Network Extension, in the path, before the connection is made.
+ For traffic routed through HTTPS inspection, the local proxy applies destination rules and enabled managed packs against the
+ original client before it opens the upstream connection; a rule that names a URL is also carried out there, after decryption,
+ with a status the app can read. Those are the only two parts of Flowlight that act rather than report — the nettop sampler can
+ refuse nothing at all, so on a Mac running the sampler no rule is enforced, and Flowlight says so rather than offering a switch
+ that does nothing.
It is still not prevention. An agent that can run a shell can do by hand what a refused tool would have done. A refusal you
can undo in one click is a refusal an agent's next attempt may walk through. Local traffic, DNS, Apple's own services and
Flowlight's own connections are never refused, because a blocked Mac is a worse outcome than a blocked agent. And enforcement
lapses a few seconds after Flowlight stops running: a refusal nobody can see is worse than none.
-
Inspection and refusal do not combine. Traffic routed through Flowlight's own proxy leaves the Mac as
- Flowlight's traffic, and Flowlight never refuses itself — so an app whose requests you are reading is an app whose connections
- rules no longer stop. Turning inspection on to see more costs you enforcement, and nothing on screen previously said so.
+
Inspection preserves hostname refusal, with a boundary. Traffic routed through Flowlight's proxy leaves the
+ Mac as exempt Flowlight traffic, so the proxy decides ordinary destination rules and enabled managed packs first, using the
+ original app identity. It can do this even for pinned or never-decrypted tunnels because CONNECT names the host. Agent allowlists
+ remain a Network Extension decision and do not apply to that proxied upstream leg; traffic with no trustworthy owner or no
+ hostname fails open rather than being refused invisibly.
What Flowlight itself holds
Traffic metadata in a local SQLite database, with published retention. With HTTPS inspection on it also holds request and
response bodies for three days — the most sensitive thing it ever keeps. Credential headers are redacted by name and by word,
which is a heuristic and not a guarantee; a header carrying a secret under a name nothing recognises can be recorded.
-
The traffic database is never uploaded. Three smaller things do leave the Mac without being asked for, all of them named on
- the privacy page: the update check, which asks GitHub for the latest release on launch and
- daily; the network-owner lookup, which asks Team Cymru about public addresses that have no hostname; and, while Flowlight is
- reading counters instead of running its extension, a reverse-DNS lookup of addresses it saw no name for. The first two have
- off switches. The third does not, because on the sampler it is most of how a connection gets a name at all — it goes to the
- resolver the Mac already uses, and it stops once the extension takes over and names connections from the traffic itself.
- Ask with a hosted model sends far more than any of them, and is the one thing that stays off until you configure it.
+
The traffic database is never uploaded. Four smaller things do leave the Mac without being asked for, all of them named on
+ the privacy page: the release update check; the fixed official rule-pack feed, which receives
+ no traffic or pack settings; the network-owner lookup, which asks Team Cymru about public addresses with no hostname; and,
+ while Flowlight is reading counters instead of running its extension, reverse DNS through the Mac's configured resolver.
+ The first three have off switches. Reverse DNS does not, because on the sampler it is most of how a connection gets a name;
+ it stops once the extension takes over. Ask with a hosted model sends far more than any of them, and stays off until configured.
Updates
Releases are signed with a Developer ID and notarized. The updater requires a published checksum and refuses a download
without one, then verifies that the downloaded app is signed by the same team as the running copy before installing it. An
update signed by somebody else is refused even if it is otherwise valid.
+
Official rule packs use a separate purpose-scoped P-256 signature and one compiled HTTPS source. The app keeps an independent
+ highest-sequence watermark, reverifies exact cached bytes at launch, rejects rollback and equivocation, and never treats a
+ publisher signature as permission to enforce changed content. New or changed packs require explicit exact-content review and
+ Save; stale accepted content is labeled last-known-good, while revoked trust or corrupt bytes fail closed.
diff --git a/project.yml b/project.yml
index dc8e200d..f5e5135f 100644
--- a/project.yml
+++ b/project.yml
@@ -11,8 +11,8 @@ settings:
DEVELOPMENT_TEAM: ""
CODE_SIGN_STYLE: Automatic
ENABLE_HARDENED_RUNTIME: YES
- MARKETING_VERSION: "0.15.3"
- CURRENT_PROJECT_VERSION: "39"
+ MARKETING_VERSION: "0.15.4"
+ CURRENT_PROJECT_VERSION: "41"
targets:
Flowlight:
type: application
diff --git a/scripts/build-pkg.sh b/scripts/build-pkg.sh
index 1174b61f..47a10398 100755
--- a/scripts/build-pkg.sh
+++ b/scripts/build-pkg.sh
@@ -23,14 +23,49 @@ cp -R "$APP" "$WORK/root/"
pkgbuild --analyze --root "$WORK/root" "$WORK/components.plist" >/dev/null
plutil -replace 0.BundleIsRelocatable -bool NO "$WORK/components.plist"
+# pkgbuild serializes every extended attribute as a ._ AppleDouble payload
+# record. Newer macOS releases pin com.apple.provenance on signed files, so the
+# attribute survives COPYFILE_DISABLE and even xattr -d. Let pkgbuild create the
+# component metadata, then replace only its payload archive and BOM. cpio keeps
+# the signed bundle bytes and POSIX modes while COPYFILE_DISABLE omits xattrs.
+# Match pkgbuild's recommended system-domain ownership in both archives: an
+# installer must not leave /Applications/Flowlight.app owned by the build user.
pkgbuild --root "$WORK/root" --component-plist "$WORK/components.plist" --install-location /Applications \
- --identifier com.flowlight.app.pkg --version "$VERSION" "$WORK/Flowlight-component.pkg"
+ --identifier com.flowlight.app.pkg --version "$VERSION" "$WORK/Flowlight-component-with-metadata.pkg"
+pkgutil --expand "$WORK/Flowlight-component-with-metadata.pkg" "$WORK/component-expanded"
+WORK_ABS="$PWD/$WORK"
+(
+ cd "$WORK/root"
+ find . -print | cpio -o -R root:wheel --format odc 2> "$WORK_ABS/cpio.log" \
+ | gzip -9 > "$WORK_ABS/component-expanded/Payload"
+)
+# pkgbuild's BOM already has the right root:wheel ownership and checksums. Drop
+# only the AppleDouble basenames it synthesized from pinned extended attributes.
+lsbom "$WORK/component-expanded/Bom" \
+ | perl -F'\t' -lane '$name = (split m{/}, $F[0])[-1]; print unless $name =~ /^\._/' \
+ > "$WORK/bom-files.txt"
+mkbom -i "$WORK/bom-files.txt" "$WORK/clean.bom"
+mv "$WORK/clean.bom" "$WORK/component-expanded/Bom"
+PAYLOAD_COUNT=$(lsbom -s "$WORK/component-expanded/Bom" | wc -l | tr -d ' ')
+PAYLOAD_COUNT="$PAYLOAD_COUNT" perl -0pi -e \
+ 's{( "$PAYLOAD_FILES"
+if grep -Eq '/\._|/\.__|^\./\._' "$PAYLOAD_FILES"; then
+ echo "Package contains AppleDouble metadata files." >&2
+ exit 1
+fi
+[[ $(wc -l < "$PAYLOAD_FILES" | tr -d ' ') == "$PAYLOAD_COUNT" ]]
+
# A signed installer still needs notarizing, or macOS refuses to open it.
if [[ ${#SIGN[@]} -gt 0 ]]; then scripts/notarize.sh "build/Flowlight-$VERSION.pkg"; fi
echo "Built build/Flowlight-$VERSION.pkg"
diff --git a/scripts/check_site.py b/scripts/check_site.py
index a3a7a398..4628f770 100644
--- a/scripts/check_site.py
+++ b/scripts/check_site.py
@@ -22,6 +22,7 @@
OFFICIAL_PACK_OUTPUT = OUT / "packs/v1/official.json"
OFFICIAL_PACK_PUBLIC_KEY = ROOT / "Flowlight/Resources/RulePacks/official-rule-packs-v1-public.pem"
OFFICIAL_PACK_KEY_ID = "flowlight-rule-packs-2026-01"
+OFFICIAL_PACK_URL = "https://flowlight.xinbetween.com/packs/v1/official.json"
PROJECT = (ROOT / "project.yml").read_text()
APP_VERSION = re.search(r'MARKETING_VERSION:\s*"([^"]+)"', PROJECT).group(1)
@@ -90,6 +91,40 @@ def problems():
detail = (verified.stderr or verified.stdout).strip().replace("\n", " ")
found.append(f"site/packs/v1/official.json: signature verification failed: {detail}")
+ # The app now consumes this endpoint. Keep the fixed source, privacy disclosure, documentation and release notes
+ # tied together so a future refactor cannot silently create an undocumented outbound request or arbitrary source.
+ verifier_source = (ROOT / "Flowlight/Analysis/RulePackCatalogVerifier.swift").read_text()
+ if OFFICIAL_PACK_URL not in verifier_source:
+ found.append("Flowlight/Analysis/RulePackCatalogVerifier.swift: fixed official feed URL is missing")
+ source_pages = [ROOT / "README.md", ROOT / "SECURITY.md", ROOT / "site/pages/docs.html",
+ ROOT / "site/pages/privacy.html", ROOT / "site/pages/threat-model.html"]
+ for path in source_pages:
+ text = path.read_text().lower()
+ if "official" not in text or not any(word in text for word in ("signed", "signature", "publisher")):
+ found.append(f"{path.relative_to(ROOT)}: authenticated official rule-pack consumer is not documented")
+ privacy_sources = [ROOT / "site/pages/privacy.html"] + [
+ ROOT / f"site/pages/{lang}/privacy.html" for lang in LANGS
+ ]
+ for path in privacy_sources:
+ if "flowlight.xinbetween.com" not in path.read_text():
+ found.append(f"{path.relative_to(ROOT)}: official rule-pack request is missing from privacy table")
+ docs_sources = [ROOT / "site/pages/docs.html"] + [
+ ROOT / f"site/pages/{lang}/docs.html" for lang in LANGS
+ ]
+ for path in docs_sources:
+ if 'id="managed-packs"' not in path.read_text():
+ found.append(f"{path.relative_to(ROOT)}: #managed-packs subscription section is missing")
+ stale_request_counts = ("Three requests", "Three smaller things", "Drei Anfragen", "Drei kleinere Dinge",
+ "Tres peticiones", "Tres cosas más pequeñas", "Trois requêtes", "Trois choses plus petites",
+ "Tre richieste", "Tre cose più piccole", "Três pedidos", "três coisas mais pequenas",
+ "リクエストは 3 つ", "요청은 세 가지", "떠나는 것이 세 가지",
+ "三个请求", "三個請求")
+ for path in [ROOT / "site/pages/docs.html", ROOT / "site/pages/threat-model.html"] + [
+ ROOT / f"site/pages/{lang}/docs.html" for lang in LANGS
+ ] + [ROOT / f"site/pages/{lang}/threat-model.html" for lang in LANGS]:
+ if any(phrase.casefold() in path.read_text().casefold() for phrase in stale_request_counts):
+ found.append(f"{path.relative_to(ROOT)}: fixed outbound-request count is stale-prone")
+
# 1. A placeholder that didn't render. `{{t:nav.threat-model}}` printed itself on all 51 pages because the
# pattern for {{t:}} didn't allow hyphens, and nothing noticed — it is valid HTML.
for page in PAGES:
@@ -140,8 +175,16 @@ def problems():
# newest version on the releases page. It reads as a promise until someone notices it is a memory.
releases = (ROOT / "site/pages/releases.html").read_text()
shipped = re.findall(r"
(\d+\.\d+(?:\.\d+)?)
", releases)
+ release_headers = re.findall(r"(.*?)", releases, re.S)
+ latest = [match.group(1) for header in release_headers
+ if 'class="tag">Latest' in header
+ if (match := re.search(r"
(\d+\.\d+(?:\.\d+)?)
", header))]
if shipped:
newest = max(shipped, key=version_key)
+ if newest != APP_VERSION:
+ found.append(f"site/pages/releases.html: newest release {newest} does not match app {APP_VERSION}")
+ if latest != [APP_VERSION]:
+ found.append(f"site/pages/releases.html: expected one Latest tag on {APP_VERSION}, found {latest}")
for page in PAGES:
text = page.read_text()
start = text.find('id="roadmap"')
diff --git a/site/pages/de/docs.html b/site/pages/de/docs.html
index 061836f8..c72e45fa 100644
--- a/site/pages/de/docs.html
+++ b/site/pages/de/docs.html
@@ -384,6 +384,11 @@
Regeln
Bildschirm nennt außerdem den ältesten Datenverkehr, den er sehen konnte: Eine Regel, die gegen zwei Stunden Aufzeichnung
getestet wurde, ist gegen zwei Stunden Aufzeichnung getestet.
+
Verwaltete Werbe- und Tracker-Pakete
+
Regeln › Pakete enthält drei offizielle Hostnamenlisten: Werbung, Websiteübergreifendes Tracking und Datenschutz und Telemetrie. Sie sind von Anfang an sichtbar und standardmäßig alle deaktiviert. Zum Blockieren ist die Netzwerkerweiterung erforderlich; der nettop-Sampler kann nur beobachten.
+
Ausschließlich offizielle, signierte Updates. Flowlight prüft eine einzige festgelegte HTTPS-Quelle auf neuere, vom Herausgeber signierte Kataloge. Automatische Prüfungen sind standardmäßig aktiviert und können hier deaktiviert werden. Eine Signatur authentifiziert den Inhalt, aktiviert ihn aber nicht: Ein neues Paket bleibt deaktiviert, und bei geänderten Zielen wird ein aktiviertes Paket nicht mehr durchgesetzt, bis du die genaue neue Version geprüft und auf Sichern geklickt hast. Akzeptierte Inhalte können während eines Ausfalls als sichtbar veralteter letzter bekannter funktionsfähiger Stand erhalten bleiben. Dies sind Netzwerksperren auf Hostnamenebene: Sie können keine Lücken im DOM oder Layout, Browser-Overlays, skriptgesteuerten Pop-ups oder Fenster nativer Apps entfernen.
+
Wenn die HTTPS-Inspektion eine App durch Flowlights Proxy leitet, entscheidet er anhand der ursprünglichen App-Identität über gewöhnliche Zielregeln und aktivierte verwaltete Pakete, bevor eine Verbindung zum Ursprungsserver geöffnet wird. Bei angepinnten oder nie entschlüsselten CONNECT-Tunneln funktioniert das anhand des Hostnamens; Agenten-Erlaubnislisten bleiben auf den direkten Weg über die Netzwerkerweiterung beschränkt. Ist der Eigentümer oder Hostname unbekannt, wird die Verbindung im Zweifel zugelassen.
+
Erlaubnislisten
Wähle einen Agenten in KI-Agenten und sage über Erlaubnisliste in seinem Detail, wohin er sich verbinden darf. Trage Domains
(Subdomains inklusive), IP-Adressen oder CIDR-Bereiche ein oder nimm eine Vorlage: GitHub, npm, PyPI, Homebrew, Docker Hub, Rust crates, Go-Module oder
@@ -402,8 +407,7 @@
Verbindungen verweigern
Datenverkehr. Ein blockierter Mac ist schlimmer als ein blockierter Agent, im Zweifel wird die Verbindung also erlaubt und aufgezeichnet.
Die Durchsetzung endet außerdem wenige Sekunden nachdem Flowlight nicht mehr läuft – eine Verweigerung, die niemand sehen kann, ist schlimmer als keine, und der Weg,
sie aufzuheben, liegt in der App.
-
HTTPS-Inspektion und Blockieren lassen sich nicht kombinieren: Datenverkehr, der über Flowlights Proxy läuft, geht als Flowlights eigener hinaus und wird
- nie verweigert.
+
Für eine App, die durch die HTTPS-Inspektion geleitet wird, entscheidet Flowlights Proxy gewöhnliche Zielregeln und aktivierte verwaltete Pakete anhand der ursprünglichen App-Identität, bevor er eine Verbindung zum Ursprungsserver öffnet. Bei angepinnten oder nie entschlüsselten CONNECT-Tunneln geschieht das anhand des Hostnamens. Agenten-Erlaubnislisten bleiben auf den direkten Weg über die Netzwerkerweiterung beschränkt; ist der Eigentümer oder Hostname unbekannt, wird die Verbindung im Zweifel zugelassen.
Schutzregeln für Agenten: ein Tool, einen Server oder eine Ressource blockieren
Welche Tools darf dieser Agent nutzen ist eine andere Frage als welche Hosts darf er erreichen, und hat darum ihren eigenen
@@ -622,9 +626,7 @@
Fragen & Antworten
Es zeigt, welche Erweiterungen installiert sind, ob macOS Flowlights Filter wirklich gestartet hat und wie kürzlich überhaupt etwas aufgezeichnet wurde.
Füge es in ein Issue ein.
Sendet Flowlight irgendetwas über mich irgendwohin?
-
Kein Konto, keine Telemetrie, keine Analyse, und deine Datenbank mit dem Datenverkehr wird nie hochgeladen. Drei Anfragen verlassen den Mac, alle auf der
- Datenschutzseite aufgelistet: die tägliche Update-Prüfung und die optionale Abfrage zum Netzinhaber, beide abschaltbar, und,
- solange Flowlight auf dem Sampler läuft, Reverse-DNS, für das es keinen Schalter gibt – ohne es könnte der Sampler die meisten Verbindungen nicht benennen.
+
Kein Konto, keine Telemetrie, keine Analyse, und deine Datenbank mit dem Datenverkehr wird nie hochgeladen. Die Datenschutzseite listet jede Anfrage auf: Release- und signierte Regelpaket-Prüfungen sowie die optionale Abfrage zum Netzinhaber haben Abschalter; Reverse-DNS läuft nur mit dem Sampler und hat keinen, weil er sonst die meisten Verbindungen nicht benennen könnte.
Macht es meinen Mac langsamer oder leert es den Akku?
Mit geschlossenem Fenster tut Flowlight fast nichts: Es hält die Raten in der Menüleiste und schreibt eine Zeile pro Sekunde. Die Netzwerkerweiterung
kostet weniger als der Sampler als Rückfallebene, der jede Sekunde einen kurzlebigen nettop-Prozess startet.
Drei offizielle Pakete sind integriert, sichtbar und standardmäßig deaktiviert. Flowlight prüft einen einzigen festgelegten HTTPS-Feed auf signierte Updates; neue oder geänderte Inhalte werden erst durchgesetzt, nachdem du genau diese Version geprüft und Sichern gedrückt hast. Verifizierte, akzeptierte Inhalte können bei einem Ausfall als sichtbar veralteter letzter bekannter funktionsfähiger Stand erhalten bleiben.
Sie blockieren nach Hostname und können daher keine Erstanbieterwerbung, Lücken im DOM oder Layout, Browser-Overlays, skriptgesteuerten Pop-ups oder Fenster nativer Apps entfernen.
⛔ Verweigert
Schutzregeln für die Tools eines Agenten
@@ -366,7 +367,7 @@
Ein Wächter, den du nicht bewachen musst
Bleibt auf deinem Mac
Eine lokale SQLite-Datei. Kein Konto, keine Cloud-Synchronisierung, keine Telemetrie.
Standardmäßig nur Metadaten
Hostnamen, Ports und Byte-Zahlen. HTTPS zu entschlüsseln ist ein eigener Modus, den du einschalten musst – und er bleibt auf deinem Mac.
Im Kernel gefiltert
Die Erfassung lässt nur DNS-Antworten und TLS-ClientHellos durch. Alles andere wird verworfen, bevor Flowlight es sieht.
-
Abfragen, die du steuerst
Um zu benennen, wem eine Adresse gehört, gehen nur öffentliche IPs ohne Hostnamen an Team Cymru – abschaltbar mit einem Klick. Die tägliche Update-Prüfung fragt GitHub nur nach der neuesten Version und lässt sich ebenfalls abschalten.
+
Abfragen, die du steuerst
Um zu benennen, wem eine Adresse gehört, gehen nur öffentliche IPs ohne Hostnamen an Team Cymru. Release- und signierte Regelpaket-Prüfungen senden Standard-HTTPS-Anfragen ohne Verkehrs- oder Paketeinstellungen. Jede Prüfung hat einen eigenen Abschalter.
Eine normale HTTPS-Anfrage nach der neuesten Version; GitHub sieht deine IP-Adresse und den User-Agent Flowlight/<version>
Beim Start und täglich, ab 0.1.2. Abschalten in Einstellungen › Allgemein
Update-Download
github.com
Das Image und seine Prüfsummendatei
Nur wenn du auf „Herunterladen & öffnen“ klickst
+
Offizielle Regelpaket-Aktualisierung
flowlight.xinbetween.com
Eine standardmäßige HTTPS-Anfrage an den festgelegten offiziellen Feed. Der Server sieht deine IP-Adresse, den User-Agent Flowlight/<version> und bedingte Cache-Validatoren; er erhält weder Datenverkehr noch Paketeinstellungen oder eine Gerätekennung
Nach dem Start, sobald eine Prüfung fällig ist, und danach bei störungsfreiem Betrieb höchstens einmal täglich. Standardmäßig aktiviert; Ausschalter und manuelle Option Jetzt suchen unter Regeln › Pakete
Reverse-DNS
Der von dir eingerichtete DNS-Resolver
Eine Abfrage des registrierten Namens einer IP-Adresse, wenn kein Hostname gesehen wurde
Nach Bedarf, im Erfassungsmodus des Samplers, der Standard ist, bis die Netzwerkerweiterung läuft. Kein Schalter zum Abschalten: ohne sie kann der Sampler die meisten Verbindungen nicht benennen. Die Netzwerkerweiterung benennt sie aus dem Datenverkehr selbst und macht diese Abfrage nicht
Abfrage des Netzinhabers
Team Cymru, über DNS
Öffentliche IP-Adressen ohne bekannten Hostnamen. Private und reservierte Adressen verlassen deinen Mac nie
Standardmäßig ein. Abschalten in Erfassung › Netzinhaber bestimmen
Fragen mit einem gehosteten Modell
Der Anbieter, den du wählst: Anthropic, OpenAI, Google Gemini oder ein kompatibler Endpunkt
Deine Frage und die Ergebnisse der nur lesenden Flowlight-Abfragen, die das Modell ausgewählt hat. Die Verkehrsdatenbank selbst wird nicht hochgeladen
Nur wenn du einen gehosteten Anbieter wählst und eine Frage abschickst. Der Bildschirm Fragen zeigt die gesendeten Anfragen
Eine Regel, die Verbindungen verweigert, wird von der Netzwerkerweiterung ausgeführt, im Weg der Verbindung, bevor sie zustande kommt. Eine
- Regel, die eine URL nennt, führt stattdessen der Inspektions-Proxy aus, der die Anfrage mit einem Status beantwortet, den die App lesen kann.
- Das sind die einzigen zwei Teile von Flowlight, die handeln statt zu berichten – der nettop-Sampler kann überhaupt nichts verweigern, auf einem
- Mac, der mit dem Sampler erfasst, wird also keine Regel durchgesetzt, und Flowlight sagt das, statt einen Schalter anzubieten, der nichts tut.
+
Eine Regel, die Verbindungen verweigert, wird normalerweise von der Netzwerkerweiterung ausgeführt, im Weg der Verbindung, bevor sie zustande kommt.
+ Bei Datenverkehr, der durch die HTTPS-Inspektion geleitet wird, wendet der lokale Proxy Zielregeln und aktivierte verwaltete Pakete auf den
+ ursprünglichen Client an, bevor er die Verbindung zum Ursprungsserver öffnet; eine Regel, die eine URL nennt, führt er nach der Entschlüsselung
+ ebenfalls dort aus und antwortet mit einem Status, den die App lesen kann. Das sind die einzigen zwei Teile von Flowlight, die handeln statt zu
+ berichten – der nettop-Sampler kann überhaupt nichts verweigern, auf einem Mac, der mit dem Sampler erfasst, wird also keine Regel durchgesetzt,
+ und Flowlight sagt das, statt einen Schalter anzubieten, der nichts tut.
Verhindern ist es trotzdem nicht. Ein Agent, der eine Shell ausführen kann, kann von Hand tun, was ein verweigertes Tool getan hätte. Eine
Verweigerung, die du mit einem Klick aufheben kannst, ist eine Verweigerung, durch die der nächste Versuch eines Agenten hindurchgehen kann.
Lokaler Datenverkehr, DNS, Apples eigene Dienste und Flowlights eigene Verbindungen werden nie verweigert, denn ein blockierter Mac ist ein
schlechteres Ergebnis als ein blockierter Agent. Und die Durchsetzung endet wenige Sekunden nachdem Flowlight nicht mehr läuft: Eine
Verweigerung, die niemand sehen kann, ist schlimmer als keine.
-
Inspektion und Verweigerung lassen sich nicht verbinden. Datenverkehr, der über Flowlights eigenen Proxy geleitet wird,
- verlässt den Mac als Flowlights Datenverkehr, und Flowlight verweigert sich selbst nie – eine App, deren Anfragen du liest, ist also eine App,
- deren Verbindungen Regeln nicht mehr stoppen. Die Inspektion einzuschalten, um mehr zu sehen, kostet dich die Durchsetzung, und auf dem
- Bildschirm stand das vorher nirgends.
+
Die Inspektion erhält die Verweigerung nach Hostnamen, mit einer Grenze. Datenverkehr, der durch Flowlights Proxy geleitet wird,
+ verlässt den Mac als ausgenommener Flowlight-Datenverkehr. Deshalb entscheidet der Proxy zuerst anhand der ursprünglichen App-Identität über
+ gewöhnliche Zielregeln und aktivierte verwaltete Pakete. Das funktioniert auch bei angepinnten oder nie entschlüsselten Tunneln, weil CONNECT den
+ Host nennt. Agenten-Erlaubnislisten bleiben eine Entscheidung der Netzwerkerweiterung und gelten nicht für diesen über den Proxy geleiteten Weg
+ zum Ursprungsserver; Datenverkehr ohne vertrauenswürdigen Eigentümer oder Hostnamen wird im Zweifel zugelassen, statt unsichtbar verweigert zu werden.
Was Flowlight selbst aufbewahrt
Metadaten zum Datenverkehr in einer lokalen SQLite-Datenbank, mit veröffentlichten Aufbewahrungsfristen. Bei eingeschalteter
HTTPS-Inspektion außerdem Anfrage- und Antwort-Bodys für drei Tage – das Sensibelste, was es überhaupt aufbewahrt. Header mit Zugangsdaten
werden nach Name und nach Wortbestandteil unlesbar gemacht, was eine Heuristik ist und keine Garantie; ein Header, der ein Geheimnis unter
einem Namen trägt, den nichts erkennt, kann aufgezeichnet werden.
-
Die Datenbank mit dem Datenverkehr wird nie hochgeladen. Drei kleinere Dinge verlassen den Mac, ohne dass jemand danach fragt, alle drei auf der
- Datenschutzseite benannt: die Update-Prüfung, die GitHub beim Start und täglich nach der neuesten Version
- fragt; die Abfrage zum Netzinhaber, die Team Cymru nach öffentlichen Adressen ohne Hostnamen fragt; und, solange Flowlight Zähler liest
- statt seine Erweiterung zu betreiben, eine Reverse-DNS-Abfrage der Adressen, zu denen es keinen Namen gesehen hat. Die ersten beiden haben
- Schalter zum Abschalten. Die dritte nicht, denn auf dem Sampler ist sie fast der einzige Weg, auf dem eine Verbindung überhaupt zu einem
- Namen kommt – sie geht an den Resolver, den der Mac schon benutzt, und sie hört auf, sobald die Erweiterung übernimmt und Verbindungen aus dem
- Datenverkehr selbst benennt. Fragen mit einem gehosteten Modell sendet weit mehr als alle drei und ist das eine, das aus bleibt, bis du es
- einrichtest.
+
Die Datenbank mit dem Datenverkehr wird nie hochgeladen. Die Datenschutzseite nennt jede ausgehende Anfrage: Release- und signierte Regelpaket-Prüfungen, die optionale Abfrage zum Netzinhaber und Reverse-DNS im Sampler. Die ersten drei haben Abschalter; Reverse-DNS nicht, weil der Sampler sonst die meisten Verbindungen nicht benennen könnte. Fragen mit einem gehosteten Modell senden weit mehr und bleiben aus, bis du sie einrichtest.
Updates
Versionen sind mit einer Developer ID signiert und notarisiert. Die Updatefunktion verlangt eine veröffentlichte Prüfsumme und verweigert
einen Download ohne sie, und prüft dann vor der Installation, dass die heruntergeladene App vom selben Team signiert ist wie die laufende
Kopie. Ein Update, das jemand anderes signiert hat, wird verweigert, auch wenn es sonst gültig ist.
+
Offizielle Regelpakete verwenden eine separate zweckgebundene Signatur und eine einzige festgelegte HTTPS-Quelle. Die App verwaltet unabhängig davon die höchste Sequenznummer, verifiziert beim Start die exakten zwischengespeicherten Bytes erneut, weist Rollbacks und widersprüchliche Veröffentlichungen zurück und behandelt eine Herausgebersignatur niemals als Erlaubnis, geänderte Inhalte durchzusetzen. Neue oder geänderte Pakete erfordern eine ausdrückliche Prüfung des exakten Inhalts und Sichern; veraltete akzeptierte Inhalte werden als letzter bekannter funktionsfähiger Stand gekennzeichnet, während ein Vertrauensentzug oder beschädigte Bytes sicherheitshalber zur Sperrung führen.
Eine Schwachstelle melden
Nutze GitHubs private Schwachstellenmeldung oder schreib an
diff --git a/site/pages/docs.html b/site/pages/docs.html
index 9d9dc93d..6b41be8c 100644
--- a/site/pages/docs.html
+++ b/site/pages/docs.html
@@ -390,16 +390,22 @@
Rules
of them says the rule is safe. The screen also names the oldest traffic it could see: a rule tested against two hours of
history has been tested against two hours of history.
-
Managed ad and tracker packs
+
Managed ad and tracker packs
Rules › Packs contains three official lists built into Flowlight: Advertising covers known
advertising delivery and auction hosts; Cross-site tracking covers common analytics, session replay and
cross-site measurement hosts; and Privacy and telemetry covers crash reporting, install attribution, and
- audited Apple advertising and analytics hosts. The packs are visible from the start and all are off by default.
- Nothing changes on an update until you choose a pack and enable it.
+ audited Apple advertising and analytics hosts. The packs are visible from the start and all are off by default.
+
Official-only, signed updates. Flowlight checks one fixed HTTPS source for newer publisher-signed catalogs.
+ Automatic checks are on by default and can be switched off here. A signature authenticates content but does not enable it:
+ a new pack stays off, and changed destinations remove an enabled pack from enforcement until you review the exact new version
+ and press Save. If content changes while its editor is open, the stale Save is refused. An accepted catalog may remain available
+ as visibly stale last-known-good during an outage; rollback, equivocation, revoked trust, or corrupt cached bytes fail closed.
Each pack has its own scope. Apply it globally to every app, or only to selected applications. Blocking needs
- the Network Extension: the nettop sampler can record traffic, but it cannot sit in a connection's path and refuse it. Essential
- system traffic remains allowed — including the services that carry Apple accounts, push notifications, software updates,
- certificate checks and iCloud — even when a pack applies globally.
+ the Network Extension: the nettop sampler can record traffic, but it cannot sit in a connection's path and refuse it. When HTTPS
+ inspection routes an app through Flowlight's proxy, enabled packs and ordinary destination rules are decided against that original
+ app before any origin connection opens. This also covers pinned and never-decrypted tunnels by hostname; agent allowlists remain
+ limited to the direct Network Extension path. Essential system traffic remains allowed — including the services that carry Apple
+ accounts, push notifications, software updates, certificate checks and iCloud — even when a pack applies globally.
Preview before enforcing.Test against recent traffic replays the proposed pack and scope against up
to seven days of retained traffic. It reports only decisions that would actually change after ordinary rules, the global pause,
existing packs and agent policies are taken into account: the affected apps and destinations, connection counts, and bytes.
@@ -656,9 +662,9 @@
Questions & answers
It shows which extensions are installed, whether macOS actually started Flowlight's filter, and how recently anything was recorded.
Paste it into an issue.
Does Flowlight send anything about me anywhere?
-
No account, no telemetry, no analytics, and your traffic database is never uploaded. Three requests do leave the Mac, all listed on the
- privacy page: the daily update check and the optional network-owner lookup, both with off switches, and
- reverse DNS while Flowlight is on the sampler, which has none — without it the sampler could not name most connections.
+
No account, no telemetry, no analytics, and your traffic database is never uploaded. Four requests can leave the Mac, all listed on the
+ privacy page: release and signed rule-pack checks plus the optional network-owner lookup, all with off
+ switches, and reverse DNS while Flowlight is on the sampler, which has none — without it the sampler could not name most connections.
Will it slow my Mac down or drain the battery?
With the window closed Flowlight does almost nothing: it keeps the menu bar rates and writes one row a second. The Network Extension
costs less than the fallback sampler, which starts a short-lived nettop process every second.
segura. La pantalla nombra también el tráfico más antiguo que pudo ver: una regla probada con dos horas de historial se ha
probado con dos horas de historial.
+
Paquetes gestionados de publicidad y rastreadores
+
Reglas › Paquetes contiene tres listas oficiales de nombres de host: Publicidad, Seguimiento entre sitios y Privacidad y telemetría. Son visibles desde el principio y todas están desactivadas de forma predeterminada. El bloqueo requiere la Extensión de red; el muestreador nettop solo puede observar.
+
Solo actualizaciones oficiales y firmadas. Flowlight consulta una única fuente HTTPS fija para buscar catálogos más recientes firmados por el editor. Las comprobaciones automáticas están activadas de forma predeterminada y pueden desactivarse aquí. Una firma autentica el contenido, pero no lo activa: un paquete nuevo permanece desactivado y, si cambian los destinos, un paquete activado deja de aplicarse hasta que revises la nueva versión exacta y pulses Guardar. Durante una interrupción, el contenido aceptado puede conservarse como la última versión válida conocida, marcada visiblemente como obsoleta. Estos son bloqueos de red a nivel de nombre de host: no pueden eliminar huecos del DOM o del diseño, superposiciones del navegador, ventanas emergentes generadas por scripts ni ventanas de aplicaciones nativas.
+
Cuando la inspección HTTPS encamina una app por el proxy de Flowlight, este decide las reglas de destino normales y los paquetes gestionados activados usando la identidad original de la app antes de abrir ninguna conexión con el servidor de origen. En los túneles CONNECT con certificado fijado o que nunca se descifran, esto funciona por nombre de host; las listas de permitidos de agentes siguen limitadas al camino directo por la Extensión de red. Si no se conoce el propietario o el nombre de host, la conexión se permite.
+
Listas de permitidos
Selecciona un agente en Agentes de IA y usa Lista de permitidos en su detalle para indicar adónde puede conectar. Introduce dominios
(subdominios incluidos), direcciones IP o rangos CIDR, o elige un preajuste: GitHub, npm, PyPI, Homebrew, Docker Hub, Rust crates, Go modules o
@@ -397,8 +402,7 @@
Rechazar conexiones
de Flowlight. Un Mac bloqueado es peor resultado que un agente bloqueado, así que ante la duda la conexión se permite y se registra.
La aplicación de las reglas también caduca unos segundos después de que Flowlight deje de ejecutarse: un rechazo que nadie puede ver es peor que ninguno, y la forma
de deshacer uno está en la app.
-
La inspección HTTPS y el bloqueo no se combinan: el tráfico encaminado por el proxy de Flowlight sale como tráfico propio de Flowlight, que
- nunca se rechaza.
+
Para una app encaminada por la inspección HTTPS, el proxy de Flowlight decide las reglas de destino normales y los paquetes gestionados activados usando la identidad original de la app antes de abrir ninguna conexión con el servidor de origen. En los túneles CONNECT con certificado fijado o que nunca se descifran, lo hace por nombre de host. Las listas de permitidos de agentes siguen limitadas al camino directo por la Extensión de red; si no se conoce el propietario o el nombre de host, la conexión se permite.
Salvaguardas de agente: bloquear una herramienta, un servidor o un recurso
Qué herramientas puede usar este agente es una pregunta distinta de a qué hosts puede llegar, así que tiene su propia
@@ -616,9 +620,7 @@
Preguntas y respuestas
Muestra qué extensiones están instaladas, si macOS arrancó de verdad el filtro de Flowlight y cuándo se registró algo por última vez.
Pégalo en una incidencia.
¿Flowlight envía algo sobre mí a alguna parte?
-
Sin cuenta, sin telemetría, sin analítica, y tu base de datos de tráfico nunca se sube. Tres peticiones sí salen del Mac, todas listadas en la
- página de privacidad: la comprobación diaria de actualizaciones y la consulta opcional del propietario de la red, las dos con
- interruptor para desactivarlas, y el DNS inverso mientras Flowlight está en el muestreador, que no lo tiene — sin él el muestreador no podría nombrar la mayoría de las conexiones.
+
Sin cuenta, sin telemetría, sin analítica, y tu base de datos de tráfico nunca se sube. La página de privacidad enumera cada petición: las comprobaciones de versión y de paquetes de reglas firmados, además de la consulta opcional del propietario de red, tienen interruptores; el DNS inverso solo funciona con el muestreador y no tiene uno porque sin él no podría nombrar la mayoría de las conexiones.
¿Ralentizará mi Mac o gastará la batería?
Con la ventana cerrada, Flowlight casi no hace nada: mantiene las tasas de la barra de menús y escribe una fila por segundo. La extensión de red
cuesta menos que el muestreador de reserva, que arranca un proceso nettop efímero cada segundo.
Cursor ⇥ raw.githubusercontent.com · rechazada 4 veces · de lunes a viernes 18:00–09:00
+
⛔ Previa activación
Paquetes gestionados de publicidad y rastreadores
Hay tres paquetes oficiales integrados, visibles y desactivados de forma predeterminada. Flowlight consulta un único feed HTTPS fijo para buscar actualizaciones firmadas; el contenido nuevo o modificado no se aplica hasta que revises esa versión exacta y pulses Guardar. Durante una interrupción, el contenido verificado y aceptado puede conservarse como la última versión válida conocida, marcada visiblemente como obsoleta.
Bloquean por nombre de host, por lo que no pueden eliminar anuncios propios del sitio, huecos del DOM o del diseño, superposiciones del navegador, ventanas emergentes generadas por scripts ni ventanas de aplicaciones nativas.
⛔ Rechaza
Salvaguardas sobre las herramientas de un agente
@@ -366,7 +367,7 @@
Un monitor que no tienes que vigilar
Se queda en tu Mac
Un único archivo SQLite local. Sin cuenta, sin sincronización en la nube, sin telemetría.
Metadatos por defecto
Nombres de host, puertos y bytes. Descifrar HTTPS es un modo aparte que tienes que activar, y también se queda en tu Mac.
Filtrado en el núcleo
La captura solo deja pasar las respuestas DNS y los ClientHello de TLS. Todo lo demás se descarta antes de que Flowlight lo vea.
-
Consultas que tú controlas
Para saber de quién es una dirección solo se envían a Team Cymru las IP públicas sin nombre de host, y se desactiva con un clic. La comprobación diaria de actualizaciones solo pregunta a GitHub por la última versión, y también puede desactivarse.
+
Consultas que tú controlas
Para saber de quién es una dirección solo se envían a Team Cymru las IP públicas sin nombre de host. Las comprobaciones de versiones y de paquetes de reglas firmados envían solicitudes HTTPS estándar sin tráfico ni configuración de paquetes. Cada una tiene su propio interruptor.
Una petición HTTPS normal de la última versión; GitHub ve tu dirección IP y el agente de usuario Flowlight/<version>
Al arrancar y a diario, desde la 0.1.2. Interruptor para desactivarla en Ajustes › General
Descarga de la actualización
github.com
La imagen de disco y su archivo de suma de verificación
Solo cuando pulsas Descargar y abrir
+
Actualización oficial del paquete de reglas
flowlight.xinbetween.com
Una solicitud HTTPS estándar al feed oficial fijo. El servidor ve tu dirección IP, el agente de usuario Flowlight/<version> y los validadores condicionales de caché; no recibe tráfico, ajustes de paquetes ni ningún identificador del dispositivo
Después del inicio, cuando corresponda, y luego como máximo una vez al día mientras todo funcione correctamente. Activada de forma predeterminada; interruptor para desactivarla y opción manual Buscar ahora en Reglas › Paquetes
DNS inverso
El servidor DNS que tengas configurado
Una consulta del nombre registrado de una dirección IP, cuando no se ha visto ningún nombre de host
Según haga falta, en el modo de captura del muestreador, que es el predeterminado hasta que la extensión de red esté en marcha. Sin interruptor para desactivarla: sin ella el muestreador no puede nombrar la mayoría de las conexiones. La extensión de red las nombra a partir del propio tráfico y no hace esta consulta
Consulta del propietario de la red
Team Cymru, por DNS
Direcciones IP públicas sin nombre de host conocido. Las direcciones privadas y reservadas no salen nunca de tu Mac
Activada por defecto. Interruptor para desactivarla en Captura › Identificar a los propietarios de la red
Preguntar con un modelo alojado
El proveedor que elijas: Anthropic, OpenAI, Google Gemini o un endpoint compatible
Tu pregunta y los resultados que devuelvan las consultas de solo lectura de Flowlight que elija el modelo. La base de datos de tráfico en sí no se sube
Solo cuando eliges un proveedor alojado y envías una pregunta. La pantalla Preguntar muestra las peticiones transmitidas
De una regla que rechaza conexiones se encarga la extensión de red, en el camino, antes de que la conexión se haga. De una regla que nombra
- una URL se encarga en cambio el proxy de inspección, que responde a la petición con un estado que la app puede leer. Esas son las dos únicas
- partes de Flowlight que actúan en lugar de informar — el muestreador nettop no puede rechazar nada en absoluto, así que en un Mac que captura
- con el muestreador no se aplica ninguna regla, y Flowlight lo dice en lugar de ofrecer un interruptor que no hace nada.
+
De una regla que rechaza conexiones se encarga normalmente la extensión de red, en el camino, antes de que la conexión se haga. Para el tráfico
+ encaminado por la inspección HTTPS, el proxy local aplica las reglas de destino y los paquetes gestionados activados al cliente original antes
+ de abrir la conexión con el servidor de origen; una regla que nombra una URL también se aplica allí, después del descifrado, y responde con un
+ estado que la app puede leer. Esas son las dos únicas partes de Flowlight que actúan en lugar de informar — el muestreador nettop no puede
+ rechazar nada en absoluto, así que en un Mac que captura con el muestreador no se aplica ninguna regla, y Flowlight lo dice en lugar de ofrecer
+ un interruptor que no hace nada.
Aun así no es impedir. Un agente que puede ejecutar un shell puede hacer a mano lo que habría hecho la herramienta rechazada. Un rechazo que
puedes deshacer con un clic es un rechazo por el que el siguiente intento del agente puede pasar. El tráfico local, el DNS, los servicios de
Apple y las propias conexiones de Flowlight no se rechazan nunca, porque un Mac bloqueado es peor resultado que un agente bloqueado. Y la
aplicación de las reglas caduca unos segundos después de que Flowlight deje de ejecutarse: un rechazo que nadie puede ver es peor que ninguno.
-
La inspección y el rechazo no se combinan. El tráfico encaminado por el propio proxy de Flowlight sale del Mac como tráfico
- de Flowlight, y Flowlight no se rechaza nunca a sí mismo — así que una app cuyas peticiones estás leyendo es una app cuyas conexiones las
- reglas ya no detienen. Activar la inspección para ver más te cuesta la aplicación de las reglas, y hasta ahora nada en la pantalla lo decía.
+
La inspección conserva el rechazo por nombre de host, con un límite. El tráfico encaminado por el proxy de Flowlight sale del
+ Mac como tráfico exento de Flowlight, así que el proxy decide primero las reglas de destino normales y los paquetes gestionados activados usando
+ la identidad original de la app. Puede hacerlo incluso con túneles que fijan certificados o que nunca se descifran, porque CONNECT nombra el host.
+ Las listas de permitidos de agentes siguen siendo una decisión de la Extensión de red y no se aplican a ese tramo hacia el servidor de origen a
+ través del proxy; el tráfico sin un propietario fiable o sin nombre de host se permite en vez de rechazarse sin que nadie lo vea.
Lo que guarda Flowlight mismo
Metadatos de tráfico en una base de datos SQLite local, con una retención publicada. Con la inspección HTTPS activada guarda además los
cuerpos de las peticiones y las respuestas durante tres días: lo más delicado que llega a conservar. Las cabeceras con credenciales se
censuran por nombre y por palabra, lo cual es una heurística y no una garantía; una cabecera que lleve un secreto con un nombre que nada
reconoce puede quedar registrada.
-
La base de datos de tráfico nunca se sube. Tres cosas más pequeñas sí salen del Mac sin que nadie las pida, las tres nombradas en la
- página de privacidad: la comprobación de actualizaciones, que pide a GitHub la última versión al arrancar y a
- diario; la consulta del propietario de la red, que pregunta a Team Cymru por direcciones públicas que no tienen nombre de host; y, mientras
- Flowlight lee contadores en vez de ejecutar su extensión, una consulta de DNS inverso de las direcciones para las que no vio ningún nombre.
- Las dos primeras se pueden desactivar. La tercera no, porque en el muestreador es casi la única manera en la que una conexión llega a tener
- nombre: va al servidor DNS que el Mac ya usa, y se detiene en cuanto la extensión toma el relevo y nombra las conexiones a partir del propio
- tráfico. Preguntar con un modelo alojado envía mucho más que cualquiera de ellas, y es lo único que está desactivado hasta que lo
- configuras.
+
La base de datos de tráfico nunca se sube. La página de privacidad enumera cada petición saliente: comprobaciones de versión y de paquetes de reglas firmados, la consulta opcional del propietario de red y DNS inverso en el muestreador. Las tres primeras tienen interruptores; el DNS inverso no, porque sin él el muestreador no podría nombrar la mayoría de las conexiones. Preguntar con un modelo alojado envía mucho más y permanece desactivado hasta que lo configuras.
Actualizaciones
Las versiones se firman con un Developer ID y se notarizan. El actualizador exige una suma de comprobación publicada y rechaza una descarga
que no la tenga; después comprueba que la app descargada esté firmada por el mismo equipo que la copia en ejecución antes de instalarla. Una
actualización firmada por otra persona se rechaza aunque por lo demás sea válida.
+
Los paquetes de reglas oficiales usan una firma independiente limitada a este fin y una única fuente HTTPS fija. La aplicación mantiene por separado una marca de la secuencia más alta, vuelve a verificar al iniciarse los bytes exactos almacenados en caché, rechaza las regresiones y las publicaciones contradictorias, y nunca considera la firma del editor como permiso para aplicar contenido modificado. Los paquetes nuevos o modificados requieren la revisión explícita del contenido exacto y Guardar; el contenido obsoleto ya aceptado se etiqueta como la última versión válida conocida, mientras que la revocación de la confianza o los bytes dañados provocan un rechazo seguro.
Informar de una vulnerabilidad
Usa el informe privado de vulnerabilidades de GitHub, o escribe a
diff --git a/site/pages/fr/docs.html b/site/pages/fr/docs.html
index 0fbb2885..124ad2d4 100644
--- a/site/pages/fr/docs.html
+++ b/site/pages/fr/docs.html
@@ -383,6 +383,11 @@
Règles
règle est sans danger. L’écran nomme aussi le trafic le plus ancien qu’il a pu voir : une règle testée sur deux heures
d’historique a été testée sur deux heures d’historique.
+
Packs gérés de publicité et de traqueurs
+
Règles › Packs contient trois listes officielles de noms d’hôte : Publicité, Suivi intersites et Confidentialité et télémétrie. Elles sont visibles dès le départ et toutes désactivées par défaut. Le blocage nécessite l’Extension réseau ; l’échantillonneur nettop ne peut qu’observer.
+
Uniquement des mises à jour officielles et signées. Flowlight consulte une source HTTPS fixe unique pour rechercher des catalogues plus récents signés par l’éditeur. Les vérifications automatiques sont activées par défaut et peuvent être désactivées ici. Une signature authentifie le contenu, mais ne l’active pas : un nouveau pack reste désactivé et, si les destinations changent, l’application d’un pack activé est suspendue jusqu’à ce que vous examiniez la nouvelle version exacte et appuyiez sur Enregistrer. Pendant une panne, le contenu accepté peut rester disponible comme dernière version valide connue, visiblement signalée comme obsolète. Il s’agit de blocages réseau au niveau des noms d’hôte : ils ne peuvent pas supprimer les vides dans le DOM ou la mise en page, les superpositions du navigateur, les fenêtres contextuelles générées par des scripts ni les fenêtres d’applications natives.
+
Quand l’inspection HTTPS achemine une app par le proxy de Flowlight, celui-ci décide des règles de destination ordinaires et des packs gérés activés d’après l’identité d’origine de l’app, avant d’ouvrir toute connexion au serveur d’origine. Pour les tunnels CONNECT épinglés ou jamais déchiffrés, cela fonctionne par nom d’hôte ; les listes d’autorisation des agents restent limitées au chemin direct par l’Extension réseau. Si le propriétaire ou le nom d’hôte est inconnu, la connexion est autorisée.
+
Listes d’autorisation
Sélectionnez un agent dans Agents IA et utilisez Liste d’autorisation dans son détail pour dire où il peut se connecter. Saisissez des domaines
(sous-domaines inclus), des adresses IP ou des plages CIDR, ou choisissez un préréglage : GitHub, npm, PyPI, Homebrew, Docker Hub, crates Rust, modules Go ou
@@ -401,8 +406,7 @@
Refuser des connexions
Flowlight lui-même. Un Mac bloqué est un pire résultat qu’un agent bloqué : en cas de doute, la connexion est donc autorisée et enregistrée.
L’application des refus cesse aussi quelques secondes après l’arrêt de Flowlight — un refus que personne ne peut voir est pire que pas de refus, et le moyen
de l’annuler vit dans l’app.
-
L’inspection HTTPS et le blocage ne se combinent pas : le trafic acheminé par le proxy de Flowlight sort comme trafic de Flowlight, qui n’est
- jamais refusé.
+
Pour une app acheminée par l’inspection HTTPS, le proxy de Flowlight décide des règles de destination ordinaires et des packs gérés activés d’après l’identité d’origine de l’app, avant d’ouvrir toute connexion au serveur d’origine. Pour les tunnels CONNECT épinglés ou jamais déchiffrés, il le fait par nom d’hôte. Les listes d’autorisation des agents restent limitées au chemin direct par l’Extension réseau ; si le propriétaire ou le nom d’hôte est inconnu, la connexion est autorisée.
Garde-fous des agents : bloquer un outil, un serveur ou une ressource
Quels outils cet agent peut-il utiliser est une question différente de quels hôtes peut-il joindre : elle a donc sa propre
@@ -622,9 +626,7 @@
Questions & réponses
Cela montre quelles extensions sont installées, si macOS a réellement démarré le filtre de Flowlight, et à quand remonte le dernier enregistrement.
Collez le résultat dans un ticket.
Flowlight envoie-t-il quoi que ce soit à mon sujet, où que ce soit ?
-
Ni compte, ni télémétrie, ni analytique, et votre base de données de trafic n’est jamais téléversée. Trois requêtes quittent bien le Mac, toutes listées sur la
- page Confidentialité : la recherche quotidienne de mise à jour et la consultation facultative du propriétaire de réseau, toutes
- deux avec un interrupteur d’arrêt, et le DNS inverse tant que Flowlight tourne sur l’échantillonneur, qui n’en a pas — sans lui, l’échantillonneur ne pourrait pas nommer la plupart des connexions.
+
Ni compte, ni télémétrie, ni analytique, et votre base de données de trafic n’est jamais téléversée. La page Confidentialité répertorie chaque requête : les vérifications de version et de packs de règles signés, ainsi que la consultation facultative du propriétaire du réseau, ont des interrupteurs ; le DNS inverse ne fonctionne qu’avec l’échantillonneur et n’en a pas, car sans lui la plupart des connexions resteraient sans nom.
Va-t-il ralentir mon Mac ou vider la batterie ?
Fenêtre fermée, Flowlight ne fait presque rien : il tient à jour les débits de la barre des menus et écrit une ligne par seconde. L’extension réseau
coûte moins que l’échantillonneur de secours, qui lance un processus nettop éphémère chaque seconde.
une barrière contre ceux auxquels vous n’en faites pas — voyez le modèle de menaces.
Cursor ⇥ raw.githubusercontent.com · refusé 4 fois · en semaine 18:00–09:00
+
⛔ Sur activation
Packs gérés de publicité et de traqueurs
Trois packs officiels sont intégrés, visibles et désactivés par défaut. Flowlight consulte un flux HTTPS fixe unique pour rechercher les mises à jour signées ; tout contenu nouveau ou modifié reste inappliqué jusqu’à ce que vous examiniez cette version exacte et appuyiez sur Enregistrer. Pendant une panne, le contenu vérifié et accepté peut être conservé comme dernière version valide connue, visiblement signalée comme obsolète.
Ils bloquent par nom d’hôte et ne peuvent donc pas supprimer les publicités internes au site, les vides dans le DOM ou la mise en page, les superpositions du navigateur, les fenêtres contextuelles générées par des scripts ni les fenêtres d’applications natives.
⛔ Refuse
Des garde-fous sur les outils d’un agent
@@ -366,7 +367,7 @@
Un moniteur que vous n’avez pas à surveiller
Reste sur votre Mac
Un seul fichier SQLite local. Pas de compte, pas de synchronisation cloud, pas de télémétrie.
Des métadonnées par défaut
Noms d’hôte, ports et nombre d’octets. Déchiffrer le HTTPS est un mode distinct que vous devez activer, et qui reste sur votre Mac.
Filtré dans le noyau
La capture ne laisse passer que les réponses DNS et les ClientHello TLS. Tout le reste est écarté avant que Flowlight le voie.
-
Des recherches que vous maîtrisez
Nommer le propriétaire d’une adresse n’envoie à Team Cymru que des IP publiques sans nom d’hôte, et se désactive en un clic. La recherche quotidienne de mise à jour ne demande à GitHub que la dernière version, et peut aussi être désactivée.
+
Des recherches que vous maîtrisez
Nommer le propriétaire d’une adresse n’envoie à Team Cymru que les IP publiques sans nom d’hôte. Les vérifications de version et de packs de règles signés envoient des requêtes HTTPS standard sans trafic ni réglages de packs. Chacune dispose de son propre interrupteur.
Une requête HTTPS standard pour la dernière version ; GitHub voit votre adresse IP et l’agent utilisateur Flowlight/<version>
Au lancement et une fois par jour, depuis 0.1.2. Interrupteur d’arrêt dans Réglages › Général
Téléchargement de mise à jour
github.com
L’image disque et son fichier de somme de contrôle
Seulement quand vous cliquez sur Télécharger & ouvrir
+
Mise à jour du pack de règles officiel
flowlight.xinbetween.com
Une requête HTTPS standard vers le flux officiel fixe. Le serveur voit votre adresse IP, l’agent utilisateur Flowlight/<version> et les validateurs conditionnels du cache ; il ne reçoit ni trafic, ni réglages des packs, ni identifiant d’appareil
Après le démarrage, lorsqu’une vérification est due, puis au maximum une fois par jour tant que le service fonctionne normalement. Activée par défaut ; interrupteur de désactivation et option manuelle Rechercher maintenant dans Règles › Packs
DNS inverse
Le résolveur DNS que vous avez configuré
Une recherche du nom enregistré d’une adresse IP, quand aucun nom d’hôte n’a été observé
Au besoin, dans le mode de capture par échantillonnage, qui est celui par défaut jusqu’à ce que l’extension réseau tourne. Pas d’interrupteur d’arrêt : sans elle, l’échantillonneur ne peut pas nommer la plupart des connexions. L’extension réseau les nomme à partir du trafic lui-même et ne fait pas cette recherche
Recherche du propriétaire de réseau
Team Cymru, par DNS
Des adresses IP publiques sans nom d’hôte connu. Les adresses privées et réservées ne quittent jamais votre Mac
Activé par défaut. Interrupteur d’arrêt dans Capture › Identifier les propriétaires de réseau
Demander avec un modèle hébergé
Le fournisseur que vous choisissez : Anthropic, OpenAI, Google Gemini ou un point de terminaison compatible
Votre question et les résultats renvoyés par les requêtes Flowlight en lecture seule choisies par le modèle. La base de données de trafic elle-même n’est pas envoyée
Seulement quand vous choisissez un fournisseur hébergé et soumettez une question. L’écran Demander montre les requêtes transmises
Une règle qui refuse des connexions est exécutée par l’extension réseau, sur le chemin, avant que la connexion ne soit faite. Une règle qui
- nomme une URL est exécutée par le proxy d’inspection, qui répond à la requête avec un statut que l’app peut lire. Ce sont les deux seules
- parties de Flowlight qui agissent au lieu de rapporter — l’échantillonneur nettop, lui, ne peut rien refuser du tout : sur un Mac qui
- capture avec l’échantillonneur, aucune règle n’est appliquée, et Flowlight le dit plutôt que de proposer un interrupteur qui ne fait rien.
+
Une règle qui refuse des connexions est normalement exécutée par l’extension réseau, sur le chemin, avant que la connexion ne soit faite. Pour
+ le trafic acheminé par l’inspection HTTPS, le proxy local applique les règles de destination et les packs gérés activés au client d’origine
+ avant d’ouvrir la connexion au serveur d’origine ; une règle qui nomme une URL y est également exécutée après le déchiffrement, avec un
+ statut que l’app peut lire. Ce sont les deux seules parties de Flowlight qui agissent au lieu de rapporter — l’échantillonneur nettop, lui, ne
+ peut rien refuser du tout : sur un Mac qui capture avec l’échantillonneur, aucune règle n’est appliquée, et Flowlight le dit plutôt que de
+ proposer un interrupteur qui ne fait rien.
Ce n’est pourtant toujours pas empêcher. Un agent qui peut lancer un shell peut faire à la main ce que l’outil refusé aurait fait. Un refus que
vous pouvez annuler d’un clic est un refus que la tentative suivante d’un agent peut franchir. Le trafic local, le DNS, les services d’Apple et
les connexions de Flowlight lui-même ne sont jamais refusés, parce qu’un Mac bloqué est un pire résultat qu’un agent bloqué. Et l’application
des refus cesse quelques secondes après l’arrêt de Flowlight : un refus que personne ne peut voir est pire que pas de refus.
-
Inspection et refus ne se combinent pas. Le trafic passé par le proxy de Flowlight lui-même quitte le Mac comme du trafic de
- Flowlight, et Flowlight ne se refuse jamais lui-même — une app dont vous lisez les requêtes est donc une app dont les règles n’arrêtent plus
- les connexions. Activer l’inspection pour en voir plus vous coûte l’application des refus, et rien à l’écran ne le disait jusqu’ici.
+
L’inspection préserve le refus par nom d’hôte, avec une limite. Le trafic acheminé par le proxy de Flowlight quitte le Mac comme
+ du trafic Flowlight exempté ; le proxy décide donc d’abord des règles de destination ordinaires et des packs gérés activés en utilisant
+ l’identité d’origine de l’app. Il peut le faire même pour les tunnels épinglés ou jamais déchiffrés, car CONNECT nomme l’hôte. Les listes
+ d’autorisation des agents restent une décision de l’Extension réseau et ne s’appliquent pas à ce trajet vers le serveur d’origine par le proxy ;
+ le trafic sans propriétaire fiable ou sans nom d’hôte est autorisé plutôt que refusé sans que personne ne le voie.
Ce que Flowlight lui-même conserve
Des métadonnées de trafic dans une base de données SQLite locale, avec une durée de conservation publiée. Avec l’inspection HTTPS activée, il
conserve aussi les corps des requêtes et des réponses pendant trois jours — la chose la plus sensible qu’il garde jamais. Les en-têtes
d’identification sont masqués par nom et par mot, ce qui est une heuristique et non une garantie ; un en-tête qui porte un secret sous un
nom que rien ne reconnaît peut être enregistré.
-
La base de données de trafic n’est jamais téléversée. Trois choses plus petites quittent bien le Mac sans qu’on les demande, toutes trois
- nommées sur la page Confidentialité : la recherche de mise à jour, qui demande à GitHub la dernière version
- au lancement et une fois par jour ; la consultation du propriétaire du réseau, qui interroge Team Cymru sur les adresses publiques sans
- nom d’hôte ; et, tant que Flowlight lit des compteurs au lieu de faire tourner son extension, une recherche DNS inverse des adresses dont
- il n’a vu aucun nom. Les deux premières ont un interrupteur d’arrêt. La troisième non, parce que sur l’échantillonneur c’est l’essentiel de la
- façon dont une connexion obtient un nom : elle va au résolveur que le Mac utilise déjà, et elle s’arrête dès que l’extension prend le
- relais et nomme les connexions à partir du trafic lui-même. Demander avec un modèle hébergé envoie bien plus que n’importe laquelle d’entre
- elles, et c’est la seule chose qui reste désactivée jusqu’à ce que vous la configuriez.
+
La base de données de trafic n’est jamais téléversée. La page Confidentialité répertorie chaque requête sortante : vérifications de version et de packs de règles signés, consultation facultative du propriétaire du réseau et DNS inverse avec l’échantillonneur. Les trois premières ont des interrupteurs ; le DNS inverse non, car sans lui l’échantillonneur ne pourrait pas nommer la plupart des connexions. Un modèle hébergé envoie bien plus et reste désactivé jusqu’à configuration.
Mises à jour
Les versions sont signées avec un Developer ID et notarisées. Le programme de mise à jour exige une somme de contrôle publiée et refuse un
téléchargement qui n’en a pas, puis vérifie que l’app téléchargée est signée par la même équipe que la copie en cours d’exécution avant de
l’installer. Une mise à jour signée par quelqu’un d’autre est refusée, même si elle est valide par ailleurs.
+
Les packs de règles officiels utilisent une signature distincte limitée à cet usage et une source HTTPS fixe unique. L’application conserve séparément un repère de la séquence la plus élevée, revérifie au démarrage les octets exacts mis en cache, rejette les retours en arrière et les publications contradictoires, et ne considère jamais la signature d’un éditeur comme une autorisation d’appliquer un contenu modifié. Les packs nouveaux ou modifiés exigent l’examen explicite du contenu exact et Enregistrer ; le contenu obsolète déjà accepté est étiqueté comme dernière version valide connue, tandis qu’une révocation de confiance ou des octets corrompus entraînent un refus sécurisé.
Signaler une vulnérabilité
Utilisez le signalement privé de vulnérabilités de GitHub, ou écrivez à
diff --git a/site/pages/index.html b/site/pages/index.html
index 1263796d..5509d049 100644
--- a/site/pages/index.html
+++ b/site/pages/index.html
@@ -180,7 +180,9 @@
Monitor how AI agents use the network
⛔ Opt-in
Managed ad and tracker packs
Three official packs — Advertising, Cross-site tracking, and Privacy and telemetry — are built in, visible and off by
- default. With the Network Extension, apply one to every app or only selected apps; preview it against retained traffic,
+ default. Flowlight checks one fixed HTTPS feed for signed updates; new or changed content remains out of enforcement until
+ you review that exact version and press Save. During an outage, verified accepted content is visibly stale last-known-good.
+
With the Network Extension, apply one to every app or only selected apps; preview it against retained traffic,
see grouped, explainable activity, and add pack-specific exceptions for an app. Ordinary allow rules remain the universal
escape hatch, global Pause Blocking applies, and essential system traffic stays allowed.
They block by hostname, so they cannot remove first-party ads, DOM or layout gaps, browser overlays, scripted popups, or
@@ -387,7 +389,7 @@
A monitor you don't have to monitor
Stays on your Mac
One local SQLite file. No account, no cloud sync, no telemetry.
Metadata by default
Hostnames, ports and byte counts. Decrypting HTTPS is a separate mode you have to turn on, and it stays on your Mac.
Filtered in the kernel
Capture passes only DNS answers and TLS ClientHellos. Everything else is dropped before Flowlight sees it.
-
Lookups you control
Naming who owns an address sends only public IPs with no hostname to Team Cymru, and turns off in one click. The daily update check only asks GitHub for the latest version, and can be turned off too.
+
Lookups you control
Naming who owns an address sends only public IPs with no hostname to Team Cymru. Release and signed rule-pack checks send standard HTTPS requests with no traffic or pack settings. Each has an off switch.
sicura. La schermata indica anche il traffico più vecchio che ha potuto vedere: una regola testata su due ore di storico è stata
testata su due ore di storico.
+
Pacchetti gestiti per pubblicità e tracker
+
Regole › Pacchetti contiene tre elenchi ufficiali di nomi host: Pubblicità, Tracciamento tra siti e Privacy e telemetria. Sono visibili fin dall’inizio e tutti disattivati per impostazione predefinita. Il blocco richiede l’Estensione di rete; il campionatore nettop può solo osservare.
+
Solo aggiornamenti ufficiali e firmati. Flowlight controlla un’unica fonte HTTPS fissa per trovare cataloghi più recenti firmati dall’editore. I controlli automatici sono attivi per impostazione predefinita e possono essere disattivati qui. Una firma autentica il contenuto, ma non lo attiva: un nuovo pacchetto resta disattivato e, se cambiano le destinazioni, l’applicazione di un pacchetto attivo viene sospesa finché non esamini l’esatta nuova versione e premi Salva. Durante un’interruzione, i contenuti accettati possono restare disponibili come ultima versione valida nota, visibilmente indicata come obsoleta. Si tratta di blocchi di rete a livello di nome host: non possono eliminare spazi vuoti nel DOM o nel layout, sovrapposizioni del browser, popup generati da script o finestre di app native.
+
Quando l’ispezione HTTPS instrada un’app attraverso il proxy di Flowlight, questo decide le normali regole di destinazione e i pacchetti gestiti attivi usando l’identità originale dell’app prima di aprire qualsiasi connessione al server di origine. Per i tunnel CONNECT con pinning o mai decifrati, ciò funziona in base al nome host; gli elenchi consentiti degli agenti restano limitati al percorso diretto attraverso l’Estensione di rete. Se il proprietario o il nome host è sconosciuto, la connessione viene consentita.
+
Elenchi consentiti
Seleziona un agente in Agenti IA e usa Elenco consentiti nel suo dettaglio per dire dove può connettersi. Inserisci domini
(sottodomini compresi), indirizzi IP o intervalli CIDR, oppure scegli una preimpostazione: GitHub, npm, PyPI, Homebrew, Docker Hub, Rust crates, Go modules o
@@ -399,8 +404,7 @@
Rifiutare le connessioni
stesso. Un Mac bloccato è un esito peggiore di un agente bloccato, quindi nel dubbio la connessione viene consentita e registrata.
L'applicazione decade anche pochi secondi dopo che Flowlight smette di funzionare: un rifiuto che nessuno può vedere è peggio di nessun rifiuto, e il modo
per annullarne uno sta nell'app.
-
Ispezione HTTPS e blocco non si combinano: il traffico instradato attraverso il proxy di Flowlight esce come traffico di Flowlight, che non viene
- mai rifiutato.
+
Per un’app instradata attraverso l’ispezione HTTPS, il proxy di Flowlight decide le normali regole di destinazione e i pacchetti gestiti attivi usando l’identità originale dell’app prima di aprire qualsiasi connessione al server di origine. Per i tunnel CONNECT con pinning o mai decifrati, lo fa in base al nome host. Gli elenchi consentiti degli agenti restano limitati al percorso diretto attraverso l’Estensione di rete; se il proprietario o il nome host è sconosciuto, la connessione viene consentita.
Protezioni per gli agenti: bloccare uno strumento, un server o una risorsa
Quali strumenti può usare questo agente è una domanda diversa da quali host può raggiungere, quindi ha una
@@ -620,9 +624,7 @@
Domande e risposte
Mostra quali estensioni sono installate, se macOS ha davvero avviato il filtro di Flowlight e quanto di recente è stato registrato qualcosa.
Incollalo in una segnalazione.
Flowlight invia da qualche parte informazioni su di me?
-
Nessun account, nessuna telemetria, nessuna analisi, e il tuo database del traffico non viene mai caricato. Tre richieste lasciano il Mac, tutte elencate nella
- pagina sulla privacy: il controllo giornaliero degli aggiornamenti e la ricerca facoltativa sul proprietario della rete, entrambe con
- un interruttore per disattivarle, e il DNS inverso finché Flowlight è sul campionatore, che non ne ha uno — senza di esso il campionatore non potrebbe dare un nome alla maggior parte delle connessioni.
+
Nessun account, nessuna telemetria, nessuna analisi, e il tuo database del traffico non viene mai caricato. La pagina sulla privacy elenca ogni richiesta: i controlli della versione e dei pacchetti di regole firmati, insieme alla ricerca facoltativa del proprietario della rete, hanno interruttori; il DNS inverso funziona solo con il campionatore e non ne ha uno, perché senza di esso non potrebbe nominare la maggior parte delle connessioni.
Rallenta il Mac o consuma la batteria?
Con la finestra chiusa Flowlight fa quasi nulla: mantiene le velocità nella barra dei menu e scrive una riga al secondo. L'estensione di rete
costa meno del campionatore di riserva, che avvia un breve processo nettop ogni secondo.
Cursor ⇥ raw.githubusercontent.com · rifiutata 4 volte · nei giorni feriali 18:00–09:00
+
⛔ Da attivare
Pacchetti gestiti per pubblicità e tracker
Tre pacchetti ufficiali sono integrati, visibili e disattivati per impostazione predefinita. Flowlight controlla un unico feed HTTPS fisso per gli aggiornamenti firmati; i contenuti nuovi o modificati restano esclusi dall’applicazione finché non esamini quella versione esatta e premi Salva. Durante un’interruzione, i contenuti verificati e accettati possono restare disponibili come ultima versione valida nota, visibilmente indicata come obsoleta.
Bloccano in base al nome host, quindi non possono rimuovere pubblicità proprietarie, spazi vuoti nel DOM o nel layout, sovrapposizioni del browser, popup generati da script o finestre native delle app.
⛔ Rifiuta
Protezioni sugli strumenti di un agente
@@ -366,7 +367,7 @@
Un monitoraggio che non devi monitorare
Resta sul tuo Mac
Un solo file SQLite locale. Nessun account, nessuna sincronizzazione nel cloud, nessuna telemetria.
Metadati, per impostazione predefinita
Nomi host, porte e byte conteggiati. Decifrare HTTPS è una modalità separata che devi attivare tu, e resta sul tuo Mac.
Filtrato nel kernel
L'acquisizione lascia passare solo le risposte DNS e i ClientHello TLS. Tutto il resto viene scartato prima che Flowlight lo veda.
-
Ricerche che controlli tu
Per dare un nome al proprietario di un indirizzo vengono inviati a Team Cymru solo gli IP pubblici senza nome host, e si disattiva con un clic. Il controllo giornaliero degli aggiornamenti chiede a GitHub solo l'ultima versione, e anche quello si può disattivare.
+
Ricerche che controlli tu
Per dare un nome al proprietario di un indirizzo vengono inviati a Team Cymru solo gli IP pubblici senza nome host. I controlli della versione e dei pacchetti di regole firmati inviano richieste HTTPS standard senza traffico né impostazioni dei pacchetti. Ciascuno ha il proprio interruttore.
Una normale richiesta HTTPS per l'ultima versione; GitHub vede il tuo indirizzo IP e lo user agent Flowlight/<version>
All'avvio e una volta al giorno, dalla 0.1.2. Interruttore per disattivarla in Impostazioni › Generali
Download dell'aggiornamento
github.com
L'immagine disco e il suo file di checksum
Solo quando fai clic su Scarica e apri
+
Aggiornamento ufficiale del pacchetto di regole
flowlight.xinbetween.com
Una richiesta HTTPS standard al feed ufficiale fisso. Il server vede il tuo indirizzo IP, lo user agent Flowlight/<version> e i validatori condizionali della cache; non riceve traffico, impostazioni dei pacchetti o identificatori del dispositivo
Dopo l’avvio, quando previsto, e successivamente non più di una volta al giorno durante il normale funzionamento. Attivo per impostazione predefinita; interruttore per disattivarlo e opzione manuale Controlla ora in Regole › Pacchetti
DNS inverso
Il resolver DNS che hai configurato
Una ricerca del nome registrato di un indirizzo IP, quando non è stato rilevato alcun nome host
Quando serve, nella modalità di acquisizione a campionamento, che è quella predefinita finché l'estensione di rete non è in funzione. Nessun interruttore per disattivarla: senza di essa il campionatore non può dare un nome alla maggior parte delle connessioni. L'estensione di rete le nomina dal traffico stesso e non fa questa ricerca
Ricerca del proprietario della rete
Team Cymru, via DNS
Indirizzi IP pubblici senza nome host noto. Gli indirizzi privati e riservati non lasciano mai il tuo Mac
Attiva per impostazione predefinita. Interruttore per disattivarla in Acquisizione › Identifica i proprietari della rete
Chiedi con un modello ospitato
Il provider che selezioni: Anthropic, OpenAI, Google Gemini o un endpoint compatibile
La tua domanda e i risultati restituiti dalle query di sola lettura di Flowlight selezionate dal modello. Il database del traffico non viene caricato
Solo quando selezioni un provider ospitato e invii una domanda. La schermata Chiedi mostra le richieste trasmesse
Una regola che rifiuta le connessioni viene eseguita dall'estensione di rete, sul percorso, prima che la connessione venga stabilita. Una
- regola che nomina un URL viene eseguita invece dal proxy di ispezione, che risponde alla richiesta con uno stato che l'app può leggere. Sono le
- sole due parti di Flowlight che agiscono invece di riferire — il campionatore nettop non può rifiutare proprio nulla, quindi su un Mac che
- acquisisce con il campionatore nessuna regola viene applicata, e Flowlight lo dice invece di offrire un interruttore che non fa niente.
+
Una regola che rifiuta le connessioni viene normalmente eseguita dall'estensione di rete, sul percorso, prima che la connessione venga stabilita.
+ Per il traffico instradato attraverso l'ispezione HTTPS, il proxy locale applica le regole di destinazione e i pacchetti gestiti attivi al client
+ originale prima di aprire la connessione al server di origine; una regola che nomina un URL viene eseguita anche lì, dopo la decifratura, con uno
+ stato che l'app può leggere. Sono le sole due parti di Flowlight che agiscono invece di riferire — il campionatore nettop non può rifiutare
+ proprio nulla, quindi su un Mac che acquisisce con il campionatore nessuna regola viene applicata, e Flowlight lo dice invece di offrire un
+ interruttore che non fa niente.
Non è comunque impedire. Un agente che può eseguire una shell può fare a mano ciò che avrebbe fatto lo strumento rifiutato. Un rifiuto che
puoi annullare con un clic è un rifiuto attraverso cui il tentativo successivo di un agente può passare. Il traffico locale, il DNS, i servizi
di Apple e le connessioni di Flowlight stesso non vengono mai rifiutati, perché un Mac bloccato è un esito peggiore di un agente bloccato. E
l'applicazione decade pochi secondi dopo che Flowlight smette di funzionare: un rifiuto che nessuno può vedere è peggio di nessun rifiuto.
-
Ispezione e rifiuto non si combinano. Il traffico instradato attraverso il proxy di Flowlight stesso lascia il Mac come
- traffico di Flowlight, e Flowlight non rifiuta mai se stesso — quindi un'app di cui stai leggendo le richieste è un'app le cui connessioni le
- regole non fermano più. Attivare l'ispezione per vedere di più ti costa l'applicazione delle regole, e finora nulla sullo schermo lo diceva.
+
L'ispezione mantiene il rifiuto per nome host, con un limite. Il traffico instradato attraverso il proxy di Flowlight lascia il
+ Mac come traffico Flowlight esente, quindi il proxy decide prima le normali regole di destinazione e i pacchetti gestiti attivi usando l'identità
+ originale dell'app. Può farlo anche per tunnel con pinning o mai decifrati, perché CONNECT specifica l'host. Gli elenchi consentiti degli agenti
+ restano una decisione dell'Estensione di rete e non si applicano a quel tratto verso il server di origine attraverso il proxy; il traffico senza
+ un proprietario attendibile o senza nome host viene consentito invece di essere rifiutato senza che nessuno lo veda.
Cosa conserva Flowlight stesso
Metadati del traffico in un database SQLite locale, con una conservazione pubblicata. Con l'ispezione HTTPS attiva conserva anche i corpi delle
richieste e delle risposte per tre giorni — la cosa più delicata che arrivi mai a tenere. Le intestazioni con credenziali vengono oscurate per
nome e per parola, che è un'euristica e non una garanzia; un'intestazione che porta un segreto sotto un nome che nulla riconosce può essere
registrata.
-
Il database del traffico non viene mai caricato. Tre cose più piccole lasciano il Mac senza che nessuno le chieda, tutte e tre nominate nella
- pagina sulla privacy: il controllo degli aggiornamenti, che chiede a GitHub l'ultima versione all'avvio e una
- volta al giorno; la ricerca del proprietario della rete, che chiede a Team Cymru degli indirizzi pubblici senza nome host; e, finché Flowlight
- legge i contatori invece di far girare la sua estensione, una ricerca DNS inversa degli indirizzi per cui non ha visto alcun nome. Le prime due
- hanno un interruttore per disattivarle. La terza no, perché sul campionatore è in gran parte il modo in cui una connessione arriva ad avere un
- nome: va al resolver che il Mac già usa, e si ferma appena l'estensione prende il suo posto e nomina le connessioni dal traffico stesso. Chiedi
- con un modello ospitato invia molto più di ognuna di esse, ed è la sola cosa che resta disattivata finché non la configuri.
+
Il database del traffico non viene mai caricato. La pagina sulla privacy elenca ogni richiesta in uscita: controlli della versione e dei pacchetti di regole firmati, ricerca facoltativa del proprietario della rete e DNS inverso con il campionatore. Le prime tre hanno interruttori; il DNS inverso no, perché senza di esso il campionatore non potrebbe nominare la maggior parte delle connessioni. Un modello ospitato invia molto di più e resta disattivato finché non lo configuri.
Aggiornamenti
Le versioni sono firmate con un Developer ID e notarizzate. L'aggiornamento richiede una checksum pubblicata e rifiuta un download che non ne
ha una, poi verifica che l'app scaricata sia firmata dallo stesso team della copia in esecuzione prima di installarla. Un aggiornamento firmato
da qualcun altro viene rifiutato anche se per il resto è valido.
+
I pacchetti di regole ufficiali usano una firma distinta e limitata a questo scopo e un’unica fonte HTTPS fissa. L’app conserva separatamente un marcatore della sequenza più alta, verifica di nuovo all’avvio gli esatti byte memorizzati nella cache, rifiuta rollback e pubblicazioni discordanti e non considera mai la firma dell’editore un’autorizzazione ad applicare contenuti modificati. I pacchetti nuovi o modificati richiedono l’esame esplicito del contenuto esatto e Salva; i contenuti obsoleti già accettati sono indicati come ultima versione valida nota, mentre la revoca dell’attendibilità o byte danneggiati fanno rifiutare il contenuto per sicurezza.
Segnalare una vulnerabilità
Usa la segnalazione privata delle vulnerabilità di GitHub, oppure scrivi a
diff --git a/site/pages/ja/docs.html b/site/pages/ja/docs.html
index aa7c3d80..e66c611e 100644
--- a/site/pages/ja/docs.html
+++ b/site/pages/ja/docs.html
@@ -352,6 +352,11 @@
アカウントもテレメトリも分析もなく、トラフィックのデータベースがアップロードされることもありません。プライバシーのページにはすべてのリクエストを記載しています。リリースと署名付きルールパックの確認、任意のネットワーク所有者照会にはオフのスイッチがあります。逆引き DNS はサンプラー使用時だけ動作し、これがないと多くの接続に名前を付けられないためスイッチはありません。
トラフィックのデータベースがアップロードされることはありません。それでも、頼まなくても Mac から出ていくものが 3 つあり、
- どれもプライバシーのページに挙げてあります。起動時と 1 日 1 回、最新のリリースを GitHub に
- 尋ねるアップデートの確認。ホスト名のない公開アドレスについて Team Cymru に尋ねるネットワーク所有者の照会。そして、
- Flowlight が機能拡張ではなくカウンタを読んでいるあいだ、名前が見つからなかったアドレスの逆引き DNS 照会です。
- はじめの 2 つにはオフのスイッチがあります。3 つめにはありません。サンプラーでは、接続に名前が付く道のほとんどがそれだからです。
- 照会はこの Mac がすでに使っているリゾルバへ行き、機能拡張が引き継いでトラフィック自身から名前を付けるようになれば止まります。
- ホスト型モデルでの質問は、そのどれよりもはるかに多くを送りますが、設定するまではオフのままである唯一のものです。
+
トラフィックのデータベースがアップロードされることはありません。プライバシーのページには、リリースと署名付きルールパックの確認、任意のネットワーク所有者照会、サンプラーの逆引き DNS というすべての送信を記載しています。最初の 3 つにはオフのスイッチがあります。逆引き DNS は、多くの接続に名前を付けるため必要なのでありません。ホスト型モデルはより多くを送信し、設定するまでオフです。
アップデート
リリースは Developer ID で署名され、公証されています。アップデート機能は公開されたチェックサムを要求し、それがないダウンロードを
拒否します。そのうえで、ダウンロードしたアプリが実行中のコピーと同じチームの署名であることを確かめてから、インストールします。
別の誰かが署名したアップデートは、ほかの点で有効であっても拒否されます。
트래픽이 없습니다”를 구분합니다. 같은 빈 목록에 뜻은 정반대이고, 규칙이 안전하다고 말해 주는 것은 둘 중 하나뿐입니다. 화면은 볼 수
있었던 가장 오래된 트래픽도 함께 밝힙니다. 두 시간짜리 이력으로 대조한 규칙은 두 시간짜리 이력으로 대조한 것입니다.
+
관리형 광고 및 추적기 팩
+
규칙 › 팩에는 광고, 사이트 간 추적, 개인정보 보호 및 원격 측정이라는 세 가지 공식 호스트 이름 목록이 있습니다. 처음부터 표시되며 모두 기본적으로 꺼져 있습니다. 차단하려면 네트워크 확장 프로그램이 필요하며, nettop 샘플러는 관찰만 할 수 있습니다.
+
공식 서명 업데이트만 허용됩니다. Flowlight는 게시자가 서명한 최신 카탈로그가 있는지 하나의 고정 HTTPS 소스를 확인합니다. 자동 확인은 기본적으로 켜져 있으며 여기에서 끌 수 있습니다. 서명은 콘텐츠를 인증하지만 활성화하지는 않습니다. 새 팩은 꺼진 상태로 유지되며, 대상이 변경되면 활성화된 팩은 정확한 새 버전을 검토하고 저장을 누를 때까지 적용되지 않습니다. 서비스 중단 중에도 승인된 콘텐츠가 눈에 띄게 오래된 것으로 표시된 마지막 정상 버전으로 유지될 수 있습니다. 이는 호스트 이름 수준의 네트워크 차단이므로 DOM이나 레이아웃의 빈 공간, 브라우저 오버레이, 스크립트로 생성된 팝업 또는 네이티브 앱 창은 제거할 수 없습니다.
+
HTTPS 검사가 앱을 Flowlight의 프록시로 보내면, 일반 대상 규칙과 활성화된 관리형 팩은 원본 서버 연결이 열리기 전에 원래 앱의 신원을 사용해 결정됩니다. 인증서가 고정되었거나 복호화되지 않는 CONNECT 터널도 호스트 이름으로 판정할 수 있습니다. 에이전트 허용 목록은 계속 네트워크 확장을 직접 지나는 경로에만 적용됩니다. 소유자나 호스트 이름을 알 수 없으면 연결을 허용합니다.
+
허용 목록
AI 에이전트에서 에이전트를 고르고 상세의 허용 목록에서 어디에 연결할 수 있는지 정하세요.
도메인(서브도메인 포함)이나 IP 주소, CIDR 범위를 입력하거나 사전 설정을 고르면 됩니다. GitHub, npm, PyPI, Homebrew, Docker Hub,
@@ -395,8 +400,7 @@
연결 거부
트래픽입니다. 막힌 Mac은 막힌 에이전트보다 나쁜 결과이므로, 애매할 때는 연결을 허용하고 기록합니다. 또한 Flowlight가 멈추면
몇 초 뒤에 적용이 풀립니다. 아무도 볼 수 없는 거부는 거부가 없는 것보다 나쁘고, 그것을 되돌리는 방법은 앱 안에 있기
때문입니다.
-
HTTPS 검사와 차단은 함께 쓸 수 없습니다. Flowlight의 프록시를 거친 트래픽은 Flowlight 자신의 트래픽으로 나가는데, 그것은
- 절대 거부되지 않기 때문입니다.
+
HTTPS 검사를 거치는 앱은 Flowlight의 프록시가 원본 서버 연결을 열기 전에 원래 앱의 신원을 사용해 일반 대상 규칙과 활성화된 관리형 팩을 결정합니다. 인증서가 고정되었거나 복호화되지 않는 CONNECT 터널에서는 호스트 이름으로 판정합니다. 에이전트 허용 목록은 계속 네트워크 확장을 직접 지나는 경로에만 적용됩니다. 소유자나 호스트 이름을 알 수 없으면 연결을 허용합니다.
에이전트 가드레일: 도구나 서버, 리소스를 막기
이 에이전트가 어떤 도구를 쓸 수 있나는 어떤 호스트에 닿을 수 있나와 다른 질문이므로 자리도 따로
@@ -611,10 +615,7 @@
질문과 답
어떤 확장이 설치되어 있는지, macOS가 Flowlight의 필터를 실제로 시작했는지, 그리고 가장 최근 기록이 언제인지 보여줍니다.
결과를 이슈에 붙여 주세요.
Flowlight가 내 정보를 어딘가로 보내나요?
-
계정도, 텔레메트리도, 분석도 없고, 트래픽 데이터베이스가 업로드되는 일도 없습니다. Mac을 떠나는 요청은 세 가지이고, 셋 다
- 개인정보 페이지에 나열되어 있습니다. 하루 한 번의 업데이트 확인과 선택 사항인 네트워크 소유자 조회,
- 이 둘은 끄는 스위치가 있습니다. 그리고 Flowlight가 샘플러로 돌고 있는 동안의 역방향 DNS, 이것은 스위치가 없습니다. 그것이 없으면
- 샘플러는 대부분의 연결에 이름을 붙일 수 없습니다.
+
계정도, 텔레메트리도, 분석도 없고 트래픽 데이터베이스도 업로드되지 않습니다. 개인정보 페이지에 모든 요청이 나열됩니다. 릴리스와 서명된 규칙 팩 확인, 선택 사항인 네트워크 소유자 조회에는 끄기 스위치가 있습니다. 역방향 DNS는 샘플러에서만 실행되며, 없으면 대부분의 연결에 이름을 붙일 수 없어 스위치가 없습니다.
Mac이 느려지거나 배터리가 빨리 닳지 않나요?
창을 닫아 두면 Flowlight는 거의 아무 일도 하지 않습니다. 메뉴 막대의 속도를 유지하고 1초에 한 행을 씁니다. 네트워크 확장은
1초마다 짧게 사는 nettop 프로세스를 실행하는 대체 샘플러보다 비용이 적습니다.
세 가지 공식 팩이 내장되어 있고 처음부터 표시되지만 모두 기본적으로 꺼져 있습니다. Flowlight는 서명된 업데이트가 있는지 하나의 고정 HTTPS 피드를 확인합니다. 새 콘텐츠나 변경된 콘텐츠는 정확한 해당 버전을 검토하고 저장을 누를 때까지 차단 적용에서 제외됩니다. 서비스 중단 중에는 검증되고 승인된 콘텐츠가 오래된 상태임을 명확히 표시한 마지막 정상 버전으로 유지될 수 있습니다.
호스트 이름을 기준으로 차단하므로 자사 광고, DOM이나 레이아웃의 빈 공간, 브라우저 오버레이, 스크립트로 생성된 팝업 또는 네이티브 앱 창은 제거할 수 없습니다.
⛔ 거부
에이전트의 도구에 두는 가드레일
@@ -366,7 +367,7 @@
감시하지 않아도 되는 감시 도구
Mac 안에 머무릅니다
로컬 SQLite 파일 하나. 계정도, 클라우드 동기화도, 텔레메트리도 없습니다.
기본은 메타데이터
호스트 이름과 포트, 바이트 수. HTTPS 복호화는 직접 켜야 하는 별도 모드이며, 그 결과도 Mac 안에 남습니다.
커널에서 걸러냅니다
캡처는 DNS 응답과 TLS ClientHello만 통과시킵니다. 나머지는 Flowlight가 보기 전에 버려집니다.
-
조회는 내가 정합니다
주소의 소유자를 알아낼 때는 호스트 이름이 없는 공용 IP만 Team Cymru로 보내며, 클릭 한 번으로 끌 수 있습니다. 하루 한 번 업데이트 확인은 GitHub에 최신 버전만 물어보고, 이것도 끌 수 있습니다.
+
조회는 내가 정합니다
주소의 소유자를 알아낼 때는 호스트 이름이 없는 공용 IP만 Team Cymru로 보냅니다. 릴리스와 서명된 규칙 팩 확인은 트래픽이나 팩 설정 없이 표준 HTTPS 요청을 보냅니다. 각각 별도로 끌 수 있습니다.
연결을 거부하는 규칙을 실행하는 것은 네트워크 확장이며, 그 경로 안에서, 연결이 만들어지기 전에 실행합니다. URL을 지정하는
- 규칙은 검사 프록시가 대신 실행해, 앱이 읽을 수 있는 상태 코드로 요청에 답합니다. 보고하는 대신 실제로 손을 쓰는 Flowlight의
- 부분은 이 둘뿐입니다. nettop 샘플러는 아무것도 거부할 수 없으므로, 샘플러로 돌아가는 Mac에서는 어떤 규칙도 적용되지 않습니다.
- Flowlight는 아무 일도 하지 않는 스위치를 내놓는 대신 그렇다고 말합니다.
+
연결을 거부하는 규칙은 보통 네트워크 확장이 그 경로 안에서, 연결이 만들어지기 전에 실행합니다. HTTPS 검사를 거치는 트래픽은
+ 로컬 프록시가 원본 서버 연결을 열기 전에 원래 클라이언트에 대상 규칙과 활성화된 관리형 팩을 적용합니다. URL을 지정하는 규칙도
+ 복호화 후 그곳에서 실행되어, 앱이 읽을 수 있는 상태 코드로 응답합니다. 보고하는 대신 실제로 손을 쓰는 Flowlight의 부분은 이
+ 둘뿐입니다. nettop 샘플러는 아무것도 거부할 수 없으므로, 샘플러로 돌아가는 Mac에서는 어떤 규칙도 적용되지 않습니다. Flowlight는
+ 아무 일도 하지 않는 스위치를 내놓는 대신 그렇다고 말합니다.
그래도 예방은 아닙니다. 셸을 쓸 수 있는 에이전트는 거부된 도구가 했을 일을 직접 할 수 있습니다. 클릭 한 번으로 되돌릴 수 있는
거부는, 에이전트의 다음 시도가 걸어 나갈 수 있는 거부입니다. 로컬 트래픽과 DNS, Apple 기본 서비스, Flowlight 자신의 연결은 절대
거부되지 않습니다. 막힌 Mac은 막힌 에이전트보다 나쁜 결과이기 때문입니다. 그리고 Flowlight가 멈추면 몇 초 뒤에 적용이 풀립니다.
아무도 볼 수 없는 거부는 거부가 없는 것보다 나쁘기 때문입니다.
-
검사와 거부는 함께 가지 않습니다. Flowlight 자신의 프록시를 거친 트래픽은 Flowlight의 트래픽으로 Mac을
- 떠나고, Flowlight는 자기 자신을 거부하지 않습니다. 그러니 요청을 읽고 있는 앱은, 규칙으로는 더 이상 연결을 막을 수 없는
- 앱입니다. 더 보려고 검사를 켜는 일은 적용을 내주는 일이기도 한데, 화면에는 지금까지 그런 말이 없었습니다.
+
검사에서도 호스트 이름에 따른 거부는 유지되지만 경계가 있습니다. Flowlight의 프록시를 거친 트래픽은 예외 처리된
+ Flowlight 트래픽으로 Mac을 떠나므로, 프록시가 먼저 원래 앱의 신원을 사용해 일반 대상 규칙과 활성화된 관리형 팩을 결정합니다.
+ CONNECT가 호스트 이름을 지정하므로 인증서가 고정되었거나 복호화되지 않는 터널에서도 이 판정을 할 수 있습니다. 에이전트 허용 목록은
+ 네트워크 확장의 결정으로 남으며 프록시에서 원본 서버로 가는 구간에는 적용되지 않습니다. 신뢰할 수 있는 소유자나 호스트 이름이 없는
+ 트래픽은 보이지 않게 거부하지 않고 연결을 허용합니다.
Flowlight 자신이 갖고 있는 것
트래픽 메타데이터를 로컬 SQLite 데이터베이스에, 공개된 보관 기간만큼 갖고 있습니다. HTTPS 검사를 켜 두면 요청과 응답의 본문도
3일 동안 갖고 있는데, 이것이 Flowlight가 보관하는 것 중 가장 민감한 것입니다. 인증 정보 헤더는 이름과 낱말로 가려지지만, 그것은
추정 규칙이고 보장이 아닙니다. 아무것도 알아보지 못하는 이름 아래 비밀을 실어 보내는 헤더는 기록될 수 있습니다.
-
트래픽 데이터베이스는 업로드되지 않습니다. 그래도 묻지 않아도 Mac을 떠나는 것이 세 가지 있고, 셋 다
- 개인정보 페이지에 이름이 적혀 있습니다. 실행할 때와 하루에 한 번 GitHub에 최신 릴리스를 묻는
- 업데이트 확인, 호스트 이름이 없는 공개 주소를 Team Cymru에 묻는 네트워크 소유자 조회, 그리고 Flowlight가 확장 대신 카운터를
- 읽고 있는 동안 이름을 보지 못한 주소에 대한 역방향 DNS 조회입니다. 앞의 둘은 끄는 스위치가 있습니다. 셋째는 없습니다.
- 샘플러에서는 연결에 이름이 붙는 길이 대부분 그것이기 때문입니다. 그 조회는 Mac이 이미 쓰는 리졸버로 가고, 확장이 이어받아
- 트래픽 자체에서 이름을 붙이기 시작하면 멈춥니다. 호스팅 모델로 하는 질문은 그 셋 가운데 어느 것보다도 훨씬 많은 것을
- 보내지만, 직접 설정할 때까지 꺼져 있는 유일한 것입니다.
+
트래픽 데이터베이스는 업로드되지 않습니다. 개인정보 페이지에는 릴리스와 서명된 규칙 팩 확인, 선택 사항인 네트워크 소유자 조회, 샘플러의 역방향 DNS 등 모든 외부 요청이 나열됩니다. 앞의 세 항목에는 끄기 스위치가 있습니다. 역방향 DNS는 대부분의 연결에 이름을 붙이는 데 필요해 스위치가 없습니다. 호스팅 모델은 훨씬 더 많은 정보를 보내며 설정하기 전에는 꺼져 있습니다.
업데이트
릴리스는 Developer ID로 서명되고 공증됩니다. 업데이터는 공개된 체크섬을 요구하고 그것이 없는 내려받기를 거부하며, 그다음 설치
전에 내려받은 앱이 실행 중인 사본과 같은 팀의 서명인지 확인합니다. 다른 사람이 서명한 업데이트는 나머지가 다 유효해도
거부됩니다.
+
공식 규칙 팩은 용도를 한정한 별도의 서명과 하나의 고정 HTTPS 소스를 사용합니다. 앱은 독립적인 최고 시퀀스 워터마크를 유지하고, 시작할 때 캐시된 정확한 바이트를 다시 검증하며, 롤백과 서로 상충하는 콘텐츠의 제시를 거부합니다. 또한 게시자 서명을 변경된 콘텐츠의 차단 적용을 허용하는 권한으로 취급하지 않습니다. 새 팩이나 변경된 팩에는 정확한 콘텐츠를 명시적으로 검토하고 저장하는 절차가 필요합니다. 오래된 승인 콘텐츠에는 마지막 정상 버전이라는 표시가 붙으며, 신뢰가 취소되었거나 바이트가 손상된 경우에는 안전을 위해 거부됩니다.
A standard HTTPS request for the latest release; GitHub sees your IP address and the Flowlight/<version> user agent
After a clean quit and relaunch, and daily. Off switch in Settings › General
Update download
github.com
The disk image and its checksum file
Only when you click Download & Open
+
Official rule-pack update
flowlight.xinbetween.com
A standard HTTPS request to the fixed official feed for a publisher-signed catalog. The server sees your IP address, the Flowlight/<version> user agent, and conditional cache validators; it receives no traffic, pack settings, or device identifier
After startup when due and then at most daily while healthy. On by default; off switch and manual Check Now in Rules › Packs
Reverse DNS
Your configured DNS resolver
A lookup of an IP address's registered name, when no hostname was seen
As needed, in the sampler capture mode, which is the default until the Network Extension is running. No off switch: without it the sampler cannot name most connections. The Network Extension names them from the traffic itself and does not do this
Network owner lookup
Team Cymru, over DNS
Public IP addresses with no known hostname. Private and reserved addresses never leave your Mac
On by default. Off switch in Capture › Identify network owners
Ask with a hosted model
The provider you select: Anthropic, OpenAI, Google Gemini or a compatible endpoint
Your question and the results returned by the read-only Flowlight queries selected by the model. The traffic database itself is not uploaded
Only when you select a hosted provider and submit a question. The Ask screen shows the transmitted requests
é segura. O ecrã indica também o tráfego mais antigo que conseguiu ver: uma regra testada contra duas horas de histórico foi
testada contra duas horas de histórico.
+
Pacotes geridos de publicidade e rastreadores
+
Regras › Pacotes contém três listas oficiais de nomes de anfitrião: Publicidade, Rastreio entre sites e Privacidade e telemetria. Estão visíveis desde o início e todas desativadas por predefinição. O bloqueio requer a Extensão de rede; o amostrador nettop apenas pode observar.
+
Apenas atualizações oficiais e assinadas. O Flowlight consulta uma única fonte HTTPS fixa para procurar catálogos mais recentes assinados pelo editor. As verificações automáticas estão ativas por predefinição e podem ser desativadas aqui. Uma assinatura autentica o conteúdo, mas não o ativa: um novo pacote permanece desativado e, se os destinos forem alterados, um pacote ativo deixa de ser aplicado até que reveja a nova versão exata e prima Guardar. Durante uma interrupção, o conteúdo aceite pode permanecer disponível como a última versão válida conhecida, visivelmente assinalada como desatualizada. Estes são bloqueios de rede ao nível do nome de anfitrião: não podem remover espaços vazios no DOM ou no esquema, sobreposições do navegador, janelas pop-up geradas por scripts ou janelas de aplicações nativas.
+
Quando a inspeção HTTPS encaminha uma app pelo proxy do Flowlight, este decide as regras de destino comuns e os pacotes geridos ativos com base na identidade original da app antes de abrir qualquer ligação ao servidor de origem. Nos túneis CONNECT com certificado fixado ou que nunca são decifrados, isto funciona pelo nome de anfitrião; as listas de permissões dos agentes continuam limitadas ao caminho direto pela Extensão de rede. Se o proprietário ou o nome de anfitrião for desconhecido, a ligação é permitida.
+
Listas de permissões
Selecione um agente em Agentes de IA e use a Lista de permissões no seu detalhe para dizer onde pode ligar-se. Introduza domínios
(subdomínios incluídos), endereços IP ou intervalos CIDR, ou escolha uma predefinição: GitHub, npm, PyPI, Homebrew, Docker Hub, Rust crates, módulos de Go ou
@@ -401,8 +406,7 @@
Recusar ligações
Flowlight. Um Mac bloqueado é um resultado pior do que um agente bloqueado, por isso, na dúvida, a ligação é permitida e registada.
A aplicação efetiva também caduca uns segundos depois de o Flowlight deixar de correr — uma recusa que ninguém consegue ver é pior do que nenhuma, e a maneira
de a desfazer está na app.
-
A inspeção HTTPS e o bloqueio não se combinam: o tráfego encaminhado pelo proxy do Flowlight sai como sendo do próprio Flowlight, que
- nunca é recusado.
+
Para uma app encaminhada pela inspeção HTTPS, o proxy do Flowlight decide as regras de destino comuns e os pacotes geridos ativos com base na identidade original da app antes de abrir qualquer ligação ao servidor de origem. Nos túneis CONNECT com certificado fixado ou que nunca são decifrados, fá-lo pelo nome de anfitrião. As listas de permissões dos agentes continuam limitadas ao caminho direto pela Extensão de rede; se o proprietário ou o nome de anfitrião for desconhecido, a ligação é permitida.
Proteções dos agentes: bloquear uma ferramenta, um servidor ou um recurso
Que ferramentas pode este agente usar é uma pergunta diferente de que anfitriões pode alcançar, por isso tem a sua própria
@@ -616,10 +620,7 @@
Perguntas e respostas
Mostra que extensões estão instaladas, se o macOS realmente iniciou o filtro do Flowlight e há quanto tempo foi registado algo.
Cole isso num problema.
O Flowlight envia algo sobre mim para algum lado?
-
Não há conta, nem telemetria, nem analítica, e a sua base de dados de tráfego nunca é enviada. Três pedidos saem do Mac, todos listados na
- página de privacidade: a procura diária de atualizações e a consulta opcional do proprietário da rede, ambas com
- interruptores para desativar, e o DNS inverso enquanto o Flowlight está no amostrador, que não tem nenhum — sem ele, o amostrador não conseguiria
- dar nome à maioria das ligações.
+
Não há conta, nem telemetria, nem analítica, e a sua base de dados de tráfego nunca é enviada. A página de privacidade lista cada pedido: as verificações de versão e de pacotes de regras assinados, além da consulta opcional do proprietário da rede, têm interruptores; o DNS inverso só funciona com o amostrador e não tem um, porque sem ele a maioria das ligações ficaria sem nome.
Vai tornar o meu Mac mais lento ou gastar a bateria?
Com a janela fechada, o Flowlight quase não faz nada: mantém as taxas na barra de menus e escreve uma linha por segundo. A extensão de rede
custa menos do que o amostrador de reserva, que inicia um processo nettop de vida curta a cada segundo.
Cursor ⇥ raw.githubusercontent.com · recusado 4 vezes · dias de semana 18:00–09:00
+
⛔ Por opção
Pacotes geridos de publicidade e rastreadores
Estão integrados três pacotes oficiais, visíveis e desativados por predefinição. O Flowlight consulta um único feed HTTPS fixo para obter atualizações assinadas; os conteúdos novos ou alterados ficam fora da aplicação até rever essa versão exata e premir Guardar. Durante uma indisponibilidade, os conteúdos verificados e aceites podem continuar disponíveis como a última versão válida conhecida, visivelmente assinalada como desatualizada.
Bloqueiam por nome de anfitrião, pelo que não conseguem remover anúncios próprios, espaços vazios no DOM ou no esquema da página, sobreposições do navegador, janelas emergentes criadas por scripts nem janelas nativas das aplicações.
⛔ Recusa
Proteções nas ferramentas de um agente
@@ -366,7 +367,7 @@
Um monitor que não tem de monitorizar
Fica no seu Mac
Um único ficheiro SQLite local. Sem conta, sem sincronização na nuvem, sem telemetria.
Metadados por predefinição
Nomes de anfitrião, portas e contagens de bytes. Desencriptar HTTPS é um modo separado que tem de ativar, e fica tudo no seu Mac.
Filtrado no núcleo
A captura só deixa passar as respostas de DNS e os ClientHello de TLS. Todo o resto é descartado antes de o Flowlight o ver.
-
Consultas sob o seu controlo
Saber quem é o proprietário de um endereço envia à Team Cymru apenas IPs públicos sem nome de anfitrião, e desativa-se num clique. A procura diária de atualizações só pergunta ao GitHub pela versão mais recente e também pode ser desativada.
+
Consultas sob o seu controlo
Saber quem é o proprietário de um endereço envia à Team Cymru apenas IPs públicos sem nome de anfitrião. As verificações de versões e de pacotes de regras assinados enviam pedidos HTTPS normais, sem tráfego nem definições dos pacotes. Cada uma tem o seu próprio interruptor.
Um pedido HTTPS normal pela versão mais recente; o GitHub vê o seu endereço IP e o agente de utilizador Flowlight/<version>
Na abertura e uma vez por dia, a partir da 0.1.2. Interruptor para desativar em Definições › Geral
Transferência da atualização
github.com
A imagem de disco e o seu ficheiro de soma de verificação
Só quando clica em Transferir e abrir
+
Atualização oficial do pacote de regras
flowlight.xinbetween.com
Um pedido HTTPS padrão ao feed oficial fixo. O servidor vê o seu endereço IP, o agente do utilizador Flowlight/<version> e os validadores condicionais de cache; não recebe tráfego, definições dos pacotes nem qualquer identificador do dispositivo
Após o arranque, quando for necessário, e depois, no máximo, uma vez por dia enquanto funcionar normalmente. Ativa por predefinição; opção para desativar e Procurar agora manualmente em Regras › Pacotes
DNS inverso
O resolvedor de DNS que tem configurado
Uma consulta do nome registado de um endereço IP, quando não foi visto nenhum nome de anfitrião
Conforme necessário, no modo de captura por amostrador, que é a predefinição até a extensão de rede estar a correr. Sem interruptor para desligar: sem isto, o amostrador não consegue dar nome à maioria das ligações. A extensão de rede dá-lhes nome a partir do próprio tráfego e não faz esta consulta
Consulta do proprietário da rede
Team Cymru, por DNS
Endereços IP públicos sem nome de anfitrião conhecido. Os endereços privados e reservados nunca saem do seu Mac
Ativada por predefinição. Interruptor para desativar em Captura › Identificar os proprietários da rede
Perguntar com um modelo alojado
O fornecedor que escolher: Anthropic, OpenAI, Google Gemini ou um endpoint compatível
A sua pergunta e os resultados devolvidos pelas consultas de leitura do Flowlight escolhidas pelo modelo. A base de dados de tráfego em si não é enviada
Só quando escolhe um fornecedor alojado e submete uma pergunta. O ecrã Perguntar mostra os pedidos transmitidos
Uma regra que recusa ligações é levada a cabo pela extensão de rede, no caminho, antes de a ligação ser feita. Uma regra que nomeia um URL é
- levada a cabo pelo proxy de inspeção, que responde ao pedido com um estado que a app consegue ler. São as duas únicas partes do Flowlight que
- agem em vez de relatar — o amostrador nettop não consegue recusar nada, por isso num Mac que capta com o amostrador nenhuma regra é aplicada, e
- o Flowlight di-lo em vez de oferecer um interruptor que não faz nada.
+
Uma regra que recusa ligações é normalmente levada a cabo pela extensão de rede, no caminho, antes de a ligação ser feita. Para o tráfego
+ encaminhado pela inspeção HTTPS, o proxy local aplica as regras de destino e os pacotes geridos ativos ao cliente original antes de abrir a
+ ligação ao servidor de origem; uma regra que nomeia um URL também é aplicada ali, depois da desencriptação, com um estado que a app consegue ler.
+ São as duas únicas partes do Flowlight que agem em vez de relatar — o amostrador nettop não consegue recusar nada, por isso num Mac que capta com
+ o amostrador nenhuma regra é aplicada, e o Flowlight di-lo em vez de oferecer um interruptor que não faz nada.
Continua a não ser impedir. Um agente que consiga executar uma shell pode fazer à mão o que a ferramenta recusada teria feito. Uma recusa
que pode desfazer num clique é uma recusa por onde a tentativa seguinte de um agente pode passar. O tráfego local, o DNS, os serviços da
Apple e as ligações do próprio Flowlight nunca são recusados, porque um Mac bloqueado é um resultado pior do que um agente bloqueado. E a
aplicação efetiva caduca uns segundos depois de o Flowlight deixar de correr: uma recusa que ninguém consegue ver é pior do que nenhuma.
-
A inspeção e a recusa não se combinam. O tráfego encaminhado pelo próprio proxy do Flowlight sai do Mac como tráfego do
- Flowlight, e o Flowlight nunca se recusa a si mesmo — por isso uma app cujos pedidos está a ler é uma app cujas ligações as regras já não
- travam. Ligar a inspeção para ver mais custa-lhe a aplicação das regras, e até agora nada no ecrã o dizia.
+
A inspeção preserva a recusa por nome de anfitrião, com um limite. O tráfego encaminhado pelo proxy do Flowlight sai do Mac como
+ tráfego isento do Flowlight, por isso o proxy decide primeiro as regras de destino comuns e os pacotes geridos ativos com base na identidade
+ original da app. Consegue fazê-lo mesmo em túneis com certificado fixado ou nunca decifrados, porque CONNECT indica o anfitrião. As listas de
+ permissões dos agentes continuam a ser uma decisão da Extensão de rede e não se aplicam a esse trajeto pelo proxy até ao servidor de origem; o
+ tráfego sem um proprietário fiável ou sem nome de anfitrião é permitido em vez de ser recusado sem que ninguém o veja.
O que o próprio Flowlight guarda
Metadados de tráfego numa base de dados SQLite local, com uma retenção publicada. Com a inspeção HTTPS ligada, guarda também os corpos dos
pedidos e das respostas durante três dias — a coisa mais sensível que chega a manter. Os cabeçalhos de credenciais são ocultados por nome e
por palavra, o que é uma heurística e não uma garantia; um cabeçalho que leve um segredo sob um nome que nada reconhece pode ficar
registado.
-
A base de dados de tráfego nunca é enviada. Há, ainda assim, três coisas mais pequenas que saem do Mac sem lhe serem pedidas,
- todas nomeadas na página de privacidade: a procura de atualizações, que pede ao GitHub a versão mais
- recente no arranque e uma vez por dia; a consulta do proprietário da rede, que pergunta ao Team Cymru por endereços públicos sem
- nome de anfitrião; e, enquanto o Flowlight lê contadores em vez de correr a sua extensão, uma consulta de DNS inverso dos endereços
- para os quais não viu nome. As duas primeiras têm interruptores para desligar. A terceira não tem, porque no amostrador é quase
- tudo aquilo que dá um nome a uma ligação — vai para o resolvedor de DNS que o Mac já usa e para quando a extensão assume e passa a
- nomear as ligações a partir do próprio tráfego. Perguntar com um modelo alojado envia muito mais do que qualquer uma delas, e é a
- única coisa que fica desligada até a configurar.
+
A base de dados de tráfego nunca é enviada. A página de privacidade lista cada pedido externo: verificações de versão e de pacotes de regras assinados, consulta opcional do proprietário da rede e DNS inverso com o amostrador. Os três primeiros têm interruptores; o DNS inverso não, porque sem ele o amostrador não conseguiria nomear a maioria das ligações. Um modelo alojado envia muito mais e fica desligado até o configurar.
Atualizações
As versões são assinadas com um Developer ID e notarizadas. O atualizador exige uma soma de verificação publicada e recusa uma
transferência sem ela; depois verifica que a app transferida está assinada pela mesma equipa que a cópia em execução antes de a instalar. Uma
atualização assinada por outra pessoa é recusada mesmo que no resto seja válida.
+
Os pacotes de regras oficiais usam uma assinatura distinta e limitada a esta finalidade e uma única fonte HTTPS fixa. A aplicação mantém separadamente um marcador da sequência mais alta, volta a verificar no arranque os bytes exatos guardados em cache, rejeita regressões e publicações contraditórias e nunca trata a assinatura do editor como autorização para aplicar conteúdos alterados. Os pacotes novos ou alterados exigem a revisão explícita do conteúdo exato e Guardar; os conteúdos desatualizados já aceites são assinalados como a última versão válida conhecida, enquanto a revogação da confiança ou bytes corrompidos fazem com que o conteúdo seja recusado por segurança.
Comunicar uma vulnerabilidade
Use a comunicação privada de vulnerabilidades do GitHub, ou envie um email
diff --git a/site/pages/releases.html b/site/pages/releases.html
index 49aa71ff..87a9532f 100644
--- a/site/pages/releases.html
+++ b/site/pages/releases.html
@@ -13,7 +13,28 @@
What's new
-
0.15.3
Latest
+
0.15.4
Latest
+
+
Consume verified official rule-pack updates. Flowlight checks its one fixed HTTPS feed with conditional
+ requests, verifies publisher signatures and compatibility before persistence, and keeps exact last-known-good bytes plus
+ an independent anti-rollback watermark.
+
Keep every policy change consentful. New packs stay off. Changed versions or destinations immediately leave
+ enforcement while preserving scope, selected apps, exceptions and history; explicit review and Save of the exact new content
+ restores consent, and a refresh racing an open editor makes its old Save stale.
+
Expose trust and failure state without overclaiming. Rules › Packs now shows automatic-refresh controls,
+ verification status, sequence, source, signer, timestamps, bundled-versus-downloaded provenance, stale last-known-good, and
+ independent fetch/apply failures. Refresh sends no traffic, pack settings or device identifier.
+
Fail closed at startup and on the wire. Capture waits for catalog verification plus saved exceptions;
+ redirects, MIME, size, timeout, rollback, equivocation, revoked trust, corrupt cache and failed database commits cannot publish
+ unseen definitions or replace the active snapshot.
+
Keep managed packs enforcing during HTTPS inspection. Before the local proxy opens a CONNECT tunnel or
+ plaintext origin connection, it applies the extension-acknowledged pack snapshot to the original app identity. A refusal is
+ returned only after its activity record commits; failed persistence allows the connection instead of blocking invisibly.
+
+
+
+
+
0.15.3
Publish official rule packs as signed data. Flowlight now defines a purpose-scoped P-256
signature contract for its official managed-pack catalog, with the public verification key included in the
diff --git a/site/pages/threat-model.html b/site/pages/threat-model.html
index 74d3ad73..d42ef6c5 100644
--- a/site/pages/threat-model.html
+++ b/site/pages/threat-model.html
@@ -86,34 +86,41 @@
What inspection misses
per app.
What blocking is, and isn't
-
A rule that refuses a connection is carried out by the Network Extension, in the path, before the connection is made. A rule
- that names a URL is carried out by the inspection proxy instead, which answers the request with a status the app can read.
- Those are the only two parts of Flowlight that act rather than report — the nettop sampler can refuse nothing at all, so on a
- Mac running the sampler no rule is enforced, and Flowlight says so rather than offering a switch that does nothing.
+
A rule that refuses a connection is normally carried out by the Network Extension, in the path, before the connection is made.
+ For traffic routed through HTTPS inspection, the local proxy applies destination rules and enabled managed packs against the
+ original client before it opens the upstream connection; a rule that names a URL is also carried out there, after decryption,
+ with a status the app can read. Those are the only two parts of Flowlight that act rather than report — the nettop sampler can
+ refuse nothing at all, so on a Mac running the sampler no rule is enforced, and Flowlight says so rather than offering a switch
+ that does nothing.
It is still not prevention. An agent that can run a shell can do by hand what a refused tool would have done. A refusal you
can undo in one click is a refusal an agent's next attempt may walk through. Local traffic, DNS, Apple's own services and
Flowlight's own connections are never refused, because a blocked Mac is a worse outcome than a blocked agent. And enforcement
lapses a few seconds after Flowlight stops running: a refusal nobody can see is worse than none.
-
Inspection and refusal do not combine. Traffic routed through Flowlight's own proxy leaves the Mac as
- Flowlight's traffic, and Flowlight never refuses itself — so an app whose requests you are reading is an app whose connections
- rules no longer stop. Turning inspection on to see more costs you enforcement, and nothing on screen previously said so.
+
Inspection preserves hostname refusal, with a boundary. Traffic routed through Flowlight's proxy leaves the
+ Mac as exempt Flowlight traffic, so the proxy decides ordinary destination rules and enabled managed packs first, using the
+ original app identity. It can do this even for pinned or never-decrypted tunnels because CONNECT names the host. Agent allowlists
+ remain a Network Extension decision and do not apply to that proxied upstream leg; traffic with no trustworthy owner or no
+ hostname fails open rather than being refused invisibly.
What Flowlight itself holds
Traffic metadata in a local SQLite database, with published retention. With HTTPS inspection on it also holds request and
response bodies for three days — the most sensitive thing it ever keeps. Credential headers are redacted by name and by word,
which is a heuristic and not a guarantee; a header carrying a secret under a name nothing recognises can be recorded.
-
The traffic database is never uploaded. Three smaller things do leave the Mac without being asked for, all of them named on
- the privacy page: the update check, which asks GitHub for the latest release on launch and
- daily; the network-owner lookup, which asks Team Cymru about public addresses that have no hostname; and, while Flowlight is
- reading counters instead of running its extension, a reverse-DNS lookup of addresses it saw no name for. The first two have
- off switches. The third does not, because on the sampler it is most of how a connection gets a name at all — it goes to the
- resolver the Mac already uses, and it stops once the extension takes over and names connections from the traffic itself.
- Ask with a hosted model sends far more than any of them, and is the one thing that stays off until you configure it.
+
The traffic database is never uploaded. Four smaller things do leave the Mac without being asked for, all of them named on
+ the privacy page: the release update check; the fixed official rule-pack feed, which receives
+ no traffic or pack settings; the network-owner lookup, which asks Team Cymru about public addresses with no hostname; and,
+ while Flowlight is reading counters instead of running its extension, reverse DNS through the Mac's configured resolver.
+ The first three have off switches. Reverse DNS does not, because on the sampler it is most of how a connection gets a name;
+ it stops once the extension takes over. Ask with a hosted model sends far more than any of them, and stays off until configured.
Updates
Releases are signed with a Developer ID and notarized. The updater requires a published checksum and refuses a download
without one, then verifies that the downloaded app is signed by the same team as the running copy before installing it. An
update signed by somebody else is refused even if it is otherwise valid.
+
Official rule packs use a separate purpose-scoped P-256 signature and one compiled HTTPS source. The app keeps an independent
+ highest-sequence watermark, reverifies exact cached bytes at launch, rejects rollback and equivocation, and never treats a
+ publisher signature as permission to enforce changed content. New or changed packs require explicit exact-content review and
+ Save; stale accepted content is labeled last-known-good, while revoked trust or corrupt bytes fail closed.
Reporting a vulnerability
Use GitHub's private vulnerability reporting, or email
diff --git a/site/pages/zh-Hans/docs.html b/site/pages/zh-Hans/docs.html
index f1f6791f..e39d0f16 100644
--- a/site/pages/zh-Hans/docs.html
+++ b/site/pages/zh-Hans/docs.html
@@ -346,6 +346,11 @@