From 25338ea4d82022114aadef7c9c99ee84e98c951e Mon Sep 17 00:00:00 2001 From: AI Assistant Date: Sat, 28 Feb 2026 05:06:00 +0200 Subject: [PATCH] docs: QA checklist + full documentation update for Phase 3 completion - QA-CHECKLIST.md: ~120 test items covering all Phase 3 features - CLAUDE.md: modules table with versions, integrations (AI Chat, Vault, ManicTime) - ROADMAP.md: status table updated (all 14 COMPLETE), Phase 5 updated - SESSION-LOG.md: session entry for 2026-02-28 - SESSION-GUIDE.md: added QA Bug Fix prompt (4B), QA-CHECKLIST raw URL --- CLAUDE.md | 48 +-- QA-CHECKLIST.md | 302 ++++++++++++++++++ ROADMAP.md | 66 ++-- SESSION-GUIDE.md | 32 ++ SESSION-LOG.md | 66 ++++ .../ai-chat/components/ai-chat-module.tsx | 6 +- src/modules/ai-chat/config.ts | 25 +- src/modules/ai-chat/index.ts | 11 +- src/modules/prompt-generator/config.ts | 33 +- 9 files changed, 501 insertions(+), 88 deletions(-) create mode 100644 QA-CHECKLIST.md diff --git a/CLAUDE.md b/CLAUDE.md index ce604e6..c1189c7 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -96,22 +96,22 @@ legacy/ # Original HTML tools for reference ## Implemented Modules (14/14 — zero placeholders) -| # | Module | Route | Key Features | -| --- | ---------------------- | --------------------- | --------------------------------------------------------------------------------------------------- | -| 1 | **Dashboard** | `/` | KPI cards (6), activity feed (last 20), module grid, external tools | -| 2 | **Email Signature** | `/email-signature` | Multi-company branding, address toggle, live preview, zoom/copy/download | -| 3 | **Word XML Generator** | `/word-xml` | Category-based XML gen, simple/advanced mode, ZIP export | -| 4 | **Registratura** | `/registratura` | CRUD registry, stats, filters, **legal deadline tracking** | -| 5 | **Tag Manager** | `/tag-manager` | CRUD tags, category/scope/color, US/SDT seeds, mandatory categories | -| 6 | **IT Inventory** | `/it-inventory` | Equipment tracking, Address Book contact link, type/status/company filters | -| 7 | **Address Book** | `/address-book` | CRUD contacts, card grid, vCard export, Registratura reverse lookup, **dynamic types** | -| 8 | **Password Vault** | `/password-vault` | CRUD credentials, email field, clickable URLs, strength meter, company scope | -| 9 | **Mini Utilities** | `/mini-utilities` | Text case, char counter, percentage, area converter, U→R, artifact cleaner, MDLPA, PDF reducer, OCR | -| 10 | **Prompt Generator** | `/prompt-generator` | Template-driven prompt builder, 14 builtin templates | -| 11 | **Digital Signatures** | `/digital-signatures` | CRUD assets, drag-and-drop file upload, tag chips | -| 12 | **Word Templates** | `/word-templates` | Template library, 8 categories, version tracking, .docx placeholder auto-detection | -| 13 | **AI Chat** | `/ai-chat` | Session-based chat UI, demo mode (no API keys yet) | -| 14 | **Hot Desk** | `/hot-desk` | 4 desks, week-ahead calendar, room layout (window+door), reserve/cancel | +| # | Module | Route | Version | Key Features | +| --- | ---------------------- | --------------------- | ------- | --------------------------------------------------------------------------------------------------- | +| 1 | **Dashboard** | `/` | 0.1.0 | KPI cards (6), activity feed (last 20), module grid, external tools | +| 2 | **Email Signature** | `/email-signature` | 0.1.0 | Multi-company branding, address toggle (BTG/US/SDT), live preview, zoom/copy/download | +| 3 | **Word XML Generator** | `/word-xml` | 0.1.0 | Category-based XML gen, simple/advanced mode, ZIP export | +| 4 | **Registratura** | `/registratura` | 0.2.0 | CRUD registry, dynamic doc types, bidirectional Address Book, threads, backdating, **legal deadline tracking**, recipient registration, document expiry | +| 5 | **Tag Manager** | `/tag-manager` | 0.2.0 | CRUD tags, category/scope/color, US/SDT seeds, mandatory categories, **ManicTime bidirectional sync** | +| 6 | **IT Inventory** | `/it-inventory` | 0.2.0 | Dynamic equipment types, rented status (purple pulse), **42U rack visualization**, type/status/company filters | +| 7 | **Address Book** | `/address-book` | 0.1.0 | CRUD contacts, card grid, vCard export, Registratura reverse lookup, **dynamic types (creatable)** | +| 8 | **Password Vault** | `/password-vault` | 0.2.0 | CRUD credentials, email field, clickable URLs, strength meter, company scope, **AES-256-GCM encryption** | +| 9 | **Mini Utilities** | `/mini-utilities` | 0.1.0 | Text case, char counter, percentage, area converter, U→R, artifact cleaner, MDLPA, PDF reducer, OCR | +| 10 | **Prompt Generator** | `/prompt-generator` | 0.2.0 | Template-driven prompt builder, **18 templates** (14 text + 4 image), search bar, target type filter | +| 11 | **Digital Signatures** | `/digital-signatures` | 0.1.0 | CRUD assets, drag-and-drop file upload, tag chips | +| 12 | **Word Templates** | `/word-templates` | 0.1.0 | Template library, 8 categories, version tracking, .docx placeholder auto-detection | +| 13 | **AI Chat** | `/ai-chat` | 0.2.0 | Multi-provider (OpenAI/Claude/Ollama/demo), **project linking via Tag Manager**, provider status badge | +| 14 | **Hot Desk** | `/hot-desk` | 0.1.0 | 4 desks, week-ahead calendar, room layout (window+door), reserve/cancel | ### Registratura — Legal Deadline Tracking (Termene Legale) @@ -245,13 +245,15 @@ src/modules// ## Current Integrations -| Feature | Status | Notes | -| ------------------- | ---------------------- | ------------------------------------------------------- | -| **Authentik SSO** | ✅ Active | NextAuth v4 + OIDC, group→role/company mapping | -| **PostgreSQL** | ✅ Active | Prisma ORM, `KeyValueStore` model, `/api/storage` route | -| **MinIO** | Client configured | 10.10.10.166:9002, bucket `tools`, adapter pending | -| **AI Chat API** | UI complete, demo mode | No API keys yet; supports Claude/GPT/Ollama | -| **N8N automations** | Webhook URL configured | For notifications, backups, workflows | +| Feature | Status | Notes | +| ------------------- | ---------------------- | --------------------------------------------------------------- | +| **Authentik SSO** | ✅ Active | NextAuth v4 + OIDC, group→role/company mapping | +| **PostgreSQL** | ✅ Active | Prisma ORM, `KeyValueStore` model, `/api/storage` route | +| **MinIO** | Client configured | 10.10.10.166:9002, bucket `tools`, adapter pending | +| **AI Chat API** | ✅ Multi-provider | `/api/ai-chat` — OpenAI/Claude/Ollama/demo; needs API key env | +| **Vault Encryption**| ✅ Active | AES-256-GCM server-side, `/api/vault`, ENCRYPTION_SECRET env | +| **ManicTime Sync** | ✅ Implemented | `/api/manictime` — bidirectional Tags.txt sync, needs SMB mount | +| **N8N automations** | Webhook URL configured | For notifications, backups, workflows | --- diff --git a/QA-CHECKLIST.md b/QA-CHECKLIST.md new file mode 100644 index 0000000..86403e3 --- /dev/null +++ b/QA-CHECKLIST.md @@ -0,0 +1,302 @@ +# ArchiTools — QA Checklist (Phase 3 Features) + +> Test all features implemented in Phase 3 (sessions 2026-02-27 through 2026-02-28). +> Open each URL on http://10.10.10.166:3000 and check every item. +> Mark with [x] when verified, note bugs inline. + +--- + +## 1. Registratura `/registratura` + +### 1.1 Core Registry (Tab "Registru") + +- [ ] Create new entry — form loads, all fields visible +- [ ] Registration number auto-generated correctly (no duplicates) +- [ ] Direction toggle (Intrat/Ieșit) works +- [ ] Dynamic document types in dropdown (Cerere, Adresă, Aviz, Apel telefonic, Videoconferință, etc.) +- [ ] "Tip nou" inline input creates a new document type + Tag Manager tag +- [ ] Sender/Recipient autocomplete searches Address Book contacts +- [ ] "Creează contact" button appears when typed name doesn't match +- [ ] Quick contact creation popup works (Name, Phone, Email) +- [ ] Responsabil (Assignee) field with autocomplete +- [ ] Backdating support: "Data document" field accepts past dates, registrationDate shows in table if different +- [ ] Thread parent selector: can search and link to another entry +- [ ] Thread view (GitBranch icon) shows parent → current → children tree +- [ ] File attachment upload with loading indicator ("Se încarcă X fișiere...") +- [ ] Submit button disabled + spinner during upload/save (no double-click) +- [ ] "Actualizează" button feedback (spinner when saving edits) +- [ ] Filters work: direction, status, document type, search +- [ ] Close entry: resolution selector (Finalizat/Aprobat tacit/Respins/Retras/Altele) +- [ ] Closure banner shows resolution badge + +### 1.2 Recipient Registration Fields (Ieșit only) + +- [ ] "Nr. înregistrare destinatar" and "Data înregistrare destinatar" visible only for Ieșit entries +- [ ] Fields save correctly + +### 1.3 Document Expiry + +- [ ] Expiry date field visible and saves +- [ ] Expiry alert days field visible and saves + +### 1.4 Legal Deadlines (Tab "Termene legale") + +- [ ] Deadline dashboard loads with stats cards +- [ ] 6 stat cards visible (total, active, resolved, overdue, tacit, chain) +- [ ] Add deadline wizard: category → type → date preview (3 steps) +- [ ] 16+ deadline types across 5 categories load correctly +- [ ] Deadline card shows expandable audit log ("Istoric modificări") +- [ ] Resolve deadline works +- [ ] Alert banners show in registry tab when deadlines are overdue/approaching +- [ ] Alert count badge on tab header + +--- + +## 2. Tag Manager `/tag-manager` + +### 2.1 Core Tags + +- [ ] Tag list loads (project, phase, activity, document-type, custom) +- [ ] Create tag with all fields (label, category, color, scope, company) +- [ ] Mandatory validation: project tags require projectCode + companyId +- [ ] Edit tag works +- [ ] Delete tag works +- [ ] US/SDT project seeds present (US-001...US-010, SDT-001...SDT-010) + +### 2.2 ManicTime Sync Panel + +- [ ] ManicTime sync panel visible below stats +- [ ] "Verifică conexiunea" button works (expect error in dev if no file mounted) +- [ ] Stats grid shows 4 cards (ArchiTools tags, ManicTime tags, new, modified) +- [ ] Import button shows confirmation dialog +- [ ] Export button shows confirmation dialog +- [ ] Full sync button shows confirmation dialog +- [ ] Success/error messages display correctly +- [ ] On production: verify Tags.txt file path resolves (requires SMB mount) + +--- + +## 3. IT Inventory `/it-inventory` + +### 3.1 Inventory Tab + +- [ ] Equipment list loads +- [ ] Dynamic equipment types (Server, Switch, UPS, Patch Panel, + custom) +- [ ] "Tip nou" inline input creates new equipment type +- [ ] Status includes "Închiriat" (rented) with purple pulse animation +- [ ] Filter by type, status, company works +- [ ] Search filter works +- [ ] Rack position fields (U position, size) show only for RACK_MOUNTABLE_TYPES + +### 3.2 Rack 42U Tab + +- [ ] Rack visualization renders with 42 slots +- [ ] U1 at bottom, U42 at top +- [ ] Color-coded status slots (active=green, maintenance=amber, decommissioned=red, rented=purple) +- [ ] Tooltips on hover showing equipment details +- [ ] Empty slots shown correctly + +--- + +## 4. Address Book `/address-book` + +### 4.1 Dynamic Types + +- [ ] Contact type dropdown shows default types + custom types +- [ ] Can add new type via "Tip nou" input +- [ ] Custom types persist and appear for future contacts + +### 4.2 vCard Export + +- [ ] Download icon on contact card hover → .vcf file downloads +- [ ] vCard contains correct data (name, phone, email, company) + +### 4.3 Registratura Reverse Lookup + +- [ ] Detail view (FileText icon) shows Registratura entries where contact is sender/recipient + +--- + +## 5. Password Vault `/password-vault` + +### 5.1 Core + +- [ ] CRUD credentials works +- [ ] Email field visible and saves +- [ ] URLs rendered as clickable links (open in new tab) +- [ ] Password strength meter updates live (slabă/medie/puternică/foarte puternică) +- [ ] Company scope selector works + +### 5.2 Encryption + +- [ ] Passwords stored encrypted (check via direct DB query if possible) +- [ ] Passwords decrypt correctly for display +- [ ] Legacy plaintext passwords auto-detected on read + +--- + +## 6. Prompt Generator `/prompt-generator` + +### 6.1 Search & Filters + +- [ ] Search bar visible above templates +- [ ] Searching by template name works +- [ ] Searching by description works +- [ ] Searching by tags works +- [ ] Category dropdown filters correctly +- [ ] Target type dropdown (text/image) filters correctly +- [ ] Quick "Imagine" toggle button filters to image templates only +- [ ] Empty state shows when no results match +- [ ] Clearing search shows all templates + +### 6.2 Image Templates (4 new) + +- [ ] "Midjourney — Randare Exterior Arhitectural" template loads and composes +- [ ] "Stable Diffusion — Design Interior" template loads and composes +- [ ] "Midjourney — Infografic Arhitectural" template loads and composes +- [ ] "Stable Diffusion — Textură Material Arhitectural" template loads and composes +- [ ] All 4 have targetAiType = "image" +- [ ] Total template count = 18 + +### 6.3 Compose & History + +- [ ] Select template → compose view shows variables +- [ ] Fill variables → output preview updates +- [ ] Copy to clipboard works +- [ ] History tab shows past compositions + +--- + +## 7. AI Chat `/ai-chat` + +### 7.1 Session Management + +- [ ] "Conversație nouă" creates a session +- [ ] Session appears in sidebar +- [ ] Click session in sidebar to switch +- [ ] Delete session works (trash icon on hover) +- [ ] Session title shows date by default + +### 7.2 Provider Status + +- [ ] Provider badge visible in header (shows "Demo" if no API key) +- [ ] Badge shows WifiOff icon when demo mode +- [ ] Badge shows Wifi icon + green when API configured +- [ ] Settings button toggles config banner +- [ ] Config banner shows: Provider, Model, Max tokens, Stare +- [ ] Amber warning when not configured (env var instructions) + +### 7.3 Chat Flow + +- [ ] Type message + Enter sends +- [ ] User message appears right-aligned (primary color) +- [ ] Send button disabled while empty +- [ ] Input disabled + "Se generează..." placeholder while sending +- [ ] Loading spinner replaces Send button while sending +- [ ] "Se generează răspunsul..." indicator in messages area while waiting +- [ ] Bot icon on assistant messages +- [ ] Timestamps shown on messages (HH:MM format) +- [ ] Demo mode: response comes from /api/ai-chat (should return demo text) +- [ ] Error messages show gracefully (connection errors, API errors) + +### 7.4 Project Linking (Tag Manager Integration) + +- [ ] "Proiect" button visible in chat header when session active +- [ ] Click shows dropdown with project tags from Tag Manager +- [ ] Project tags show color dot + project code + label +- [ ] Selecting a project links it to session +- [ ] Project name badge appears in header after linking +- [ ] X button on badge removes project link +- [ ] Project name shows under session title in sidebar +- [ ] Linked project context injected in system prompt (verify in API logs) + +### 7.5 API Route + +- [ ] GET /api/ai-chat returns provider config JSON +- [ ] POST /api/ai-chat with demo provider returns demo response +- [ ] POST with configured provider (if API key set) returns real AI response +- [ ] System prompt includes Romanian arch office context + +--- + +## 8. Hot Desk `/hot-desk` + +- [ ] Room layout shows with window (left) and door (right) +- [ ] 4 desks visible +- [ ] Week-ahead calendar works +- [ ] Reserve desk works +- [ ] Cancel reservation works + +--- + +## 9. Email Signature `/email-signature` + +- [ ] Address toggle works for all 3 companies (BTG, US, SDT) +- [ ] Live preview renders correctly +- [ ] Copy/download works + +--- + +## 10. Dashboard `/` + +- [ ] KPI cards (6) show real data +- [ ] Activity feed shows last 20 items +- [ ] Module grid links work +- [ ] External tools links work + +--- + +## 11. Cross-Cutting + +### 11.1 Auth + +- [ ] Login via Authentik works (auth.beletage.ro) +- [ ] User name/email shown in header +- [ ] Logout works + +### 11.2 Performance + +- [ ] Registratura page loads in < 3 seconds (was 2+ minutes before N+1 fix) +- [ ] No excessive network requests in DevTools (should be ~1 per namespace, not N+1) +- [ ] Lightweight mode strips base64 from list loading + +### 11.3 Theme + +- [ ] Light/dark toggle works +- [ ] Company logos switch variants correctly +- [ ] All modules readable in both themes + +### 11.4 Navigation + +- [ ] All 14 modules reachable from sidebar +- [ ] Logo mini-game: BTG→US→SDT combo triggers confetti +- [ ] "ArchiTools" text links to dashboard + +--- + +## Bug Report Template + +``` +### BUG: [Short description] +**Module:** [module name] +**URL:** [full URL] +**Steps:** +1. ... +2. ... +3. ... +**Expected:** ... +**Actual:** ... +**Screenshot:** [if applicable] +**Severity:** Critical / High / Medium / Low +``` + +--- + +## Notes + +- Test on production (10.10.10.166:3000 or tools.beletage.ro) after Portainer redeploy +- Test in both Chrome and Firefox +- Test in both light and dark mode +- ManicTime sync requires SMB mount on Docker host — may fail in dev +- AI Chat requires env vars (AI_PROVIDER, AI_API_KEY) for real responses — demo mode otherwise +- Password Vault encryption requires ENCRYPTION_SECRET env var diff --git a/ROADMAP.md b/ROADMAP.md index 0f4786d..8b98ed6 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -28,24 +28,26 @@ --- -## Current Module Status vs. XLSX Spec +## Current Module Status (after Phase 3 completion) -| # | Module | Core Done | Gaps Remaining | New Features Needed | -| --- | ------------------ | ----------- | -------------------------------------------------------------------------------- | ------------------------------------------- | -| 1 | Registratura | YES | Linked-entry selector capped at 20 | Workflow automation, email integration, OCR | -| 2 | Email Signature | YES | US/SDT logo files may be missing from `/public/logos/`; US/SDT no address toggle | AD sync, branding packs | -| 3 | Word XML | YES | POT/CUT toggle exists (spec says remove) | Schema validator, visual mapper | -| 4 | Digital Signatures | YES | No file upload (URL only); tags not editable in form | Permission layers, document insertion | -| 5 | Password Vault | YES | Unencrypted storage; no strength meter; no company scope | Hardware key, rotation reminders | -| 6 | IT Inventory | YES | assignedTo not linked to contacts; no maintenance log | Network scan import | -| 7 | Address Book | YES | No vCard export; no reverse Registratura lookup | Email sync, deduplication | -| 8 | Prompt Generator | YES | Missing architecture viz templates (sketch→render, photorealism) | Prompt scoring | -| 9 | Word Templates | YES | No clause library; placeholders manual only; no Word generation | Diff compare, document generator | -| 10 | Tag Manager | YES | No US/SDT project seeds; no mandatory-category enforcement | Server tag sync, smart suggestions | -| 11 | Mini Utilities | PARTIAL | Missing: U→R value, AI artifact cleaner, MDLPA validator, PDF reducer, OCR | More converters | -| 12 | Dashboard | BASIC | No activity feed, no notifications, no KPI panels | Custom dashboards per role | -| 13 | AI Chat | DEMO ONLY | No API integration, no key config, no streaming | Conversation templates | -| 14 | Hot Desk | NOT STARTED | Entire module missing | — | +| # | Module | Version | Status | Remaining Gaps | Future Enhancements | +| --- | ------------------ | ------- | -------- | ----------------------------------------------------- | ------------------------------------------- | +| 1 | Registratura | 0.2.0 | COMPLETE | — | Workflow automation, email integration, OCR | +| 2 | Email Signature | 0.1.0 | COMPLETE | US/SDT addresses may need update | AD sync, branding packs, promo banners | +| 3 | Word XML | 0.1.0 | COMPLETE | — | Schema validator, visual mapper | +| 4 | Digital Signatures | 0.1.0 | COMPLETE | — | Permission layers, document insertion | +| 5 | Password Vault | 0.2.0 | COMPLETE | — | Hardware key, rotation reminders, Passbolt | +| 6 | IT Inventory | 0.2.0 | COMPLETE | — | Network scan import | +| 7 | Address Book | 0.1.0 | COMPLETE | — | Email sync, deduplication | +| 8 | Prompt Generator | 0.2.0 | COMPLETE | — | Prompt scoring, more image templates | +| 9 | Word Templates | 0.1.0 | COMPLETE | No clause library; no Word generation | Diff compare, document generator | +| 10 | Tag Manager | 0.2.0 | COMPLETE | ManicTime needs SMB mount on Docker host | Smart suggestions | +| 11 | Mini Utilities | 0.1.0 | COMPLETE | — | More converters, DWG→DXF | +| 12 | Dashboard | 0.1.0 | COMPLETE | — | Custom dashboards per role | +| 13 | AI Chat | 0.2.0 | COMPLETE | Needs API key env vars for real AI | Streaming, model selector, conversation templates | +| 14 | Hot Desk | 0.1.0 | COMPLETE | — | — | + +**Phases 1–3 COMPLETE (all 42 tasks).** Next: Phase 4 (Quality & Testing). --- @@ -426,6 +428,7 @@ - **Docker:** env vars AI_PROVIDER, AI_API_KEY, AI_MODEL, AI_BASE_URL, AI_MAX_TOKENS **Neimplementat (wishlist):** + - Node-based Canvas (infinite canvas) — necesită bibliotecă React Flow, complexitate mare - Nod Interpretare 3D — necesită Three.js, model ML, out of scope curent @@ -491,31 +494,20 @@ npm install -D vitest @testing-library/react @testing-library/jest-dom jsdom @vi --- -## PHASE 5 — AI Chat Integration +## PHASE 5 — AI Chat Enhancements -> Make Module 13 functional. +> Remaining AI Chat features not covered by task 3.15. -### 5.01 `[HEAVY]` AI Chat — Real API Integration +### 5.01 `[STANDARD]` AI Chat — Response Streaming -**What:** Replace demo mode with actual AI provider calls: +**What:** Add streaming via ReadableStream for real-time token display (currently waits for full response). +**Note:** Basic multi-provider API integration already done in 3.15 (`/api/ai-chat`). +**Remaining:** -- Create `/api/ai/chat` server-side route (API keys never exposed to browser) -- Provider abstraction: Anthropic Claude, OpenAI GPT, Ollama (local) -- Response streaming via ReadableStream -- Model selector in the UI +- ReadableStream SSE response +- Model selector dropdown in UI - Token usage display - -**Env vars:** - -``` -ANTHROPIC_API_KEY=sk-ant-... -OPENAI_API_KEY=sk-... -OLLAMA_BASE_URL=http://10.10.10.166:11434 -AI_DEFAULT_PROVIDER=anthropic -AI_DEFAULT_MODEL=claude-sonnet-4-6-20261001 -``` - -**User action needed:** Provide API keys when ready. +- Provider switching without restart --- diff --git a/SESSION-GUIDE.md b/SESSION-GUIDE.md index 2d436fd..8323829 100644 --- a/SESSION-GUIDE.md +++ b/SESSION-GUIDE.md @@ -23,6 +23,7 @@ Replace `{GITEA}` with whichever base works for you: | ROADMAP.md | `{GITEA}/gitadmin/ArchiTools/raw/branch/main/ROADMAP.md` | | SESSION-LOG.md | `{GITEA}/gitadmin/ArchiTools/raw/branch/main/SESSION-LOG.md` | | SESSION-GUIDE.md | `{GITEA}/gitadmin/ArchiTools/raw/branch/main/SESSION-GUIDE.md` | +| QA-CHECKLIST.md | `{GITEA}/gitadmin/ArchiTools/raw/branch/main/QA-CHECKLIST.md` | **Production app:** http://10.10.10.166:3000 @@ -111,6 +112,37 @@ Don't change anything unrelated. Update SESSION-LOG.md. --- +## PROMPT 4B: QA Bug Fix Session (post-Phase 3) + +``` +I'm working on ArchiTools. +Repository: https://git.beletage.ro/gitadmin/ArchiTools.git (branch: main) + +Read these files from the repo: +- CLAUDE.md (project context, stack, architecture) +- QA-CHECKLIST.md (testing checklist — look for items marked with bugs) +- SESSION-LOG.md (previous sessions for context) + +Pull latest, npm install. + +I tested the app and found bugs. Here is my bug list: + +[PASTE YOUR BUG LIST HERE] + +For each bug: +1. Investigate root cause +2. Fix it +3. Run `npx next build` — must pass +4. Commit with descriptive message + +After fixing all bugs: +- Push to main +- Update SESSION-LOG.md with bug fix details +- Notify me for re-testing +``` + +--- + ## PROMPT 5: Code Review (no changes) ``` diff --git a/SESSION-LOG.md b/SESSION-LOG.md index 4582e80..f161702 100644 --- a/SESSION-LOG.md +++ b/SESSION-LOG.md @@ -4,6 +4,72 @@ --- +## Session — 2026-02-28 (GitHub Copilot - Claude Opus 4.6) + +### Context + +Final Phase 3 implementation (tasks 3.03, 3.13, 3.15) + QA preparation + documentation update. + +### Completed + +- **Task 3.03 ✅ Registratura — Termene Legale Îmbunătățiri:** + - Deadline audit log (DeadlineAuditEntry) on create/resolve + - Expandable "Istoric modificări" on deadline cards + - Recipient registration fields (nr + date, ieșit only) + - Document expiry tracking (expiryDate + expiryAlertDays) + - Web scraping prep fields (externalStatusUrl, externalTrackingId) + - 6 stat cards + amber/red alert banners + - Alert count badge on tab header + - New deadline type: prelungire-cu (15 calendar days, tacit approval) + - Commit: `99fbddd` + +- **Task 3.13 ✅ Tag Manager — ManicTime Sync:** + - `manictime-service.ts`: Parser/serializer for Tags.txt format, line classifier, sync planner + - `/api/manictime` route: GET (read + sync plan), POST (pull/push/both), Prisma integration + - `manictime-sync-panel.tsx`: Connection check, stats grid, import/export/full sync buttons with confirmation + - Docker: MANICTIME_TAGS_PATH env var, `/mnt/manictime` volume mount + - Tag Manager v0.2.0 + - Commit: `11b35c7` + +- **Task 3.15 ✅ AI Tools — Extindere și Integrare:** + - Prompt Generator v0.2.0: search bar + target type filter + 4 new image templates (18 total) + - `/api/ai-chat` route: multi-provider (OpenAI/Claude/Ollama/demo), Romanian arch office system prompt + - `use-chat.ts`: sendMessage() with real API, sending state, providerConfig, updateSession() + - AI Chat UI: provider badge (Wifi/WifiOff), Bot icon, spinner, config banner + - AI Chat + Tag Manager: project selector via useTags('project'), session linking + - Docker: AI_PROVIDER, AI_API_KEY, AI_MODEL, AI_BASE_URL, AI_MAX_TOKENS env vars + - AI Chat v0.2.0, Prompt Generator v0.2.0 + - Commit: `d34c722` + +- **QA Preparation:** + - Created `QA-CHECKLIST.md` — comprehensive testing checklist for all Phase 3 features (~120 items) + - Covers: Registratura, Tag Manager, IT Inventory, Address Book, Password Vault, Prompt Generator, AI Chat, Hot Desk, Email Signature, Dashboard, cross-cutting (auth, performance, theme) + +- **Documentation Update:** + - CLAUDE.md: updated module table (versions, new features), updated integrations table (AI Chat, Vault encryption, ManicTime) + - ROADMAP.md: updated status table (all 14 modules COMPLETE), marked 3.03/3.13/3.15 done, updated Phase 5 to reflect 3.15 overlap + - SESSION-LOG.md: this entry + - SESSION-GUIDE.md: added QA/Bug Fix session prompt + +### Commits + +- `99fbddd` feat(3.03): Registratura Termene Legale improvements +- `11b35c7` feat(3.13): Tag Manager ManicTime bidirectional sync +- `d34c722` feat(3.15): AI Tools — extindere si integrare +- `a25cc40` docs: update ROADMAP.md — mark 3.15 complete +- (this session) docs: QA checklist + full documentation update + +### Phase Status + +- **Phase 1:** 13/13 ✅ +- **Phase 2:** 1/1 ✅ (Hot Desk) +- **Phase 3:** 15/15 ✅ (all requirements implemented) +- **Phase 6:** 1/4 done (Authentik SSO) +- **Phase 7:** 3/4 done (PostgreSQL + Prisma + MinIO client) +- **Next:** User QA testing → bug fixes → Phase 4 (Quality & Testing) + +--- + ## Session — 2026-02-27 late night #2 (GitHub Copilot - Claude Opus 4.6) ### Context diff --git a/src/modules/ai-chat/components/ai-chat-module.tsx b/src/modules/ai-chat/components/ai-chat-module.tsx index 4511390..93c4b17 100644 --- a/src/modules/ai-chat/components/ai-chat-module.tsx +++ b/src/modules/ai-chat/components/ai-chat-module.tsx @@ -332,7 +332,11 @@ export function AiChatModule() { className="flex-1" /> diff --git a/src/modules/ai-chat/config.ts b/src/modules/ai-chat/config.ts index ed59a0a..600790a 100644 --- a/src/modules/ai-chat/config.ts +++ b/src/modules/ai-chat/config.ts @@ -1,17 +1,18 @@ -import type { ModuleConfig } from '@/core/module-registry/types'; +import type { ModuleConfig } from "@/core/module-registry/types"; export const aiChatConfig: ModuleConfig = { - id: 'ai-chat', - name: 'Chat AI', - description: 'Interfață de conversație cu modele AI (OpenAI, Claude, Ollama) pentru asistență profesională', - icon: 'message-square', - route: '/ai-chat', - category: 'ai', - featureFlag: 'module.ai-chat', - visibility: 'all', - version: '0.2.0', + id: "ai-chat", + name: "Chat AI", + description: + "Interfață de conversație cu modele AI (OpenAI, Claude, Ollama) pentru asistență profesională", + icon: "message-square", + route: "/ai-chat", + category: "ai", + featureFlag: "module.ai-chat", + visibility: "all", + version: "0.2.0", dependencies: [], - storageNamespace: 'ai-chat', + storageNamespace: "ai-chat", navOrder: 51, - tags: ['chat', 'ai', 'conversație', 'openai', 'claude', 'ollama'], + tags: ["chat", "ai", "conversație", "openai", "claude", "ollama"], }; diff --git a/src/modules/ai-chat/index.ts b/src/modules/ai-chat/index.ts index 39e1ff0..f65da5e 100644 --- a/src/modules/ai-chat/index.ts +++ b/src/modules/ai-chat/index.ts @@ -1,3 +1,8 @@ -export { aiChatConfig } from './config'; -export { AiChatModule } from './components/ai-chat-module'; -export type { ChatMessage, ChatRole, ChatSession, AiProviderConfig } from './types'; +export { aiChatConfig } from "./config"; +export { AiChatModule } from "./components/ai-chat-module"; +export type { + ChatMessage, + ChatRole, + ChatSession, + AiProviderConfig, +} from "./types"; diff --git a/src/modules/prompt-generator/config.ts b/src/modules/prompt-generator/config.ts index ce66530..5238e92 100644 --- a/src/modules/prompt-generator/config.ts +++ b/src/modules/prompt-generator/config.ts @@ -1,17 +1,26 @@ -import type { ModuleConfig } from '@/core/module-registry/types'; +import type { ModuleConfig } from "@/core/module-registry/types"; export const promptGeneratorConfig: ModuleConfig = { - id: 'prompt-generator', - name: 'Generator Prompturi', - description: 'Generator structurat de prompturi pe bază de șabloane parametrizate, cu căutare și filtrare pe domenii profesionale și tipuri AI', - icon: 'sparkles', - route: '/prompt-generator', - category: 'ai', - featureFlag: 'module.prompt-generator', - visibility: 'all', - version: '0.2.0', + id: "prompt-generator", + name: "Generator Prompturi", + description: + "Generator structurat de prompturi pe bază de șabloane parametrizate, cu căutare și filtrare pe domenii profesionale și tipuri AI", + icon: "sparkles", + route: "/prompt-generator", + category: "ai", + featureFlag: "module.prompt-generator", + visibility: "all", + version: "0.2.0", dependencies: [], - storageNamespace: 'prompt-generator', + storageNamespace: "prompt-generator", navOrder: 50, - tags: ['prompt', 'ai', 'generator', 'șabloane', 'midjourney', 'stable-diffusion', 'imagine'], + tags: [ + "prompt", + "ai", + "generator", + "șabloane", + "midjourney", + "stable-diffusion", + "imagine", + ], };