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>
18 lines
671 B
SQL
18 lines
671 B
SQL
-- Migration 004: Project locks for session exclusivity
|
|
-- Prevents multiple Claude sessions from working on the same project
|
|
|
|
CREATE TABLE IF NOT EXISTS project_locks (
|
|
project TEXT PRIMARY KEY REFERENCES projects(key) ON DELETE CASCADE,
|
|
session_id TEXT NOT NULL,
|
|
locked_at TIMESTAMP WITH TIME ZONE DEFAULT NOW(),
|
|
expires_at TIMESTAMP WITH TIME ZONE,
|
|
reason TEXT
|
|
);
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_locks_session ON project_locks(session_id);
|
|
CREATE INDEX IF NOT EXISTS idx_locks_expires ON project_locks(expires_at);
|
|
|
|
-- Record migration
|
|
INSERT INTO schema_migrations (version, applied_at) VALUES ('004_project_locks', NOW())
|
|
ON CONFLICT DO NOTHING;
|