create-claude-workspace 1.1.28 → 1.1.29
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.
|
@@ -518,6 +518,7 @@ Examples:
|
|
|
518
518
|
- All files in ENGLISH
|
|
519
519
|
- TODO.md + MEMORY.md are your tracking system — keep them PRECISE and CURRENT
|
|
520
520
|
- If deviating from plan, LOG the reason in MEMORY.md
|
|
521
|
+
- **NEVER add `eslint-disable` comments** (inline, next-line, or block). Fix the actual code instead. If a lint rule cannot be satisfied, restructure the code — do not suppress the warning.
|
|
521
522
|
- Priority: working code > perfect code. Production quality, not hacks.
|
|
522
523
|
- **Token safety**: NEVER echo, log, cat, or write secrets (NPM_TOKEN, API keys, etc.) to terminal output, MEMORY.md, CLAUDE.md, or any tracked file. Tokens are read from `~/.npmrc` or environment variables automatically by tools — never handle them directly.
|
|
523
524
|
- For independent tasks within the same phase, consider running architect agents in parallel (STEP 2) — but ONLY for tasks that don't share API contracts
|
|
@@ -226,6 +226,7 @@ export function runClaude(opts, log, runOpts = {}) {
|
|
|
226
226
|
let killed = false;
|
|
227
227
|
let killReason = null;
|
|
228
228
|
let resolved = false;
|
|
229
|
+
let authErrorCount = 0;
|
|
229
230
|
function detectErrorSignals(event) {
|
|
230
231
|
if (event.type !== 'error')
|
|
231
232
|
return;
|
|
@@ -346,7 +347,17 @@ export function runClaude(opts, log, runOpts = {}) {
|
|
|
346
347
|
if (stderr.length > MAX_STDERR) {
|
|
347
348
|
stderr = stderr.slice(-MAX_STDERR);
|
|
348
349
|
}
|
|
349
|
-
|
|
350
|
+
const lower = text.toLowerCase();
|
|
351
|
+
detectTextSignals(lower);
|
|
352
|
+
// Kill on auth error burst (e.g. expired token causing infinite retry loop)
|
|
353
|
+
if (AUTH_ERROR_RE.test(lower)) {
|
|
354
|
+
authErrorCount++;
|
|
355
|
+
if (authErrorCount >= 5 && !killed) {
|
|
356
|
+
log.warn(`Auth error burst detected (${authErrorCount} errors) — killing process.`);
|
|
357
|
+
killChild('activity_timeout');
|
|
358
|
+
return;
|
|
359
|
+
}
|
|
360
|
+
}
|
|
350
361
|
process.stderr.write(text);
|
|
351
362
|
});
|
|
352
363
|
// ─── Close ───
|