installer: fetch before install
diff --git a/core/installer/app_manager.go b/core/installer/app_manager.go
index fbf69d1..53f1248 100644
--- a/core/installer/app_manager.go
+++ b/core/installer/app_manager.go
@@ -26,7 +26,6 @@
 	signer ssh.Signer
 }
 
-// func NewAppManager(repo *git.Repository, fs billy.Filesystem, config Config, appRepo AppRepository) (*AppManager, error) {
 func NewAppManager(repo *git.Repository, signer ssh.Signer) (*AppManager, error) {
 	return &AppManager{
 		repo,
@@ -71,6 +70,13 @@
 }
 
 func (m *AppManager) Install(app App, config map[string]any) error {
+	if err := m.repo.Fetch(&git.FetchOptions{
+		RemoteName: "origin",
+		Auth:       auth(m.signer),
+		Force:      true,
+	}); err != nil {
+		return err
+	}
 	wt, err := m.repo.Worktree()
 	if err != nil {
 		return err