Skip to content

Feature request: show progress feedback during worktree setup #54

Open

Description

@bearomorphism

Summary

When running treehouse get on a large repository, the only feedback shown is a single static message:

🌳 Setting up worktree...

There is no indication of what step is running or how long it will take. For large repos where git fetch can take a significant amount of time, this leaves the user waiting with no visibility into progress.

Proposed Solution

Add step-by-step progress output to internal/pool/pool.go during the worktree setup flow, so users can see what is happening and roughly how long to expect. For example:

🌳 Setting up worktree...
🌳 Fetching from origin...
🌳 Creating worktree...
🌳 Running post-create hooks...
🌳 Done.

Each message would be printed to stderr as the corresponding step begins.

It would be great if we can have something like a progress bar, not sure if that's feasible though.

Motivation

  • Large repositories can take a long time to fetch, and without any feedback users have no way to know if the process is still running or how long to wait.
  • Incremental step messages make the tool feel more responsive and trustworthy.
  • This is a low-effort change with high usability impact.

I'd be happy to submit a PR for this feature.

Activity

  1. changed the title [-]feat: show progress feedback during worktree setup[/-] [+]Feature request: show progress feedback during worktree setup[/+] on Jul 6, 2026
  2. kunchenguid commented on Aug 20, 2026

    @kunchenguid
    Owner

    Speaking as Kun's firstmate: in scope. Labeling ready-for-pr.

    VISION (per rule):

    • Isolation and reuse: aligns. Progress text does not change who can claim a slot.
    • Safe lifecycle operations: aligns. Diagnostics on stderr, no destructive change.
    • Ownership and interface: aligns. Users should see why setup is slow; keep the 🌳 prefix; keep machine-facing stdout clean.
    • Scope and evaluation: aligns as step messages on the existing setup path. A progress bar is optional, not required.

    Please print each step to stderr as it starts. Do not add a daemon or extra Git workflow surface.

  3. kunchenguid commented on Sep 3, 2026

    @kunchenguid
    Owner

    Speaking as Kun's firstmate: stale-restamp — still real on latest main (db06078c). No open PR covers this.

    internal/pool/pool.go acquire still prints a single 🌳 Setting up worktree... then runs vcs.Fetch with no per-step stderr. The requested fetch / create / post-create step lines are still missing. Leaving ready-for-pr.

    contract-class: restore (promised interface: callers should see what setup is doing; extra stderr step labels, not a new worktree path).

    VISION per-rule (main VISION.md; inspected acquire stderr around the fetch/create/hooks path):

    • Isolation and reuse: aligns — progress text does not change who can claim a slot.
    • Safe lifecycle operations: aligns — diagnostics on stderr, no destructive change.
    • Ownership and interface: aligns — users should see why setup is slow; keep the 🌳 prefix; keep machine-facing stdout clean.
    • Scope and evaluation: aligns as step messages on the existing setup path. No daemon or extra Git workflow surface.
  4. kunchenguid commented on Sep 17, 2026

    @kunchenguid
    Owner

    Speaking as Kun's firstmate: stale-restamp — still real on latest main (6d33753e). No open PR covers this.

    internal/pool/pool.go acquire still prints a single 🌳 Setting up worktree... then runs vcs.Fetch with no per-step stderr. The requested fetch / create / post-create step lines are still missing. Leaving ready-for-pr.

    contract-class: restore (promised interface: callers should see what setup is doing; extra stderr step labels, not a new worktree path).

    VISION per-rule (main VISION.md; inspected acquire stderr around the fetch/create/hooks path on 6d33753e):

    • Isolation and reuse: aligns — progress text does not change who can claim a slot.
    • Safe lifecycle operations: aligns — diagnostics on stderr, no destructive change.
    • Ownership and interface: aligns — users should see why setup is slow; keep the 🌳 prefix; keep machine-facing stdout clean.
    • Scope and evaluation: aligns as step messages on the existing setup path. No daemon or extra Git workflow surface.
  5. kunchenguid commented on Oct 2, 2026

    @kunchenguid
    Owner

    Speaking as Kun's firstmate: stale-restamp — still real on latest main (476002d / v3.1.1). No open PR covers this.

    internal/pool/pool.go acquire path still prints a single 🌳 Setting up worktree... then runs fetch/create/hooks with no per-step stderr. The requested fetch / create / post-create step lines are still missing. Leaving ready-for-pr.

    contract-class: restore (promised interface: callers should see what setup is doing; extra stderr step labels, not a new worktree path).

    VISION per-rule (main VISION.md; inspected acquire stderr around the fetch/create/hooks path on 476002d):

    • Isolation and reuse: aligns — progress text does not change who can claim a slot.
    • Safe lifecycle operations: aligns — diagnostics on stderr, no destructive change.
    • Ownership and interface: aligns — users should see why setup is slow; keep the 🌳 prefix; keep machine-facing stdout clean.
    • Scope and evaluation: aligns as step messages on the existing setup path. No daemon or extra Git workflow surface.
  6. kunchenguid commented on Oct 17, 2026

    @kunchenguid
    Owner

    Speaking as Kun's firstmate: stale-restamp — still real on latest main (acf59c8 / v3.1.4). No open PR covers this.

    The acquire path in internal/pool/pool.go still prints a single 🌳 Setting up worktree... and then runs fetch, create, and hooks with no per-step stderr. The requested step lines are still missing. Leaving ready-for-pr.

    contract-class: restore (promised interface: callers should see what setup is doing; extra stderr step labels, not a new worktree path).

    VISION per-rule (main VISION.md @ acf59c8):

    • Isolation and reuse: aligns — progress text does not change who can claim a slot.
    • Safe lifecycle operations: aligns — diagnostics on stderr, no destructive change.
    • Ownership and interface: aligns — users should see why setup is slow; keep the 🌳 prefix; keep machine-facing stdout clean.
    • Scope and evaluation: aligns as step messages on the existing setup path. No daemon or extra Git workflow surface.
  7. added a commit that references this issue on Oct 19, 2026
    12a09e0
  8. bearomorphism commented on Oct 19, 2026

    @bearomorphism
    Author

    PR is ready

  9. kunchenguid commented on Oct 20, 2026

    @kunchenguid
    Owner

    Speaking as Kun's firstmate: thanks @bearomorphism. #192 is the PR for this. I've approved its fork CI and will review it once checks finish. I'm tracking it there, so I'm not labeling anything new here.

  10. kunchenguid commented on Nov 3, 2026

    @kunchenguid
    Owner

    Speaking as Kun's firstmate: stale-restamp. This is still real on latest main (f168807): the acquire path in internal/pool/pool.go still prints only 🌳 Setting up worktree.... The help is open PR #192 from @bearomorphism, which is green and waiting on Kun's decision. Tracking it there.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions