Fix imported agent bundle frontmatter leakage

Co-Authored-By: Paperclip <noreply@paperclip.ing>
This commit is contained in:
dotta
2026-03-23 20:04:40 -05:00
parent eeb7e1a91a
commit e4e5b61596
2 changed files with 13 additions and 0 deletions

View File

@@ -2108,5 +2108,8 @@ describe("company portability", () => {
replaceExisting: true,
}),
);
const materializedFiles = agentInstructionsSvc.materializeManagedBundle.mock.calls[0]?.[1] as Record<string, string>;
expect(materializedFiles["AGENTS.md"]).not.toMatch(/^---\n/);
expect(materializedFiles["AGENTS.md"]).not.toContain('name: "ClaudeCoder"');
});
});

View File

@@ -3864,6 +3864,16 @@ export function companyPortabilityService(db: Db, storage?: StorageService) {
: []),
);
const markdownRaw = bundleFiles["AGENTS.md"] ?? readPortableTextFile(plan.source.files, manifestAgent.path);
const entryRelativePath = normalizePortablePath(manifestAgent.path).startsWith(bundlePrefix)
? normalizePortablePath(manifestAgent.path).slice(bundlePrefix.length)
: "AGENTS.md";
if (typeof markdownRaw === "string") {
const importedInstructionsBody = parseFrontmatterMarkdown(markdownRaw).body;
bundleFiles[entryRelativePath] = importedInstructionsBody;
if (entryRelativePath !== "AGENTS.md" && !bundleFiles["AGENTS.md"]) {
bundleFiles["AGENTS.md"] = importedInstructionsBody;
}
}
const fallbackPromptTemplate = asString((manifestAgent.adapterConfig as Record<string, unknown>).promptTemplate) || "";
if (!markdownRaw && fallbackPromptTemplate) {
bundleFiles["AGENTS.md"] = fallbackPromptTemplate;