v0.1.58ALPHA
CHANGELOG

Ändringslogg

Senaste versionen visas alltid överst. Installerade patchars historik läses direkt från uppdateringssystemet.

v0.1.58

  • Ändrat: Om samma AI-klubb återkommer till en spelare efter minst 12 timmar höjs det befintliga pending-budet i stället för att ett nytt bud skapas.
  • Ändrat: AI-bud använder en PostgreSQL advisory lock per klubb/spelare för att undvika samtidiga dubbletter även om två worker-körningar skulle överlappa.
  • Fixat: Samma AI-klubb kan inte längre skapa flera samtidiga pending-bud på samma spelare och säljande klubb.
  • Fixat: Befintliga dubbla AI-bud städas automatiskt så endast det högsta aktiva budet behålls.
  • Fixat: Avbrutna bud försvinner från Inkomna transferbud efter 15 minuter utan att transferhistoriken raderas.

v0.1.57

  • Tillagt: Automatisk felkodsförklaring: Next.js digest registreras i persistent storage och felrutan slår upp orsaken direkt.
  • Tillagt: Admin/superadmin kan se sanerade tekniska feldetaljer när autentisering är tillgänglig.
  • Tillagt: Bekräftelse när admin manuellt startar en liga före planerat startdatum.
  • Ändrat: Transfercenter och spelarsidor använder klubbens liga när transferstatus och nästa fönster beräknas.
  • Ändrat: Patchen bygger/startar endast web och worker via v0.1.56:s selektiva updater.
  • Fixat: Transfer öppet fram till ligastart stängs inte längre bara för att kalenderdatumet nått startdatumet; fönstret är öppet tills säsongen faktiskt startar.
  • Fixat: Manuell ligastart kan göras före planerat datum och räknas som faktisk start för schema, kalender och transferfönster.
  • Fixat: AI-transfer/free-agent använder samma faktiska försäsongsstatus som Transfercenter.
  • Fixat: Kalendern visar planerad ligastart endast före start och faktisk starttid efter start.

v0.1.56

  • Tillagt: Ligastart och valbart försäsongs-transferfönster i ligaadministration och World Generator.
  • Tillagt: Relationstyrd ligapyramid med gröna uppflyttnings- och röda nedflyttningspilar.
  • Tillagt: Selektiva build_targets/restart_targets i patchmanifestet.
  • Ändrat: AI-transferaktivitet skalar med dagar kvar till ligastart och verkligt truppbehov, med ekonomi/lönetak som begränsning.
  • Ändrat: Nygenererade serier sprids över olika matchdagar och tider.
  • Ändrat: Klubbkalendern visar fullständiga klubbnamn.
  • Ändrat: Ungdomsnamn skyddas mot extrema efternamnskluster per klubb.
  • Ändrat: Docker dependency-cache blir versionsneutral och DEV healthcheck snabbare.
  • Notering: v0.1.56 installeras av den gamla v0.1.55-updatern. Selektiv build/restart används från efterföljande patchar.

v0.1.55

  • Fixat: Förhindrar extrema efternamnskluster i samma nygenererade klubbtrupp.
  • Fixat: World Generator och divisionspopulering använder nu samma klubbvisa efternamnsgräns.
  • Fixat: Svensk generering använder inbyggd full namnlista om fm_name_bank är ofullständig.
  • Notering: Ingen databasmigration. Befintliga spelare eller ligor ändras inte av patchinstallationen.

v0.1.54

  • Tillagt: Dropdown för att välja vilken serie som redigeras.
  • Tillagt: Visuella kopplingspilar mellan faktiska parent/child-serier i World Generator.
  • Ändrat: Serieöversikten är nu informationsöversikt i stället för primär navigering.
  • Ändrat: World Generator använder sparade template-ID:n för att rita ligapyramiden.
  • Fixat: Förhindrar att gamla formulärvärden från föregående serie ligger kvar när man byter serie.
  • Fixat: Serieuppdatering verifierar rätt liga innan namn, nivå och matchdagar sparas.
  • Fixat: Generatorn validerar parent/child-kopplingar innan fm_division_links skapas.
  • Notering: Ingen databasmigration. Befintliga speldata ändras inte av patchinstallationen.
  • Notering: Gamla ogiltiga template-kopplingar visas som varning och blockerar ny världsgenerering tills de rättats.

v0.1.53 — 2026-09-18

  • Ändrat: Veckobeloppet för befintliga sponsoravtal höjs 75 procent.
  • Ändrat: Tillgängliga sponsorbud höjs 75 procent i veckobelopp.
  • Ändrat: Framtida sponsorbud genereras 75 procent högre än i v0.1.52.
  • Ändrat: World Generator och kompletteringsgeneratorn ger nya klubbar 75 procent högre veckosponsor.
  • Notering: Sponsorernas vinstbonus lämnas på v0.1.52-nivå.
  • Notering: Matchsponsor, löner, publik, biljettpris, kiosk, merch, bar och matchdagskostnader ändras inte.
  • Notering: Migrationen säkerhetskopierar tidigare veckobelopp så rollback kan återställa dem exakt.

v0.1.52

  • Ändrat: Kioskens grundkonsumtion höjs från €1,80 till €3,40 per åskådare före arenamodul och variation.
  • Ändrat: Merchandise höjs från €1,10 till €1,80 per åskådare före klubbshop, stjärnfaktor och variation.
  • Ändrat: Sponsorernas veckobelopp höjs 50 procent för befintliga avtal, tillgängliga erbjudanden och framtida erbjudanden.
  • Ändrat: Sponsorernas vinstbonus höjs cirka 80 procent i euro; nya erbjudanden använder 30 procent av det nya veckobeloppet.
  • Ändrat: Matchsponsorernas engångsbelopp höjs 50 procent, även för redan skapade men ännu obetalda erbjudanden.
  • Notering: Löner, biljettpris, publikmodell, barintäkt och matchdagskostnader ändras inte.
  • Notering: Migrationen sparar tidigare inställningar och sponsorbelopp så rollback kan återställa dem.

v0.1.51

  • Tillagt: Scoutuppdrag där en manager med aktiv Scout kan ange position, ålder, styrka, potential, ekonomi, nationalitet och tillgänglighet.
  • Tillagt: Scoutrapporter från aktiva sökorder med osäkerhetsintervall som påverkas av Scoutens kvalitet.
  • Tillagt: Ett supporterbaserat publikgolv som standard är 10 procent och inte är kopplat till arenakapaciteten.
  • Ändrat: Publikmodellen använder separata faktorer för nivå 1–5: 0,60 / 0,45 / 0,32 / 0,23 / 0,16.
  • Ändrat: Matchworkern, biljettförköps-/AI-logik, Arenans Publikanalys och Ekonomichefens biljettprognos använder samma nya publikkalibrering.
  • Ändrat: Scoutuppdrag nås via en egen länk i den gemensamma klubbmenyn.
  • Fixat: Division 2 stryps inte längre av den gamla nivå-4-faktorn 0,12.
  • Fixat: Division 3 använder en riktig nivå-5-faktor i stället för att klämmas till nivå 4.
  • Notering: Arenans befintliga Publikanalys behåller samma UI; endast beräkningsmodellen synkas.
  • Notering: Transporttak, biljettpris, form, supporterbas samt derby/rivalitet fortsätter påverka faktisk publik.
  • Notering: Ansiktssystem, humör och åldrande ingår inte i v0.1.51 och ligger kvar som Future.

v0.1.5 — 2026-09-18

  • Tillagt: Klubbmärkeseditorn kan visa förkortning, hela klubbnamnet på en rad eller hela namnet på två rader med automatisk textanpassning.
  • Tillagt: Ekonomichefens kontor får historiska ekonomiska hemmamatchrapporter med årskortsnärvaro, lösbiljetter, beläggning och biljettintäkt.
  • Tillagt: Matcherna sparar separata snapshots för reserverade årskortsplatser, årskortsinnehavare på plats och matchdagsbiljetter.
  • Ändrat: Klubböversikten använder samma ClubFrame som övriga egna klubbsidor, så Personalrummet, Ekonomi, Arena, rollmenyer och Admin alltid kommer från samma menydefinition.
  • Ändrat: World Generator balanserar faktisk klubbnamnsfamilj per division innan samma prefix/suffix återanvänds, i stället för att bara balansera exakta namnpatterns.
  • Ändrat: Årskort jämförs mot antal hemmamatcher gånger aktuellt biljettpris; rekommenderat pris motsvarar cirka 15–30 procent rabatt och efterfrågan reagerar på priset.
  • Ändrat: Standardgränsen för årskort höjs till 95 procent av arenakapaciteten och årskortsplatser reserveras från den publika biljettkapaciteten.
  • Ändrat: Förköp och matchdagsförsäljning respekterar reserverade årskortsplatser så samma stol inte kan säljas två gånger.
  • Fixat: Den gamla hårdkodade klubbmenyn med Tränarnas kontor tas bort från den egna klubböversikten.
  • Fixat: FC kan inte längre gynnas bara för att flera olika World Generator-patterns producerar FC-klubbar.
  • Notering: Publikanalys på Arena ligger kvar oförändrad i sin befintliga sektion.
  • Notering: Ekonomisk matchrapport och intern post skapas bara om en aktiv Ekonomichef finns vid slutsignal.
  • Notering: Årskortsintäkt bokförs när kortet säljs och räknas inte en gång till som matchdagsintäkt.

v0.1.4 — 2026-09-18

  • Tillagt: Badge Generator v2 med 10 former, 12 mönster, 16 symboler, 12 färgpaletter och 6 kantstilar.
  • Tillagt: Manager → Klubbidentitet får live-editor för form, mönster, symbol, kant, färger och märkestext.
  • Tillagt: Slumpa förslag i klubbmärkeseditorn utan att spara förrän managern bekräftar.
  • Ändrat: World Generator och divisionspopulering använder automatiskt B2-klubbmärken för nya klubbar.
  • Ändrat: Befintliga gamla B1-genererade klubbmärken uppgraderas till B2 av migrationen.
  • Ändrat: Manageranpassade B2-märken bevaras vid senare klubbnamnsändring; uppladdade godkända märken fortsätter ha företräde.
  • Fixat: Gamla generatedFaceReady-CSS-regler tas bort så v0.1.3:s FaceAvatar inte längre visar defaultbild för alla genererade ansikten.
  • Notering: Ingen separat regenereringsknapp behövs: nya världar får B2 automatiskt och migrationen uppgraderar befintliga B1-koder.
  • Notering: Patchen ändrar inga spelar- eller personallöner och innehåller inga andra ekonomiförändringar.

v0.1.3 — 2026-09-18

  • Tillagt: Admin-only patchanteckningsflärp med målversion/Future, markering, kopiering och rensning.
  • Tillagt: Kompakt matchreplay med 1x/2x/4x/8x samt prune-bar replaylagring.
  • Tillagt: Personalavtal med avtalstid, omförhandling, utgång och lönekrav.
  • Ändrat: Matcher använder 60 verkliga sekunder per matchminut: 90 spelminuter tar cirka 90 minuter.
  • Ändrat: Alla kalenderperspektiv visar ett minst två timmar långt matchblock och träning/träningsmatcher skyddas mot överlapp.
  • Ändrat: World Generator balanserar klubbnamnsmönster per division innan samma mönster återanvänds.
  • Ändrat: Personallöner kalibreras om per roll, kvalitet och division; spelarlöner lämnas orörda.
  • Ändrat: Spelarprofilens tabs, värderingsknapp och matchställets namnplacering förbättras.
  • Fixat: FaceAvatar fastnar inte längre på defaultbild efter vanlig Next.js-navigering när genererade lager finns.
  • Fixat: Begär värdering visas på rätt plats och endast med aktiv ekonomichef.
  • Notering: Replay-pruning är förberedd men avstängd som standard. Admin kan aktivera den och välja retention; standardvärdet är 7 dagar.
  • Notering: Pruning raderar bara detaljerad replay/live-data. Resultat, mål, kort, statistik och historiska matchhändelser behålls.
  • Notering: Spelarlöner ändras inte av migrationen.

v0.1.2 — 2026-09-18

  • Tillagt: Reserverade hemorter kopplas till vald World Generator-serie via dropdown och mall-ID i stället för fritext.
  • Tillagt: World Generator kompletterar saknade spelaransikten med den riktiga avatar-katalogen innan genereringen avslutas.
  • Ändrat: Nygenererade seniorspelare får exakt 13 veckors startkontrakt och AI:s automatiska förlängningar använder 13 veckor åt gången.
  • Ändrat: RESET DEV återgår till World Generator med tydlig lyckad-notis efter genomförd återställning.
  • Ändrat: Utfällbara riskåtgärder i Seriesystemet får förstärkt klickyta.
  • Fixat: Changeloggen slår ihop daterad Markdown-version och uppdateringshistorik så samma semantiska version inte visas dubbelt.
  • Fixat: Spelarprofilen fastnar inte på defaultbild när ett genererat ansikte redan finns i webbläsarens cache.
  • Fixat: Spelarprofilen använder klubbens sparade klubbmärke och kortkod så märket matchar klubbsidan.
  • Fixat: Den svenska reservationen Division 2 Söder migreras till den riktiga mallen Division 2 Södra.
  • Notering: Befintliga kontraktslängder kapas inte retroaktivt.
  • Notering: Ansikts-rebuilden ändras inte; v0.1.2 säkrar i stället att ordinarie World Generator inte lämnar nya spelare utan face_code.

v0.1.1 — 2026-09-18

  • Tillagt: Generell serie→ort-reservation i World Generator; två Norrköpingsklubbar seedas för Division 2 Söder.
  • Tillagt: Admin-reset av DEV-spelvärlden med bekräftelsen RESET DEV och giltigt adminlösenord.
  • Tillagt: Permanent borttagning av serie i Seriesystemet med bekräftelsetext och adminlösenord.
  • Ändrat: Ortvalet använder alltid orter med lägst befintligt användningsantal först och befolkningsviktar bara inom den gruppen.
  • Ändrat: Spelarnamn fördelas över minst använda för- och efternamn och exakta fullständiga dubletter undviks.
  • Ändrat: Permanent ligaradering kräver alltid verifierat adminlösenord.
  • Fixat: Gamla lönebaserade spelarönskemål ersätts med aktuell orsak när spelaren inte längre är underbetald; en gammal begäran kan därför inte visa lägre önskad lön än nuvarande lön.
  • Notering: Ingen spelvärldsreset körs automatiskt av patchen. RESET DEV måste startas manuellt i admin och är spärrad till databaser vars namn slutar på _dev.

