Hoppa till innehållet

Ändringsloggen

Yta

Håller reda på allt som ändras på sidan, så att teamet ser vad som har hänt och när – och så att notiserna har något att läsa.

källa: apps/projekt/src/andringslogguppdaterad:

Ansvar

  • Ta emot en rad för varje ändring – från statusrapporterna, att göra-listan och servern när ett nytt bygge startar – och aldrig skriva om en rad.
  • Visa loggen på /andringar, per dag och senast först, med filter per källa.
  • Ge varje uppgift i att göra-listan sina rader.
  • Hålla isär det som får lämna den låsta ytan: bara rader med publik får visas öppet eller skickas till chatten.
  • Äga startsidans databas: en SQLite-fil vars schema växer i numrerade steg.

Filer

Tabell: Sökväg, Roll
SökvägRoll
databas/databas.tsDatabasen i DATABAS_FIL, som standard data/startsidan.db; i containern /app/data/startsidan.db. Stegen i schemat, user_version, iTransaktion och flytten från ADR-036:s att-gora.db med VACUUM INTO.
databas/databas.test.tsEn ny fil får alla tabeller; en gammal att göra-fil tas över, också med raden kvar i WAL-loggen.
andringslogg/logg.tsKällorna, logga, senaste och historik.
andringslogg/version.tsEn rad när ett nytt bygge startar, känt på .next/BUILD_ID. Bara i produktion; kastar aldrig.
instrumentation.tsSkriver versionen vid start, före notiserna.
app/(projekt)/andringar/page.tsxDen tekniska tidslinjen: filtret per källa och en lista per dag.
statusrapport/server.tsLoggar skapad och rättad som publika rader, borttagen utan länk och utan att vara publik.
attgora/server.tsLoggar ny uppgift, ändrade fält och nytt läge i samma transaktion som ändringen, med kontot i av.
konton/server.tsLoggar nya, stängda och ändrade konton som källan konton, aldrig publika.

API

Tabell: Namn, Signatur, Beskrivning
NamnSignaturBeskrivning
logga(a: { kalla, handling, objekt?, text, href?, publik?, av? }) => voidSkriver en rad med tiden nu. Körs i anroparens transaktion om den har öppnat en.
senaste({ kalla?, antal? }) => Andring[]De senaste raderna, senast först. 200 om inget annat sägs.
historik(kalla, objekt: string[]) => Map<string, Andring[]>Raderna för flera saker från samma källa, senast först per sak.

Kontrakt

Tabell: Fält, Typ, Krav
FältTypKrav
idnumberLöpnummer. Ordningen i loggen.
tidstringISO-tid, satt av servern.
kalla"status" | "att-gora" | "funktioner" | "konton" | "version"Vem som skrev raden.
handling"skapad" | "andrad" | "lage" | "borttagen" | "startad"Vad som hände.
objektstring?Id:t på det som ändrades; för en version byggets BUILD_ID.
textstringEn mening som går att läsa utan sammanhang. Det som ändrades står före kolon, saken efter.
hrefstring?Vägen dit, från roten. Saknas när saken är borta.
publikbooleanFår skickas till teamschatten. I dag bara statusrapporterna.
notisstring?När raden skickades till chatten. Används när notiserna läser loggen.
avstring?Kontot som gjorde ändringen (ADR-039). Saknas för skrivnyckeln, startdatan och versioner. Visas bara för den som är inloggad med ett konto, och står aldrig i text.
  • En ny källa läggs i KALLOR med ett namn och ett kort namn, och skriver sina rader själv där ändringen görs.
  • Ett nytt steg i schemat läggs sist i STEG i databas/databas.ts. Ett gammalt steg ändras aldrig.

Beroenden och beslut

Beslut: ADR-037, ADR-036, ADR-035, ADR-039

Levererar: /andringar, andringslogg/, databas/, Ändringar på uppgifterna i att göra-listan, Ändringslogg under Teknik i huvudmenyn

Kvarstår

  • Notiserna till teamschatten läser inte loggen än; statusrapporterna når fortfarande inte chatten.
  • Ändringar i koden syns bara som en ny version, utan vad som ändrades: commit-ämnena når inte containern.
  • Statusrapporterna ligger kvar i sin JSON-fil, så rapporten och raden skrivs inte i samma transaktion.

15 delar i projektportalen · gemensamma i devportalen: ai-adapter, anthropic, bygge, designsystem, dokploy, dokumentation, gemensamt, tokens, ui