snapshot of https://github.com/marmelab/atomic-crm.git (main, 2026-09-18; blobs > 131072B omitted)
Some checks failed
✅ Check / 🔬 ESLint (push) Failing after 21s
✅ Check / 🏷️ Typecheck (push) Failing after 11s
✅ Check / 🔎 Test (push) Failing after 11s
✅ Check / e2e-test (push) Failing after 11s
✅ Check / 🔨 Build (push) Failing after 11s
🚀 Deploy / 🚀 Deploy (doc) (push) Failing after 12s
🚀 Deploy / 🚀 Deploy (demo) (push) Failing after 12s
🚀 Deploy / 🚀 Deploy (supabase) (push) Failing after 18s
Some checks failed
✅ Check / 🔬 ESLint (push) Failing after 21s
✅ Check / 🏷️ Typecheck (push) Failing after 11s
✅ Check / 🔎 Test (push) Failing after 11s
✅ Check / e2e-test (push) Failing after 11s
✅ Check / 🔨 Build (push) Failing after 11s
🚀 Deploy / 🚀 Deploy (doc) (push) Failing after 12s
🚀 Deploy / 🚀 Deploy (demo) (push) Failing after 12s
🚀 Deploy / 🚀 Deploy (supabase) (push) Failing after 18s
This commit is contained in:
35
.claude/hooks/lib/agent-meta.mjs
Normal file
35
.claude/hooks/lib/agent-meta.mjs
Normal file
@@ -0,0 +1,35 @@
|
||||
// Read the sibling <agent>.meta.json for a SubagentStop payload.
|
||||
//
|
||||
// At SubagentStop the big transcript JSONL is often not flushed yet (a real
|
||||
// race), but the <agent>.meta.json written at spawn already carries the
|
||||
// stopping agent's identity. Three hooks (record-review-verdict, validate-on-stop,
|
||||
// cleanup-worktree) need it to scope their work to the right agent/worktree, so
|
||||
// the path derivation + parse lives here once instead of being copy-pasted.
|
||||
//
|
||||
// Returns { agentType, description } (both strings, possibly empty), or null
|
||||
// when the meta is absent/unreadable — callers then fall back to transcript
|
||||
// recovery.
|
||||
|
||||
import { existsSync, readFileSync } from "node:fs";
|
||||
|
||||
/**
|
||||
* @param {Record<string, unknown>} payload Parsed SubagentStop payload.
|
||||
* @returns {{ agentType: string, description: string } | null}
|
||||
*/
|
||||
export function readAgentMeta(payload) {
|
||||
const tp = String(
|
||||
(payload && (payload.agent_transcript_path || payload.transcript_path)) ||
|
||||
"",
|
||||
);
|
||||
const metaPath = tp.replace(/\.jsonl$/, ".meta.json");
|
||||
if (!metaPath.endsWith(".meta.json") || !existsSync(metaPath)) return null;
|
||||
try {
|
||||
const meta = JSON.parse(readFileSync(metaPath, "utf8"));
|
||||
return {
|
||||
agentType: String(meta.agentType || ""),
|
||||
description: String(meta.description || ""),
|
||||
};
|
||||
} catch {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user