v0.1.0 — 2026-09-17

  • Tillagt: Gemensam squadGeneration-modul för 22-spelartrupp, startlön och lönetaksnormalisering.
  • Tillagt: Manuellt reset-skript för genererad spelvärld som bevarar konton, social data, inställningar, geografidata, generator-mallar och ekonomiprofiler.
  • Tillagt: DEV → LIVE stöd för semantiska versioner och versionsmigrationer i formatet vMAJOR.MINOR.PATCH.
  • Ändrat: World Generator och divisionspopulering använder exakt samma trupp- och startlönelogik.
  • Ändrat: Legacy-seeden använder Tier-profiler för startbudget, spelarlönetak, arena, biljettpris och spelarlöner i stället för gamla hårdkodade ekonomivärden.
  • Ändrat: Nya klubbar måste få budget och spelarlönetak explicit; databasens gamla 45 000/4 500-defaults tas bort.
  • Ändrat: Nya databaser seedar inte längre de gamla globala economy-inställningarna som ersatts av land/tier-profiler.
  • Fixat: Generatorvägarna kan inte längre skapa olika 20/22-spelartrupper eller glida isär i löneformeln.
  • Fixat: Versionssteget v0.0.112 → v0.1.0 blockeras inte längre av DEV → LIVE:s tidigare v0.0.x-parser.
  • Notering: Reset körs inte automatiskt vid patchinstallation. sql/manual/v0.1.0_reset_generated_world.sql körs först efter separat verifierad backup.

v0.0.112 — 2026-09-17

  • LIVE-deploy stöder nu explicit whitelistade `live_data_migrations`.
  • `sql/migrations/v0.0.109.sql` och `sql/migrations/v0.0.110.sql` körs separat och transaktionssäkert mot LIVE när de saknas.
  • Övriga versionsmigrationer fortsätter vara DDL-only.
  • DEV-databasen kopieras aldrig till LIVE.
  • Worker-hotfix: SQL-frågorna som läser minsta bytesminut använder nu aliaset `min_minute` i stället för `minute`, vilket tar bort PostgreSQL 42601-felet i `finishLeagueFixture()`.
  • Ändringen gäller endast målvaktsdelen efter avslutad match och ändrar ingen ekonomi, spelarstatistikmodell eller annan matchlogik.
  • Hotfix för v0.0.109: `sql/schema.sql` använder nu samma landsskalade Tier 1–6-lönebudgetmodell som World Generator och v0.0.109-migrationen.
  • Legacy-England med `code='GB'` seedas inte längre vid DB-init och kan därför inte återskapas efter att dubbletten städats.
  • Migrationen städar en tom återskapad GB-dubblett ID-oberoende, säkerställer `ENG` + `GBP` och återställer korrekta `wage_budget` på profiler och befintliga klubbar.
  • Ingen historisk ekonomi, spelar-/personallöner, marknadsvärden eller transferhistorik ändras av hotfixen.

v0.0.111

  • Fixat: SELECT min(minute) i målvaktsdelen använder aliaset min_minute och läses via rows[0]?.min_minute.
  • Fixat: PostgreSQL-felet 42601 syntax error at or near "minute" i finishLeagueFixture().

v0.0.110

  • Tillagt: Idempotent hotfix-migration med rollback-backuper för lönebudget och återskapad England-dubblett.
  • Ändrat: sql/schema.sql använder samma wage_budget-modell som v0.0.109 och World Generatorn.
  • Fixat: Legacy England GB seedas inte längre vid DB-init.
  • Fixat: Profiler och befintliga klubbars wage_budget återställs efter v0.0.109 schema-regression.

v0.0.109 — 2026-09-16

  • Tillagt: Automatisk idempotent datamigration med rollback-backuper för ekonomijusteringarna.
  • Ändrat: Tier 1–6 wage_budget skalar med landets wage_strength från basen 45k/30k/20k/13k/8.5k/5.5k.
  • Ändrat: World Generator och Tier-profilens fallbackvärden använder samma modell.
  • Fixat: Befintliga klubbars lönetak och arenornas biljettpriser synkas mot aktuell land/tier-profil.
  • Fixat: Befintliga market_value räknas om och gamla transferlistningar/priser rensas.
  • Fixat: Tom äldre England GB-dubblett tas bort säkert; ENG behålls och använder GBP.

v0.0.108 — 2026-09-16

  • Tillagt: Admin → Ligor: Simulera nuvarande omgång. Endast den tidigaste återstående omgången startas nu och nästa omgång lämnas på ordinarie schema.
  • Tillagt: Manuellt idempotent LIVE-ekonomirebalance för befintliga marknadsvärden, spelar-/personallöner, lönetak och gamla transferlistningar.
  • Ändrat: Målvaktstränarens CA-utveckling räknar om market_value med samma centrala playerMarketValue()-modell som ordinarie träning.
  • Fixat: En engångssimulering av en ligaomgång kan inte fortsätta automatiskt in i nästa omgång eller resten av säsongen.
  • Fixat: Gamla transferpriser kan rensas i LIVE efter ekonomirebalanseringen så klubbarna listar om spelare från den nya värderingen.

v0.0.107 — 2026-09-16

  • Tillagt: Gemensam publikmodell i lib/attendance.ts för matchmotor, Arena och Ekonomikontoret.
  • Tillagt: AI-lönepress som prioriterar försäljningar när spelartruppen ligger över lönetaket.
  • Tillagt: Automatiska TV-rättighetsutbetalningar en gång per klubb och ny säsong, utan retroaktiv kompensation för pågående säsong.
  • Tillagt: AI-funktioner för årskort, gradvis biljettprisjustering och transportinvesteringar via arenans byggprojekt.
  • Ändrat: World Generator använder Tier-profilens fasta spelarlönetak och skalar startlöner om en genererad trupp annars skulle överskrida taket.
  • Ändrat: Tier 1 får minst large arenatomt, Tier 2–3 minst medium och Tier 4–6 small när kapaciteten tillåter.
  • Ändrat: Personalens förväntade lön skalas per Tier 100/75/55/40/30/25 procent medan alla divisioner konkurrerar på samma kandidatmarknad.
  • Ändrat: Publikfaktorerna är Tier 1–6 och biljettprisets referens hämtas från landets Tier-profil.
  • Ändrat: Transport får en tomtbaserad grundåtkomst och transportmoduler ger alltid ett tillägg ovanpå basnivån.
  • Ändrat: Veckoekonomin får sex timmars grace window efter schemalagd tid.
  • Fixat: AI kan inte längre slutföra transfer, trade eller Free Agent-signering som bryter spelar­lönetaket.
  • Fixat: World Generator kan inte längre ge olika lönetak till klubbar i samma Tier genom payroll × 1,25.
  • Fixat: Personallönebud jämförs relativt respektive klubbs Tier-anpassade förväntade lön i stället för rå euro-nivå.

v0.0.106 — 2026-09-16

  • QoL för spelare/match, gemensamma positioner, rollstyrda rapporter, friendly-sponsorregler, kalenderindikatorer och smartare AI-transfers.

v0.0.105 — 2026-09-15

  • Tillagt: Inkomna bytesförslag visas med båda spelarna sida vid sida och kan accepteras eller nekas.
  • Tillagt: Aktiva bytesförslag visas på profilen för spelaren som efterfrågas.
  • Tillagt: Temporära livshändelseeffekter visas direkt i spelarens statusstaplar och i en egen aktuell-påverkan-lista.
  • Ändrat: Bytesnotiser länkar direkt till rätt inkommande erbjudande och avslutade bytesförslag ligger kvar med status.
  • Ändrat: Nya bytesförslag gäller i sju dagar; tillbakadragna, utgångna och ogiltiga förslag notifieras.
  • Ändrat: Avatarvisning använder samma deterministiska fallback på listor och profilsidor.
  • Ändrat: Klubbsökning visar land och aktuell division.
  • Fixat: Mänskliga managers kan nu faktiskt svara på AI-genererade bytesförslag.
  • Fixat: Livshändelser återställs automatiskt när deras tidsbegränsade effekt löper ut.
  • Fixat: Spelarprofil kan inte falla tillbaka till standardsiluett enbart för att sparad face_code saknas eller är ogiltig.

v0.0.104 — 2026-09-14

  • Tillagt: Adminstyrning för skägg, hår, glasögon, huvudbonader och sportaccessoarer med separat aktivering och förekomst i procent.
  • Tillagt: Ungdomsspelare får ett reserverat genererat ansikte direkt när de upptäcks.
  • Ändrat: Avatar-lager visas deterministiskt enligt admininställd procentsats och bara när filer finns.
  • Ändrat: Ungdomens ansiktskod följer med vid uppflyttning till seniortruppen eller när spelaren släpps som Free Agent.
  • Fixat: Saknade frivilliga avatar-lager döljs utan att hela porträttet faller tillbaka till standardbild.
  • Fixat: Befintliga akademispelare utan ansikte fylls på automatiskt av workern.

v0.0.103 — 2026-09-14

  • Tillagt: Admin → Economy får längst ner en klubbekonomisektion där admin väljer Land → Liga → Division → Lag.
  • Tillagt: Direkta förbundstransaktioner kan bokföras som Bidrag från Fotbollsförbundet, Licensavgift, Avgifter till Fotbollsförbundet eller Ekonomisk sanktion med valfri kommentar.
  • Ändrat: Vald klubb visas med saldo, lönetak, veckoöversikt, prognos och ordinarie ekonomihistorik.
  • Ändrat: Klubbens högermeny följer ordningen Klubbinfo → Ekonomi → Arena → Förbund → Landslaget, med adminverktyg efteråt.
  • Ändrat: Cuper & turneringar, tävlingsdetaljer och tävlingsmatcher behåller klubbens ClubFrame när managern har en klubb.
  • Ändrat: Träningseffekt delas först ut efter att hela fyratimmarspasset har passerat.
  • Fixat: Admin → Economy använder t.tier i landöversikten i stället för den obefintliga t.id-kolumnen.
  • Fixat: Krock mellan match och träning avbokar träningen automatiskt för AI- och människoklubbar; matchen har alltid företräde.

v0.0.102 — 2026-09-14

  • Tillagt: Andra klubbars kalender visar en 14-dagars tillgänglighetsöversikt och deras schemalagda lagträningar tillsammans med matcher och träningsmatcher.
  • Tillagt: Installerade träningsanläggningsmoduler kan säljas tillbaka med konfigurerbar återbetalningsprocent, ekonomibokföring och toastbekräftelse.
  • Tillagt: Ekonomichefen får en biljettprisanalys med referenspris, prisavvikelse, publikrisk samt jämförelse av pris, publik och biljettintäkt inför nästa hemmamatch.
  • Ändrat: Mailens inkorg, läsvy och skrivläge ligger kvar i klubbens ClubFrame så högermenyn alltid finns tillgänglig för managers med klubb.
  • Ändrat: Arena- och ekonomirutorna i högermenyn ligger direkt efter klubb-/förbundsdelen och före administrativa verktyg.
  • Ändrat: Publika klubbkalendern visar matcher, cuper, träningsmatcher, träning och transferfönster i samma vy.
  • Fixat: Träningsanläggningen är inte längre låst kapital när moduler väl har köpts; beroendemoduler skyddas mot ogiltig försäljning och personalpåverkan varnas innan försäljning.

v0.0.101 — 2026-09-14

  • Tillagt: Målvakter får räddningar, hållna nollor, insläppta mål och räddningsprocent i profil och matchhistorik.
  • Tillagt: Matchmotorn registrerar målvaktsräddningar och målvaktsstatistik för nya matcher.
  • Ändrat: Olästa internmail markeras tydligare med färgad rad, grön statusprick och starkare ämne/avsändare.
  • Ändrat: Scout- och personalrapporter som redan skickas som internmail skapar inte längre en duplicerad klocknotis; mailet länkar direkt till rapporten.
  • Ändrat: Andra klubbars matchsidor visar fullständiga lag, avsparkstid, arena och tävling och behåller klubbens sidomeny.
  • Ändrat: Transfermarknaden använder en stabil kompakt avatar-rendering där valfria accessorylager inte kan täcka hela spelarporträttet.
  • Fixat: Papperskorgen och radering av internmail skickar alltid rätt action och ger bekräftelse efter lyckad åtgärd.

v0.0.100

  • Tillagt: Globalt toast-system visar tydliga popupnotiser uppe till höger för lyckade åtgärder, information, varningar och fel; på mobil anpassas notisen till skärmbredden.
  • Tillagt: Transferfönster markeras med ↔ i både månadskalendern och klubbkalendern.
  • Tillagt: Återkommande transferfönster kan köras varje vecka, varannan vecka eller var tredje vecka med en sparad referensvecka.
  • Tillagt: Nya spelare markeras med NY i truppen i sju dagar efter att de anslutit till klubben, i samma statuskolumn som nästa-match-ikonen.
  • Tillagt: Personal får konfigurerbara klubbgränser per roll i Admin-inställningarna samt möjlighet att pensioneras från 60 års ålder utan uppsägningskostnad.
  • Tillagt: Träningspass har en tydlig fast längd på fyra timmar och kalendern visar start- och sluttid.
  • Ändrat: Alla externa e-postmallar använder dynamiskt spelnamn, aktuell logotyp och tagline från Branding; kvarvarande legacy-texten Football Empire ersätts vid rendering och gamla DEV-länkar pekas om till aktuell publik URL.
  • Ändrat: Internmailens listvy får en direkt raderaknapp med korrekt avsändar-/mottagarbehörighet och stöd för papperskorg/permanent radering.
  • Ändrat: Träningsmatchformuläret ger datum och tid mer utrymme och flyttar arenafältet så att tidsfältet inte kläms ihop.
  • Ändrat: Spelarporträtt behandlar eyewear/sport-accessories som frivilliga lager; saknade lager hoppas över i stället för att slå ut hela porträttet.
  • Ändrat: Befintliga spelare med saknad eller ogiltig grundkombination för ansiktet repareras automatiskt vid workerstart.
  • Ändrat: AI-klubbar och mänskliga klubbar använder samma personalgränser så personaleffekter inte kan stackas obegränsat.
  • Fixat: När en ungdom accepterar seniorkontrakt får managern en notis, klubben får en nyhet och spelaren markeras som ny i truppen; ett nekat ungdomskontrakt skapar också notis.
  • Fixat: Arenabyggen kan visa toast direkt vid byggstart med beräknad färdigtid.
  • Fixat: Sparade admininställningar och skickade träningsmatchutmaningar kan ge omedelbar toastbekräftelse.
  • Fixat: LIVE-deploy markeras inte längre som misslyckad enbart för att extern Nginx Proxy Manager-verifiering tillfälligt misslyckas när LIVE-appen redan är healthy; händelsen loggas som varning och deployen slutförs.

