orizu 0.5.8 → 0.5.9
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.
package/dist/hosted-bootstrap.js
CHANGED
|
@@ -280,6 +280,12 @@ export async function bootstrapHostedSandbox(opts) {
|
|
|
280
280
|
const skillSkillsDirRel = `${workspaceDir}/.claude/skills`;
|
|
281
281
|
const stage = await session.exec([
|
|
282
282
|
`mkdir -p ${skillSkillsDirRel}`,
|
|
283
|
+
// The staged skill is bootstrap-injected RUNTIME scaffolding (a symlink to
|
|
284
|
+
// the sandbox-local CLI vendor dir), NOT the agent's work. Exclude it
|
|
285
|
+
// repo-LOCALLY (.git/info/exclude — invisible to the diff, never committed)
|
|
286
|
+
// so auto-harvest's `git add -A` can't sweep it into the session branch and
|
|
287
|
+
// (ALI-1051) auto-apply a broken symlink to the customer's main.
|
|
288
|
+
`if [ -d ${workspaceDir}/.git ]; then printf '%s\\n' '/.claude/skills/' >> ${workspaceDir}/.git/info/exclude; fi`,
|
|
283
289
|
`src="${'${ORIZU_SKILL_SOURCE_DIR:-}'}"`,
|
|
284
290
|
`if [ -z "$src" ] || [ ! -d "$src" ]; then src="$(orizu skills path 2>/dev/null || true)"; fi`,
|
|
285
291
|
`if [ -z "$src" ] || [ ! -d "$src" ]; then r="$(npm root -g 2>/dev/null || true)"; if [ -n "$r" ] && [ -d "$r/orizu/vendor/skills/orizu-cli" ]; then src="$r/orizu/vendor/skills/orizu-cli"; fi; fi`,
|
package/dist/hosted-harvest.js
CHANGED
|
@@ -66,13 +66,18 @@ export function harvestWorkspace(opts) {
|
|
|
66
66
|
}
|
|
67
67
|
const exec = opts.exec ?? defaultHarvestExec(opts.workspaceDir);
|
|
68
68
|
try {
|
|
69
|
-
|
|
69
|
+
// Never harvest bootstrap-injected runtime scaffolding (ALI-1051): the
|
|
70
|
+
// .claude/skills symlink is a sandbox-local pointer, not the agent's work.
|
|
71
|
+
// Bootstrap also excludes it via .git/info/exclude; this pathspec is the
|
|
72
|
+
// belt-and-braces for any sandbox where that didn't run.
|
|
73
|
+
const excludeScaffold = [':(exclude).claude/skills/**', ':(exclude).claude/skills'];
|
|
74
|
+
const status = exec(['status', '--porcelain', '--', '.', ...excludeScaffold]);
|
|
70
75
|
if (status.exitCode !== 0) {
|
|
71
76
|
return { kind: 'work_persist_failed', error: `git status failed: ${detail(status)}` };
|
|
72
77
|
}
|
|
73
78
|
const dirty = status.stdout.trim().length > 0;
|
|
74
79
|
if (dirty) {
|
|
75
|
-
const add = exec(['add', '-A']);
|
|
80
|
+
const add = exec(['add', '-A', '--', '.', ...excludeScaffold]);
|
|
76
81
|
if (add.exitCode !== 0) {
|
|
77
82
|
return { kind: 'work_persist_failed', error: `git add failed: ${detail(add)}` };
|
|
78
83
|
}
|
package/package.json
CHANGED
package/src/hosted-bootstrap.ts
CHANGED
|
@@ -457,6 +457,12 @@ export async function bootstrapHostedSandbox(opts: HostedBootstrapOptions): Prom
|
|
|
457
457
|
const stage = await session.exec(
|
|
458
458
|
[
|
|
459
459
|
`mkdir -p ${skillSkillsDirRel}`,
|
|
460
|
+
// The staged skill is bootstrap-injected RUNTIME scaffolding (a symlink to
|
|
461
|
+
// the sandbox-local CLI vendor dir), NOT the agent's work. Exclude it
|
|
462
|
+
// repo-LOCALLY (.git/info/exclude — invisible to the diff, never committed)
|
|
463
|
+
// so auto-harvest's `git add -A` can't sweep it into the session branch and
|
|
464
|
+
// (ALI-1051) auto-apply a broken symlink to the customer's main.
|
|
465
|
+
`if [ -d ${workspaceDir}/.git ]; then printf '%s\\n' '/.claude/skills/' >> ${workspaceDir}/.git/info/exclude; fi`,
|
|
460
466
|
`src="${'${ORIZU_SKILL_SOURCE_DIR:-}'}"`,
|
|
461
467
|
`if [ -z "$src" ] || [ ! -d "$src" ]; then src="$(orizu skills path 2>/dev/null || true)"; fi`,
|
|
462
468
|
`if [ -z "$src" ] || [ ! -d "$src" ]; then r="$(npm root -g 2>/dev/null || true)"; if [ -n "$r" ] && [ -d "$r/orizu/vendor/skills/orizu-cli" ]; then src="$r/orizu/vendor/skills/orizu-cli"; fi; fi`,
|
package/src/hosted-harvest.ts
CHANGED
|
@@ -104,14 +104,19 @@ export function harvestWorkspace(opts: HarvestOptions): HarvestOutcome {
|
|
|
104
104
|
}
|
|
105
105
|
const exec = opts.exec ?? defaultHarvestExec(opts.workspaceDir)
|
|
106
106
|
try {
|
|
107
|
-
|
|
107
|
+
// Never harvest bootstrap-injected runtime scaffolding (ALI-1051): the
|
|
108
|
+
// .claude/skills symlink is a sandbox-local pointer, not the agent's work.
|
|
109
|
+
// Bootstrap also excludes it via .git/info/exclude; this pathspec is the
|
|
110
|
+
// belt-and-braces for any sandbox where that didn't run.
|
|
111
|
+
const excludeScaffold = [':(exclude).claude/skills/**', ':(exclude).claude/skills']
|
|
112
|
+
const status = exec(['status', '--porcelain', '--', '.', ...excludeScaffold])
|
|
108
113
|
if (status.exitCode !== 0) {
|
|
109
114
|
return { kind: 'work_persist_failed', error: `git status failed: ${detail(status)}` }
|
|
110
115
|
}
|
|
111
116
|
const dirty = status.stdout.trim().length > 0
|
|
112
117
|
|
|
113
118
|
if (dirty) {
|
|
114
|
-
const add = exec(['add', '-A'])
|
|
119
|
+
const add = exec(['add', '-A', '--', '.', ...excludeScaffold])
|
|
115
120
|
if (add.exitCode !== 0) {
|
|
116
121
|
return { kind: 'work_persist_failed', error: `git add failed: ${detail(add)}` }
|
|
117
122
|
}
|