Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
6f0f395
docs: fisherman reliability spec and implementation plan
Aug 29, 2026
4e7199c
fix(fisherman): stop replicate mode reading its own past requests as …
Aug 29, 2026
8eb758c
fix(fisherman): rank captured examples — exact path, then success, th…
Aug 29, 2026
15737b6
fix(fisherman): scope endpoint list by shared URL segment, announce d…
Aug 29, 2026
fdb9a69
fix(fisherman): namespace extracted response fields so body data cann…
Aug 29, 2026
79f8044
fix(fisherman): verify finish against the request ledger, synthesize …
Aug 29, 2026
c6487a2
fix(fisherman): stop after repeated failures on one endpoint, forbid …
Aug 29, 2026
52d26c9
test(fisherman): integration coverage for scoped prompts and ledger-g…
Aug 29, 2026
6e4b585
docs: changelog for fisherman reliability fixes
Aug 29, 2026
e738226
fix(fisherman): never scope the endpoint list by an id-shaped page se…
Aug 29, 2026
c884292
refactor(fisherman): RequestMap holds creating requests, created item…
Aug 29, 2026
316837f
Plan and spec for live-session auth
Aug 30, 2026
44ae320
Extract auth headers only from current-session captures
Aug 30, 2026
9cdb1c7
Apply live browser session headers over captured ones
Aug 30, 2026
d1b593c
Send only cookies scoped to the API origin
Aug 30, 2026
0710747
Read the live CSRF token from the page meta tag
Aug 30, 2026
d77df23
Merge remote-tracking branch 'origin/main' into fisherman-reliability
Aug 30, 2026
928aac8
Changelog for live-session auth
Aug 30, 2026
c919f66
Never treat version segments as dynamic ids
Aug 30, 2026
04307c2
Treat a no-tool-call turn as Fisherman's finish
Aug 30, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 32 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,41 @@
# Changelog

## 2026-08-30

### Changes

- [Fisherman] In replicate mode, API requests now authenticate with the current browser session:
cookies are taken from the live jar filtered to the API origin, the CSRF token is read from the
page, and auth headers are never reused from previous sessions' captured requests. Achieve mode
authenticates solely through `api.headers` config.
- [Fisherman] A turn without a tool call now ends the run as a finish instead of erroring: tool
choice is no longer forced, and when writes already succeeded the model's text becomes the
summary while created items still come from the request ledger. Models that close with prose
instead of the `finish` tool no longer trigger retries that re-create the same data.

## 2026-08-29

### Changes

- [Fisherman] No longer treats its own past API calls as captured browser traffic. Replicate mode
used to reload every request it had ever made — rejected ones included — and hand the next run a
failed request body as "the example", sending it into long guessing loops. Only real browser
requests are read back now; a project with no captured browser traffic reports data preparation
as unavailable instead of replaying its own mistakes.
- [Fisherman] Picks the best captured example for an endpoint instead of the first one found: an
exact endpoint match beats a deeper sub-path, a successful request beats a rejected one, and
newer beats older.
- [Fisherman] The endpoint list shown to the AI is scoped to the page being tested by matching the
page URL against captured request paths, so endpoints from other projects no longer appear. When
scoping isn't possible the prompt says so explicitly instead of silently listing everything.
- [Fisherman] `finish` no longer reports success on faith. Reporting success requires at least one
API write that actually succeeded in this run, and every claimed created item is checked against
the ids the API really returned — unverifiable claims are dropped, and each confirmed item shows
which request created it. A run that ends without finishing now reports how many requests were
made, how many succeeded, and the last failure, instead of an empty result.
- [Fisherman] Stops after four failures in a row against the same endpoint instead of spending the
whole iteration budget guessing request bodies.
- [Pilot] Precondition steps now record which API request created each item.
- [Provider] Groq prompt cache hits are counted again. Groq reports how much of a prompt it served
from cache, but the pinned `@ai-sdk/groq` build read that number out of the response and then
dropped it, so every Groq request was recorded as a full-price miss and the cache hit rate showed
Expand Down
953 changes: 953 additions & 0 deletions docs/superpowers/plans/2026-08-29-fisherman-reliability.md

Large diffs are not rendered by default.

Loading
Loading