v0.0.99

  • Tillagt: Klubböversikten visar en fast LIVE-rad när klubben spelar, med minut, ställning och direktlänk till Matchinfo.
  • Tillagt: Arenasidan får Publikanalys med supporterbas, biljettpris, beräknad efterfrågan, kollektivtrafik, parkering, gång/cykel, total tillgänglighet och tydlig begränsande faktor.
  • Tillagt: Publikmodellen får grundparkering, genomsnittlig bilbeläggning samt lokal gång- och cykelpublik.
  • Tillagt: LIVE-deploy kan köra särskilt whitelistade config-migrationer som endast får ändra fm_settings; övrig DEV-data förblir blockerad.
  • Ändrat: Matchlistor för kommande och spelade matcher har åter tydlig Matchinfo-länk, hela raden är klickbar och klubbnamn visas som markerade gröna klubblänkar.
  • Ändrat: Träningsmatchens datum/tid-formulär får tydligare datumfält på mobil och accepterar både 15:00 och 1500; 930 normaliseras till 09:30.
  • Ändrat: Bytespanelen visar matchspecifik kondition för spelare på planen i stället för att alla startspelare ser ut att ligga kvar på 100%.
  • Ändrat: Avbytare i den matchspecifika laguppställningen visar spelarens position.
  • Ändrat: Arenans parkering redovisas som bilar och omvandlas till personer med bilbeläggningsfaktor i transportkapaciteten.
  • Fixat: Den publika ändringsloggen läser installerade patchars sparade manifest/historik och stannar därför inte längre på v0.0.95.
  • Fixat: Mentalitet och passningsstil behåller valt/sparat värde i strategi- och matchstrategiformulären.
  • Fixat: Matchstartens PostgreSQL-fel operator is not unique: unknown + unknown är permanent fixat genom explicit typning av gate_receipts-parametrarna.
  • Fixat: LIVE-workerns updater-watchdog använder LIVE compose/service i stället för football-empire-updater-dev.

v0.0.98

  • Ändrat: DEV → LIVE laddar automatiskt om Nginx Proxy Manager när football-empire-live är healthy.
  • Ändrat: Deployen verifierar Zone14-proxyn innan jobbet markeras som complete.
  • Ändrat: Proxyverifiering använder retries och en extra Nginx-reload vid behov.
  • Fixat: Förhindrar 502 Bad Gateway efter deploy när football-empire-live återskapats och fått ny intern Docker-IP.
  • Fixat: Proxyfel efter healthy LIVE orsakar inte onödig återställning av filer eller LIVE-databas.
  • Fixat: Automatisk rollback laddar också om proxyn efter att föregående LIVE-version blivit healthy.

v0.0.97

  • Ändrat: DEV → LIVE verifierar och kör databasstruktur som DDL-only migrationer från v0.0.97 och framåt.
  • Ändrat: Schema-migrationer spåras oberoende av VERSION-filen så missade strukturändringar kan fångas upp vid senare deploy.
  • Ändrat: Kalenderns idag/vald-markering behåller grön markering men använder mörk läsbar text när båda tillstånden sammanfaller.
  • Fixat: DEV-databasens innehåll kan inte följa med i LIVE-deployen; migrationer med dataförändrande SQL blockeras innan underhållsläge aktiveras.
  • Fixat: Updater/deploy-tabeller och v0.0.96 arena-/förköpsstruktur finns med i en idempotent LIVE schema-baseline.
  • Fixat: Det föråldrade unika indexet ux_fm_divisions_season_country_level skapas inte längre vid DB-init.

v0.0.96

  • Ändrat: Startsidan får en ny Zone14-hero med taktiktavla, markerad Zone 14 och tydligare Zone14-identitet.
  • Ändrat: Spelares lönekrav väger in faktisk speltid, prestation, form, ålder, styrka, potential, divisionsnivå och hur nyligen kontraktet skrevs.
  • Ändrat: Nya klubbar får automatiskt ett lönetak som minst täcker den genererade spelartruppen med säkerhetsmarginal.
  • Ändrat: Matchsponsorval grupperas per match i stället för separata block per sponsortyp.
  • Ändrat: Arenans sponsorplatser kan låsa upp flera samtidiga huvudsponsoravtal.
  • Ändrat: Biljettkontor möjliggör biljettförköp och biljettintäkter före matchdagen.
  • Ändrat: Arenamoduler köps som byggprojekt med byggtid; effekten aktiveras först när bygget är färdigt.
  • Fixat: Nyligen accepterade kontrakt kan inte direkt följas av ett nytt kraftigt lönekrav på grund av den gamla benchmarklogiken.
  • Fixat: Ekonomivyn visar negativt kvarvarande lönetak när klubben faktiskt ligger över taket i stället för att alltid visa 0.
  • Fixat: World Generator och seriepopulering förhindrar att en nygenererad trupp startar långt över klubbens lönetak.
  • Fixat: Manager får notis när ett arenabygge är färdigt.

v0.0.95

  • Ändrat: Central branding: Zone14, kicker, logo and browser icon are configurable from Admin → Graphics & branding.
  • Ändrat: Site background controls are grouped with branding; face generation is separated below.
  • Ändrat: Discord integration can be enabled/disabled and configured from Admin → Socialt.
  • Ändrat: Admin → Orter now supports creating, editing and safely deleting regions.
  • Ändrat: League, series and World Generator region selections use saved checkbox selections and support multiple regions.
  • Ändrat: Country league overview uses a hierarchical tree-style presentation.
  • Ändrat: Public changelog page added and linked next to the footer version.
  • Ändrat: Calendar now centers today, highlights it, uses larger navigation arrows and displays season/week or break status.
  • Ändrat: Squad list marks players selected for the next match.
  • Fixat: Welcome game-mail templates convert literal \n sequences into real paragraph breaks.
  • Fixat: Saving series/match days shows a completion toast after server-side save/rescheduling finishes.
  • Fixat: Custom match day/time controls are disabled when the override checkbox is off.
  • Fixat: Club top scorer stays blank until at least one player has scored.
  • Fixat: Club sidebar sticky offset starts at the club header instead of hiding the header beneath the top bar.
  • Fixat: LIVE deploy/status row has more spacing from the header.
  • Fixat: Visible Football Empire branding is routed through configurable branding, including metadata, footer, landing page and mail branding.

v0.0.94

  • Ändrat: Dashboardens matchpagination visar första/sista sidan och närliggande sidor med ellips vid många sidor.
  • Fixat: Senaste resultat och Kommande matcher breddar inte dashboardkortet genom att rendera alla sidnummer samtidigt.

v0.0.93-hotfix.1

  • Tillagt: Shirt Number Assignment Queue: mänskliga managers notifieras när en spelare saknar nummer och AI-klubbar auto-tilldelar ett ledigt nummer.
  • Tillagt: Filter ovanför spelartruppen för positionsgrupp, exakt position, ålder, form, styrka, kondition och kontrakt.
  • Tillagt: Pagination för spelartruppen med 25 spelare per sida och för dashboardens matchlistor med 10 matcher per sida.
  • Ändrat: Kommande matcher och Senaste resultat visar fullständiga klubbnamn och använder sidor i stället för intern scroll.
  • Ändrat: World Generator använder vanlig region-dropdown och visar det sparade valet efter omladdning.
  • Ändrat: Klubbbyten nollställer tröjnumret säkert så den nya klubben kan tilldela ett ledigt nummer utan dublettkollision.
  • Fixat: max_generated_clubs är nu en hård gräns och får inte överskridas när World Generator skapar klubbar.
  • Fixat: Seriesystemets kompletteringsgenerator räknar befintlig ortanvändning och respekterar samma maxgräns.
  • Fixat: Befintliga spelare som redan saknar tröjnummer fångas retroaktivt av workern utan notifieringsspam.

v0.0.92

  • Tillagt: Regionfilter och filtrerat ortantal på Admin → Orter.
  • Tillagt: Global serverfelssida som visar digest/felkod.
  • Tillagt: fm_city_generation_profiles som permanent schema för orternas divisionsprofil.
  • Ändrat: World Generator väljer ort utifrån aktuell division, region, befolkning, fotbollsintresse och ortprofil.
  • Ändrat: World Generator respekterar max_generated_clubs under en världsgenerering.
  • Ändrat: Klubbadmin redigerar den synliga klubbkoden short_code (t.ex. OAK), inte short_name.
  • Ändrat: Seriesystemets kompletteringsgenerator använder samma divisionsanpassade ortsprofil.
  • Fixat: Fel lösenord vid DEV → LIVE visas som Fel lösenord på sidan i stället för Application error.
  • Fixat: Okända server-side exceptions visar en användbar felkod/digest.
  • Fixat: v0.0.90 och v0.0.91 avatar/managerporträtt-fixar bevaras oförändrade.

v0.0.91

  • Fixat: Managerporträtt klipps inte längre i nederkant när det kompletta lageransiktet är högre än den tidigare kvadratiska rutan.
  • Fixat: Managerprofilens bildruta och omgivande kort får höjd som rymmer hela porträttet.

v0.0.90

  • Ändrat: Managerporträtt på egen och andra managers profil förstoras till 118 px och den kvarvarande yttre ramen tas bort.
  • Ändrat: Defaultprofilen ligger kvar synlig tills det riktiga basansiktet faktiskt har laddats.
  • Fixat: Eyewear/headwear/sportaccessory renderas inte när inga uppladdade accessoarer används; Face + Beard + Hair fungerar som tidigare.
  • Fixat: Trasiga eller saknade accessoarlager kan inte längre lämna färgade/tomma porträttrutor.
  • Fixat: Gamla klientanrop till saknade accessoarer får 404/no-store i stället för en trasig placeholder-PNG.

v0.0.89

  • Tillagt: Autocomplete i Spelarvärdering efter minst två tecken med namn, position och klubb.
  • Tillagt: Adminåtgärd för att återställa webbplatsens standardbakgrund.
  • Tillagt: Persistent API-serving för egen sidbakgrund.
  • Tillagt: Separat logisk Papperskorg/radering för avsändare och mottagare i internmail.
  • Tillagt: Free Agent-tidsstämpel och konfigurerbar maxperiod, standard 7 dagar.
  • Ändrat: Klubbens adminpenna ligger i den gröna headern istället för i Klubbinformation.
  • Ändrat: AI-manager och manager använder tydlig hero-stil på adminpennan.
  • Ändrat: Kalenderns kortnamn behålls i översikten medan fullständiga namn visas i tooltip.
  • Ändrat: Personalrummets porträtt använder samma säkra lager-rendering som Personal.
  • Ändrat: Gröna hero/office-sektioner får konsekvent mellanrum till efterföljande innehåll.
  • Ändrat: Arena-tooltips får tydlig textfärg och bredare, normal radbrytning.
  • Fixat: Saknade eyewear/headwear/sportaccessory-filer kan inte längre ge trasiga porträttikoner.
  • Fixat: Trasig eller försvunnen custom-bakgrund kan ersättas och sparas persistent över rebuild.
  • Fixat: Mail i Skickat kan nu tas bort utan att mottagarens kopia påverkas.
  • Fixat: Free Agents lämnar den aktiva spelarpoolen efter maxperioden istället för att ligga kvar permanent.
  • Fixat: Tomma eller oläsliga arena-tooltip-rutor.

v0.0.88

  • Tillagt: Adminfliken System i Notiscentret, endast synlig för admin, med separat oläst-räknare och separat Markera alla lästa.
  • Tillagt: Adminredigering av klubbnamn, manager/AI-manager och personal med audit-logg och klubbnamnshistorik.
  • Tillagt: Multi-regionkopplingar för ligor, serier och World Generator-mallar.
  • Tillagt: Ekonomichef som ny personalroll samt Ekonomikontor med faktabaserade ekonomiska råd.
  • Tillagt: Spelarvärdering med uppskattat prisintervall och säkerhetsnivå för egna och externa spelare.
  • Tillagt: Uppladdningsbara porträttlager: glasögon för alla, civila huvudbonader för staff/managers och sportaccessoarer för spelare.
  • Ändrat: Orter kan redigeras med region och klubbens home_region_id synkroniseras från hemorten.
  • Ändrat: World Generator filtrerar orter efter valda regioner och kräver minst 8 klubbar per division.
  • Ändrat: Internmailens mottagarlista visar användarnamn med klubbnamn som sekundär identifiering.
  • Ändrat: Maintenance-jobb saknar spelversion och köas bakom install/rollback.
  • Ändrat: Grafikinställningar stödjer nu uppladdning och katalogvisning av eyewear, headwear och sports-accessory.
  • Fixat: Manuell cache/image-städning kan inte längre starta samtidigt som en uppdatering eller rollback.
  • Fixat: Worker-fallback och updater använder samma spärr mot maintenance under aktiv uppdatering.
  • Fixat: Underhållsjobb skickar systemnotis när de lyckas eller misslyckas.
  • Fixat: Porträttaccessoarer är inte längre hårdkodade utan hämtas från uppladdad grafik som matchar övriga avatarlager.

v0.0.87

  • Tillagt: Globalt temasystem med Default och Alpha Modern, admin-preview och global aktivering.
  • Tillagt: Webmail-liknande internt Football Empire-mail med Inkorg, Skickat, Arkiv och Papperskorg.
  • Tillagt: Till-fält med autocomplete mot aktiva Football Empire-användarnamn/managers – inga externa e-postadresser.
  • Tillagt: Grafiska interna mailmallar med Football Empire-logga och aktiva temafärger.
  • Tillagt: Automatiskt välkomstmail när en ny manager tar över en klubb samt ett gratis klubbnamns- och arenanamnsbyte.
  • Tillagt: Player Personality & Happiness med Tankar & trivsel under Personligt och adminredigerbar tankekatalog.
  • Tillagt: Kontraktsdialog för Vill lämna när kontraktet går ut: Acceptera, Förhandla eller Ignorera samt retention-löften.
  • Tillagt: Tröjnummer 2.0 med tilldelning, ändring, byte, rensning, favoritnummer och begränsad moraleffekt.
  • Tillagt: Kategoriserad Admin → Inställningar med högernavigation.
  • Tillagt: Adminskyddad Editor-DEV-status och HTTP-preview utan publik Editor-DEV host-port.
  • Ändrat: Transferlistning och Fri transfer får planeras även när transferfönstret är stängt; bud, beslut och förhandlingar kräver fortsatt öppet fönster.
  • Ändrat: Ladda ner källkod, Kodeditor, Editor-DEV och DEV → LIVE flyttas från admin-root till Inställningar → Utveckling.
  • Ändrat: Matchplanerarens flik vänds rätt och spelarnamn/metadata får stabil enradslayout.
  • Ändrat: Gemensamma UI-knappar, icon actions och toolbar-stilar införs som grund för Alpha-polish.
  • Ändrat: Läkare/scout-systemmail märks med grafiska interna mailmallar.
  • Fixat: Listning av spelare utanför transferfönstret ger inte längre serverfelet transfer window closed.
  • Fixat: Matchplanerarens raka flikkant ligger mot skärmkanten i stället för att roteras åt fel håll.
  • Fixat: Spelarnamn i Matchplaneraren pressas inte ned till två rader vid normal bredd.

v0.0.86

  • Tillagt: Persistent lagringsplats data/profile-images för användarnas uppladdade profilbilder.
  • Ändrat: Profiluppladdning och profilbildsrouten använder FOOTBALL_EMPIRE_PROFILE_IMAGE_DIR.
  • Ändrat: Docker Compose pekar DEV-webb och Editor-DEV på den host-monterade projektmappens data/profile-images.
  • Fixat: Uppladdade profilbilder försvinner inte längre när football-empire-dev byggs om eller containern ersätts.

