@open-agent-toolkit/cli 0.0.38 → 0.0.39

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.
@@ -1,6 +1,6 @@
1
1
  {
2
- "cli": "0.0.38",
3
- "docs-config": "0.0.38",
4
- "docs-theme": "0.0.38",
5
- "docs-transforms": "0.0.38"
2
+ "cli": "0.0.39",
3
+ "docs-config": "0.0.39",
4
+ "docs-theme": "0.0.39",
5
+ "docs-transforms": "0.0.39"
6
6
  }
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: oat-project-complete
3
- version: 1.4.1
3
+ version: 1.4.2
4
4
  description: Use when all implementation work is finished and the project is ready to close. Marks the OAT project lifecycle as complete.
5
5
  disable-model-invocation: true
6
6
  user-invocable: true
@@ -312,13 +312,21 @@ The archive-side effects in this step are CLI-owned. Follow the canonical behavi
312
312
 
313
313
  ```bash
314
314
  ARCHIVED_ROOT=".oat/projects/archived"
315
+ ARCHIVE_RELATIVE_PATH=".oat/projects/archived/${PROJECT_NAME}"
315
316
  PRIMARY_REPO_ARCHIVE=""
316
- LOCAL_ARCHIVED_ROOT=".oat/projects/archived"
317
+ ARCHIVE_PATH_IS_GITIGNORED="false"
317
318
  USE_PRIMARY_REPO_ARCHIVE="false"
318
319
 
319
- # Heuristic: if this checkout is a worktree and the primary repo archive parent
320
- # exists, use that durable archive path as the canonical archive destination.
321
- if git rev-parse --is-inside-work-tree >/dev/null 2>&1; then
320
+ # First decide whether the archive destination is local-only in this checkout.
321
+ # If the archive path is tracked here, keep the archive on the current worktree
322
+ # and branch so the completion commit and PR carry the archived project.
323
+ if git check-ignore --quiet --no-index "$ARCHIVE_RELATIVE_PATH" 2>/dev/null; then
324
+ ARCHIVE_PATH_IS_GITIGNORED="true"
325
+ fi
326
+
327
+ # Only fall back to the primary checkout when the archive destination is
328
+ # gitignored/local-only in the current worktree.
329
+ if [[ "$ARCHIVE_PATH_IS_GITIGNORED" == "true" ]] && git rev-parse --is-inside-work-tree >/dev/null 2>&1; then
322
330
  GIT_COMMON_DIR=$(git rev-parse --git-common-dir 2>/dev/null || true)
323
331
  GIT_DIR=$(git rev-parse --git-dir 2>/dev/null || true)
324
332
  if [[ -n "$GIT_COMMON_DIR" && -n "$GIT_DIR" && "$GIT_COMMON_DIR" != "$GIT_DIR" ]]; then
@@ -328,7 +336,7 @@ if git rev-parse --is-inside-work-tree >/dev/null 2>&1; then
328
336
  USE_PRIMARY_REPO_ARCHIVE="true"
329
337
  ARCHIVED_ROOT="$PRIMARY_REPO_ARCHIVE"
330
338
  else
331
- echo "Warning: Running in a worktree, but the primary repo archive path is unavailable: $PRIMARY_REPO_ARCHIVE"
339
+ echo "Warning: Running in a worktree with a local-only archive path, but the primary repo archive path is unavailable: $PRIMARY_REPO_ARCHIVE"
332
340
  echo "A worktree-local archive may be deleted when the worktree is removed and is not a durable archive."
333
341
  echo "Require explicit confirmation before proceeding with local-only archive."
334
342
  fi
@@ -336,7 +344,7 @@ if git rev-parse --is-inside-work-tree >/dev/null 2>&1; then
336
344
  fi
337
345
 
338
346
  if [[ "$USE_PRIMARY_REPO_ARCHIVE" != "true" ]]; then
339
- ARCHIVED_ROOT="$LOCAL_ARCHIVED_ROOT"
347
+ ARCHIVED_ROOT=".oat/projects/archived"
340
348
  fi
341
349
 
342
350
  mkdir -p "$ARCHIVED_ROOT"
@@ -365,6 +373,7 @@ echo "Project archived to $ARCHIVE_PATH"
365
373
  - Ask the user explicitly: "Primary repo archive path is unavailable, so this archive may be lost when the worktree is deleted. Continue with local-only archive anyway?"
366
374
  - If the user declines, skip archiving and continue the completion flow without archive.
367
375
  - Resolve the durable repo root from `git rev-parse --git-common-dir` and `git rev-parse --git-dir`, matching the CLI helper in `packages/cli/src/commands/project/archive/archive-utils.ts`. Do not rely on a `main` checkout or default-branch naming.
376
+ - Apply this guard only when `git check-ignore --quiet --no-index "$ARCHIVE_RELATIVE_PATH"` reports that the archive destination is local-only in the current checkout.
368
377
 
369
378
  **Git handling after archive:**
370
379
 
@@ -378,7 +387,7 @@ This stages the deletions from the shared directory. The archived copy is preser
378
387
 
379
388
  **Worktree archive target (required when available):**
380
389
 
381
- If running from a git worktree, the primary repo archive directory is the canonical/durable archive destination.
390
+ If running from a git worktree, prefer the primary repo archive directory only when the archive destination is local-only/gitignored in the current checkout.
382
391
 
383
392
  Reference path:
384
393
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@open-agent-toolkit/cli",
3
- "version": "0.0.38",
3
+ "version": "0.0.39",
4
4
  "private": false,
5
5
  "description": "Open Agent Toolkit CLI",
6
6
  "homepage": "https://github.com/voxmedia/open-agent-toolkit/tree/main/packages/cli",
@@ -33,7 +33,7 @@
33
33
  "ora": "^9.0.0",
34
34
  "yaml": "2.8.2",
35
35
  "zod": "^3.25.76",
36
- "@open-agent-toolkit/control-plane": "0.0.38"
36
+ "@open-agent-toolkit/control-plane": "0.0.39"
37
37
  },
38
38
  "devDependencies": {
39
39
  "@types/node": "^22.10.0",