17 Commits

Author SHA1 Message Date
588dd98e45 Improve archived sessions discovery and access
Backend improvements:
- Modify GET /api/collaborate/:id/document to return final_document for completed sessions
- Sessions archivées sont maintenant accessibles même si pas en mémoire active

Frontend improvements:
- Add search bar to filter sessions by ID or description
- Add search query state to allow real-time filtering
- Update session counts in filter buttons
- Enhance filteredSessions computed to include search query
- Add CSS styling for search input with focus effects
- Enable easy discovery and access to all archived sessions
- Sessions can now be searched, filtered by status, and browsed
2025-10-19 00:10:10 +02:00
a5e184af8e Fix convergence logic and stop button functionality
- Fix convergence: use agentsInRound.length as fallback if agentCount is undefined
- This was causing infinite loops when agentCount wasn't properly initialized
- Simplify convergence check: only schedule next round if !hasConverged
- Add 'stopped' flag to sessions to prevent scheduled rounds from executing
- Modify runRound to check 'stopped' flag and exit early if set
- Modify completeSession to set 'stopped = true' to abort scheduled rounds
- This fixes the issue where stop button wasn't actually stopping the session
- Add better logging for convergence state
2025-10-19 00:08:16 +02:00
56cf1a3efd Clean up dead code and unused imports
- Remove unused Readable import from mistralClient.js
- Remove unused generateAgentResponse streaming function
- Remove unused parseStreamResponse helper function
- Remove unused updateDocumentFromMessage from collaboration store
- Remove unused documentVersions state from store
- Remove unused getRandomName function from nameGenerator.js
- Clean up store exports and clearCurrentSession function
2025-10-18 23:50:39 +02:00
b4ccf03b8e Update default model to mistral-large-2411 for improved agentic workflows
- Change default from mistral-small-latest to mistral-large-2411
- mistral-large-2411 is Mistral's flagship model (123B params)
- Optimized for complex agentic workflows with precise instruction following
- Supports 128k context window with robust function-calling and JSON outputs
- Better suited for multi-agent collaborative document editing
2025-10-18 23:46:58 +02:00
affb55df43 Add section deletion and simplify working agent display
- Add deleteSection() method to collaborativeOrchestrator.js for removing sections by header
- Enable IAs to delete sections with 'DELETE: ## Section Name' format
- Modify mistralClient.js prompt to include deletion instructions
- Simplify working agent card UI: show only raised hand animation + agent name
- Remove thinking content display from working agent card for cleaner UX
2025-10-18 23:44:31 +02:00
5be5347a00 Add GET endpoint to list all collaborative sessions
Allows frontend to retrieve history of all past sessions for easy access
to previous discussions and documents.

GET /api/collaborate returns:
- List of last 50 sessions (ordered by most recent first)
- Each session includes: id, prompt, format, status, created/completed dates

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-18 23:35:26 +02:00
59465c79c1 Refactor: Sequential document collaboration with explicit system initialization
Major improvements:
- SYSTEM creates base structure (not an AI agent) in startSession
- Round 1 begins with clean document v0
- Each AI receives the EXACT document version from previous agent
- Enhanced logging shows 'AGENT n/N' with version numbers
- Each AI sees full updated document before modifying
- Clear v0 → v1 → v2 → vN progression
- Better deduplication through explicit sequential flow

The collaboraion is now explicitly sequential: SYSTEM → IA1 (receives v0, creates v1) → IA2 (receives v1, creates v2) etc.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-18 23:27:09 +02:00
68cf310f0c Add comprehensive logging and enable AI section creation
Features:
- IAs can now create NEW sections if they think they're needed
- Complete document content logging (before/after each modification)
- Detailed AI thinking and reasoning in logs
- Distinguish between 'MODIFIED' and 'CREATED NEW SECTION' actions
- Full round-by-round visibility in logs

This allows AI agents to be more creative and add new architectural
sections when they identify missing requirements or design gaps.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-18 23:20:29 +02:00
c5f7806718 Fix: Make generateAgentResponse an async generator function
The generateAgentResponse function uses 'yield' to stream responses,
so it must be declared as an async generator function (async function*)
instead of a regular async function.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-18 23:07:32 +02:00
b566671ea4 Major refactor: Replace fixed roles with N named AI agents
Backend changes:
- Refactor mistralClient to generic agent prompts (not role-based)
- Implement streaming responses with thinking extraction
- Create nameGenerator service for random AI names
- Refactor collaborativeOrchestrator for N agents
- Implement true convergence (N agents with no changes)
- Add section merging for partial document updates
- Each AI modifies only ONE section, not entire document
- Broadcast agent_working and agent_thinking events in real-time
- Update routes for new orchestrator API