v0.0.85

  • Tillagt: Publik förbundssida skild från Förbundskontoret.
  • Tillagt: Publik landslagssida skild från Landslagskontoret.
  • Tillagt: Nationalarena som väljs av förbundet och visas på båda publika sidorna.
  • Tillagt: Landslagsstab med anställning och avslut via Landslagskontoret.
  • Tillagt: Football Empire-modal för flytt av redan uttagen spelare.
  • Tillagt: Matchdagsprognos för nästa vecka baserad på senaste hemmamatcher och kommande hemmamatcher.
  • Ändrat: Rollmenyn länkar kontor och publika sidor till separata routes.
  • Ändrat: Desktop-navigationen får diskreta knappytor; Vänner ligger kvar i profilmenyn men tas bort från desktop-raden.
  • Ändrat: Redan uttagna spelare visas som Startelva/Bänk i strategins spelaval.
  • Ändrat: Matchplaneraren radbryter rubrik/undertitel och spelarnamn/metadata tydligare.
  • Ändrat: Editor-DEV saknar host-port och kör enbart internt i Docker-nätet.
  • Ändrat: Klubbmärken i matchhändelser permanentas till 48 px normalt och 40 px kompakt på desktop.
  • Fixat: Arenamoduler kan inte köpas när klubbkassan är för låg; knappen visar saknat belopp.
  • Fixat: Browserns native confirm-ruta används inte längre när en redan vald spelare flyttas.
  • Fixat: Profilmenyn återgår till sitt tidigare kompakta utseende efter den felriktade CSS-ändringen.

v0.0.84

  • Tillagt: Riktiga matchbyten med gemensam bytesgräns, AI-byten, skadenödbyten och manuell “Gör byte” under live-match även när AI-byten är på.
  • Tillagt: Flytande Matchplanerare där managern kan samla spelare, välja en privat planerad position och skriva egna anteckningar utan att ändra spelarens riktiga data.
  • Tillagt: Admin-penna på spelarprofilen för namnbyte och generering/reservering av ett nytt ledigt ansikte.
  • Tillagt: Kodeditor v2 med redigera/spara, automatisk backup, diff, senaste ändrade filer och återställning; Editor-DEV ser sparningar direkt via hot reload.
  • Tillagt: Internt mailsystem med inkorg, skickat, arkiv och papperskorg samt läst/oläst, svar, arkivering och radering.
  • Tillagt: Mailikon i toppraden med oläst-räknare och tydlig animation när nytt mail finns.
  • Tillagt: Lagläkaren skickar mail vid matchskador och scoutens befintliga rapporter skickas även som mail samtidigt som notiser och Personalrummet finns kvar.
  • Tillagt: Separat klubbhistorik för Meriter, inklusive cupplaceringar, semifinaler, ligaplaceringar och uppflyttningar.
  • Ändrat: Strategi- och matchuppställning frågar om en redan vald spelare ska flyttas; vid bekräftelse rensas den gamla sloten i stället för att skapa en dublett.
  • Ändrat: Redan uttagna startspelare och bänkspelare markeras i spelarlistorna, samtidigt som skadad/vilande markering behålls.
  • Ändrat: Kaptenvalet följer startelvan och rensas automatiskt om kaptenen flyttas bort från startelvan.
  • Ändrat: Matchmotorn räknar spelade minuter utifrån verkliga in- och utbytestider och kan välja MVP/bonus utifrån spelare som faktiskt spelat.
  • Ändrat: AI-klubbar utan sparad strategi får en stabil tillfällig startelva och bänk vid avspark så AI-byten kan fungera även för dem.
  • Ändrat: AI-transferlogiken prioriterar tydligare positioner där truppen är tunn och spelare som förbättrar nuvarande positionsnivå.
  • Ändrat: Egen och publik klubbprofil använder mer gemensam struktur för kommande/spelade matcher, klubbnyheter, kalender, cuper, Meriter och Pokaler.
  • Ändrat: Kommande och spelade matchrader är klickbara i sin helhet, klubbnamn är egna länkar och fulla klubbnamn får mer utrymme.
  • Ändrat: Klubbsektionernas rubriker får en mjukt grön avgränsning; Pokaler visar visuella troféer medan Meriter visar textbaserad historik.
  • Fixat: Serverfelet “duplicate player” på strategisidan undviks i normalt UI-flöde genom bekräftad flytt och deduplicering av äldre sparade slots.
  • Fixat: Fallback-lag för AI låses vid avspark via matchhistoriken så en skada inte tyst byter startelvan utan ett riktigt bytes-event.
  • Fixat: Nya admin-genererade spelaransikten reserveras även i face-code-registret för att undvika framtida dubbla ansiktskoder.

v0.0.83

  • Tillagt: En dynamisk route för /profile-images/[filename] som levererar uppladdade profilbilder från den persistenta projektmappen.
  • Tillagt: En kompakt ruta med de fyra senaste matchhändelserna direkt i matchöversikten.
  • Tillagt: Tydliga fält för hemma, borta och arena på matchkortet.
  • Tillagt: Publik- och väderbaserade kommentatorshändelser vid matchstart.
  • Ändrat: Profilbilder sparas i /project/public/profile-images via FOOTBALL_EMPIRE_PROJECT_ROOT i stället för i containerns temporära /app/public.
  • Ändrat: Managerprofilens avatar ökas till 120x120 och manuella bilder använder contain för att undvika beskärning.
  • Ändrat: Matchhändelser med klubbkoppling visar klubbens godkända eller genererade logotyp.
  • Fixat: Uppladdade profilbilder ger inte längre 404 på sin Football Empire-URL efter att de sparats.
  • Fixat: Profilbilder försvinner inte längre bara för att web-containern byggs om.
  • Fixat: Manuella managerbilder kapas inte längre av den mindre profilrutan.

v0.0.82

  • Tillagt: Automatisk backfill av saknade ansikten för ej anställd personal när personalansikten är aktiverade.
  • Ändrat: Startelvor på den grafiska matchplanen placeras radvis enligt managerns valda formation och låses till lagets egen planhalva.
  • Ändrat: Nya klubbar från World Generator startar med 20 spelare i stället för 22, med två målvakter och högst två rena strikers.
  • Ändrat: Topnavigeringen får kortbakgrund, diskret border, rundning och lätt skugga.
  • Ändrat: Digital resultattavla får en mer sammanhållen scoreboard-layout med centrerad matchklocka och tydligare lag/resultatrad.
  • Fixat: Ej anställd personal utelämnas inte längre från grafikgeneratorns staff-scope.
  • Fixat: Hemma- och bortalag blandas inte längre över mittlinjen i startelvsvisningen.

v0.0.81

  • Tillagt: En separat diskret tillbaka-container för Inställningar på grafik/adminsidan.
  • Tillagt: En säker migration som normaliserar gamla standardvärden för sidbakgrunden.
  • Ändrat: Tillbaka-navigeringen får ljus egen bakgrund, mörkare grågrön kant, rundade hörn och en mycket diskret skugga.
  • Fixat: Kända äldre standardvärden för bakgrundssökvägen rättas permanent utan att egna uppladdade bakgrunder skrivs över.

v0.0.80

  • Ändrat: Sidbakgrundens fysiska lagringsmapp ändras till public/backgrounds medan webbadressen fortsätter använda /games/football-empire/backgrounds/.
  • Ändrat: World Generator-pilen får en egen fullbreddsrad så Tier-etiketter och seriekort inte skjuts ur grid-layouten.
  • Ändrat: Små guldfärgade sektionsrubriker på startsidan får mörkare färg och full opacitet.
  • Ändrat: Så fungerar det-sektionen får en diskret mörkare border.
  • Ändrat: Profilbildsformuläret på Admin → Användare får en egen layout med en alltid synlig uppladdningsknapp och tydlig filinformation.
  • Fixat: Standardbakgrunden och förhandsvisningen hittas nu från rätt public-mapp.
  • Fixat: Uppladdade egna bakgrunder sparas i rätt public-mapp.
  • Fixat: Flera serier på samma Tier visas åter korrekt bredvid varandra i World Generator.
  • Fixat: Profilbilder för mänskliga användare valideras nu mot filens faktiska PNG/JPG/WebP-signatur, sparas i public/profile-images och uppdaterar managerprofilen direkt.

v0.0.79

  • Tillagt: Sömlös standardbakgrund med diskret fotbollstema under hela sajten.
  • Tillagt: Adminverktyg under Inställningar → Ansiktsgenerator & grafik för att aktivera/inaktivera sidbakgrunden.
  • Tillagt: Uppladdning av egen sidbakgrund i PNG, JPG eller WebP.
  • Ändrat: Layouten läser nu bakgrundsinställningen från systeminställningarna och repeterar bilden sömlöst över hela sidan.

v0.0.78

  • Tillagt: Manuell uppladdning/borttagning av profilbild på användarens adminprofil.
  • Tillagt: Diskret admin-redigeringssymbol på mänskliga managerprofiler.
  • Tillagt: Manager/användarträffar i den globala sökrutan.
  • Ändrat: Egen profilbild visas före det genererade manageransiktet på profil- och managervyer.
  • Ändrat: Sökrutan märker upp träffar som Klubb eller Manager.

v0.0.77

  • Tillagt: Tydliga felmeddelanden på Ansiktsgenerator & grafik vid ogiltig uppladdning.
  • Ändrat: Face/Beard/Hair-PNG kan nu ha valfri positiv bildstorlek i stället för exakt 144×218 px.
  • Fixat: Uppladdning av exempelvis 1019×1543 PNG-filer orsakar inte längre Application error.
  • Fixat: Numeriska avatarfilnamn identifieras korrekt vid uppladdning.

v0.0.76

  • Tillagt: Tre användarflaggor i fm_accounts: alpha_tester, beta_tester och show_admin_badge.
  • Tillagt: Ny gemensam UserBadges-komponent med Alpha-prioritet, Beta-fallback och separat röd adminsköld.
  • Tillagt: Alpha/Beta-patch på matchtröjans framsida för klubbar med mänsklig testmanager.
  • Ändrat: HeroToday visar alla aktiviteter idag och därefter alla aktiviteter på nästa datum som har planerad aktivitet, med datum för båda blocken.
  • Ändrat: Admin → Användare visar test/admin-märken och användardetaljen har separata toggles för Alpha, Beta och Visa adminmärke.
  • Ändrat: Manager- och klubbprofiler visar testmärket efter nationalitetsflaggan; om Alpha och Beta båda är aktiva visas bara Alpha.
  • Ändrat: Matchställ i klubböversikt, publik klubbprofil, Matchinfo, kit-editor och truppens tröjpreview kan visa Alpha/Beta-patch.

v0.0.75

  • Ändrat: Ansiktsgeneratorns server actions använder app-lokala routes för redirect och cache revalidation.
  • Fixat: Fixar 404 där /games/football-empire duplicerades efter Testgenerera ansikte.
  • Fixat: Samma dubbla basväg kan inte längre uppstå efter Spara, Uppladdning eller Generera.

v0.0.74

  • Tillagt: Ny adminpanel för Ansiktsgenerator & grafik med statistik, preview-generator och uppladdning av Face/Beard/Hair-lager.
  • Tillagt: Ny inställning graphics.generated_staff_faces_enabled för att kunna exkludera personal från visade ansikten.
  • Tillagt: Ny generatoråtgärd för att skapa saknade ansikten eller bygga om hela reservfördelningen efter aktuell prioritering.
  • Ändrat: Systemet läser nu avatar-mapparna dynamiskt så nya PNG-filer automatiskt ökar antalet möjliga kombinationer.
  • Ändrat: Admin -> Inställningar har nu en egen Spelinställningar-länk för regler och Utvecklingsfas.
  • Ändrat: FaceAvatar markerar nu staff-avatarer separat så de kan döljas via inställning utan att påverka spelare och managers.
  • Fixat: Personal prioriteras inte längre automatiskt i ansiktsgeneratorn när staff-inställningen är avstängd.
  • Fixat: Rensning av gamla staff-koder frigör kombinationer och minskar risken att personal fyller upp generatorn i onödan.

v0.0.73

  • Tillagt: Nytt lagerbaserat avatarpaket under public/avatar med separata Face-, Beard- och Hair-filer.
  • Tillagt: Databasstöd för unik reserv av ansiktskoder via fm_face_code_registry.
  • Tillagt: Grafikinställningen visar nu hur många kombinationer som finns i ansiktspaketet.
  • Ändrat: FaceAvatar renderar nu lagrade PNG-lager i stället för den gamla SVG-generatorn.
  • Ändrat: Ansiktskoden använder nu formatet F#B#H# (Face, Beard, Hair).
  • Ändrat: Admin-texter för grafik har uppdaterats till att beskriva ansiktsgeneratorn i lager.
  • Fixat: Genererade ansikten följer nu de riktiga ansiktsdelarna som laddats upp till Avatar-projektet.
  • Fixat: Profiler utan tilldelad kombination faller tillbaka till standardprofilbilden i stället för att skapa osparade dubbletter.

v0.0.72

  • Tillagt: Månads-/tvåveckorskalender med sparade Land/Liga/Division-filter.
  • Tillagt: Permanent hemregion för klubbar och region på World Generator-serier.
  • Tillagt: Global ALPHA/BETA-fasmarkering.
  • Tillagt: Hårt spelarlönetak och lönetaksöversikt.
  • Tillagt: Gemensam formationskälla för taktiska vyer och Matchinfo.
  • Ändrat: Regionala seriegrenar används vid upp-/nedflyttning.
  • Ändrat: Tierkopplingar visas tydligare.
  • Ändrat: Personal- och ungdomstränareffekter förklaras tydligare.
  • Ändrat: Målskyttsviktning tar hänsyn till position och offensiva attribut.
  • Fixat: Träning blockeras inte längre av alla matcher samma dag; fyratimmarsregel används och inställd träning rapporteras.
  • Fixat: Målvakter får inte längre samma normala chans som utespelare att bli målskytt.

v0.0.71

  • Ändrat: Namnkonflikter löses med fotbollsmässiga namnvarianter i stället för löpnummer.
  • Fixat: Nya AI-klubbar får inte längre numeriska suffix som FC 2, FC 3 eller liknande när ett klubbnamn redan är upptaget.

v0.0.70

  • Tillagt: Livepollad DEV → LIVE-status med progressbar, stegvyer och live-logg.
  • Tillagt: Popup när LIVE-deploy är klar eller har misslyckats.
  • Tillagt: Status-endpoint för LIVE-deploy.
  • Ändrat: DEV:s globala uppdateringsnotis visar även pågående deploy mot LIVE.
  • Ändrat: LIVE-buildens output loggas löpande och progressen rör sig under build.
  • Ändrat: Updater-processen identifieras som v0.0.31.
  • Fixat: LIVE-deploy kör alla saknade databasmigrationer mellan LIVE och DEV i rätt versionsordning utan att kopiera DEV-data.
  • Fixat: Deployhistorik visar Europe/Stockholm i stället för serverns UTC-tid.

