Repository navigation
Skip blocked pages entirely; stop explore when the start page is blocked - #289
Conversation
When Captain cannot get past a page (e.g. a sign-in form with no credentials), the page is recorded in a blocked-page map in StateManager, keyed by URL and ARIA structure (90% similarity). Explore then stops all planning styles and tests on it, skips later pages that look the same, stops after 3 blocked pages, and exits with an unblock suggestion when the start page is blocked. Captain checks the map instead of keying on the Planner's wording, so it takes over a blocked page once. Logger gains an `emphasize` option (blank line before and after) and the console no longer stacks blank lines. Regression: new `gated-no-auth` scenario (no credentials, 180s timeout, at most one Captain handover); retries removed from the whole suite. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Explorbot Self-RegressionCommit
Change compares it with the median passing time of the last 3 runs; ±20% or more is flagged. Run details
Session analysis — basic (native): Session AnalysisCore issue creation and title search work, and an empty search result shows a clear empty state. Title validation on the new issue form and the status filter were not reliably verified; both tests passed without checking what they claim. Coverage
What works
DefectsNone confirmed in this session. UX issuesNone confirmed in this session. Execution Issues
Session analysis — slow (native): Session AnalysisCreating an issue from the toolbar produces a new issue and increments the list count, but the title on the created issue does not match the title the test expected. Whether the app changed the title or the test entered the wrong one cannot be determined from the log. Coverage
Execution Issues
Session analysis — gated (native): Session AnalysisIssue creation from the Issues toolbar appears to work: the new issue's link was visible in the table and still present after a refresh. The run record is contradictory, though, so persistence is not confirmed. Coverage
Execution Issues
|
Keep both new regression scenarios: staged-login stays E, gated-no-auth becomes F. Scenarios use main's run() method with the no-retries runner. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ityScore isPageBlocked now returns a boolean. A page that only looks like a blocked one is recorded with a fixed reason instead of inheriting the original's. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Problem
With no credentials for a page behind a sign-in form, explore kept going: it planned the page in every style (normal, curious, psycho), and Captain took over each time, because the "already failed" check keyed on the Planner's wording, which changes every call. Three handovers and ~220K tokens for a page nothing could open, then "Explore more → explore /" as the advice.
Changes
markBlocked,isPageBlocked,getBlockedPages). A page is recorded with its URL and ARIA role structure; another page counts as the same blocked page at the same URL or ≥90% structural similarity. With no snapshot, only the URL matches.--authcovering the page, it suggests--auth/learn; if knowledge exists but did not help, it suggests updating it.emphasizeoption (tag('error').log(msg, { emphasize: true })) adds a blank line before and after, in the console and the TUI pane. The console no longer stacks blank lines.Regression harness
regression:gated-no-auth:explore /workspacewith no credentials. Fails if the run is still going after 180s or Captain takes over more than once.Verified locally
regression:gated-no-auth: before 3 handovers, 35s, FAIL; now 1 handover, 14s, exits with the suggestion, PASSregression:gated(with credentials): Captain signs in, plans, 1 test passed, PASSmain.This changes
src/ai/, so the regression workflow will wait at the approval gate.🤖 Generated with Claude Code