# STATUS — LimeCity standalone hosting (opdateret 2026-09-23)
> Sidst publiceret: 2026-09-25T06:41:48Z · commit 35356d4
> Publicering af denne fil er ejer-gated. Ingen secrets, ingen kundedata (D129 §2).

Branch: `d171-agent-hjerteslag` (pushet). Runtime: Node 24.18.0.
Gates: **3145 server + 462 frontend** (sidste fulde kørsel) · **Go-agent 210 PASS / 0 FAIL / 1 SKIP (23-09)** · 4 vagter grønne.
Prod: limecity.dk (server7) — **D172 + D173 LIVE siden 23-09 16:22**, backend + frontend, health 200.

## 1) Done (commit refs, nyeste)
- **Tjeklistens punkt 6 — fem migrationer på prod** (Franks »ja - opdater limecity.dk«): G002 (`--drop-index`), D172,
  tre D173. Tør visning først, 5/5 exit=0, `migrate status` = up to date, dump taget lige før. **Generalprøve på dev2
  først** (samme værktøj, MySQL som prod). Derefter server + forside udrullet; ingen nye linjer i fejlloggen.
- **Punkt 1 + 5 — gjort af Frank** med `scripts/frank-punkt-1-og-5.sh` (`2b552fa`): den offentlige signeringsnøgle og
  proxy-hemmeligheden står i prods miljø; målt SAT, og nøglen er beviseligt Franks. Den private del har aldrig forladt
  hans Mac. Opstarts-alarmerne for begge er væk.
- **Punkt 10 — dev2's agent er flyttet ud af `private/`** (`166ca94` + `51f79a9`, D173-B). `install-cron.sh` blev angrebet
  af en modstander-agent; fem veje til fejl er lukket (fremmede cron-linjer, symlinks, manipuleret opsætning, gamle
  udgaver, stavemåder), hver med en prøve, der er rød mod det forrige script. **Bevis:** cron-beatet 16:13 kom fra
  `lc-agent/0.5.1` (201), og serveren gemmer nu agentens udgave.
- **Admin-hovedmenuen grupperet og LIVE på limecity.dk 25-09** (`4ba9778`, Franks »ja«): 17 løse links → 5 emner;
  hver rolle ser de samme punkter som før.
- **Punkt 4 + 11 gjort** (`8c22b7f`): inventaret synket af Frank (727/727 med server-id); kvartersbeat-vagten står i
  server7's crontab kl. 05:40 — selvtest GRØN, friskheds-vagten melder `.hb-agent-beat` OK.
- **Tjeklisten er rettet** (`9e0ac0e`): trin 3 manglede at oprette mappen; tilbagerulning kræver `chmod u+x`.

## 2) Blocked (og på hvem)
- **D140 mangler stadig to ting, der ikke er kode.** (a) **En underskrift:** `docs/D140-KONTRAKTDELTA-UDKAST.md` —
  Franks ja først, derefter Kevins; før begge må opgavekøen ikke tændes. (b) **En beslutning om kundedata** (§2 dér).
- **Tjeklistens resterende punkter venter på input:** 2, 8, 12 på det første kundesite · 7 på leverandøraftalerne
  (DPA) · 9 på serveradministratorens måling af ISPProtect-rapporten (kodegabet bygges, når formatet er målt).
- **D145 §7** blokerer WHMCS-sikringen: hvilke af de 8 selv-udløbende er opgivet?

## 3) Next up
- **Apache-linjen (punkt 5)** efterprøves ved første agent på prod: 200 på `/v1/work` i stedet for 401.
- **Bogholder-listen (D152 §5):** kurstabellen er tom · **én** aktiv kunde har debitornummer · ejeren heller ikke.

## 4) Checklist
- **WO1 §8 DONE** (BLOCKED ePay-fuldrun+cancel, MD5) · WO3 §1 DONE · **WO2 §8 DONE** · 3 legal-docs m. låst jur. enhed
  (D12); jurist-gennemgang fravalgt som flip-gate (D53).

## 5) Open hazards (Frankie)
- 🔴 **SITET VISER EN ANDEN PRIS, END PROD OPKRÆVER — ejer-beslutning, ikke rettet.** Forsiden siger `.dk/.com 111,25`
  inkl. moms; prod opkræver **`.com` 198,75** og **`.dk` 123,75**. `.com` er afgjort (D150 §1), `.dk` ikke. Sidekopi
  kræver godkendelse + CLAIMS-linje. **Frankie afgør begge tal.**
- 🔴 **Ét kundedomæne er ude af DNS** (`SERVER_HOLD`), site+mail nede. **9 af 22 `.dk` kan vi ikke forny** — årsagen
  ikke bevist, ledende forklaring er betaler-forholdet. **Ét opslag i selvbetjening.dk-hostmaster.dk.**
- **Tre ÆLDRE pengehuller står, alle med en billig kur:** staff-commit gør ydelsen `active` FØR fakturaen hævdes, og
  fejeren ser kun `pending` ⇒ **en aktiv ydelse, ingen fakturerer** · en spec med 0 kr hævder nøglen alligevel ·
  `alreadyInvoiced` spørger uden tidsgrænse og vetoer tavst en retmæssig faktura.
- **dev2's ssh afviser ofte før login** (`Exceeded MaxStartups`, målt 23-09). Det er ikke en spærring af os; prøv igen
  eller genbrug én forbindelse. `scp` kan ikke genbruge den, så orkestrator-publiceringen kan fejle dér.
- **Codex-kontrollen kunne ikke køres 23-09** (401, ikke logget ind); en modstander-agent tog dens plads.
- **Deploy læser ikke git** — commit + push FØR deploy; `static-dist/` er BYGGET (genbyg i SAMME commit); default-mål
  er STAGING. **P2-ustabiliteten er IKKE afklaret** — sidst set 22-09 som `public.test.ts > rate-limits`.
