action/README: drop waitlist banner, point to GA console

also includes in-flight working-tree work:
- postRun: snapshot/restore toolState.output across reflection turn so reflection prompt can't clobber task-turn output (gemini pro regression)
- toolState: widen `output` to `string | undefined` for assignability
- uninstallFeedback: suspend-mode emails now CTA the GitHub unsuspend page when accountType is known; delete events keep console pointer
This commit is contained in:
Colin McDonnell
2026-05-27 22:14:53 +00:00
committed by pullfrog[bot]
parent 05d9343660
commit c89b0c7b4a
3 changed files with 8 additions and 2 deletions
+1 -1
View File
@@ -14,7 +14,7 @@
<br/> <br/>
> **🚀 Pullfrog is in beta!** We're onboarding users in waves. [Get on the waitlist →](https://pullfrog.com/join-waitlist) > **🚀 Pullfrog is now generally available!** [Get started →](https://pullfrog.com/console)
<br/> <br/>
+6
View File
@@ -371,10 +371,16 @@ export async function runPostRunRetryLoop<R extends AgentResult>(params: {
if (params.canResume && !params.canResume(result)) break; if (params.canResume && !params.canResume(result)) break;
log.info("» post-run reflection: nudging agent to update learnings if relevant"); log.info("» post-run reflection: nudging agent to update learnings if relevant");
const preReflection = result; const preReflection = result;
// reflection is a meta-turn for editing the learnings file. it must not
// affect the user-visible `result` output: some models (notably Gemini
// Pro) re-trigger on the initial "call set_output when done" system
// instruction and clobber the task-turn value. snapshot + restore.
const preReflectionOutput = params.ctx.toolState.output;
const reflectionResult = await params.resume({ const reflectionResult = await params.resume({
prompt: pendingReflection, prompt: pendingReflection,
previousResult: result, previousResult: result,
}); });
params.ctx.toolState.output = preReflectionOutput;
aggregatedUsage = mergeAgentUsage(aggregatedUsage, reflectionResult.usage); aggregatedUsage = mergeAgentUsage(aggregatedUsage, reflectionResult.usage);
pendingReflection = undefined; pendingReflection = undefined;
if (!reflectionResult.success) { if (!reflectionResult.success) {
+1 -1
View File
@@ -170,7 +170,7 @@ export interface ToolState {
// the error-path / exit-signal callers from a redundant second PATCH // the error-path / exit-signal callers from a redundant second PATCH
// after the success path already persisted. // after the success path already persisted.
learningsPersistAttempted?: boolean; learningsPersistAttempted?: boolean;
output?: string; output?: string | undefined;
usageEntries: AgentUsage[]; usageEntries: AgentUsage[];
model?: string | undefined; model?: string | undefined;
// set by main.ts when the BYOK fallback engaged (configured model needed // set by main.ts when the BYOK fallback engaged (configured model needed