Developed in a separate session; committed here alongside the calendar work
that shares this repository's migration journal.
A person can now see their own Plex link, their Watch Now slots and their watch
history at /profile. The same panel is published in two further forms so that
accounts.sticknife.com on charon can carry it as one section of a wider
sticknife profile, next to the other services' sections.
- watch_history (0024) records what has been played, keyed on the Plex
history id so a re-sync cannot duplicate a row. Partial unique index,
because that id is null for anything entered by hand.
- plex_accounts.is_server_owner (0025) marks the one account whose viewing
the server files under local account 1 rather than under its plex.tv id.
- The embed carries its own layout, origin allowlist and a frame-height
reporter, so the host page can size it without guessing.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
The identity provider's hostname changed. Only AUTHENTIK_ISSUER points at it,
so the live change is one line in .env.local; this commit carries the docs and
the example, which still named the old host.
The issuer string has to match the provider's own discovery document exactly,
trailing slash and all -- a host that answers is not the same as an issuer that
validates -- so the example now says how to check it. AUTH_URL is unrelated and
stays: it is this app's address, not Authentik's.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Split out of the single Ampelos repository. Next.js app, Drizzle schema and
migrations, brand art, planning notes.
What left: scripts/, which was the agent's job library misfiled under web/ and
imported nothing from src/; and deploy/truenas, whose broadcast posts to the
scan listener on :3427 -- an agent script -- so it belongs beside the thing it
talks to.
This repository keeps the schema. The agent speaks raw SQL against the same
tables and holds no copy of it, so a rename here can break it silently where it
used to be one commit. The README says so, and the agent carries a snapshot to
check against.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>