{"id":"fresh-worktrees","repo":"omercnet/paseo-plugins","url":"https://github.com/omercnet/paseo-plugins/tree/main/fresh-worktrees","package":"@omercnet/paseo-fresh-worktrees","npm":{"package":"@omercnet/paseo-fresh-worktrees","version":"3.0.1","integrity":"sha512-tzqdkNCwzpS5t9O/zUIcoQXZRwwgixdVPEvoys2fYZFAeUJ+kFLjrsWCrLyhTpBHxBdRlHQz/ytyDzCHweDypg==","publishedAt":"2026-10-20T12:47:25.306Z","downloadsLast30Days":7408},"name":"fresh-worktrees","description":"Fast-forwards clean local base branches before Paseo creates branch-off worktrees","categories":["automation","git","productivity"],"platforms":["macos","linux","windows"],"caveats":["Requires Paseo 0.8.0-beta.1 or newer","Fetch failures stop branch-off worktree creation rather than using stale refs"],"images":["https://raw.githubusercontent.com/omercnet/paseo-plugins/main/fresh-worktrees/docs/images/fresh-worktrees-behind.png","https://raw.githubusercontent.com/omercnet/paseo-plugins/main/fresh-worktrees/docs/images/fresh-worktrees-settings.png"],"themes":[],"health":{"manifestValid":true,"hasReadme":true,"hasLicense":true,"hasTests":true,"hasTypecheckScript":true,"updatedRecently":true},"scannedAt":"2026-10-23T13:11:43.659Z","addedAt":"2026-09-10T13:23:07+03:00","npmSecurity":{"status":"passed","blockingFindings":0,"advisoryFindings":0,"scannedAt":"2026-10-20T14:48:06.627Z","version":"3.0.1","integrity":"sha512-tzqdkNCwzpS5t9O/zUIcoQXZRwwgixdVPEvoys2fYZFAeUJ+kFLjrsWCrLyhTpBHxBdRlHQz/ytyDzCHweDypg=="},"path":"fresh-worktrees","version":"3.0.1","security":{"status":"passed","blockingFindings":0,"advisoryFindings":0,"scannedAt":"2026-10-20T14:48:06.627Z","commit":"f17eeeaa3b10f8b6cd27891d8e8c7c8ea67061d6"},"npmPreview":{"package":"@omercnet/paseo-fresh-worktrees","version":"3.0.1-next.279.1","integrity":"sha512-ttAR/8p+0nDyqbPWqyrAUPoWQMCaItvRlbmwPzjxk0SCNJJtWzeYCpxaC2cgaMTwyCMu6CoUvOSJqd5FEcHkug==","publishedAt":"2026-10-20T12:50:37.164Z","distTag":"next"},"npmPreviewSecurity":{"status":"passed","blockingFindings":0,"advisoryFindings":0,"scannedAt":"2026-10-20T14:48:06.627Z","version":"3.0.1-next.279.1","integrity":"sha512-ttAR/8p+0nDyqbPWqyrAUPoWQMCaItvRlbmwPzjxk0SCNJJtWzeYCpxaC2cgaMTwyCMu6CoUvOSJqd5FEcHkug=="},"author":"Omer Cohen","license":"MIT","paseoVersionRequirement":"^0.11.0 || ^0.12.0","descriptionNodes":[{"type":"text","text":"Fast-forwards clean local base branches before Paseo creates branch-off worktrees"}],"caveatNodes":[[{"type":"text","text":"Requires Paseo 0.8.0-beta.1 or newer"}],[{"type":"text","text":"Fetch failures stop branch-off worktree creation rather than using stale refs"}]],"manifest":{"id":"fresh-worktrees","description":"Fast-forwards clean local base branches before Paseo creates branch-off worktrees.","requirements":{"paseo":"^0.11.0 || ^0.12.0"}},"repoMeta":{"stars":24,"defaultBranch":"main","pushedAt":"2026-10-23T13:10:15Z"},"owner":{"login":"omercnet","avatarUrl":"https://avatars.githubusercontent.com/u/639682?v=4"},"installNotesHtml":"<p>Paseo plugins are trusted, unsandboxed code. Review the source before installing it on the daemon\nhost.</p>\n<pre><code class=\"language-bash\">paseo plugin install npm:@omercnet/paseo-fresh-worktrees\n</code></pre>\n<p>The plugin requires Paseo <code>^0.11.0 || ^0.12.0</code>.</p>","readmeText":"# Fresh Worktrees\n\nA Paseo plugin that fast-forwards the source checkout's clean local base branch before creating a\nbranch-off workspace.\n\nThe plugin runs the refresh inside the Paseo daemon and adds a workspace-header indicator when an\nactive worktree falls behind the source checkout's remote base.\n\n## Demo\n\nhttps://github.com/user-attachments/assets/d0687b37-8292-459d-ad28-7960c193195a\n\n## Screenshots\n\nThe repository, remote, branch, and workspace are disposable local fixtures. Both PNGs come from\nan isolated Paseo test daemon at 2× pixel density. Browser DevTools rewrites local paths and host\nlabels and verifies that no private organization names remain before capture.\n\n### Behind indicator\n\n![Fresh Worktrees behind indicator](https://raw.githubusercontent.com/omercnet/paseo-plugins/main/fresh-worktrees/docs/images/fresh-worktrees-behind.png)\n\n### Installed plugin\n\n![Fresh Worktrees plugin settings](https://raw.githubusercontent.com/omercnet/paseo-plugins/main/fresh-worktrees/docs/images/fresh-worktrees-settings.png)\n\n## Behavior\n\nBefore Paseo creates a branch-off worktree, the plugin:\n\n1. Resolves the source repository from the request path or Paseo project.\n2. Fetches and prunes the relevant Git remote without interactive prompts.\n3. For an implicit or local base such as `main`, verifies that branch is checked out and the source\n   checkout is clean, then fast-forwards it to its remote-tracking branch.\n4. Leaves the workspace request unchanged, so Paseo forks from the local branch.\n5. Rechecks active worktrees every five minutes and shows `Behind · N` in the workspace header when\n   their `HEAD` is behind the source branch's remote-tracking ref. Select the indicator to recheck it.\n   Paseo 0.12 does not render plugin header buttons in the compact workspace header (phones and\n   narrow windows), so the indicator is not shown there; use the sidebar footer row below.\n\nExplicit checkout and change-request workspaces are unchanged. Explicit remote bases are fetched\nbut do not mutate a local branch. Repositories without remotes are unchanged. A dirty source\ncheckout emits a warning and skips the local branch update, allowing workspace creation to continue\nfrom the existing local base. Failed fetches and non-fast-forward updates do the same.\nConcurrent requests for the same target share one refresh, and updates are serialized per repository.\n\n### Sidebar footer\n\nA \"Behind source branch\" footer row shows how many workspaces are behind\ntheir source branch. Its popover lists them and offers **Refresh all**, which fast-forwards each\nclean source checkout to its upstream (never a dirty or diverged one, which are skipped and\nreported), then rechecks every listed workspace. Worktree branches are not touched. \"Behind\" compares the\nworkspace `HEAD` with the remote-tracking ref of the source checkout's current branch, which is not\nnecessarily the workspace's recorded base.\n\n## Install\n\nPaseo plugins are trusted, unsandboxed code. Review the source before installing it on the daemon\nhost.\n\n```bash\npaseo plugin install npm:@omercnet/paseo-fresh-worktrees\n```\n\nThe plugin requires Paseo `^0.11.0 || ^0.12.0`.\n\n## Develop\n\n```bash\nbun install\nbun run typecheck\nbun run test\n```\n"}