Files
esh-pfi-infrastructure/docs
vh 931bac8f68 docs(matrix): current state, upgrade procedure, alias convention, push findings
Synapse v1.120.0 -> v1.159.0 and Element-web v1.11.80 -> v1.12.27 (2026-09-01).
The existing build steps date from the AIPA era and are now marked as provenance
rather than as instructions.

Records what only existed in a session transcript:

- Schema migrations are one-way; rollback is restore-from-dump. Pre-upgrade
  pg_dump procedure, with a pg_restore --list verification step.
- Why the appservice user namespace is now exclusive: false. exclusive governs
  who ELSE may act, not what the appservice may do, so on a closed single-admin
  server it locked out all other account creation to prevent squatting that
  cannot occur. Includes the two things not to do: narrow the regex (orphans 13
  accounts) or rename the id (Synapse keys ownership on it).
- The shared-secret registration HMAC takes no trailing null after notadmin.
- Room alias convention #<agent>-<purpose>, operator-ratified, with its cost
  accepted deliberately and its rationale stated as room-identity-carries-tier
  rather than push-payload-carries-room-name.
- Push reality: the pusher is event_id_only, so the notification is assembled
  on-device by Element X's service extension. Records the resulting
  server-invisible failure mode when the phone cannot reach the homeserver.
- QR sign-in requires Matrix Authentication Service and why it is deferred.

Ops ownership recorded: worldtree-dev writes the bridge, infra-ops operates
this instance.
2026-09-01 11:16:07 -07:00
..

docs/

Navigation map for the documentation tree. New session? Read orientation.md first — it's the narrative overview of the fleet, backup architecture, governing principles, and gotchas, and it points at everything else.

Tree

docs/
├── orientation.md            # start here — fleet overview + where-to-look guide
├── runbooks/                 # ops runbooks (recovery, deployment phases)
│   ├── disaster-recovery.md
│   ├── nh3-prune-ritual.md
│   └── pbs-deployment.md
└── pfi/                      # PFI-specific reference (services, models, VMs)
    ├── docker-stack.md
    ├── model-list.md
    ├── proxmox-vms.md
    ├── recommended-model-settings.md
    ├── vm-102-matrix-appservice.md
    └── vm-102-matrix-synapse.md

What goes where

  • runbooks/ — step-by-step ops procedures. Anything you'd reach for during an incident or while standing up new infrastructure. Examples: disaster recovery (blast-radius tiers + restoration steps), PBS deployment (9-phase rollout). New runbook → new file here.
  • pfi/ — PFI-specific reference material that's too narrow for the top-level CLAUDE.md but doesn't change incident response. AI model inventory, recommended inference settings, Matrix bridge config, Proxmox VM map. New stable reference → new file here.
  • Top-level (docs/orientation.md, docs/README.md) — narrative guides about the workspace itself, not about specific infra.

Cross-references

  • Fleet topology + servers table: top-level CLAUDE.md.
  • Open work + recent milestones: top-level STATUS.md.
  • Durable cross-session facts: ~/.claude/projects/-home-lkraven-development-eshpfi-management/memory/.

Conventions

  • Markdown, GitHub-flavored. CommonMark renders fine in most viewers.
  • File names are lowercase-kebab-case, descriptive. No dates in filenames — git history covers that.
  • One topic per file. If a file grows past ~500 lines, look for a natural split before adding more.
  • No checked-in binaries or checksums. Build/release artifacts belong in a build pipeline or tools/, not docs/.