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>
This commit is contained in:
17
migrations/004_project_locks.sql
Normal file
17
migrations/004_project_locks.sql
Normal file
@@ -0,0 +1,17 @@
|
||||
-- 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;
|
||||
Reference in New Issue
Block a user