Features:
- Support 3-50 AI agents instead of fixed 7 roles
- Real-time thinking/reasoning streaming
- Partial document updates (section-based)
- True convergence tracking
- Automatic round progression
- Section extraction and merging

Next: Frontend enhancements for visualization
2025-10-18 23:01:43 +02:00
97c4ad9f6c Add marked syntax highlighting and random name generator
- Install marked and highlight.js for better markdown rendering
- Create nameGenerator service with 50 unique names
- Update DocumentViewer to use marked instead of regex parsing
- Add syntax highlighting for code blocks
- Improve styling for code with proper colors
2025-10-18 22:57:59 +02:00
85319b5ca6 Fix session lifecycle: change initial status from 'ongoing' to 'created'
Update database schema and backend services to properly track session lifecycle:
- Sessions now start with 'created' status
- Frontend auto-start logic works when status is 'created'
- Status transitions to 'ongoing' when session actually starts
- Prevents issues with premature round execution

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-17 17:38:41 +02:00
08056ce9fd Clean up: Remove emojis, unused APIs and files
Removed:
- All emojis from code and UI (using minimal styling instead)
- Classic debate mode completely (orchestrator.js, debate.js routes)
- Debate components (DebateThread.vue, PromptInput.vue)
- Debate store (debate.js)
- Unused database tables (debates, responses)

Simplified:
- App.vue: Single direct flow (input -> session)
- Backend: Only /api/collaborate routes
- NetworkStatus: Simple dot indicator with colors
- README.md: Consolidated documentation
- UX: Cleaner, more minimal interface

Cleanup focused on keeping only collaborative design system
Files removed: 6 | Files modified: 6

🤖 Generated with Claude Code

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-17 17:22:49 +02:00
7574f353ee Implement collaborative document design system
Add new iterative collaboration mode where Lead Architect creates initial document,
then 3-7 specialized agents review and refine it through sequential rounds until
convergence. Complete with WebSocket real-time updates, document versioning, and
timeline tracking.

Backend:
- New collaborativeOrchestrator service with round-based iteration logic
- Document versioning and diff tracking
- Three new DB tables: collaborative_sessions, document_versions, document_rounds
- New /api/collaborate routes for session management
- WebSocket support for sessionId in addition to debateId

Frontend:
- New collaboration store (Pinia) for session state management
- CollaborativeInput component for creating sessions with format/agent selection
- CollaborativeSession component with real-time document viewer and timeline
- DocumentViewer with basic Markdown rendering and text support
- App.vue refactored with mode selector (Classic Debate vs Collaborative Design)
- Enhanced useWebSocket composable supporting both debateId and sessionId

Features:
- 7 specialized agents: Lead Architect, Backend Engineer, Frontend Engineer, UI Designer, DevOps Engineer, Product Manager, Security Specialist
- Flexible document formats: Markdown (.md) and plain text (.txt)
- Automatic convergence detection when no changes in full round
- Complete modification history with who changed what and why
- Download final document in chosen format

🤖 Generated with Claude Code

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-17 17:02:03 +02:00
5b67cca5cb Fix Mistral API parameter naming issue
- Change maxTokens to max_tokens for Mistral API compatibility
- Extract maxTokens from options before spreading to avoid parameter conflicts
- Tested successfully with live API calls
2025-10-17 12:02:59 +02:00
188395464e Implement complete AI debate system with real-time updates
- Add Mistral AI integration for agent responses
  - Create mistralClient service with agent-specific prompts
  - Support for architect, backend engineer, frontend engineer, and designer roles
  - Automatic JSON response parsing and validation

- Implement WebSocket real-time communication
  - Update orchestrator with WebSocket broadcasting
  - Add client subscription system for debate updates
  - Real-time agent response streaming

- Add consensus and voting system
  - Calculate weighted consensus with architect priority
  - Confidence-based voting mechanism
  - Auto-complete debates when consensus reached

- Integrate Mermaid diagram rendering
  - Support for embedded diagrams in agent responses
  - Client-side Mermaid.js integration
  - Auto-render diagrams on response updates

- Update frontend for real-time experience
  - WebSocket composable for reactive updates
  - Live status messages and response streaming
  - Loading states and consensus display
2025-10-17 11:50:56 +02:00
04e6c062a5 Add full-stack implementation with Vue.js frontend and Node.js backend
- Add MIT License
- Create frontend with Vue 3 + Vite + Pinia
  - PromptInput component for project description
  - DebateThread component for displaying AI discussions
  - Debate store for state management
- Create backend with Express + WebSocket + SQLite
  - REST API for debate management
  - Database schema for debates and responses
  - Orchestrator service for AI agent coordination
- Update .gitignore for environment files and dependencies
2025-10-17 11:37:59 +02:00