| 2026-09-25 |
Recording: capture page scroll as a "scroll" step with replay support
...
- content script debounces window scroll (250ms per pause, like inputs)
into a "scroll" step; inner-container scrolls are ignored (they bubble
from the page, so only document/documentElement targets count)
- replay sends replay_scroll to the content script, scaling recorded
offsets to the current viewport
- "scroll" step type in shared API + server validation; timeline icon,
AI-prompt coords line and stepTypes i18n (en/ru/uk)
- e2e: tall test page + scroll assertion; wait for composer focus
instead of fixed delays (full-page stitch can take a while); mkdir
/tmp/ltt-shots for video download; debug log on failure
Co-Authored-By: Claude Code <noreply@anthropic.com>
Eugene Sukhodolskiy
committed
16 hours ago
|
| 2026-09-18 |
Report page: swap header buttons, fix back navigation on share links
...
- the copy-link button now comes before "Start replay" in the header
- "Back to project" no longer depends on in-app history: on a cold
share-link visit (note or recording opened by URL) it falls back to
the report's project page — the detail GET now returns
project_share_token; without a project reference it goes to the
projects list
Co-Authored-By: Claude Code <noreply@anthropic.com>
Eugene Sukhodolskiy
committed
7 days ago
|
| 2026-09-17 |

Record screen video around the cursor + console dump per recording
...
The recorder now captures continuous screen video instead of single frames
per event. captureVisibleTab is quota-limited to ~2 shots/sec, so the video
rides a CDP screencast (Page.startScreencast) over the chrome.debugger
connection: frames arrive throttled to ~15 fps, decimated past 600 to bound
memory. At submit, the GIF is cropped to a 512×512 square centered on the
cursor position from the mouse track at each frame's time, paced by real
frame gaps — a "video" of exactly the area the tester was looking at.
Firefox and a busy debugger degrade to the old per-event screenshots; the
video path is a videoCapture setting (default on, like hoverReplay).
Console errors now ride along with recordings: a MAIN-world document_start
tap wraps console.error/warn and the uncaught error/rejection handlers,
posts through the relay content script, and lands as "console" timeline
steps (capped at 200, text truncated at 2000 chars). New consoleCapture
setting; the server schema, shared types and the panel timeline (warning
icon) accept the new step type; replay counts such no-effect steps as
played so the played/total summary stays honest.
E2E generates a console error + warning mid-recording, asserts the console
steps, and validates the GIF header: 512px wide with 3+ frames.
Co-Authored-By: Claude Code <noreply@anthropic.com>
Eugene Sukhodolskiy
committed
8 days ago
|

Record the mouse path and play it back with a virtual cursor
...
- Recording: content script samples mousemove at ~25 Hz (2 px / 40 ms
thresholds), batches it to the background every second and before
submit; stored as reports.mouse_track (viewport + points, capped and
decimated server-side) via a new alembic migration
- Replay: a virtual cursor (overlay arrow) walks the recorded path,
scaled to the current viewport, dispatching synthetic mousemoves so
JS hover handlers stay live; clicks snap the cursor to the target
- Replay errors: page-load timeout aborts with a clear message, a
closed tab aborts, per-step failures (missing elements) are
collected, reported in the flash and in the replay result
- Panel: "Start replay" button on recording reports talks to the
extension through a new tiny relay content script (window messages,
no extension-id config), with presence check and toasts for
missing extension / no response / partial replay (en + ru)
Co-Authored-By: Claude Code <noreply@anthropic.com>
Eugene Sukhodolskiy
committed
8 days ago
|
Web panel: Vue 3 + gnexus-ui-kit, auth, projects, reports, i18n
...
- Monorepo packages: @ltt/shared (types+client), @ltt/ui (AnnotationEditor,
ScreenshotViewer, ElementContext, EnvironmentInfo), @ltt/web (panel)
- Kit assets served at /assets in dev and build (absolute font URL workaround)
- Pages: login/register, projects, public project+report pages (token=auth),
settings with en/ru switcher
- Annotation editor: pen/arrow/rect/text, Tokyo Night palette, undo,
fraction coordinates, vector shapes persisted via attachment PATCH
Co-Authored-By: Claude Code <noreply@anthropic.com>
Eugene Sukhodolskiy
committed
8 days ago
|