docs: record 1.7.30 community hardening and backups
This commit is contained in:
parent
bde3d2484f
commit
d07f8a696d
1 changed files with 21 additions and 6 deletions
27
AGENTS.md
27
AGENTS.md
|
|
@ -1527,10 +1527,11 @@ session with **no other memory of this project**. So:
|
||||||
Owner/`crew.pubkey` = the bot `f978…f0`, admins = `ADMIN_PUBKEYS` + bot. The
|
Owner/`crew.pubkey` = the bot `f978…f0`, admins = `ADMIN_PUBKEYS` + bot. The
|
||||||
page passes `canCreate={false}`: everyone (admins included) uses the normal
|
page passes `canCreate={false}`: everyone (admins included) uses the normal
|
||||||
"Ask to join" flow; the bot auto-approves. After joining, admins still get the
|
"Ask to join" flow; the bot auto-approves. After joining, admins still get the
|
||||||
requests panel as a fallback. Links: `/community` and **`/c`** both redirect
|
requests panel as a fallback. Links: `/community`, **`/c`** and **`/cordn`** all redirect into
|
||||||
into `/#/community` (the old `/c` → Cordn-web shortcut was retired 2026-10-29
|
`/#/community` (the old Cordn-web shortcuts were retired 2026-10-29 because
|
||||||
because Cordn web stalls after NIP-42); `/cordn` remains the raw
|
Cordn web stalls after NIP-42). The raw `cordn1…` reference is still
|
||||||
`https://cordn.net/chat/<cordn1…>` reference for Staircase/Cordn clients.
|
copyable from Advanced for Staircase/Cordn clients; the external open link
|
||||||
|
was removed.
|
||||||
Entry points: nav catalog/burger + About feedback card.
|
Entry points: nav catalog/burger + About feedback card.
|
||||||
- **Join UX (2026-10-29):** community-specific approval copy names the bot or
|
- **Join UX (2026-10-29):** community-specific approval copy names the bot or
|
||||||
admins, an admin pending-request banner links to the room's request panel,
|
admins, an admin pending-request banner links to the room's request panel,
|
||||||
|
|
@ -1554,8 +1555,9 @@ session with **no other memory of this project**. So:
|
||||||
`join_request_take_many`'s `consumed` list (the old bot left approved
|
`join_request_take_many`'s `consumed` list (the old bot left approved
|
||||||
requests in the queue and retried "already in the group" forever), logs
|
requests in the queue and retried "already in the group" forever), logs
|
||||||
pending counts, and stops auto-approval at **250 members** /
|
pending counts, and stops auto-approval at **250 members** /
|
||||||
**5 devices per pubkey** (`COMMUNITY_MAX_MEMBERS`,
|
**5 devices per pubkey**, and **30 approvals/hour**
|
||||||
`COMMUNITY_MAX_DEVICES_PER_PUBKEY`). The bot must be rebuilt with
|
(`COMMUNITY_MAX_MEMBERS`, `COMMUNITY_MAX_DEVICES_PER_PUBKEY`,
|
||||||
|
`COMMUNITY_MAX_APPROVALS_PER_HOUR`). The bot must be rebuilt with
|
||||||
`scripts/build-community-bot.sh` and copied to
|
`scripts/build-community-bot.sh` and copied to
|
||||||
`/opt/skatespots-community/community-bot.cjs` when this file changes —
|
`/opt/skatespots-community/community-bot.cjs` when this file changes —
|
||||||
**`scripts/deploy-community-bot.sh`** does the build, remote backup,
|
**`scripts/deploy-community-bot.sh`** does the build, remote backup,
|
||||||
|
|
@ -1564,6 +1566,13 @@ session with **no other memory of this project**. So:
|
||||||
- **Secrets/backup:** bot key in `~/.config/skatespots/community.env` (600)
|
- **Secrets/backup:** bot key in `~/.config/skatespots/community.env` (600)
|
||||||
and the VPS env; state copy in
|
and the VPS env; state copy in
|
||||||
`~/.config/skatespots/community-state.json` (600). Never commit/print either.
|
`~/.config/skatespots/community-state.json` (600). Never commit/print either.
|
||||||
|
**Daily backup (2026-10-29):** `scripts/backup-community-state.sh` pulls the
|
||||||
|
live state, keeps 30 daily snapshots in `~/.backups/community`, and pushes
|
||||||
|
the directory to restic (tag `community-state`) when
|
||||||
|
`~/.config/skatespots/restic.env` exists. Installed by
|
||||||
|
`scripts/install-community-backup-timer.sh` as user timer
|
||||||
|
`skatespots-community-backup.timer` (04:17, Persistent). `ops-health.sh`
|
||||||
|
reports both the bot service and the timer.
|
||||||
- **Copy:** `communityUi.*` (en/es + all 24; 100%); bot rows are labeled
|
- **Copy:** `communityUi.*` (en/es + all 24; 100%); bot rows are labeled
|
||||||
"Community bot" by pubkey, no profile event required.
|
"Community bot" by pubkey, no profile event required.
|
||||||
- **Cordn native devices/members/benchmark (2026-10-28):** a new device can
|
- **Cordn native devices/members/benchmark (2026-10-28):** a new device can
|
||||||
|
|
@ -2579,6 +2588,12 @@ Rules:
|
||||||
refresh the local 0600 state backup) and `ops-health.sh` now checks the
|
refresh the local 0600 state backup) and `ops-health.sh` now checks the
|
||||||
remote `skatespots-community` service. APK sha256 `c6f82fb5…`, versionCode
|
remote `skatespots-community` service. APK sha256 `c6f82fb5…`, versionCode
|
||||||
10729. Web forced live at `e02f2b4`.
|
10729. Web forced live at `e02f2b4`.
|
||||||
|
- **1.7.30 (2026-10-29):** `/cordn` also redirects to the app; the external
|
||||||
|
Cordn open link is removed (copy-only). Approving a device now asks for
|
||||||
|
confirmation. Corrected the second-device hint (Link device or re-request
|
||||||
|
with the new device) and added the bot’s 30/hour approval brake plus daily
|
||||||
|
30-snapshot local/restic state backups. APK sha256 `51dfe67e…`, versionCode
|
||||||
|
10730. Web forced live at `bde3d2484`.
|
||||||
|
|
||||||
### Relay archive (dataset backup)
|
### Relay archive (dataset backup)
|
||||||
- **Transfer content between keys (`scripts/transfer-content.mjs`, 2026-10-04):**
|
- **Transfer content between keys (`scripts/transfer-content.mjs`, 2026-10-04):**
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue