From c2bdfe3798e905d13a29b94c05e93b89deb015aa Mon Sep 17 00:00:00 2001 From: Christophe Vila Date: Sat, 25 Jul 2026 17:02:52 +0200 Subject: [PATCH] store: remove dead-code branch from ClaimLegacyOwner Task 3 correction: migration 0003 unconditionally seeds a profile row on every fresh install, and Task 1's migration 0023 preserves this seeded row with user_id = NULL. Therefore, a fresh install always has at least one profile row with user_id IS NULL when users table is empty -- the "no-op on genuinely fresh install" scenario was unreachable dead code. Confirmed with the codebase owner that no scenario requires defending against a missing profile row. Collapse the two-branch error handling into a single `if err != nil` check (matching the pattern used elsewhere in the function), remove the now-unused database/sql import, update the function's doc comment to remove the false claim about fresh installs, and delete the now-unreachable TestClaimLegacyOwner_NoOpOnGenuinelyFreshInstall test. Co-Authored-By: Claude Sonnet 5 --- backend/internal/store/legacy_claim.go | 7 +------ backend/internal/store/legacy_claim_test.go | 12 ------------ 2 files changed, 1 insertion(+), 18 deletions(-) diff --git a/backend/internal/store/legacy_claim.go b/backend/internal/store/legacy_claim.go index e931f73..6216765 100644 --- a/backend/internal/store/legacy_claim.go +++ b/backend/internal/store/legacy_claim.go @@ -2,7 +2,6 @@ package store import ( "context" - "database/sql" "fmt" ) @@ -13,8 +12,7 @@ import ( // new user identified by oidcSub. Safe to call on every startup: once the // users table is non-empty, it's a no-op, so leaving // GENIUSRUN_LEGACY_OWNER_OIDC_SUB set after the first successful run causes -// no harm. Also a no-op on a genuinely fresh install (no legacy profile row -// to claim at all). +// no harm. func (db *DB) ClaimLegacyOwner(ctx context.Context, oidcSub string) error { var userCount int if err := db.QueryRowContext(ctx, `SELECT COUNT(*) FROM users`).Scan(&userCount); err != nil { @@ -26,9 +24,6 @@ func (db *DB) ClaimLegacyOwner(ctx context.Context, oidcSub string) error { var displayName string err := db.QueryRowContext(ctx, `SELECT name FROM profile WHERE user_id IS NULL LIMIT 1`).Scan(&displayName) - if err == sql.ErrNoRows { - return nil // fresh install, no pre-existing singleton profile to claim - } if err != nil { return fmt.Errorf("find legacy profile: %w", err) } diff --git a/backend/internal/store/legacy_claim_test.go b/backend/internal/store/legacy_claim_test.go index 2a07d9a..c267c8d 100644 --- a/backend/internal/store/legacy_claim_test.go +++ b/backend/internal/store/legacy_claim_test.go @@ -95,15 +95,3 @@ func TestClaimLegacyOwner_NoOpOnceAUserAlreadyExists(t *testing.T) { t.Fatalf("expected exactly the 1 pre-existing user to remain, got %+v", users) } } - -func TestClaimLegacyOwner_NoOpOnGenuinelyFreshInstall(t *testing.T) { - db := openTestDB(t) - ctx := context.Background() - - if err := db.ClaimLegacyOwner(ctx, "kriss-sub"); err != nil { - t.Fatalf("ClaimLegacyOwner on fresh install: %v", err) - } - if _, found, err := db.GetUserBySub(ctx, "kriss-sub"); err != nil || found { - t.Fatalf("expected no user created on a fresh install with no legacy profile, found=%v err=%v", found, err) - } -}