backup: n8n workflows + pg dump 20260523_020001
This commit is contained in:
parent
13cf51199f
commit
d304ffebb0
@ -39,7 +39,7 @@ Le projet est un ERP B2B pour MetallKart, fabricant d equipement industriel a Tv
|
||||
- Reponds en francais
|
||||
|
||||
## Derniere session
|
||||
- 2026-05-22 : Session 133 — Bug fixes (lang=ru, ADM_PRODUCTION notifs), smeta workflow (SUBMITTED supprime), M1F.2 KB status toggle, TS cleanup, deploy VPS.
|
||||
- 2026-05-22 : Session 134 — Bug fixes VPS (supplier tags+labels, TLT recreate+rename, accounting fields Client/Supplier, ACHETEUR access docs, M2B Opus temperature fix, M2B test script).
|
||||
|
||||
## Modules implementes
|
||||
- [x] SPEC-41A-41I (2026-04-14/20) : Migration staging, PO drawer, tender↔PO, supplier fix, archived toggle, backfill, AI analyzer
|
||||
@ -429,7 +429,7 @@ Le projet est un ERP B2B pour MetallKart, fabricant d equipement industriel a Tv
|
||||
- AGENT-M1E.1: useAdaptivePolling dans frontend/src/hooks/useAdaptivePolling.ts. fetchFnRef pattern (useRef + useEffect sync) pour éviter stale closures — ne JAMAIS passer fetchFn directement dans setInterval. Page Visibility API: document.visibilityState + 'visibilitychange' event, visible=intervalActiveMs, hidden=intervalInactiveMs (60s default). Error backoff: 3 erreurs consécutives → pause 60s puis reprise. isRunningRef guard empêche concurrent fetch. Cleanup obligatoire dans useEffect return (clearInterval + removeEventListener). LastSyncIndicator dans frontend/src/components/admin/agent/LastSyncIndicator.tsx: Tag AntD (green OK, red error, spinning loading), setInterval(1s) pour relative time avec cleanup. Intervalles choisis: ActionsTab 10s, KnowledgeTab 30s (rarement modifié), ControlTab 10s.
|
||||
- AGENT-M2A: WeeklyReportAggregatorService dans src/modules/agent-august/reporting/. DTO partagés dans reporting/types.ts (DateRange, OrderSummary, StuckItem, CommercialBlock, ProcurementBlock, FinancialBlock, AgentKpiBlock, WeeklyReportData). aggregate(period) lance 5 sous-agrégations en Promise.all + detectAnomalies. detectAnomalies(asOf) = 6 types d'anomalies avec seuil minDays + weightPerDay, capped à 10, trié poids desc. Endpoint GET /admin/agent/reports/weekly-data (weeklyDataQuerySchema: from/to datetime, validation from<to + max 31j). Order.constructor clash TS = `as any` cast (même pattern que detectors M1A/M1B). Prisma Decimal = Number() coercion sur amount/sellingPrice/costUsd. Tender n'a PAS de champ category → requirements[0].materialCategory. Order.managerId/manager (PAS assignedToId). ClientInstallment.dueDate (PAS expectedAt). AgentAuditLog.costUsd (PAS costUSD).
|
||||
- AGENT-M2D: AgentReportService dans src/modules/agent-august/reporting/agent-report.service.ts. Constructor(prisma, aggregator, commentaryDeps?). ALLOWED_TRANSITIONS map (DRAFT→[GENERATED,ARCHIVED], GENERATED→[SENT,ARCHIVED], SENT→[ARCHIVED], ARCHIVED→[]). createReport stocke aggregatedData en Json Prisma. generateFromAggregator valide periodFrom<periodTo + max 31j, délègue à aggregator.aggregate puis createReport(DRAFT). listReports: status accepte string|string[] (CSV preprocess Zod), limit clampé [1,100]. updateReport vérifie transitions. Error objects ont statusCode custom (400/404). Routes enregistrées APRÈS /reports/weekly-data (statique avant paramétrique). AgentReport.costUsd = Decimal(10,6) aligné sur AgentAuditLog.
|
||||
- AGENT-M2B: generateCommentary(reportId, userId?) dans AgentReportService. Exige report DRAFT + aggregatedData.period présent. RAG graceful (searchKnowledge best-effort, continue sans contexte si Voyage échoue ou absent). LLM via llmRouter.run({ intent:'report', systemPromptOverride, userMessage }). Transition DRAFT→GENERATED + écriture contentMarkdown, modelUsed, costUsd, promptTokens, completionTokens. Audit log via AgentAction REPORT_SENT + AgentAuditLog (best-effort, ne bloque pas si échoue). CommentaryDeps = { llmRouter: LlmRouter, voyage?: VoyageClient } passé en 3e arg constructeur. Route POST /reports/:id/generate-commentary (ADMIN-only). WeeklyReportPromptBuilder: buildCommentarySystemPrompt() (7 sections MD), buildCommentaryUserMessage(data, ragChunks?) (5 blocs formatted). WeeklyReportData.agent est le champ correct (PAS agentKpi).
|
||||
- AGENT-M2B: generateCommentary(reportId, userId?) dans AgentReportService. Exige report DRAFT + aggregatedData.period présent. RAG graceful (searchKnowledge best-effort, continue sans contexte si Voyage échoue ou absent). LLM via llmRouter.run({ intent:'report', systemPromptOverride, userMessage }). Transition DRAFT→GENERATED + écriture contentMarkdown, modelUsed, costUsd, promptTokens, completionTokens. Audit log via AgentAction REPORT_SENT + AgentAuditLog (best-effort, ne bloque pas si échoue). CommentaryDeps = { llmRouter: LlmRouter, voyage?: VoyageClient } passé en 3e arg constructeur. Route POST /reports/:id/generate-commentary (ADMIN-only). WeeklyReportPromptBuilder: buildCommentarySystemPrompt() (7 sections MD), buildCommentaryUserMessage(data, ragChunks?) (5 blocs formatted). WeeklyReportData.agent est le champ correct (PAS agentKpi). Opus 4.7 rejette `temperature` — LlmRouter conditionne l'envoi (skip si model.includes('opus')).
|
||||
|
||||
## Ce qu il ne faut PAS faire
|
||||
- Ne pas toucher au .env
|
||||
|
||||
1
backups/export_20260523_020001/workflows_all.json
Normal file
1
backups/export_20260523_020001/workflows_all.json
Normal file
File diff suppressed because one or more lines are too long
Loading…
Reference in New Issue
Block a user