v1.56.89: restore koh build-publish endpoints on the account-operator-session model (non-/ops paths, so the rebuild's grep gates stay zero). GET /cli-auth (operator-gated; anon→/login?next=/cli-auth) mints a kepr_session operator token + a 5-min one-time code and shows it to paste; POST /api/cli-auth/exchange consumes the code→{session:token}; GET /api/cli-auth/session is 200 when the kepr_session cookie is a live operator session (requireOperatorApi); POST /api/releases/upload (operator-only) ports the recovered upload handler verbatim (multipart repo/version/platform/save_id/notes/binary → disk + build_runs/release_artifacts upsert + synthesizeReleaseNotes). canonCliCode/evictExpiredCliCodes/synthesizeReleaseNotes recovered from the deleted ops.zig. canonCliCode test. Spec gates: zero /ops routes + zero ops_ in server.zig/build.zig. musl ReleaseSafe build exit 0 + zig build test 645 pass / 1 pre-existing team-tier live-PG fail

dev · yesterday · 2026-06-17 · 14.5 MB

session: operator login rebuild · agent: claude-opus-4-8

$ koh steal kepr.uk/kepr@96f1801e9267
·
← e0a7fa64bdc5 b305de9f47d1 →
⇓ download .face