Files
alva/felsokning/services/gemensam/version.mjs
T
Claude ae5acbed92 Fotograferad mätarställning, versionshistorik och tysk kravbild i foten
---- Mätarställningen ska fotograferas ----------------------------------

Klienten krävde redan fotot: värdefältet visas först efter bilden. Men
GRINDEN gjorde det inte, och en regel som bara finns i gränssnittet är en
vana — inte en spärr. Det är samma förhållande som QUALITET C-2 gällde,
fast åt andra hållet: här var servern svagare, vilket är värre, eftersom
servern är den auktoritativa.

Skillnaden är hela uppgiftens bevisvärde. En inskriven siffra är
teknikerns påstående om vad som stod på mätaren; ett foto visar vad som
stod där. Mätarställningen avgör garanti- och försäkringsfrågor i
efterhand och är den enda uppgift i ärendet någon kan ha ett intresse av
att skriva fel. Evidensgraderingen följer nu med: fotograferad ger E2,
inskriven ger E1 och märks som inskriven i rapporten.

Undantag finns och måste finnas — slocknad display, oåtkomlig timräknare
— men kräver motivering, som det nekade historiksvaret.

---- Versionen räknades aldrig upp --------------------------------------

Systemet påstod "ALVA 1.0" efter tre revisioner, en fakturamodul och en
stängd portal. Versionen sa alltså ingenting om vad man fick.

Historiken är HÄRLEDD UR VAD SOM FAKTISKT LEVERERATS och varje post pekar
på sin commit. En utgåva som inte går att peka på hör inte hemma i listan
— en påhittad ändringslogg är samma obefogade säkerhet som produkten
finns för att undvika. Första siffran höjs bara när GARANTIERNA ändras,
vilket hänt två gånger: 2.0 när fakturan blev ett härlett dokument, 3.0
när TÜV-härdningen ändrade vad loggen garanterar. Nuvarande: 3.1.

Och ett fynd på vägen: ritningsstämpeln läste versionen ur den AKTUELLA
konstanten, så ett ärende stängt under 1.0 visade 3.1 — precis det
stämpelns egen beskrivning säger att den inte ska göra. Avslutshändelsen
bär numera versionen, och stämpeln läser den därifrån. Äldre ärenden
säger uttryckligen "ej registrerad" i stället för att låna dagens siffra.

---- Tysk kravbild i foten ----------------------------------------------

Listan är tysk därför att § 5 DDG är den strängaste och mest utkrävbara i
EU: klarar man den klarar man de andra marknaderna på köpet.

Två fällor som är aktuella just nu, och bägge ser fortfarande ut som
upplysningar:

  ODR-LÄNKEN SKA BORT. Förordning 524/2013 upphävdes genom förordning
  (EU) 2024/3228 och plattformen stängdes 20 juli 2025. Länken har legat
  i tiotusentals fotnoter sedan 2016 och pekar numera ingenstans. Foten
  saknar den medvetet.

  § 5 TMG HETER § 5 DDG sedan 14 maj 2024.

Modulen hittar inte på uppgifter. Ett Impressum med påhittad adress är
inte ett halvfärdigt Impressum utan ett vilseledande, och skadan större
än den tomma rutans. Osatta fält redovisas som en åtgärdslista med
rättslig grund, så driften kan spärra en driftsättning på listan i
stället för att upptäcka bristen när brevet kommer.

460 enhetstester · genomgången 4/4 · typkontroll ren.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012EQg3rJsrQ1ZNTvkzmQAtt
2026-08-06 15:15:35 +00:00

135 lines
5.4 KiB
JavaScript

