diff --git a/build/bin/verstak-desktop b/build/bin/verstak-desktop index b32d0e2..8eeb458 100755 Binary files a/build/bin/verstak-desktop and b/build/bin/verstak-desktop differ diff --git a/internal/core/vault/vault.go b/internal/core/vault/vault.go index e0bfd23..1589b8d 100644 --- a/internal/core/vault/vault.go +++ b/internal/core/vault/vault.go @@ -132,16 +132,26 @@ func (v *Vault) CreateVault(path string) error { } // OpenVault opens an existing vault at the given path. +// The path can be either the vault root (containing .verstak/vault.json) +// or the parent directory (containing VerstakVault/.verstak/vault.json). func (v *Vault) OpenVault(path string) error { absPath, err := filepath.Abs(path) if err != nil { return fmt.Errorf("failed to resolve path: %w", err) } + // Try direct path first: /.verstak/vault.json metaPath := filepath.Join(absPath, ".verstak", "vault.json") data, err := os.ReadFile(metaPath) if err != nil { - return fmt.Errorf("failed to read vault.json: %w", err) + // Try VerstakVault subdirectory: /VerstakVault/.verstak/vault.json + vaultDir := filepath.Join(absPath, "VerstakVault") + metaPath = filepath.Join(vaultDir, ".verstak", "vault.json") + data, err = os.ReadFile(metaPath) + if err != nil { + return fmt.Errorf("failed to read vault.json: %w (looked in %s and %s)", err, filepath.Join(absPath, ".verstak"), filepath.Join(vaultDir, ".verstak")) + } + absPath = vaultDir } var meta VaultMeta