Dokumenter @-tagging-frontenden i ADR-063/CHANGELOG.md
All checks were successful
Backend-tester / test (push) Successful in 22s
Frontend-tester / test (push) Successful in 20s

Oppdaterer status fra "sendt som V0-prompt, ikke bygget" til
selv-implementert (bruker gikk tom for V0-credits) og
scratch-verifisert i nettleser.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
Erol Haagenrud 2026-08-11 10:16:08 +02:00
parent aaec9c811d
commit 1ca27cbc09
2 changed files with 60 additions and 15 deletions

View file

@ -5991,11 +5991,25 @@ varsel bekreftet skrevet til `notification`-tabellen), ugyldig tag
avvise selve meldingen. Alle 31 backend-tester (23 fra før + 8 nye) avvise selve meldingen. Alle 31 backend-tester (23 fra før + 8 nye)
grønne i samme kjøring. `teecup_db` bekreftet uendret. grønne i samme kjøring. `teecup_db` bekreftet uendret.
**Bevisst utenfor omfang denne runden:** frontend (autocomplete-UI + **Frontend — oppdatering samme dag:** opprinnelig sendt som eget
tag-rendering) sendt som eget V0-prompt, ikke bygget her — se V0-prompt (se over), men bruker gikk tom for V0-credits og ba Claude
CHANGELOG.md. Org-turneringenes tilsvarende "Banter Board" implementere promptet selv i stedet. `lib/mentions.ts` (ren offset-/
(`message`/`message_comment`) fikk IKKE samme funksjon — helt separat diff-logikk, 15 enhetstester) + `components/mention-input.tsx`
system, ikke nevnt i den opprinnelige forespørselen. (`MentionTextarea`-autocomplete + `TaggedText`-rendring), koblet inn i
`round-messages.tsx` (innlegg), `post-engagement.tsx` (kommentarer —
delt av flere meldingssystemer, `roundId`/`tags` gjort valgfrie for å
ikke bryte de org-scopede callerne) og `feed.tsx` (aggregert
`/my-feed`-visning — der backendens `GET /feed` manglet `tags` ble
også lagt til her, oppdaget under dette arbeidet). Scratch-verifisert
i nettleser (autocomplete, tagging i innlegg og kommentar, rendring som
lenke både i rundevisning og i feed, varsel bekreftet, personvern-
scoping bekreftet i UI også, lys+mørk). `tsc --noEmit` rent, 45/45
vitest grønt. Se CHANGELOG.md.
Org-turneringenes tilsvarende "Banter Board" (`message`/
`message_comment`) fikk IKKE samme funksjon — helt separat system,
ikke nevnt i den opprinnelige forespørselen, fortsatt bevisst utenfor
omfang.
Disse må avklares før eller under de relevante fasene: Disse må avklares før eller under de relevante fasene:

View file

@ -10440,9 +10440,9 @@ Neste steg:
andre `ChoiceRow`-bruken (alle har 3 valg fra før). Browserverifisert andre `ChoiceRow`-bruken (alle har 3 valg fra før). Browserverifisert
lys+mørk. Committet (`17e4793`), ikke deployet ennå. lys+mørk. Committet (`17e4793`), ikke deployet ennå.
72. **@-tagging av medspillere/venner i runde-feeden (backend) — 72. **@-tagging av medspillere/venner i runde-feeden — 2026-08-11, se
2026-08-11, se ADR-063.** Bakt inn i FEATURE_BACKLOG.md som egen sak ADR-063.** Bakt inn i FEATURE_BACKLOG.md som egen sak under
under ADR-062, bruker ba om å sette den i gang. ADR-062, bruker ba om å sette den i gang.
Migrasjon 064: `round_message_tag`/`round_message_comment_tag` (to Migrasjon 064: `round_message_tag`/`round_message_comment_tag` (to
parallelle tabeller, samme mønster som `round_message_reaction` vs. parallelle tabeller, samme mønster som `round_message_reaction` vs.
@ -10461,11 +10461,42 @@ Neste steg:
tag + varsel bekreftet, tre typer ugyldig-tag-forkastelse. Alle 31 tag + varsel bekreftet, tre typer ugyldig-tag-forkastelse. Alle 31
backend-tester grønne. `teecup_db` uendret. backend-tester grønne. `teecup_db` uendret.
**Bevisst utenfor omfang:** frontend (autocomplete + tag-rendering) **Frontend — samme dag, egen-implementert.** Frontend var
sendt som eget V0-prompt, ikke bygget i denne runden. Org- opprinnelig sendt som eget V0-prompt, men bruker gikk tom for
turneringenes "Banter Board" (`message`/`message_comment`) fikk IKKE V0-credits ("Kan du gi promptet til deg selv, og gjøre det beste
samme funksjon — separat system. ut av det?") — eksplisitt, avgrenset unntak fra prosjektets
stående "frontend via V0"-konvensjon for akkurat denne funksjonen.
`frontend/lib/mentions.ts` (ren offset-/diff-logikk: @-deteksjon,
innsetting, diff-justering av eksisterende tags ved redigering,
tekst-segmentering — 15 enhetstester) +
`frontend/components/mention-input.tsx` (`MentionTextarea` med
debouncet autocomplete-dropdown + tastaturnavigasjon, `TaggedText`
som rendrer tagger som lenker til `/my-friends/{id}`). Koblet inn i
`round-messages.tsx` (innlegg), `post-engagement.tsx` (kommentarer
— delt komponent mellom FIRE meldingssystemer, `roundId`/`tags`
gjort valgfrie for å ikke bryte `feed.tsx`/`public-tournament.tsx`/
`team-chat.tsx`, hvorav de to siste bevisst IKKE får tagging) og
`feed.tsx` (aggregert `/my-feed`-visning). Fant og rettet et hull
underveis: backendens `GET /feed` manglet `tags` i `FeedEntryOut`
kun `list_round_messages`/kommentar-endepunktene hadde det fra
før, selv om `/my-feed` var nettopp det opprinnelige eksempelet
("Fredrik i farta") som motiverte hele funksjonen.
**Ikke rullet ut ennå** — venter på V0-leveransen for frontend-delen **Verifisert (frontend):** `tsc --noEmit` rent, 45/45 vitest
før migrasjon 064 kjøres mot ekte `teecup_db` (samme rekkefølge- grønt. Full scratch-stack (DB, MinIO, API, frontend — ekte
prinsipp som alltid: migrasjon før kode som er avhengig av den). produksjonsbuild). To ekte testbrukere (venn-relasjon + felles
runde) browserverifisert: autocomplete-dropdown i både innleggs-
og kommentar-komposereren, tag rendret som lenke i selve
rundevisningen OG i aggregert feed, varsel bekreftet opprettet
(`GET /notifications`), personvern-scoping bekreftet i selve UI-et
(skriver "@" alene → kun faktisk relasjon tilbys, aldri seg selv
eller en fremmed), lys+mørk modus. Ingen konsollfeil. Scratch-
miljøet ryddet fullstendig opp, `teecup_db` bekreftet uendret før
og etter.
Org-turneringenes "Banter Board" (`message`/`message_comment`)
fikk IKKE samme funksjon — separat system, fortsatt bevisst
utenfor omfang.
**Ikke rullet ut ennå** — migrasjon 064 er ikke kjørt mot ekte
`teecup_db`. Se deploy-plan under.