Files
weichenandCursor 18ddd0f862 feat(workspace): add WorkspaceRef fencing and hide physical paths
Cross-module callers get an opaque ref plus rotating lease tokens so stale writers fail closed, and file I/O is refused inside a unit of work.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-14 15:59:14 +00:00

18 lines
472 B
Go

package workspace
import "testing"
func TestLeaseTableRejectsStaleTokenAfterReissue(t *testing.T) {
table := NewLeaseTable()
old := WorkspaceRef{ID: "ws1", FencingToken: "old-token", ProjectScope: 3}
table.Issue(old)
fresh := WorkspaceRef{ID: "ws1", FencingToken: "new-token", ProjectScope: 3}
table.Issue(fresh)
if err := table.Assert(old); err != ErrStaleFencing {
t.Fatalf("stale: %v", err)
}
if err := table.Assert(fresh); err != nil {
t.Fatal(err)
}
}