v0.0.69

  • Tillagt: Admin → Skandaler och skandalmotor v1.
  • Tillagt: Admin → Ekonomi som samlad ingång.
  • Tillagt: Dagbaserad Mån–Fre-kalender och Idag/Nästa-ruta.
  • Tillagt: Medicinsk prognos på skadade egna spelare.
  • Ändrat: Transfer/Trade förenklas till ett transferbudflöde i UI.
  • Ändrat: Säsonger får nummer, omgångar per vecka och mellansäsong.
  • Ändrat: Matchinfo använder lagens matchställ och taktiska positionszoner på egen planhalva.
  • Ändrat: Spelarprofilen visar tröjrygg med F. Efternamn och nummer.
  • Ändrat: Personalmarknaden förklarar rollernas effekter och ungdomstränaren påverkar utveckling.
  • Fixat: Sparat kit-mönster ligger kvar i editorn efter sparning.
  • Fixat: Shortsens form är rakare och inte avsmalnande.
  • Fixat: v0.0.68-migrationens adminroll använder primary_role även i källsnapshoten.

v0.0.68

  • Tillagt: Dynamisk tilläggstid 1–8 minuter.
  • Tillagt: Officiell meritstatus för tävlingar och delegerad tävlingsbehörighet i förbundet.
  • Tillagt: Målantal lag per division samt adminåtgärder för ett lag i taget.
  • Ändrat: Scoutens automatiska jakt begränsas till faktiska marknadsmöjligheter och femdagars kontraktsfönster.
  • Ändrat: Matchhastigheten ändras till 6 sekunder per matchminut.
  • Ändrat: Träningsschema och enskilda träningsflyttar hanteras från tränarsidan.
  • Ändrat: Vanliga managercuper är träningscuper och ger inte pokaler eller meriter.
  • Fixat: Seriesystemets generator är inte längre låst till ett implicit mål på 10 lag.

v0.0.67

  • Tillagt: Bevaka spelare på spelarprofilen för vilken spelare som helst.
  • Tillagt: Bevakade spelare inne på Scout-kontoret med möjlighet att sluta bevaka.
  • Tillagt: Scout-rapporter för bevakade spelares skador, återkomst, transfer/trade/free-agent-läge, klubbbyte, kontraktsmissnöje, sociala signaler och nya spelarhändelser.
  • Ändrat: Genererade ansikten använder neutral fyrkantig bakgrund utan rund avatar-mask.
  • Fixat: Scout-/personalrapporter massmarkeras inte längre som lästa när kontoret öppnas.
  • Fixat: Markera som läst uppdaterar bara den valda rapporten och oläst-räknaren minskar därefter individuellt.

v0.0.66

  • Tillagt: Deterministisk badge-generator för klubbar utan godkänt uppladdat klubbmärke.
  • Tillagt: Admin → Inställningar → Genererad grafik med separata AV/PÅ-val för ansikten och klubbmärken.
  • Tillagt: badge_code på fm_clubs med automatisk backfill och trigger för nya/ändrade klubbar.
  • Ändrat: Ansiktsrenderingen har ritats om med skarpare svarta konturer, mer varierade proportioner och tydligare manager-spelsstil.
  • Ändrat: Genererade badge-mönster klipps strikt till klubbmärkets ytterform så inga dekorlinjer kan sticka ut.
  • Fixat: När genererade ansikten stängs av visas default-profile.png utan att face_code tas bort.
  • Fixat: När genererade klubbmärken stängs av visas default-club-badge.png för klubbar som saknar godkänt eget märke.

v0.0.65

  • Tillagt: Genererad ansiktsmotor med unika face codes för spelare, personal och managers.
  • Tillagt: AI-managers får egna genererade ansikten.
  • Ändrat: Spelar-, personal- och managersidor visar nu genererade ansikten i stället för standardprofilen.
  • Ändrat: Trupp-, transfer- och personalsidor visar ansikten direkt i listor och kort.
  • database: Nya face_code-fält och SQL-triggers för automatisk generering samt backfill av befintliga rader.

v0.0.64

  • Tillagt: Personalrummet med dynamiskt ett kontor per aktivt anställd person och olästa rapporter.
  • Tillagt: Gemensam fm_staff_reports-modell för personliga personalrapporter.
  • Tillagt: Bakgrundsrapporter från scout och fysioterapeut samt spegling av nya träningsrapporter till tränarnas kontor.
  • Tillagt: Automatiska världsnyheter när förbundsordförande eller förbundskapten utses eller lämnar posten.
  • Ändrat: Sidomenyns Tränarnas kontor heter Personalrummet och går till /staff-room.
  • Ändrat: Matchställens accent/konturer är alltid svarta och accentfärgväljaren har tagits bort.
  • Ändrat: Shortsens SVG-midja har justerats från x=15..85 till x=22..78 så den matchar tröjans nederkant.
  • Ändrat: Nya matchställ skapas med svart accent som standard.
  • Fixat: Alla befintliga fm_club_kits normaliseras till accent_color #000000.
  • Fixat: Ljusa matchställ får konsekvent synliga svarta konturer.
  • Fixat: Shortsen är inte längre bredare än tröjan.

v0.0.63

  • Tillagt: Matchställs-editorn visar exempelnummer (9) och exempelnamn som förhandsvisning på tröjans rygg (sparas inte i databasen).
  • Tillagt: Klickbar tröjknapp per spelare i trupplistan (Spelare) som öppnar en modal med spelarens riktiga hemmaställ, tröjnummer och efternamn.
  • Ändrat: components/KitPreview.tsx ritar nu tröja, byxor och strumpor som SVG med fram- och baksida istället för CSS clip-path-polygoner.
  • Ändrat: Klubblogga kodas in på vänster bröst på tröjans framsida istället för att ligga mitt på plagget.
  • Ändrat: Mönster (vertical/horizontal/center/diagonal/half/sleeves) klipps nu mot tröjans faktiska SVG-form istället för en rektangulär bakgrund.
  • Ändrat: Klubbsidor och matchsidans kit-remsa visar samma fram+bak-vy (utan spelarnummer/namn).
  • Ändrat: app/globals.css: gammal kit-CSS (clip-path/drop-shadow-hack) ersatt med enklare CSS för de nya SVG-vyerna.

v0.0.62

  • Tillagt: Landbaserad ekonomisk grundprofil för varje land och redigerbara Tier 1–6-profiler i World Generator.
  • Tillagt: Hemma-, borta- och målvaktsställ med färger/mönster samt manager-editor.
  • Tillagt: Global sida för endast pågående matcher.
  • Tillagt: Arkivering av avslutade tävlingar och snapshotfält för finalmotståndare/resultat i klubbmeriter.
  • Tillagt: Notis till mänskliga klubbar vid cup-/turneringsinbjudan.
  • Ändrat: Kontrakt använder 13 veckor minimum, 26 veckor standard och 52 veckor maximum.
  • Ändrat: AI-förnyelser använder tier/CA/potential-baserad lönenivå och 56 dagars förnyelsefönster med spärr för nytecknade avtal.
  • Ändrat: Gamla globala Division 1–4-inställningar för lön, TV och prispengar ersätts av landets Tier-profiler.
  • Ändrat: World Generator och world population skapar klubbar med landets Tier-ekonomi och automatiskt matchställ.
  • Ändrat: Matchklockan interpoleras tätare klient-side utan att matchmotorn eller databasen behöver ticka varje sekund.
  • Fixat: Förhindrar 4-veckors AI-kontraktsloopen som kunde driva spelarlöner till hundratusentals eller miljoner euro per vecka.
  • Fixat: Reparerar endast tydligt orimliga befintliga spelarlöner utifrån ny tier-benchmark.
  • Fixat: Budgeten visar egna etiketter för kända intäktskategorier; Övriga intäkter används endast som fallback.
  • Fixat: Dashboardens Alla pågående matcher visar inte längre kommande cupmatcher som om de vore live.
  • Fixat: Permanent tävlingsradering kräver admin/superadmin och vunna meriter överlever via frikopplad trophy-historik.
  • Fixat: v0.0.61:s cup-placeholderfix och recovery-pass är bevarade i den nya patchbasen.

v0.0.61

  • Tillagt: Cup- och turneringsmatcher kopplas till vanliga fixtures och körs genom ordinarie live-matchmotor.
  • Tillagt: Adminval för Starta match/runda nu respektive Snabbsimulera.
  • Tillagt: Tävlingsanpassade nyheter inför/efter cup- och turneringsmatcher samt vinnarnyhet.
  • Tillagt: Managerkarriär och managermeriter på publika och egna managerprofiler.
  • Ändrat: AI-manager använder samma publika managerprofil som mänskliga managers och markeras med (AI).
  • Ändrat: Cupmatcher i klubbens matchlistor och tävlingssidan öppnar vanlig Matchinfo när en riktig fixture finns.
  • Ändrat: Klubbinformation visar Klubbkod utan duplicerad undertext.
  • Ändrat: Flaggor i manager-/förbundssammanhang behåller rektangulär spelarflaggsstil.
  • Fixat: Snabbsimulering tar bort eventuell ännu ospelad live-fixture så samma cupmatch inte kan spelas två gånger.
  • Fixat: Cup-/turneringsfixtures påverkar inte ligatabellen trots att de använder samma matchmotor.
  • Fixat: Cupresultat synkas tillbaka till tävlingsträd, avancemang, MVP och vinnare.

v0.0.60

  • Tillagt: Cupintervall: varje dag, varannan dag eller en gång i veckan.
  • Tillagt: Turnering med sammanhängande speldagar och 1–2 matcher per klubb/dag.
  • Tillagt: Egen matchinfosida för cup-/turneringsmatcher.
  • Tillagt: Adminverktyg för att simulera en match eller hel runda.
  • Tillagt: Worker-fallback för manuella Docker-städjobb.
  • Ändrat: Serie på tävlingssidan heter Turnering.
  • Ändrat: Alla matcher i samma knockout-runda får samma speldatum.
  • Ändrat: Fullständiga klubbnamn visas i slutspelsträd och matchlista.
  • Ändrat: Cupmatcher från klubbens kommande matcher länkar till matchinfo.
  • Fixat: Dubbelstart av redan startad cup ger vänlig status i stället för serverfel.
  • Fixat: Befintliga .59-knockoutmatcher som ligger utspridda över flera veckor normaliseras per runda.
  • Fixat: Manuell Docker-rensning blir inte liggande permanent om updater-containern saknas.

v0.0.59

  • Tillagt: Ny publik landing page med spelinformation och fotbollskänsla.
  • Tillagt: Separat /dashboard som bevarar den tidigare startsidans spelöversikt.
  • Tillagt: Publik FAQ med redigerbara frågor/svar i adminpanelen.
  • Tillagt: Cookie-banner, cookieinformation, integritetssida och gemensam footer.
  • Tillagt: Håll mig inloggad i 30 dagar på inloggningssidan.
  • Tillagt: Adminfunktion för att ladda ner en säker källkodssnapshot direkt i webbläsaren.
  • Ändrat: Meriter & pokaler ligger direkt efter Klubbinformation på egna och publika klubbsidor.
  • Ändrat: Statistik-karusellens prickar ligger under värdet och statistikvärdet är större.
  • Ändrat: Fotbollsvärlden i siffror växlar automatiskt var 10:e sekund och visar bara aktiva divisioner med klubbar.
  • Ändrat: Kontrakt och form är mer kompakta i spelarlistan med detaljer i hover/tooltips.
  • Ändrat: Schemalagd träning kan påverka form och träningsrapporter visar fokus, utfall, attribut, form, fitness, fatigue, tränarkvalitet och anläggningspåverkan.
  • Fixat: PostgreSQL-felet 42P08 i AI:s cupinbjudningar är fixat med explicit varchar-typning.
  • Fixat: AI:s cup-svar och eventuell anmälningsavgift behandlas transaktionssäkert för att undvika dubbla dragningar vid fel.

v0.0.58

  • Tillagt: Klubbgenväg i toppraden.
  • Tillagt: Temporärt Free Agent-flöde för släppta ungdomar.
  • Tillagt: Visning och hantering av egna spelare på transfermarknaden.
  • Tillagt: Recovery-service worker för automatisk återanslutning efter uppdateringsrestart.
  • Ändrat: Matcher-sidan delas upp i kommande/spelade med pagination och matchtyp.
  • Ändrat: Klubbnyheter får kompaktare informationsrik layout och varierade manageravgångar.
  • Ändrat: Kontraktsrutan visar endast bonusar som faktiskt erbjudits.
  • Ändrat: Spelarlistan får tydligare kontrakts-, form- och statusindikatorer.
  • Fixat: Kontraktsdeadlines visas explicit i Europe/Stockholm.
  • Fixat: Dubbla/trippla manageravgångsnyheter förhindras.
  • Fixat: Egna marknadslistade spelare filtreras inte längre bort.

v0.0.57

  • Tillagt: Manager-kontoret → Tröjnummer för spelarinitierade önskemål.
  • Tillagt: Kontraktsbonusar med prestations- och säsongsrelaterade bonusfält.
  • Tillagt: Geografisk serieinställning (Norra/Södra/Östra/Västra).
  • Tillagt: Simulerat väder med prognos, låst matchväder och extrema väderhändelser.
  • Ändrat: Spelarlistan återställs till kompakt översikt.
  • Ändrat: Matchinfo får bättre spelarspridning, popup och laglegend.
  • Ändrat: Matchmotorn använder alla tio detaljattribut tydligare.
  • Ändrat: Arena-hjälp använder liten blå ? med hover/tap.
  • Fixat: Äldre arenamodulers 0 €-återköpsvärde backfillas från baspris.
  • Fixat: Tröjnummernotiser leder till Manager-kontoret.

v0.0.56

  • Tillagt: Träningsplan per lagdel (målvakter, försvar, mittfält, anfall) med konkret koppling till spelarattribut.
  • Tillagt: Träningssessioner och tränarrapporter med betyg och attributförändringar.
  • Tillagt: Riktiga tröjnummer 1–99, spelarönskemål och managerbeslut.
  • Tillagt: Försäljning av enskilda arenamoduler med återbetalning baserad på faktiskt inköpspris.
  • Tillagt: Permanent borttagning av AI-only liga med tydlig bekräftelse.
  • Ändrat: Matchinfo visar tröj-placeholder med tröjnummer, namn och position på kompakt perspektivplan.
  • Ändrat: Arenakort får hjälpikoner och tydliga kategoriförklaringar för Transport, Service, Experience, Pitch, Commercial och Hospitality.
  • Ändrat: Pris för nästa angränsande tomt visas före köp.
  • Ändrat: Klubbinfo ger liganamnet mer utrymme och placerar arenan under liga.
  • Ändrat: Tränarnas kontor är åtkomligt från klubbmenyn.
  • Fixat: Bygghinder för arenamoduler beskriver om orsaken är nivå, maxantal eller markbrist i stället för generell text.

v0.0.55

  • Tillagt: Landväljare på Admin → Orter.
  • Tillagt: Publik sida för AI-manager från klubbprofil.
  • Tillagt: Dropdown-filter för nyhetskategorier.
  • Ändrat: Uppdateringsstatus och vanliga LIVE/notiser visas som ett två-raders stackat område under uppdatering.
  • Ändrat: Egen klubbinfo använder samma kompakta översiktslayout som publik klubbinfo.
  • Ändrat: Nyhetstyper visas lokaliserat på svenska/engelska.
  • Ändrat: Flaggbilder ligger efter manager- och landsnamn.
  • Fixat: Avbryt simulering: PostgreSQL 42P08 text/varchar-parameterfel.
  • Fixat: Gammal generisk personal-hire-trigger inaktiveras på riktigt och verifierade dubletter rensas.
  • Fixat: AI-manager på annan klubb är klickbar.

