Codex Local
2beaaf6179
fix: atomic composition saves + deep audit P0/P1 fixes
...
Deep audit 2026-03-26 (10 findings, 4 fixes):
- FINDING-1 P0: saveComposition async + atomic write (tmp+rename) — prevents partial JSON on concurrent saves
- FINDING-2 P0: MAX_COMPOSITIONS (500), MAX_COMPOSITION_BYTES (512KB), MAX_TRACKS_PER_COMPOSITION (100) env-configurable
- FINDING-3 P1: ttsQueues self-cleans via .finally() after chain drains
- FINDING-4 P1: personaMemoryLocks reset to Promise.resolve() in .finally() — prevents unbounded chain growth
- lot-204: docs/LOT204_TRAINING_SPIKE.md (OpenCharacter + PCL, GO verdict, 4 sub-lots, RTX 4090 sufficient)
- lot-30: docs/LOT030_TTS_EVALUATION.md (Pocket TTS: watch — EN-only blocker, FR planned, no date)
- docs/DEEP_AUDIT_2026-03-26.md: 10 findings P0-P2 catalogued
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-26 11:43:26 +01:00
Codex Local
854fd7f932
feat: memory benchmark, ComposePage server panel, RAG/journald ops
...
- lot-203: LOT203_MEMORY_BENCHMARK.md — Mem0 vs local store (verdict: keep local; 300-2000ms vs <5ms, 3 extra services vs 0)
- ComposePage: "☁ Serveur" button + panel listing server-side compositions from /api/v2/media/compositions
- lot-28-rag-config: confirmed done (RAG_CHUNK_SIZE/MIN_SIMILARITY/MAX_RESULTS/EMBEDDING_MODEL in rag.ts)
- lot-29-systemd: scripts/journald-monitor.sh (TUI status, --watch mode, CI exit code) + ops/v2/journald-alerts.conf
- scripts/cleanup-test-compositions.js: dry-run cleanup tool for stale test compositions on disk
- PLAN.md lot-28 [planned] → [done]
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-26 11:31:11 +01:00
Codex Local
d249777d84
feat: add persona memory telemetry + session cleanup
...
- Instrument ws-persona-router with attempt/write/skip/failure recording
- Expose persona_memory stats in GET /api/v2/perf endpoint
- Export Prometheus series for persona memory in /metrics
- Add app.test.ts cases for perf and Prometheus persona memory endpoints
- Clean up obsolete composition and ws-commands test stubs
- Update AGENTS.md/PLAN.md/TODO.md: session 2026-03-25 personas V2 runtime hardening
- Remove DAW e2e test skip
2026-03-26 10:15:38 +01:00
Codex Local
267ae228be
feat(personas): add configurable memory policy engine
2026-03-26 08:20:00 +01:00
Codex Local
2fcac5ff1c
chore(personas): align memory cleanup and specs
2026-03-25 22:34:00 +01:00
Codex Local
9d687dda5e
docs(ops): track lot-204 persona memory benchmark and harden log purge
2026-03-25 22:34:00 +01:00
Codex Local
62486d0d6e
docs(personas): document v2-local per-file store and legacy-only paths
2026-03-25 22:34:00 +01:00
L'électron rare
76bac17334
Refactor code structure for improved readability and maintainability
2026-03-24 19:14:56 +01:00
L'électron rare
1b7bd46b41
qa: visual-qa 36 tests + fix /theme dark|light + fkey scroll 320px
...
- feat: apps/web/e2e/visual-qa.spec.ts — 36 tests E2E design (36 passed)
- 9 describe: connexion, chat, themes, navigation, responsive, a11y, composants, contraste, typo
- 30 screenshots dans apps/test-results/visual-qa/
- viewports: 320/375/768/1280/1920px
- thèmes: noir/matrix/amber/ocean/dark/light
- pages: chat, compose, imagine, daw, gallery, voice
- fix: ws-commands-info.ts — ajout 'dark' et 'light' aux thèmes autorisés
- avant: ['minitel','noir','matrix','amber','ocean']
- après: + dark, light
- fix: styles.css — barre fkey scrollable sur ≤340px (flex-wrap:nowrap, overflow-x:auto)
- docs: QA_WEBDESIGN_2026-03-24.md — rapport complet QA design
2026-03-24 18:35:57 +01:00
L'électron rare
6e13c26954
refactor: lot-192 phase 3 — extract ws-commands-compose advanced handlers (/concat /silence /template /marker /metronome /delete /suggest /snapshot /randomize)
...
- Add COMPOSE_ADVANCED_COMMANDS set + createComposeAdvancedCommandHandler to ws-commands-compose.ts
- Route all 9 advanced composition cmds before generate switch in ws-commands-generate.ts
- -695 LOC in ws-commands-generate.ts
- Add /delete + /marker regression tests in ws-commands.test.ts
- Sync PLAN.md, TODO.md, AGENTS.md, docs/AGENTS.md
2026-03-24 18:00:23 +01:00
L'électron rare
f015455b20
chore: align local snapshot for kxkm-ai sync
2026-03-24 17:14:02 +01:00
L'électron rare
81fbe96717
feat: lots 485-490 — /mixtape, /persona-stats, /alias, /credits, /imagine-compare, /whosonline
...
175 commands, 211 tests.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-22 01:08:29 +01:00
L'électron rare
91b159df09
feat: lots 414-418 — /summarize, /mood, user count, dice NdM, /ping
...
Lot 414: /summarize — AI summary of conversation (bullet points)
Lot 415: /mood — display current persona mood based on time
Lot 416: "N en ligne | N msgs" in chat header
Lot 417: /dice NdM enhanced (2d6, 3d20, etc.)
Lot 418: /ping — server latency test
121 commands, 211 tests.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-21 23:04:31 +01:00
L'électron rare
52e78813ad
feat: lot 407 — webcam face swap + AI auto-prompt
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-21 22:55:33 +01:00
Codex Local
73fb91173e
docs: openDAW architecture research — AudioWorklet, Box model, PPQN patterns
...
Reference only (AGPL license), patterns for future DAW evolution
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-21 11:56:00 +01:00
Codex Local
2696acdda0
docs: SPEC_DAW.md — full web DAW spec (BandLab level), DAW_RESEARCH
...
750-line spec: 7 components, Web Audio API, multi-user collab
Tone.js + custom canvas, 51 lots (250-300), 4 phases
Option B: custom build, full control, Minitel theme
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-21 09:27:00 +01:00
Codex Local
9ad1ff8ff1
feat: composition tests (8/8), memory leak fixes, ws-commands modular, docs update
...
composition-store.test.ts: 8 tests (CRUD, persistence, filtering)
Memory: 30min Map cleanup, userStats cap 1000, async startup
ws-commands: 1362→23 LOC dispatcher + 3 modules
PLAN lots 192-200, README 53 commands, FEATURE_MAP, AGENTS
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-20 19:06:31 +01:00
Codex Local
3c9bab66aa
docs: SPEC_COMPOSE_ADVANCED, PLAN lots 178-200, FEATURE_MAP, AGENTS, README
...
Composition pipeline plan: timeline, TTS mix, effects, DAW
21 planned lots (180-200) in 4 phases
43 commands, 13 services, 35 styles, TTFC 284ms
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-20 17:06:11 +01:00
Codex Local
b48afb6f45
chore: install @tanstack/react-virtual, OSS notes, session docs
...
140+ lots session, 43 commands, 13 services, TTFC 284ms
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-20 16:08:20 +01:00
Codex Local
54e206069c
docs: OSS veille 2026-03-20 — Ollama v0.18, Qwen3.5 9B, LightRAG rc2
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-20 08:43:27 +01:00
Codex Local
081405397a
docs: 9 module specs, COMMANDS.md, updated PLAN/TODO/FEATURE_MAP/AGENTS/README
...
SPEC.md (1085 lines), SPEC_RAG, SPEC_PERSONAS, SPEC_SECURITY, SPEC_INFRA,
SPEC_COMPOSE, SPEC_IMAGINE, SPEC_ADMIN, SPEC_MULTIMODAL + COMMANDS.md
100 lots planned, 71 done, 425 tests, 12 services
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-20 08:42:19 +01:00
L'électron rare
19b9193e29
Merge remote-tracking branch 'origin/main' + feat: smart routing, response cleaning, single responder, typing fix
...
- lot-66: pickResponders topic-based routing (search→Sherlock, image→Picasso, etc.)
- lot-67: cleanPersonaResponse strips think tokens + persona name prefix
- lot-68: maxGeneralResponders default 1, configurable via MAX_GENERAL_RESPONDERS
- lot-69: typing indicator moved after memory load, closer to Ollama call
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-19 23:38:03 +01:00
Codex Local
06ea18f425
feat: session 2026-03-19 — 35 lots (24-58), 311 tests, 12 services
...
Highlights:
- Streaming chat chunks + web search auto (Sherlock/SearXNG)
- pino structured logging (43->0 console.log)
- Zod validation (19 schemas API + storage)
- Qwen3-TTS 0.6B + 33 persona voices
- Docling + bge-reranker RAG pipeline
- React lazy routes (-50% bundle), virtualized chat
- SEC-01->05 all resolved
- A11y WCAG (40 ARIA attrs)
- Perf + error telemetry endpoints
- Systemd units (TTS, LightRAG, reranker)
- p-limit Ollama, WS reconnect, signal handlers
- createId thread-safe via crypto.randomBytes (lot-59)
- Hyperparam bounds validation with Zod schema (lot-60)
- DPO extractDPOPairs warns on empty pairs (lot-61)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-19 22:54:32 +01:00
L'électron rare
d2fed6087a
feat: Add MCP server and smoke test scripts
...
- Introduced `mcp-server.js` to expose KXKM personas as MCP tools, supporting chat, persona listing, web search, and status checks.
- Implemented `mcp-server-smoke.js` for testing the MCP server functionality, ensuring compatibility with both new and legacy message formats.
- Created `setup-voice-clone.sh` for managing voice cloning environment setup, including bootstrapping, sample generation, and smoke testing.
- Added `state.json` to track project status and task outputs for various batches.
- Generated summary files for deep cycle and overall project status, capturing performance and security findings.
2026-03-19 16:18:44 +01:00
L'électron rare
d874135f86
audit: 6 bugs fixes + architecture Mermaid + veille OSS
...
Bugs fixes:
- context-store.ts: write lock per-channel (race condition compaction)
- ws-conversation-router.ts: prunePersonaState() tous les 50 msgs
- ws-commands.ts: finally{unlink} pour temp files compose
- Chat.tsx: ullaTimersRef cleanup on unmount
- ComposePage/ImaginePage: useEffect cleanup WebSocket on unmount
- AdminPage: removed dead password field
Documentation:
- ARCHITECTURE.md: diagrammes Mermaid (flux, séquence, mindmap)
- OSS_VEILLE_2026-03-18.md: 40+ projets OSS analysés, top 10 recommandations
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-18 21:18:53 +01:00
L'électron rare
435855d2d1
docs: FEATURE_MAP enrichi (Discord, MCP, XTTS, ACE-Step, Docling, SearXNG)
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-17 15:57:18 +01:00
L'électron rare
fe436e0500
docs: veille OSS Discord voice + bench embeddings résultats
...
- 6 projets Discord voice analysés (@discordjs/voice, LLMRTC, Pipecat, LLMChat...)
- Architecture recommandée: @discordjs/voice + faster-whisper + piper-tts
- Bench kxkm-ai: nomic-embed-text (11ms, 0.675) > bge-m3 (67ms, 0.628)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-17 14:11:35 +01:00
L'électron rare
7c39e91e94
lot-20: deep audit, refactoring, UI Minitel, Discord bot, storage tests
...
Refactoring:
- ws-chat.ts 1449→803 LOC + 3 modules (ws-ollama, ws-multimodal, ws-persona-router)
- app.ts 1325→664 LOC + 4 route files (session, personas, node-engine, chat-history)
Security (9 P0/P1 fixes):
- PDF handler semaphore double-release
- Path traversal voice-sample (3 endpoints)
- Analytics endpoint auth (ops:read)
- crypto.randomBytes for createId
- Timing-safe verifyPassword
- applyPatches type guard
- ErrorBoundary React
- Accessibility role=log
- Async I/O (writeFileSync→fsp.writeFile)
UI Minitel globale:
- MinitelFrame wraps tout (login inclus)
- Animation modem à l'ouverture
- Pseudo sans auth, easter egg 3615 ULLA
- Barre fonctionnelle Sommaire/Chat/Retour/Personas/Fin
- Menu sommaire overlay, PersonaList arborescente par modèle
- Responsive 4 breakpoints (480/768/1200/1600px)
Infrastructure:
- SearXNG dans docker-compose (profile v2)
- Discord Pharmacius bot (scripts/discord-pharmacius.js + profile discord)
- Perf middleware + /api/v2/perf endpoint
- ops/v2/perf-monitor.js TUI
- scripts/bench-embeddings.js
Tests:
- Storage package: 50 tests (mock pool, 0→50 coverage)
- Total: 173 tests, 0 fail
Audit: 0 security findings, 20 perf patterns, debt score 80/100
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-17 13:42:04 +01:00
L'électron rare
ec85ca5e5b
chore: deep audit, hardening, docs sync and workflow cleanup
2026-03-17 10:22:22 +01:00
L'électron rare
2b279476dd
docs: état de l'art Document AI mars 2026
...
Recherche complète extraction/analyse fichiers:
- OCR: GLM-OCR (0.9B, TOP PICK), OCRFlux-3B, olmOCR, PaddleOCR
- Pipelines: Docling (97.9% tables), MinerU, Marker, Unstructured
- VLMs documents: GLM-4.5V, Qwen2.5-VL-72B, DeepSeek-VL2
- Recommandation: Docling remplace pdf-parse, GLM-OCR pour scannés
- Pipeline futur: indexer documents uploadés dans le RAG
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-16 23:15:40 +01:00
L'électron rare
81128d8cb8
docs: veille modèles HF & OSS mars 2026 — thématiques KXKM
...
Recherche approfondie couvrant:
- Chat FR: Qwen3.5:9b (vision native!), CroissantLLM, Vigogne
- Roleplay: Pantheon-RP (multi-persona), Kappa (9 personas), Ditto
- Musique: ACE-Step 1.5 (full-song), MusicGen, YuE, Stable Audio
- TTS: Coqui XTTS-v2 (voice cloning), Fish Speech S2-Pro, MeloTTS
- Vision: Qwen3.5:9b early-fusion (70.1 MMMU-Pro), GLM-OCR
- Datasets: Creative-Professionals-1M, Opus-4.6-Reasoning
- Papers: HER (2026), OpenCharacter, Ditto, PsyPlay
Recommandation: upgrade vers qwen3.5:9b (un seul modèle pour
texte + vision, remplace qwen3:8b + qwen3-vl:8b)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-16 23:06:08 +01:00
L'électron rare
2a8319b57d
docs: README + FEATURE_MAP mis à jour (multimodal, 3615-KXKM)
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-16 22:21:53 +01:00
L'électron rare
6dadb80084
refonte: 6 P0 fixes ws-chat.ts + veille Qwen3/MCP/A2A
...
## P0 fixes critiques
- Unbounded Map: personaMemoryLocks cleanup ajouté au refresh
- Race condition: personasSnapshot clone avant routeToPersonas
- Unhandled rejections: try-catch sur streamOllamaChat
- Sync I/O → async: logChatMessage, loadPersonaMemory,
savePersonaMemory, ensureLogDir (fs.promises partout)
- Buffer OOM: slice avant decode (buffer.slice(0, 12000).toString)
- html variable: scope réduit au bloc fallback DuckDuckGo
## Veille OSS (session 2)
- Qwen3: gamme 0.6B-32B, VL vision 4B/8B, 2x perf vs Qwen2.5
- MCP: SDK TypeScript mature, transport HTTP/stdio, bridge WS possible
- A2A: v0.3 RC1, 150+ partenaires, overkill pour personas internes
158 tests passent, serveur healthy (27 MiB API, 14 MiB worker).
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-16 21:55:10 +01:00
L'électron rare
b66a5b5a00
docs: SPEC.md protocole WebSocket complet + config multimodal
...
- Section 5: protocole WebSocket (7 types inbound/outbound, JSON exemples)
- Section 6: RAG configuration
- Section 7: TTS (voix par persona)
- Section 8: STT (pipeline audio)
- Section 9: Vision (minicpm-v)
- Section 10: Web search (DuckDuckGo/custom)
- Section 11: Persona memory (structure, update logic)
- Citation manifeste ajoutée
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-16 20:28:32 +01:00
L'électron rare
9d6538405a
refonte: P0/P1 fixes, docs manifeste, feature map multimodal
...
## 5 corrections P0 critiques (ws-chat.ts)
- Race condition mémoire persona (lock par Promise chain)
- Memory leak maps (cleanup sur refresh personas)
- Web search validation (warn si DuckDuckGo format change)
- Upload DoS protection (50 MB/min par client)
- Refresh guard (prevent concurrent refreshPersonas)
## 4 corrections P1 (ws-chat.ts, worker, scripts)
- Ollama semaphore (max 3 concurrent, queue)
- Dataset validation (min 2 items, skip count)
- Deploy timeout 120s + JSON parse safety
- Run ID timestamp-prefixed pour unicité
## Documentation mise à jour (manifeste respecté)
- README: citation VNS Matrix, fonctionnalités multimodales complètes,
variables env, commandes slash, architecture, manifeste section
- ARCHITECTURE.md: diagrammes multimodal pipeline, RAG flow, training
- FEATURE_MAP.md: toutes nouvelles features (RAG, STT, TTS, vision,
web search, memory, PDF, chat history, training dashboard)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-16 20:25:11 +01:00
L'électron rare
c5e1282545
docs: veille state of art mars 2026
...
Recherche web complète couvrant:
- LLM inference local (Ollama 0.18, Qwen3.5-4B, SGLang, vLLM)
- Fine-tuning (Unsloth 2026.3, GRPO/DAPO remplace RLHF, DoRA)
- Multi-agent (LangGraph, MCP Linux Foundation, A2A Google)
- Chat UI (Open WebUI, chatscope, assistant-ui)
- DAG orchestration (n8n, Dify $30M, Prefect)
- Embeddings/RAG (Qwen3-Embedding, ColBERT, nomic-embed)
Inclut table de recommandations par composant KXKM_Clown.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-16 20:05:04 +01:00
L'électron rare
b817985a19
lot-11-E: corrections P2 (10 items) + autoresearch métriques artefact
...
## Corrections P2 — Code quality
- node-engine-runner.js: structuredClone + graph.edges validation
- http-api.js: input validation from-source + extension/mime check uploads
- chat-routing.js: regex compilées au module scope (perf)
- Chat.tsx: React.memo ChatMessage + validation couleurs persona
- sessions.js: saveAllSessions debounce 2s
- ollama.js: model token limits lookup (mistral/llama/qwen/phi/gemma)
- storage.js: warning session messages > 90% du max
## Autoresearch avancé
- Extraction score métier depuis artefacts d'évaluation (6 métriques)
- Score artefact prioritaire, fallback status-based
- TSV étendu avec colonne artifact_score
- Documentation mise à jour
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-16 16:13:56 +01:00
L'électron rare
e4bbe18017
lot-11-E: deep analyse, corrections P0/P1, docs refonte, veille OSS
...
## Corrections P0 (critiques)
- node-engine-runner.js: JSON.parse try-catch sur JSONL (skip lignes invalides)
- storage.js: write queue par clé (Promise chain) anti-race condition
- ollama.js: cleanup event listener dans tous les chemins (success/error/abort)
## Corrections P1 (importants)
- server.js: nodeEngineQueue.stop() dans gracefulShutdown
- chat-routing.js: hard cap 500 entrées userRateLimits (LRU eviction)
- commands.js + http-api.js: timingSafeEqual pour ADMIN_TOKEN
## Documentation mise à jour
- ARCHITECTURE.md: RBAC ops→operator, mermaid persona state machine
- FEATURE_MAP.md: historique messages + DOM pruning marqués OK
- NODE_ENGINE_ARCHITECTURE.md: training adapters opérationnels (TRL/Unsloth)
- SPEC.md: table commandes slash (11 commandes)
- PROJECT_MEMORY.md: référence manifeste culturel
- OSS_WATCH: veille enrichie (20+ projets: Dify, CrewAI, Drizzle, vLLM, MCP...)
- PLAN.md: Phase C/D complétées, Phase E en cours
## Autoresearch (nouveau)
- scripts/v2-autoresearch-loop.js + config exemple + documentation
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-16 15:55:02 +01:00
L'électron rare
33f5c44433
ops: lot-4-bascule done, runbook migration V1V2, outputs conserves
2026-03-16 06:53:12 +01:00
L'électron rare
d54a4a9dce
ops: lot-2+lot-3 done, DATABASE_URL prod guard, pipeline PATH fix, docs sync
...
- ops/v2/state.json: lots 0-3 done, lot-4-bascule pending
- ops/v2/pipeline.json: PATH quoted pour espaces dans chemins macOS
- apps/api/src/app.ts: garde DATABASE_URL prod + health endpoint storageMode
- ops/v2/outputs/lot-2-domaines/: auth-chat.csv, personas.csv, node-engine.csv
- ops/v2/outputs/lot-3-surfaces/: web-shell.csv, persona-ui.csv, engine-ui.csv
- ops/v2/PLAN.md + TODO.md: lots 2+3 done, lot-4 pending
- docs/: SPEC, FEATURE_MAP, AGENTS, OPS_TUI, PROJECT_MEMORY restaurés
- docs/OSS_WATCH_2026-03-16.md: créé (ollama-js, BullMQ, Rete.js, Flowise...)
- README.md, PLAN.md, TODO.md: restaurés et mis à jour état V2
2026-03-16 06:46:51 +01:00
Codex Local
05cd47dc5d
Lot 11: feature parity V2, correctifs sécurité P0/P1, Docker, veille OSS
...
Phase A — Recherche:
- Deep analyse code V1+V2: 29 findings (2 P0, 8 P1, 12 P2, 7 P3)
- Veille OSS Lot 11: 22 projets analysés (vLLM, AG-UI, TRL CLI, Prefect...)
- Recherche HuggingFace: modèles persona-ready, datasets DPO, outils LoRA
Phase B — Correctifs sécurité:
- P0 SEC-01: Path traversal node-engine-runner.js (reject absolute + boundary check)
- P0 SEC-04: V2 login role self-assignment (viewer default, ADMIN_TOKEN required)
- P1 BUG-06: Health endpoint DATABASE_URL leak (redacted to storageMode)
- P1 BUG-02: Timeout promise leak (AbortSignal cancel)
- P1 SEC-03: Attachment endpoints unauthenticated (requireAdminNetwork)
Phase C — Feature parity V2 (10/10):
- Recovery on crash + cancel support (worker + storage + API)
- Slash commands (11 commands + parser + permissions + 17 tests)
- Conversational memory (addToMemory, buildLlmContext, clearMemory)
- Status strip, subnet gate, retention sweep, export HTML
- Tab completion (nicks + slash commands)
- File upload (base64 in Chat.tsx)
Phase D — Docker:
- Multi-stage Dockerfile (Node 22 alpine, tini)
- docker-compose.yml (5 services: app, api, worker, postgres, ollama)
- .dockerignore
152 tests (119 backend + 33 React), 0 failures.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-16 06:38:45 +01:00
Codex Local
cee246a6a9
Refonte globale P0→P9 : sécurité, V2 monorepo TypeScript, tests, tooling
...
- P0: Correctifs sécurité critiques (injection bash, path traversal, SSRF, rate limiting)
- P1: Audit logging, session pruning, WS validation, CSRF protection
- P2: Ollama SDK migration, admin API deduplication, attachment hardening
- P3: Node Engine store complet (graphs, runs, models, deployments)
- P4: Admin UI Node Engine (éditeur visuel, runs, queue viewer)
- P5: Persona pipeline (sources, feedback, Pharmacius, editorial)
- P6: V2 packages TypeScript (core, auth, chat-domain, persona-domain, node-engine, storage, tui)
- P7: V2 apps (api + worker + web React), ops TUI, migration/rollback scripts
- P8: Training adapters (TRL/Unsloth), sandboxing (subprocess/container), Turborepo, CI
- P9: Tests (102 backend node:test + 33 React Vitest/RTL), code quality review
135 tests, 0 failures. 8 packages + 3 apps V2. 42 modules V1 validés.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-16 06:15:04 +01:00
Codex Local
e060a33855
Initial import
2026-03-15 15:47:49 +01:00