Commit Graph

46 Commits

Author SHA1 Message Date
Christian Gick
2fa5279724 feat(CF-368): Use pgbouncer connection pooling via POSTGRES_PORT env
Changed hardcoded port 5432 to read from POSTGRES_PORT environment
variable to support pgbouncer connection pooling (port 6432).

Connection pooling reduces overhead for frequent queries and better
handles concurrent connections.

.env now configured with POSTGRES_PORT=6432 (pgbouncer).

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-23 08:53:41 +02:00
Christian Gick
33b3ef5234 fix(CF-352): Auto-create session in sessionCommitLink to prevent FK constraint error
- Check if session exists before inserting commit link
- Auto-create minimal session record if missing (status=active, no project)
- Prevents FK constraint violation when cache/DB drift occurs
- Return message indicates if session was auto-created for monitoring
- Handles edge cases: concurrent calls, missing committed_at, NULL project

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-21 17:19:44 +02:00
Christian Gick
3da714e8bf fix: Add 'pending' status to task status enum
Resolves MCP error when trying to set status="pending" on tasks.

Changes:
- Migration 019: Add 'pending' to tasks.status CHECK constraint
- Update task_update tool schema to accept 'pending' status
- Update task_list tool schema to filter by 'pending' status

Status meanings:
- pending: Created, awaiting approval or dependencies
- open: Approved and ready to start
- in_progress: Currently being worked on
- testing: Implementation complete, being tested
- blocked: Stuck waiting for something
- completed: Done

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-20 18:04:05 +02:00
Christian Gick
b145e1effd feat(CF-338): Improve project detection to respect CF vs project scope
Problem: task-mcp treated all Infrastructure folders equally, causing framework/tooling work to be mis-scoped to random project codes instead of CF.

Solution:

1. Framework paths explicitly map to CF:

   - ClaudeFramework, AgilitonScripts, doco-cd, mcp-servers

   - deployment-system, monitoring-stack, backup-system

