Status deploy follow-ups: milestones upload line + SSH ledger entry (#1095)
* deploy+status: reconcile the box's milestones upload line; SSH ledger entry The box's running status-publish.sh carried a hand-added milestones.html upload line the repo never got — folded back so repo ⊇ box. Plus the why-entry for this session's page-staging SSH window. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * docs: status page scp list gains the funding trio + milestones; .new/mv note Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> ---------
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
3 files changed,
+15
−1
deploy/status-publish.sh+4 −0docs/status.md+4 −1web/status/ssh/2026-07-18-investing-status-pages.json+7 −0
diff --git a/deploy/status-publish.sh b/deploy/status-publish.sh| index 0d2bdfc..488efd9 100755 |
| --- a/deploy/status-publish.sh |
| +++ b/deploy/status-publish.sh |
| @@ -1253,6 +1253,10 @@ publish() { |
| # a contributor accrues + syncs it straight to the bucket — far too large |
| # for a 5-minute republish (docs/status.md § The prompt registry). |
| [ -f "$PAGES_DIR/prompts.html" ] && upload "$PAGES_DIR/prompts.html" prompts.html "text/html; charset=utf-8" "max-age=300" |
| + # Milestones: reconciled from the box's running copy 2026-07-18 — the line |
| + # was hand-added there (pre-dating this file's funding additions) and the |
| + # repo owed it back. |
| + [ -f "$PAGES_DIR/milestones.html" ] && upload "$PAGES_DIR/milestones.html" milestones.html "text/html; charset=utf-8" "max-age=300" |
| [ -f "$PAGES_DIR/icon-192.png" ] && upload "$PAGES_DIR/icon-192.png" icon-192.png "image/png" "max-age=86400" |
| else |
| echo "warning: $PAGES_DIR missing — JSONs published, pages skipped (copy web/status/* there)" >&2 |
diff --git a/docs/status.md b/docs/status.md| index 9e237a5..c28ee80 100644 |
| --- a/docs/status.md |
| +++ b/docs/status.md |
| @@ -684,9 +684,12 @@ without touching the box, S3, or the network — no `:22` probe, no upload. |
| completion key), and `STATUS_DNSIMPLE_TOKEN=…` + `STATUS_DNSIMPLE_ACCOUNT=…` |
| (a DNSimple account API token — read-only use here, never echoed — plus |
| the numeric account id). `chown lchat:lchat`, `chmod 0600`. |
| -3. **Pages on the box**: `scp web/status/{status.css,index.html,books.html,economics.html,economics.json,carbon.html,carbon.json,contributors.html,contributors.json,security.html,security.json,prompts.html,icon-192.png} |
| +3. **Pages on the box**: `scp web/status/{status.css,index.html,books.html,economics.html,economics.json,funding.html,funding.json,waterfall.js,carbon.html,carbon.json,contributors.html,contributors.json,security.html,security.json,prompts.html,milestones.html,icon-192.png} |
| root@<box>:/opt/lchat/status-pages/`. `status.css` is the shared stylesheet |
| every page links (uploaded before the pages by the publish script). |
| + Post-hardening note: the dir is group-writable for `lchat-operators`, but |
| + the *files* in it aren't — replace by scp-ing to `<name>.new` and `mv`-ing |
| + over (directory write allows the rename). |
| 4. **Install the timer**: `scp deploy/status-publish.sh root@<box>:/opt/lchat/` |
| then `ssh root@<box> /opt/lchat/status-publish.sh install`. The unit runs |
| as the `lchat` user (least privilege: registry + cloud env are lchat-owned; |
diff --git a/web/status/ssh/2026-07-18-investing-status-pages.json b/web/status/ssh/2026-07-18-investing-status-pages.json| new file mode 100644 |
| index 0000000..543a2cb |
| --- /dev/null |
| +++ b/web/status/ssh/2026-07-18-investing-status-pages.json |
| @@ -0,0 +1,7 @@ |
| +{ |
| + "date": "2026-07-18", |
| + "operator": "Paul Campbell", |
| + "window": "09:15–09:45 UTC (approx)", |
| + "why": "Investing status-page rollout (Claude session over the operator tunnel): staged the nav-updated status pages plus the new funding.html/funding.json/waterfall.js into /opt/lchat/status-pages (plain scp + rename into the operator-writable dir; no privileged commands), and read the running status-publish.sh to reconcile its hand-added milestones upload line back into the repo. No service restarts, no env changes.", |
| + "refs": ["https://github.com/elevenmessenger/messenger/pull/1081"] |
| +} |