can1357/oh-my-pi · error · Error
Commit agent did not provide changelog entries.
Error message
Commit agent did not provide changelog entries.
What it means
When the agentic commit flow is configured to update the changelog (changelog targets exist and no fallback or no-changelog opt-out), the commit agent's final state must include a changelogProposal. If the agent finished without producing entries, completeAgentCommitState throws to prevent silently skipping the required changelog update.
Source
Thrown at packages/coding-agent/src/commit/agentic/index.ts:206
ctx: CommitExecutionContext & {
noChangelog: boolean;
changelogTargets: string[];
numstat: NumstatEntry[];
},
): Promise<boolean> {
let usedFallback = false;
if (!commitState.proposal && !commitState.splitProposal) {
if ($env.PI_COMMIT_NO_FALLBACK?.toLowerCase() !== "true") {
process.stdout.write("● Agent did not provide proposal, using fallback...\n");
commitState.proposal = generateFallbackProposal(ctx.numstat);
usedFallback = true;
}
}
let updatedChangelogFiles: string[] = [];
if (!ctx.noChangelog && ctx.changelogTargets.length > 0 && !usedFallback) {
if (!commitState.changelogProposal) {
throw new Error("Commit agent did not provide changelog entries.");
}
process.stdout.write("● Applying changelog entries...\n");
const updated = await applyChangelogProposals({
cwd: ctx.cwd,
proposals: commitState.changelogProposal.entries,
dryRun: ctx.dryRun,
onProgress: message => {
process.stdout.write(` ├─ ${message}\n`);
},
});
updatedChangelogFiles = updated.map(filePath => path.relative(ctx.cwd, filePath));
if (updated.length > 0) {
for (const filePath of updated) {
process.stdout.write(` └─ ${filePath}\n`);
}
} else {
process.stdout.write(" └─ (no changes)\n");
}View on GitHub (pinned to 9690622007)
Solutions
- Re-run the agentic commit (often a transient model omission) and inspect the agent's final message for changelog output
- Pass the no-changelog opt-out for the commit if entries genuinely are not needed, so the requirement is explicitly waived
- Verify the repo's changelog targets are correct (the requirement only triggers when targets exist) and that the agent prompt/tooling version matches the expected proposal schema
Example fix
// before (agent produced no proposal for a repo that requires changelog updates)
throw new Error("Commit agent did not provide changelog entries.")
// after (explicitly waive when no entries are warranted)
omp commit --no-changelog Defensive patterns
Strategy: try-catch
Validate before calling
if (!ctx.noChangelog && ctx.changelogTargets.length > 0 && !usedFallback && !commitState.changelogProposal) {
throw new Error('Agent finished without changelog entries; re-run or pass --no-changelog.');
} Type guard
function hasChangelogProposal(state) {
return !!state?.changelogProposal && Array.isArray(state.changelogProposal.entries);
} Try / catch
try {
await runAgenticCommit(ctx);
} catch (err) {
if (err instanceof Error && err.message.includes('changelog entries')) {
logger.warn('Commit agent omitted changelog entries; retrying or falling back to manual edit');
// retry once, or update CHANGELOG.md by hand before committing
} else throw err;
} Prevention
- Keep the repo's CHANGELOG.md [Unreleased] section well-formed so the agent has a clear target
- Re-run the commit when the agent omits entries — it is often a transient model miss
- Use the explicit no-changelog opt-out when no entries are warranted, so the invariant is never silently violated
When it happens
Trigger: The commit agent's response omitted the changelog proposal (model returned no entries or malformed final output) while the repo has CHANGELOG targets and the run did not set noChangelog or use the fallback path.
Common situations: Model under-following structured-output instructions; a repo requiring changelog updates whose CHANGELOG.md exists but the agent decided nothing changed; prompt/agent-version drift changing the proposal schema.
Related errors
- No messages to continue from
- Cannot continue from message role: assistant
- directory stack is empty
- No active model on agent
- No model configured
AI-assisted analysis of can1357/oh-my-pi@9690622007 (2026-08-31).
Data as JSON: /api/errors/b36b5e1f48bdfdf9.
Report an issue: GitHub.