eleven / messenger Public

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>
Paul Campbell f4e2d767cfee7d9d344e176c985026be6b9c8829 parent bc9b6af
3 files changed, +15 −1
  • deploy/status-publish.sh +4 −0
  • docs/status.md +4 −1
  • web/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"]
+}