2. Infrastructure/* defaults to CF (framework work by default)

3. Project-specific infra services have explicit mappings:

   - caddy-gateway → CADDY

   - litellm → LLM

4. Apps/ still auto-detect project-specific codes (ST, GB, VPN, etc.)

This ensures:

- Framework tool changes → CF (correct scope)

- App features → Project codes (ST, GB, etc.)

- Infrastructure services → Own scope if needed

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-20 16:14:32 +02:00
Christian Gick
7f86d256c9 fix(CF-303): Remove internal IP from run.sh log message
Removed hardcoded internal IP address from debug log to comply with
CF-303 IP exposure validation. Changed to generic message.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-20 10:18:33 +02:00
Christian Gick
2439d4a645 fix(CF-306): Validate session_id in memory_add to prevent FK violations
Added validation to check if session_id exists in sessions table before
inserting memories. Falls back to NULL if session not found, preventing
foreign key constraint violations while preserving memory content.

Logs warning when invalid session_id provided for debugging.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-20 10:17:53 +02:00
Christian Gick
18a016f82f feat(CF-301): Implement task_move_project function
Added task_move_project tool to move tasks between projects while
preserving all relationships and history:

Changes:
- db.ts: Added getClient() for transaction support
- crud.ts: Implemented taskMoveProject() with full transaction
- index.ts: Wired up tool handler and import
- tools/index.ts: Registered tool definition

Preserves:
- Task metadata (title, description, type, status, priority)
- Checklist items
- Linked commits
- Delegations
- Activity history
- Task links (relates_to, blocks, duplicates)
- Epic and version assignments
- Embeddings

Process:
1. Validates source task and target project exist
2. Generates new ID in target project
3. Transfers all related data in transaction
4. Marks old task as completed with reference
5. Creates duplicate link between tasks

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-20 08:05:34 +02:00
Christian Gick
213a84f464 docs(CF-236): Add CLI wrapper documentation to README
Added CLI Wrapper section documenting the task CLI available at
~/Development/Infrastructure/AgilitonScripts/bin/task

Includes examples for:
- Creating tasks
- Listing with filters
- Showing task details
- Updating tasks
- Closing tasks
- Adding checklist items
- Searching similar tasks
- Investigation workflow

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-19 21:47:37 +02:00
Christian Gick
7be5878d35 feat(CF-166): Add investigation workflow with auto-linking
Implements comprehensive investigation task management:

**Schema Changes (Migration 020):**
- Add 'investigation' task type to tasks table
- Add investigation_parent_id and auto_link_enabled columns to session_context
- Add auto_linked and linked_at columns to task_links for tracking
- Create indexes for efficient auto-linking queries

**Auto-Linking Logic:**
1. Investigation Parent Linking: Tasks auto-link to active investigation
2. Current Task Linking: Tasks link to current working task
3. Time-Based Linking: Tasks within 1 hour auto-link (fallback)

**New Tool:**
- task_investigate: Start investigation workflow, sets session context

**Documentation:**
- Add comprehensive investigation workflow guide to README
- Include examples and session context explanation

All checklist items completed:
✓ Investigation task type in schema
✓ Session context table enhancements
✓ Auto-linking implementation
✓ task_investigate command
✓ Documentation updates

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-19 19:15:25 +02:00
Christian Gick
caf9356aad feat(CF-282, CF-278): Add session context and task-session linking
**CF-282: Session Reference in Tasks**
- Add session_id column to tasks table (migration 019)
- Store session_id when creating tasks in taskAdd()
- Display session_id in taskShow() output
- Create index for performance
- Backfill existing tasks from task_activity

**CF-278: Enhanced Session Context**
- Updated session-start to load memories (via DB query)
- Performance: 2-3.6s (target <5s) ✓

Changes:
- migrations/019_add_session_id_to_tasks.sql: New migration
- src/tools/crud.ts: taskAdd and taskShow modifications

Requires: Claude Code restart to load new code

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-19 18:48:43 +02:00
Christian Gick
16c579e6d5 Add deployment tracking schema (Migration 018)
Creates deployments and deployment_logs tables for tracking all
deployment types (Docker, MCP, iOS/macOS, services). Includes
deployment status, timing, git integration, and structured logging.

Also adds run-migration.mjs helper for running migrations against
PostgreSQL database.

Part of CF-290, completes CF-291.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-19 16:05:19 +02:00
Christian Gick
25bed341e9 Add migration scripts for archive database migration
Three migration scripts for complete file-to-database migration:
- migrate-all-docs-batch.mjs: Main migration (1,172 files)
- migrate-missed-docs.mjs: Supplementary for hidden dirs (34 files)
- migrate-external-archive.mjs: External archive cleanup (5 files)

Total migrated: 1,211 files (~15MB) to project_archives table
All with semantic embeddings for vector search

Related: CF-267, CF-268

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-19 15:01:18 +02:00
Christian Gick
eb6b51837f Add Phase 3 migration: project documentation
- migrate-project-docs-batch.mjs: 60 files across 23 projects
- migrate-cf-docs-batch.mjs: ClaudeFramework documentation
- migrate-plans-batch.mjs: Session plan files
- 017_fix_archives_embedding_dimension.sql: Fix vector dimension
- run-migration.js: Node.js migration runner utility

Total migrated: 332 files, 8.85MB with semantic embeddings

Fixes: CF-277
2026-01-19 14:09:03 +02:00
Christian Gick
6c497ec6c5 Fix CF-271: Add fallback text search to archive_search
When LiteLLM embedding service is unavailable, archive_search now gracefully falls back to PostgreSQL text search (ILIKE) instead of returning an error. Also adds dotenv support for proper credential loading.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-19 13:14:29 +02:00
Christian Gick
1231835e02 Add project_archives table and MCP tools (CF-264)
- Created migration 009: project_archives table with semantic search
- Implemented archives.ts: archiveAdd, archiveSearch, archiveList, archiveGet
- Registered archive tools in index.ts and tools/index.ts
- Archive types: session, research, audit, investigation, completed, migration
- Uses project_key (TEXT) FK to projects table
- Tested: archive_add and archive_list working correctly

Replaces filesystem archives with database-backed storage.
Eliminates context pollution from Glob/Grep operations.

Task: CF-264
Session: session_20260119111342_66de546b

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-19 11:38:48 +02:00
Christian Gick
a868dd40ec Add semantic search and analytics tools for sessions
Phase 7 complete: Advanced session analysis capabilities

New MCP Tools (3):
1. session_semantic_search - Vector similarity search across all sessions
2. session_productivity_analytics - Metrics (avg duration, tasks, commits, tokens)
3. session_pattern_detection - Detect patterns (tool usage, task types)

Features:
- Semantic search with embedding-based similarity
- Fallback to ILIKE text search if embeddings unavailable
- Analytics over configurable time periods (week/month/quarter)
- Pattern detection with frequency analysis

Use Cases:
- Find similar past work: "sessions about WhatsApp integration"
- Track productivity: avg commits/tasks per session
- Identify tool usage patterns: which tools used most often
- Analyze task type distribution

All 7 phases complete! System ready for testing.

Related: CF-257

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-19 10:21:47 +02:00
Christian Gick
3745a13eaf Add session documentation system (migration + MCP tools)
Phase 1-2 complete: Database schema + 9 MCP tools for session docs

Database Changes (migration 016):
- session_notes table (accomplishments, decisions, gotchas, etc.)
- session_plans table (plan mode plans with lifecycle tracking)
- project_documentation table (persistent project docs)
- sessions.documentation column (auto-generated markdown)
- HNSW indexes for semantic search across all doc types

MCP Tools Added (session-docs.ts):
1. session_note_add - Add structured notes to session
2. session_notes_list - List notes by type
3. session_plan_save - Save plan with embedding
4. session_plan_update_status - Track plan lifecycle
5. session_plan_list - List session plans
6. project_doc_upsert - Create/update project docs
7. project_doc_get - Get specific doc by type
8. project_doc_list - List all project docs
9. session_documentation_generate - Auto-generate markdown

Replaces: CLAUDE.md files, ~/.claude/plans/ directory

Next: Update session-start/end scripts for temp file management

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-19 10:13:57 +02:00
Christian Gick
afce0bd3e5 Migrate embeddings from Gemini to local mxbai-embed-large
Switch from external Gemini API (3072 dims, $0.15/1M tokens) to local
Ollama mxbai-embed-large (1024 dims, free) for cost savings and HNSW
index support.

Changes:
- Updated embeddings.ts: model 'mxbai-embed-large', API URL fixed
- Updated migration 015: vector(1024) with HNSW index
- Regenerated 268 tool_docs embeddings with new model

Benefits:
- Free embeddings (no API costs)
- HNSW index enabled (1024 < 2000 dim limit)
- Fast similarity search (O(log n) vs O(n))
- No external API dependency

Trade-offs:
- 5% quality loss (MTEB 64.68 vs ~70 Gemini)
- Uses local compute (1.2GB RAM, <1s per embedding)

Task: CF-251

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-19 09:40:02 +02:00
Christian Gick
0aa10d3003 Add tool documentation MCP tools for queryable TOOLS.md replacement
- Created tool_docs table with pgvector support (migration 015)
- Added 5 MCP tools: tool_doc_add, tool_doc_search, tool_doc_get, tool_doc_list, tool_doc_export
- Imported 268 tools from TOOLS.md to database
- Enables semantic search for tool documentation (when embeddings available)
- Reduces context pollution (TOOLS.md is 11,769 lines, now queryable)

Task: CF-249

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-19 09:15:34 +02:00
Christian Gick
fe2b1a0423 fix: Remove redundant session_id validation in memoryAdd (CF-195)
Problem: session_id validation added extra SELECT query before each
memory insertion, causing session-start delays.

Root cause: Foreign key constraint already enforces referential
integrity (migrations/011_memories.sql:16-19). Validation was redundant.

Solution: Remove validation (lines 50-59 in memories.ts). Let database
handle referential integrity with proper error messages.

Benefits:
- Faster memoryAdd calls (one less query)
- Proper error messages from PostgreSQL on constraint violations
- No silent NULL conversion for invalid session_ids

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-18 10:37:50 +02:00
Christian Gick
2e2f0192d9 fix: Validate session_id exists before memory insert (CF-194)
- Added session existence check before INSERT
- Graceful degradation: sets session_id to null if invalid
- Prevents FK constraint violation
- Memory still stored without session link
2026-01-18 10:33:59 +02:00
Christian Gick
cc88b234ae Add infrastructure changelog system to task-mcp
Implements session-aware infrastructure change tracking for CF-179.

Changes:
- New changelog.ts with 3 MCP tools:
  - changelog_add: Add infrastructure changes
  - changelog_since_session: Query changes since last session
  - changelog_list: Time-based fallback query
- Integrated with session-start command via MCP
- Database-first architecture (PostgreSQL on infra VM)
- Session-relative queries (not fixed time windows)

Database schema:
- infrastructure_changelog table (6 fields)
- Migrated 5 historical changes
- Indexes on date, session_id, created_at

Task: CF-179

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-17 12:13:24 +02:00
Christian Gick
8db391f680 Replace hardcoded IPs with DNS hostnames
- Updated db.ts to use infra.agiliton.internal with env var fallback
- Updated run.js to use infra.agiliton.internal for DB_HOST
- Rebuilt dist files with new configuration

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-17 09:11:37 +02:00
Christian Gick
90bb7e94f0 Add session-aware task context and auto-linking (CF-166 Phase 2)
Enhancements:

1. Session Context Table
   - Migration 014: session_context table
   - Tracks current working task per session
   - Auto-updated on task status changes

2. Auto-Linking to Current Working Task
   - When task status → in_progress: sets as current_task_id
   - When task status → completed: clears current_task_id
   - New tasks auto-link to current working task with 'relates_to'
   - Shows auto-link message during task creation

3. Session ID Resolution
   - Fixed path: ~/.cache/session-memory/current_session
   - Falls back to environment variable CLAUDE_SESSION_ID
   - Generates timestamp-based ID if unavailable

Example Flow:
```
1. task update CF-123 --status in_progress
   → Sets CF-123 as current working task

2. task add --title "Related work"
   → Created: CF-124
   🔗 Auto-linked to: CF-123 (current working task)

3. task update CF-123 --status completed
   → Clears current working task
```

Files Changed:
- migrations/014_session_context.sql (new, 33 lines)
- src/tools/crud.ts (auto-linking logic, session context management)

Benefits:
- Zero manual linking for related work
- Session context preserved automatically
- Investigation workflows auto-organized
- Retroactive work tracking prevented

Note: Requires MCP server restart to take effect.

Remaining CF-166 Features (Phase 3):
- task investigate command
- Investigation workflow helper
- Task creation reminders

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-17 08:44:19 +02:00
Christian Gick
f7f9cfe3d8 Add investigation type and duplicate detection (CF-166 Phase 1)
Enhancements:

1. Investigation Task Type
   - Added 'investigation' to task type enum
   - Migration 013: Updated PostgreSQL constraint
   - Updated TypeScript schemas (task_add, task_list, task_update)
   - Enables tracking research/debugging workflows

2. Duplicate Detection
   - Enhanced task_add to check for similar tasks before creating
   - Uses pgvector semantic search (>70% similarity threshold)
   - Warns about potential duplicates with similarity scores
   - Suggests linking command for related tasks
   - Gracefully handles when embeddings unavailable

Example Output:
```
Created: CF-123
  Title: Fix API rate limiting
  Type: task
  Priority: P2
  Project: CF

⚠️  Similar tasks found:
  - CF-120: Add rate limit monitoring (85% match, in_progress)
  - CF-115: Implement API throttling (72% match, open)

Consider linking with: task link <from> <to> relates_to
```

Benefits:
- Prevents accidental duplicate tasks
- Surfaces related work automatically
- Reduces manual task linking
- Investigation type for research workflows

Files Changed:
- migrations/013_investigation_type.sql (new)
- src/tools/crud.ts (duplicate detection logic)
- src/tools/index.ts (investigation type in enums)

Remaining CF-166 Features (Phase 2):
- Session-aware task context
- Automatic linking within session
- Investigation workflow helper
- Task creation reminders

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-17 08:38:18 +02:00
Christian Gick
04395e8403 Add session management MCP tools (Phase 3)
Implemented 8 new session management tools:
- session_start: Initialize session with metadata tracking
- session_update: Update session metrics during execution
- session_end: Close session with summary and embedding
- session_list: List sessions with filtering
- session_search: Semantic search across sessions
- session_context: Get complete session context (tasks, commits, builds, memories)
- build_record: Link builds to sessions and versions
- session_commit_link: Link commits to sessions

Enhanced existing tools:
- memory_add: Added session_id and task_id parameters
- Updated all memory queries to use 'memories' table (renamed from session_memories)

Implementation:
- Created src/tools/sessions.ts with all session operations
- Updated src/tools/memories.ts for new schema
- Added 8 session tool definitions to src/tools/index.ts
- Registered all session tools in src/index.ts switch statement
- TypeScript compilation successful

Related: CF-167 (Fix shared session-summary.md file conflict)
2026-01-17 07:45:14 +02:00
Christian Gick
00de7f1299 Add database migrations for session context system
Phase 1: Database Schema Implementation
- Migration 010: Sessions table with bulletproof auto-incrementing
  - Unique session IDs across all projects
  - Per-project session numbers (1, 2, 3, ...)
  - Atomic sequence generation (no race conditions)
  - Session-task and session-commit linking
  - Semantic search with pgvector HNSW indexes

- Migration 011: Memories table with enhanced schema
  - Migrated existing session_memories to memories
  - Added session_id and task_id foreign keys
  - Renamed columns for consistency
  - HNSW indexing for semantic search

- Migration 012: Builds table for CI/CD tracking
  - Links builds to sessions and versions
  - Tracks build status, timing, and metadata

All migrations tested and verified on agiliton database.

Related: CF-167 (Fix shared session-summary.md file conflict)
2026-01-17 07:41:03 +02:00
Christian Gick
6c8862dcc0 fix: Hardcode DB config and start server before DB connection
- db.ts: Hardcode 10.0.1.1 (infra VM) to prevent env var issues
- index.ts: Start MCP server before DB connection (fixes Claude Code timing)
- run.sh/run.js: Add wrapper scripts with embedded env vars
- start.sh: Update with correct WireGuard config

Fixes task-mcp failing to connect in Claude Code sessions after
WireGuard migration. The server must respond to MCP initialize
before stdin closes, which requires starting before slow DB ops.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-13 14:11:58 +02:00
Christian Gick
afe2f8bc0b feat: Add session memory system with pgvector
- Add session_memories table for persistent learnings
- Add memory_add, memory_search, memory_list, memory_context tools
- Supports semantic search via embeddings
- Categories: pattern, fix, preference, gotcha, architecture

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-12 08:34:45 +02:00
Christian Gick
d474c1c368 fix: Auto-detect project from CWD in task_list and epic_list
Previously these functions only filtered by project when explicitly
passed. Now they auto-detect from CWD using detectProjectFromCwd(),
matching the behavior of project_context.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-12 08:12:49 +02:00
Christian Gick
149ebdb95f fix: Simplify component_graph query to avoid recursive CTE error
PostgreSQL does not support multiple recursive references in the same CTE.
Changed to use simpler subqueries for direct dependencies + dependents.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-11 07:27:10 +02:00
Christian Gick
4fb557c624 feat: Add impact analysis for component dependency tracking
- New tables: components, component_dependencies, component_files,
  verification_checks, change_impacts, impact_analysis_runs
- 8 new MCP tools: component_register, component_list,
  component_add_dependency, component_add_file, component_add_check,
  impact_analysis, impact_learn, component_graph
- Seed data: 17 components, 9 dependencies, 12 file patterns, 5 checks
- Historical impacts from session 397 issues recorded

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-11 07:20:00 +02:00
Christian Gick
5015b1416f feat: Add version management, session tracking, and commit linking
Phase 1: Version Management
- Migration 006: Add git_tag, git_sha columns to versions
- New tools: version_add, version_list, version_show, version_update,
  version_release, version_assign_task
- Links versions to git tags for release tracking

Phase 2: Session/Task Activity Tracking
- Migration 007: Create task_activity table
- Track task changes per session (created, updated, status_change, closed)
- Session ID from env/cache file (usage-stats format)
- New tool: session_tasks to query tasks by session

Phase 3: Commit-Task Linking
- Migration 008: Create task_commits junction table
- New tools: task_commit_add, task_commit_remove, task_commits_list,
  task_link_commits (batch parsing)
- Stores SHA references only (Gitea MCP owns full data)
- Commits shown in task_show output

17 new MCP tools total. All migrations applied to docker-host postgres.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-10 10:28:21 +02:00
Christian Gick
e12cccf718 fix: Add missing updated_at column to epics table
epic_close was failing with "column updated_at does not exist".
Migration adds the column with default NOW() and backfills
existing rows from created_at.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-10 09:48:08 +02:00
Christian Gick
99f5828f60 feat: Add project_context tool and CWD auto-detection
New features:
- detectProjectFromCwd(): Maps directory paths to project keys
- project_context: Returns project, tasks, epics, lock status
- Auto-detection for 18 known projects (ST, VPN, OWUI, etc.)
- Falls back to extracting from Apps/X or Infrastructure/X paths

Use project_context at session start to see only relevant tasks.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-10 09:26:33 +02:00
Christian Gick
837fb8060c feat: Add project lock mechanism for session exclusivity
New MCP tools:
- project_lock: Lock a project for exclusive session access
- project_unlock: Release a project lock
- project_lock_status: Check lock status for project(s)

Features:
- Automatic lock expiration (default 2h)
- Session ownership verification
- Force unlock option for emergencies
- Lock extension on re-lock by same session

Migration 004: project_locks table with expiry tracking

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-10 09:22:26 +02:00
Christian Gick
fe2cd82587 fix: Add embedding column to epics table
Migration 003: enables semantic search for epics
- ALTER TABLE epics ADD COLUMN embedding vector(1024)
- HNSW index for similarity search

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-10 09:16:37 +02:00
Christian Gick
612199d5ce fix: Use agiliton database instead of litellm
- Changed default database from litellm to agiliton
- Updated credentials for docker-host postgres
- Requires pgvector/pgvector:pg16 image on docker-host

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-10 09:03:28 +02:00
Christian Gick
29cd754e39 fix: Add missing 001 base schema migration
Creates core tables for task-mcp:
- projects, task_sequences, epic_sequences
- tasks with vector(1024) embedding for semantic search
- epics, versions, task_checklist, task_links
- HNSW index for fast vector similarity search

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-09 17:21:40 +02:00
Christian Gick
d39e82a767 feat: Add epic_close MCP tool
- New epic_close(id) function to mark epics as completed
- Added tool definition and handler
- Usage: epic_close({ id: 'CF-E1' })

Task: CF-258

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-09 15:25:05 +02:00
Christian Gick
e21072ea54 feat: Add delegation tracking MCP tools
Session 374: Task-MCP and Delegation System Integration (Phase 4 & 6)

- Add task_delegations tool: query delegations for a specific task
- Add task_delegation_query tool: query across all tasks by status/backend
- Enhance taskShow() to display recent delegation history
- New delegations.ts module with getRecentDelegations helper

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-09 10:43:13 +02:00
Christian Gick
df3e557c87 feat: Add task_delegations schema (Session 374)
- task_delegations table for tracking delegation metadata per task
- task_learning_effectiveness table for per-task learning tracking
- Indexes for efficient querying by task_id, status, backend

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-09 10:32:10 +02:00
Christian Gick
2c7a2de5b3 feat(task-mcp): Add task_resolve_duplicate tool
Combines close + link operations for duplicate issues:
- Closes the duplicate task (sets status to completed)
- Creates bidirectional 'duplicates' link to dominant task

Usage: task_resolve_duplicate(duplicate_id, dominant_id)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-09 06:34:16 +02:00
Christian Gick
3fc8f2d5e0 feat: Add 'testing' status to task workflow
Workflow: open → in_progress → testing → completed

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-09 00:13:31 +02:00
Christian Gick
f193581805 feat: Make relates_to and duplicates links bidirectional
- relates_to and duplicates now create reverse links automatically
- task_show displays Related and Duplicates sections
- blocks remains unidirectional (A blocks B, B is blocked by A)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-08 23:45:15 +02:00
Christian Gick
a03e9e065a feat: Add task-mcp server for task management via MCP
Implements 10 MCP tools for task management:
- CRUD: task_add, task_list, task_show, task_close, task_update
- Search: task_similar (pgvector), task_context
- Relations: task_link, task_checklist_add, task_checklist_toggle

Uses PostgreSQL with pgvector for semantic search via LiteLLM embeddings.
Connects via SSH tunnel to docker-host:5435.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-08 20:58:14 +02:00