Lukas May
342b490fe7
feat: Task decomposition for Tailwind/Radix/shadcn foundation setup
...
Decomposed "Foundation Setup - Install Dependencies & Configure Tailwind"
phase into 6 executable tasks:
1. Install Tailwind CSS, PostCSS & Autoprefixer
2. Map MUI theme to Tailwind design tokens
3. Setup CSS variables for dynamic theming
4. Install Radix UI primitives
5. Initialize shadcn/ui and setup component directory
6. Move MUI to devDependencies and verify setup
Tasks follow logical dependency chain with final human verification
checkpoint before proceeding with component migration.
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com >
2026-02-10 09:48:51 +01:00
Lukas May
fab7706f5c
feat: Phase schema refactor, agent lifecycle module, and log chunks
...
Phase model changes:
- Drop `number` column (ordering now by createdAt + dependency DAG)
- Replace `description` (plain text) with `content` (Tiptap JSON)
- Add `approved` status as dispatch gate
- Add phase dependency management (list, remove, dependents)
- Approval gate in PhaseDispatchManager.queuePhase()
Agent log chunks:
- New `agent_log_chunks` table for DB-first output persistence
- LogChunkRepository port + DrizzleLogChunkRepository adapter
- FileTailer onRawContent callback streams chunks to DB
- getAgentOutput reads from DB first, falls back to file
Agent lifecycle module (src/agent/lifecycle/):
- SignalManager: atomic signal.json read/write/wait operations
- RetryPolicy: exponential backoff with error-specific strategies
- ErrorAnalyzer: pattern-based error classification
- CleanupStrategy: debug archival vs production cleanup
- AgentLifecycleController: orchestrates retry/recovery flow
- Missing signal recovery with instruction injection
Completion detection fixes:
- Read signal.json file instead of parsing stdout as JSON
- Cancellable pollForCompletion with { cancel } handle
- Centralized state cleanup via cleanupAgentState()
- Credential handler consolidation (prepareProcessEnv)
Prompts refactor:
- Split monolithic prompts.ts into per-mode modules
- Add workspace layout section to agent prompts
- Fix markdown-to-tiptap double-serialization
Server/tRPC:
- Subscription heartbeat (30s) and bounded queue (1000 max)
- Phase CRUD: approvePhase, deletePhase, dependency queries
- Page: findByIds, getPageUpdatedAtMap
- Wire new repositories through container and context
2026-02-09 22:33:28 +01:00
Lukas May
2877484012
Add userDismissedAt field to agents schema
2026-02-07 00:33:12 +01:00
Lukas May
37a90db28c
test(06-02): add comprehensive CoordinationManager tests
...
18 tests covering:
- Queue management (queueMerge, getQueueState)
- Dependency ordering (getNextMergeable with priority)
- Success path (processMerges with clean merges)
- Conflict handling (detect conflicts, create resolution task, send message)
- Error handling (missing repositories, missing agent)
Exports DefaultCoordinationManager from coordination module index.
2026-01-30 21:09:29 +01:00
Lukas May
4535707bc8
feat(06-02): enhance conflict bounce-back with agent messaging
...
Adds MessageRepository to DefaultCoordinationManager for conflict notification:
- Creates info message to agent when merge conflict occurs
- Message includes conflicting file list and resolution instructions
- System-generated messages use senderType='user' with null senderId
- Refactors conflict description into cleaner array.join format
2026-01-30 21:07:46 +01:00
Lukas May
6d7894bde4
feat(06-02): implement DefaultCoordinationManager adapter
...
Implements CoordinationManager interface with:
- In-memory merge queue with dependency tracking
- Dependency-ordered merging (getNextMergeable)
- Merge queue state tracking (queued, in_progress, merged, conflicted)
- Event emission for all merge lifecycle events
- Basic conflict handling (creates resolution task)
2026-01-30 21:06:54 +01:00
Lukas May
0570d21ad6
feat(06-01): add CoordinationManager port interface
...
- MergeQueueItem type for merge queue entries
- MergeStatus type: queued | in_progress | merged | conflict
- MergeResult type with task context
- CoordinationManager interface with methods:
- queueMerge: queue completed task for merge
- getNextMergeable: get next task with resolved dependencies
- processMerges: process all ready merges
- handleConflict: bounce-back for conflict resolution
- getQueueState: query queue by status
2026-01-30 21:03:54 +01:00