omp-conductor 0.3.6 → 0.3.7

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.
Files changed (2) hide show
  1. package/package.json +1 -1
  2. package/src/worktree.ts +19 -7
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "omp-conductor",
3
- "version": "0.3.6",
3
+ "version": "0.3.7",
4
4
  "type": "module",
5
5
  "license": "MIT",
6
6
  "description": "A 24/7 dispatcher that takes ready GitHub issues to green, mergeable PRs using omp coding sessions, with tiered escalation first to an orchestrator session and then to a human.",
package/src/worktree.ts CHANGED
@@ -102,15 +102,27 @@ const EXCLUDE_END = "# <<< omp-conductor";
102
102
 
103
103
  /**
104
104
  * Appended to every mirror's `info/exclude`, and so in force in every worktree
105
- * cut from it. Deliberately the same shapes salvage therefore skips, and
106
- * for the same reason a worker's own scaffolding is not the repo's business.
105
+ * cut from it: a worker's own scaffolding is not the repo's business, and
106
+ * keeping it out of `git status` keeps it out of the worker's own `git add -A`
107
+ * as well as out of salvage.
107
108
  *
108
- * Two layers because they catch different moments: this one keeps scratch out
109
- * of a worker's own `git add -A` and out of its `git status`, which salvage
110
- * never observes; the salvage list catches whatever a worker created before
111
- * this landed, or wrote past an ignore with `add -f`.
109
+ * **Only the directory form of `.scratch*`; the slash is the design.** An ignore
110
+ * here applies to every repo this fleet touches, and an ignored *new* file is
111
+ * invisible to salvage `git add -A` skips it, and a tree holding only such
112
+ * files reports `nothing`. So a name that could plausibly be a deliverable must
113
+ * never appear in this list. The first version also carried `.env.local` and
114
+ * `*.local.sh`; its first correction still carried an unqualified `.scratch*`.
115
+ * All three make the same mistake: repos can legitimately ship an `.env.local`
116
+ * template, `bootstrap.local.sh`, `.scratchrc`, or `.scratchpad`, and a worker
117
+ * asked to add one would watch it vanish.
118
+ *
119
+ * The directory-only pattern survives because its trailing slash limits it to a
120
+ * directory whose name announces that its contents are disposable. That was
121
+ * the 2026-08-07 incident's exact shape (`.scratch82/env.sh`). Broader
122
+ * conventions belong in a repo's own `.gitignore`, where its operator chooses
123
+ * them, rather than being imposed by whatever dispatcher happens to be driving.
112
124
  */
113
- const LOCAL_EXCLUDE = [".scratch*/", ".scratch*", ".env.local", "*.local.sh"];
125
+ const LOCAL_EXCLUDE = [".scratch*/"];
114
126
 
115
127
  /**
116
128
  * Adds the managed block to an `info/exclude`, preserving everything else.