refactor: move worktree directory to workspace/.worktrees/
Previously workspace/.picoclaw/worktrees/ which created redundant nesting since workspace is already under ~/.picoclaw/. The dot prefix hides the directory from normal project listings. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
bbc3dea9ed
commit
e0538ef1cc
2 changed files with 4 additions and 4 deletions
|
|
@ -26,7 +26,7 @@ Lint: `golangci-lint run`
|
||||||
## Known Gaps
|
## Known Gaps
|
||||||
|
|
||||||
- **Mini App log viewer has no frontend tests**: `renderLogs()` in `pkg/miniapp/static/index.html` is inline vanilla JS with no unit/E2E test coverage. Backend (Go) tests cover `RecentLogs`, `SanitizeFields`, and JSON serialization, but nothing verifies the JS rendering. This allowed the Fields display bug (fields sent but not rendered) to ship undetected.
|
- **Mini App log viewer has no frontend tests**: `renderLogs()` in `pkg/miniapp/static/index.html` is inline vanilla JS with no unit/E2E test coverage. Backend (Go) tests cover `RecentLogs`, `SanitizeFields`, and JSON serialization, but nothing verifies the JS rendering. This allowed the Fields display bug (fields sent but not rendered) to ship undetected.
|
||||||
- **No human intervention for heartbeat worktrees**: Heartbeat sessions create git worktrees (`.picoclaw/worktrees/heartbeat-YYYYMMDD/`) but there is no CLI or Mini App command to list, inspect, or manually dispose them. Need a `/plan worktrees` command (or similar) that shows active worktrees with branch/commit info and allows manual merge/dispose. `PruneOrphaned` on startup only removes directories without auto-committing first, so uncommitted changes in orphaned worktrees are silently lost.
|
- **No human intervention for heartbeat worktrees**: Heartbeat sessions create git worktrees (`.worktrees/heartbeat-YYYYMMDD/`) but there is no CLI or Mini App command to list, inspect, or manually dispose them. Need a `/plan worktrees` command (or similar) that shows active worktrees with branch/commit info and allows manual merge/dispose. `PruneOrphaned` on startup only removes directories without auto-committing first, so uncommitted changes in orphaned worktrees are silently lost.
|
||||||
|
|
||||||
## Memory Optimization Candidates
|
## Memory Optimization Candidates
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -131,7 +131,7 @@ func NewAgentInstance(
|
||||||
}
|
}
|
||||||
|
|
||||||
// Startup cleanup: prune orphaned worktrees
|
// Startup cleanup: prune orphaned worktrees
|
||||||
worktreesDir := filepath.Join(workspace, ".picoclaw", "worktrees")
|
worktreesDir := filepath.Join(workspace, ".worktrees")
|
||||||
if repoRoot := git.FindRepoRoot(workspace); repoRoot != "" {
|
if repoRoot := git.FindRepoRoot(workspace); repoRoot != "" {
|
||||||
git.PruneOrphaned(repoRoot, worktreesDir)
|
git.PruneOrphaned(repoRoot, worktreesDir)
|
||||||
}
|
}
|
||||||
|
|
@ -208,7 +208,7 @@ func resolvePlanFallbacks(agentCfg *config.AgentConfig, defaults *config.AgentDe
|
||||||
// ActivateWorktree creates a worktree for a session.
|
// ActivateWorktree creates a worktree for a session.
|
||||||
// projectDir is the git repository to create the worktree in.
|
// projectDir is the git repository to create the worktree in.
|
||||||
// If empty, falls back to ai.Workspace.
|
// If empty, falls back to ai.Workspace.
|
||||||
// Worktree path: <workspace>/.picoclaw/worktrees/<branch-basename>/
|
// Worktree path: <workspace>/.worktrees/<branch-basename>/
|
||||||
func (ai *AgentInstance) ActivateWorktree(sessionKey, taskName, projectDir string) (*git.WorktreeInfo, error) {
|
func (ai *AgentInstance) ActivateWorktree(sessionKey, taskName, projectDir string) (*git.WorktreeInfo, error) {
|
||||||
if projectDir == "" {
|
if projectDir == "" {
|
||||||
projectDir = ai.Workspace
|
projectDir = ai.Workspace
|
||||||
|
|
@ -220,7 +220,7 @@ func (ai *AgentInstance) ActivateWorktree(sessionKey, taskName, projectDir strin
|
||||||
|
|
||||||
branchName := git.SanitizeBranchName(taskName)
|
branchName := git.SanitizeBranchName(taskName)
|
||||||
baseName := git.BranchBaseName(branchName)
|
baseName := git.BranchBaseName(branchName)
|
||||||
wtPath := filepath.Join(ai.Workspace, ".picoclaw", "worktrees", baseName)
|
wtPath := filepath.Join(ai.Workspace, ".worktrees", baseName)
|
||||||
|
|
||||||
wt, err := git.CreateWorktree(repoRoot, wtPath, branchName)
|
wt, err := git.CreateWorktree(repoRoot, wtPath, branchName)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue