# Build 87 — GitHub remote og Coolify verifikation

**Dato:** 2026-06-05  
**Scope:** `nexus-build-87-remote-coolify`

## Repo-vurdering (monorepo)

| Faktum | Værdi |
|--------|--------|
| Git root | `C:\Users\jtrs\Documents\renninjadk` |
| Monorepo | Ja — **1084** tracked filer uden for `Ninja Nexus/` (inkl. `Renninja-v3/`, `artifacts/`, m.fl.) |
| Nexus-arbejdsgren | `integration/platform-sprint-before-phase1` |
| Monorepo Build 87 HEAD | `c392747` — chore(release): record build 87 Coolify publish evidence |
| Beslutning | **A) `git subtree split -P "Ninja Nexus" -b nexus-export`** — undgår push af Renninja-v3 til `ninja-nexus` |

### Subtree SHA-afvigelse (vigtigt)

Eksport-grenen `nexus-export` har **anden commit-SHA** end monorepo-HEAD for samme indhold:

| Reference | SHA |
|-----------|-----|
| Monorepo HEAD (Build 87 lock) | `c392747a1f9fd869a2af8aca64e47141807bce7b` |
| `nexus-export` / `origin/main` | `67441c13109f15eb5b2042e3ff102a11aa4958a3` |
| Tag `nexus-build-87` | `67441c13109f15eb5b2042e3ff102a11aa4958a3` (split-ækvivalent, ikke `c392747`) |

## GitHub

| Punkt | Status |
|-------|--------|
| `gh` CLI | Ikke installeret i PATH |
| `GITHUB_TOKEN` env | Nej |
| `~/.renninja-secrets/github*` | Nej |
| `~/.renninja-secrets/coolify-api-token.ps1` | **Ja** (indhold ikke logget) |
| Git Credential Manager | Konto `Ninjajago99` |
| Repo | **Oprettet:** [Ninjajago99/ninja-nexus](https://github.com/Ninjajago99/ninja-nexus) (private, "Ninja Nexus platform POC") |
| `origin` | `https://github.com/Ninjajago99/ninja-nexus.git` |

### Push / tag

| Remote ref | SHA (efter push) |
|------------|------------------|
| `main` | `67441c13109f15eb5b2042e3ff102a11aa4958a3` ← fra `nexus-export` |
| `integration/platform-sprint-before-phase1` | samme SHA (spejlet) |
| `nexus-build-87` | samme SHA |

`git ls-remote origin` bekræftet match for ovenstående refs.

**Ikke pushet:** hele monorepo-grenen med Renninja-v3.

## Coolify API (read-only discovery)

Script: `scripts/coolify/verify-nexus-coolify.ps1` (token via `Initialize-CoolifyEnv` / secrets-script).

| Ressource | UUID | Status |
|-----------|------|--------|
| Projekt "Ninja Nexus" | `d38yxbj3hi8pie1mjh5jff7f` | findes |
| `nexus-downloads` | `vh3442no566kew57rzji7qha` | running (matcher `publish-report.json`) |
| `nexus-backend` | `x6vd3qnxkzdx2p5k7h5j40sy` | running |
| `nexus-db` | `qtjb1lwa9g3qk6jt33vi6d1m` | running:healthy |

**Download-kanal:** `latest.json` 200, ZIP SHA256 match — **ikke ændret / ikke re-uploadet**.

**Identity API deployment:** Ingen separat runbook udført i denne opgave; backend findes i Coolify som `nexus-backend`. `/health` og `/connect/token` returnerer **404** på `https://nexus.ninjakernen.info` (routing — downloads-app hoster statisk kanal).

Verify summary: `partial_fail: login` (forventet givet 404 på token-endpoint via public domain).

## HTTP manifest (build 87)

| Check | Resultat |
|-------|----------|
| `GET .../downloads/latest.json` | 200, build **87**, version `0.1.0-identity2` |
| ZIP `sha256` | `9abb6b166b2cd79393d87c0c7526ddada4e4c9e03af4cd288200623d450f9d06` (match ved download i verify-script) |
| `NexusSetup.exe` HEAD | 200, 90082980 bytes |
| Lokal `dist/nexus-laptop-poc/NexusSetup.exe` SHA256 | Match `installerSha256` i latest.json (`4d337872…`) |

## Blockers / næste skridt

1. **Fase 3 / produktion:** Kræver CI/CD, routing af Identity API på public domain, `/health` fix — **ikke klar** som produktions-platform (POC klar til fortsat sprint).
2. **GitHub:** Overvej `gh` CLI til fremtidige releases; dokumenter at Nexus-kode lever via subtree-export.
3. **Monorepo:** Fortsat udvikling i `renninjadk`; sync til `ninja-nexus` via ny subtree split + push.

## Phase 3 ready?

**Nej** — remote repo og tag er på plads; CDN build 87 verificeret; Coolify OK for downloads; Identity/login via public URL fejler (404). Fortsæt Fase 1 POC / platform sprint før Phase 3 gate.
