feat(m2): add deterministic sak_status cli with golden output
--workspace is required with no environment fall-back: this process runs unsandboxed, and a status run that quietly picked a workspace is one nobody can audit. --check exits 1 on a stale cache, distinct from 2 for a failed run. Byte-stability is measured, not asserted: the CLI is run twice under two PYTHONHASHSEED values and the bytes compared, in both output formats. The write boundary gets two digest tests rather than one -- without --oppdater every byte stays put, with it exactly the diverging case's four cached keys move and logg.jsonl, the body and every other file are byte-identical. Co-Authored-By: Claude <claude-opus-5>
This commit is contained in:
parent
b80bd00781
commit
12125c1932
3 changed files with 420 additions and 0 deletions
150
tests/golden/sak-status-2026-09-15.json
Normal file
150
tests/golden/sak-status-2026-09-15.json
Normal file
|
|
@ -0,0 +1,150 @@
|
|||
{
|
||||
"dato": "2026-09-15",
|
||||
"saker": [
|
||||
{
|
||||
"arbeidsgiver": "Aurland Maritim AS",
|
||||
"divergens": [],
|
||||
"flagg": [],
|
||||
"innkommende": {
|
||||
"merknad": "ingen innkommende hendelse er registrert. Med e-postserveren utsatt betyr det ikke at ingen finnes.",
|
||||
"registrert": false,
|
||||
"sist": null
|
||||
},
|
||||
"neste_frist": null,
|
||||
"rolle": "Prosjektleder",
|
||||
"sak_id": "2026-09-aurland-maritim-as-prosjektleder",
|
||||
"sist_aktivitet": "2026-09-05",
|
||||
"status": "trukket",
|
||||
"ventende_part": "ingen"
|
||||
},
|
||||
{
|
||||
"arbeidsgiver": "Bratthaug Industri AS",
|
||||
"divergens": [],
|
||||
"flagg": [
|
||||
"intervju_10"
|
||||
],
|
||||
"innkommende": {
|
||||
"merknad": null,
|
||||
"registrert": true,
|
||||
"sist": "2026-08-16"
|
||||
},
|
||||
"neste_frist": "2026-09-05",
|
||||
"rolle": "Systemarkitekt",
|
||||
"sak_id": "2026-09-bratthaug-industri-as-systemarkitekt",
|
||||
"sist_aktivitet": "2026-08-26",
|
||||
"status": "intervju",
|
||||
"ventende_part": "dem"
|
||||
},
|
||||
{
|
||||
"arbeidsgiver": "Havbris Energi AS",
|
||||
"divergens": [
|
||||
{
|
||||
"hurtigbuffer": "dialog",
|
||||
"nokkel": "status",
|
||||
"utledet": "sendt"
|
||||
},
|
||||
{
|
||||
"hurtigbuffer": "meg",
|
||||
"nokkel": "ventende_part",
|
||||
"utledet": "dem"
|
||||
}
|
||||
],
|
||||
"flagg": [
|
||||
"sendt_14"
|
||||
],
|
||||
"innkommende": {
|
||||
"merknad": "ingen innkommende hendelse er registrert. Med e-postserveren utsatt betyr det ikke at ingen finnes.",
|
||||
"registrert": false,
|
||||
"sist": null
|
||||
},
|
||||
"neste_frist": "2026-09-09",
|
||||
"rolle": "Løsningsarkitekt",
|
||||
"sak_id": "2026-09-havbris-energi-as-losningsarkitekt",
|
||||
"sist_aktivitet": "2026-08-27",
|
||||
"status": "sendt",
|
||||
"ventende_part": "dem"
|
||||
},
|
||||
{
|
||||
"arbeidsgiver": "Myrvang Teknologi AS",
|
||||
"divergens": [],
|
||||
"flagg": [],
|
||||
"innkommende": {
|
||||
"merknad": "ingen innkommende hendelse er registrert. Med e-postserveren utsatt betyr det ikke at ingen finnes.",
|
||||
"registrert": false,
|
||||
"sist": null
|
||||
},
|
||||
"neste_frist": null,
|
||||
"rolle": "Utvikler",
|
||||
"sak_id": "2026-09-myrvang-teknologi-as-utvikler",
|
||||
"sist_aktivitet": "2026-08-06",
|
||||
"status": "avslag",
|
||||
"ventende_part": "ingen"
|
||||
},
|
||||
{
|
||||
"arbeidsgiver": "Nordlys Data AS",
|
||||
"divergens": [],
|
||||
"flagg": [],
|
||||
"innkommende": {
|
||||
"merknad": "ingen innkommende hendelse er registrert. Med e-postserveren utsatt betyr det ikke at ingen finnes.",
|
||||
"registrert": false,
|
||||
"sist": null
|
||||
},
|
||||
"neste_frist": null,
|
||||
"rolle": "AI-rådgiver",
|
||||
"sak_id": "2026-09-nordlys-data-as-ai-radgiver",
|
||||
"sist_aktivitet": "2026-09-13",
|
||||
"status": "vurderer",
|
||||
"ventende_part": "meg"
|
||||
},
|
||||
{
|
||||
"arbeidsgiver": "Solvang Helse AS",
|
||||
"divergens": [],
|
||||
"flagg": [],
|
||||
"innkommende": {
|
||||
"merknad": null,
|
||||
"registrert": true,
|
||||
"sist": "2026-09-12"
|
||||
},
|
||||
"neste_frist": null,
|
||||
"rolle": "Teknisk rådgiver",
|
||||
"sak_id": "2026-09-solvang-helse-as-teknisk-radgiver",
|
||||
"sist_aktivitet": "2026-09-12",
|
||||
"status": "tilbud",
|
||||
"ventende_part": "meg"
|
||||
},
|
||||
{
|
||||
"arbeidsgiver": "Storelva kommune",
|
||||
"divergens": [],
|
||||
"flagg": [
|
||||
"dialog_7"
|
||||
],
|
||||
"innkommende": {
|
||||
"merknad": null,
|
||||
"registrert": true,
|
||||
"sist": "2026-08-21"
|
||||
},
|
||||
"neste_frist": "2026-08-28",
|
||||
"rolle": "Fagleder digitalisering",
|
||||
"sak_id": "2026-09-storelva-kommune-fagleder-digitalisering",
|
||||
"sist_aktivitet": "2026-08-22",
|
||||
"status": "dialog",
|
||||
"ventende_part": "dem"
|
||||
},
|
||||
{
|
||||
"arbeidsgiver": "Værøy Sjømat AS",
|
||||
"divergens": [],
|
||||
"flagg": [],
|
||||
"innkommende": {
|
||||
"merknad": "ingen innkommende hendelse er registrert. Med e-postserveren utsatt betyr det ikke at ingen finnes.",
|
||||
"registrert": false,
|
||||
"sist": null
|
||||
},
|
||||
"neste_frist": null,
|
||||
"rolle": "Dataingeniør",
|
||||
"sak_id": "2026-09-vaeroy-sjomat-as-dataingenior",
|
||||
"sist_aktivitet": "2026-09-10",
|
||||
"status": "soker",
|
||||
"ventende_part": "meg"
|
||||
}
|
||||
]
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue