luv-cli 0.0.10__tar.gz → 0.0.12__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -29,7 +29,9 @@
29
29
  "require-commit-before-stop",
30
30
  "require-push-before-stop",
31
31
  "require-pr-before-stop",
32
- "require-ci-green-before-stop"
32
+ "require-ci-green-before-stop",
33
+ "prefer-package-manager",
34
+ "require-no-conflicts-before-stop"
33
35
  ],
34
36
  "policyParams": {
35
37
  "block-force-push": {
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: luv-cli
3
- Version: 0.0.10
3
+ Version: 0.0.12
4
4
  Summary: Launch Claude Code agents on GitHub repos with isolated workspaces and optional Docker dev environments
5
5
  Project-URL: Homepage, https://github.com/exospherehost/luv
6
6
  Project-URL: Repository, https://github.com/exospherehost/luv
@@ -145,34 +145,6 @@ def docker_env_flags(env_vars: dict[str, str]) -> list[str]:
145
145
  return flags
146
146
 
147
147
 
148
- def ensure_failproofai_installed() -> None:
149
- """Install failproofai globally via npm — skip if already on PATH."""
150
- if shutil.which("failproofai") is not None:
151
- return
152
- if shutil.which("npm") is None:
153
- die("'npm' not found in PATH; install Node.js to use failproofai")
154
- print("luv: installing failproofai globally...")
155
- r = subprocess.run(["npm", "install", "-g", "failproofai"])
156
- if r.returncode != 0:
157
- die("'npm install -g failproofai' failed")
158
-
159
-
160
- def run_failproofai_project(clone_dir: Path) -> None:
161
- """Run failproofai project-scope initialization in the cloned repo.
162
-
163
- On failure, remove the clone_dir so the next run re-clones and retries
164
- cleanly instead of short-circuiting to a half-initialized folder.
165
- """
166
- print(f"luv: running failproofai project setup in {clone_dir.name}...")
167
- r = subprocess.run(
168
- ["npx", "-y", "failproofai", "p", "-i", "all", "--scope", "project"],
169
- cwd=str(clone_dir),
170
- )
171
- if r.returncode != 0:
172
- shutil.rmtree(clone_dir, ignore_errors=True)
173
- die("'npx -y failproofai p -i all --scope project' failed")
174
-
175
-
176
148
  def ensure_pr_rules() -> None:
177
149
  claude_dir = Path.home() / ".claude"
178
150
  claude_md = claude_dir / "CLAUDE.md"
@@ -550,8 +522,6 @@ def open_existing(org: str, repo: str, number: int, prompt: str | None, nav_mode
550
522
  if r.returncode != 0:
551
523
  die(f"git checkout {branch} failed (exit {r.returncode})")
552
524
 
553
- run_failproofai_project(clone_dir)
554
-
555
525
  print(f"luv: ready — {clone_dir.name}, branch {branch}")
556
526
  ensure_pr_rules()
557
527
  if nav_mode:
@@ -594,8 +564,6 @@ def open_pr(org: str, repo: str, number: int, prompt: str | None, nav_mode: bool
594
564
  if r.returncode != 0:
595
565
  die(f"git checkout {branch} failed (exit {r.returncode})")
596
566
 
597
- run_failproofai_project(clone_dir)
598
-
599
567
  print(f"luv: ready — {clone_dir.name}, branch {branch}")
600
568
  ensure_pr_rules()
601
569
  if nav_mode:
@@ -654,8 +622,6 @@ Docker:
654
622
  cmd_init()
655
623
  return
656
624
 
657
- ensure_failproofai_installed()
658
-
659
625
  # luv -l <PR URL>
660
626
  if args[0] == "-l":
661
627
  if len(args) < 2:
@@ -718,7 +684,7 @@ Docker:
718
684
 
719
685
  # 2. Get latest issue/PR number (shared counter on GitHub)
720
686
  r = run(["gh", "api",
721
- f"repos/{org}/{repo}/issues?state=all&per_page=1&sort=created&direction=desc"])
687
+ f"repos/{org}/{repo}/issues?state=all&filter=all&per_page=1&sort=created&direction=desc"])
722
688
  if r.returncode != 0:
723
689
  die(f"failed to fetch issues.\n{r.stderr.strip()}")
724
690
  items = json.loads(r.stdout)
@@ -745,16 +711,13 @@ Docker:
745
711
  if r.returncode != 0:
746
712
  die(f"git checkout -b failed (exit {r.returncode})")
747
713
 
748
- # 6. Run failproofai project setup in the fresh clone
749
- run_failproofai_project(clone_dir)
750
-
751
- # 7. Ensure PR rules in ~/.claude/CLAUDE.md and bypass-permissions default
714
+ # 6. Ensure PR rules in ~/.claude/CLAUDE.md and bypass-permissions default
752
715
  ensure_pr_rules()
753
716
  ensure_default_permission_mode()
754
717
 
755
718
  print(f"luv: ready — {clone_dir.name}, branch {branch}")
756
719
 
757
- # 8. Launch claude, resume session, or open shell (replace this process)
720
+ # 7. Launch claude, resume session, or open shell (replace this process)
758
721
  if nav_mode:
759
722
  navigate(clone_dir, extra_env=extra_env)
760
723
  elif resume_mode:
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "luv-cli"
7
- version = "0.0.10"
7
+ version = "0.0.12"
8
8
  description = "Launch Claude Code agents on GitHub repos with isolated workspaces and optional Docker dev environments"
9
9
  requires-python = ">=3.10"
10
10
  license = "MIT"
File without changes
File without changes
File without changes
File without changes