forum trust circle: trust-gated content exchange via subscription graph
This commit is contained in:
commit
4999675ff6
3 changed files with 9 additions and 1 deletions
|
|
@ -185,6 +185,7 @@ This connects over Reticulum and serves the remote instance at `http://localhost
|
||||||
- Desktop-oriented
|
- Desktop-oriented
|
||||||
- JSON-only import
|
- JSON-only import
|
||||||
- Forum threads prune after 30 days by default
|
- Forum threads prune after 30 days by default
|
||||||
|
- Forum discovery is through the subscription graph rather than topic-based blooms
|
||||||
- Best-effort maintenance
|
- Best-effort maintenance
|
||||||
|
|
||||||
## Forum plugin
|
## Forum plugin
|
||||||
|
|
@ -209,6 +210,7 @@ Enable it on the `/style` page under "Forum". A "Forum" link will appear in the
|
||||||
- Auto-discovery can be disabled in the moderation page
|
- Auto-discovery can be disabled in the moderation page
|
||||||
- Threads are auto-pruned after 30 days (configurable, or set to 0 to keep everything)
|
- Threads are auto-pruned after 30 days (configurable, or set to 0 to keep everything)
|
||||||
- Moderation is local: block authors, mute threads, keyword filters, and gossip block lists with peers (auto-block after 3 peer reports)
|
- Moderation is local: block authors, mute threads, keyword filters, and gossip block lists with peers (auto-block after 3 peer reports)
|
||||||
|
- **Trust circle** — Content is gated by a trust graph derived from your TinyWeb subscriptions. Each subscribed peer's forum content (and their transitive trust network) enters your view automatically. Blocking a peer cascades: their downstream trust network is removed from your view.
|
||||||
|
|
||||||
For full feature docs, see the [tinyweb-forum README](https://codeberg.org/tinyweb/tinyweb-forum).
|
For full feature docs, see the [tinyweb-forum README](https://codeberg.org/tinyweb/tinyweb-forum).
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,7 @@ from tinyweb.db import init_db, get_setting, set_setting
|
||||||
from tinyweb.handlers import dispatch_request
|
from tinyweb.handlers import dispatch_request
|
||||||
import tinyweb.handlers as handlers_mod
|
import tinyweb.handlers as handlers_mod
|
||||||
import tinyweb.templates as templates_mod
|
import tinyweb.templates as templates_mod
|
||||||
import tinyweb.gateway
|
import tinyweb.gateway as gateway
|
||||||
from tinyweb.gateway import GatewayState, GatewayHandler
|
from tinyweb.gateway import GatewayState, GatewayHandler
|
||||||
|
|
||||||
IDENTITY_FILE = "tinyweb_identity"
|
IDENTITY_FILE = "tinyweb_identity"
|
||||||
|
|
|
||||||
|
|
@ -270,6 +270,12 @@ def init_db():
|
||||||
db.execute("ALTER TABLE pages ADD COLUMN reticulum_dest TEXT DEFAULT ''")
|
db.execute("ALTER TABLE pages ADD COLUMN reticulum_dest TEXT DEFAULT ''")
|
||||||
db.commit()
|
db.commit()
|
||||||
|
|
||||||
|
# Migrate subscriptions: add forum_enabled column
|
||||||
|
sub_cols = [row[1] for row in db.execute("PRAGMA table_info(subscriptions)").fetchall()]
|
||||||
|
if "forum_enabled" not in sub_cols:
|
||||||
|
db.execute("ALTER TABLE subscriptions ADD COLUMN forum_enabled INTEGER DEFAULT 0")
|
||||||
|
db.commit()
|
||||||
|
|
||||||
# Chunks table for semantic search embeddings
|
# Chunks table for semantic search embeddings
|
||||||
db.execute(
|
db.execute(
|
||||||
"CREATE TABLE IF NOT EXISTS chunks ("
|
"CREATE TABLE IF NOT EXISTS chunks ("
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue