hållningen
principervad vi bygger på — och vad vi inte lovar
Agenten föreslår, människan bestämmer. Resten följer av det.
Det här är inte en policysida som juridiken tvingade fram. Det är designdokumentet, publicerat.
1 · agenten föreslår, människan bestämmer
Din agent läser, sorterar, bokar preliminärt och skriver utkast — dygnet runt. Men det som inte går att ångra godkänns av en människa: att skicka ett brev, att avboka en händelse. Det är byggt, inte lovat: de irreversibla handlingarna är egna verktyg med egna behörigheter som kontots ägare måste ge uttryckligen, och sändning accepterar bara utkast. En bokning är preliminär tills någon sagt ja — tentative är förvalet.
2 · behörighet är arkitektur, inte en prompt
En systemprompt är ett användargränssnitt, inte en säkerhetsgräns. Därför sitter all faktisk behörighet i nyckeln: per JMAP-metod, återkallbar utan att något annat dör, roterbar med överlapp. Verktyg utanför nyckelns scope existerar inte för anroparen — de syns inte i verktygslistan och går inte att anropa. Det är vårt starkaste skydd mot promptinjektion, och det är mätbart — till skillnad från löften om detektion.
3 · promptinjektion är inte löst — av någon
En mailserver är den enda produkt där en okänd angripare gratis kan skicka text rakt in i en agents kontextfönster. Vi påstår inte att vi upptäcker sådana angrepp; branschens egna mätningar visar att detektion inte håller. I stället minskar vi vad ett lyckat angrepp kan åstadkomma: verktygslistan är filtrerad per scope, inkommande brödtext märks som otillförlitlig med markörer som inte går att förfalska, agentnyckeln saknar sändning som standard, och det oåterkalleliga kräver en människa.
4 · proveniens
Varje skrivande anrop genom skalet loggas i en append-only, hash-kedjad skrivlogg: när, med vilken nyckel, vilket verktyg, mot vad, med vilket utfall. Kalenderhändelser en agent skapar bär agentens deltagaradress; post märks med X-Hafn-Agent, och inkommande brev som försöker förfalska sådana rubriker får dem strippade vid ingressen. Ärligt läge: den utgående märkningen sätts i dag av klienten, inte av servern — oförfalskbar blir den först när hafns egen sändningsväg är byggd. Tills dess är skrivloggen beviset.
5 · vad vi inte lovar
Ingen autonom oåterkallelig sändning. Vill någon sälja dig det: fråga hur.
Ingen detektion av promptinjektion. Vi designar bort skadan i stället.
Pushströmmarna lyder ännu inte nyckelns scope. En nyckel utan läsrätt får ändå veta att något ändrats (aldrig vad), och en öppen ström överlever att nyckeln återkallas. Felet är rapporterat uppströms och skalet bygger vägen runt; tills dess står det här.
Ingen läsbar cache när hafn är nere. Varje klient bygger sin egen — och vi lovar det som gör den billig: stabila id:n, tillstånd per typ, billiga ändringsanrop, och besked innan något av det ändras.
Inte att varje tredjepartsklient renderar allt. Att en preliminär bokning överlever vårt API är mätt; hur varje kalenderapp ritar den är inte vårt att lova.
6 · datan är din
Datan ligger i EU, under europeisk rätt. Ett konto kan ta ut post och kalender i standardformat medan servern kör, utan att fråga om lov och utan att någon annan märker det. Uttaget är hittills provat i liten skala — även det står här hellre än att låtsas vara färdigtestat. Låset är vårt eget, och det ska gå att öppna.
GET hafn.eu/principer.md · text/markdown · 200 · det här är exakt vad din agent hämtar
# hafn · principer — hållningen > Agenten föreslår, människan bestämmer. Det är inte en begränsning vi > ursäktar oss för — det är produkten. > spec v0.3 · 2026-08-30 · människoform: https://hafn.eu/principer ## 1. Agenten föreslår, människan bestämmer Din agent läser, sorterar, bokar preliminärt och skriver utkast — dygnet runt. Men det som inte går att ångra godkänns av en människa: att skicka ett brev, att avboka en händelse. I verktygsytan är det byggt, inte lovat: de irreversibla handlingarna är egna verktyg med egna behörigheter som kontots ägare måste ge uttryckligen, och sändning accepterar bara utkast. En bokning är preliminär tills någon sagt ja — tentative är förvalet. ## 2. Behörighet är arkitektur, inte en prompt En systemprompt är ett användargränssnitt, inte en säkerhetsgräns. Därför sitter all faktisk behörighet i nyckeln: per JMAP-metod, återkallbar utan att något annat dör, roterbar med överlapp. Verktyg utanför nyckelns scope existerar inte för anroparen — de syns inte i verktygslistan och går inte att anropa. Det är vårt starkaste skydd mot promptinjektion, och det är mätbart, till skillnad från löften om detektion. ## 3. Promptinjektion är inte löst — av någon En mailserver är den enda produkt där en okänd angripare gratis kan skicka text rakt in i en agents kontextfönster. Vi påstår inte att vi upptäcker sådana angrepp; branschens egna mätningar visar att detektion inte håller. I stället minskar vi vad ett lyckat angrepp kan åstadkomma: verktygslistan är filtrerad per scope, inkommande brödtext märks som otillförlitlig med markörer som inte går att förfalska, agentnyckeln saknar sändning som standard, och det oåterkalleliga kräver en människa. ## 4. Proveniens: det agenten gjort ska gå att se Varje skrivande anrop genom skalet loggas i en append-only, hash-kedjad skrivlogg: när, med vilken nyckel, vilket verktyg, mot vad, med vilket utfall. Kalenderhändelser en agent skapar bär agentens deltagaradress; post märks med X-Hafn-Agent, och inkommande brev som försöker förfalska sådana rubriker får dem strippade vid ingressen. Ärligt läge: den utgående märkningen sätts i dag av klienten, inte av servern — oförfalskbar blir den först när hafns egen sändningsväg är byggd. Tills dess är skrivloggen beviset. ## 5. Vad vi inte lovar - Ingen autonom oåterkallelig sändning. Vill någon sälja dig det: fråga hur. - Detektion av promptinjektion. Vi designar bort skadan i stället. - Att pushströmmarna lyder nyckelns scope. Det gör de inte i dag: en nyckel utan läsrätt får ändå veta ATT något ändrats (aldrig vad), och en öppen ström överlever att nyckeln återkallas. Felet är rapporterat uppströms och skalet bygger vägen runt; tills dess står det här. - En läsbar cache när hafn är nere. Varje klient bygger sin egen — och vi lovar det som gör den billig: stabila id:n, tillstånd per typ, billiga ändringsanrop, och besked innan något av det ändras. - Att varje tredjepartsklient renderar allt. Att en preliminär bokning överlever vårt API är mätt; hur varje kalenderapp ritar den är inte vårt att lova. ## 6. Datan är din Datan ligger i EU, under europeisk rätt. Ett konto kan ta ut post och kalender i standardformat medan servern kör, utan att fråga om lov och utan att någon annan märker det. Uttaget är hittills provat i liten skala — även det står här hellre än att låtsas vara färdigtestat. Låset är vårt eget, och det ska gå att öppna. Frågor, invändningar, hål i resonemanget: hello@hafn.eu