// ALVA-SPEC-002 · Utgåvor.
//
// ---- Varför versionen är en egen modul ---------------------------------
//
// Den stod som en sträng i gränssnittskoden och räknades aldrig upp.
// Systemet påstod "ALVA 1.0" efter att kvalitetsgrinden flyttats till
// servern, schemat stängts, faktureringen byggts, portalen stängts och
// tre revisioner härdats. Versionen sa alltså ingenting om vad man fick.
//
// Historiken nedan är HÄRLEDD UR VAD SOM FAKTISKT LEVERERATS, inte
// skriven för att se ut som en produkt med lång historia. Varje post
// pekar på den commit där arbetet finns. En utgåva som inte går att peka
// på hör inte hemma i listan — en påhittad ändringslogg är samma sorts
// obefogade säkerhet som produkten finns för att undvika.
//
// ---- Vad som gör en utgåva stor -----------------------------------------
//
// Andra siffran räcker för ny funktion. Första siffran höjs bara när
// GARANTIERNA ändras — vad systemet lovar om ett underlag. Det har hänt
// två gånger: när fakturan blev ett härlett dokument i systemet, och när
// TÜV-härdningen ändrade vad loggen garanterar.
export const UTGAVOR = [
{
version: "3.1",
datum: "2026-08-06",
commit: "a94c228",
rubrik: "Regelverk, försäkringsunderlag och support i ärendet",
andringar: [
"Garantiregimer för EU och USA med källa och kontrolldatum per post — och skiljelinjen mellan lagstadgat och avtalat, som förväxlas åt bägge håll.",
"Försäkringsvillkor som underlag för ett samtal. Modulen avgör ingenting och kan inte avgöra något.",
"Felanmälan i varje ärende, med härlett sammanhang. Ett regnr kan inte smugglas med.",
"Mätarställningen ska vara fotograferad, inte bara inskriven — kravet fanns bara i gränssnittet och var därmed en vana, inte en spärr.",
],
},
{
version: "3.0",
datum: "2026-08-06",
commit: "b147694",
rubrik: "TÜV-revision och härdning av integritetsgarantierna",
stor: true,
andringar: [
"Händelsenyckeln skopad till ärendet: en organisation kan inte längre hindra en annan från att skriva historik.",
"Mätkedjan slås upp i mätdonsregistret — E4 var tidigare ett påstående klienten gjorde om sig själv.",
"Personnycklarna kuverteras under en huvudnyckel utanför databasen.",
"Gallringen verkställs av ett eget jobb i stället för att bara vara ett datum ingen läste.",
"Åtkomstloggen och raderingsregistret är append-only.",
],
},
{
version: "2.1",
datum: "2026-08-06",
commit: "3b83fc9",
rubrik: "Portalen stängd på riktigt",
andringar: [
"Inloggningen autentiserar mot plattformen och portalen är oåtkomlig utan giltig session.",
"Fakturavyn läser organisationens egna fakturor; ett misslyckat anrop visar felet, inte exemplet.",
],
},
{
version: "2.0",
datum: "2026-08-06",
commit: "b457543",
rubrik: "Fakturering i systemet",
stor: true,
andringar: [
"Fakturan härleds ur organisationens tillstånd i stället för att skrivas in.",
"Utfärdad faktura är oföränderlig; betalning är en händelse och statusen en projektion.",
"Nummerserie utan luckor. Ingen betalleverantör är inblandad.",
],
},
{
version: "1.3",
datum: "2026-08-05",
commit: "6676262",
rubrik: "Egen typografi och läsbarhet på telefon",
andringar: [
"Inbäddad typografi enligt ALVA-SPEC-001 — inga externa hämtningar.",
"Ritningsstämpel på rapporten, räta hörn, tätare spärrning.",
],
},
{
version: "1.2",
datum: "2026-08-05",
commit: "86d553b",
rubrik: "Sviten körs faktiskt",
andringar: [
"ALVA:s tester lades in i CI. De hade passerat bara när någon körde dem för hand — ett test som ingen kör är dokumentation, inte en spärr.",
"Genomgången blev ett incheckat test.",
],
},
{
version: "1.1",
datum: "2026-08-05",
commit: "31727a4",
rubrik: "Leverantörsrevision 2 och härdning",
andringar: [
"Händelseschemat stängt: okända fält avvisas i stället för att lagras.",
"Kvalitetsregeln finns på ett ställe — klienten frågar grinden i stället för att ha en egen åsikt.",
],
},
{
version: "1.0",
datum: "2026-08-04",
commit: "590fab3",
rubrik: "ALVA-metoden",
andringar: [
"Analys · Lokalisering · Verifiering · Åtgärd som metod, inte som assistent.",
"Kvalitetsgrinden serverauktoritativ. Avslutssats enligt ALVA-RULE-200.",
],
},
];
/** Nuvarande utgåva. Enda stället siffran finns. */
export const NUVARANDE = UTGAVOR[0];
/** Så versionen skrivs i gränssnittet och i ritningsstämpeln. */
export const PLATTFORMSVERSION = `ALVA ${NUVARANDE.version}`;
/**
* Versionen som gällde när ett ärende stängdes.
*
* Ritningsstämpeln ska visa vad som gällde VID AVSLUTET, inte vad som
* gäller den dag rapporten läses — det står i stämpelns egen beskrivning,
* och gällde ändå inte för versionen, som lästes ur den aktuella
* konstanten. Ett ärende stängt under 1.0 visade 3.1.
*
* Avslutshändelsen bär numera versionen. Äldre ärenden saknar den, och då
* sägs det uttryckligen i stället för att dagens siffra lånas ut.
*/
export function versionVidAvslut(avslutshandelse) {
const v = avslutshandelse?.plattformsversion;
return typeof v === "string" && v.trim() ? v : "Ej registrerad (stängt före ALVA 3.1)";
}