# 02 — seeding each app through its own front door, BEFORE any bump
# guest 9202, 2026-09-21T12:24:42Z

## vikunja — seeded via its REST API (/api/v1/register, /login, PUT /projects, PUT /projects/2/tasks)
vikunja version: v2.3.0
TASK 1 'SEED-VIKUNJA-CANARY-9f3c1e-20260921' desc= 'power-cut drill canary'
POSITIVE CONTROL: seed present = True
NEGATIVE CONTROL: absent string present = False

## uptime-kuma — seeded via its own socket.io front door (the same API the browser uses)
# NOTE: uptime-kuma 2.4.0 first boot sits in the SETUP-DATABASE wizard ('Waiting for user action').
# The controller reported the app running + healthy anyway. The wizard was passed through its own
# front door: POST /setup-database {"dbConfig":{"type":"sqlite"}} -> {"ok":true}.
MONITORS: ["SEED-KUMA-CANARY-4a91c7-20260921"]
POSITIVE CONTROL: seed present = true
NEGATIVE CONTROL: absent name present = false
read-back finished

## wishlist — seeded via POST /signup then POST /lists/<id>/create-item
# NOTE: on first boot the image's own 'pnpm prisma db seed' was OOM-Killed at mem_limit 128M,
# so the Role/Group rows were missing and EVERY signup failed with a misleading
# 'User with username or email already exists' (real cause: FOREIGN KEY constraint).
# Repaired by running the image's own seed once (docker update --memory 512m, run seed, back to 128m).
wishlist version banner: 308
list page code=200
POSITIVE CONTROL occurrences of seed name: 2
NEGATIVE CONTROL occurrences of absent name: 0
context: '-[--><!--[-1--><div data-scope="dialog" data-part="title" id="dialog:s11:title" class="truncate text-xl font-bold text-wrap wrap-break-word md:text-2xl"><!---->SEED-WISHLIST-CANARY-7b2d44-20260921<!----></div><!--]--><!--]--> <!--[--><!--[-1--><button data-scope="dialog" data-par'

## glance — no user data
glance has NO user data (catalog app_info declares none; the only persistent state is the
first-boot seeded /app/config/glance.yml). Observable recorded instead:
d9104faa1890d25cd77ed62eb2271da5  /app/config/glance.yml
1
glance HTTP 200 size=7842
POSITIVE CONTROL (ASCII fragment "Kezd" on the page): 4
NEGATIVE CONTROL: 0
