- Move prompt construction logic from action-side to server-side (webhook handler and trigger page)
- Include issue/comment body in USER PROMPT only if @pullfrog was tagged (checked server-side using containsTriggerPhrase)
- Add repoInstructions as separate REPO-LEVEL INSTRUCTIONS section in FULL prompt
- Macro-expand repoInstructions server-side before sending to action
- Trigger page never includes body (manual triggers)
- Remove redundant customInstructions field (now combined into prompt server-side)
files changed:
- action/external.ts: add repoInstructions to WriteablePayload, remove customInstructions
- action/utils/payload.ts: add repoInstructions to JsonPayload schema, remove customInstructions
- action/utils/repoSettings.ts: add repoInstructions to RepoSettings interface
- action/utils/instructions.ts: use payload.prompt directly, add repo section to full prompt, add repo field to ResolvedInstructions
- utils/webhooks/handleWebhook.ts: check @pullfrog tag and include body if tagged, macro-expand repoInstructions
- app/trigger/[owner]/[repo]/[number]/page.tsx: macro-expand repoInstructions (never include body)
* fix(schema): Add union with undefined to the tool permission props.
* fix(schema): Add union with undefined to the tool permission props.
* Add CI tests.
* fix: reduced nesting in tests.
* Add project-based config for vitest to run all tests by a single command.
* Cleanup
* fix: populate deny array before assigning to config, add CursorCliConfig type
* Fix deny array ordering and add CursorCliConfig type
Move deny array population before config declaration to avoid
relying on reference semantics. Add proper type interface for
the CLI config object.
---------
Co-authored-by: pullfrog[bot] <226033991+pullfrog[bot]@users.noreply.github.com>
* fix: prevent log.writeSummary from overwriting reportProgress content
The run summary was showing logs instead of the final reportProgress content
because log.writeSummary() was called after reportProgress. Now
log.writeSummary() checks if the summary was already overwritten by
reportProgress and skips if so.
Fixes#86
* refactor: replace dynamic import with static import in cli.ts
Replace unnecessary dynamic import of wasSummaryOverwritten with
static import. No circular dependency exists since comment.ts doesn't
import from cli.ts.
* Fix run summary writing
---------
Co-authored-by: pullfrog[bot] <226033991+pullfrog[bot]@users.noreply.github.com>
Co-authored-by: Colin McDonnell <colinmcd94@gmail.com>
* implement github suggestion format instructions
add instructions for agents to use github's suggestion format (```suggestion blocks) when providing code suggestions in comments. this enables one-click apply for suggested changes.
updated:
- action/mcp/review.ts: added suggestion format guidance to create_pull_request_review tool description and comment body parameter
- action/mcp/comment.ts: added suggestion format guidance to all comment tools with clarification that suggestions only work on pr line-level review comments
- action/modes.ts: added detailed example in review mode and reminder in address reviews mode
fixes#70
* Address PR review feedback
- Remove suggestion format guidance from report_progress (not applicable)
- De-duplicate description across Comment, EditComment, ReplyToReviewComment
- Drop outer fence in suggestion format example
- Clarify that suggestions only work for self-contained changes
- Remove useless example comment from review tool description
---------
Co-authored-by: pullfrog <team@pullfrog.com>
Modified reportProgress() to write the same content to core.summary
with overwrite: true. This replaces the verbose log accumulation with
the concise progress updates that stakeholders see in comments.
The job summary now stays in sync with the progress comment,
providing a clean overview of the agent's work rather than
accumulated logs throughout execution.
Fixes#17