v0.0.54

  • Tillagt: Pausa simulering, Återuppta simulering och Avbryt simulering på ligans säsongskontroll.
  • Tillagt: Ny simulation_paused-status som stoppar nya simulationsbatchar men låter aktuell batch avslutas.
  • Ändrat: Avbruten simulering återgår till ligans status före simuleringen (active eller paused) och behåller redan spelade resultat.
  • Ändrat: LIVE-raden växlar mellan samtidiga matcher var sjätte sekund.
  • Fixat: LIVE-raden kan inte längre fastna på en av flera samtidiga matcher.

v0.0.53

  • Tillagt: Beständig säsongsavslutningsrapport per liga med ligavinnare, divisionsvinnare, uppflyttningar och nedflyttningar.
  • Tillagt: Meriter & pokaler-sektion på egna och publika klubbsidor.
  • Tillagt: Landspecifika grunddelar i klubbnamnsgeneratorn för flera länder.
  • Ändrat: Säsongskontrollens actions behåller vald liga efter Starta/Pausa/Återuppta/Stoppa/Simulera.
  • Ändrat: World Generator visar uttryckligen vilket lands klubbnamnsregler som redigeras och använder neutral fallback om landet saknar regler.
  • Ändrat: Ligamästaren får cup-pokal och övriga divisionsvinnare får sköld-merit.
  • Ändrat: Managerflaggan på den egna klubbsidan ligger efter namnet.
  • Fixat: Ingen dubblerad /games/football-empire i redirect från säsongskontrollen.
  • Fixat: Den gamla databastriggern skapar inte längre en andra generisk STAFF_HIRED-nyhet.
  • Fixat: Befintliga generiska personalanställningsdubletter tas bort när motsvarande nya mallbaserade event finns.
  • Notering: v0.0.53 bygger på den korrigerade v0.0.52-patchen med säsongskontroll per liga.

v0.0.52

  • Tillagt: Säsongskontroll per enskild liga med Starta, Pausa, Återuppta, Stoppa och Simulera säsong.
  • Tillagt: Mobil hamburgermeny för huvudnavigationen.
  • Ändrat: Alla divisioner inom vald liga delar säsongsstatus; andra ligor i samma land påverkas inte.
  • Ändrat: Simulering och worker-kontroll filtrerar ligamatcher via league_id och kör högst fem matcher åt gången.
  • Ändrat: World Generator skapar nya ligor i DRAFT-läge och ligan startas manuellt.
  • Ändrat: Säsongsavslutning skapar nästa säsong endast för den avslutade ligan och hanterar upp-/nedflyttning inom ligan.
  • Notering: Den tidigare ej installerade v0.0.52-filen som styrde hela landet ska inte användas.
  • Notering: Befintliga ligor migreras till ACTIVE för att inte ofrivilligt stoppa pågående matcher vid installation.

v0.0.51

  • Tillagt: Separata Kommande matcher och Spelade matcher-kort på den egna klubbsidan med 10 matcher per sida och pagination med pilar och sidnummer.
  • Tillagt: Gemensam matchlista som blandar ligamatcher, träningsmatcher samt cup-/turneringsmatcher och visar matchtyp/tävling.
  • Ändrat: Publika klubbprofiler visar riktigt liganamn samt Land som text i informationsrutan.
  • Ändrat: Startsidan visar statistikboxen överst i högerspalten och Managers online under med gemensamma gridrader.
  • Ändrat: Matchinfo-planen är mindre och har ett lätt 2.5D-perspektiv utan att ändra matchmotorn.
  • Fixat: Ungdomens kontraktsdialog stängs efter lyckat kontraktsförslag.
  • Fixat: Managerlänkar på andra klubbars profil förstärks och är klickbara för mänskliga managers.
  • Fixat: 2D-planens positionsmappning deduplicerar startelvan, hanterar fler positionskoder och placerar exakt en GK i mål per lag.
  • Fixat: Cup-/turneringsradering redirectar inte längre till dubblerad /games/football-empire-sökväg och visar bekräftelse efter lyckad radering.
  • Notering: Patchen kräver ingen databas-migration.
  • Notering: Cup- och turneringsmatcher länkar till tävlingens sida från klubbens matchlistor.

v0.0.50

  • Tillagt: Landväljare under Ligor med flagga efter landsnamnet och landsspecifik ligasida med breadcrumbs.
  • Tillagt: Permanent borttagning av cup/turnering för skapande manager samt admin/superadmin, med explicit RADERA/DELETE-bekräftelse.
  • Tillagt: Visning av skapande manager och aktuell managerklubb på cup-/turneringssidan.
  • Tillagt: World Generator-val för att skapa endast ligastruktur utan klubbar och matcher.
  • Tillagt: Populera med klubbar under Admin → Seriesystem som fyller endast lediga platser i aktiva divisioner.
  • Tillagt: Grafisk 2D-fotbollsplan på Matchinfo med mål, linjer, mittcirkel, straffområden och båda startelvorna.
  • Tillagt: Stor matchklocka med minuter och sekunder som visualiserar tiden mellan worker-tick.
  • Ändrat: Publika Ligor-sidan visar inte längre alla divisioner från alla länder samtidigt.
  • Ändrat: Klubbpopulering från Seriesystemet återanvänder World Generator-profiler för klubb, arena, AI-manager och spelartrupp.
  • Ändrat: Matchinfo visar startelvor publikt även för matcher som inte tillhör den inloggade klubbens manager.
  • Fixat: Minskar risken för rörig ligavy när fler länder får aktiva ligor genom att gruppera navigeringen på landnivå.
  • Notering: Patchen kräver ingen databas-migration.
  • Notering: Vid permanent radering av en ännu ej startad betalcup återbetalas accepterade deltagares entry fee innan tävlingen tas bort.
  • Notering: Befintliga klubbar raderas eller flyttas aldrig av funktionen Populera med klubbar.

v0.0.49

  • Tillagt: Återkommande transferfönster per veckodag och klockslag under Admin → Transfers.
  • Tillagt: Stöd för att välja flera veckodagar i samma veckoschema; tiderna tolkas i Europe/Stockholm.
  • Tillagt: Variantnyckel för tvåspråkiga nyhetsmallar så samma händelse får motsvarande svensk och engelsk text.
  • Tillagt: Dropdown-väljare under Admin → Förbund som visar information för ett förbund åt gången.
  • Ändrat: Managers online ligger överst i högerspalten och den roterande statistikboxen under; båda raderna använder samma CSS-gridhöjd som vänstersidan.
  • Ändrat: Manager-nationalitetsflaggan visas efter namnet i samma kompakta format som spelare och personal.
  • Ändrat: Språkväxlaren använder faktiska flaggbilder för svenska/engelska.
  • Ändrat: Online-managers namn länkar till managerprofilen och klubbnamnet länkar separat till klubben.
  • Ändrat: AI-transfermotorn använder den centrala transferfönsterkontrollen och respekterar därmed även återkommande veckofönster.
  • Fixat: Ungdomskontrakt: rättar INSERT med fler VALUES-uttryck än målkolumner (PostgreSQL 42601).
  • Fixat: Andra managers kan öppnas från fler klubbvyer och managerhistorik.
  • Fixat: Personalrörelser: personalens namn och klubbens namn är klickbara.
  • Fixat: Nya automatiska personalnyheter byter inte längre till en annan slumpmässig nyhetsvariant vid språkbyte.
  • Notering: Patchen innehåller databas-migration v0.0.49 och rollback-migration.
  • Notering: Både fasta datumfönster och återkommande veckofönster kan vara aktiva samtidigt; transfermarknaden är öppen om något aktivt fönster är öppet.
  • Notering: Free Agent-kontraktsflödet behåller befintligt beteende och är inte bundet till vanliga transferfönster.

v0.0.48

  • Fixat: Klubbsidan kraschar inte längre när FederationRoleMenus kontrollerar förbundskaptenrollen.
  • Fixat: Managerkontoret och publika managerprofilen använder fm_national_teams.name istället för obefintliga name_sv/name_en.
  • Fixat: Landslagssidan visar korrekt landslagsnamn utan att förlita sig på obefintliga språkfält.
  • Notering: Ingen databasmigration krävs.
  • Notering: Hotfixen installeras ovanpå v0.0.47.

v0.0.47

  • Tillagt: Dynamiska Förbundet- och Landslaget-menyer för användare med dessa aktiva roller.
  • Tillagt: Publik managerprofil med nationalitet och klickbara aktuella uppdrag.
  • Ändrat: Managerkontorets mini-profil visar även nationalitet och förbunds-/landslagsuppdrag.
  • Ändrat: Klubbnyheter görs kompaktare och placeras tillsammans med kommande matcher.
  • Ändrat: Startsidan använder en gemensam grid så motsvarande kort linjerar vertikalt.
  • Ändrat: Fotbollsvärlden-breadcrumb flyttas under hero-rutan.
  • Fixat: Personalflaggor förstoras inte längre av personalkortets porträtt-CSS.
  • Fixat: Förbundsordförande och förbundskapten saknar inte längre navigationsmeny i klubbens högerspalt.
  • Notering: Ingen databasmigration krävs för v0.0.47.
  • Notering: Patchen är byggd ovanpå v0.0.46.

v0.0.46

  • Tillagt: Livesökning/autocomplete efter användare på vänsidan med prefixmatchning från två tecken.
  • Tillagt: Invite-system på profilen med e-postinbjudan, personlig kopierbar länk och spårning av inbjudare.
  • Tillagt: Adminverktyg direkt på klubbsidan: avsätt manager och permanent radera klubb med adminlösenord och dubbel bekräftelse.
  • Tillagt: Admin → Spelare för manuell generering av spelare som alltid skapas som Free Agents.
  • Tillagt: Admin → Nyhetsmallar för att lägga till, redigera, aktivera/inaktivera och ta bort automatiska nyhetstexter.
  • Tillagt: Klubbnyheter på både egen och andra klubbars sidor.
  • Tillagt: Adminlogg för känsliga åtgärder och valfritt publikt skäl vid användar-/managerborttagning.
  • Ändrat: Personalvyer visar nationalitetsflagga och personalgeneratorn kan skapa utländsk personal med svensk viktning.
  • Ändrat: Personal som anställs eller lämnar skapar mer levande rollanpassade nyheter; person och klubb är klickbara.
  • Ändrat: Manageravsked skapar nyhet och klubbhistoriken kan visa angivet skäl.
  • Ändrat: Den roterande statistikboxen ligger i högerspalten ovanför Managers online och startsidans layout har justerats.
  • Ändrat: Kommande matcher använder den gemensamma kalendern och visar liga-, cup- och träningsmatcher med tävlings-/matchtyp.
  • Ändrat: Kommande i kalendern har flyttats längre ned för att ge Kommande matcher tydligare fokus.
  • Ändrat: Package-metadata och BUILD_DATE synkas med v0.0.46.
  • Fixat: Managerhistorik bevaras när ett användarkonto tas bort genom ON DELETE SET NULL och sparat managernamn.
  • Fixat: Vänsökningen använder starts-with/prefix i stället för bred innehåller-sökning.
  • Fixat: Klubbrelaterade automatiska nyheter återanvänder samma centrala nyhetsdata i globalt flöde och klubbflöde.
  • Notering: Ta bort klubb är avsiktligt en destruktiv adminåtgärd och kräver textbekräftelsen DELETE CLUB samt aktuellt adminlösenord.
  • Notering: v0.0.46 innehåller databas-migration och rollback-migration.
  • Notering: Versionsobundna idéer i Notes.md, såsom liga start/paus/simulering och Förbundet-menyn, ingår inte i denna patch.

v0.0.45

  • Tillagt: Fotbollsförbund för aktiva länder med förbundsordförande, permanent ordförandehistorik och adminhantering.
  • Tillagt: Landslag per land med förbundskapten, historik, kallelser, klubbmanagergodkännande samt startelva/bänk/taktik.
  • Tillagt: Förbundsordförande får behörighet att administrera seriesystemet i sitt eget land.
  • Tillagt: Frivillig managernationalitet på profilen.
  • Tillagt: Kontextkänslig Fotbollsvärlden i siffror på land-, liga- och divisionssidor med bläddring vid många divisioner.
  • Tillagt: Liga- och divisionsfilter när en manager väljer lag till egen cup.
  • Ändrat: Publika spelartrupper visar samma nationalitetsflaggor som den egna truppen.
  • Ändrat: Klubbinfo använder den befintliga riktiga flaggkomponenten i stället för text/emoji-variant.
  • Ändrat: Senaste resultat visar 10 matcher och Kommande matcher ligger direkt under i samma sidokolumn.
  • Ändrat: Breadcrumb flyttas under den gröna huvudrubriken på land/liga/division så notisområdet ovanför hålls fritt.
  • Ändrat: Adminens uppdateringsprogress med procent återställs separat från den publika underhållsnotisen.
  • Ändrat: Cupvalet för vanliga managers begränsas fortsatt till det egna landet men kan filtreras på liga/division.
  • Fixat: Råa kontraktsstatusar som leave_at_expiry översätts korrekt på svenska.
  • Fixat: Vilande spelare markeras Vilar och kan inte väljas till startelva eller bänk.
  • Fixat: Skadade spelare markeras Skadad och kan inte väljas till startelva eller bänk.
  • Fixat: Matchspecifik uppställning visar begripligt felmeddelande i UI om en otillgänglig spelare ändå finns i gammal data.
  • Fixat: Positionsförkortningar visas även på den matchspecifika strategin.
  • Fixat: Backendvalideringen för både standard- och matchuppställning blockerar vilande och skadade spelare.
  • Notering: Förbundskaptenen sköter landslaget; förbundsordföranden sköter förbundet och landets seriesystem.
  • Notering: Avsättning av både förbundsordförande och förbundskapten kräver anledning som sparas i historiken.
  • Notering: Internationella cuper för admin/förbundsordförande är fortsatt en senare utbyggnad; vanliga managers skapar cuper inom eget land.
  • Notering: Fungerande v0.0.44/v0.0.43-funktioner ska bevaras och har inte byggts om i onödan.

