Repository navigation
PRO-3005: (1/2) record each browser step's page, waits and picture - #18
Merged
Merged
Conversation
…jsonl A browser step's activity line now carries ms, page (url without its query, and title), waits (navigations and load states the driver timed) and, for a step that moves the page without typing, a small CDP JPEG under steps/. run.json gains revision 2 and keeps format stuntdouble.run/1, so earlier viewers still read it. Part of PRO-3005. Signed-off-by: Claude <noreply@anthropic.com>
mrprkr
marked this pull request as ready for review
November 5, 2026 23:10
An interview guide in .stuntdouble/interviews/<slug>.json (sections of questions and tasks, usability_scale umux by default) is answered in character in the person's own agent session through four new tools: start_interview, answer_item, rate_usability and finish_interview. Each session is written to interview-runs/<id>/interview.json, out of runs/, with only the ratings stored; the score comes from the cloud's own UMUX code, vendored at src/vendor/usability/. The viewer serves sessions at /api/interview-runs, and open_ui lists the latest. LocalSession now holds a checklist run or an interview, sharing the browser launch, step records, stop and interrupted marking. Part of PRO-3005. Signed-off-by: Claude <noreply@anthropic.com>
4 tasks done
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Part of PRO-3005. This is the bottom of a two-PR stack:
activity.jsonl(targetsmain)activity.jsonlnow carries:ms: how long the step took.page:{ url, title }after the step. The URL has no query or fragment, since a redirect can carry a sign-in code and the file is committed.shot: a small JPEG of the viewport understeps/0001.jpgand on. Chrome scales the capture itself (CDPclip.scale, about 480 px wide, quality 60), so each picture costs tens of kilobytes. Steps that only read the page keep no picture, and neither dotypeorform_input, so a typed value never reaches a committed image.driver.tstimes navigations (goto, back, forward,newPage) and load states, and the step records them aswaits: [{ kind: "navigation" | "load", ms }]. Fixed pauses are left out (thewaittool, the toolset's settle delay), so the longest wait is the product's.run.jsongains"revision": 2and keeps"format": "stuntdouble.run/1", so earlier viewers still read it (RunSchemais not strict, so they drop the new key). A file with norevisionis revision 1. Each field is best effort: a closed tab or a hung capture (2 s timeout) leaves the field out and never fails the step..jpgand cachessteps/likeshots/.docs/files-and-safety.md, plus a minor changeset.The Studio run page in #17 can build its journey rail from these fields. This PR does not change the viewer UI. Once the stack ships to npm, the
stuntdouble@x.y.zpin moves instunt-double/stuntdouble-mcp.Could not verify
a missing file says what exists, or how to make onetest fails in this container because it runs as root, sochmoddoes not block the read. It fails the same way onmainand passes in CI.Factory-Run: https://factory.stuntdouble.io/runs/01M6PZ03Y77PXA3Q4ME62QDAX3
Checklist
pnpm format:check,pnpm lint,pnpm type-check,pnpm testandpnpm buildpass locally (except the root-only test above, which fails onmaintoo)pnpm changeset) if whatstuntdoubledoes changesgit commit -s), per the DCO