fix(coding-agent): handle frontmatter prompts in print mode

closes #4163
This commit is contained in:
Mario Zechner
2026-05-04 22:37:01 +02:00
parent 3c9c54d51b
commit bac2df36b9
3 changed files with 24 additions and 0 deletions

View File

@@ -2,6 +2,10 @@
## [Unreleased]
### Fixed
- Fixed `pi -p` treating prompts that start with YAML frontmatter as extension flags instead of user messages ([#4163](https://github.com/badlogic/pi-mono/issues/4163)).
## [0.73.0] - 2026-05-04
### New Features

View File

@@ -122,6 +122,11 @@ export function parseArgs(args: string[]): Args {
}
} else if (arg === "--print" || arg === "-p") {
result.print = true;
const next = args[i + 1];
if (next !== undefined && !next.startsWith("@") && (!next.startsWith("-") || next.startsWith("---"))) {
result.messages.push(next);
i++;
}
} else if (arg === "--export" && i + 1 < args.length) {
result.export = args[++i];
} else if ((arg === "--extension" || arg === "-e") && i + 1 < args.length) {

View File

@@ -43,6 +43,21 @@ describe("parseArgs", () => {
const result = parseArgs(["-p"]);
expect(result.print).toBe(true);
});
test("parses prompt after -p even when it starts with YAML frontmatter", () => {
const prompt = "---\ntitle: hello\n---\nSay hi.";
const result = parseArgs(["-p", prompt]);
expect(result.print).toBe(true);
expect(result.messages).toEqual([prompt]);
expect(result.unknownFlags.size).toBe(0);
});
test("does not consume options after -p as prompts", () => {
const result = parseArgs(["-p", "--provider", "openai", "Say hi."]);
expect(result.print).toBe(true);
expect(result.provider).toBe("openai");
expect(result.messages).toEqual(["Say hi."]);
});
});
describe("--continue flag", () => {