- Add NFC ePassport roadmap (ICAO 9303, eIDAS) - Add TensorFlow.js edge face detection (BlazeFace) - Add structured audit logger (GDPR-compliant) - Risk scoring support Part of KYC Apple Native UX v1.1.0
12 KiB
PURGE-3: Scripts & Services — Resultatrapport
Utförd: 2026-06-06
Utförare: Subagent (PURGE-3)
Backup: /opt/amos/_purge3_backup_20260606_222857/ (scripts/ + services/)
Beslut: Leon = SIMULERING (Erik 2026-06-06) — radera som om aldrig funnits.
DEL A — scripts/ (Direkt raderade)
Alla ändringar: backup → ändra → node --check.
A-1: scripts/heartbeat-runner.mjs ✅ SYNTAX OK
| Åtgärd | Detalj |
|---|---|
| Raderat | leon: env.TELEGRAM_LEON_CHAT_ID || '' ur tgIds-map (rad 85) |
Effekt: Leon tas aldrig emot ett Telegram-meddelande från heartbeat-runner. Inga andra agenter påverkas. Cron-jobbet fortsätter att köra utan fel.
A-2: scripts/homo-deus-daily-brief.mjs ✅ SYNTAX OK
| Åtgärd | Detalj |
|---|---|
| Raderat | buildVincentoBrief() — hela async-funktionen (ca 35 rader) |
| Raderat | Vincento ur header-kommentaren (agent-lista) |
| Raderat | Vincento ur briefs-arrayen i main() |
| Uppdaterat | Förväntad brief-count: 5 → 4 (if-guard + logg-text) |
Effekt: Dagliga briefs genereras nu för 4 agenter (bernt, sven, kjell, rufus). Vincento-brief genereras aldrig. Script kraschar ej — node --check OK.
A-3: scripts/server.mjs ✅ SYNTAX OK
| Åtgärd | Detalj |
|---|---|
| Raderat | 'leon': 'SOUL_LEON.md' ur SOUL-file-map i getSoulForEmail() |
| Raderat | Leon-persona-injektion i getPersonaFromRequest() (email-contains-leon) |
| Raderat | 'leon':'cmo','leon@hypbit.com':'cmo','leonrusso':'cmo','operations':'cmo' ur /amos/briefing/:role ALIASES-map |
| Raderat | Leon Russo De Cerame ur TEAM-array i /api/team-activity |
| Raderat | LEON: [...] hela notification-butiken (3 Leon-specifika notifikationer på italienska) |
| Raderat | Hela app.post('/api/chat/ops', ...) endpointen — Leon Operations chat-router (ca 60 rader) |
| Raderat | Leon CEO Ops if-block inuti den generella chat-routern |
| Raderat | Leon Russo De Cerame (CEO Operations) ur team-lista i system prompt |
| Raderat | /cmo/chat proxy-route (pekade till /api/chat/ops som nu är borttagen) — ersatt med tombstone-kommentar |
⚠️ OBS — buildVincentoBrief beroenden:
buildVincentoBrief() hade inga externa beroenden utanför filen. Den anropade fetch() mot /api/system-health och filtrerade Gitea issues — inga side-effects. Borttagen utan risk.
⚠️ OBS — /cmo/chat proxy:
/cmo/chat routade till /api/chat/ops som nu är borttagen. Proxyn är ersatt med en PURGE-3 tombstone-kommentar. CMO-funktionalitet finns inte längre i servern. Om en CMO-role behövs framöver: skapa ny endpoint kopplad till bernt-kontexten.
A-4: scripts/generate-training-data.mjs ✅ SYNTAX OK
| Åtgärd | Detalj |
|---|---|
| Raderat | vincento: { name: 'Vincento', system: '...', domains: { crm_pipeline: [...], marketing_analysis: [...] } } — hela vincento-persona-blocket ur AGENT_PERSONAS |
| Uppdaterat | Träningsfråga rad 22: "Sven, Kjell och Vincento" → "Sven, Kjell och Rufus" |
A-5: scripts/generate-dpo-vw-homodeus.mjs ✅ SYNTAX OK
| Åtgärd | Detalj |
|---|---|
| Ej ändrat | 8 rader med VINCENTO finns kvar |
Notering: De 8 kvarvarande referenserna är inbäddade i DPO training-data strängar (constitutional AI-träningsexempel). De refererar till VINCENTO som ett hypotetiskt scenario i policy-texter, inte som operationell agent. Exemplen testar HOMO DEUS-responsen på konstitutionella utmaningar. Dessa är historiska träningsdata-objekt och inte funktionella refs. Flaggat för Eriks beslut: ta bort DPO-exemplen helt, eller behåll som anonymiserade konstitutionella testfall.
A-6: scripts/hermes-dpo-pipeline.mjs ✅ SYNTAX OK
| Åtgärd | Detalj |
|---|---|
| Raderat | vincento| ur marketing-klassificeraren regex (rad 132) |
A-7: scripts/enrich-neo4j.mjs ✅ SYNTAX OK
| Åtgärd | Detalj |
|---|---|
| Raderat | { id: 'person-leon-russo', name: 'Leon Russo De Cerame', score: 78, type: 'person' } ur persons-array |
| Raderat | { userId: 'person-leon-russo', addOnId: 'operations-intelligence', score: 82 } ur addOns-array |
| Raderat | { userId: 'person-leon-russo', email: 'leon@wavult.com', score: 8, tier: 'enterprise' } ur churnData-array |
| Raderat | { personId: 'person-leon-russo', seqId: 'seq-retention-high', step: 1, status: 'active' } ur enrollments-array |
A-8: scripts/authority-graph.mjs ✅ SYNTAX OK
| Åtgärd | Detalj |
|---|---|
| Raderat | 'vincento' ur ai_agent-heuristik-arrayen |
A-9: scripts/cor-retroactive-link.mjs ✅ SYNTAX OK
| Åtgärd | Detalj |
|---|---|
| Raderat | { id: 'EMP-004', name: 'Leon Magnusson', department: 'Operations', email: 'leon@wavult.com' } ur EMPLOYEES-array |
Notering: "Leon Magnusson" var testdata för Leon Russo De Cerame under annat namn (EMP-004). Inte en annan person — bygginventariet pekade ut leon@wavult.com = borttagen.
A-10: scripts/dashboard-cleanup.mjs ✅ SYNTAX OK
| Åtgärd | Detalj |
|---|---|
| Raderat | '/leon' ur route-listan för cleanup |
A-11: scripts/competitor-benchmark.mjs ⚠️ PRE-EXISTING SYNTAX CORRUPTION
| Åtgärd | Detalj |
|---|---|
| Raderat | { id: 'w6', cat: 'Wavult', q: 'Leon Russo är säljchef på Wavult?', kw: ['nej', 'inte'] } — Leon benchmark-fråga |
⚠️ KRITISK FLAGGA — Pre-existing corruption:
Filen competitor-benchmark.mjs var REDAN TRASIG innan detta purge-kördes. Backupen (tagen innan ändringarna) är också trasig (BACKUP FAIL: chr(39) substitutions). Filen innehåller chr(39)AMOS-v5-a10gchr(39) istället för 'AMOS-v5-a10g' — ett Python repr()-artefakt från en tidigare botoperation. Leon-raden är borttagen (leon-ändringen genomförd), men filen är inte körbar oberoende av detta purge. node --check ger SyntaxError på rad 333.
Rekommendation till Erik: Återställ competitor-benchmark.mjs från git eller en äldre backup. Filen behöver manuell reparation av chr(39)-substitutionerna.
A-12: scripts/ci/validate-urls.sh ✅ (Shell — ej node --check)
| Åtgärd | Detalj |
|---|---|
| Raderat | |leon| ur URL-valideringsregex (rad 79) |
DEL B — services/ JS-ändringar
B-1: services/kill-switch/src/index.mjs ✅ SYNTAX OK
| Åtgärd | Detalj |
|---|---|
| Raderat | 'leon@wavult.com' ur OPERATORS-set (kill-switch autentisering) |
Effekt: Leon kan inte längre aktivera kill-switch. Operatörer är nu: erik@wavult.com, dennis@wavult.com, system:emergency.
B-2: services/amos-core/server.mjs ✅ SYNTAX OK
| Åtgärd | Detalj |
|---|---|
| Raderat | 'vincento' ur validAgents-array för /api/homo-deus/knowledge/:agent endpoint |
| Uppdaterat | Kommentar på venture-builder mount-rad: Vincento+Rufus notify → Rufus notify |
Effekt: /api/homo-deus/knowledge/vincento returnerar nu 404. Inga andra agenter påverkas.
B-3: services/ouroboros-knowledge-graph/server.mjs ✅ SYNTAX OK
| Åtgärd | Detalj |
|---|---|
| Raderat | { type: 'person', name: 'Leon Russo', properties: { role: 'CEO Operations/CMO', email: 'leon@wavult.com' } } ur seed-entiteter |
| Raderat | { from: 'Leon Russo', type: 'reports_to', to: 'Erik Svensson' } ur seed-relationer |
| Raderat | { from: 'Leon Russo', type: 'part_of', to: 'Wavult Operations' } ur seed-relationer |
Effekt: Vid nästa DB-initialisering (tom DB) skapas ingen Leon-nod. Befintlig DB påverkas ej — seed körs bara en gång vid tom databas.
DEL B — INVENTERING Rust/SQL (Rör EJ)
⚠️ RUST — Kräver recompile + redeploy
services/ouroboros-mes/src/scheduler.rs
// Rad 18 i available_agents():
AgentCapability {
id: "vincento-strategy-l2",
layer: 2,
thermal_score: 0.5,
capabilities: vec!["strategic_planning", "market_scan", "competitive_analysis", "scenario_modeling", "strategy_synthesis", "executive_summary"]
}
services/ouroboros-mes/src/models.rs
// Rad 136 i GoalTypeSpec-match:
"strategic_planning" => GoalTypeSpec {
required_layer: 2,
assigned_agent: "vincento-strategy-l2",
...
}
Varför ej rört: Rust kräver cargo build --release + ny Docker-image + ECS/EKS redeploy. Ändring utan recompile = ingen effekt. Bryter inget som körs (vincento-strategy-l2 är en agent-ID-sträng — om ingen agent svarar, timeout). Inga aktiva Rust-tjänster skickar tasks till vincento-strategy-l2 live.
Rekommendation till Erik:
- Byt
vincento-strategy-l2→bernt-strategy-l2(ellersven-strategy-l2) - Uppdatera
assigned_agentimodels.rs+ ta bort capability-entry ischeduler.rs - Kör
cargo build --release+ redeployouroboros-mes
⚠️ SQL-migrationer — Rör aldrig (historisk migreringskedja)
services/ouroboros-recovery/migrations/001_init.sql
-- Rad 63: seed-data
INSERT INTO ou_recovery_agent_status (agent_id, status) VALUES
...('vincento', 'healthy')...
services/ouroboros-thermal/migrations/001_init.sql
-- Rad 66: thermal baseline seed
INSERT INTO ou_thermal_baselines (agent_id, baseline_thermal, baseline_entropy, baseline_latency)
VALUES ...('vincento', 0.2, 0.1, 110.0)...
Varför ej rört: SQL-migrations är en historisk kedja. Att ändra 001_init.sql retroaktivt bryter migration-historiken (checksums, Flyway/Liquibase-validering). Vincento i seed-data skapar en vincento-rad vid ny DB-init — funktionellt ofarligt (ingen agent svarar på den raden, den orsakar inga aktiva jobb).
Rekommendation till Erik:
- Skapa en ny migration
002_remove_vincento.sql:DELETE FROM ou_recovery_agent_status WHERE agent_id = 'vincento'; DELETE FROM ou_thermal_baselines WHERE agent_id = 'vincento'; - Kör migration mot befintlig + ny DB
Sammanfattning
Syntax-status
| Fil | Status | Notering |
|---|---|---|
scripts/heartbeat-runner.mjs |
✅ OK | |
scripts/homo-deus-daily-brief.mjs |
✅ OK | |
scripts/server.mjs |
✅ OK | |
scripts/generate-training-data.mjs |
✅ OK | |
scripts/generate-dpo-vw-homodeus.mjs |
✅ OK | 8 DPO-text-refs kvar (flaggat) |
scripts/hermes-dpo-pipeline.mjs |
✅ OK | |
scripts/enrich-neo4j.mjs |
✅ OK | |
scripts/authority-graph.mjs |
✅ OK | |
scripts/cor-retroactive-link.mjs |
✅ OK | |
scripts/dashboard-cleanup.mjs |
✅ OK | |
scripts/competitor-benchmark.mjs |
⚠️ PRE-EXISTING | Trasig innan purge — kräver git-återställning |
scripts/ci/validate-urls.sh |
✅ OK | Shell — syntaxcheck ej tillämpligt |
services/kill-switch/src/index.mjs |
✅ OK | |
services/amos-core/server.mjs |
✅ OK | |
services/ouroboros-knowledge-graph/server.mjs |
✅ OK | |
services/ouroboros-mes/src/scheduler.rs |
⚠️ INVENTERAD | Ej rört — kräver recompile |
services/ouroboros-mes/src/models.rs |
⚠️ INVENTERAD | Ej rört — kräver recompile |
services/ouroboros-recovery/migrations/001_init.sql |
⚠️ INVENTERAD | Ej rört — SQL-migration-kedja |
services/ouroboros-thermal/migrations/001_init.sql |
⚠️ INVENTERAD | Ej rört — SQL-migration-kedja |
Kritisk verifiering: heartbeat-runner.mjs
heartbeat-runner.mjs körs dagligen via cron. Verifiering:
node --check✅ OKleonborttagen urtgIds— ingen tom chatId-lookup som kan leda till onödiga API-anropbuildVincentoBriefanropas EJ längre (borttagen i homo-deus-daily-brief.mjs)- Script kraschar INTE
Restart
Restart EJ utförd (per instruktion — Bernt koordinerar restart).
Berörda services som behöver restart för att effekterna ska slå igenom live:
scripts/server.mjs(express-servern)services/kill-switch/src/index.mjsservices/amos-core/server.mjsservices/ouroboros-knowledge-graph/server.mjs
Backup-plats
Alla originalfiler: /opt/amos/_purge3_backup_20260606_222857/
Rapport genererad: 2026-06-06. PURGE-3 subagent körning klar.