From e25b5a11efd126248adc552e753b37438121e722 Mon Sep 17 00:00:00 2001 From: vegard Date: Wed, 18 Mar 2026 15:27:38 +0000 Subject: [PATCH] =?UTF-8?q?Valider=20fase=2013=E2=80=9314:=20fiks=20size-i?= =?UTF-8?q?nkonsistens,=20sikkerhet=20og=20konsistens=20i=20traits=20+=20p?= =?UTF-8?q?ublisering?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Feil funnet og fikset: 1. truncate() UTF-8-panikkfeil: Brukte byte-indeksering s[..max] som panikker på flerbyte-tegn (æ, ø, å). Byttet til char_indices(). 2. VALID_TRAITS manglet 'mixer' og 'ai_tool': Dokumentert i docs/primitiver/traits.md men avvist av backend-validering. 3. Planlagte artikler synlige før publish_at: serve_article og alle listevisninger (forside, arkiv, kategori, søk) eksponerte artikler med fremtidig publish_at. Lagt til tidsfiltere i alle spørringer. 4. A/B klikk-attribusjon logget alle varianter: serve_article logget klikk for ALLE aktive varianter ved direkte artikkelbesøk, ikke bare den viste. Fjernet feilaktig attribusjon — klikk logges kun via track_click-endepunktet med spesifikk variant-parameter. 5. JSON-LD XSS via : serde_json escaper ikke - sekvenser, så brukertitler kunne bryte ut av sekvenser for sikker embedding i + assert!(!ld.contains(""), "JSON-LD inneholder uescaped : {ld}"); + assert!(ld.contains("<\\/script>"), "JSON-LD mangler escaped : {ld}"); + } + #[test] fn z_test_insufficient_data_returns_1() { // For lite data: returnerer p=1.0 (ingen signifikans) diff --git a/maskinrommet/src/templates/search.html b/maskinrommet/src/templates/search.html index 147a346..13c7a99 100644 --- a/maskinrommet/src/templates/search.html +++ b/maskinrommet/src/templates/search.html @@ -75,7 +75,7 @@ line-height: 1.5; } .article-list__highlight { - background: rgba(233, 69, 96, 0.1); + background: color-mix(in srgb, var(--color-accent) 10%, transparent); padding: 0 0.15rem; border-radius: 2px; } diff --git a/tasks.md b/tasks.md index d9987f5..15b2489 100644 --- a/tasks.md +++ b/tasks.md @@ -300,8 +300,7 @@ med spesifikasjon for det som trenger en dedikert sesjon. - [x] 23.3 Valider fase 5–8 (kommunikasjon + CAS + lyd + aliaser): chat-loop, kontekst-arv, CAS-hashing/deduplisering, Whisper-pipeline, segmenttabell, SRT-eksport, alias-identitet. - [x] 23.4 Valider fase 9–10 (visninger + AI): kanban drag-and-drop, kalender, dagbok, kunnskapsgraf, LiteLLM-ruting, AI-foreslåtte edges, oppsummering, TTS. - [x] 23.5 Valider fase 11 (produksjon): LiveKit-oppsett, sanntidslyd, pruning-logikk, podcast-RSS. -- [~] 23.6 Valider fase 13–14 (traits + publisering): trait-validering, pakkevelger, Tera-templates, HTML-rendering, forside, slot-håndtering, redaksjonell flyt, planlagt publisering, A/B-testing. - > Påbegynt: 2026-03-18T15:16 +- [x] 23.6 Valider fase 13–14 (traits + publisering): trait-validering, pakkevelger, Tera-templates, HTML-rendering, forside, slot-håndtering, redaksjonell flyt, planlagt publisering, A/B-testing. - [ ] 23.7 Valider fase 15–16 (admin + lydmixer): systemvarsler, graceful shutdown, jobbkø-oversikt, ressursstyring, serverhelse, Web Audio mixer, delt kontroll, sound pads, EQ, stemmeeffekter. - [ ] 23.8 Valider fase 17–18 (lydstudio-utbedring + AI-verktøy): responsivt layout, FFmpeg-validering, fade/silence, AI-presets, direction-logikk, drag-and-drop integrasjon. - [ ] 23.9 Valider fase 19–20 (arbeidsflaten + universell overføring): canvas pan/zoom, BlockShell, layout-persistering, snarveier, transfer service, alle panelreworks (chat, kanban, kalender, editor, studio).