v0.0.44

  • Tillagt: Klubbnamnsgenerator i World Generator med {City}, {LocalPlace}, {Region}, {Prefix}, {Suffix}, {Nickname} och {Descriptor}.
  • Tillagt: Databastabeller för landsvisa klubbnamnsmönster, namnkomponenter och lokala platser/stadsdelar.
  • Tillagt: Roterande statistikmodul på framsidan, 10 sekunder per värde.
  • Tillagt: Konsekvensvy och säkra flyttalternativ vid borttagning av liga, serie och division.
  • Ändrat: Seriesystem och World Generator får tydligare separerade roller: skapa värld respektive administrera befintlig struktur.
  • Ändrat: Managers Online-kolumnen görs jämnare och får stabil desktop/mobile-layout.
  • Ändrat: World Generator blockerar ny generering även när gammal ligastruktur finns utan klubbar, vilket minskar risken för dubbla ligor.
  • Ändrat: Publik klubbprofil använder sidokolumnens prisskåp utan duplicerad trofésektion.
  • Ändrat: Kontraktsnöjdhet viktar löneavvikelse mjukare och ger grace-period för nya spelare.
  • Fixat: Matchdag/tid i Seriesystem remountas från sparad match_schedule efter save och visar inte längre gammalt defaultValue.
  • Fixat: Borttagning i Seriesystem visar begripliga meddelanden i stället för rå Application error när beroenden finns.
  • Fixat: Speltidslöften och kontraktsbedömning använder klubbens tävlingsmatcher; träningsmatcher räknas inte.
  • Fixat: Ingen speltidskritik före minst tre tävlingsmatcher.
  • Fixat: Transferbegäran fortsätter vara separat från transferlistning och FOR UPDATE OF p-fixen från v0.0.43 bevaras.
  • Notering: Riktiga flaggor och spelarvila kommer från v0.0.43 och byggs inte om i denna patch.
  • Notering: Matchhistorik skyddas vid divisionsborttagning; en division med kopplade fixtures tas inte bort förrän historiken kan arkiveras säkert.

v0.0.43

  • Tillagt: Spelarvila med 1/3/7 dagar eller valt sluttid; vilande spelare blockeras från match och träning och återhämtar sig snabbare.
  • Tillagt: Klickbar karriärhistorik på spelarprofilen med från-klubb, till-klubb, datum och händelsetyp.
  • Tillagt: Landssidor och ligasidor med breadcrumb-navigation Fotbollsvärlden → Land → Liga → Division.
  • Tillagt: Riktiga flaggbilder i klubb- och spelarvyer samt spelarlistan.
  • Tillagt: Prisskåp i klubbprofilens sidokolumn och tävlingsstatus en tävling per rad.
  • Ändrat: AI-transferlogiken begränsar antal listade spelare per klubb, skyddar nyckelspelare/talanger/positionsdjup, sänker pris på osålda spelare och drar tillbaka dem efter angiven tid.
  • Ändrat: Transfercenter får fritextsökning samt liga- och divisionsfilter.
  • Ändrat: Managers online flyttas till kompakt högerspalt på framsidan.
  • Ändrat: AI-managers sparas i managerhistoriken från start och markeras med (AI).
  • Ändrat: Uppdateraren bygger innan write-lock/worker-paus så den gamla webben fortsätter svara under den långa buildfasen.
  • Fixat: PostgreSQL-felet FOR UPDATE på nullable LEFT JOIN åtgärdas med FOR UPDATE OF p.
  • Fixat: Spelare får inget negativt speltidsstraff innan minst tre matcher finns som underlag.
  • Fixat: En transferbegäran transferlistar inte längre spelaren automatiskt; manager/AI-manager beslutar om listning.
  • Fixat: Maintenance clear/complete frigör även stale maintenance_paused-status.
  • Fixat: Matchkritiska workerjobb körs före sekundära system så ett fel i exempelvis kontraktslogiken inte stoppar avspark/live-simulering.

v0.0.42

  • Tillagt: World Generator för land, tier-profiler, ligaserier, pyramidkopplingar och visuell preview.
  • Tillagt: 43 europeiska fotbollsländer med importerad namn- och ortsbank; spelets ekonomi standardiseras till EUR.
  • Tillagt: Sveriges första generator-mall: Allsvenskan, Superettan, Ettan Norra, Ettan Södra, Division 2 och Division 3 – totalt 90 klubbar.
  • Tillagt: Populera land skapar nivåanpassade klubbar, orter, arenor, sponsoravtal, AI-managers, 22 spelare per klubb, tabeller och ligamatcher.
  • Tillagt: DEV → LIVE i admin med lösenordsverifiering, separat LIVE-backup, release-snapshot, migrationer, health-check, deployhistorik och automatisk rollback.
  • Ändrat: Legacy-seeden 4 divisioner/40 klubbar hoppas över när World Generator-mallar finns.
  • Ändrat: Uppdateringsmeddelandet ligger i sidans layout och får prioritet framför LIVE-matchpanelen.
  • Ändrat: Uppdateringsmeddelandet försvinner automatiskt när health-check är godkänd.
  • Ändrat: Nivåprofiler styr startbudget, lönebudget, spelarkvalitet, potential, arena, supporters, ungdomsnivå, biljettpris, sponsor och TV-nivå.
  • Fixat: FM_AUTO_SEED=false respekteras av workern.
  • Fixat: Schema-start markerar inte längre alla konton som managers online.
  • Fixat: DEV-databas och testvärld kopieras aldrig av DEV→LIVE-flödet; LIVE .env, docker-compose.yml och storage bevaras.

v0.0.41

  • Tillagt: Central statusöversättning för svenska/engelska så interna DB-statusar inte behöver visas rått i spelgränssnittet.
  • Tillagt: Klubblogga och friare informationslayout på publik klubbsida med förberett utrymme för flera tävlingsstatusar.
  • Tillagt: Arenabaserad matchpresentation som reagerar på digital resultattavla, ljudsystem och strålkastare.
  • Ändrat: Klubbinformationen använder färre synliga boxar och en öppnare, mer flexibel layout.
  • Ändrat: Matchfakta visas enklare på grundarenor; förhöjd presentation aktiveras bara när hemmalaget har relevanta arenauppgraderingar.
  • Ändrat: AI-träningsmatcher får ett deterministiskt svarsfönster på 1–4 minuter i stället för att kunna fastna i pending.
  • Ändrat: AI-inbjudningar till cuper/turneringar hanterar även tävlingar utan explicit invitation_deadline.
  • Fixat: v0.0.40-middleware tas bort från Football Empire-routes så standalone/basePath inte längre kan ge tomma 200-svar.
  • Fixat: Logout använder publik forwarded host/proto i stället för intern 0.0.0.0:3000-adress.
  • Fixat: Pending/accepted/rejected/withdrawn/transfer_requested och andra användarsynliga statusar översätts efter valt språk.
  • Fixat: Tidigare manuella friendlies basePath-, kontrakts-cast- och chat bigint/read-fixar bevaras i basen.

v0.0.40

  • Tillagt: Global flytande uppdateringsnotis högst upp för alla användare med tydliga faser.
  • Tillagt: Server-side maintenance-lås som blockerar användarens skrivande requests under kritisk uppdateringsfas.
  • Tillagt: Worker-paus som fryser live-matcher och övrig simulering innan databas/build och återupptar efter upplåsning.
  • Tillagt: Manuellt underhållsläge i Admin → Systemstatus.
  • Tillagt: Workerstatus med lokal browser-tid, Online/Fördröjd/Offline/Pausad och riktig uptime.
  • Ändrat: Framtida uppdateringar visar först förberedelse, låser sedan ändringar, väntar på worker-paus och går därefter vidare med databas/build.
  • Ändrat: Updateraren håller maintenance-låset genom build, omstart och health-check och släpper det först när webben är healthy.
  • Ändrat: Rollback körs också under maintenance-lås; vid misslyckad automatisk återställning lämnas systemet avsiktligt låst för att undvika fler ändringar.
  • Fixat: Worker heartbeat visas inte längre som serverns UTC-klockslag utan renderas i användarens/browserns lokala tid.
  • Fixat: Pågående matcher behöver inte avbrytas vid framtida uppdateringar utan pausas mellan simulationsticks.

v0.0.39

  • Tillagt: Kompakt adminlista med separat detaljsida per användare och säkra kontoåtgärder.
  • Tillagt: Admin kan skicka e-post till en användare, en division eller alla aktiva användare.
  • Tillagt: Användarinställning för 24h/12h tidsformat; träningsmatchbokningen får ett formatstyrt tidsval.
  • Tillagt: Docker CPU/RAM-status och worker-heartbeat i Admin → Systemstatus.
  • Ändrat: AI-klubbar i cuper/turneringar svarar inom ett begränsat tidsfönster i stället för att kunna förbli passiva länge.
  • Ändrat: Träningskonflikter räknas på faktisk tid och duration med buffert, inte hela kalenderdagen.
  • Ändrat: Webbläsartitel sätts till Football Empire och browser-ikon används centralt.
  • Fixat: Dubblett-e-post i admin ger ett begripligt fel i stället för PostgreSQL/Application Error.
  • Fixat: Träningsmatchens basePath-redirect som kunde ge 404 är permanent rättad.
  • Fixat: AI-cupinbjudningar får deterministisk svarstid och behandlas av workern.

v0.0.38

  • Tillagt: Ekonomiskt kris- och ägarsystem med andelsförsäljning, återköp, styrelseförtroende och kontrollrisk.
  • Tillagt: Arenaförsäljning med synligt försäljningspris och krav på ny arena före nästa hemmamatch.
  • Tillagt: Ungdomstränare med scoutingrapporter för särskilt lovande akademispelare.
  • Tillagt: Global lagsökning i huvudmenyn och kompakt lista över managers som är online.
  • Tillagt: MVP i officiella matcher med tillfällig prestationsboost samt säsongsmedalj för skytteligavinnare.
  • Tillagt: Världssammanfattning på startsidan med antal spelare/klubbar/divisioner, serieledare och aktuell skytteligaledare.
  • Ändrat: Ungdomsvärdering och lönekrav har balanserats mot seniortruppens ekonomi; högre värde kräver starkare egenskaper/potential.
  • Ändrat: Arenasidan skiljer tydligare på läktare, interna arenamoduler och yttre mark samt förklarar varje moduls effekt.
  • Ändrat: Träningsanläggningar och träningsfokus beskriver tydligare vad de påverkar; huvudtränare och målvaktstränare kan ha egna fokus.
  • Ändrat: Träningsmatcher ger individuella matchträningsrapporter och målvakter får särskild rapport om matchvana.
  • Ändrat: Adminstyrd maxgräns för samtidigt transferlistade spelare visas som använd/max.
  • Ändrat: Nationalitetsflagga visas i egen kompakt kolumn och efter spelarens namn; landnamnet lämnas till tooltip.
  • Ändrat: Nyhetslistan på startsidan begränsas till de 10 senaste posterna.
  • Fixat: Extrema ungdomsvärden/lönekrav dämpas när nuvarande egenskaper inte motiverar premiumvärdet.
  • Fixat: Online-status uppdateras även för den äldre Game Portal-sessionbryggan.
  • Fixat: Arenamoduler visar varför de är låsta och hur mycket plats som finns kvar.
  • Notering: MVP delas inte ut i träningsmatcher.
  • Notering: Skytteligans slutvinnare räknas från faktiska ligamål i den avslutade säsongen.
  • Notering: Flaggsystemet renderar ISO-landskoder centralt; England använder engelsk flagga i stället för UK-flagga.

v0.0.37

  • Tillagt: Nationalitetskod och flagga på spelar- och personalprofiler med ISO-baserat stöd för världens flaggor.
  • Tillagt: Landförberedelser för Norge, Finland, Danmark och England utöver Sverige.
  • Tillagt: Matchdagsintäkter från kiosker, barer och klubbshop/merch med separata bokföringsposter.
  • Tillagt: Automatiska stadsderbyn när två klubbar med samma hemort möts, med publik- och kommersiell bonus.
  • Tillagt: Separat träningsmatchstatistik inom parentes på spelarprofilen.
  • Tillagt: Randomisering och tydlig räknare i cupskaparen.
  • Ändrat: Träningsmatcher säljer inga lösbiljetter; endast årskortsinnehavare kan utgöra publik.
  • Ändrat: Cupskaparen inkluderar alltid den egna klubben och tillåter exakt maxantal minus ett andra lag.
  • Ändrat: Cupskapande kräver slutlig bekräftelse och valideras även på servern.
  • Ändrat: Vinst, oavgjort och förlust får diskreta gröna, gula respektive röda resultatoner.
  • Ändrat: Efter-match-kommentarer är inte längre begränsade till en kommentar per klubb.
  • Fixat: Träningsmatchmål, assist och kort räknas inte längre in i officiella karriärtotalsiffror.
  • Fixat: Officiella befintliga totalsiffror räknas om från avslutade tävlingsmatcher vid migrationen.
  • Fixat: Kommentarsfältet återgår till tomt läge efter lyckad publicering så fler kommentarer kan skrivas.
  • Notering: Klubbshoppen som redan kan byggas på arenan används som merch-shop.
  • Notering: Nuvarande spelare och personal får Sverige som standardnationalitet; framtida länder kan använda samma ISO-landskodssystem.

v0.0.36

  • Tillagt: Filter och sortering på transfermarknaden för position, status, styrka, ålder, pris, värde, lön, mål, assist och klubb.
  • Tillagt: Ungdomsakademi med fler spelarstats, potentialspann, scout-/personlighetsdata och kontraktsförhandling vid uppflyttning.
  • Tillagt: Admininställning youth.minimum_promotion_age med standard 17 år.
  • Tillagt: Vänförfrågningar och chattmeddelanden skapar notiser; vän- och chattlistor visar även klubbnamn.
  • Tillagt: Positionsförklaringar även på strategi/laguttagning.
  • Ändrat: Matchsponsorer kan bytas före avspark och betalas först när matchen startar.
  • Ändrat: Topprad/navigation och live-rad ligger kvar vid scroll.
  • Ändrat: Press, tempo, bredd och backlinje delar på exakt 100 procent och balanseras proportionellt.
  • Ändrat: Ungdomar som inte lyfts upp eller släpps stannar i akademin och kan fortsätta utvecklas.
  • Ändrat: Arenanivå visar uppgraderingskostnaden och klubbkassan innan köp.
  • Fixat: Permanenta bigint-casts i vänner och chatten för bigint = text-felen.
  • Fixat: Chatten sätter read_at först när konversationen är öppen, vilket gör unread-notiser symmetriska.
  • Fixat: Matchstrategin visar sparade eller väntande värden i stället för att hoppa tillbaka efter save.
  • Fixat: Matchsponsorpengar kan inte längre erhållas vid själva valet.
  • Notering: Befintliga akademispelare under 17 flyttas till 17 i migrationen för att inte bli permanent dolda.
  • Notering: Sponsorval lagras som valt före match; paid_at förhindrar dubbel utbetalning vid matchstart.

v0.0.35

  • Tillagt: Vänsystem med användarsökning, vänförfrågningar och vänlista.
  • Tillagt: Flytande global vänchatt med olästmarkering, minimera och diskret nytt-meddelande-ljud.
  • Tillagt: Positionsförklaringar via tooltip och utfällbar lista.
  • Tillagt: Matchsponsorer med flera engångsbud per kommande hemmamatch.
  • Tillagt: Egen klubbhistorik på den egna klubbsidan.
  • Ändrat: Vänner visas i huvudnavigationen.
  • Ändrat: Alla Division 1-4-arenor balanseras en gång efter division med varierande kapacitet och startmoduler; befintliga arenanamn behålls.
  • Ändrat: Spelarlöner och klubbarnas lönebudget balanseras en gång efter division och spelarstyrka.
  • Ändrat: Supporterbas och biljettpris varierar efter division/klubb för större skillnader i publik och ekonomi.
  • Fixat: Träningsmatchtider sparas korrekt från svensk lokal tid till UTC och visas lika för båda managers.
  • Notering: Division 4 startar från 500 platser. Spannen är ungefär Div4 500-2000, Div3 1500-5000, Div2 4000-10000 och Div1 8000-20000.
  • Notering: Divisionsbalanseringen är idempotent och körs inte om om migrationen exekveras igen.

v0.0.34

  • Tillagt: Orter/hemvist med Admin-katalog, svensk startkatalog och historikgrund för framtida klubbflytt.
  • Tillagt: Liveändringar av matchstrategi med fördröjd effekt och taktiska matchhändelser.
  • Tillagt: Sorterbar spelartrupp på alla relevanta tabellrubriker.
  • Tillagt: Jämförelse mellan personalmarknad och nuvarande anställda i samma roll.
  • Ändrat: Hemort visas på egna och publika klubbprofiler.
  • Ändrat: Träningsmatchinbjudningar ger användarvänliga felmeddelanden för förväntade konflikter.
  • Fixat: Worker-felet inconsistent types deduced for parameter $3 i kontraktsöversynen är permanent korrigerat.
  • Fixat: challenge already pending visas inte längre som server-side Application error.
  • Notering: Första hemorten kan bara väljas en gång. Själva flyttfunktionen kommer senare; databasen förbereder kostnad och supporterreaktion.
  • Notering: Taktikändringar under match börjar normalt gälla cirka två matchminuter senare och kan inte spammas varje minut.

v0.0.33

  • Tillagt: Adminnotiser och Kräver åtgärd-panel för väntande klubbbegäranden, inklusive avslag och beslutsnotiser.
  • Tillagt: Publik personalprofil per klubb för anställd personal och korrigerade länkar från anställningsnyheter.
  • Tillagt: Positionshistorik och kontrollerat byte av spelares huvudposition.
  • Tillagt: Detaljerad matchhistorik på spelarprofil med minuter, mål, assist, kort och rating.
  • Tillagt: Arenahistorik med matchtyp, publik, slutsålt och matchdagsnetto.
  • Tillagt: Rivalitetssystem med grundrivaler, intensitet, publikbonus och extra moralpåverkan.
  • Tillagt: Regelbunden kontraktsnöjdhetsöversyn för spelare.
  • Ändrat: Systemstatus och Uppdateringar flyttas in under Admin → Inställningar.
  • Ändrat: Spelinställningar och Onboarding flyttas ut till huvudnivån i Admin.
  • Ändrat: Spelarlöften utvärderas mot faktisk speltid och antal starter.
  • Ändrat: Kontraktsacceptans återställer kontraktsnöjdhet och eventuell spelvägran.
  • Ändrat: Klubbprofiler visar fler rekord och rivaler.
  • Fixat: Anställd personal öppnas inte längre som ett otillgängligt marknadskort när personen redan arbetar för en annan klubb.
  • Fixat: Admin missar inte längre nya klubbbegäranden på grund av avsaknad av notis/badge.
  • Notering: Kontraktsbrytning är avsiktligt en mycket sällsynt longshot och styrs via Admin-spelinställningar.
  • Notering: Spelvägran gör att spelaren inte används av matchmotorns aktiva spelarurval tills läget förbättras.
  • Notering: Rivaliteter seedas försiktigt inom samma division när en klubb saknar rival; systemet kan byggas vidare med manuell Admin-hantering senare.

v0.0.32

  • Tillagt: Helt egen Football Empire-authyta med registrering, login, egen session-cookie, logout, e-postverifiering och lösenordsåterställning.
  • Tillagt: Admin → Användare med ändring av användarnamn/e-post, aktivera/inaktivera, manuell e-postverifiering, permanent/tidsbegränsad VIP och utskick av lösenordsreset.
  • Tillagt: Grundtabeller för framtida roller: Manager, Admin, Moderator, Support och Superadmin.
  • Tillagt: Onboarding för nya managers med Admin-val mellan manuell tilldelning, automatisk AI-klubb på lägsta nivån och ansökan till specifik ledig klubb.
  • Tillagt: Global matchkalender för liga-, cup-, turnerings- och träningsmatcher med klubbförkortningar.
  • Tillagt: Klubbkalender med återkommande träningsdagar, enskilda flytt/inställnings-undantag och kalenderkonflikter.
  • Tillagt: Ny klassisk Football Empire-logga med transparent bakgrund.
  • Ändrat: Login/registreringslänkar i Football Empire går nu till spelets egna authsidor i stället för Game Portal.
  • Ändrat: Befintligt enda konto migreras till Football Empire-kontotabellen via en övergångsbrygga; på Profil kan ett eget Football Empire-lösenord sättas och bryggan stängs därefter.
  • Ändrat: Startsidan visar en kompakt kalender med kommande matcher och leder användare utan klubb till onboarding.
  • Ändrat: Klubbsidor får kalenderlänk och använder korta unika klubbkoder i kalendervyer.
  • Ändrat: Träningsmatch kan inte bokas på en aktiv träningsdag för något av lagen; officiella tävlingsmatcher får företräde och påverkar bara det enskilda träningstillfället.
  • Fixat: Football Empire kan logga in/registrera användare utan att vara beroende av Game Portals loginflöde.
  • Fixat: Utloggning stannar på Football Empires startsida via spelets egen logout-route.
  • Notering: För att undvika en riskfylld total omskrivning av alla befintliga spel-FK:n behåller v0.0.32 game_users som intern kompatibilitetsidentitet, medan autentisering och sessionshantering ligger helt i nya Football Empire-tabeller.
  • Notering: Det gamla befintliga kontot använder tillfälligt Game Portal-session som migreringsbrygga tills ett eget Football Empire-lösenord sätts på Profil.
  • Notering: SMTP från v0.0.31 används för verifierings- och resetmail; Admin kan verifiera manuellt om SMTP ännu inte är aktiverat.

v0.0.31

  • Tillagt: Ny Admin → Inställningar-hubb med separata sektioner för System, SMTP/E-post, E-postmallar, Manageraktivitet/Rapporter och Spelinställningar.
  • Tillagt: SMTP-konfiguration med server, port, TLS/SSL, användarnamn, dolt lösenord, avsändare och Skicka testmail.
  • Tillagt: Redigerbara e-postmallar med ämne, HTML/text, mallvariabler, förhandsgranskning och testmail per mall.
  • Tillagt: Manageraktivitet med adminstyrda trösklar för påminnelse, varning, AI-övertagande och tidsfönster för att begära tillbaka klubben.
  • Tillagt: Adminflöde för att godkänna eller avslå begäran om att få tillbaka en AI-övertagen klubb.
  • Tillagt: Daglig manager-rapport via e-post med divisionsmatcher, värld/klubbnyheter och kommande match; användaren kan slå rapporten av/på i Profil.
  • Tillagt: Kvotbaserade årskort där manager väljer antal och pris per nytt släpp.
  • Tillagt: Ny egen Football Empire-utloggningsroute som stannar på spelets startsida.
  • Ändrat: Admin → Seriesystem använder en stegvis Land → Liga → Serie → Division-navigator och visar endast den del som redigeras.
  • Ändrat: Årskort begränsas av admininställd maxandel av arenakapaciteten, standard 70 procent.
  • Ändrat: Admin-starten länkar till den nya inställningshubben och klubbåterbegäranden.
  • Ändrat: Spelinställningar ligger kvar separat från SMTP, e-post och manageraktivitet.
  • Fixat: Gamepad-länken till Game Portal tas bort från Football Empires toppnavigation.
  • Fixat: Utloggning skickar inte längre användaren tillbaka till Game Lobby.
  • Notering: Football Empire använder fortfarande Game Portals befintliga session/auth i v0.0.31; helt egen Football Empire-auth är planerad till v0.0.32.
  • Notering: Befintliga managers initieras som aktiva vid migrationen så ingen kan avsättas direkt när v0.0.31 installeras.
  • Notering: SMTP måste aktiveras och konfigureras innan automatiska e-postutskick kan levereras.

v0.0.30

  • Tillagt: Ny Admin → Systemstatus med live diskstatus, Docker system df, tjänstestatus och senaste underhållsjobb.
  • Tillagt: Manuella knappar för att rensa gammal Docker build-cache och gamla oanvända images utan att röra volymer.
  • Tillagt: Automatisk schemalagd rensning av build-cache och oanvända images med adminstyrda gränser/intervall.
  • Tillagt: Diskkontroll före framtida patchinstallationer; uppdatering blockeras om ledigt utrymme understiger admininställd gräns.
  • Tillagt: Avbryt & återställ för pågående uppdateringar samt automatisk upptäckt/återställning av stale building-jobb efter updater-omstart.
  • Tillagt: Versionshistorik med utfällbar Visa ändringar och Visa filer, inklusive NY/ÄNDRAD/SQL där backupmanifest finns.
  • Ändrat: Updatern får robustare DB-retry, tydligare progressdetaljer och säkrare rollback-flöde.
  • Ändrat: Admin-startsidan visar diskvarning när lagringen passerar varningsgränsen och länkar till Systemstatus.
  • Ändrat: Drift & underhåll blir en egen inställningskategori med standardvärden för cache, images, diskgränser och stale jobs.
  • Fixat: Pressfrågans svarsknappar får korrekt kontrast och blir tydligt synliga på ljusa kort.
  • Fixat: Arena-modulernas köp-/låstknappar får tydligare kontrast, disabled-state och mobil layout.
  • Notering: Docker-volymer rensas aldrig automatiskt.
  • Notering: Automatisk rensning pausas medan installation eller rollback pågår.
  • Notering: SMTP, e-postmallar, manager-inaktivitet, dygnsrapporter, årskortskvoter och kompakt seriesystem ligger kvar till v0.0.31.

v0.0.29

  • v0.0.29 turns the front page into a world hub with scoped match filters, world statistics and a living news feed; automates AI cup invitations and deadline draws, adds safe competition cancellation/refunds and richer tournament information, adds post-match manager press releases and lightweight interviews, and assigns every club a globally unique compact abbreviation.

v0.0.28

  • v0.0.28 expands Arena into a plot- and module-based infrastructure system with season tickets and transport limits, adds match-specific lineup overrides, reorganizes the Manager office into focused sub-pages, rebuilds Admin → Seriesystem into full-width editable sections, and introduces inherited/overridable match-day schedules for leagues, series, divisions and competitions.

v0.0.27

  • v0.0.27 fixes all user-facing date/time rendering to Europe/Stockholm, rebuilds Admin → Seriesystem into a visible Country → Region → League → Series hierarchy with inline editing/deletion, help tooltips and a selected-series division workspace, moves club responsibility and competition creation into the Manager office, and adds an admin-configurable per-manager cooldown between cup/tournament creations.

v0.0.26

  • v0.0.26 is a live-match stability and polish patch: match pages now refresh before kickoff and throughout live play, the global live strip uses clear LIVE/MATCHSTART/MÅL/SLUT labels with 30-second priority events and rotation between simultaneous matches, homepage live scores use fixed columns, and admins can safely reset live or admin-ended matches for restart using pre-match player snapshots and economy rollback.

v0.0.25

  • v0.0.25 expands Football Empire with a hierarchical country/region/league/series/division structure, configurable promotion/relegation rules and bonuses, rebalanced stadium attendance and matchday economy, league/knockout custom competitions with draws and trophy cabinets, live match world updates, improved match navigation, challenge-from-club friendlies with no crowd revenue, needs-based AI staff recruitment, tabbed player profiles with automatic player promises, and a neutral default club badge.

v0.0.24

  • v0.0.24 adds live match auto-refresh, match-first navigation, dynamic formation layouts, per-match tactical overrides, friendlies with accept/reject and match-training effects, training focus moved into the facility/player profile workflow, morale/team chemistry, fan and board confidence, season objectives, player promises, richer player profiles and scouting uncertainty, club records, press reactions and weekly summaries.

v0.0.23

  • v0.0.23 adds short configurable player contracts with expiry alerts and AI parity, configurable weekly finance settlement with week-by-week budget views, clickable recent-match rows, promotion/relegation separators and season match counts, modular training facilities with staff prerequisites, folder-style staff market history, and a consolidated Manager office for identity and strategy.

v0.0.22

  • v0.0.22 expands Football Empire with richer live match events and attendance/ticket economy, public staff and employment history with configurable firing costs, safer transfer withdrawals and early window closure, player contracts, training, deeper tactics, sponsors, youth academy, club history, and modular worker systems.

v0.0.21

  • Live match engine fix: compressed 0–90 minute clock, half-time pause and recovery, server-side progression, live status display, and admin finish/abort controls.

v0.0.20

  • Transfers & squad market: transfer windows, cash offers, player trades, free-transfer/free-agent contracts, AI market activity, division transfer news, referee pool/history, and improved staff overview/market.

v0.0.19

  • Manager controls and UI: streamlined profile menu, Football Empire profile, ClubFrame stadium, strategy/lineup selection, admin live match start, lineup-aware match engine, and updater transaction/deadlock hardening.

v0.0.17

  • Staff market with role tabs, dynamic availability, AI competition, wage offers, direct hiring, weekly staff costs, staff effects and shared default profile image.

v0.0.16

  • Weekly budget page and finance tracking; 7-day club/stadium rename cooldown with configurable €5,000/€6,000 fees; grouped Admin game-rule categories; weekly sponsor/wage/stadium settlement; persistent logo/basePath fix.

v0.0.15

  • Club and stadium renaming with history, league > division navigation and redesigned division views, public league overview with results, and named AI managers generated from the shared Swedish name pool.

v0.0.14

  • Add public club profiles and squads, make club names clickable across match, league, home and club views, and allow public match/player navigation while keeping private club finances and player internals hidden.

v0.0.13

  • Add safe Leave Club flow with manager history, and rebuild Matches as a club-framed match list with clickable match details, events, attendance and discipline stats.

v0.0.12

  • Make the updater self-healing: worker watchdog keeps the updater service running and reconciles it to the newest built image after updates or VM/Docker restarts.

v0.0.11

  • Repair Swedish player-name regeneration with correct 1-based PostgreSQL array indexing and strict post-migration verification.

v0.0.10

  • Repair Swedish player-name regeneration with verified 180/260-name distribution, add migration tracking/verification, and add pausable live-log autoscroll.

v0.0.9

  • Expanded curated Swedish player-name pools, deterministic unique squad naming for all existing and future Swedish players, and updater progress hidden after a successful refreshed page.

v0.0.8

  • Swedish player-name refresh, EUR-standard economy, configurable average weekly wages by division, recalculated wages and market values, scrollable squad list, player goals/yellow cards/transfer status, and player stat tracking.

v0.0.7

  • Live updater progress with automatic polling, visible Docker build log, clearer failure details, fixed Compose project name and visible rollback for the latest active patch.