feat: per-connection publish governance — auto, 1-admin, majority, consensus
Per the owner's spec: each social connection gets publishGovernance in its fields — unset = manual publish (today), auto = dispatch on approval, admin1/admin_majority/admin_consensus = a publish-phase chatgov poll (subject draft_publish, its own open-poll slot, no collision with review gates). Dispatch holds until the publish poll passes (E3 pre-dispatch check); auto dispatches on approval. Includes migration 033, the PATCH /connections/:id/publish-governance route (chatgov.manage), and 19+31 new tests. Implementation by the branding-panel process (claude/opus), lint and integration fixes here.
This commit is contained in:
parent
f2eb14956e
commit
b89dea5c93
26 changed files with 1637 additions and 31 deletions
|
|
@ -20,13 +20,17 @@ nginx edge mirrors the tunnel ingress by host:
|
|||
- `app.occupymedia.cc` → `web:3001` (occ-app compose network)
|
||||
- `api.occupymedia.cc` → `api:3000`
|
||||
- `tube.occupymedia.cc` → `100.92.231.98:9000` (occ-tube via Tailscale)
|
||||
- `chat.occupymedia.cc` → `100.117.210.52:6167` (occ-chat conduwuit)
|
||||
- `chat.occupymedia.cc` → `occ-element:80` (client); `/_matrix` → `100.117.210.52:6167` (occ-chat conduwuit)
|
||||
- `ping.occupymedia.cc` → 200 "edge-ok" (activation probe target)
|
||||
- unknown SNI → `ssl_reject_handshake`
|
||||
|
||||
TLS: Let's Encrypt wildcard `*.occupymedia.cc` via dns-01 (no port 80 needed).
|
||||
Renewal: `occ-edge-certbot.timer`, twice daily, reloads nginx.
|
||||
|
||||
Chat's signed-out client uses the Hub auth stylesheet on both ingress paths.
|
||||
See the [Element auth restyle report](../element/AUTH-RESTYLE.md) for verified
|
||||
1.12.30 configuration keys, the config merge patch, and exact deployment steps.
|
||||
|
||||
## Files
|
||||
|
||||
| File | Role |
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue