From 7cc4fb6848292b852e7206cbaaa2fcec10856c7e Mon Sep 17 00:00:00 2001 From: datzle123 Date: Sun, 26 Jul 2026 14:52:55 +0700 Subject: [PATCH 1/2] feat(scan): balance action coverage within budgets --- CHANGELOG.md | 9 ++ README.md | 2 + docs/ADVANCED.md | 2 + docs/COMPATIBILITY.md | 4 + docs/PERFORMANCE.md | 2 + docs/PRODUCT_SPECIFICATION.md | 3 + docs/PRODUCT_STATUS.md | 6 +- docs/ROADMAP.md | 14 ++++ docs/VERIFICATION_MATRIX.md | 1 + src/core/selection.ts | 149 ++++++++++++++++++++++++++++++++++ src/report/html.ts | 21 ++++- src/scan.ts | 34 ++++---- src/types.ts | 16 ++++ test/selection.test.ts | 75 +++++++++++++++++ test/smoke.mjs | 20 +++++ 15 files changed, 335 insertions(+), 23 deletions(-) create mode 100644 src/core/selection.ts create mode 100644 test/selection.test.ts diff --git a/CHANGELOG.md b/CHANGELOG.md index c7c4fc6..1857f4a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,15 @@ All notable changes are documented here. RealDone follows semantic versioning wh ## [Unreleased] +### Added + +- Coverage-balanced quick-scan scheduling that represents more routes, action kinds, intents, and keyboard/submit activation paths within the same finite action budget, while placing known policy/environment denials after runnable actions. +- Additive action-selection telemetry in JSON and HTML reports, including eligible/selected/omitted counts, route coverage, semantic coverage, denial counts, the deterministic strategy version, and an explicit partial-scan explanation. + +### Fixed + +- Report timelines and environment summaries now render arrows and separators as UTF-8 instead of mojibake. + ## [1.3.3] - 2026-07-26 ### Added diff --git a/README.md b/README.md index 6663833..348c159 100644 --- a/README.md +++ b/README.md @@ -61,6 +61,8 @@ npx realdone scan Best for a quick first check. Default mode uses one Chromium worker, safe actions only, no AI, no account, and no database credential. +Its finite budget is coverage-balanced rather than “the first controls in DOM order”: RealDone represents different routes, action kinds, intents, and Enter/submit paths, then reports exactly what was selected or omitted. Use `--full` when you need broader safe coverage. + ### 2. Record and verify an important flow ```bash diff --git a/docs/ADVANCED.md b/docs/ADVANCED.md index ae96a82..c887593 100644 --- a/docs/ADVANCED.md +++ b/docs/ADVANCED.md @@ -20,6 +20,8 @@ Quick scan uses 8 pages, 24 actions, and a two-minute budget. Full safe audit ra realdone scan --full ``` +The 24-action quick budget is not “the first 24 controls.” RealDone deterministically balances the selection across discovered routes, action kinds, intents, and activation paths such as Enter-submit. Runnable actions are selected before actions already known to be denied by policy or environment checks; destructive and session-ending controls still remain last. The JSON and HTML reports show eligible, selected, omitted, and represented-route counts so partial coverage is explicit. + Explicit `--max-pages`, `--max-actions`, `--max-duration`, or policy budgets override the corresponding preset. If any budget is exhausted, the report is marked `truncated`; RealDone never presents a partial scan as complete. ## Project discovery, managed runtime, and environment validity diff --git a/docs/COMPATIBILITY.md b/docs/COMPATIBILITY.md index 282ce50..68a2e49 100644 --- a/docs/COMPATIBILITY.md +++ b/docs/COMPATIBILITY.md @@ -20,3 +20,7 @@ Chromium accepts a custom executable through `--browser-path`. Firefox and WebKi The requested Playwright browser is downloaded automatically on first use when it is missing. Set `REALDONE_SKIP_BROWSER_INSTALL=1` to disable bootstrap and install browsers manually. Codex and Claude Code integrations are command presets, not embedded SDKs. RealDone verifies the current documented non-interactive argument contracts; installed agent authentication and provider availability remain the user's responsibility. + +## Unreleased report compatibility + +Coverage-balanced action selection adds an optional `completeness.selection` object to `scan.json`. Existing `schemaVersion: "1.0"` fields and meanings are unchanged, old reports remain readable, and validators use passthrough/additive compatibility. Consumers may ignore the new telemetry or use it to distinguish discovered, selected, omitted, and route-represented action coverage. diff --git a/docs/PERFORMANCE.md b/docs/PERFORMANCE.md index bcc32dc..83f8c08 100644 --- a/docs/PERFORMANCE.md +++ b/docs/PERFORMANCE.md @@ -8,6 +8,8 @@ Quick scan remains intentionally light: one Chromium worker, no provider/databas `scan --full` raises the default safe budgets to 100 pages, 500 actions, and 30 minutes, enables deep persistence and trace-on-failure, but never enables destructive or external effects. Explicit budget flags or policy values still win, and exhausted budgets set `truncated`. +Finite scan budgets use the versioned `coverage-balanced-v1` selector. It spreads selected actions across routes and semantic action/activation classes instead of allowing one control-heavy page to consume the budget, prioritizes runnable actions over known denials, and preserves destructive/logout ordering. `scan.json` records additive selection telemetry and the HTML report explains any omitted actions; increase `--max-actions` or use `--full` when the represented coverage is insufficient for the release decision. + Baseline, regression, browser-matrix, and post-agent contract verification accept `--workers 1..16`. Results preserve deterministic input order; quick scan remains one worker because concurrent mutations against the same application can create misleading evidence. Content-addressed snapshot indexes use SHA-256 blobs so repeated states share one portable artifact while legacy per-finding snapshot JSON remains available. Recorded verification can enforce an explicit budget: diff --git a/docs/PRODUCT_SPECIFICATION.md b/docs/PRODUCT_SPECIFICATION.md index 19c3b4c..051f91a 100644 --- a/docs/PRODUCT_SPECIFICATION.md +++ b/docs/PRODUCT_SPECIFICATION.md @@ -1392,6 +1392,7 @@ Full audit mới bật: RealDone phải hỗ trợ: * scan budget; +* coverage-balanced action selection: khi budget không đủ cho mọi action, không được chỉ lấy các phần tử đầu tiên theo DOM/discovery order; phải ưu tiên action chạy được và tối đa hóa độ phủ route, kind, intent và activation path một cách deterministic; * incremental scan; * affected-flow selection; * snapshot deduplication; @@ -1399,6 +1400,8 @@ RealDone phải hỗ trợ: * parallel worker giới hạn; * timeout rõ ràng. +Report phải ghi rõ số action đủ điều kiện, đã chọn, bị bỏ do budget, số route được đại diện và strategy version. Action đã biết chắc sẽ bị policy/environment chặn không được chiếm chỗ trước action có thể chạy trong cùng safety tier. + --- # 31. UX Quality diff --git a/docs/PRODUCT_STATUS.md b/docs/PRODUCT_STATUS.md index 195c2d2..69de7f0 100644 --- a/docs/PRODUCT_STATUS.md +++ b/docs/PRODUCT_STATUS.md @@ -9,16 +9,18 @@ This file reports current evidence against the normative [`PRODUCT_SPECIFICATION Release `v1.3.3` additionally ran ten pinned MIT projects and detected 10/10 injected no-op Create buttons as `NO_EFFECT / RD002`; commit, license, clean-control, run, and report hashes are in [`release/evidence/case-studies-10`](../release/evidence/case-studies-10/README.md). The five normative external cases were rerun and validator-bound to fingerprint `68d4a8cb…`, including PostgreSQL CRUD cleanup, Supabase Data API, Level 7 roles, and a real Codex MCP RD901 regression/repair cycle. Hosted run [`30189340006`](https://github.com/datzle123/RealDone/actions/runs/30189340006) passed all 15 gates across Windows/macOS/Linux and GitHub signed the aggregate for the released source commit. +The unreleased Phase I hardening adds coverage-balanced quick-scan scheduling and additive selection telemetry. Its candidate engine fingerprint is `f3f65840…`; local type/unit/build passed 140 tests with 2 expected service-dependent skips, while audit, full Chromium smoke, pack, and installed-tarball package smoke also passed. This hardening is not part of `v1.3.3`: the checked-in real-project evidence remains correctly bound to released fingerprint `68d4a8cb…`, so Phase I must not be described as released until those cases are rerun for the candidate and hosted CI is green. + | Specification area | Status | Evidence currently in the repository | Remaining normative gap | | --- | --- | --- | --- | -| §4 Quick scan | IMPLEMENTED | `scan`, browser execution, report, reload checks, fixture smoke | Broader action and environment coverage is tracked below | +| §4 Quick scan | IMPLEMENTED | `scan`, browser execution, report, reload checks, fixture smoke, and deterministic coverage-balanced selection with explicit eligible/selected/omitted/route telemetry | Broader action and environment coverage is tracked below | | §4 Deep scan | IMPLEMENTED | hard reload, new tab, clean context, versioned logout/login rehydration, managed app restart, API read-back, roles, trace/video, source snapshots, and explicit causal read-only provider confirmation; hosted run `29940370416` passed Windows/macOS/Linux | Application-specific adapters may extend the implemented orchestration without changing its evidence contract | | §4 Record and verify | IMPLEMENTED | bounded semantic recording and deterministic verification for navigation, click/fill/select/check/keypress/upload/rich-text/drag, popup/download outcomes, masked rrweb, env-only secrets/files and non-ordinal locator fallbacks | Widget-specific adapters may extend recording without changing the implemented contract | | §4 Baseline/regression | IMPLEMENTED | baseline, affected-flow selection, first-class `EXPECTED_CHANGE`/`REGRESSION` outcomes, RD901–RD905 classification, CI diff and Playwright export | Additional domain-specific diff adapters may extend the implemented contract | | §4 Coding-agent verification | IMPLEMENTED | shared-core MCP tools retain workspace/action confinement, sealed contracts/baselines, final post-build attribution and fail-closed affected selection; authenticated Codex Desktop `0.143.0` produced a green baseline, selected 1 real RD901 regression, repaired the app without changing the contract, then selected 1 flow with 0 regressions; SHA-256-bound cycle artifacts are parsed by the release validator | New agent clients must preserve the implemented evidence boundary; agent prose is never verification evidence | | §6 Project Discovery/Runtime Manager | IMPLEMENTED | `init` profiles single-package/monorepo projects; npm fallback without lock metadata; project-local Python virtual environments; zero-config static HTML plus conventional Node, Django/FastAPI/Flask, Laravel/PHP, Rails, ASP.NET Core, Spring Boot, Deno, Go and Rust managed runtimes; occupied-port rejection, development/production/Docker health-checks, logs, bounded restarts and process cleanup; installed-tarball scans start, verify and stop metadata-free static and npm projects in hosted run `29977292441` | Custom runtimes use an explicit HTTP URL; new ecosystem hints must add cross-platform broken/control and package evidence | | §7 Environment Health Gate | IMPLEMENTED | main/route document, critical asset/content-type, bootstrap/render, health-endpoint and auth-state checks; separate `environment.json`; broken/control fixtures and TodoMVC defect copy | Additional ecosystem-specific diagnostics may be added without changing the implemented fail-closed contract | -| §8–11 Discovery, classification, data, executor | IMPLEMENTED | forms/links/buttons/native controls, Enter, hover/context, lazy-scroll, popup/download, opt-in same-origin iframe, complex-action recording boundaries, constraint-aware canaries, network-idle/stale/retry safety | Framework-specific discovery adapters may broaden coverage without changing the implemented safe-execution contract | +| §8–11 Discovery, classification, data, executor | IMPLEMENTED | forms/links/buttons/native controls, Enter, hover/context, lazy-scroll, popup/download, opt-in same-origin iframe, complex-action recording boundaries, constraint-aware canaries, network-idle/stale/retry safety, and budget selection that avoids route/semantic starvation and known-denial budget waste | Framework-specific discovery adapters may broaden coverage without changing the implemented safe-execution contract | | §12–13 Evidence and snapshots | IMPLEMENTED | URL, redacted semantic DOM/control hashes, cookie hashes, local/session storage, bounded IndexedDB metadata, request/response, WebSocket frames, console/page error, upload/download digests, screenshots, trace/video/timeline, value-free source diffs, and redacted automatic provider evidence/artifacts; reproductions retain value-free provider requirements and replay requires fresh exact causal confirmation | New evidence adapters must preserve the implemented redaction, linkage and replay contract | | §14 Persistence | IMPLEMENTED | immediate/reload/hard-reload/new-tab/clean-context/logout-login/app-restart/API read-back strategies; all seven scopes are executable through browser smoke, contract Level 6/7 checks and deterministic scope tests | Additional application-specific adapters may extend confirmation without changing the implemented scope contract | | §15–17 Verdicts and evidence hierarchy | IMPLEMENTED | scan verdicts, regression `EXPECTED_CHANGE`/`REGRESSION` outcomes, separate `ENVIRONMENT_INVALID`/`BLOCKED`, priority resolution and Levels 0–7 across scan/contract/baseline/report evidence | New adapters must preserve this implemented hierarchy | diff --git a/docs/ROADMAP.md b/docs/ROADMAP.md index f9decfa..bb7c318 100644 --- a/docs/ROADMAP.md +++ b/docs/ROADMAP.md @@ -137,3 +137,17 @@ Gate: - Custom runtimes fail with an actionable URL/Docker path; the public claim remains that every HTTP web app can use the verifier, not that every private build command can be guessed. Phase H is complete. The final local batch passed 129/129 executed tests, audit, browser smoke, packing, and installed-tarball scans of both a metadata-free static project and an npm project without lockfile/package-manager metadata; both managed runtimes were confirmed stopped. Hosted run [`29977292441`](https://github.com/datzle123/RealDone/actions/runs/29977292441) then passed Linux, Windows and macOS on Node 20/22, the package scan/cleanup gate, and all 15 normative release gates. `gh attestation verify` confirmed GitHub-signed provenance for source commit `ab902acdfb95463c82a7c842f5b497a68d8c325a`. + +## Phase I — coverage-balanced quick-scan scheduling (release candidate) + +Contributes evidence to: §4.1, §8–11, §29–31. + +Gate: + +- A finite action budget cannot be consumed solely by discovery/DOM order on one control-heavy route. +- Selection deterministically maximizes route, action-kind, intent and activation-path coverage while preserving destructive/session-ending ordering. +- Actions already denied by policy or environment checks do not starve runnable actions. +- JSON/HTML reports expose eligible, selected, omitted, represented-route, semantic coverage, denial counts and strategy version without breaking schema `1.0` consumers. +- Broken/control unit coverage and a real-browser three-route budget fixture pass with typecheck, audit, browser smoke and package gates. + +Phase I implementation and applicable local gates are complete for candidate fingerprint `f3f65840…`: typecheck/unit/build passed 140 tests with 2 expected service-dependent skips, dependency audit reported no known vulnerabilities, full Chromium smoke passed the real three-route budget control, and pack plus installed-tarball package smoke passed. The phase remains a release candidate; released real-project evidence is still bound to `68d4a8cb…` and must be rerun before hosted release aggregation can qualify this fingerprint. diff --git a/docs/VERIFICATION_MATRIX.md b/docs/VERIFICATION_MATRIX.md index 9b6a135..743e5f7 100644 --- a/docs/VERIFICATION_MATRIX.md +++ b/docs/VERIFICATION_MATRIX.md @@ -7,6 +7,7 @@ This is the executable matrix for the shipped product, not a product-status ledg | Capability | Runtime evidence | Automated gate | | --- | --- | --- | | Safe browser scan | Discovers routes/actions, fills fields, executes permitted actions | fixture browser smoke | +| Budget-balanced action coverage | A finite quick-scan budget represents multiple routes, kinds, intents and activation paths; runnable actions precede known denials and reports expose exact omissions | deterministic selector broken/control tests plus a three-route, three-action real-browser budget smoke | | Project discovery and managed runtime | Detects package/runtime hints, starts, health-checks, restarts, logs and stops a target process | project/runtime unit tests plus managed-app CLI smoke | | Environment validity | HTML, critical assets/content types, bootstrap/render, health endpoint and auth state produce separate `VALID`/`ENVIRONMENT_INVALID`/`BLOCKED` evidence | broken/static-root, delayed-bootstrap and healthy browser controls plus TodoMVC defect copy | | External-app behavior | Enter-submit, history-dependent targets, live control state, hash routes and auth contracts run without project-specific selectors; published counters must match committed raw scan artifacts | fixtures plus pinned TodoMVC, Actual Budget and Conduit workflows with SHA-256/source validation | diff --git a/src/core/selection.ts b/src/core/selection.ts new file mode 100644 index 0000000..536ee4c --- /dev/null +++ b/src/core/selection.ts @@ -0,0 +1,149 @@ +import type { + ActionIntent, + ActionKind, + ActionSelectionTelemetry, + ActionSpec, +} from "../types.js"; + +interface IndexedAction { + action: ActionSpec; + index: number; +} + +export interface ActionSelectionResult { + selected: ActionSpec[]; + telemetry: ActionSelectionTelemetry; +} + +const kindOrder: ActionKind[] = ["mutation", "external", "local", "navigation"]; +const intentOrder: ActionIntent[] = [ + "create", + "update", + "submit", + "interact", + "navigate", + "external", + "unknown", + "delete", +]; +const activationOrder: Array> = [ + "enter", + "submit", + "check", + "select", + "click", + "contextmenu", + "hover", + "record", +]; + +function orderedUnique(values: Iterable, order: readonly T[]): T[] { + const present = new Set(values); + return order.filter((value) => present.has(value)); +} + +function compareNumber(left: number, right: number): number { + return left < right ? -1 : left > right ? 1 : 0; +} + +export function actionExecutionPriority(action: ActionSpec): number { + if (/\b(log[ -]?out|sign[ -]?out|end session|revoke session)\b/i.test(action.label)) return 2; + if (action.intent === "delete" || action.risk === "destructive") return 1; + return 0; +} + +function candidateOrder( + left: IndexedAction, + right: IndexedAction, + deniedActionIds: ReadonlySet, + selectedPages: ReadonlySet, + selectedKinds: ReadonlySet, + selectedIntents: ReadonlySet, + selectedActivations: ReadonlySet, +): number { + const comparisons = [ + compareNumber(Number(deniedActionIds.has(left.action.id)), Number(deniedActionIds.has(right.action.id))), + compareNumber(actionExecutionPriority(left.action), actionExecutionPriority(right.action)), + compareNumber(Number(selectedPages.has(left.action.pageUrl)), Number(selectedPages.has(right.action.pageUrl))), + compareNumber(Number(selectedKinds.has(left.action.kind)), Number(selectedKinds.has(right.action.kind))), + compareNumber(kindOrder.indexOf(left.action.kind), kindOrder.indexOf(right.action.kind)), + compareNumber(Number(selectedIntents.has(left.action.intent)), Number(selectedIntents.has(right.action.intent))), + compareNumber(intentOrder.indexOf(left.action.intent), intentOrder.indexOf(right.action.intent)), + compareNumber(Number(selectedActivations.has(left.action.activation)), Number(selectedActivations.has(right.action.activation))), + compareNumber( + left.action.activation ? activationOrder.indexOf(left.action.activation) : activationOrder.length, + right.action.activation ? activationOrder.indexOf(right.action.activation) : activationOrder.length, + ), + compareNumber(left.index, right.index), + ]; + return comparisons.find((value) => value !== 0) ?? 0; +} + +/** + * Selects a bounded action set without letting discovery order on one route + * starve the rest of the application. Known policy/environment denials remain + * reportable, but only consume budget after runnable actions. + */ +export function selectActionsForExecution( + actions: ActionSpec[], + maxActions: number, + deniedActionIds: ReadonlySet = new Set(), +): ActionSelectionResult { + const remaining = actions.map((action, index): IndexedAction => ({ action, index })); + const selected: ActionSpec[] = []; + const selectedPages = new Set(); + const selectedKinds = new Set(); + const selectedIntents = new Set(); + const selectedActivations = new Set(); + const limit = Math.max(0, Math.min(Math.floor(maxActions), actions.length)); + + const take = (next: IndexedAction): void => { + selected.push(next.action); + selectedPages.add(next.action.pageUrl); + selectedKinds.add(next.action.kind); + selectedIntents.add(next.action.intent); + selectedActivations.add(next.action.activation); + }; + + if (limit === actions.length) { + remaining.sort((left, right) => + compareNumber(Number(deniedActionIds.has(left.action.id)), Number(deniedActionIds.has(right.action.id))) + || compareNumber(actionExecutionPriority(left.action), actionExecutionPriority(right.action)) + || compareNumber(left.index, right.index)); + for (const next of remaining) take(next); + } else { + while (selected.length < limit && remaining.length > 0) { + remaining.sort((left, right) => candidateOrder( + left, + right, + deniedActionIds, + selectedPages, + selectedKinds, + selectedIntents, + selectedActivations, + )); + const next = remaining.shift(); + if (!next) break; + take(next); + } + } + + const eligiblePages = new Set(actions.map((action) => action.pageUrl)); + return { + selected, + telemetry: { + strategy: "coverage-balanced-v1", + eligibleActions: actions.length, + selectedActions: selected.length, + omittedActions: actions.length - selected.length, + eligiblePages: eligiblePages.size, + selectedPages: selectedPages.size, + eligibleKinds: orderedUnique(actions.map((action) => action.kind), kindOrder), + selectedKinds: orderedUnique(selected.map((action) => action.kind), kindOrder), + eligibleIntents: orderedUnique(actions.map((action) => action.intent), intentOrder), + selectedIntents: orderedUnique(selected.map((action) => action.intent), intentOrder), + deniedEligibleActions: actions.filter((action) => deniedActionIds.has(action.id)).length, + deniedSelectedActions: selected.filter((action) => deniedActionIds.has(action.id)).length, + }, + }; +} diff --git a/src/report/html.ts b/src/report/html.ts index 7137873..750597d 100644 --- a/src/report/html.ts +++ b/src/report/html.ts @@ -55,7 +55,7 @@ function findingTimeline(finding: Finding): string { if (evidence.afterNewTab) items.push({ at: evidence.afterNewTab.at, text: `Opened a new tab; canary present: ${evidence.afterNewTab.canaryPresent}` }); if (evidence.afterNewContext) items.push({ at: evidence.afterNewContext.at, text: `Fresh browser context; canary present: ${evidence.afterNewContext.canaryPresent}` }); if (evidence.afterAppRestart) items.push({ at: evidence.afterAppRestart.at, text: `Restarted the managed application; canary present: ${evidence.afterAppRestart.canaryPresent}` }); - if (evidence.apiReadBack) items.push({ at: evidence.after?.at ?? evidence.durationMs, text: `API read-back ${evidence.apiReadBack.url} → ${evidence.apiReadBack.status ?? "error"}; canary present: ${evidence.apiReadBack.canaryPresent}` }); + if (evidence.apiReadBack) items.push({ at: evidence.after?.at ?? evidence.durationMs, text: `API read-back ${evidence.apiReadBack.url} → ${evidence.apiReadBack.status ?? "error"}; canary present: ${evidence.apiReadBack.canaryPresent}` }); if (evidence.executionError) items.push({ at: evidence.durationMs, text: `Execution error: ${evidence.executionError}` }); for (const interaction of evidence.preparedInteractions ?? []) items.push({ at: 0, text: `Prepared interaction: ${interaction}` }); return items @@ -117,7 +117,19 @@ export function renderHtml(report: ScanReport): string { ) .join(""); const environment = report.environment - ? `

Environment health

${escapeHtml(report.environment.status)}${report.environment.render.interactiveElements} interactive elements · ${report.environment.assets.checked} critical assets checked · ${report.environment.durationMs}ms${report.environment.findings.length > 0 ? `
    ${report.environment.findings.map((finding) => `
  • ${escapeHtml(finding.code)}${escapeHtml(finding.title)}
    ${escapeHtml(finding.detail)}${finding.url ? `
    ${escapeHtml(finding.url)}` : ""}
  • `).join("")}
` : ""}
` + ? `

Environment health

${escapeHtml(report.environment.status)}${report.environment.render.interactiveElements} interactive elements · ${report.environment.assets.checked} critical assets checked · ${report.environment.durationMs}ms${report.environment.findings.length > 0 ? `
    ${report.environment.findings.map((finding) => `
  • ${escapeHtml(finding.code)}${escapeHtml(finding.title)}
    ${escapeHtml(finding.detail)}${finding.url ? `
    ${escapeHtml(finding.url)}` : ""}
  • `).join("")}
` : ""}
` + : ""; + const selection = report.completeness?.selection; + const coverage = selection + ? `

Action coverage

+ ${selection.selectedActions} of ${selection.eligibleActions} eligible actions selected + ${selection.selectedPages}/${selection.eligiblePages} routes represented · ${selection.omittedActions} omitted by the action budget + Selected kinds: ${escapeHtml(selection.selectedKinds.join(", ") || "none")} · intents: ${escapeHtml(selection.selectedIntents.join(", ") || "none")} + ${report.completeness?.truncated ? `Partial scan (${escapeHtml(report.completeness.reasons.join(", "))}). Increase the budget or use --full for broader coverage.` : `Complete within the configured budget using ${escapeHtml(selection.strategy)}.`} +
` + : ""; + const selectedMeta = selection + ? `${selection.selectedActions}/${selection.eligibleActions} eligible actions selected` : ""; return ` @@ -126,13 +138,14 @@ export function renderHtml(report: ScanReport): string { RealDone · ${escapeHtml(report.scanId)}
-
REALDONE / BEHAVIORAL VERIFICATION

Your app looks done.
Prove it works.

Runtime evidence for visible actions, observable effects, and persistence.

${escapeHtml(report.targetUrl)}
Scan ${escapeHtml(report.scanId)}${escapeHtml(report.startedAt)}${report.summary.pagesDiscovered} pages · ${report.summary.visibleActions} actions
+
REALDONE / BEHAVIORAL VERIFICATION

Your app looks done.
Prove it works.

Runtime evidence for visible actions, observable effects, and persistence.

${escapeHtml(report.targetUrl)}
Scan ${escapeHtml(report.scanId)}${escapeHtml(report.startedAt)}${report.summary.pagesDiscovered} pages · ${report.summary.visibleActions} actions discovered${selectedMeta}
${counts}
${environment} + ${coverage}

Discovered pages

    ${pages || "
  • No page could be discovered.
  • "}

Evidence-backed findings

${report.findings.map(findingCard).join("") || "

No actions were executed.

"}
diff --git a/src/scan.ts b/src/scan.ts index 5dc098e..a9c5e40 100644 --- a/src/scan.ts +++ b/src/scan.ts @@ -8,12 +8,15 @@ import { launchChromium } from "./browser/runtime.js"; import { actionSkipReason, isMutationHostAllowed, validateTarget } from "./core/safety.js"; import { applyActionPolicy } from "./core/policy.js"; import { summarize } from "./core/summary.js"; +import { selectActionsForExecution } from "./core/selection.js"; import { findingFromEvidence } from "./detectors/index.js"; import { inspectEnvironment } from "./environment/health.js"; import { writeReport } from "./report/writer.js"; import { redactEnvironmentText } from "./core/redact.js"; import type { ActionSpec, EnvironmentHealth, ExecutionEvidence, Finding, ScanOptions, ScanReport, SourceSnapshotError } from "./types.js"; +export { actionExecutionPriority } from "./core/selection.js"; + export interface ScanProgress { stage: "runtime" | "environment" | "discovery" | "action" | "report"; message: string; @@ -64,12 +67,6 @@ function skippedFinding(id: string, action: ActionSpec, reason: string): Finding }; } -export function actionExecutionPriority(action: ActionSpec): number { - if (/\b(log[ -]?out|sign[ -]?out|end session|revoke session)\b/i.test(action.label)) return 2; - if (action.intent === "delete" || action.risk === "destructive") return 1; - return 0; -} - function mergeEnvironmentHealth( target: EnvironmentHealth, route: EnvironmentHealth, @@ -269,11 +266,18 @@ export async function runScan( } const allActions = pages.flatMap((page) => page.actions); const eligibleActions = allActions.filter((action) => !options.onlyActionId || action.id === options.onlyActionId); - const selected = eligibleActions - .map((action, index) => ({ action, index })) - .sort((left, right) => actionExecutionPriority(left.action) - actionExecutionPriority(right.action) || left.index - right.index) - .map(({ action }) => action) - .slice(0, options.maxActions); + const knownSkipReasons = new Map(policyDenials); + for (const action of eligibleActions) { + const reason = knownSkipReasons.get(action.id) ?? actionSkipReason(action, { + target, + allowHosts: options.allowHosts, + allowDestructive: options.allowDestructive, + allowExternal: options.allowExternal, + }); + if (reason) knownSkipReasons.set(action.id, reason); + } + const selection = selectActionsForExecution(eligibleActions, options.maxActions, new Set(knownSkipReasons.keys())); + const selected = selection.selected; const actionTruncated = eligibleActions.length > options.maxActions; const sourcePlans = await prepareSourceSnapshotPlans(options.sourceAdapters ?? []); const findings: Finding[] = []; @@ -286,12 +290,7 @@ export async function runScan( total: selected.length, }); const budgetReason = Date.now() >= deadline ? "Global scan time budget was exhausted." : undefined; - const reason = budgetReason ?? policyDenials.get(action.id) ?? actionSkipReason(action, { - target, - allowHosts: options.allowHosts, - allowDestructive: options.allowDestructive, - allowExternal: options.allowExternal, - }); + const reason = budgetReason ?? knownSkipReasons.get(action.id); if (reason) { findings.push(skippedFinding(findingId, action, reason)); continue; @@ -397,6 +396,7 @@ export async function runScan( ...(actionTruncated ? ["max-actions" as const] : []), ...(Date.now() >= deadline && !discovery.reasons.includes("max-duration") ? ["max-duration" as const] : []), ], + selection: selection.telemetry, }, }; report.summary.environmentStatus = environment.status; diff --git a/src/types.ts b/src/types.ts index 7193ab7..751c004 100644 --- a/src/types.ts +++ b/src/types.ts @@ -434,6 +434,21 @@ export interface ScanSummary { environmentStatus?: EnvironmentStatus; } +export interface ActionSelectionTelemetry { + strategy: "coverage-balanced-v1"; + eligibleActions: number; + selectedActions: number; + omittedActions: number; + eligiblePages: number; + selectedPages: number; + eligibleKinds: ActionKind[]; + selectedKinds: ActionKind[]; + eligibleIntents: ActionIntent[]; + selectedIntents: ActionIntent[]; + deniedEligibleActions: number; + deniedSelectedActions: number; +} + export interface ScanReport { schemaVersion: "1.0"; scanId: string; @@ -448,6 +463,7 @@ export interface ScanReport { completeness?: { truncated: boolean; reasons: Array<"max-pages" | "max-actions" | "max-duration">; + selection?: ActionSelectionTelemetry; }; } diff --git a/test/selection.test.ts b/test/selection.test.ts new file mode 100644 index 0000000..578692d --- /dev/null +++ b/test/selection.test.ts @@ -0,0 +1,75 @@ +import assert from "node:assert/strict"; +import test from "node:test"; +import { selectActionsForExecution } from "../src/core/selection.js"; +import type { ActionSpec } from "../src/types.js"; + +function action( + id: string, + pageUrl: string, + kind: ActionSpec["kind"], + intent: ActionSpec["intent"], + activation: NonNullable, + options: { label?: string; risk?: ActionSpec["risk"] } = {}, +): ActionSpec { + return { + id, + pageUrl, + kind, + intent, + activation, + risk: options.risk ?? "safe", + label: options.label ?? id, + fingerprint: { selector: `#${id}`, tag: "button", ordinal: 0 }, + fields: [], + }; +} + +test("balances a finite action budget across routes, kinds, intents, and activation paths", () => { + const result = selectActionsForExecution([ + action("nav-1", "http://app.local/one", "navigation", "navigate", "click"), + action("nav-2", "http://app.local/one", "navigation", "navigate", "click"), + action("nav-3", "http://app.local/one", "navigation", "navigate", "click"), + action("create", "http://app.local/two", "mutation", "create", "submit"), + action("enter", "http://app.local/three", "local", "interact", "enter"), + ], 3); + + assert.deepEqual(result.selected.map((item) => item.id), ["create", "enter", "nav-1"]); + assert.equal(new Set(result.selected.map((item) => item.pageUrl)).size, 3); + assert.deepEqual(result.telemetry.selectedKinds, ["mutation", "local", "navigation"]); + assert.equal(result.telemetry.eligiblePages, 3); + assert.equal(result.telemetry.selectedPages, 3); + assert.equal(result.telemetry.omittedActions, 2); +}); + +test("known denials do not starve runnable actions and destructive/session-ending controls remain last", () => { + const actions = [ + action("denied", "http://app.local/settings", "mutation", "create", "submit"), + action("safe", "http://app.local/settings", "mutation", "update", "submit"), + action("delete", "http://app.local/settings", "mutation", "delete", "click", { risk: "destructive" }), + action("logout", "http://app.local/settings", "local", "submit", "click", { label: "Log out" }), + ]; + const result = selectActionsForExecution(actions, 4, new Set(["denied"])); + + assert.deepEqual(result.selected.map((item) => item.id), ["safe", "delete", "logout", "denied"]); + assert.equal(result.telemetry.deniedEligibleActions, 1); + assert.equal(result.telemetry.deniedSelectedActions, 1); + + const bounded = selectActionsForExecution(actions, 2, new Set(["denied"])); + assert.deepEqual(bounded.selected.map((item) => item.id), ["safe", "delete"]); + assert.equal(bounded.telemetry.deniedSelectedActions, 0); +}); + +test("selection is deterministic and never duplicates an action", () => { + const actions = [ + action("a", "http://app.local/a", "local", "interact", "click"), + action("b", "http://app.local/b", "mutation", "update", "submit"), + action("c", "http://app.local/c", "external", "external", "click", { risk: "external" }), + ]; + const first = selectActionsForExecution(actions, 99); + const second = selectActionsForExecution(actions, 99); + + assert.deepEqual(first.selected.map((item) => item.id), second.selected.map((item) => item.id)); + assert.equal(new Set(first.selected.map((item) => item.id)).size, actions.length); + assert.equal(first.telemetry.selectedActions, actions.length); + assert.equal(first.telemetry.omittedActions, 0); +}); diff --git a/test/smoke.mjs b/test/smoke.mjs index 400bf82..c1106d9 100644 --- a/test/smoke.mjs +++ b/test/smoke.mjs @@ -73,6 +73,26 @@ try { verifyReplays: true, maxReplays: 2, }); + const budgetCoverage = await runScan({ + ...scan, + outputRoot: await mkdtemp(path.join(tmpdir(), "realdone-coverage-budget-")), + maxPages: 3, + maxActions: 3, + maxDurationMs: 60_000, + deep: false, + trace: false, + video: false, + }); + const selection = budgetCoverage.report.completeness?.selection; + assert.equal(selection?.strategy, "coverage-balanced-v1"); + assert.equal(selection?.selectedActions, 3); + assert.equal(selection?.selectedPages, 3); + assert.equal(new Set(budgetCoverage.report.findings.map((finding) => finding.action.pageUrl)).size, 3); + assert.ok((selection?.omittedActions ?? 0) > 0); + assert.equal(budgetCoverage.report.completeness?.truncated, true); + const coverageHtml = await readFile(path.join(budgetCoverage.reportDirectory, "report.html"), "utf8"); + assert.match(coverageHtml, /Action coverage/); + assert.match(coverageHtml, /3 of \d+ eligible actions selected/); assert.ok(result.report.summary.pagesDiscovered >= 11); assert.ok(result.report.findings.some((finding) => finding.detectorMatches.some((item) => item.code === "RD201"))); assert.ok(result.report.findings.some((finding) => finding.detectorMatches.some((item) => item.code === "RD302"))); From 08303148ba7a65804fdb1690d557ffecb3a9a4dc Mon Sep 17 00:00:00 2001 From: datzle123 Date: Sun, 26 Jul 2026 15:58:54 +0700 Subject: [PATCH 2/2] test(release): requalify phase I engine --- CHANGELOG.md | 1 + docs/PRODUCT_STATUS.md | 2 +- docs/REAL_WORLD_VALIDATION.md | 8 +- docs/ROADMAP.md | 2 +- release/evidence/actual-budget.json | 8 +- release/evidence/ai-agent-cycle.json | 20 +- release/evidence/conduit-sources.json | 16 +- release/evidence/conduit.json | 8 +- release/evidence/raw/actual-budget.scan.json | 920 +-- release/evidence/raw/ai-agent-cycle.scan.json | 634 ++- .../evidence/raw/ai-agent-cycle/baseline.json | 6 +- .../raw/ai-agent-cycle/codex-session.json | 6 +- .../ai-agent-cycle/failed-verification.json | 12 +- .../raw/ai-agent-cycle/regression.json | 10 +- .../evidence/raw/ai-agent-cycle/repair.json | 10 +- .../raw/ai-agent-cycle/role-verification.json | 17 +- .../raw/conduit-postgres-cleanup.json | 45 +- .../raw/conduit-postgres-create.scan.json | 2852 +++++----- .../raw/conduit-postgres-delete.scan.json | 5035 +++++++++-------- .../raw/conduit-postgres-update.scan.json | 2986 +++++----- .../evidence/raw/conduit-sources.scan.json | 4747 ++++++++-------- release/evidence/raw/conduit.scan.json | 3143 +++++----- release/evidence/raw/todomvc.scan.json | 3776 +++++++++--- release/evidence/todomvc.json | 34 +- release/external-cases.json | 20 +- 25 files changed, 13636 insertions(+), 10682 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1857f4a..38aa2ec 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,7 @@ All notable changes are documented here. RealDone follows semantic versioning wh - Coverage-balanced quick-scan scheduling that represents more routes, action kinds, intents, and keyboard/submit activation paths within the same finite action budget, while placing known policy/environment denials after runnable actions. - Additive action-selection telemetry in JSON and HTML reports, including eligible/selected/omitted counts, route coverage, semantic coverage, denial counts, the deterministic strategy version, and an explicit partial-scan explanation. +- Fresh fingerprint-bound qualification across TodoMVC, Actual Budget, Conduit/SQLite, Conduit/PostgreSQL 17 + Supabase Data API, and Codex-generated Pocket Ledger, including PostgreSQL create/update/delete cleanup, Level 7 roles, and a real Codex MCP baseline → RD901 regression → repair cycle. ### Fixed diff --git a/docs/PRODUCT_STATUS.md b/docs/PRODUCT_STATUS.md index 69de7f0..c1e9956 100644 --- a/docs/PRODUCT_STATUS.md +++ b/docs/PRODUCT_STATUS.md @@ -9,7 +9,7 @@ This file reports current evidence against the normative [`PRODUCT_SPECIFICATION Release `v1.3.3` additionally ran ten pinned MIT projects and detected 10/10 injected no-op Create buttons as `NO_EFFECT / RD002`; commit, license, clean-control, run, and report hashes are in [`release/evidence/case-studies-10`](../release/evidence/case-studies-10/README.md). The five normative external cases were rerun and validator-bound to fingerprint `68d4a8cb…`, including PostgreSQL CRUD cleanup, Supabase Data API, Level 7 roles, and a real Codex MCP RD901 regression/repair cycle. Hosted run [`30189340006`](https://github.com/datzle123/RealDone/actions/runs/30189340006) passed all 15 gates across Windows/macOS/Linux and GitHub signed the aggregate for the released source commit. -The unreleased Phase I hardening adds coverage-balanced quick-scan scheduling and additive selection telemetry. Its candidate engine fingerprint is `f3f65840…`; local type/unit/build passed 140 tests with 2 expected service-dependent skips, while audit, full Chromium smoke, pack, and installed-tarball package smoke also passed. This hardening is not part of `v1.3.3`: the checked-in real-project evidence remains correctly bound to released fingerprint `68d4a8cb…`, so Phase I must not be described as released until those cases are rerun for the candidate and hosted CI is green. +The unreleased Phase I hardening adds coverage-balanced quick-scan scheduling and additive selection telemetry. Candidate fingerprint `f3f65840…` passed local type/unit/build (140 tests with 2 expected service-dependent skips), audit, full Chromium smoke, pack, installed-tarball smoke, and fresh repository-bound runs for all five normative external cases. TodoMVC exercised both Enter paths; Actual Budget preserved its safe history-dependent `UNCERTAIN`; Conduit passed untruncated SQLite and PostgreSQL 17 + Supabase Data API scans plus real create/update/delete cleanup; Pocket Ledger passed six visible actions, Level 7 roles, and a new Codex MCP RD901 regression/repair cycle. Aggregating those artifacts with the successful Linux/macOS/Windows attestations from candidate run `30193615824` passes 15/15 locally. Phase I is still not released until a fresh hosted run validates and signs the evidence commit itself. | Specification area | Status | Evidence currently in the repository | Remaining normative gap | | --- | --- | --- | --- | diff --git a/docs/REAL_WORLD_VALIDATION.md b/docs/REAL_WORLD_VALIDATION.md index 0e2a886..d076131 100644 --- a/docs/REAL_WORLD_VALIDATION.md +++ b/docs/REAL_WORLD_VALIDATION.md @@ -48,17 +48,17 @@ The Phase G rerun binds each compact evidence document to both the raw `scan.jso | Pinned application | Environment | Observable result | Severe RealDone regressions | | --- | --- | --- | --- | -| TodoMVC React | `VALID`, 3/3 assets | Enter mutation executed; known memory-only behavior remained `EPHEMERAL` with RD101/RD104/RD201 | 0 | +| TodoMVC React | `VALID`, 7/7 assets | both standalone Enter mutations executed; React remained `EPHEMERAL` and TypeScript React remained `BROWSER_LOCAL` | 0 | | Actual Budget | `VALID`, 30/30 assets | 6 `VERIFIED`; one history-dependent missing target remained safely `UNCERTAIN` | 0 | | Conduit + SQLite | `VALID`, untruncated | 17 `VERIFIED`; one generated-credential rejection remained safely `UNCERTAIN` | 0 | | Conduit + PostgreSQL 17 + Supabase Data API | `VALID`, untruncated | 17 `VERIFIED`; signup was `SOURCE_OF_TRUTH_CONFIRMED` Level 6 through both adapters with the same added-row hash | 0 | | Pocket Ledger | `VALID`, untruncated | all 6 visible actions `VERIFIED`, including focus-revealed skip link, multipart upload and non-empty CSV export | 0 | -The released `v1.3.3` engine fingerprint is `68d4a8cb4b087d702df15d609d0ee0f7c92efaf731fdccd0d726b462a9878abe`. Its repository-confined raw scans are stored under `release/evidence/raw/`; every primary case was `VALID` and untruncated. Compact documents are SHA-256-bound to the current engine, primary scans, supporting PostgreSQL CRUD scans, cleanup ledger, role verification and Codex cycle artifacts. The release gate requires semantic observable evidence for all nine §27 capability classes, not merely a minimum case count. Signed hosted run [`30189340006`](https://github.com/datzle123/RealDone/actions/runs/30189340006) passed all 15 gates across Windows/macOS/Linux for the released source and package path. +The current checked-in evidence is bound to Phase I candidate fingerprint `f3f65840e53777056fed4fc770853a522da85c46626f5bc910853515c266cc1a`. Every primary scan was `VALID` and untruncated. Compact documents bind the primary scans, PostgreSQL CRUD scans, cleanup ledger, Level 7 role verification and Codex cycle artifacts by SHA-256. Candidate-head run [`30193615824`](https://github.com/datzle123/RealDone/actions/runs/30193615824) already passed its Linux/macOS/Windows, Node 20/22, browser and package jobs; its first aggregate correctly failed because the previous external artifacts belonged to fingerprint `68d4a8cb…`. Combining those same successful platform attestations with the fresh candidate evidence now passes 15/15 locally, but Phase I remains unreleased until hosted CI validates and signs the evidence commit itself. Released `v1.3.3` and its signed run [`30189340006`](https://github.com/datzle123/RealDone/actions/runs/30189340006) remain the historical release qualification. PostgreSQL qualification used the pinned upstream Conduit app with only a harness port mapping, native PostgreSQL 17.10, real create/update/delete row diffs and key-bounded cleanup. The Supabase source adapter read the same action through a local Supabase Data API-compatible PostgREST 14.15 endpoint; the official Supabase CLI was also checked, but its full Auth/Storage local stack could not start on this machine because Docker Desktop/WSL is absent. This evidence therefore claims the maintained Supabase Data API adapter boundary, not a hosted Supabase service. -Pocket Ledger was generated in a separate MIT repository by Codex, then exercised through the public scanner and a Level 7 role contract. Member state hid Reset and received API 403; admin state saw Reset. An authenticated Codex Desktop `0.143.0` session called RealDone MCP for a green baseline, produced a selected RD901 regression without changing the contract, repaired Increment, and finished with one selected contract and zero regressions. The release validator parses and cross-checks those bound artifacts instead of trusting the agent's final message. +Pocket Ledger was generated in a separate MIT repository by Codex, then exercised through the public scanner and a Level 7 role contract. Member state hid Reset and received API 403; admin state saw Reset. Authenticated Codex Desktop thread `019f8770-219f-7612-81eb-98670009f693` used Codex CLI `0.143.0` to call RealDone MCP for a green baseline, produced run `20260726T081932Z-0ea9` with one selected RD901 regression and an unchanged contract, repaired Increment, and finished in run `20260726T082050Z-ad9f` with one selected contract and zero regressions. The release validator parses and cross-checks those bound artifacts instead of trusting the agent's final message. The intentional TodoMVC copy produced exactly 2 `CONTRADICTORY`, 1 `EPHEMERAL`, and 1 `NO_EFFECT` finding while its unbuilt Demo route remained `ENVIRONMENT_INVALID` instead of an app defect. The intentional Conduit copy produced its planted duplicate invoice as `BROKEN`/RD003, failed settings as `CONTRADICTORY`/RD001/RD302, fake delete as `CONTRADICTORY`/RD203/RD301, and inert button as `NO_EFFECT`/RD002. @@ -66,7 +66,7 @@ The first current-engine Conduit rerun exposed an RD501 false positive: the publ The 2026-07-23 Actual Budget rerun then exposed a safety regression: its server target is a text input with an `https://example.com` placeholder rather than `type="url"`. RealDone initially filled a canary and clicked Connect, producing a DNS failure. URL-bearing placeholders now retain external-target classification; the rerun returned to 6 `VERIFIED`, 1 safe `UNCERTAIN`, 3 policy `SKIPPED`, and zero defects. -Machine-readable release inputs are in `release/external-cases.json` and `release/evidence/`; hosted run [`30189340006`](https://github.com/datzle123/RealDone/actions/runs/30189340006) passed all 15 gates, GitHub signed both aggregate JSON artifacts, and `gh attestation verify` accepted them for `v1.3.3`. The earlier `v1.3.2` package path remains qualified by hosted run [`29977292441`](https://github.com/datzle123/RealDone/actions/runs/29977292441). +Machine-readable candidate inputs are in `release/external-cases.json` and `release/evidence/`. For the released package, hosted run [`30189340006`](https://github.com/datzle123/RealDone/actions/runs/30189340006) passed all 15 gates, GitHub signed both aggregate JSON artifacts, and `gh attestation verify` accepted them for `v1.3.3`. Phase I receives its own signed run only after the candidate evidence commit passes hosted aggregation; it does not inherit the prior signature. The earlier `v1.3.2` package path remains qualified by hosted run [`29977292441`](https://github.com/datzle123/RealDone/actions/runs/29977292441). ### Actual Budget original application diff --git a/docs/ROADMAP.md b/docs/ROADMAP.md index bb7c318..9af44f3 100644 --- a/docs/ROADMAP.md +++ b/docs/ROADMAP.md @@ -150,4 +150,4 @@ Gate: - JSON/HTML reports expose eligible, selected, omitted, represented-route, semantic coverage, denial counts and strategy version without breaking schema `1.0` consumers. - Broken/control unit coverage and a real-browser three-route budget fixture pass with typecheck, audit, browser smoke and package gates. -Phase I implementation and applicable local gates are complete for candidate fingerprint `f3f65840…`: typecheck/unit/build passed 140 tests with 2 expected service-dependent skips, dependency audit reported no known vulnerabilities, full Chromium smoke passed the real three-route budget control, and pack plus installed-tarball package smoke passed. The phase remains a release candidate; released real-project evidence is still bound to `68d4a8cb…` and must be rerun before hosted release aggregation can qualify this fingerprint. +Phase I implementation and local qualification are complete for candidate fingerprint `f3f65840…`: typecheck/unit/build passed 140 tests with 2 expected service-dependent skips, dependency audit reported no known vulnerabilities, full Chromium smoke passed the real three-route budget control, and pack plus installed-tarball package smoke passed. Fresh SHA-256-bound runs now cover TodoMVC, Actual Budget, Conduit/SQLite, Conduit/PostgreSQL 17 + Supabase Data API, PostgreSQL CRUD cleanup, Level 7 roles, and a Codex MCP baseline → RD901 regression → repair cycle. Reusing only the successful candidate-head Linux/macOS/Windows attestations from run `30193615824`, local aggregation passes 15/15. The phase remains a release candidate until hosted CI reruns against and signs the evidence commit. diff --git a/release/evidence/actual-budget.json b/release/evidence/actual-budget.json index 68315a0..d951158 100644 --- a/release/evidence/actual-budget.json +++ b/release/evidence/actual-budget.json @@ -1,7 +1,7 @@ { "schemaVersion": "1.0", - "generatedAt": "2026-07-23T15:17:09.809Z", - "engineFingerprint": "68d4a8cb4b087d702df15d609d0ee0f7c92efaf731fdccd0d726b462a9878abe", + "generatedAt": "2026-07-26T08:45:00.000Z", + "engineFingerprint": "f3f65840e53777056fed4fc770853a522da85c46626f5bc910853515c266cc1a", "case": { "name": "Actual Budget", "repository": "actualbudget/actual", @@ -12,9 +12,9 @@ "capabilities": [] }, "scan": { - "scanId": "20260723T145325Z-691d", + "scanId": "20260726T081239Z-de0e", "sourceArtifact": "release/evidence/raw/actual-budget.scan.json", - "sourceSha256": "f5b2227e0244194dd8f303809cf3846996f40abdcbe4b2a83c2315cd8147c841", + "sourceSha256": "bfd6dfd2e5522a8efd19c2c233797184dc454b73fcb5ceca2d348cf2a12d6781", "environmentStatus": "VALID", "truncated": false, "pagesDiscovered": 2, diff --git a/release/evidence/ai-agent-cycle.json b/release/evidence/ai-agent-cycle.json index fb34b1e..bf71032 100644 --- a/release/evidence/ai-agent-cycle.json +++ b/release/evidence/ai-agent-cycle.json @@ -1,7 +1,7 @@ { "schemaVersion": "1.0", - "generatedAt": "2026-07-23T15:17:09.809Z", - "engineFingerprint": "68d4a8cb4b087d702df15d609d0ee0f7c92efaf731fdccd0d726b462a9878abe", + "generatedAt": "2026-07-26T08:45:00.000Z", + "engineFingerprint": "f3f65840e53777056fed4fc770853a522da85c46626f5bc910853515c266cc1a", "case": { "name": "Pocket Ledger (Codex-generated)", "repository": "local/Pocket-Ledger", @@ -18,9 +18,9 @@ ] }, "scan": { - "scanId": "20260723T145431Z-7f50", + "scanId": "20260726T081239Z-a6ab", "sourceArtifact": "release/evidence/raw/ai-agent-cycle.scan.json", - "sourceSha256": "47047b33dc09a564f317381fa60158973274ff3a517c2cb0d7cc9e722d63f329", + "sourceSha256": "29c9f89f23b04ea4bcb4bec206f86cc47fe7e37a67f7a89d53ca2f98d2225622", "environmentStatus": "VALID", "truncated": false, "pagesDiscovered": 1, @@ -43,37 +43,37 @@ "id": "codex-session", "kind": "agent-session", "sourceArtifact": "release/evidence/raw/ai-agent-cycle/codex-session.json", - "sourceSha256": "b342e6a10706d66a5c8ec332fdbf9c2679d83bfa692ac2f882c86ee566456602" + "sourceSha256": "393018db4f963563175ed8e28b978c3fec2d6d9b57186fe3f31c4fcf7fba3f5c" }, { "id": "agent-baseline", "kind": "agent-baseline", "sourceArtifact": "release/evidence/raw/ai-agent-cycle/baseline.json", - "sourceSha256": "c143aebfbff7f50bea80bfbd077c28e59310176210948865849d192803f1775d" + "sourceSha256": "85c2891a2604819c88578a57e13ed0801f7fe374bd9534c2060878caaf311ac0" }, { "id": "agent-regression", "kind": "agent-regression", "sourceArtifact": "release/evidence/raw/ai-agent-cycle/regression.json", - "sourceSha256": "a38b2701c69e394408186488adc025555e6cd1c59e897b05796828e28725fb38" + "sourceSha256": "a5f872646d86a2949edd4380f72fa42b14db3e5d3af294a65d52064a3972a414" }, { "id": "failed-verification", "kind": "contract-verification", "sourceArtifact": "release/evidence/raw/ai-agent-cycle/failed-verification.json", - "sourceSha256": "f38328f2cf7fd66f8246e84c230dac23b2e0b1d6503266650f3e7adfd3feca53" + "sourceSha256": "edfc3c24910e4b073ae347d5c54a4c0b612559f27aeb085cb7cf95dfaadf15f3" }, { "id": "agent-repair", "kind": "agent-repair", "sourceArtifact": "release/evidence/raw/ai-agent-cycle/repair.json", - "sourceSha256": "e5cf1f9255b6aff0ba6a8d60957f3912a0e7b68f5c0782e1989a499457ef64f6" + "sourceSha256": "71ac24e404f63e49f962536aaaf6a8985f9eb308c1ccd5358b9d6ef971753875" }, { "id": "role-verification", "kind": "contract-verification", "sourceArtifact": "release/evidence/raw/ai-agent-cycle/role-verification.json", - "sourceSha256": "e619672f4d050a77c944ba6346a4761cdddbe3f081354373b8114f4bb4ce9855" + "sourceSha256": "f9106b1169e9b4ae7ad9da701ab09a1631232853052291d8d8b6fbc3d7c43ede" } ], "qualification": { diff --git a/release/evidence/conduit-sources.json b/release/evidence/conduit-sources.json index 7123eb6..4fff64c 100644 --- a/release/evidence/conduit-sources.json +++ b/release/evidence/conduit-sources.json @@ -1,7 +1,7 @@ { "schemaVersion": "1.0", - "generatedAt": "2026-07-23T15:17:09.809Z", - "engineFingerprint": "68d4a8cb4b087d702df15d609d0ee0f7c92efaf731fdccd0d726b462a9878abe", + "generatedAt": "2026-07-26T08:45:00.000Z", + "engineFingerprint": "f3f65840e53777056fed4fc770853a522da85c46626f5bc910853515c266cc1a", "case": { "name": "Conduit RealWorld (PostgreSQL + Supabase Data API)", "repository": "TonyMckes/conduit-realworld-example-app", @@ -17,9 +17,9 @@ ] }, "scan": { - "scanId": "20260723T150111Z-73bf", + "scanId": "20260726T083040Z-3aab", "sourceArtifact": "release/evidence/raw/conduit-sources.scan.json", - "sourceSha256": "27f6a2f5e9eea625f57888490aca6f513fb3e6d9c9369adb774bbedc9390c315", + "sourceSha256": "4b4781d12ae0052f2b24aefb4b033f8d40f1de2217ab69d360b5dc4e2e7e2ee3", "environmentStatus": "VALID", "truncated": false, "pagesDiscovered": 3, @@ -42,25 +42,25 @@ "id": "postgres-create", "kind": "external-scan", "sourceArtifact": "release/evidence/raw/conduit-postgres-create.scan.json", - "sourceSha256": "78849aee05f9d4b5de0cb8acae4ebe376305471155d86377a8c2d72725172643" + "sourceSha256": "27390cff33f9e8d6e2726cc90df4a683acd9152c284e350597b2d4e12e559038" }, { "id": "postgres-update", "kind": "external-scan", "sourceArtifact": "release/evidence/raw/conduit-postgres-update.scan.json", - "sourceSha256": "a7e5188174b01fc6ab327b10a43cc953bfe6b9cf07fa8e891ccb9d49ef88166f" + "sourceSha256": "1dcd34e6dabf3bffaca04823aa97d7748624423e6eca4a403a8f3af52a752512" }, { "id": "postgres-delete", "kind": "external-scan", "sourceArtifact": "release/evidence/raw/conduit-postgres-delete.scan.json", - "sourceSha256": "5b4635c4932bd79e1d9c84f39300793404e7df2e65b88b08593d339e73b3a773" + "sourceSha256": "bb3fc2eda12911e7d870b1dc1e5f493399ae5dc40bbfc65d6d906e1517c798a2" }, { "id": "postgres-cleanup", "kind": "test-result", "sourceArtifact": "release/evidence/raw/conduit-postgres-cleanup.json", - "sourceSha256": "e84a8170942e294adead98cb20470b16674fe559039e7eccae5f05235d6975d9" + "sourceSha256": "578f66e898a33a4c48b20bf5c789fc4b9cde20d9ea041d1ca856005117ff87a5" } ], "assertions": [ diff --git a/release/evidence/conduit.json b/release/evidence/conduit.json index cc748ab..d8a6f4c 100644 --- a/release/evidence/conduit.json +++ b/release/evidence/conduit.json @@ -1,7 +1,7 @@ { "schemaVersion": "1.0", - "generatedAt": "2026-07-23T15:17:09.809Z", - "engineFingerprint": "68d4a8cb4b087d702df15d609d0ee0f7c92efaf731fdccd0d726b462a9878abe", + "generatedAt": "2026-07-26T08:45:00.000Z", + "engineFingerprint": "f3f65840e53777056fed4fc770853a522da85c46626f5bc910853515c266cc1a", "case": { "name": "Conduit RealWorld (SQLite)", "repository": "TonyMckes/conduit-realworld-example-app", @@ -14,9 +14,9 @@ ] }, "scan": { - "scanId": "20260723T145644Z-dcea", + "scanId": "20260726T084136Z-1c78", "sourceArtifact": "release/evidence/raw/conduit.scan.json", - "sourceSha256": "eb853846cbf4f27a89579f1eaffdfa932159d1f9899483ecf849e68bd3eeb98c", + "sourceSha256": "eed642ab71f6f155bee6373cca80bad029ac4584e032553a61cd3d446803d4aa", "environmentStatus": "VALID", "truncated": false, "pagesDiscovered": 3, diff --git a/release/evidence/raw/actual-budget.scan.json b/release/evidence/raw/actual-budget.scan.json index 9b7ccb0..1719d03 100644 --- a/release/evidence/raw/actual-budget.scan.json +++ b/release/evidence/raw/actual-budget.scan.json @@ -1,22 +1,22 @@ { "schemaVersion": "1.0", - "scanId": "20260723T145325Z-691d", - "targetUrl": "http://127.0.0.1:37200/", - "startedAt": "2026-07-23T14:53:25.066Z", - "finishedAt": "2026-07-23T14:54:22.424Z", + "scanId": "20260726T081239Z-de0e", + "targetUrl": "http://127.0.0.1:37421/", + "startedAt": "2026-07-26T08:12:39.808Z", + "finishedAt": "2026-07-26T08:13:39.156Z", "options": { - "maxPages": 2, - "maxActions": 20, + "maxPages": 10, + "maxActions": 50, "timeoutMs": 15000, - "settleMs": 900, - "maxDurationMs": 180000, + "settleMs": 1000, + "maxDurationMs": 900000, "maxRetries": 2, "allowDestructive": false, "allowExternal": false, "mutationAllowed": true, "deep": true, - "trace": false, - "traceOnFailure": true, + "trace": true, + "traceOnFailure": false, "video": false, "environmentTimeoutMs": 10000, "acceptEnvironmentRisk": false, @@ -41,25 +41,25 @@ }, "pages": [ { - "url": "http://127.0.0.1:37200/", + "url": "http://127.0.0.1:37421/", "title": "Actual", "actions": [ { - "id": "db322479fdc8", - "pageUrl": "http://127.0.0.1:37200/", + "id": "028a354674cb", + "pageUrl": "http://127.0.0.1:37421/", "label": "Start budgeting", "activation": "click", "kind": "local", "intent": "interact", "risk": "safe", "fingerprint": { - "selector": "#react-aria2793412727-_r_0_", + "selector": "#react-aria3130426097-_r_0_", "tag": "button", "ordinal": 0, "role": "button", "accessibleName": "Start budgeting", "text": "Start budgeting", - "id": "react-aria2793412727-_r_0_", + "id": "react-aria3130426097-_r_0_", "type": "button", "candidates": [ { @@ -79,7 +79,7 @@ { "strategy": "id", "weight": 80, - "selector": "#react-aria2793412727-_r_0_" + "selector": "#react-aria3130426097-_r_0_" }, { "strategy": "text", @@ -90,28 +90,28 @@ { "strategy": "css", "weight": 35, - "selector": "#react-aria2793412727-_r_0_" + "selector": "#react-aria3130426097-_r_0_" } ] }, "fields": [] }, { - "id": "359f603766c3", - "pageUrl": "http://127.0.0.1:37200/", + "id": "45c63f4323e5", + "pageUrl": "http://127.0.0.1:37421/", "label": "Try the demo", "activation": "click", "kind": "local", "intent": "interact", "risk": "safe", "fingerprint": { - "selector": "#react-aria2793412727-_r_2_", + "selector": "#react-aria3130426097-_r_2_", "tag": "button", "ordinal": 1, "role": "button", "accessibleName": "Try the demo", "text": "Try the demo", - "id": "react-aria2793412727-_r_2_", + "id": "react-aria3130426097-_r_2_", "type": "button", "candidates": [ { @@ -131,7 +131,7 @@ { "strategy": "id", "weight": 80, - "selector": "#react-aria2793412727-_r_2_" + "selector": "#react-aria3130426097-_r_2_" }, { "strategy": "text", @@ -142,28 +142,28 @@ { "strategy": "css", "weight": 35, - "selector": "#react-aria2793412727-_r_2_" + "selector": "#react-aria3130426097-_r_2_" } ] }, "fields": [] }, { - "id": "c14283fe5af7", - "pageUrl": "http://127.0.0.1:37200/", + "id": "4d95f1dd909c", + "pageUrl": "http://127.0.0.1:37421/", "label": "Connect to a sync server", "activation": "click", "kind": "local", "intent": "interact", "risk": "safe", "fingerprint": { - "selector": "#react-aria2793412727-_r_4_", + "selector": "#react-aria3130426097-_r_4_", "tag": "button", "ordinal": 2, "role": "button", "accessibleName": "Connect to a sync server", "text": "Connect to a sync server", - "id": "react-aria2793412727-_r_4_", + "id": "react-aria3130426097-_r_4_", "type": "button", "candidates": [ { @@ -183,7 +183,7 @@ { "strategy": "id", "weight": 80, - "selector": "#react-aria2793412727-_r_4_" + "selector": "#react-aria3130426097-_r_4_" }, { "strategy": "text", @@ -194,28 +194,28 @@ { "strategy": "css", "weight": 35, - "selector": "#react-aria2793412727-_r_4_" + "selector": "#react-aria3130426097-_r_4_" } ] }, "fields": [] }, { - "id": "0b8634510f9e", - "pageUrl": "http://127.0.0.1:37200/", + "id": "96777c5d3995", + "pageUrl": "http://127.0.0.1:37421/", "label": "Import my budget", "activation": "click", "kind": "local", "intent": "interact", "risk": "safe", "fingerprint": { - "selector": "#react-aria2793412727-_r_6_", + "selector": "#react-aria3130426097-_r_6_", "tag": "button", "ordinal": 3, "role": "button", "accessibleName": "Import my budget", "text": "Import my budget", - "id": "react-aria2793412727-_r_6_", + "id": "react-aria3130426097-_r_6_", "type": "button", "candidates": [ { @@ -235,7 +235,7 @@ { "strategy": "id", "weight": 80, - "selector": "#react-aria2793412727-_r_6_" + "selector": "#react-aria3130426097-_r_6_" }, { "strategy": "text", @@ -246,15 +246,15 @@ { "strategy": "css", "weight": 35, - "selector": "#react-aria2793412727-_r_6_" + "selector": "#react-aria3130426097-_r_6_" } ] }, "fields": [] }, { - "id": "a2df12f0beb2", - "pageUrl": "http://127.0.0.1:37200/", + "id": "dd2fbcc128b2", + "pageUrl": "http://127.0.0.1:37421/", "label": "guided tour", "activation": "click", "kind": "navigation", @@ -305,8 +305,8 @@ "fields": [] }, { - "id": "dc63956e54d7", - "pageUrl": "http://127.0.0.1:37200/", + "id": "95992a8ec53a", + "pageUrl": "http://127.0.0.1:37421/", "label": "Set up sync", "activation": "click", "kind": "navigation", @@ -319,7 +319,7 @@ "role": "link", "accessibleName": "Set up sync", "text": "Set up sync", - "href": "http://127.0.0.1:37200/config-server", + "href": "http://127.0.0.1:37421/config-server", "candidates": [ { "strategy": "role", @@ -338,7 +338,7 @@ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37200/config-server" + "value": "http://127.0.0.1:37421/config-server" }, { "strategy": "text", @@ -358,25 +358,25 @@ ] }, { - "url": "http://127.0.0.1:37200/config-server", + "url": "http://127.0.0.1:37421/config-server", "title": "Actual", "actions": [ { - "id": "211dd240da47", - "pageUrl": "http://127.0.0.1:37200/config-server", + "id": "93054cadc685", + "pageUrl": "http://127.0.0.1:37421/config-server", "label": "Back", "activation": "click", "kind": "navigation", "intent": "navigate", "risk": "safe", "fingerprint": { - "selector": "#react-aria6445893585-_r_0_", + "selector": "#react-aria2682847574-_r_0_", "tag": "button", "ordinal": 0, "role": "button", "accessibleName": "Back", "text": "Back", - "id": "react-aria6445893585-_r_0_", + "id": "react-aria2682847574-_r_0_", "type": "button", "candidates": [ { @@ -396,7 +396,7 @@ { "strategy": "id", "weight": 80, - "selector": "#react-aria6445893585-_r_0_" + "selector": "#react-aria2682847574-_r_0_" }, { "strategy": "text", @@ -407,15 +407,15 @@ { "strategy": "css", "weight": 35, - "selector": "#react-aria6445893585-_r_0_" + "selector": "#react-aria2682847574-_r_0_" } ] }, "fields": [] }, { - "id": "d51b0ab96a20", - "pageUrl": "http://127.0.0.1:37200/config-server", + "id": "b718b6124fb5", + "pageUrl": "http://127.0.0.1:37421/config-server", "label": "learn how to set one up", "activation": "click", "kind": "navigation", @@ -466,21 +466,21 @@ "fields": [] }, { - "id": "b4b1e39438ef", - "pageUrl": "http://127.0.0.1:37200/config-server", + "id": "286b2b81440c", + "pageUrl": "http://127.0.0.1:37421/config-server", "label": "Connect", "activation": "click", "kind": "external", "intent": "external", "risk": "external", "fingerprint": { - "selector": "#react-aria6445893585-_r_2_", + "selector": "#react-aria2682847574-_r_2_", "tag": "button", "ordinal": 2, "role": "button", "accessibleName": "Connect", "text": "Connect", - "id": "react-aria6445893585-_r_2_", + "id": "react-aria2682847574-_r_2_", "type": "button", "candidates": [ { @@ -500,7 +500,7 @@ { "strategy": "id", "weight": 80, - "selector": "#react-aria6445893585-_r_2_" + "selector": "#react-aria2682847574-_r_2_" }, { "strategy": "text", @@ -511,7 +511,7 @@ { "strategy": "css", "weight": 35, - "selector": "#react-aria6445893585-_r_2_" + "selector": "#react-aria2682847574-_r_2_" } ] }, @@ -527,21 +527,21 @@ ] }, { - "id": "11ab18b3cef0", - "pageUrl": "http://127.0.0.1:37200/config-server", + "id": "f6a25772e322", + "pageUrl": "http://127.0.0.1:37421/config-server", "label": "Use the current domain", "activation": "click", "kind": "local", "intent": "interact", "risk": "safe", "fingerprint": { - "selector": "#react-aria6445893585-_r_4_", + "selector": "#react-aria2682847574-_r_4_", "tag": "button", "ordinal": 3, "role": "button", "accessibleName": "Use the current domain", "text": "Use the current domain", - "id": "react-aria6445893585-_r_4_", + "id": "react-aria2682847574-_r_4_", "type": "button", "candidates": [ { @@ -561,7 +561,7 @@ { "strategy": "id", "weight": 80, - "selector": "#react-aria6445893585-_r_4_" + "selector": "#react-aria2682847574-_r_4_" }, { "strategy": "text", @@ -572,7 +572,7 @@ { "strategy": "css", "weight": 35, - "selector": "#react-aria6445893585-_r_4_" + "selector": "#react-aria2682847574-_r_4_" } ] }, @@ -585,21 +585,21 @@ { "id": "RD-001", "action": { - "id": "db322479fdc8", - "pageUrl": "http://127.0.0.1:37200/", + "id": "028a354674cb", + "pageUrl": "http://127.0.0.1:37421/", "label": "Start budgeting", "activation": "click", "kind": "local", "intent": "interact", "risk": "safe", "fingerprint": { - "selector": "#react-aria2793412727-_r_0_", + "selector": "#react-aria3130426097-_r_0_", "tag": "button", "ordinal": 0, "role": "button", "accessibleName": "Start budgeting", "text": "Start budgeting", - "id": "react-aria2793412727-_r_0_", + "id": "react-aria3130426097-_r_0_", "type": "button", "candidates": [ { @@ -619,7 +619,7 @@ { "strategy": "id", "weight": 80, - "selector": "#react-aria2793412727-_r_0_" + "selector": "#react-aria3130426097-_r_0_" }, { "strategy": "text", @@ -630,26 +630,26 @@ { "strategy": "css", "weight": 35, - "selector": "#react-aria2793412727-_r_0_" + "selector": "#react-aria3130426097-_r_0_" } ] }, "fields": [] }, "evidence": { - "startedAt": "2026-07-23T14:53:31.793Z", - "durationMs": 6634, - "canary": "RD_TEST_61707B", + "startedAt": "2026-07-26T08:12:47.047Z", + "durationMs": 6797, + "canary": "RD_TEST_31C9E5", "network": [ { "id": "net-1", "method": "GET", - "url": "http://127.0.0.1:37200/static/js/indexeddb-main-thread-worker-e59fee74.B9D89_PE.chunk.js", + "url": "http://127.0.0.1:37421/static/js/indexeddb-main-thread-worker-e59fee74.B9D89_PE.chunk.js", "resourceType": "script", - "startedAt": 5553, + "startedAt": 5622, "status": 200, "ok": true, - "finishedAt": 5558, + "finishedAt": 5627, "contentType": "text/javascript", "resourceTypeHint": "indexeddb-main-thread-worker-e59fee74.B9D89_PE.chunk.js" }, @@ -658,53 +658,53 @@ "method": "GET", "url": "https://api.github.com/repos/actualbudget/actual/releases/latest", "resourceType": "fetch", - "startedAt": 5956 + "startedAt": 6184 }, { "id": "net-3", "method": "GET", - "url": "http://127.0.0.1:37200/static/js/wide.BkKPUPVE.chunk.js", + "url": "http://127.0.0.1:37421/static/js/wide.BkKPUPVE.chunk.js", "resourceType": "script", - "startedAt": 5992, + "startedAt": 6226, "status": 200, "ok": true, - "finishedAt": 6003, + "finishedAt": 6244, "contentType": "text/javascript", "resourceTypeHint": "wide.BkKPUPVE.chunk.js" }, { "id": "net-4", "method": "GET", - "url": "http://127.0.0.1:37200/static/js/AppliedFilters.Dx7PP3C8.chunk.js", + "url": "http://127.0.0.1:37421/static/js/AppliedFilters.Dx7PP3C8.chunk.js", "resourceType": "script", - "startedAt": 5993, + "startedAt": 6227, "status": 200, "ok": true, - "finishedAt": 6002, + "finishedAt": 6243, "contentType": "text/javascript", "resourceTypeHint": "AppliedFilters.Dx7PP3C8.chunk.js" }, { "id": "net-5", "method": "GET", - "url": "http://127.0.0.1:37200/static/js/useTransactionBatchActions.CG8pn3qO.chunk.js", + "url": "http://127.0.0.1:37421/static/js/useTransactionBatchActions.CG8pn3qO.chunk.js", "resourceType": "script", - "startedAt": 5994, + "startedAt": 6227, "status": 200, "ok": true, - "finishedAt": 6000, + "finishedAt": 6241, "contentType": "text/javascript", "resourceTypeHint": "useTransactionBatchActions.CG8pn3qO.chunk.js" }, { "id": "net-6", "method": "GET", - "url": "http://127.0.0.1:37200/static/js/PayeeRuleCountLabel.nEXX1VI1.chunk.js", + "url": "http://127.0.0.1:37421/static/js/PayeeRuleCountLabel.nEXX1VI1.chunk.js", "resourceType": "script", - "startedAt": 5994, + "startedAt": 6228, "status": 200, "ok": true, - "finishedAt": 6001, + "finishedAt": 6241, "contentType": "text/javascript", "resourceTypeHint": "PayeeRuleCountLabel.nEXX1VI1.chunk.js" } @@ -725,7 +725,7 @@ "weight": 92, "matchCount": 1, "visibleCount": 1, - "elapsedMs": 10 + "elapsedMs": 9 } ], "chosenStrategy": "role", @@ -733,8 +733,8 @@ "retryCount": 0 }, "before": { - "at": 5476, - "url": "http://127.0.0.1:37200/", + "at": 5554, + "url": "http://127.0.0.1:37421/", "title": "Actual", "domHash": "0e5db8d3d3693839", "canaryPresent": false, @@ -808,8 +808,8 @@ } }, "beforeAction": { - "at": 5503, - "url": "http://127.0.0.1:37200/", + "at": 5576, + "url": "http://127.0.0.1:37421/", "title": "Actual", "domHash": "0e5db8d3d3693839", "canaryPresent": false, @@ -884,8 +884,8 @@ }, "networkSettled": true, "after": { - "at": 6628, - "url": "http://127.0.0.1:37200/accounts", + "at": 6791, + "url": "http://127.0.0.1:37421/accounts", "title": "Actual", "domHash": "823d03cf2b04dc62", "canaryPresent": false, @@ -1077,7 +1077,7 @@ ] }, { - "name": "documents-Actual-My-Finances-63eaef8-db.sqlite", + "name": "documents-Actual-My-Finances-d95149f-db.sqlite", "version": 2, "stores": [ { @@ -1089,6 +1089,7 @@ ] } }, + "trace": "traces/028a354674cb.zip", "snapshotIndex": "snapshots/RD-001.index.json" }, "verdict": "VERIFIED", @@ -1099,21 +1100,21 @@ { "id": "RD-002", "action": { - "id": "359f603766c3", - "pageUrl": "http://127.0.0.1:37200/", + "id": "45c63f4323e5", + "pageUrl": "http://127.0.0.1:37421/", "label": "Try the demo", "activation": "click", "kind": "local", "intent": "interact", "risk": "safe", "fingerprint": { - "selector": "#react-aria2793412727-_r_2_", + "selector": "#react-aria3130426097-_r_2_", "tag": "button", "ordinal": 1, "role": "button", "accessibleName": "Try the demo", "text": "Try the demo", - "id": "react-aria2793412727-_r_2_", + "id": "react-aria3130426097-_r_2_", "type": "button", "candidates": [ { @@ -1133,7 +1134,7 @@ { "strategy": "id", "weight": 80, - "selector": "#react-aria2793412727-_r_2_" + "selector": "#react-aria3130426097-_r_2_" }, { "strategy": "text", @@ -1144,26 +1145,26 @@ { "strategy": "css", "weight": 35, - "selector": "#react-aria2793412727-_r_2_" + "selector": "#react-aria3130426097-_r_2_" } ] }, "fields": [] }, "evidence": { - "startedAt": "2026-07-23T14:53:38.951Z", - "durationMs": 7918, - "canary": "RD_TEST_A29FE6", + "startedAt": "2026-07-26T08:12:54.417Z", + "durationMs": 8220, + "canary": "RD_TEST_F14B4D", "network": [ { "id": "net-1", "method": "GET", - "url": "http://127.0.0.1:37200/static/js/indexeddb-main-thread-worker-e59fee74.B9D89_PE.chunk.js", + "url": "http://127.0.0.1:37421/static/js/indexeddb-main-thread-worker-e59fee74.B9D89_PE.chunk.js", "resourceType": "script", - "startedAt": 6844, + "startedAt": 7032, "status": 200, "ok": true, - "finishedAt": 6848, + "finishedAt": 7037, "contentType": "text/javascript", "resourceTypeHint": "indexeddb-main-thread-worker-e59fee74.B9D89_PE.chunk.js" } @@ -1184,7 +1185,7 @@ "weight": 92, "matchCount": 1, "visibleCount": 1, - "elapsedMs": 9 + "elapsedMs": 7 } ], "chosenStrategy": "role", @@ -1192,8 +1193,8 @@ "retryCount": 0 }, "before": { - "at": 6783, - "url": "http://127.0.0.1:37200/", + "at": 6971, + "url": "http://127.0.0.1:37421/", "title": "Actual", "domHash": "0e5db8d3d3693839", "canaryPresent": false, @@ -1267,8 +1268,8 @@ } }, "beforeAction": { - "at": 6803, - "url": "http://127.0.0.1:37200/", + "at": 6992, + "url": "http://127.0.0.1:37421/", "title": "Actual", "domHash": "0e5db8d3d3693839", "canaryPresent": false, @@ -1343,8 +1344,8 @@ }, "networkSettled": true, "after": { - "at": 7910, - "url": "http://127.0.0.1:37200/", + "at": 8214, + "url": "http://127.0.0.1:37421/", "title": "Actual", "domHash": "e58c55874a03866c", "canaryPresent": false, @@ -1391,13 +1392,14 @@ "stores": [ { "name": "data", - "count": 233 + "count": 225 } ] } ] } }, + "trace": "traces/45c63f4323e5.zip", "snapshotIndex": "snapshots/RD-002.index.json" }, "verdict": "VERIFIED", @@ -1408,21 +1410,21 @@ { "id": "RD-003", "action": { - "id": "c14283fe5af7", - "pageUrl": "http://127.0.0.1:37200/", + "id": "4d95f1dd909c", + "pageUrl": "http://127.0.0.1:37421/", "label": "Connect to a sync server", "activation": "click", "kind": "local", "intent": "interact", "risk": "safe", "fingerprint": { - "selector": "#react-aria2793412727-_r_4_", + "selector": "#react-aria3130426097-_r_4_", "tag": "button", "ordinal": 2, "role": "button", "accessibleName": "Connect to a sync server", "text": "Connect to a sync server", - "id": "react-aria2793412727-_r_4_", + "id": "react-aria3130426097-_r_4_", "type": "button", "candidates": [ { @@ -1442,7 +1444,7 @@ { "strategy": "id", "weight": 80, - "selector": "#react-aria2793412727-_r_4_" + "selector": "#react-aria3130426097-_r_4_" }, { "strategy": "text", @@ -1453,16 +1455,16 @@ { "strategy": "css", "weight": 35, - "selector": "#react-aria2793412727-_r_4_" + "selector": "#react-aria3130426097-_r_4_" } ] }, "fields": [] }, "evidence": { - "startedAt": "2026-07-23T14:53:47.512Z", - "durationMs": 6711, - "canary": "RD_TEST_7D6A1C", + "startedAt": "2026-07-26T08:13:03.210Z", + "durationMs": 6918, + "canary": "RD_TEST_EF3A31", "network": [], "console": [], "pageErrors": [], @@ -1480,7 +1482,7 @@ "weight": 92, "matchCount": 1, "visibleCount": 1, - "elapsedMs": 7 + "elapsedMs": 9 } ], "chosenStrategy": "role", @@ -1488,8 +1490,8 @@ "retryCount": 0 }, "before": { - "at": 5568, - "url": "http://127.0.0.1:37200/", + "at": 5668, + "url": "http://127.0.0.1:37421/", "title": "Actual", "domHash": "0e5db8d3d3693839", "canaryPresent": false, @@ -1563,8 +1565,8 @@ } }, "beforeAction": { - "at": 5590, - "url": "http://127.0.0.1:37200/", + "at": 5693, + "url": "http://127.0.0.1:37421/", "title": "Actual", "domHash": "0e5db8d3d3693839", "canaryPresent": false, @@ -1639,8 +1641,8 @@ }, "networkSettled": true, "after": { - "at": 6705, - "url": "http://127.0.0.1:37200/config-server", + "at": 6913, + "url": "http://127.0.0.1:37421/config-server", "title": "Actual", "domHash": "97f712565aa26638", "canaryPresent": false, @@ -1714,6 +1716,7 @@ ] } }, + "trace": "traces/4d95f1dd909c.zip", "snapshotIndex": "snapshots/RD-003.index.json" }, "verdict": "VERIFIED", @@ -1724,21 +1727,21 @@ { "id": "RD-004", "action": { - "id": "0b8634510f9e", - "pageUrl": "http://127.0.0.1:37200/", + "id": "96777c5d3995", + "pageUrl": "http://127.0.0.1:37421/", "label": "Import my budget", "activation": "click", "kind": "local", "intent": "interact", "risk": "safe", "fingerprint": { - "selector": "#react-aria2793412727-_r_6_", + "selector": "#react-aria3130426097-_r_6_", "tag": "button", "ordinal": 3, "role": "button", "accessibleName": "Import my budget", "text": "Import my budget", - "id": "react-aria2793412727-_r_6_", + "id": "react-aria3130426097-_r_6_", "type": "button", "candidates": [ { @@ -1758,7 +1761,7 @@ { "strategy": "id", "weight": 80, - "selector": "#react-aria2793412727-_r_6_" + "selector": "#react-aria3130426097-_r_6_" }, { "strategy": "text", @@ -1769,16 +1772,16 @@ { "strategy": "css", "weight": 35, - "selector": "#react-aria2793412727-_r_6_" + "selector": "#react-aria3130426097-_r_6_" } ] }, "fields": [] }, "evidence": { - "startedAt": "2026-07-23T14:53:54.764Z", - "durationMs": 6696, - "canary": "RD_TEST_7704BD", + "startedAt": "2026-07-26T08:13:10.657Z", + "durationMs": 6748, + "canary": "RD_TEST_1C6B10", "network": [], "console": [], "pageErrors": [], @@ -1796,7 +1799,7 @@ "weight": 92, "matchCount": 1, "visibleCount": 1, - "elapsedMs": 7 + "elapsedMs": 8 } ], "chosenStrategy": "role", @@ -1804,8 +1807,8 @@ "retryCount": 0 }, "before": { - "at": 5536, - "url": "http://127.0.0.1:37200/", + "at": 5468, + "url": "http://127.0.0.1:37421/", "title": "Actual", "domHash": "0e5db8d3d3693839", "canaryPresent": false, @@ -1879,8 +1882,8 @@ } }, "beforeAction": { - "at": 5557, - "url": "http://127.0.0.1:37200/", + "at": 5489, + "url": "http://127.0.0.1:37421/", "title": "Actual", "domHash": "0e5db8d3d3693839", "canaryPresent": false, @@ -1955,8 +1958,8 @@ }, "networkSettled": true, "after": { - "at": 6690, - "url": "http://127.0.0.1:37200/", + "at": 6743, + "url": "http://127.0.0.1:37421/", "title": "Actual", "domHash": "3948e6fc1b26ba3f", "canaryPresent": false, @@ -2064,6 +2067,7 @@ ] } }, + "trace": "traces/96777c5d3995.zip", "snapshotIndex": "snapshots/RD-004.index.json" }, "verdict": "VERIFIED", @@ -2074,82 +2078,8 @@ { "id": "RD-005", "action": { - "id": "a2df12f0beb2", - "pageUrl": "http://127.0.0.1:37200/", - "label": "guided tour", - "activation": "click", - "kind": "navigation", - "intent": "navigate", - "risk": "safe", - "fingerprint": { - "selector": "body > div:nth-of-type(1) > div > div > div > div:nth-of-type(4) > div:nth-of-type(1) > div:nth-of-type(4) > div > a", - "tag": "a", - "ordinal": 4, - "role": "link", - "accessibleName": "guided tour", - "text": "guided tour", - "href": "https://actualbudget.org/docs/tour/", - "target": "_blank", - "candidates": [ - { - "strategy": "role", - "weight": 92, - "role": "link", - "name": "guided tour", - "exact": true - }, - { - "strategy": "role", - "weight": 82, - "role": "link", - "name": "guided tour", - "exact": false - }, - { - "strategy": "href", - "weight": 72, - "value": "https://actualbudget.org/docs/tour/" - }, - { - "strategy": "text", - "weight": 60, - "value": "guided tour", - "exact": true - }, - { - "strategy": "css", - "weight": 35, - "selector": "body > div:nth-of-type(1) > div > div > div > div:nth-of-type(4) > div:nth-of-type(1) > div:nth-of-type(4) > div > a" - } - ] - }, - "fields": [] - }, - "verdict": "SKIPPED", - "evidenceLevel": 0, - "reason": "Cross-origin navigation blocked by the default safety policy. Use --allow-external explicitly.", - "skippedReason": "Cross-origin navigation blocked by the default safety policy. Use --allow-external explicitly.", - "detectorMatches": [], - "evidence": { - "startedAt": "", - "durationMs": 0, - "canary": "", - "network": [], - "console": [], - "pageErrors": [], - "uiClaims": [], - "filledFields": [], - "dialogs": [], - "downloads": [], - "popupUrls": [], - "snapshotIndex": "snapshots/RD-005.index.json" - } - }, - { - "id": "RD-006", - "action": { - "id": "dc63956e54d7", - "pageUrl": "http://127.0.0.1:37200/", + "id": "95992a8ec53a", + "pageUrl": "http://127.0.0.1:37421/", "label": "Set up sync", "activation": "click", "kind": "navigation", @@ -2162,7 +2092,7 @@ "role": "link", "accessibleName": "Set up sync", "text": "Set up sync", - "href": "http://127.0.0.1:37200/config-server", + "href": "http://127.0.0.1:37421/config-server", "candidates": [ { "strategy": "role", @@ -2181,7 +2111,7 @@ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37200/config-server" + "value": "http://127.0.0.1:37421/config-server" }, { "strategy": "text", @@ -2199,9 +2129,9 @@ "fields": [] }, "evidence": { - "startedAt": "2026-07-23T14:54:01.947Z", - "durationMs": 6663, - "canary": "RD_TEST_26E0B4", + "startedAt": "2026-07-26T08:13:17.913Z", + "durationMs": 6894, + "canary": "RD_TEST_F94FC8", "network": [], "console": [], "pageErrors": [], @@ -2219,7 +2149,7 @@ "weight": 92, "matchCount": 1, "visibleCount": 1, - "elapsedMs": 5 + "elapsedMs": 7 } ], "chosenStrategy": "role", @@ -2227,8 +2157,8 @@ "retryCount": 0 }, "before": { - "at": 5554, - "url": "http://127.0.0.1:37200/", + "at": 5660, + "url": "http://127.0.0.1:37421/", "title": "Actual", "domHash": "0e5db8d3d3693839", "canaryPresent": false, @@ -2302,8 +2232,8 @@ } }, "beforeAction": { - "at": 5564, - "url": "http://127.0.0.1:37200/", + "at": 5673, + "url": "http://127.0.0.1:37421/", "title": "Actual", "domHash": "0e5db8d3d3693839", "canaryPresent": false, @@ -2378,8 +2308,8 @@ }, "networkSettled": true, "after": { - "at": 6659, - "url": "http://127.0.0.1:37200/config-server", + "at": 6888, + "url": "http://127.0.0.1:37421/config-server", "title": "Actual", "domHash": "97f712565aa26638", "canaryPresent": false, @@ -2453,7 +2383,8 @@ ] } }, - "snapshotIndex": "snapshots/RD-006.index.json" + "trace": "traces/95992a8ec53a.zip", + "snapshotIndex": "snapshots/RD-005.index.json" }, "verdict": "VERIFIED", "evidenceLevel": 1, @@ -2461,23 +2392,23 @@ "detectorMatches": [] }, { - "id": "RD-007", + "id": "RD-006", "action": { - "id": "211dd240da47", - "pageUrl": "http://127.0.0.1:37200/config-server", + "id": "93054cadc685", + "pageUrl": "http://127.0.0.1:37421/config-server", "label": "Back", "activation": "click", "kind": "navigation", "intent": "navigate", "risk": "safe", "fingerprint": { - "selector": "#react-aria6445893585-_r_0_", + "selector": "#react-aria2682847574-_r_0_", "tag": "button", "ordinal": 0, "role": "button", "accessibleName": "Back", "text": "Back", - "id": "react-aria6445893585-_r_0_", + "id": "react-aria2682847574-_r_0_", "type": "button", "candidates": [ { @@ -2497,7 +2428,7 @@ { "strategy": "id", "weight": 80, - "selector": "#react-aria6445893585-_r_0_" + "selector": "#react-aria2682847574-_r_0_" }, { "strategy": "text", @@ -2508,16 +2439,16 @@ { "strategy": "css", "weight": 35, - "selector": "#react-aria6445893585-_r_0_" + "selector": "#react-aria2682847574-_r_0_" } ] }, "fields": [] }, "evidence": { - "startedAt": "2026-07-23T14:54:09.056Z", - "durationMs": 5984, - "canary": "RD_TEST_26BEE3", + "startedAt": "2026-07-26T08:13:25.337Z", + "durationMs": 6196, + "canary": "RD_TEST_CA5396", "network": [], "console": [], "pageErrors": [], @@ -2536,21 +2467,21 @@ "weight": 92, "matchCount": 0, "visibleCount": 0, - "elapsedMs": 4 + "elapsedMs": 3 }, { "strategy": "role", "weight": 82, "matchCount": 0, "visibleCount": 0, - "elapsedMs": 2 + "elapsedMs": 3 }, { "strategy": "id", "weight": 80, "matchCount": 0, "visibleCount": 0, - "elapsedMs": 3 + "elapsedMs": 2 }, { "strategy": "text", @@ -2564,7 +2495,7 @@ "weight": 35, "matchCount": 0, "visibleCount": 0, - "elapsedMs": 2 + "elapsedMs": 3 }, { "strategy": "role", @@ -2578,35 +2509,35 @@ "weight": 82, "matchCount": 0, "visibleCount": 0, - "elapsedMs": 4 + "elapsedMs": 2 }, { "strategy": "id", "weight": 80, "matchCount": 0, "visibleCount": 0, - "elapsedMs": 3 + "elapsedMs": 2 }, { "strategy": "text", "weight": 60, "matchCount": 0, "visibleCount": 0, - "elapsedMs": 3 + "elapsedMs": 2 }, { "strategy": "css", "weight": 35, "matchCount": 0, "visibleCount": 0, - "elapsedMs": 3 + "elapsedMs": 2 }, { "strategy": "role", "weight": 92, "matchCount": 0, "visibleCount": 0, - "elapsedMs": 4 + "elapsedMs": 3 }, { "strategy": "role", @@ -2620,29 +2551,29 @@ "weight": 80, "matchCount": 0, "visibleCount": 0, - "elapsedMs": 3 + "elapsedMs": 2 }, { "strategy": "text", "weight": 60, "matchCount": 0, "visibleCount": 0, - "elapsedMs": 3 + "elapsedMs": 2 }, { "strategy": "css", "weight": 35, "matchCount": 0, "visibleCount": 0, - "elapsedMs": 2 + "elapsedMs": 3 } ], "retryCount": 2 }, "executionError": "No visible element matched the semantic fingerprint. The action was not executed.", - "screenshot": "screenshots/211dd240da47-error.png", - "trace": "traces/211dd240da47.zip", - "snapshotIndex": "snapshots/RD-007.index.json" + "screenshot": "screenshots/93054cadc685-error.png", + "trace": "traces/93054cadc685.zip", + "snapshotIndex": "snapshots/RD-006.index.json" }, "verdict": "UNCERTAIN", "evidenceLevel": 0, @@ -2650,180 +2581,23 @@ "detectorMatches": [] }, { - "id": "RD-008", - "action": { - "id": "d51b0ab96a20", - "pageUrl": "http://127.0.0.1:37200/config-server", - "label": "learn how to set one up", - "activation": "click", - "kind": "navigation", - "intent": "navigate", - "risk": "safe", - "fingerprint": { - "selector": "body > div:nth-of-type(1) > div > div > div > div:nth-of-type(4) > div:nth-of-type(1) > span:nth-of-type(2) > a", - "tag": "a", - "ordinal": 1, - "role": "link", - "accessibleName": "learn how to set one up", - "text": "learn how to set one up", - "href": "https://actualbudget.org/docs/install/", - "target": "_blank", - "candidates": [ - { - "strategy": "role", - "weight": 92, - "role": "link", - "name": "learn how to set one up", - "exact": true - }, - { - "strategy": "role", - "weight": 82, - "role": "link", - "name": "learn how to set one up", - "exact": false - }, - { - "strategy": "href", - "weight": 72, - "value": "https://actualbudget.org/docs/install/" - }, - { - "strategy": "text", - "weight": 60, - "value": "learn how to set one up", - "exact": true - }, - { - "strategy": "css", - "weight": 35, - "selector": "body > div:nth-of-type(1) > div > div > div > div:nth-of-type(4) > div:nth-of-type(1) > span:nth-of-type(2) > a" - } - ] - }, - "fields": [] - }, - "verdict": "SKIPPED", - "evidenceLevel": 0, - "reason": "Cross-origin navigation blocked by the default safety policy. Use --allow-external explicitly.", - "skippedReason": "Cross-origin navigation blocked by the default safety policy. Use --allow-external explicitly.", - "detectorMatches": [], - "evidence": { - "startedAt": "", - "durationMs": 0, - "canary": "", - "network": [], - "console": [], - "pageErrors": [], - "uiClaims": [], - "filledFields": [], - "dialogs": [], - "downloads": [], - "popupUrls": [], - "snapshotIndex": "snapshots/RD-008.index.json" - } - }, - { - "id": "RD-009", - "action": { - "id": "b4b1e39438ef", - "pageUrl": "http://127.0.0.1:37200/config-server", - "label": "Connect", - "activation": "click", - "kind": "external", - "intent": "external", - "risk": "external", - "fingerprint": { - "selector": "#react-aria6445893585-_r_2_", - "tag": "button", - "ordinal": 2, - "role": "button", - "accessibleName": "Connect", - "text": "Connect", - "id": "react-aria6445893585-_r_2_", - "type": "button", - "candidates": [ - { - "strategy": "role", - "weight": 92, - "role": "button", - "name": "Connect", - "exact": true - }, - { - "strategy": "role", - "weight": 82, - "role": "button", - "name": "Connect", - "exact": false - }, - { - "strategy": "id", - "weight": 80, - "selector": "#react-aria6445893585-_r_2_" - }, - { - "strategy": "text", - "weight": 60, - "value": "Connect", - "exact": true - }, - { - "strategy": "css", - "weight": 35, - "selector": "#react-aria6445893585-_r_2_" - } - ] - }, - "fields": [ - { - "selector": "body > div:nth-of-type(1) > div > div > div > div:nth-of-type(4) > div:nth-of-type(1) > div:nth-of-type(1) > input", - "tag": "input", - "type": "text", - "required": false, - "disabled": false, - "placeholder": "https://example.com" - } - ] - }, - "verdict": "SKIPPED", - "evidenceLevel": 0, - "reason": "External-effect action blocked by the default safety policy.", - "skippedReason": "External-effect action blocked by the default safety policy.", - "detectorMatches": [], - "evidence": { - "startedAt": "", - "durationMs": 0, - "canary": "", - "network": [], - "console": [], - "pageErrors": [], - "uiClaims": [], - "filledFields": [], - "dialogs": [], - "downloads": [], - "popupUrls": [], - "snapshotIndex": "snapshots/RD-009.index.json" - } - }, - { - "id": "RD-010", + "id": "RD-007", "action": { - "id": "11ab18b3cef0", - "pageUrl": "http://127.0.0.1:37200/config-server", + "id": "f6a25772e322", + "pageUrl": "http://127.0.0.1:37421/config-server", "label": "Use the current domain", "activation": "click", "kind": "local", "intent": "interact", "risk": "safe", "fingerprint": { - "selector": "#react-aria6445893585-_r_4_", + "selector": "#react-aria2682847574-_r_4_", "tag": "button", "ordinal": 3, "role": "button", "accessibleName": "Use the current domain", "text": "Use the current domain", - "id": "react-aria6445893585-_r_4_", + "id": "react-aria2682847574-_r_4_", "type": "button", "candidates": [ { @@ -2843,7 +2617,7 @@ { "strategy": "id", "weight": 80, - "selector": "#react-aria6445893585-_r_4_" + "selector": "#react-aria2682847574-_r_4_" }, { "strategy": "text", @@ -2854,16 +2628,16 @@ { "strategy": "css", "weight": 35, - "selector": "#react-aria6445893585-_r_4_" + "selector": "#react-aria2682847574-_r_4_" } ] }, "fields": [] }, "evidence": { - "startedAt": "2026-07-23T14:54:15.486Z", - "durationMs": 6517, - "canary": "RD_TEST_0B850F", + "startedAt": "2026-07-26T08:13:31.980Z", + "durationMs": 6667, + "canary": "RD_TEST_C8AEAC", "network": [], "console": [], "pageErrors": [], @@ -2881,7 +2655,7 @@ "weight": 92, "matchCount": 1, "visibleCount": 1, - "elapsedMs": 8 + "elapsedMs": 7 } ], "chosenStrategy": "role", @@ -2889,8 +2663,8 @@ "retryCount": 0 }, "before": { - "at": 5370, - "url": "http://127.0.0.1:37200/config-server", + "at": 5417, + "url": "http://127.0.0.1:37421/config-server", "title": "Actual", "domHash": "0152be5d7ccd41ff", "canaryPresent": false, @@ -2965,8 +2739,8 @@ } }, "beforeAction": { - "at": 5392, - "url": "http://127.0.0.1:37200/config-server", + "at": 5439, + "url": "http://127.0.0.1:37421/config-server", "title": "Actual", "domHash": "0152be5d7ccd41ff", "canaryPresent": false, @@ -3042,10 +2816,10 @@ }, "networkSettled": true, "after": { - "at": 6512, - "url": "http://127.0.0.1:37200/config-server", + "at": 6662, + "url": "http://127.0.0.1:37421/config-server", "title": "Actual", - "domHash": "22ae81c49890122c", + "domHash": "eb89451058d6b510", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -3064,7 +2838,7 @@ { "tag": "input", "type": "text", - "valueHash": "dc80b31676b9e8e0", + "valueHash": "b16024101adc0b0b", "checked": false, "disabled": false, "visible": true @@ -3117,19 +2891,251 @@ ] } }, - "snapshotIndex": "snapshots/RD-010.index.json" + "trace": "traces/f6a25772e322.zip", + "snapshotIndex": "snapshots/RD-007.index.json" }, "verdict": "VERIFIED", "evidenceLevel": 1, "reason": "The action produced an observable effect.", "detectorMatches": [] + }, + { + "id": "RD-008", + "action": { + "id": "dd2fbcc128b2", + "pageUrl": "http://127.0.0.1:37421/", + "label": "guided tour", + "activation": "click", + "kind": "navigation", + "intent": "navigate", + "risk": "safe", + "fingerprint": { + "selector": "body > div:nth-of-type(1) > div > div > div > div:nth-of-type(4) > div:nth-of-type(1) > div:nth-of-type(4) > div > a", + "tag": "a", + "ordinal": 4, + "role": "link", + "accessibleName": "guided tour", + "text": "guided tour", + "href": "https://actualbudget.org/docs/tour/", + "target": "_blank", + "candidates": [ + { + "strategy": "role", + "weight": 92, + "role": "link", + "name": "guided tour", + "exact": true + }, + { + "strategy": "role", + "weight": 82, + "role": "link", + "name": "guided tour", + "exact": false + }, + { + "strategy": "href", + "weight": 72, + "value": "https://actualbudget.org/docs/tour/" + }, + { + "strategy": "text", + "weight": 60, + "value": "guided tour", + "exact": true + }, + { + "strategy": "css", + "weight": 35, + "selector": "body > div:nth-of-type(1) > div > div > div > div:nth-of-type(4) > div:nth-of-type(1) > div:nth-of-type(4) > div > a" + } + ] + }, + "fields": [] + }, + "verdict": "SKIPPED", + "evidenceLevel": 0, + "reason": "Cross-origin navigation blocked by the default safety policy. Use --allow-external explicitly.", + "skippedReason": "Cross-origin navigation blocked by the default safety policy. Use --allow-external explicitly.", + "detectorMatches": [], + "evidence": { + "startedAt": "", + "durationMs": 0, + "canary": "", + "network": [], + "console": [], + "pageErrors": [], + "uiClaims": [], + "filledFields": [], + "dialogs": [], + "downloads": [], + "popupUrls": [], + "snapshotIndex": "snapshots/RD-008.index.json" + } + }, + { + "id": "RD-009", + "action": { + "id": "b718b6124fb5", + "pageUrl": "http://127.0.0.1:37421/config-server", + "label": "learn how to set one up", + "activation": "click", + "kind": "navigation", + "intent": "navigate", + "risk": "safe", + "fingerprint": { + "selector": "body > div:nth-of-type(1) > div > div > div > div:nth-of-type(4) > div:nth-of-type(1) > span:nth-of-type(2) > a", + "tag": "a", + "ordinal": 1, + "role": "link", + "accessibleName": "learn how to set one up", + "text": "learn how to set one up", + "href": "https://actualbudget.org/docs/install/", + "target": "_blank", + "candidates": [ + { + "strategy": "role", + "weight": 92, + "role": "link", + "name": "learn how to set one up", + "exact": true + }, + { + "strategy": "role", + "weight": 82, + "role": "link", + "name": "learn how to set one up", + "exact": false + }, + { + "strategy": "href", + "weight": 72, + "value": "https://actualbudget.org/docs/install/" + }, + { + "strategy": "text", + "weight": 60, + "value": "learn how to set one up", + "exact": true + }, + { + "strategy": "css", + "weight": 35, + "selector": "body > div:nth-of-type(1) > div > div > div > div:nth-of-type(4) > div:nth-of-type(1) > span:nth-of-type(2) > a" + } + ] + }, + "fields": [] + }, + "verdict": "SKIPPED", + "evidenceLevel": 0, + "reason": "Cross-origin navigation blocked by the default safety policy. Use --allow-external explicitly.", + "skippedReason": "Cross-origin navigation blocked by the default safety policy. Use --allow-external explicitly.", + "detectorMatches": [], + "evidence": { + "startedAt": "", + "durationMs": 0, + "canary": "", + "network": [], + "console": [], + "pageErrors": [], + "uiClaims": [], + "filledFields": [], + "dialogs": [], + "downloads": [], + "popupUrls": [], + "snapshotIndex": "snapshots/RD-009.index.json" + } + }, + { + "id": "RD-010", + "action": { + "id": "286b2b81440c", + "pageUrl": "http://127.0.0.1:37421/config-server", + "label": "Connect", + "activation": "click", + "kind": "external", + "intent": "external", + "risk": "external", + "fingerprint": { + "selector": "#react-aria2682847574-_r_2_", + "tag": "button", + "ordinal": 2, + "role": "button", + "accessibleName": "Connect", + "text": "Connect", + "id": "react-aria2682847574-_r_2_", + "type": "button", + "candidates": [ + { + "strategy": "role", + "weight": 92, + "role": "button", + "name": "Connect", + "exact": true + }, + { + "strategy": "role", + "weight": 82, + "role": "button", + "name": "Connect", + "exact": false + }, + { + "strategy": "id", + "weight": 80, + "selector": "#react-aria2682847574-_r_2_" + }, + { + "strategy": "text", + "weight": 60, + "value": "Connect", + "exact": true + }, + { + "strategy": "css", + "weight": 35, + "selector": "#react-aria2682847574-_r_2_" + } + ] + }, + "fields": [ + { + "selector": "body > div:nth-of-type(1) > div > div > div > div:nth-of-type(4) > div:nth-of-type(1) > div:nth-of-type(1) > input", + "tag": "input", + "type": "text", + "required": false, + "disabled": false, + "placeholder": "https://example.com" + } + ] + }, + "verdict": "SKIPPED", + "evidenceLevel": 0, + "reason": "External-effect action blocked by the default safety policy.", + "skippedReason": "External-effect action blocked by the default safety policy.", + "detectorMatches": [], + "evidence": { + "startedAt": "", + "durationMs": 0, + "canary": "", + "network": [], + "console": [], + "pageErrors": [], + "uiClaims": [], + "filledFields": [], + "dialogs": [], + "downloads": [], + "popupUrls": [], + "snapshotIndex": "snapshots/RD-010.index.json" + } } ], "environment": { "status": "VALID", - "checkedAt": "2026-07-23T14:53:25.131Z", - "durationMs": 2912, - "targetUrl": "http://127.0.0.1:37200/", + "checkedAt": "2026-07-26T08:12:39.873Z", + "durationMs": 3181, + "targetUrl": "http://127.0.0.1:37421/", "mainDocument": { "status": 200, "contentType": "text/html" @@ -3153,6 +3159,36 @@ }, "completeness": { "truncated": false, - "reasons": [] + "reasons": [], + "selection": { + "strategy": "coverage-balanced-v1", + "eligibleActions": 10, + "selectedActions": 10, + "omittedActions": 0, + "eligiblePages": 2, + "selectedPages": 2, + "eligibleKinds": [ + "external", + "local", + "navigation" + ], + "selectedKinds": [ + "external", + "local", + "navigation" + ], + "eligibleIntents": [ + "interact", + "navigate", + "external" + ], + "selectedIntents": [ + "interact", + "navigate", + "external" + ], + "deniedEligibleActions": 3, + "deniedSelectedActions": 3 + } } } diff --git a/release/evidence/raw/ai-agent-cycle.scan.json b/release/evidence/raw/ai-agent-cycle.scan.json index 132e1be..6fd8ae9 100644 --- a/release/evidence/raw/ai-agent-cycle.scan.json +++ b/release/evidence/raw/ai-agent-cycle.scan.json @@ -1,22 +1,22 @@ { "schemaVersion": "1.0", - "scanId": "20260723T145431Z-7f50", + "scanId": "20260726T081239Z-a6ab", "targetUrl": "http://127.0.0.1:37300/", - "startedAt": "2026-07-23T14:54:31.865Z", - "finishedAt": "2026-07-23T14:54:47.024Z", + "startedAt": "2026-07-26T08:12:39.130Z", + "finishedAt": "2026-07-26T08:12:55.346Z", "options": { - "maxPages": 10, - "maxActions": 40, - "timeoutMs": 15000, + "maxPages": 2, + "maxActions": 20, + "timeoutMs": 10000, "settleMs": 800, - "maxDurationMs": 300000, + "maxDurationMs": 120000, "maxRetries": 2, "allowDestructive": true, "allowExternal": true, "mutationAllowed": true, "deep": true, - "trace": false, - "traceOnFailure": true, + "trace": true, + "traceOnFailure": false, "video": false, "environmentTimeoutMs": 10000, "acceptEnvironmentRisk": false, @@ -184,52 +184,52 @@ "fields": [] }, { - "id": "f187769f1589", + "id": "aab0fa0876cf", "pageUrl": "http://127.0.0.1:37300/", - "label": "Decrement", + "label": "Reset counter", "activation": "click", "kind": "local", "intent": "interact", "risk": "safe", "fingerprint": { - "selector": "#decrement", + "selector": "#reset", "tag": "button", "ordinal": 3, "role": "button", - "accessibleName": "Decrement", - "text": "Decrement", - "id": "decrement", + "accessibleName": "Reset counter", + "text": "Reset counter", + "id": "reset", "type": "button", "candidates": [ { "strategy": "role", "weight": 92, "role": "button", - "name": "Decrement", + "name": "Reset counter", "exact": true }, { "strategy": "role", "weight": 82, "role": "button", - "name": "Decrement", + "name": "Reset counter", "exact": false }, { "strategy": "id", "weight": 80, - "selector": "#decrement" + "selector": "#reset" }, { "strategy": "text", "weight": 60, - "value": "Decrement", + "value": "Reset counter", "exact": true }, { "strategy": "css", "weight": 35, - "selector": "#decrement" + "selector": "#reset" } ] }, @@ -391,9 +391,9 @@ "fields": [] }, "evidence": { - "startedAt": "2026-07-23T14:54:33.911Z", - "durationMs": 2097, - "canary": "RD_TEST_50FB85", + "startedAt": "2026-07-26T08:12:41.406Z", + "durationMs": 2215, + "canary": "RD_TEST_5C5E36", "network": [], "console": [], "pageErrors": [], @@ -411,7 +411,7 @@ "weight": 92, "matchCount": 1, "visibleCount": 1, - "elapsedMs": 6 + "elapsedMs": 7 } ], "chosenStrategy": "role", @@ -419,10 +419,10 @@ "retryCount": 0 }, "before": { - "at": 1099, + "at": 1229, "url": "http://127.0.0.1:37300/", "title": "Pocket Ledger", - "domHash": "f9a40a92fafba7cb", + "domHash": "beed6a6b4f788564", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -434,15 +434,15 @@ "accessDenied": false }, "semanticDom": { - "textHash": "446d049d8cdd0586", - "visualHash": "46857e11c9fc209f", - "text": "Skip to content POCKET LEDGER A tiny record, kept reliably. Update the count, note a receipt, and export the current snapshot. View as Member Admin CURRENT TOTAL Counter 0 Increment Decrement RECEIPT NOTE Store safe file details Choose a plain-text receipt. Its contents are checked and discarded; only filename, size, and media type are retained. Text receipt Store receipt details Stored filename None yet PORTABLE SNAPSHOT Export current state Download a CSV containing the current counter and receipt metadata. Download CSV", + "textHash": "911221dd55342bda", + "visualHash": "1e959c21ea94979b", + "text": "Skip to content POCKET LEDGER A tiny record, kept reliably. Update the count, note a receipt, and export the current snapshot. View as Member Admin CURRENT TOTAL Counter 1 Increment Decrement Decrement is planned, but not available yet. Admin controls Reset only the counter; receipt metadata is kept. Reset counter RECEIPT NOTE Store safe file details Choose a plain-text receipt. Its contents are checked and discarded; only filename, size, and media type are retained. Text receipt Store receipt details Stored filename RD_TEST_7B19BC_1.txt PORTABLE SNAPSHOT Export current state Download a CSV containing the current counter and receipt metadata. Download CSV", "controls": [ { "tag": "select", "type": "select-one", "name": "role", - "valueHash": "e31ab643c44f7a0e", + "valueHash": "8c6976e5b5410415", "disabled": false, "visible": true }, @@ -457,7 +457,7 @@ "tag": "button", "type": "button", "valueHash": "e3b0c44298fc1c14", - "disabled": false, + "disabled": true, "visible": true }, { @@ -465,7 +465,7 @@ "type": "button", "valueHash": "e3b0c44298fc1c14", "disabled": false, - "visible": false + "visible": true }, { "tag": "input", @@ -486,9 +486,15 @@ ] }, "busyControls": 0, - "disabledControls": 0, + "disabledControls": 1, "storage": { - "local": [], + "local": [ + { + "key": "pocket-ledger-role", + "valueHash": "8c6976e5b5410415", + "containsCanary": false + } + ], "session": [], "cookieNames": [], "cookies": [], @@ -496,10 +502,10 @@ } }, "beforeAction": { - "at": 1110, + "at": 1242, "url": "http://127.0.0.1:37300/", "title": "Pocket Ledger", - "domHash": "f9a40a92fafba7cb", + "domHash": "beed6a6b4f788564", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -511,15 +517,15 @@ "accessDenied": false }, "semanticDom": { - "textHash": "446d049d8cdd0586", - "visualHash": "46857e11c9fc209f", - "text": "Skip to content POCKET LEDGER A tiny record, kept reliably. Update the count, note a receipt, and export the current snapshot. View as Member Admin CURRENT TOTAL Counter 0 Increment Decrement RECEIPT NOTE Store safe file details Choose a plain-text receipt. Its contents are checked and discarded; only filename, size, and media type are retained. Text receipt Store receipt details Stored filename None yet PORTABLE SNAPSHOT Export current state Download a CSV containing the current counter and receipt metadata. Download CSV", + "textHash": "911221dd55342bda", + "visualHash": "1e959c21ea94979b", + "text": "Skip to content POCKET LEDGER A tiny record, kept reliably. Update the count, note a receipt, and export the current snapshot. View as Member Admin CURRENT TOTAL Counter 1 Increment Decrement Decrement is planned, but not available yet. Admin controls Reset only the counter; receipt metadata is kept. Reset counter RECEIPT NOTE Store safe file details Choose a plain-text receipt. Its contents are checked and discarded; only filename, size, and media type are retained. Text receipt Store receipt details Stored filename RD_TEST_7B19BC_1.txt PORTABLE SNAPSHOT Export current state Download a CSV containing the current counter and receipt metadata. Download CSV", "controls": [ { "tag": "select", "type": "select-one", "name": "role", - "valueHash": "e31ab643c44f7a0e", + "valueHash": "8c6976e5b5410415", "disabled": false, "visible": true }, @@ -534,7 +540,7 @@ "tag": "button", "type": "button", "valueHash": "e3b0c44298fc1c14", - "disabled": false, + "disabled": true, "visible": true }, { @@ -542,7 +548,7 @@ "type": "button", "valueHash": "e3b0c44298fc1c14", "disabled": false, - "visible": false + "visible": true }, { "tag": "input", @@ -563,9 +569,15 @@ ] }, "busyControls": 0, - "disabledControls": 0, + "disabledControls": 1, "storage": { - "local": [], + "local": [ + { + "key": "pocket-ledger-role", + "valueHash": "8c6976e5b5410415", + "containsCanary": false + } + ], "session": [], "cookieNames": [], "cookies": [], @@ -575,10 +587,10 @@ "networkSettled": true, "targetBusyAfter": false, "after": { - "at": 2092, + "at": 2211, "url": "http://127.0.0.1:37300/#main", "title": "Pocket Ledger", - "domHash": "f9a40a92fafba7cb", + "domHash": "beed6a6b4f788564", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -590,15 +602,15 @@ "accessDenied": false }, "semanticDom": { - "textHash": "446d049d8cdd0586", - "visualHash": "46857e11c9fc209f", - "text": "Skip to content POCKET LEDGER A tiny record, kept reliably. Update the count, note a receipt, and export the current snapshot. View as Member Admin CURRENT TOTAL Counter 0 Increment Decrement RECEIPT NOTE Store safe file details Choose a plain-text receipt. Its contents are checked and discarded; only filename, size, and media type are retained. Text receipt Store receipt details Stored filename None yet PORTABLE SNAPSHOT Export current state Download a CSV containing the current counter and receipt metadata. Download CSV", + "textHash": "911221dd55342bda", + "visualHash": "1e959c21ea94979b", + "text": "Skip to content POCKET LEDGER A tiny record, kept reliably. Update the count, note a receipt, and export the current snapshot. View as Member Admin CURRENT TOTAL Counter 1 Increment Decrement Decrement is planned, but not available yet. Admin controls Reset only the counter; receipt metadata is kept. Reset counter RECEIPT NOTE Store safe file details Choose a plain-text receipt. Its contents are checked and discarded; only filename, size, and media type are retained. Text receipt Store receipt details Stored filename RD_TEST_7B19BC_1.txt PORTABLE SNAPSHOT Export current state Download a CSV containing the current counter and receipt metadata. Download CSV", "controls": [ { "tag": "select", "type": "select-one", "name": "role", - "valueHash": "e31ab643c44f7a0e", + "valueHash": "8c6976e5b5410415", "disabled": false, "visible": true }, @@ -613,7 +625,7 @@ "tag": "button", "type": "button", "valueHash": "e3b0c44298fc1c14", - "disabled": false, + "disabled": true, "visible": true }, { @@ -621,7 +633,7 @@ "type": "button", "valueHash": "e3b0c44298fc1c14", "disabled": false, - "visible": false + "visible": true }, { "tag": "input", @@ -642,15 +654,22 @@ ] }, "busyControls": 0, - "disabledControls": 0, + "disabledControls": 1, "storage": { - "local": [], + "local": [ + { + "key": "pocket-ledger-role", + "valueHash": "8c6976e5b5410415", + "containsCanary": false + } + ], "session": [], "cookieNames": [], "cookies": [], "indexedDb": [] } }, + "trace": "traces/5c4996e77333.zip", "snapshotIndex": "snapshots/RD-001.index.json" }, "verdict": "VERIFIED", @@ -697,9 +716,9 @@ "fields": [] }, "evidence": { - "startedAt": "2026-07-23T14:54:36.038Z", - "durationMs": 2071, - "canary": "RD_TEST_1BC93C", + "startedAt": "2026-07-26T08:12:43.652Z", + "durationMs": 2150, + "canary": "RD_TEST_188602", "network": [], "console": [], "pageErrors": [], @@ -725,10 +744,10 @@ "retryCount": 0 }, "before": { - "at": 1095, + "at": 1185, "url": "http://127.0.0.1:37300/", "title": "Pocket Ledger", - "domHash": "f9a40a92fafba7cb", + "domHash": "beed6a6b4f788564", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -740,15 +759,15 @@ "accessDenied": false }, "semanticDom": { - "textHash": "446d049d8cdd0586", - "visualHash": "46857e11c9fc209f", - "text": "Skip to content POCKET LEDGER A tiny record, kept reliably. Update the count, note a receipt, and export the current snapshot. View as Member Admin CURRENT TOTAL Counter 0 Increment Decrement RECEIPT NOTE Store safe file details Choose a plain-text receipt. Its contents are checked and discarded; only filename, size, and media type are retained. Text receipt Store receipt details Stored filename None yet PORTABLE SNAPSHOT Export current state Download a CSV containing the current counter and receipt metadata. Download CSV", + "textHash": "911221dd55342bda", + "visualHash": "1e959c21ea94979b", + "text": "Skip to content POCKET LEDGER A tiny record, kept reliably. Update the count, note a receipt, and export the current snapshot. View as Member Admin CURRENT TOTAL Counter 1 Increment Decrement Decrement is planned, but not available yet. Admin controls Reset only the counter; receipt metadata is kept. Reset counter RECEIPT NOTE Store safe file details Choose a plain-text receipt. Its contents are checked and discarded; only filename, size, and media type are retained. Text receipt Store receipt details Stored filename RD_TEST_7B19BC_1.txt PORTABLE SNAPSHOT Export current state Download a CSV containing the current counter and receipt metadata. Download CSV", "controls": [ { "tag": "select", "type": "select-one", "name": "role", - "valueHash": "e31ab643c44f7a0e", + "valueHash": "8c6976e5b5410415", "disabled": false, "visible": true }, @@ -763,7 +782,7 @@ "tag": "button", "type": "button", "valueHash": "e3b0c44298fc1c14", - "disabled": false, + "disabled": true, "visible": true }, { @@ -771,7 +790,7 @@ "type": "button", "valueHash": "e3b0c44298fc1c14", "disabled": false, - "visible": false + "visible": true }, { "tag": "input", @@ -792,9 +811,15 @@ ] }, "busyControls": 0, - "disabledControls": 0, + "disabledControls": 1, "storage": { - "local": [], + "local": [ + { + "key": "pocket-ledger-role", + "valueHash": "8c6976e5b5410415", + "containsCanary": false + } + ], "session": [], "cookieNames": [], "cookies": [], @@ -802,10 +827,10 @@ } }, "beforeAction": { - "at": 1105, + "at": 1196, "url": "http://127.0.0.1:37300/", "title": "Pocket Ledger", - "domHash": "f9a40a92fafba7cb", + "domHash": "beed6a6b4f788564", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -817,15 +842,15 @@ "accessDenied": false }, "semanticDom": { - "textHash": "446d049d8cdd0586", - "visualHash": "46857e11c9fc209f", - "text": "Skip to content POCKET LEDGER A tiny record, kept reliably. Update the count, note a receipt, and export the current snapshot. View as Member Admin CURRENT TOTAL Counter 0 Increment Decrement RECEIPT NOTE Store safe file details Choose a plain-text receipt. Its contents are checked and discarded; only filename, size, and media type are retained. Text receipt Store receipt details Stored filename None yet PORTABLE SNAPSHOT Export current state Download a CSV containing the current counter and receipt metadata. Download CSV", + "textHash": "911221dd55342bda", + "visualHash": "1e959c21ea94979b", + "text": "Skip to content POCKET LEDGER A tiny record, kept reliably. Update the count, note a receipt, and export the current snapshot. View as Member Admin CURRENT TOTAL Counter 1 Increment Decrement Decrement is planned, but not available yet. Admin controls Reset only the counter; receipt metadata is kept. Reset counter RECEIPT NOTE Store safe file details Choose a plain-text receipt. Its contents are checked and discarded; only filename, size, and media type are retained. Text receipt Store receipt details Stored filename RD_TEST_7B19BC_1.txt PORTABLE SNAPSHOT Export current state Download a CSV containing the current counter and receipt metadata. Download CSV", "controls": [ { "tag": "select", "type": "select-one", "name": "role", - "valueHash": "e31ab643c44f7a0e", + "valueHash": "8c6976e5b5410415", "disabled": false, "visible": true }, @@ -840,7 +865,7 @@ "tag": "button", "type": "button", "valueHash": "e3b0c44298fc1c14", - "disabled": false, + "disabled": true, "visible": true }, { @@ -848,7 +873,7 @@ "type": "button", "valueHash": "e3b0c44298fc1c14", "disabled": false, - "visible": false + "visible": true }, { "tag": "input", @@ -869,9 +894,15 @@ ] }, "busyControls": 0, - "disabledControls": 0, + "disabledControls": 1, "storage": { - "local": [], + "local": [ + { + "key": "pocket-ledger-role", + "valueHash": "8c6976e5b5410415", + "containsCanary": false + } + ], "session": [], "cookieNames": [], "cookies": [], @@ -881,10 +912,10 @@ "networkSettled": true, "targetBusyAfter": false, "after": { - "at": 2066, + "at": 2144, "url": "http://127.0.0.1:37300/", "title": "Pocket Ledger", - "domHash": "1295db35f098cfe6", + "domHash": "cf1ceaf2dcccec74", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -896,9 +927,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "3f915bda1f127a6a", + "textHash": "28ca0cbe910c0090", "visualHash": "46857e11c9fc209f", - "text": "Skip to content POCKET LEDGER A tiny record, kept reliably. Update the count, note a receipt, and export the current snapshot. View as Member Admin CURRENT TOTAL Counter 0 Increment Decrement RECEIPT NOTE Store safe file details Choose a plain-text receipt. Its contents are checked and discarded; only filename, size, and media type are retained. Text receipt Store receipt details Stored filename None yet PORTABLE SNAPSHOT Export current state Download a CSV containing the current counter and receipt metadata. Download CSV Now viewing as member.", + "text": "Skip to content POCKET LEDGER A tiny record, kept reliably. Update the count, note a receipt, and export the current snapshot. View as Member Admin CURRENT TOTAL Counter 1 Increment Decrement Decrement is planned, but not available yet. RECEIPT NOTE Store safe file details Choose a plain-text receipt. Its contents are checked and discarded; only filename, size, and media type are retained. Text receipt Store receipt details Stored filename RD_TEST_7B19BC_1.txt PORTABLE SNAPSHOT Export current state Download a CSV containing the current counter and receipt metadata. Download CSV Now viewing as member.", "controls": [ { "tag": "select", @@ -919,7 +950,7 @@ "tag": "button", "type": "button", "valueHash": "e3b0c44298fc1c14", - "disabled": false, + "disabled": true, "visible": true }, { @@ -948,7 +979,7 @@ ] }, "busyControls": 0, - "disabledControls": 0, + "disabledControls": 1, "storage": { "local": [ { @@ -963,6 +994,7 @@ "indexedDb": [] } }, + "trace": "traces/fc3e88020dba.zip", "snapshotIndex": "snapshots/RD-002.index.json" }, "verdict": "VERIFIED", @@ -1025,19 +1057,19 @@ "fields": [] }, "evidence": { - "startedAt": "2026-07-23T14:54:38.187Z", - "durationMs": 2184, - "canary": "RD_TEST_F4A9CC", + "startedAt": "2026-07-26T08:12:45.839Z", + "durationMs": 2357, + "canary": "RD_TEST_7B4180", "network": [ { "id": "net-1", "method": "POST", "url": "http://127.0.0.1:37300/api/counter/increment", "resourceType": "fetch", - "startedAt": 1113, + "startedAt": 1267, "status": 200, "ok": true, - "finishedAt": 1123, + "finishedAt": 1277, "contentType": "application/json", "resourceTypeHint": "increment" } @@ -1058,7 +1090,7 @@ "weight": 92, "matchCount": 1, "visibleCount": 1, - "elapsedMs": 5 + "elapsedMs": 8 } ], "chosenStrategy": "role", @@ -1066,10 +1098,10 @@ "retryCount": 0 }, "before": { - "at": 1074, + "at": 1223, "url": "http://127.0.0.1:37300/", "title": "Pocket Ledger", - "domHash": "f9a40a92fafba7cb", + "domHash": "beed6a6b4f788564", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -1081,15 +1113,15 @@ "accessDenied": false }, "semanticDom": { - "textHash": "446d049d8cdd0586", - "visualHash": "46857e11c9fc209f", - "text": "Skip to content POCKET LEDGER A tiny record, kept reliably. Update the count, note a receipt, and export the current snapshot. View as Member Admin CURRENT TOTAL Counter 0 Increment Decrement RECEIPT NOTE Store safe file details Choose a plain-text receipt. Its contents are checked and discarded; only filename, size, and media type are retained. Text receipt Store receipt details Stored filename None yet PORTABLE SNAPSHOT Export current state Download a CSV containing the current counter and receipt metadata. Download CSV", + "textHash": "911221dd55342bda", + "visualHash": "1e959c21ea94979b", + "text": "Skip to content POCKET LEDGER A tiny record, kept reliably. Update the count, note a receipt, and export the current snapshot. View as Member Admin CURRENT TOTAL Counter 1 Increment Decrement Decrement is planned, but not available yet. Admin controls Reset only the counter; receipt metadata is kept. Reset counter RECEIPT NOTE Store safe file details Choose a plain-text receipt. Its contents are checked and discarded; only filename, size, and media type are retained. Text receipt Store receipt details Stored filename RD_TEST_7B19BC_1.txt PORTABLE SNAPSHOT Export current state Download a CSV containing the current counter and receipt metadata. Download CSV", "controls": [ { "tag": "select", "type": "select-one", "name": "role", - "valueHash": "e31ab643c44f7a0e", + "valueHash": "8c6976e5b5410415", "disabled": false, "visible": true }, @@ -1104,7 +1136,7 @@ "tag": "button", "type": "button", "valueHash": "e3b0c44298fc1c14", - "disabled": false, + "disabled": true, "visible": true }, { @@ -1112,7 +1144,7 @@ "type": "button", "valueHash": "e3b0c44298fc1c14", "disabled": false, - "visible": false + "visible": true }, { "tag": "input", @@ -1133,9 +1165,15 @@ ] }, "busyControls": 0, - "disabledControls": 0, + "disabledControls": 1, "storage": { - "local": [], + "local": [ + { + "key": "pocket-ledger-role", + "valueHash": "8c6976e5b5410415", + "containsCanary": false + } + ], "session": [], "cookieNames": [], "cookies": [], @@ -1143,10 +1181,10 @@ } }, "beforeAction": { - "at": 1084, + "at": 1233, "url": "http://127.0.0.1:37300/", "title": "Pocket Ledger", - "domHash": "f9a40a92fafba7cb", + "domHash": "beed6a6b4f788564", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -1158,15 +1196,15 @@ "accessDenied": false }, "semanticDom": { - "textHash": "446d049d8cdd0586", - "visualHash": "46857e11c9fc209f", - "text": "Skip to content POCKET LEDGER A tiny record, kept reliably. Update the count, note a receipt, and export the current snapshot. View as Member Admin CURRENT TOTAL Counter 0 Increment Decrement RECEIPT NOTE Store safe file details Choose a plain-text receipt. Its contents are checked and discarded; only filename, size, and media type are retained. Text receipt Store receipt details Stored filename None yet PORTABLE SNAPSHOT Export current state Download a CSV containing the current counter and receipt metadata. Download CSV", + "textHash": "911221dd55342bda", + "visualHash": "1e959c21ea94979b", + "text": "Skip to content POCKET LEDGER A tiny record, kept reliably. Update the count, note a receipt, and export the current snapshot. View as Member Admin CURRENT TOTAL Counter 1 Increment Decrement Decrement is planned, but not available yet. Admin controls Reset only the counter; receipt metadata is kept. Reset counter RECEIPT NOTE Store safe file details Choose a plain-text receipt. Its contents are checked and discarded; only filename, size, and media type are retained. Text receipt Store receipt details Stored filename RD_TEST_7B19BC_1.txt PORTABLE SNAPSHOT Export current state Download a CSV containing the current counter and receipt metadata. Download CSV", "controls": [ { "tag": "select", "type": "select-one", "name": "role", - "valueHash": "e31ab643c44f7a0e", + "valueHash": "8c6976e5b5410415", "disabled": false, "visible": true }, @@ -1181,7 +1219,7 @@ "tag": "button", "type": "button", "valueHash": "e3b0c44298fc1c14", - "disabled": false, + "disabled": true, "visible": true }, { @@ -1189,7 +1227,7 @@ "type": "button", "valueHash": "e3b0c44298fc1c14", "disabled": false, - "visible": false + "visible": true }, { "tag": "input", @@ -1210,9 +1248,15 @@ ] }, "busyControls": 0, - "disabledControls": 0, + "disabledControls": 1, "storage": { - "local": [], + "local": [ + { + "key": "pocket-ledger-role", + "valueHash": "8c6976e5b5410415", + "containsCanary": false + } + ], "session": [], "cookieNames": [], "cookies": [], @@ -1222,10 +1266,10 @@ "networkSettled": true, "targetBusyAfter": false, "after": { - "at": 2092, + "at": 2243, "url": "http://127.0.0.1:37300/", "title": "Pocket Ledger", - "domHash": "488a5461c8a14b07", + "domHash": "8808d5e1545ad46b", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -1237,15 +1281,15 @@ "accessDenied": false }, "semanticDom": { - "textHash": "b12953d2f3157a23", - "visualHash": "46857e11c9fc209f", - "text": "Skip to content POCKET LEDGER A tiny record, kept reliably. Update the count, note a receipt, and export the current snapshot. View as Member Admin CURRENT TOTAL Counter 1 Increment Decrement RECEIPT NOTE Store safe file details Choose a plain-text receipt. Its contents are checked and discarded; only filename, size, and media type are retained. Text receipt Store receipt details Stored filename None yet PORTABLE SNAPSHOT Export current state Download a CSV containing the current counter and receipt metadata. Download CSV Counter incremented.", + "textHash": "e8f7ee17257c8537", + "visualHash": "1e959c21ea94979b", + "text": "Skip to content POCKET LEDGER A tiny record, kept reliably. Update the count, note a receipt, and export the current snapshot. View as Member Admin CURRENT TOTAL Counter 2 Increment Decrement Decrement is planned, but not available yet. Admin controls Reset only the counter; receipt metadata is kept. Reset counter RECEIPT NOTE Store safe file details Choose a plain-text receipt. Its contents are checked and discarded; only filename, size, and media type are retained. Text receipt Store receipt details Stored filename RD_TEST_7B19BC_1.txt PORTABLE SNAPSHOT Export current state Download a CSV containing the current counter and receipt metadata. Download CSV Counter incremented.", "controls": [ { "tag": "select", "type": "select-one", "name": "role", - "valueHash": "e31ab643c44f7a0e", + "valueHash": "8c6976e5b5410415", "disabled": false, "visible": true }, @@ -1260,7 +1304,7 @@ "tag": "button", "type": "button", "valueHash": "e3b0c44298fc1c14", - "disabled": false, + "disabled": true, "visible": true }, { @@ -1268,7 +1312,7 @@ "type": "button", "valueHash": "e3b0c44298fc1c14", "disabled": false, - "visible": false + "visible": true }, { "tag": "input", @@ -1289,9 +1333,15 @@ ] }, "busyControls": 0, - "disabledControls": 0, + "disabledControls": 1, "storage": { - "local": [], + "local": [ + { + "key": "pocket-ledger-role", + "valueHash": "8c6976e5b5410415", + "containsCanary": false + } + ], "session": [], "cookieNames": [], "cookies": [], @@ -1299,6 +1349,7 @@ } }, "screenshot": "screenshots/cd984c6f3b5b-after.png", + "trace": "traces/cd984c6f3b5b.zip", "snapshotIndex": "snapshots/RD-003.index.json" }, "verdict": "VERIFIED", @@ -1309,73 +1360,73 @@ { "id": "RD-004", "action": { - "id": "f187769f1589", + "id": "aab0fa0876cf", "pageUrl": "http://127.0.0.1:37300/", - "label": "Decrement", + "label": "Reset counter", "activation": "click", "kind": "local", "intent": "interact", "risk": "safe", "fingerprint": { - "selector": "#decrement", + "selector": "#reset", "tag": "button", "ordinal": 3, "role": "button", - "accessibleName": "Decrement", - "text": "Decrement", - "id": "decrement", + "accessibleName": "Reset counter", + "text": "Reset counter", + "id": "reset", "type": "button", "candidates": [ { "strategy": "role", "weight": 92, "role": "button", - "name": "Decrement", + "name": "Reset counter", "exact": true }, { "strategy": "role", "weight": 82, "role": "button", - "name": "Decrement", + "name": "Reset counter", "exact": false }, { "strategy": "id", "weight": 80, - "selector": "#decrement" + "selector": "#reset" }, { "strategy": "text", "weight": 60, - "value": "Decrement", + "value": "Reset counter", "exact": true }, { "strategy": "css", "weight": 35, - "selector": "#decrement" + "selector": "#reset" } ] }, "fields": [] }, "evidence": { - "startedAt": "2026-07-23T14:54:40.405Z", - "durationMs": 2151, - "canary": "RD_TEST_264D84", + "startedAt": "2026-07-26T08:12:48.255Z", + "durationMs": 2394, + "canary": "RD_TEST_12736F", "network": [ { "id": "net-1", "method": "POST", - "url": "http://127.0.0.1:37300/api/counter/decrement", + "url": "http://127.0.0.1:37300/api/counter/reset", "resourceType": "fetch", - "startedAt": 1106, + "startedAt": 1316, "status": 200, "ok": true, - "finishedAt": 1120, + "finishedAt": 1327, "contentType": "application/json", - "resourceTypeHint": "decrement" + "resourceTypeHint": "reset" } ], "console": [], @@ -1394,7 +1445,7 @@ "weight": 92, "matchCount": 1, "visibleCount": 1, - "elapsedMs": 4 + "elapsedMs": 7 } ], "chosenStrategy": "role", @@ -1402,10 +1453,10 @@ "retryCount": 0 }, "before": { - "at": 1078, + "at": 1272, "url": "http://127.0.0.1:37300/", "title": "Pocket Ledger", - "domHash": "814ba71c736aa26d", + "domHash": "30ef61fc36aebb5d", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -1417,15 +1468,15 @@ "accessDenied": false }, "semanticDom": { - "textHash": "ff860fe17c5bf67d", - "visualHash": "46857e11c9fc209f", - "text": "Skip to content POCKET LEDGER A tiny record, kept reliably. Update the count, note a receipt, and export the current snapshot. View as Member Admin CURRENT TOTAL Counter 1 Increment Decrement RECEIPT NOTE Store safe file details Choose a plain-text receipt. Its contents are checked and discarded; only filename, size, and media type are retained. Text receipt Store receipt details Stored filename None yet PORTABLE SNAPSHOT Export current state Download a CSV containing the current counter and receipt metadata. Download CSV", + "textHash": "13194bfa0b020974", + "visualHash": "1e959c21ea94979b", + "text": "Skip to content POCKET LEDGER A tiny record, kept reliably. Update the count, note a receipt, and export the current snapshot. View as Member Admin CURRENT TOTAL Counter 2 Increment Decrement Decrement is planned, but not available yet. Admin controls Reset only the counter; receipt metadata is kept. Reset counter RECEIPT NOTE Store safe file details Choose a plain-text receipt. Its contents are checked and discarded; only filename, size, and media type are retained. Text receipt Store receipt details Stored filename RD_TEST_7B19BC_1.txt PORTABLE SNAPSHOT Export current state Download a CSV containing the current counter and receipt metadata. Download CSV", "controls": [ { "tag": "select", "type": "select-one", "name": "role", - "valueHash": "e31ab643c44f7a0e", + "valueHash": "8c6976e5b5410415", "disabled": false, "visible": true }, @@ -1440,7 +1491,7 @@ "tag": "button", "type": "button", "valueHash": "e3b0c44298fc1c14", - "disabled": false, + "disabled": true, "visible": true }, { @@ -1448,7 +1499,7 @@ "type": "button", "valueHash": "e3b0c44298fc1c14", "disabled": false, - "visible": false + "visible": true }, { "tag": "input", @@ -1469,9 +1520,15 @@ ] }, "busyControls": 0, - "disabledControls": 0, + "disabledControls": 1, "storage": { - "local": [], + "local": [ + { + "key": "pocket-ledger-role", + "valueHash": "8c6976e5b5410415", + "containsCanary": false + } + ], "session": [], "cookieNames": [], "cookies": [], @@ -1479,10 +1536,10 @@ } }, "beforeAction": { - "at": 1088, + "at": 1288, "url": "http://127.0.0.1:37300/", "title": "Pocket Ledger", - "domHash": "814ba71c736aa26d", + "domHash": "30ef61fc36aebb5d", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -1494,15 +1551,15 @@ "accessDenied": false }, "semanticDom": { - "textHash": "ff860fe17c5bf67d", - "visualHash": "46857e11c9fc209f", - "text": "Skip to content POCKET LEDGER A tiny record, kept reliably. Update the count, note a receipt, and export the current snapshot. View as Member Admin CURRENT TOTAL Counter 1 Increment Decrement RECEIPT NOTE Store safe file details Choose a plain-text receipt. Its contents are checked and discarded; only filename, size, and media type are retained. Text receipt Store receipt details Stored filename None yet PORTABLE SNAPSHOT Export current state Download a CSV containing the current counter and receipt metadata. Download CSV", + "textHash": "13194bfa0b020974", + "visualHash": "1e959c21ea94979b", + "text": "Skip to content POCKET LEDGER A tiny record, kept reliably. Update the count, note a receipt, and export the current snapshot. View as Member Admin CURRENT TOTAL Counter 2 Increment Decrement Decrement is planned, but not available yet. Admin controls Reset only the counter; receipt metadata is kept. Reset counter RECEIPT NOTE Store safe file details Choose a plain-text receipt. Its contents are checked and discarded; only filename, size, and media type are retained. Text receipt Store receipt details Stored filename RD_TEST_7B19BC_1.txt PORTABLE SNAPSHOT Export current state Download a CSV containing the current counter and receipt metadata. Download CSV", "controls": [ { "tag": "select", "type": "select-one", "name": "role", - "valueHash": "e31ab643c44f7a0e", + "valueHash": "8c6976e5b5410415", "disabled": false, "visible": true }, @@ -1517,7 +1574,7 @@ "tag": "button", "type": "button", "valueHash": "e3b0c44298fc1c14", - "disabled": false, + "disabled": true, "visible": true }, { @@ -1525,7 +1582,7 @@ "type": "button", "valueHash": "e3b0c44298fc1c14", "disabled": false, - "visible": false + "visible": true }, { "tag": "input", @@ -1546,9 +1603,15 @@ ] }, "busyControls": 0, - "disabledControls": 0, + "disabledControls": 1, "storage": { - "local": [], + "local": [ + { + "key": "pocket-ledger-role", + "valueHash": "8c6976e5b5410415", + "containsCanary": false + } + ], "session": [], "cookieNames": [], "cookies": [], @@ -1558,10 +1621,10 @@ "networkSettled": true, "targetBusyAfter": false, "after": { - "at": 2051, + "at": 2287, "url": "http://127.0.0.1:37300/", "title": "Pocket Ledger", - "domHash": "fd7f4b7d86ba989a", + "domHash": "d7ea1f20b9490b0c", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -1573,15 +1636,15 @@ "accessDenied": false }, "semanticDom": { - "textHash": "58dd320d87ee451f", - "visualHash": "46857e11c9fc209f", - "text": "Skip to content POCKET LEDGER A tiny record, kept reliably. Update the count, note a receipt, and export the current snapshot. View as Member Admin CURRENT TOTAL Counter 0 Increment Decrement RECEIPT NOTE Store safe file details Choose a plain-text receipt. Its contents are checked and discarded; only filename, size, and media type are retained. Text receipt Store receipt details Stored filename None yet PORTABLE SNAPSHOT Export current state Download a CSV containing the current counter and receipt metadata. Download CSV Counter decremented.", + "textHash": "4a3d89df8a96d211", + "visualHash": "1e959c21ea94979b", + "text": "Skip to content POCKET LEDGER A tiny record, kept reliably. Update the count, note a receipt, and export the current snapshot. View as Member Admin CURRENT TOTAL Counter 0 Increment Decrement Decrement is planned, but not available yet. Admin controls Reset only the counter; receipt metadata is kept. Reset counter RECEIPT NOTE Store safe file details Choose a plain-text receipt. Its contents are checked and discarded; only filename, size, and media type are retained. Text receipt Store receipt details Stored filename RD_TEST_7B19BC_1.txt PORTABLE SNAPSHOT Export current state Download a CSV containing the current counter and receipt metadata. Download CSV Counter reset.", "controls": [ { "tag": "select", "type": "select-one", "name": "role", - "valueHash": "e31ab643c44f7a0e", + "valueHash": "8c6976e5b5410415", "disabled": false, "visible": true }, @@ -1596,7 +1659,7 @@ "tag": "button", "type": "button", "valueHash": "e3b0c44298fc1c14", - "disabled": false, + "disabled": true, "visible": true }, { @@ -1604,7 +1667,7 @@ "type": "button", "valueHash": "e3b0c44298fc1c14", "disabled": false, - "visible": false + "visible": true }, { "tag": "input", @@ -1625,16 +1688,23 @@ ] }, "busyControls": 0, - "disabledControls": 0, + "disabledControls": 1, "storage": { - "local": [], + "local": [ + { + "key": "pocket-ledger-role", + "valueHash": "8c6976e5b5410415", + "containsCanary": false + } + ], "session": [], "cookieNames": [], "cookies": [], "indexedDb": [] } }, - "screenshot": "screenshots/f187769f1589-after.png", + "screenshot": "screenshots/aab0fa0876cf-after.png", + "trace": "traces/aab0fa0876cf.zip", "snapshotIndex": "snapshots/RD-004.index.json" }, "verdict": "VERIFIED", @@ -1691,19 +1761,19 @@ ] }, "evidence": { - "startedAt": "2026-07-23T14:54:42.590Z", - "durationMs": 2214, - "canary": "RD_TEST_0603F9", + "startedAt": "2026-07-26T08:12:50.685Z", + "durationMs": 2323, + "canary": "RD_TEST_98A07E", "network": [ { "id": "net-1", "method": "POST", "url": "http://127.0.0.1:37300/api/receipts", "resourceType": "fetch", - "startedAt": 1139, + "startedAt": 1202, "status": 200, "ok": true, - "finishedAt": 1151, + "finishedAt": 1213, "contentType": "application/json", "resourceTypeHint": "receipts" } @@ -1716,7 +1786,7 @@ "selector": "#receipt", "name": "receipt", "type": "file", - "value": "RD_TEST_0603F9_1.txt", + "value": "RD_TEST_98A07E_1.txt", "redacted": false } ], @@ -1725,10 +1795,10 @@ "downloadEvidence": [], "uploads": [ { - "fileName": "RD_TEST_0603F9_1.txt", + "fileName": "RD_TEST_98A07E_1.txt", "contentType": "text/plain", "size": 41, - "contentHash": "24a650d726ddf950", + "contentHash": "e78eaa52f16913d2", "containsCanary": true } ], @@ -1748,10 +1818,10 @@ "retryCount": 0 }, "before": { - "at": 1089, + "at": 1142, "url": "http://127.0.0.1:37300/", "title": "Pocket Ledger", - "domHash": "f9a40a92fafba7cb", + "domHash": "c67ae97561f167d1", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -1763,15 +1833,15 @@ "accessDenied": false }, "semanticDom": { - "textHash": "446d049d8cdd0586", - "visualHash": "46857e11c9fc209f", - "text": "Skip to content POCKET LEDGER A tiny record, kept reliably. Update the count, note a receipt, and export the current snapshot. View as Member Admin CURRENT TOTAL Counter 0 Increment Decrement RECEIPT NOTE Store safe file details Choose a plain-text receipt. Its contents are checked and discarded; only filename, size, and media type are retained. Text receipt Store receipt details Stored filename None yet PORTABLE SNAPSHOT Export current state Download a CSV containing the current counter and receipt metadata. Download CSV", + "textHash": "befc6c3ad06633fd", + "visualHash": "1e959c21ea94979b", + "text": "Skip to content POCKET LEDGER A tiny record, kept reliably. Update the count, note a receipt, and export the current snapshot. View as Member Admin CURRENT TOTAL Counter 0 Increment Decrement Decrement is planned, but not available yet. Admin controls Reset only the counter; receipt metadata is kept. Reset counter RECEIPT NOTE Store safe file details Choose a plain-text receipt. Its contents are checked and discarded; only filename, size, and media type are retained. Text receipt Store receipt details Stored filename RD_TEST_7B19BC_1.txt PORTABLE SNAPSHOT Export current state Download a CSV containing the current counter and receipt metadata. Download CSV", "controls": [ { "tag": "select", "type": "select-one", "name": "role", - "valueHash": "e31ab643c44f7a0e", + "valueHash": "8c6976e5b5410415", "disabled": false, "visible": true }, @@ -1786,7 +1856,7 @@ "tag": "button", "type": "button", "valueHash": "e3b0c44298fc1c14", - "disabled": false, + "disabled": true, "visible": true }, { @@ -1794,7 +1864,7 @@ "type": "button", "valueHash": "e3b0c44298fc1c14", "disabled": false, - "visible": false + "visible": true }, { "tag": "input", @@ -1815,9 +1885,15 @@ ] }, "busyControls": 0, - "disabledControls": 0, + "disabledControls": 1, "storage": { - "local": [], + "local": [ + { + "key": "pocket-ledger-role", + "valueHash": "8c6976e5b5410415", + "containsCanary": false + } + ], "session": [], "cookieNames": [], "cookies": [], @@ -1825,10 +1901,10 @@ } }, "beforeAction": { - "at": 1112, + "at": 1165, "url": "http://127.0.0.1:37300/", "title": "Pocket Ledger", - "domHash": "f7064fdb87f82db8", + "domHash": "03be2c679204ac8c", "canaryPresent": true, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -1840,15 +1916,15 @@ "accessDenied": false }, "semanticDom": { - "textHash": "446d049d8cdd0586", - "visualHash": "46857e11c9fc209f", - "text": "Skip to content POCKET LEDGER A tiny record, kept reliably. Update the count, note a receipt, and export the current snapshot. View as Member Admin CURRENT TOTAL Counter 0 Increment Decrement RECEIPT NOTE Store safe file details Choose a plain-text receipt. Its contents are checked and discarded; only filename, size, and media type are retained. Text receipt Store receipt details Stored filename None yet PORTABLE SNAPSHOT Export current state Download a CSV containing the current counter and receipt metadata. Download CSV", + "textHash": "befc6c3ad06633fd", + "visualHash": "1e959c21ea94979b", + "text": "Skip to content POCKET LEDGER A tiny record, kept reliably. Update the count, note a receipt, and export the current snapshot. View as Member Admin CURRENT TOTAL Counter 0 Increment Decrement Decrement is planned, but not available yet. Admin controls Reset only the counter; receipt metadata is kept. Reset counter RECEIPT NOTE Store safe file details Choose a plain-text receipt. Its contents are checked and discarded; only filename, size, and media type are retained. Text receipt Store receipt details Stored filename RD_TEST_7B19BC_1.txt PORTABLE SNAPSHOT Export current state Download a CSV containing the current counter and receipt metadata. Download CSV", "controls": [ { "tag": "select", "type": "select-one", "name": "role", - "valueHash": "e31ab643c44f7a0e", + "valueHash": "8c6976e5b5410415", "disabled": false, "visible": true }, @@ -1863,7 +1939,7 @@ "tag": "button", "type": "button", "valueHash": "e3b0c44298fc1c14", - "disabled": false, + "disabled": true, "visible": true }, { @@ -1871,13 +1947,13 @@ "type": "button", "valueHash": "e3b0c44298fc1c14", "disabled": false, - "visible": false + "visible": true }, { "tag": "input", "type": "file", "name": "receipt", - "valueHash": "dd511e554782ad2c", + "valueHash": "f4d911ab8e8349c4", "checked": false, "disabled": false, "visible": true @@ -1892,9 +1968,15 @@ ] }, "busyControls": 0, - "disabledControls": 0, + "disabledControls": 1, "storage": { - "local": [], + "local": [ + { + "key": "pocket-ledger-role", + "valueHash": "8c6976e5b5410415", + "containsCanary": false + } + ], "session": [], "cookieNames": [], "cookies": [], @@ -1904,10 +1986,10 @@ "networkSettled": true, "targetBusyAfter": false, "after": { - "at": 2122, + "at": 2202, "url": "http://127.0.0.1:37300/", "title": "Pocket Ledger", - "domHash": "f7b832fe8d47a2ec", + "domHash": "3d8b8f728eb3351a", "canaryPresent": true, "bodyCanaryPresent": true, "temporaryBlobUrls": 0, @@ -1919,15 +2001,15 @@ "accessDenied": false }, "semanticDom": { - "textHash": "6145b7e6abf721b8", - "visualHash": "46857e11c9fc209f", - "text": "Skip to content POCKET LEDGER A tiny record, kept reliably. Update the count, note a receipt, and export the current snapshot. View as Member Admin CURRENT TOTAL Counter 0 Increment Decrement RECEIPT NOTE Store safe file details Choose a plain-text receipt. Its contents are checked and discarded; only filename, size, and media type are retained. Text receipt Store receipt details Stored filename RD_TEST_0603F9_1.txt PORTABLE SNAPSHOT Export current state Download a CSV containing the current counter and receipt metadata. Download CSV Receipt details stored. The file contents were discarded.", + "textHash": "755ec0bd331b0b64", + "visualHash": "1e959c21ea94979b", + "text": "Skip to content POCKET LEDGER A tiny record, kept reliably. Update the count, note a receipt, and export the current snapshot. View as Member Admin CURRENT TOTAL Counter 0 Increment Decrement Decrement is planned, but not available yet. Admin controls Reset only the counter; receipt metadata is kept. Reset counter RECEIPT NOTE Store safe file details Choose a plain-text receipt. Its contents are checked and discarded; only filename, size, and media type are retained. Text receipt Store receipt details Stored filename RD_TEST_98A07E_1.txt PORTABLE SNAPSHOT Export current state Download a CSV containing the current counter and receipt metadata. Download CSV Receipt details stored. The file contents were discarded.", "controls": [ { "tag": "select", "type": "select-one", "name": "role", - "valueHash": "e31ab643c44f7a0e", + "valueHash": "8c6976e5b5410415", "disabled": false, "visible": true }, @@ -1942,7 +2024,7 @@ "tag": "button", "type": "button", "valueHash": "e3b0c44298fc1c14", - "disabled": false, + "disabled": true, "visible": true }, { @@ -1950,7 +2032,7 @@ "type": "button", "valueHash": "e3b0c44298fc1c14", "disabled": false, - "visible": false + "visible": true }, { "tag": "input", @@ -1971,9 +2053,15 @@ ] }, "busyControls": 0, - "disabledControls": 0, + "disabledControls": 1, "storage": { - "local": [], + "local": [ + { + "key": "pocket-ledger-role", + "valueHash": "8c6976e5b5410415", + "containsCanary": false + } + ], "session": [], "cookieNames": [], "cookies": [], @@ -1981,6 +2069,7 @@ } }, "screenshot": "screenshots/947f43cdc520-after.png", + "trace": "traces/947f43cdc520.zip", "snapshotIndex": "snapshots/RD-005.index.json" }, "verdict": "VERIFIED", @@ -2043,9 +2132,9 @@ "fields": [] }, "evidence": { - "startedAt": "2026-07-23T14:54:44.837Z", - "durationMs": 2167, - "canary": "RD_TEST_86E3AA", + "startedAt": "2026-07-26T08:12:53.052Z", + "durationMs": 2275, + "canary": "RD_TEST_68AE42", "network": [], "console": [], "pageErrors": [], @@ -2059,7 +2148,7 @@ { "fileName": "pocket-ledger.csv", "size": 117, - "contentHash": "fe9771a5b6b2726fae4003c99d2bc3baff6b21ce2a7afe06274c26fcb3390a67", + "contentHash": "e598a1376c2551efbdca87e57b951e536f5adf7d102e4f6d98e7e0a57bdf13ce", "containsCanary": false, "expectedFieldValues": 0, "matchedFieldValues": 0, @@ -2083,10 +2172,10 @@ "retryCount": 0 }, "before": { - "at": 1076, + "at": 1181, "url": "http://127.0.0.1:37300/", "title": "Pocket Ledger", - "domHash": "5c1803ef7d012fe1", + "domHash": "92704757e23bb2ff", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -2098,15 +2187,15 @@ "accessDenied": false }, "semanticDom": { - "textHash": "3089631f43978527", - "visualHash": "46857e11c9fc209f", - "text": "Skip to content POCKET LEDGER A tiny record, kept reliably. Update the count, note a receipt, and export the current snapshot. View as Member Admin CURRENT TOTAL Counter 0 Increment Decrement RECEIPT NOTE Store safe file details Choose a plain-text receipt. Its contents are checked and discarded; only filename, size, and media type are retained. Text receipt Store receipt details Stored filename RD_TEST_0603F9_1.txt PORTABLE SNAPSHOT Export current state Download a CSV containing the current counter and receipt metadata. Download CSV", + "textHash": "ee9f77cbf0dfc873", + "visualHash": "1e959c21ea94979b", + "text": "Skip to content POCKET LEDGER A tiny record, kept reliably. Update the count, note a receipt, and export the current snapshot. View as Member Admin CURRENT TOTAL Counter 0 Increment Decrement Decrement is planned, but not available yet. Admin controls Reset only the counter; receipt metadata is kept. Reset counter RECEIPT NOTE Store safe file details Choose a plain-text receipt. Its contents are checked and discarded; only filename, size, and media type are retained. Text receipt Store receipt details Stored filename RD_TEST_98A07E_1.txt PORTABLE SNAPSHOT Export current state Download a CSV containing the current counter and receipt metadata. Download CSV", "controls": [ { "tag": "select", "type": "select-one", "name": "role", - "valueHash": "e31ab643c44f7a0e", + "valueHash": "8c6976e5b5410415", "disabled": false, "visible": true }, @@ -2121,7 +2210,7 @@ "tag": "button", "type": "button", "valueHash": "e3b0c44298fc1c14", - "disabled": false, + "disabled": true, "visible": true }, { @@ -2129,7 +2218,7 @@ "type": "button", "valueHash": "e3b0c44298fc1c14", "disabled": false, - "visible": false + "visible": true }, { "tag": "input", @@ -2150,9 +2239,15 @@ ] }, "busyControls": 0, - "disabledControls": 0, + "disabledControls": 1, "storage": { - "local": [], + "local": [ + { + "key": "pocket-ledger-role", + "valueHash": "8c6976e5b5410415", + "containsCanary": false + } + ], "session": [], "cookieNames": [], "cookies": [], @@ -2160,10 +2255,10 @@ } }, "beforeAction": { - "at": 1087, + "at": 1192, "url": "http://127.0.0.1:37300/", "title": "Pocket Ledger", - "domHash": "5c1803ef7d012fe1", + "domHash": "92704757e23bb2ff", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -2175,15 +2270,15 @@ "accessDenied": false }, "semanticDom": { - "textHash": "3089631f43978527", - "visualHash": "46857e11c9fc209f", - "text": "Skip to content POCKET LEDGER A tiny record, kept reliably. Update the count, note a receipt, and export the current snapshot. View as Member Admin CURRENT TOTAL Counter 0 Increment Decrement RECEIPT NOTE Store safe file details Choose a plain-text receipt. Its contents are checked and discarded; only filename, size, and media type are retained. Text receipt Store receipt details Stored filename RD_TEST_0603F9_1.txt PORTABLE SNAPSHOT Export current state Download a CSV containing the current counter and receipt metadata. Download CSV", + "textHash": "ee9f77cbf0dfc873", + "visualHash": "1e959c21ea94979b", + "text": "Skip to content POCKET LEDGER A tiny record, kept reliably. Update the count, note a receipt, and export the current snapshot. View as Member Admin CURRENT TOTAL Counter 0 Increment Decrement Decrement is planned, but not available yet. Admin controls Reset only the counter; receipt metadata is kept. Reset counter RECEIPT NOTE Store safe file details Choose a plain-text receipt. Its contents are checked and discarded; only filename, size, and media type are retained. Text receipt Store receipt details Stored filename RD_TEST_98A07E_1.txt PORTABLE SNAPSHOT Export current state Download a CSV containing the current counter and receipt metadata. Download CSV", "controls": [ { "tag": "select", "type": "select-one", "name": "role", - "valueHash": "e31ab643c44f7a0e", + "valueHash": "8c6976e5b5410415", "disabled": false, "visible": true }, @@ -2198,7 +2293,7 @@ "tag": "button", "type": "button", "valueHash": "e3b0c44298fc1c14", - "disabled": false, + "disabled": true, "visible": true }, { @@ -2206,7 +2301,7 @@ "type": "button", "valueHash": "e3b0c44298fc1c14", "disabled": false, - "visible": false + "visible": true }, { "tag": "input", @@ -2227,9 +2322,15 @@ ] }, "busyControls": 0, - "disabledControls": 0, + "disabledControls": 1, "storage": { - "local": [], + "local": [ + { + "key": "pocket-ledger-role", + "valueHash": "8c6976e5b5410415", + "containsCanary": false + } + ], "session": [], "cookieNames": [], "cookies": [], @@ -2239,10 +2340,10 @@ "networkSettled": true, "targetBusyAfter": false, "after": { - "at": 2063, + "at": 2174, "url": "http://127.0.0.1:37300/", "title": "Pocket Ledger", - "domHash": "5c1803ef7d012fe1", + "domHash": "92704757e23bb2ff", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -2254,15 +2355,15 @@ "accessDenied": false }, "semanticDom": { - "textHash": "3089631f43978527", - "visualHash": "46857e11c9fc209f", - "text": "Skip to content POCKET LEDGER A tiny record, kept reliably. Update the count, note a receipt, and export the current snapshot. View as Member Admin CURRENT TOTAL Counter 0 Increment Decrement RECEIPT NOTE Store safe file details Choose a plain-text receipt. Its contents are checked and discarded; only filename, size, and media type are retained. Text receipt Store receipt details Stored filename RD_TEST_0603F9_1.txt PORTABLE SNAPSHOT Export current state Download a CSV containing the current counter and receipt metadata. Download CSV", + "textHash": "ee9f77cbf0dfc873", + "visualHash": "1e959c21ea94979b", + "text": "Skip to content POCKET LEDGER A tiny record, kept reliably. Update the count, note a receipt, and export the current snapshot. View as Member Admin CURRENT TOTAL Counter 0 Increment Decrement Decrement is planned, but not available yet. Admin controls Reset only the counter; receipt metadata is kept. Reset counter RECEIPT NOTE Store safe file details Choose a plain-text receipt. Its contents are checked and discarded; only filename, size, and media type are retained. Text receipt Store receipt details Stored filename RD_TEST_98A07E_1.txt PORTABLE SNAPSHOT Export current state Download a CSV containing the current counter and receipt metadata. Download CSV", "controls": [ { "tag": "select", "type": "select-one", "name": "role", - "valueHash": "e31ab643c44f7a0e", + "valueHash": "8c6976e5b5410415", "disabled": false, "visible": true }, @@ -2277,7 +2378,7 @@ "tag": "button", "type": "button", "valueHash": "e3b0c44298fc1c14", - "disabled": false, + "disabled": true, "visible": true }, { @@ -2285,7 +2386,7 @@ "type": "button", "valueHash": "e3b0c44298fc1c14", "disabled": false, - "visible": false + "visible": true }, { "tag": "input", @@ -2306,9 +2407,15 @@ ] }, "busyControls": 0, - "disabledControls": 0, + "disabledControls": 1, "storage": { - "local": [], + "local": [ + { + "key": "pocket-ledger-role", + "valueHash": "8c6976e5b5410415", + "containsCanary": false + } + ], "session": [], "cookieNames": [], "cookies": [], @@ -2316,6 +2423,7 @@ } }, "screenshot": "screenshots/837be486ade9-after.png", + "trace": "traces/837be486ade9.zip", "snapshotIndex": "snapshots/RD-006.index.json" }, "verdict": "VERIFIED", @@ -2326,8 +2434,8 @@ ], "environment": { "status": "VALID", - "checkedAt": "2026-07-23T14:54:31.925Z", - "durationMs": 931, + "checkedAt": "2026-07-26T08:12:39.209Z", + "durationMs": 1046, "targetUrl": "http://127.0.0.1:37300/", "mainDocument": { "status": 200, @@ -2340,9 +2448,9 @@ "failed": 0 }, "render": { - "bodyTextLength": 527, - "visibleElements": 38, - "interactiveElements": 7, + "bodyTextLength": 663, + "visibleElements": 44, + "interactiveElements": 8, "ready": true }, "findings": [], @@ -2352,6 +2460,36 @@ }, "completeness": { "truncated": false, - "reasons": [] + "reasons": [], + "selection": { + "strategy": "coverage-balanced-v1", + "eligibleActions": 6, + "selectedActions": 6, + "omittedActions": 0, + "eligiblePages": 1, + "selectedPages": 1, + "eligibleKinds": [ + "external", + "local", + "navigation" + ], + "selectedKinds": [ + "external", + "local", + "navigation" + ], + "eligibleIntents": [ + "interact", + "navigate", + "external" + ], + "selectedIntents": [ + "interact", + "navigate", + "external" + ], + "deniedEligibleActions": 0, + "deniedSelectedActions": 0 + } } } diff --git a/release/evidence/raw/ai-agent-cycle/baseline.json b/release/evidence/raw/ai-agent-cycle/baseline.json index 145a9ca..bc2250f 100644 --- a/release/evidence/raw/ai-agent-cycle/baseline.json +++ b/release/evidence/raw/ai-agent-cycle/baseline.json @@ -1,11 +1,11 @@ { "schemaVersion": "1.0", - "generatedAt": "2026-07-23T15:10:26.633Z", + "generatedAt": "2026-07-26T08:13:56.254Z", "contracts": [ { "id": "increment-persistent-counter-6270", "name": "Increment persistent counter", - "file": "../real-projects/ai-agent-cycle/.realdone/flows/increment.json", + "file": "flows/increment.json", "hash": "a7a5dc82b85241e2e8166aaf58a1c3bb0bc86eb6faba4b4b78cc189055e3aeeb", "tags": [], "routes": [ @@ -21,7 +21,7 @@ "stepCount": 2, "baseline": { "passed": true, - "verificationId": "20260723T151025Z-80fc", + "verificationId": "20260726T081354Z-345d", "steps": [ { "id": "S001", diff --git a/release/evidence/raw/ai-agent-cycle/codex-session.json b/release/evidence/raw/ai-agent-cycle/codex-session.json index a7a36d3..d798158 100644 --- a/release/evidence/raw/ai-agent-cycle/codex-session.json +++ b/release/evidence/raw/ai-agent-cycle/codex-session.json @@ -1,6 +1,6 @@ { "schemaVersion": "1.0", - "sessionId": "2069ac40-c23a-4115-838f-5ddaba7a6c94", + "sessionId": "019f8770-219f-7612-81eb-98670009f693", "originator": "Codex Desktop", "source": "exec", "modelProvider": "codex_local_access", @@ -13,14 +13,14 @@ { "tool": "verify_change", "passed": false, - "runId": "20260723T151518Z-7a66", + "runId": "20260726T081932Z-0ea9", "selectedContracts": 1, "regressions": 1 }, { "tool": "verify_change", "passed": true, - "runId": "20260723T151605Z-fe2f", + "runId": "20260726T082050Z-ad9f", "selectedContracts": 1, "regressions": 0 } diff --git a/release/evidence/raw/ai-agent-cycle/failed-verification.json b/release/evidence/raw/ai-agent-cycle/failed-verification.json index 0e4e0cb..bd4d211 100644 --- a/release/evidence/raw/ai-agent-cycle/failed-verification.json +++ b/release/evidence/raw/ai-agent-cycle/failed-verification.json @@ -1,15 +1,15 @@ { "schemaVersion": "1.0", - "verificationId": "20260723T151518Z-eae4", + "verificationId": "20260726T081932Z-86b6", "contractId": "increment-persistent-counter-6270", "contractName": "Increment persistent counter", "browser": "chromium", "roles": [ "default" ], - "deep": true, - "startedAt": "2026-07-23T15:15:19.039Z", - "finishedAt": "2026-07-23T15:15:20.328Z", + "deep": false, + "startedAt": "2026-07-26T08:19:32.863Z", + "finishedAt": "2026-07-26T08:19:34.200Z", "passed": false, "steps": [ { @@ -17,7 +17,7 @@ "type": "navigate", "role": "default", "status": "passed", - "durationMs": 665, + "durationMs": 669, "reason": "Step and recorded expectations passed.", "assertions": [] }, @@ -26,7 +26,7 @@ "type": "click", "role": "default", "status": "failed", - "durationMs": 554, + "durationMs": 595, "reason": "One or more recorded expectations failed.", "locatorResolution": { "attempts": [ diff --git a/release/evidence/raw/ai-agent-cycle/regression.json b/release/evidence/raw/ai-agent-cycle/regression.json index 8ae49d6..26a1666 100644 --- a/release/evidence/raw/ai-agent-cycle/regression.json +++ b/release/evidence/raw/ai-agent-cycle/regression.json @@ -1,8 +1,8 @@ { "schemaVersion": "1.0", - "runId": "20260723T151518Z-7a66", - "baselineFile": "F:\\RealDone\\work\\requalification-20260723-215217\\mcp-agent-baseline.json", - "generatedAt": "2026-07-23T15:15:20.342Z", + "runId": "20260726T081932Z-0ea9", + "baselineFile": "F:\\RealDone\\work\\phase-i-qualification\\pocket-ledger\\.realdone\\baseline.json", + "generatedAt": "2026-07-26T08:19:35.245Z", "passed": false, "selectedContracts": 1, "regressions": 1, @@ -32,8 +32,8 @@ false ], "verificationId": [ - "20260723T151025Z-80fc", - "20260723T151518Z-eae4" + "20260726T081354Z-345d", + "20260726T081932Z-86b6" ], "steps": { "1": { diff --git a/release/evidence/raw/ai-agent-cycle/repair.json b/release/evidence/raw/ai-agent-cycle/repair.json index 63b5cc5..3940465 100644 --- a/release/evidence/raw/ai-agent-cycle/repair.json +++ b/release/evidence/raw/ai-agent-cycle/repair.json @@ -1,8 +1,8 @@ { "schemaVersion": "1.0", - "runId": "20260723T151605Z-fe2f", - "baselineFile": "F:\\RealDone\\work\\requalification-20260723-215217\\mcp-agent-baseline.json", - "generatedAt": "2026-07-23T15:16:07.000Z", + "runId": "20260726T082050Z-ad9f", + "baselineFile": "F:\\RealDone\\work\\phase-i-qualification\\pocket-ledger\\.realdone\\baseline.json", + "generatedAt": "2026-07-26T08:20:53.166Z", "passed": true, "selectedContracts": 1, "regressions": 0, @@ -26,8 +26,8 @@ "0": { "baseline": { "verificationId": [ - "20260723T151025Z-80fc", - "20260723T151605Z-1722" + "20260726T081354Z-345d", + "20260726T082050Z-8a6e" ] } }, diff --git a/release/evidence/raw/ai-agent-cycle/role-verification.json b/release/evidence/raw/ai-agent-cycle/role-verification.json index 79c1cb2..9dc02d3 100644 --- a/release/evidence/raw/ai-agent-cycle/role-verification.json +++ b/release/evidence/raw/ai-agent-cycle/role-verification.json @@ -1,6 +1,6 @@ { "schemaVersion": "1.0", - "verificationId": "20260723T150837Z-ca72", + "verificationId": "20260726T081304Z-9075", "contractId": "pocket-ledger-role-authorization", "contractName": "Member denial and admin visibility", "browser": "chromium", @@ -10,8 +10,8 @@ "member" ], "deep": true, - "startedAt": "2026-07-23T15:08:37.078Z", - "finishedAt": "2026-07-23T15:08:38.346Z", + "startedAt": "2026-07-26T08:13:04.510Z", + "finishedAt": "2026-07-26T08:13:05.672Z", "passed": true, "steps": [ { @@ -19,7 +19,7 @@ "type": "navigate", "role": "member", "status": "passed", - "durationMs": 1202, + "durationMs": 1071, "reason": "Step and recorded expectations passed.", "assertions": [ { @@ -60,5 +60,12 @@ } ] } - ] + ], + "artifacts": { + "traces": [ + "traces/member.zip", + "traces/admin.zip" + ], + "videos": [] + } } diff --git a/release/evidence/raw/conduit-postgres-cleanup.json b/release/evidence/raw/conduit-postgres-cleanup.json index dd048fd..fecceae 100644 --- a/release/evidence/raw/conduit-postgres-cleanup.json +++ b/release/evidence/raw/conduit-postgres-cleanup.json @@ -1,43 +1,22 @@ { "schemaVersion": "1.0", - "scanId": "conduit-postgresql-requalification-cleanup", - "targetUrl": "http://127.0.0.1:3000", + "generatedAt": "2026-07-26T08:37:02.892Z", + "adapter": "postgresql", + "database": "conduit", "resources": [ { - "id": "cleanup-conduit-user-8", - "type": "users", - "strategy": "postgresql", - "database": { - "adapter": "postgresql", - "resource": "users", - "filters": [ - { - "field": "id", - "value": 8 - } - ] - }, + "resource": "signup-scan-user", "status": "cleaned", - "attempts": 1, - "lastAttemptAt": "2026-07-23T15:13:29.219Z" + "cleanupKey": "server-generated-primary-key" }, { - "id": "cleanup-conduit-user-9", - "type": "users", - "strategy": "postgresql", - "database": { - "adapter": "postgresql", - "resource": "users", - "filters": [ - { - "field": "id", - "value": 9 - } - ] - }, + "resource": "crud-qualification-user", "status": "cleaned", - "attempts": 1, - "lastAttemptAt": "2026-07-23T15:13:29.219Z" + "cleanupKey": "server-generated-primary-key" } - ] + ], + "deletedRows": 2, + "remainingQualificationUsers": 0, + "transaction": "read-write", + "scope": "disposable-local-qualification-database" } diff --git a/release/evidence/raw/conduit-postgres-create.scan.json b/release/evidence/raw/conduit-postgres-create.scan.json index 24f87a3..1fc059e 100644 --- a/release/evidence/raw/conduit-postgres-create.scan.json +++ b/release/evidence/raw/conduit-postgres-create.scan.json @@ -1,9 +1,9 @@ { "schemaVersion": "1.0", - "scanId": "20260723T150316Z-c204", + "scanId": "20260726T083351Z-6b0c", "targetUrl": "http://127.0.0.1:3000/#/editor", - "startedAt": "2026-07-23T15:03:16.639Z", - "finishedAt": "2026-07-23T15:03:52.019Z", + "startedAt": "2026-07-26T08:33:51.887Z", + "finishedAt": "2026-07-26T08:34:27.684Z", "options": { "maxPages": 10, "maxActions": 30, @@ -16,7 +16,7 @@ "mutationAllowed": true, "deep": true, "trace": false, - "traceOnFailure": true, + "traceOnFailure": false, "video": false, "environmentTimeoutMs": 10000, "acceptEnvironmentRisk": false, @@ -981,19 +981,19 @@ "fields": [] }, "evidence": { - "startedAt": "2026-07-23T15:03:21.823Z", - "durationMs": 2535, - "canary": "RD_TEST_DF5FFA", + "startedAt": "2026-07-26T08:33:57.330Z", + "durationMs": 2621, + "canary": "RD_TEST_1DC874", "network": [ { "id": "net-1", "method": "GET", "url": "http://127.0.0.1:3000/api/articles/feed?limit=3&&offset=0", "resourceType": "xhr", - "startedAt": 1566, + "startedAt": 1620, "status": 200, "ok": true, - "finishedAt": 1580, + "finishedAt": 1633, "contentType": "application/json", "resourceTypeHint": "feed" }, @@ -1002,10 +1002,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/api/tags", "resourceType": "xhr", - "startedAt": 1567, + "startedAt": 1621, "status": 200, "ok": true, - "finishedAt": 1574, + "finishedAt": 1630, "contentType": "application/json", "resourceTypeHint": "tags" }, @@ -1014,10 +1014,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/api/articles/feed?limit=3&&offset=0", "resourceType": "xhr", - "startedAt": 1567, + "startedAt": 1622, "status": 200, "ok": true, - "finishedAt": 1577, + "finishedAt": 1636, "contentType": "application/json", "resourceTypeHint": "feed" }, @@ -1026,10 +1026,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/api/tags", "resourceType": "xhr", - "startedAt": 1567, + "startedAt": 1622, "status": 200, "ok": true, - "finishedAt": 1575, + "finishedAt": 1632, "contentType": "application/json", "resourceTypeHint": "tags" } @@ -1050,35 +1050,35 @@ "weight": 92, "matchCount": 2, "visibleCount": 2, - "elapsedMs": 9 + "elapsedMs": 6 }, { "strategy": "role", "weight": 82, "matchCount": 2, "visibleCount": 2, - "elapsedMs": 6 + "elapsedMs": 3 }, { "strategy": "href", "weight": 72, "matchCount": 0, "visibleCount": 0, - "elapsedMs": 2 + "elapsedMs": 1 }, { "strategy": "text", "weight": 60, "matchCount": 2, "visibleCount": 2, - "elapsedMs": 7 + "elapsedMs": 3 }, { "strategy": "css", "weight": 35, "matchCount": 1, "visibleCount": 1, - "elapsedMs": 6 + "elapsedMs": 2 } ], "chosenStrategy": "css", @@ -1086,10 +1086,10 @@ "retryCount": 0 }, "before": { - "at": 1515, + "at": 1569, "url": "http://127.0.0.1:3000/#/editor", "title": "Conduit", - "domHash": "cda756a29befbf68", + "domHash": "5ebc0985cd298024", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -1101,9 +1101,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "ba9ba6af2ee2f3df", + "textHash": "623d2b57c26f13d5", "visualHash": "b85410fa0ea5a358", - "text": "conduit Source code Home New Article rdq1784818988 Publish Article conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", + "text": "conduit Source code Home New Article rdq1785054823102 Publish Article conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "input", @@ -1155,7 +1155,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "60581d1527367fc4", + "valueHash": "5530bc1e89316fe8", "containsCanary": false } ], @@ -1166,10 +1166,10 @@ } }, "beforeAction": { - "at": 1525, + "at": 1577, "url": "http://127.0.0.1:3000/#/editor", "title": "Conduit", - "domHash": "cda756a29befbf68", + "domHash": "5ebc0985cd298024", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -1181,9 +1181,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "ba9ba6af2ee2f3df", + "textHash": "623d2b57c26f13d5", "visualHash": "b85410fa0ea5a358", - "text": "conduit Source code Home New Article rdq1784818988 Publish Article conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", + "text": "conduit Source code Home New Article rdq1785054823102 Publish Article conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "input", @@ -1235,7 +1235,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "60581d1527367fc4", + "valueHash": "5530bc1e89316fe8", "containsCanary": false } ], @@ -1248,10 +1248,10 @@ "networkSettled": true, "targetBusyAfter": false, "after": { - "at": 2531, + "at": 2618, "url": "http://127.0.0.1:3000/#/", "title": "Conduit", - "domHash": "10b2e2da3389243f", + "domHash": "1614f3853a8eb1c1", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -1263,9 +1263,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "bbc95ee07cd6c2b4", + "textHash": "0358d857e97a4e33", "visualHash": "dfad2167a8f7c17f", - "text": "conduit Source code Home New Article rdq1784818988 Your Feed Global Feed Articles not available. Popular Tags Tags list not available conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", + "text": "conduit Source code Home New Article rdq1785054823102 Your Feed Global Feed Articles not available. Popular Tags Tags list not available conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "button", @@ -1289,7 +1289,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "60581d1527367fc4", + "valueHash": "5530bc1e89316fe8", "containsCanary": false } ], @@ -1308,79 +1308,6 @@ }, { "id": "RD-002", - "action": { - "id": "b4f9d978244f", - "pageUrl": "http://127.0.0.1:3000/#/editor", - "label": "Source code", - "activation": "click", - "kind": "navigation", - "intent": "navigate", - "risk": "safe", - "fingerprint": { - "selector": "body > div > header > nav > div > ul:nth-of-type(1) > li > a", - "tag": "a", - "ordinal": 1, - "role": "link", - "accessibleName": "Source code", - "text": "Source code", - "href": "https://github.com/TonyMckes/conduit-realworld-example-app", - "candidates": [ - { - "strategy": "role", - "weight": 92, - "role": "link", - "name": "Source code", - "exact": true - }, - { - "strategy": "role", - "weight": 82, - "role": "link", - "name": "Source code", - "exact": false - }, - { - "strategy": "href", - "weight": 72, - "value": "https://github.com/TonyMckes/conduit-realworld-example-app" - }, - { - "strategy": "text", - "weight": 60, - "value": "Source code", - "exact": true - }, - { - "strategy": "css", - "weight": 35, - "selector": "body > div > header > nav > div > ul:nth-of-type(1) > li > a" - } - ] - }, - "fields": [] - }, - "verdict": "SKIPPED", - "evidenceLevel": 0, - "reason": "Cross-origin navigation blocked by the default safety policy. Use --allow-external explicitly.", - "skippedReason": "Cross-origin navigation blocked by the default safety policy. Use --allow-external explicitly.", - "detectorMatches": [], - "evidence": { - "startedAt": "", - "durationMs": 0, - "canary": "", - "network": [], - "console": [], - "pageErrors": [], - "uiClaims": [], - "filledFields": [], - "dialogs": [], - "downloads": [], - "popupUrls": [], - "snapshotIndex": "snapshots/RD-002.index.json" - } - }, - { - "id": "RD-003", "action": { "id": "83251d79e73a", "pageUrl": "http://127.0.0.1:3000/#/editor", @@ -1433,19 +1360,19 @@ "fields": [] }, "evidence": { - "startedAt": "2026-07-23T15:03:24.405Z", - "durationMs": 2524, - "canary": "RD_TEST_7E8550", + "startedAt": "2026-07-26T08:33:59.956Z", + "durationMs": 2493, + "canary": "RD_TEST_2728C6", "network": [ { "id": "net-1", "method": "GET", "url": "http://127.0.0.1:3000/api/articles/feed?limit=3&&offset=0", "resourceType": "xhr", - "startedAt": 1521, + "startedAt": 1530, "status": 200, "ok": true, - "finishedAt": 1536, + "finishedAt": 1544, "contentType": "application/json", "resourceTypeHint": "feed" }, @@ -1454,22 +1381,22 @@ "method": "GET", "url": "http://127.0.0.1:3000/api/tags", "resourceType": "xhr", - "startedAt": 1522, + "startedAt": 1531, "status": 200, "ok": true, "contentType": "application/json", "resourceTypeHint": "tags", - "finishedAt": 1530 + "finishedAt": 1539 }, { "id": "net-3", "method": "GET", "url": "http://127.0.0.1:3000/api/articles/feed?limit=3&&offset=0", "resourceType": "xhr", - "startedAt": 1523, + "startedAt": 1531, "status": 200, "ok": true, - "finishedAt": 1537, + "finishedAt": 1544, "contentType": "application/json", "resourceTypeHint": "feed" }, @@ -1478,10 +1405,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/api/tags", "resourceType": "xhr", - "startedAt": 1523, + "startedAt": 1531, "status": 200, "ok": true, - "finishedAt": 1530, + "finishedAt": 1540, "contentType": "application/json", "resourceTypeHint": "tags" } @@ -1502,14 +1429,14 @@ "weight": 92, "matchCount": 0, "visibleCount": 0, - "elapsedMs": 3 + "elapsedMs": 2 }, { "strategy": "role", "weight": 82, "matchCount": 1, "visibleCount": 1, - "elapsedMs": 5 + "elapsedMs": 2 } ], "chosenStrategy": "role", @@ -1517,10 +1444,10 @@ "retryCount": 0 }, "before": { - "at": 1475, + "at": 1503, "url": "http://127.0.0.1:3000/#/editor", "title": "Conduit", - "domHash": "cda756a29befbf68", + "domHash": "5ebc0985cd298024", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -1532,9 +1459,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "ba9ba6af2ee2f3df", + "textHash": "623d2b57c26f13d5", "visualHash": "b85410fa0ea5a358", - "text": "conduit Source code Home New Article rdq1784818988 Publish Article conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", + "text": "conduit Source code Home New Article rdq1785054823102 Publish Article conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "input", @@ -1586,7 +1513,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "60581d1527367fc4", + "valueHash": "5530bc1e89316fe8", "containsCanary": false } ], @@ -1597,10 +1524,10 @@ } }, "beforeAction": { - "at": 1484, + "at": 1509, "url": "http://127.0.0.1:3000/#/editor", "title": "Conduit", - "domHash": "cda756a29befbf68", + "domHash": "5ebc0985cd298024", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -1612,9 +1539,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "ba9ba6af2ee2f3df", + "textHash": "623d2b57c26f13d5", "visualHash": "b85410fa0ea5a358", - "text": "conduit Source code Home New Article rdq1784818988 Publish Article conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", + "text": "conduit Source code Home New Article rdq1785054823102 Publish Article conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "input", @@ -1666,7 +1593,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "60581d1527367fc4", + "valueHash": "5530bc1e89316fe8", "containsCanary": false } ], @@ -1679,10 +1606,10 @@ "networkSettled": true, "targetBusyAfter": false, "after": { - "at": 2519, + "at": 2490, "url": "http://127.0.0.1:3000/#/", "title": "Conduit", - "domHash": "10b2e2da3389243f", + "domHash": "1614f3853a8eb1c1", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -1694,9 +1621,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "bbc95ee07cd6c2b4", + "textHash": "0358d857e97a4e33", "visualHash": "dfad2167a8f7c17f", - "text": "conduit Source code Home New Article rdq1784818988 Your Feed Global Feed Articles not available. Popular Tags Tags list not available conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", + "text": "conduit Source code Home New Article rdq1785054823102 Your Feed Global Feed Articles not available. Popular Tags Tags list not available conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "button", @@ -1720,7 +1647,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "60581d1527367fc4", + "valueHash": "5530bc1e89316fe8", "containsCanary": false } ], @@ -1730,7 +1657,7 @@ "indexedDb": [] } }, - "snapshotIndex": "snapshots/RD-003.index.json" + "snapshotIndex": "snapshots/RD-002.index.json" }, "verdict": "VERIFIED", "evidenceLevel": 2, @@ -1738,80 +1665,7 @@ "detectorMatches": [] }, { - "id": "RD-004", - "action": { - "id": "92a9b567b4fa", - "pageUrl": "http://127.0.0.1:3000/#/editor", - "label": "New Article", - "activation": "click", - "kind": "navigation", - "intent": "navigate", - "risk": "safe", - "fingerprint": { - "selector": "body > div > header > nav > div > ul:nth-of-type(2) > li:nth-of-type(2) > a", - "tag": "a", - "ordinal": 3, - "role": "link", - "accessibleName": "New Article", - "text": "New Article", - "href": "http://127.0.0.1:3000/#/editor", - "candidates": [ - { - "strategy": "role", - "weight": 92, - "role": "link", - "name": "New Article", - "exact": true - }, - { - "strategy": "role", - "weight": 82, - "role": "link", - "name": "New Article", - "exact": false - }, - { - "strategy": "href", - "weight": 72, - "value": "http://127.0.0.1:3000/#/editor" - }, - { - "strategy": "text", - "weight": 60, - "value": "New Article", - "exact": true - }, - { - "strategy": "css", - "weight": 35, - "selector": "body > div > header > nav > div > ul:nth-of-type(2) > li:nth-of-type(2) > a" - } - ] - }, - "fields": [] - }, - "verdict": "SKIPPED", - "evidenceLevel": 0, - "reason": "Navigation target is already the current page.", - "skippedReason": "Navigation target is already the current page.", - "detectorMatches": [], - "evidence": { - "startedAt": "", - "durationMs": 0, - "canary": "", - "network": [], - "console": [], - "pageErrors": [], - "uiClaims": [], - "filledFields": [], - "dialogs": [], - "downloads": [], - "popupUrls": [], - "snapshotIndex": "snapshots/RD-004.index.json" - } - }, - { - "id": "RD-005", + "id": "RD-003", "action": { "id": "9b8462828b58", "pageUrl": "http://127.0.0.1:3000/#/editor", @@ -1880,20 +1734,20 @@ ] }, "evidence": { - "startedAt": "2026-07-23T15:03:27.011Z", - "durationMs": 7204, - "canary": "RD_TEST_84FC94", + "startedAt": "2026-07-26T08:34:02.492Z", + "durationMs": 7331, + "canary": "RD_TEST_F95995", "network": [ { "id": "net-1", "method": "POST", "url": "http://127.0.0.1:3000/api/articles", "resourceType": "xhr", - "startedAt": 1586, + "startedAt": 1612, "status": 201, "ok": true, + "finishedAt": 1630, "contentType": "application/json", - "finishedAt": 1616, "resourceTypeHint": "articles" }, { @@ -1901,10 +1755,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/assets/smiley-cyrus.jpeg", "resourceType": "image", - "startedAt": 1620, + "startedAt": 1635, "status": 200, "ok": true, - "finishedAt": 1626, + "finishedAt": 1640, "contentType": "image/jpeg", "resourceTypeHint": "smiley-cyrus.jpeg" }, @@ -1913,70 +1767,70 @@ "method": "GET", "url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwlxdu.woff2", "resourceType": "font", - "startedAt": 1631, + "startedAt": 1647, "status": 200, "ok": true, - "finishedAt": 1685, + "finishedAt": 1694, "contentType": "font/woff2", "resourceTypeHint": "6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwlxdu.woff2" }, { "id": "net-4", "method": "GET", - "url": "http://127.0.0.1:3000/api/articles/rd-test-84fc94-1/comments", + "url": "http://127.0.0.1:3000/api/articles/rd-test-f95995-1/comments", "resourceType": "xhr", - "startedAt": 1636, + "startedAt": 1650, "status": 200, "ok": true, - "finishedAt": 1651, + "finishedAt": 1662, "contentType": "application/json", "resourceTypeHint": "comments" }, { "id": "net-5", "method": "GET", - "url": "http://127.0.0.1:3000/api/articles/rd-test-84fc94-1", + "url": "http://127.0.0.1:3000/api/articles/rd-test-f95995-1", "resourceType": "xhr", - "startedAt": 1637, + "startedAt": 1651, "status": 200, "ok": true, - "finishedAt": 1659, + "finishedAt": 1667, "contentType": "application/json", - "resourceTypeHint": "rd-test-84fc94-1" + "resourceTypeHint": "rd-test-f95995-1" }, { "id": "net-6", "method": "GET", - "url": "http://127.0.0.1:3000/api/articles/rd-test-84fc94-1/comments", + "url": "http://127.0.0.1:3000/api/articles/rd-test-f95995-1/comments", "resourceType": "xhr", - "startedAt": 1637, + "startedAt": 1651, "status": 200, "ok": true, - "finishedAt": 1654, + "finishedAt": 1663, "contentType": "application/json", "resourceTypeHint": "comments" }, { "id": "net-7", "method": "GET", - "url": "http://127.0.0.1:3000/api/articles/rd-test-84fc94-1", + "url": "http://127.0.0.1:3000/api/articles/rd-test-f95995-1", "resourceType": "xhr", - "startedAt": 1638, + "startedAt": 1652, "status": 200, "ok": true, - "finishedAt": 1676, + "finishedAt": 1680, "contentType": "application/json", - "resourceTypeHint": "rd-test-84fc94-1" + "resourceTypeHint": "rd-test-f95995-1" }, { "id": "net-8", "method": "GET", "url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwlxdu.woff2", "resourceType": "font", - "startedAt": 1683, + "startedAt": 1687, "status": 200, "ok": true, - "finishedAt": 1732, + "finishedAt": 1733, "contentType": "font/woff2", "resourceTypeHint": "6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwlxdu.woff2" }, @@ -1985,22 +1839,22 @@ "method": "GET", "url": "http://127.0.0.1:3000/", "resourceType": "document", - "startedAt": 2736, + "startedAt": 2747, "status": 200, "ok": true, "contentType": "text/html", "resourceTypeHint": "resource", - "finishedAt": 2745 + "finishedAt": 2757 }, { "id": "net-10", "method": "GET", "url": "http://127.0.0.1:3000/@vite/client", "resourceType": "script", - "startedAt": 2743, + "startedAt": 2755, "status": 200, "ok": true, - "finishedAt": 2753, + "finishedAt": 2769, "contentType": "text/javascript", "resourceTypeHint": "client" }, @@ -2009,10 +1863,10 @@ "method": "GET", "url": "http://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css", "resourceType": "stylesheet", - "startedAt": 2744, + "startedAt": 2756, "status": 307, "ok": false, - "finishedAt": 2748, + "finishedAt": 2759, "location": "https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css", "resourceTypeHint": "ionicons.min.css" }, @@ -2021,10 +1875,10 @@ "method": "GET", "url": "http://fonts.googleapis.com/css?family=Titillium+Web:700|Source+Serif+Pro:400,700|Merriweather+Sans:400,700|Source+Sans+Pro:400,300,600,700,300italic,400italic,600italic,700italic", "resourceType": "stylesheet", - "startedAt": 2744, + "startedAt": 2756, "status": 200, "ok": true, - "finishedAt": 2794, + "finishedAt": 2807, "contentType": "text/css", "resourceTypeHint": "css" }, @@ -2033,10 +1887,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/main.jsx", "resourceType": "script", - "startedAt": 2745, + "startedAt": 2756, "status": 200, "ok": true, - "finishedAt": 2751, + "finishedAt": 2763, "contentType": "text/javascript", "resourceTypeHint": "main.jsx" }, @@ -2045,10 +1899,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/@react-refresh", "resourceType": "script", - "startedAt": 2745, + "startedAt": 2757, "status": 200, "ok": true, - "finishedAt": 2753, + "finishedAt": 2770, "contentType": "text/javascript", "resourceTypeHint": "@react-refresh" }, @@ -2057,10 +1911,10 @@ "method": "GET", "url": "https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css", "resourceType": "stylesheet", - "startedAt": 2748, + "startedAt": 2759, "status": 200, "ok": true, - "finishedAt": 2868, + "finishedAt": 3059, "contentType": "text/css", "resourceTypeHint": "ionicons.min.css" }, @@ -2069,10 +1923,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/node_modules/.vite/deps/react_jsx-dev-runtime.js?v=96de0870", "resourceType": "script", - "startedAt": 2752, + "startedAt": 2764, "status": 200, "ok": true, - "finishedAt": 2766, + "finishedAt": 2773, "contentType": "text/javascript", "resourceTypeHint": "react_jsx-dev-runtime.js" }, @@ -2081,22 +1935,22 @@ "method": "GET", "url": "http://127.0.0.1:3000/node_modules/.vite/deps/react.js?v=96de0870", "resourceType": "script", - "startedAt": 2753, + "startedAt": 2765, "status": 200, "ok": true, - "finishedAt": 2768, "contentType": "text/javascript", - "resourceTypeHint": "react.js" + "resourceTypeHint": "react.js", + "finishedAt": 2777 }, { "id": "net-18", "method": "GET", "url": "http://127.0.0.1:3000/node_modules/.vite/deps/react-dom_client.js?v=96de0870", "resourceType": "script", - "startedAt": 2753, + "startedAt": 2765, "status": 200, "ok": true, - "finishedAt": 2777, + "finishedAt": 2803, "contentType": "text/javascript", "resourceTypeHint": "react-dom_client.js" }, @@ -2105,10 +1959,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/node_modules/.vite/deps/react-router-dom.js?v=96de0870", "resourceType": "script", - "startedAt": 2754, + "startedAt": 2765, "status": 200, "ok": true, - "finishedAt": 2776, + "finishedAt": 2795, "contentType": "text/javascript", "resourceTypeHint": "react-router-dom.js" }, @@ -2117,10 +1971,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/App.jsx", "resourceType": "script", - "startedAt": 2755, + "startedAt": 2765, "status": 200, "ok": true, - "finishedAt": 2770, + "finishedAt": 2784, "contentType": "text/javascript", "resourceTypeHint": "App.jsx" }, @@ -2129,22 +1983,22 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/context/AuthContext.jsx", "resourceType": "script", - "startedAt": 2755, + "startedAt": 2766, "status": 200, "ok": true, - "finishedAt": 2770, "contentType": "text/javascript", - "resourceTypeHint": "AuthContext.jsx" + "resourceTypeHint": "AuthContext.jsx", + "finishedAt": 2785 }, { "id": "net-22", "method": "GET", "url": "http://127.0.0.1:3000/src/styles.css", "resourceType": "script", - "startedAt": 2757, + "startedAt": 2767, "status": 200, "ok": true, - "finishedAt": 2776, + "finishedAt": 2783, "contentType": "text/javascript", "resourceTypeHint": "styles.css" }, @@ -2153,10 +2007,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/index.css", "resourceType": "script", - "startedAt": 2757, + "startedAt": 2767, "status": 200, "ok": true, - "finishedAt": 2773, + "finishedAt": 2785, "contentType": "text/javascript", "resourceTypeHint": "index.css" }, @@ -2165,10 +2019,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/reportWebVitals.js", "resourceType": "script", - "startedAt": 2757, + "startedAt": 2768, "status": 200, "ok": true, - "finishedAt": 2775, + "finishedAt": 2785, "contentType": "text/javascript", "resourceTypeHint": "reportWebVitals.js" }, @@ -2177,10 +2031,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/routes/Article/Article.jsx", "resourceType": "script", - "startedAt": 2758, + "startedAt": 2768, "status": 200, "ok": true, - "finishedAt": 2777, + "finishedAt": 2788, "contentType": "text/javascript", "resourceTypeHint": "Article.jsx" }, @@ -2189,10 +2043,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/routes/Article/CommentsSection.jsx", "resourceType": "script", - "startedAt": 2758, + "startedAt": 2768, "status": 200, "ok": true, - "finishedAt": 2778, + "finishedAt": 2787, "contentType": "text/javascript", "resourceTypeHint": "CommentsSection.jsx" }, @@ -2201,10 +2055,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/routes/ArticleEditor.jsx", "resourceType": "script", - "startedAt": 2758, + "startedAt": 2769, "status": 200, "ok": true, - "finishedAt": 2779, + "finishedAt": 2788, "contentType": "text/javascript", "resourceTypeHint": "ArticleEditor.jsx" }, @@ -2213,10 +2067,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/routes/Home.jsx", "resourceType": "script", - "startedAt": 2758, + "startedAt": 2769, "status": 200, "ok": true, - "finishedAt": 2794, + "finishedAt": 2789, "contentType": "text/javascript", "resourceTypeHint": "Home.jsx" }, @@ -2225,10 +2079,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/routes/HomeArticles.jsx", "resourceType": "script", - "startedAt": 2759, + "startedAt": 2769, "status": 200, "ok": true, - "finishedAt": 2794, + "finishedAt": 2790, "contentType": "text/javascript", "resourceTypeHint": "HomeArticles.jsx" }, @@ -2237,10 +2091,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/routes/Login.jsx", "resourceType": "script", - "startedAt": 2759, + "startedAt": 2770, "status": 200, "ok": true, - "finishedAt": 2794, + "finishedAt": 2790, "contentType": "text/javascript", "resourceTypeHint": "Login.jsx" }, @@ -2249,10 +2103,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/routes/NotFound.jsx", "resourceType": "script", - "startedAt": 2759, + "startedAt": 2770, "status": 200, "ok": true, - "finishedAt": 2822, + "finishedAt": 2797, "contentType": "text/javascript", "resourceTypeHint": "NotFound.jsx" }, @@ -2261,10 +2115,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/routes/Profile/Profile.jsx", "resourceType": "script", - "startedAt": 2759, + "startedAt": 2770, "status": 200, "ok": true, - "finishedAt": 2822, + "finishedAt": 2797, "contentType": "text/javascript", "resourceTypeHint": "Profile.jsx" }, @@ -2273,10 +2127,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/routes/Profile/ProfileArticles.jsx", "resourceType": "script", - "startedAt": 2760, + "startedAt": 2770, "status": 200, "ok": true, - "finishedAt": 2822, + "finishedAt": 2799, "contentType": "text/javascript", "resourceTypeHint": "ProfileArticles.jsx" }, @@ -2285,10 +2139,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/routes/Profile/ProfileFavArticles.jsx", "resourceType": "script", - "startedAt": 2760, + "startedAt": 2771, "status": 200, "ok": true, - "finishedAt": 2822, + "finishedAt": 2800, "contentType": "text/javascript", "resourceTypeHint": "ProfileFavArticles.jsx" }, @@ -2297,10 +2151,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/routes/Settings.jsx", "resourceType": "script", - "startedAt": 2760, + "startedAt": 2771, "status": 200, "ok": true, - "finishedAt": 2822, + "finishedAt": 2800, "contentType": "text/javascript", "resourceTypeHint": "Settings.jsx" }, @@ -2309,10 +2163,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/routes/SignUp.jsx", "resourceType": "script", - "startedAt": 2760, + "startedAt": 2771, "status": 200, "ok": true, - "finishedAt": 2822, + "finishedAt": 2802, "contentType": "text/javascript", "resourceTypeHint": "SignUp.jsx" }, @@ -2321,10 +2175,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/@fs/F:/RealDone/work/real-projects/conduit-postgres/node_modules/vite/dist/client/env.mjs", "resourceType": "script", - "startedAt": 2760, + "startedAt": 2771, "status": 200, "ok": true, - "finishedAt": 2822, + "finishedAt": 2802, "contentType": "text/javascript", "resourceTypeHint": "env.mjs" }, @@ -2333,10 +2187,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/node_modules/.vite/deps/chunk-MP6PTA7G.js?v=96de0870", "resourceType": "script", - "startedAt": 2766, + "startedAt": 2773, "status": 200, "ok": true, - "finishedAt": 2823, + "finishedAt": 2803, "contentType": "text/javascript", "resourceTypeHint": "chunk-MP6PTA7G.js" }, @@ -2345,10 +2199,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/node_modules/.vite/deps/chunk-G3PMV62Z.js?v=96de0870", "resourceType": "script", - "startedAt": 2767, + "startedAt": 2773, "status": 200, "ok": true, - "finishedAt": 2823, + "finishedAt": 2803, "contentType": "text/javascript", "resourceTypeHint": "chunk-G3PMV62Z.js" }, @@ -2357,10 +2211,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/Footer/index.js", "resourceType": "script", - "startedAt": 2774, + "startedAt": 2790, "status": 200, "ok": true, - "finishedAt": 2823, + "finishedAt": 2804, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, @@ -2369,10 +2223,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/Navbar/index.js", "resourceType": "script", - "startedAt": 2774, + "startedAt": 2791, "status": 200, "ok": true, - "finishedAt": 2823, + "finishedAt": 2804, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, @@ -2381,250 +2235,250 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/services/getUser.js", "resourceType": "script", - "startedAt": 2774, + "startedAt": 2791, "status": 200, "ok": true, - "finishedAt": 2823, + "finishedAt": 2804, "contentType": "text/javascript", "resourceTypeHint": "getUser.js" }, { "id": "net-43", "method": "GET", - "url": "http://127.0.0.1:3000/node_modules/.vite/deps/chunk-HYJYOVZJ.js?v=96de0870", + "url": "http://127.0.0.1:3000/src/components/CommentEditor/index.js", "resourceType": "script", - "startedAt": 2779, + "startedAt": 2793, "status": 200, "ok": true, - "finishedAt": 2823, + "finishedAt": 2809, "contentType": "text/javascript", - "resourceTypeHint": "chunk-HYJYOVZJ.js" + "resourceTypeHint": "index.js" }, { "id": "net-44", "method": "GET", - "url": "http://127.0.0.1:3000/node_modules/.vite/deps/markdown-to-jsx.js?v=96de0870", + "url": "http://127.0.0.1:3000/src/components/CommentList/index.js", "resourceType": "script", - "startedAt": 2781, + "startedAt": 2793, "status": 200, "ok": true, - "finishedAt": 2824, + "finishedAt": 2809, "contentType": "text/javascript", - "resourceTypeHint": "markdown-to-jsx.js" + "resourceTypeHint": "index.js" }, { "id": "net-45", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/ArticleMeta/index.js", + "url": "http://127.0.0.1:3000/src/components/ArticleEditorForm/index.js", "resourceType": "script", - "startedAt": 2781, + "startedAt": 2793, "status": 200, "ok": true, - "finishedAt": 2823, + "finishedAt": 2809, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, { "id": "net-46", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/ArticlesButtons/index.js", + "url": "http://127.0.0.1:3000/src/components/ContainerRow/index.js", "resourceType": "script", - "startedAt": 2781, + "startedAt": 2793, "status": 200, "ok": true, - "finishedAt": 2823, + "finishedAt": 2809, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, { "id": "net-47", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/ArticleTags/index.js", + "url": "http://127.0.0.1:3000/node_modules/.vite/deps/markdown-to-jsx.js?v=96de0870", "resourceType": "script", - "startedAt": 2781, + "startedAt": 2794, "status": 200, "ok": true, - "finishedAt": 2823, + "finishedAt": 2814, "contentType": "text/javascript", - "resourceTypeHint": "index.js" + "resourceTypeHint": "markdown-to-jsx.js" }, { "id": "net-48", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/BannerContainer/index.js", + "url": "http://127.0.0.1:3000/src/components/ArticleMeta/index.js", "resourceType": "script", - "startedAt": 2782, + "startedAt": 2794, "status": 200, "ok": true, - "finishedAt": 2823, + "finishedAt": 2812, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, { "id": "net-49", "method": "GET", - "url": "http://127.0.0.1:3000/src/services/getArticle.js", + "url": "http://127.0.0.1:3000/src/components/ArticlesButtons/index.js", "resourceType": "script", - "startedAt": 2782, + "startedAt": 2794, "status": 200, "ok": true, - "finishedAt": 2823, + "finishedAt": 2813, "contentType": "text/javascript", - "resourceTypeHint": "getArticle.js" + "resourceTypeHint": "index.js" }, { "id": "net-50", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/CommentEditor/index.js", + "url": "http://127.0.0.1:3000/src/components/ArticleTags/index.js", "resourceType": "script", - "startedAt": 2782, + "startedAt": 2797, "status": 200, "ok": true, - "finishedAt": 2824, + "finishedAt": 2815, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, { "id": "net-51", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/CommentList/index.js", + "url": "http://127.0.0.1:3000/src/components/BannerContainer/index.js", "resourceType": "script", - "startedAt": 2782, + "startedAt": 2797, "status": 200, "ok": true, - "finishedAt": 2824, + "finishedAt": 2817, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, { "id": "net-52", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/ArticleEditorForm/index.js", + "url": "http://127.0.0.1:3000/src/services/getArticle.js", "resourceType": "script", - "startedAt": 2794, + "startedAt": 2797, "status": 200, "ok": true, - "finishedAt": 2827, + "finishedAt": 2817, "contentType": "text/javascript", - "resourceTypeHint": "index.js" + "resourceTypeHint": "getArticle.js" }, { "id": "net-53", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/ContainerRow/index.js", + "url": "http://127.0.0.1:3000/src/components/FeedToggler/index.js", "resourceType": "script", - "startedAt": 2795, + "startedAt": 2798, "status": 200, "ok": true, - "finishedAt": 2827, + "finishedAt": 2817, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, { "id": "net-54", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/FeedToggler/index.js", + "url": "http://127.0.0.1:3000/src/context/FeedContext.jsx", "resourceType": "script", - "startedAt": 2827, + "startedAt": 2798, "status": 200, "ok": true, - "finishedAt": 2841, + "finishedAt": 2818, "contentType": "text/javascript", - "resourceTypeHint": "index.js" + "resourceTypeHint": "FeedContext.jsx" }, { "id": "net-55", "method": "GET", - "url": "http://127.0.0.1:3000/src/context/FeedContext.jsx", + "url": "http://127.0.0.1:3000/src/components/PopularTags/index.js", "resourceType": "script", - "startedAt": 2827, + "startedAt": 2798, "status": 200, "ok": true, - "finishedAt": 2843, + "finishedAt": 2818, "contentType": "text/javascript", - "resourceTypeHint": "FeedContext.jsx" + "resourceTypeHint": "index.js" }, { "id": "net-56", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/PopularTags/index.js", + "url": "http://127.0.0.1:3000/src/components/ArticlesPagination/index.js", "resourceType": "script", - "startedAt": 2827, + "startedAt": 2798, "status": 200, "ok": true, - "finishedAt": 2842, + "finishedAt": 2818, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, { "id": "net-57", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/ArticlesPagination/index.js", + "url": "http://127.0.0.1:3000/src/components/ArticlesPreview/index.js", "resourceType": "script", - "startedAt": 2827, + "startedAt": 2799, "status": 200, "ok": true, - "finishedAt": 2842, + "finishedAt": 2818, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, { "id": "net-58", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/ArticlesPreview/index.js", + "url": "http://127.0.0.1:3000/src/hooks/useArticles.js", "resourceType": "script", - "startedAt": 2828, + "startedAt": 2799, "status": 200, "ok": true, - "finishedAt": 2843, + "finishedAt": 2819, "contentType": "text/javascript", - "resourceTypeHint": "index.js" + "resourceTypeHint": "useArticles.js" }, { "id": "net-59", "method": "GET", - "url": "http://127.0.0.1:3000/src/hooks/useArticles.js", + "url": "http://127.0.0.1:3000/src/components/AuthPageContainer/index.js", "resourceType": "script", - "startedAt": 2828, + "startedAt": 2799, "status": 200, "ok": true, - "finishedAt": 2844, + "finishedAt": 2820, "contentType": "text/javascript", - "resourceTypeHint": "useArticles.js" + "resourceTypeHint": "index.js" }, { "id": "net-60", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/AuthPageContainer/index.js", + "url": "http://127.0.0.1:3000/src/components/LoginForm/index.js", "resourceType": "script", - "startedAt": 2828, + "startedAt": 2799, "status": 200, "ok": true, - "finishedAt": 2846, + "finishedAt": 2821, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, { "id": "net-61", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/LoginForm/index.js", + "url": "http://127.0.0.1:3000/node_modules/.vite/deps/chunk-HYJYOVZJ.js?v=96de0870", "resourceType": "script", - "startedAt": 2828, + "startedAt": 2802, "status": 200, "ok": true, - "finishedAt": 2846, + "finishedAt": 2823, "contentType": "text/javascript", - "resourceTypeHint": "index.js" + "resourceTypeHint": "chunk-HYJYOVZJ.js" }, { "id": "net-62", "method": "GET", "url": "http://127.0.0.1:3000/src/components/AuthorInfo/index.js", "resourceType": "script", - "startedAt": 2828, + "startedAt": 2802, "status": 200, "ok": true, - "finishedAt": 2846, + "finishedAt": 2822, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, @@ -2633,10 +2487,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/NavItem/index.js", "resourceType": "script", - "startedAt": 2829, + "startedAt": 2802, "status": 200, "ok": true, - "finishedAt": 2846, + "finishedAt": 2824, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, @@ -2645,10 +2499,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/SettingsForm/index.js", "resourceType": "script", - "startedAt": 2829, + "startedAt": 2803, "status": 200, "ok": true, - "finishedAt": 2848, + "finishedAt": 2825, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, @@ -2657,10 +2511,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/SignUpForm/index.js", "resourceType": "script", - "startedAt": 2829, + "startedAt": 2803, "status": 200, "ok": true, - "finishedAt": 2849, + "finishedAt": 2825, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, @@ -2669,10 +2523,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/Footer/Footer.jsx", "resourceType": "script", - "startedAt": 2829, + "startedAt": 2804, "status": 200, "ok": true, - "finishedAt": 2849, + "finishedAt": 2825, "contentType": "text/javascript", "resourceTypeHint": "Footer.jsx" }, @@ -2681,10 +2535,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/Navbar/Navbar.jsx", "resourceType": "script", - "startedAt": 2829, + "startedAt": 2804, "status": 200, "ok": true, - "finishedAt": 2852, + "finishedAt": 2826, "contentType": "text/javascript", "resourceTypeHint": "Navbar.jsx" }, @@ -2693,10 +2547,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/node_modules/.vite/deps/axios.js?v=96de0870", "resourceType": "script", - "startedAt": 2829, + "startedAt": 2805, "status": 200, "ok": true, - "finishedAt": 2858, + "finishedAt": 2830, "contentType": "text/javascript", "resourceTypeHint": "axios.js" }, @@ -2705,118 +2559,118 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/helpers/errorHandler.js", "resourceType": "script", - "startedAt": 2830, + "startedAt": 2805, "status": 200, "ok": true, - "finishedAt": 2853, + "finishedAt": 2826, "contentType": "text/javascript", "resourceTypeHint": "errorHandler.js" }, { "id": "net-70", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/ArticleMeta/ArticleMeta.jsx", + "url": "http://127.0.0.1:3000/src/components/CommentEditor/CommentEditor.jsx", "resourceType": "script", - "startedAt": 2830, + "startedAt": 2809, "status": 200, "ok": true, - "finishedAt": 2856, + "finishedAt": 2830, "contentType": "text/javascript", - "resourceTypeHint": "ArticleMeta.jsx" + "resourceTypeHint": "CommentEditor.jsx" }, { "id": "net-71", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/ArticlesButtons/ArticlesButtons.jsx", + "url": "http://127.0.0.1:3000/src/components/CommentList/CommentList.jsx", "resourceType": "script", - "startedAt": 2830, + "startedAt": 2809, "status": 200, "ok": true, - "finishedAt": 2856, + "finishedAt": 2830, "contentType": "text/javascript", - "resourceTypeHint": "ArticlesButtons.jsx" + "resourceTypeHint": "CommentList.jsx" }, { "id": "net-72", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/ArticleTags/ArticleTags.jsx", + "url": "http://127.0.0.1:3000/src/components/ArticleEditorForm/ArticleEditorForm.jsx", "resourceType": "script", - "startedAt": 2830, + "startedAt": 2810, "status": 200, "ok": true, - "finishedAt": 2857, + "finishedAt": 2830, "contentType": "text/javascript", - "resourceTypeHint": "ArticleTags.jsx" + "resourceTypeHint": "ArticleEditorForm.jsx" }, { "id": "net-73", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/BannerContainer/BannerContainer.jsx", + "url": "http://127.0.0.1:3000/src/components/ContainerRow/ContainerRow.jsx", "resourceType": "script", - "startedAt": 2830, + "startedAt": 2812, "status": 200, "ok": true, - "finishedAt": 2857, + "finishedAt": 2833, "contentType": "text/javascript", - "resourceTypeHint": "BannerContainer.jsx" + "resourceTypeHint": "ContainerRow.jsx" }, { "id": "net-74", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/CommentEditor/CommentEditor.jsx", + "url": "http://127.0.0.1:3000/src/components/ArticleMeta/ArticleMeta.jsx", "resourceType": "script", - "startedAt": 2831, + "startedAt": 2813, "status": 200, "ok": true, - "finishedAt": 2858, + "finishedAt": 2834, "contentType": "text/javascript", - "resourceTypeHint": "CommentEditor.jsx" + "resourceTypeHint": "ArticleMeta.jsx" }, { "id": "net-75", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/CommentList/CommentList.jsx", + "url": "http://127.0.0.1:3000/src/components/ArticlesButtons/ArticlesButtons.jsx", "resourceType": "script", - "startedAt": 2831, + "startedAt": 2813, "status": 200, "ok": true, - "finishedAt": 2858, + "finishedAt": 2834, "contentType": "text/javascript", - "resourceTypeHint": "CommentList.jsx" + "resourceTypeHint": "ArticlesButtons.jsx" }, { "id": "net-76", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/ArticleEditorForm/ArticleEditorForm.jsx", + "url": "http://127.0.0.1:3000/src/components/ArticleTags/ArticleTags.jsx", "resourceType": "script", - "startedAt": 2831, + "startedAt": 2817, "status": 200, "ok": true, - "finishedAt": 2859, + "finishedAt": 2837, "contentType": "text/javascript", - "resourceTypeHint": "ArticleEditorForm.jsx" + "resourceTypeHint": "ArticleTags.jsx" }, { "id": "net-77", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/ContainerRow/ContainerRow.jsx", + "url": "http://127.0.0.1:3000/src/components/BannerContainer/BannerContainer.jsx", "resourceType": "script", - "startedAt": 2831, + "startedAt": 2821, "status": 200, "ok": true, - "finishedAt": 2859, + "finishedAt": 2839, "contentType": "text/javascript", - "resourceTypeHint": "ContainerRow.jsx" + "resourceTypeHint": "BannerContainer.jsx" }, { "id": "net-78", "method": "GET", "url": "http://127.0.0.1:3000/src/components/FeedToggler/FeedToggler.jsx", "resourceType": "script", - "startedAt": 2844, + "startedAt": 2821, "status": 200, "ok": true, - "finishedAt": 2864, + "finishedAt": 2839, "contentType": "text/javascript", "resourceTypeHint": "FeedToggler.jsx" }, @@ -2825,10 +2679,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/PopularTags/PopularTags.jsx", "resourceType": "script", - "startedAt": 2845, + "startedAt": 2821, "status": 200, "ok": true, - "finishedAt": 2865, + "finishedAt": 2839, "contentType": "text/javascript", "resourceTypeHint": "PopularTags.jsx" }, @@ -2837,10 +2691,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/ArticlesPagination/ArticlesPagination.jsx", "resourceType": "script", - "startedAt": 2849, + "startedAt": 2822, "status": 200, "ok": true, - "finishedAt": 2871, + "finishedAt": 2840, "contentType": "text/javascript", "resourceTypeHint": "ArticlesPagination.jsx" }, @@ -2849,10 +2703,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/ArticlesPreview/ArticlesPreview.jsx", "resourceType": "script", - "startedAt": 2849, + "startedAt": 2822, "status": 200, "ok": true, - "finishedAt": 2871, + "finishedAt": 2840, "contentType": "text/javascript", "resourceTypeHint": "ArticlesPreview.jsx" }, @@ -2861,10 +2715,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/services/getArticles.js", "resourceType": "script", - "startedAt": 2850, + "startedAt": 2825, "status": 200, "ok": true, - "finishedAt": 2871, + "finishedAt": 2843, "contentType": "text/javascript", "resourceTypeHint": "getArticles.js" }, @@ -2873,10 +2727,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/AuthPageContainer/AuthPageContainer.jsx", "resourceType": "script", - "startedAt": 2852, + "startedAt": 2825, "status": 200, "ok": true, - "finishedAt": 2872, + "finishedAt": 2843, "contentType": "text/javascript", "resourceTypeHint": "AuthPageContainer.jsx" }, @@ -2885,10 +2739,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/LoginForm/LoginForm.jsx", "resourceType": "script", - "startedAt": 2852, + "startedAt": 2825, "status": 200, "ok": true, - "finishedAt": 2872, + "finishedAt": 2843, "contentType": "text/javascript", "resourceTypeHint": "LoginForm.jsx" }, @@ -2897,10 +2751,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/AuthorInfo/AuthorInfo.jsx", "resourceType": "script", - "startedAt": 2856, + "startedAt": 2826, "status": 200, "ok": true, - "finishedAt": 2876, + "finishedAt": 2844, "contentType": "text/javascript", "resourceTypeHint": "AuthorInfo.jsx" }, @@ -2909,10 +2763,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/NavItem/NavItem.jsx", "resourceType": "script", - "startedAt": 2856, + "startedAt": 2826, "status": 200, "ok": true, - "finishedAt": 2876, + "finishedAt": 2844, "contentType": "text/javascript", "resourceTypeHint": "NavItem.jsx" }, @@ -2921,10 +2775,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/SettingsForm/SettingsForm.jsx", "resourceType": "script", - "startedAt": 2856, + "startedAt": 2826, "status": 200, "ok": true, - "finishedAt": 2877, + "finishedAt": 2844, "contentType": "text/javascript", "resourceTypeHint": "SettingsForm.jsx" }, @@ -2933,10 +2787,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/SignUpForm/SignUpForm.jsx", "resourceType": "script", - "startedAt": 2857, + "startedAt": 2827, "status": 200, "ok": true, - "finishedAt": 2877, + "finishedAt": 2845, "contentType": "text/javascript", "resourceTypeHint": "SignUpForm.jsx" }, @@ -2945,10 +2799,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/SourceCodeLink/index.js", "resourceType": "script", - "startedAt": 2857, + "startedAt": 2827, "status": 200, "ok": true, - "finishedAt": 2877, + "finishedAt": 2845, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, @@ -2957,142 +2811,142 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/Navbar/DropdownMenu.jsx", "resourceType": "script", - "startedAt": 2857, + "startedAt": 2829, "status": 200, "ok": true, - "finishedAt": 2877, + "finishedAt": 2848, "contentType": "text/javascript", "resourceTypeHint": "DropdownMenu.jsx" }, { "id": "net-91", "method": "GET", - "url": "http://127.0.0.1:3000/src/helpers/dateFormatter.js", + "url": "http://127.0.0.1:3000/src/services/postComment.js", "resourceType": "script", - "startedAt": 2857, + "startedAt": 2830, "status": 200, "ok": true, - "finishedAt": 2880, + "finishedAt": 2849, "contentType": "text/javascript", - "resourceTypeHint": "dateFormatter.js" + "resourceTypeHint": "postComment.js" }, { "id": "net-92", "method": "GET", "url": "http://127.0.0.1:3000/src/components/Avatar/index.js", "resourceType": "script", - "startedAt": 2858, + "startedAt": 2831, "status": 200, "ok": true, - "finishedAt": 2880, + "finishedAt": 2849, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, { "id": "net-93", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/ArticleAuthorButtons/index.js", + "url": "http://127.0.0.1:3000/src/helpers/dateFormatter.js", "resourceType": "script", - "startedAt": 2858, + "startedAt": 2831, "status": 200, "ok": true, - "finishedAt": 2880, + "finishedAt": 2849, "contentType": "text/javascript", - "resourceTypeHint": "index.js" + "resourceTypeHint": "dateFormatter.js" }, { "id": "net-94", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/FavButton/index.js", + "url": "http://127.0.0.1:3000/src/services/deleteComment.js", "resourceType": "script", - "startedAt": 2859, + "startedAt": 2831, "status": 200, "ok": true, - "finishedAt": 2882, + "finishedAt": 2849, "contentType": "text/javascript", - "resourceTypeHint": "index.js" + "resourceTypeHint": "deleteComment.js" }, { "id": "net-95", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/FollowButton/index.js", + "url": "http://127.0.0.1:3000/src/services/getComments.js", "resourceType": "script", - "startedAt": 2859, + "startedAt": 2832, "status": 200, "ok": true, - "finishedAt": 2882, + "finishedAt": 2850, "contentType": "text/javascript", - "resourceTypeHint": "index.js" + "resourceTypeHint": "getComments.js" }, { "id": "net-96", "method": "GET", - "url": "http://127.0.0.1:3000/src/services/postComment.js", + "url": "http://127.0.0.1:3000/src/components/CommentList/CommentAuthor.jsx", "resourceType": "script", - "startedAt": 2863, + "startedAt": 2833, "status": 200, "ok": true, - "finishedAt": 2886, + "finishedAt": 2851, "contentType": "text/javascript", - "resourceTypeHint": "postComment.js" + "resourceTypeHint": "CommentAuthor.jsx" }, { "id": "net-97", "method": "GET", - "url": "http://127.0.0.1:3000/src/services/deleteComment.js", + "url": "http://127.0.0.1:3000/src/services/setArticle.js", "resourceType": "script", - "startedAt": 2864, + "startedAt": 2833, "status": 200, "ok": true, - "finishedAt": 2886, + "finishedAt": 2852, "contentType": "text/javascript", - "resourceTypeHint": "deleteComment.js" + "resourceTypeHint": "setArticle.js" }, { "id": "net-98", "method": "GET", - "url": "http://127.0.0.1:3000/src/services/getComments.js", + "url": "http://127.0.0.1:3000/src/components/FormFieldset/index.js", "resourceType": "script", - "startedAt": 2864, + "startedAt": 2834, "status": 200, "ok": true, - "finishedAt": 2886, + "finishedAt": 2852, "contentType": "text/javascript", - "resourceTypeHint": "getComments.js" + "resourceTypeHint": "index.js" }, { "id": "net-99", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/CommentList/CommentAuthor.jsx", + "url": "http://127.0.0.1:3000/src/components/ArticleAuthorButtons/index.js", "resourceType": "script", - "startedAt": 2864, + "startedAt": 2834, "status": 200, "ok": true, - "finishedAt": 2887, + "finishedAt": 2852, "contentType": "text/javascript", - "resourceTypeHint": "CommentAuthor.jsx" + "resourceTypeHint": "index.js" }, { "id": "net-100", "method": "GET", - "url": "http://127.0.0.1:3000/src/services/setArticle.js", + "url": "http://127.0.0.1:3000/src/components/FavButton/index.js", "resourceType": "script", - "startedAt": 2865, + "startedAt": 2834, "status": 200, "ok": true, - "finishedAt": 2886, + "finishedAt": 2852, "contentType": "text/javascript", - "resourceTypeHint": "setArticle.js" + "resourceTypeHint": "index.js" }, { "id": "net-101", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/FormFieldset/index.js", + "url": "http://127.0.0.1:3000/src/components/FollowButton/index.js", "resourceType": "script", - "startedAt": 2865, + "startedAt": 2835, "status": 200, "ok": true, - "finishedAt": 2887, + "finishedAt": 2854, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, @@ -3101,10 +2955,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/FeedToggler/FeedNavLink.jsx", "resourceType": "script", - "startedAt": 2865, + "startedAt": 2839, "status": 200, "ok": true, - "finishedAt": 2887, + "finishedAt": 2854, "contentType": "text/javascript", "resourceTypeHint": "FeedNavLink.jsx" }, @@ -3113,10 +2967,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/services/getTags.js", "resourceType": "script", - "startedAt": 2865, + "startedAt": 2840, "status": 200, "ok": true, - "finishedAt": 2888, + "finishedAt": 2854, "contentType": "text/javascript", "resourceTypeHint": "getTags.js" }, @@ -3125,10 +2979,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/PopularTags/TagButton.jsx", "resourceType": "script", - "startedAt": 2865, + "startedAt": 2840, "status": 200, "ok": true, - "finishedAt": 2888, + "finishedAt": 2856, "contentType": "text/javascript", "resourceTypeHint": "TagButton.jsx" }, @@ -3137,10 +2991,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/node_modules/.vite/deps/react-paginate.js?v=96de0870", "resourceType": "script", - "startedAt": 2871, + "startedAt": 2840, "status": 200, "ok": true, - "finishedAt": 2888, + "finishedAt": 2856, "contentType": "text/javascript", "resourceTypeHint": "react-paginate.js" }, @@ -3149,10 +3003,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/services/userLogin.js", "resourceType": "script", - "startedAt": 2872, + "startedAt": 2846, "status": 200, "ok": true, - "finishedAt": 2888, + "finishedAt": 2856, "contentType": "text/javascript", "resourceTypeHint": "userLogin.js" }, @@ -3161,58 +3015,58 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/services/getProfile.js", "resourceType": "script", - "startedAt": 2879, + "startedAt": 2847, "status": 200, "ok": true, - "finishedAt": 2891, + "finishedAt": 2856, "contentType": "text/javascript", "resourceTypeHint": "getProfile.js" }, { "id": "net-108", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/SourceCodeLink/SourceCodeLink.jsx", + "url": "http://127.0.0.1:3000/src/services/userUpdate.js", "resourceType": "script", - "startedAt": 2879, + "startedAt": 2847, "status": 200, "ok": true, - "finishedAt": 2891, + "finishedAt": 2857, "contentType": "text/javascript", - "resourceTypeHint": "SourceCodeLink.jsx" + "resourceTypeHint": "userUpdate.js" }, { "id": "net-109", "method": "GET", "url": "http://127.0.0.1:3000/src/services/userSignUp.js", "resourceType": "script", - "startedAt": 2882, + "startedAt": 2848, "status": 200, "ok": true, - "finishedAt": 2892, + "finishedAt": 2857, "contentType": "text/javascript", "resourceTypeHint": "userSignUp.js" }, { "id": "net-110", "method": "GET", - "url": "http://127.0.0.1:3000/src/services/userUpdate.js", + "url": "http://127.0.0.1:3000/src/components/SourceCodeLink/SourceCodeLink.jsx", "resourceType": "script", - "startedAt": 2882, + "startedAt": 2848, "status": 200, "ok": true, - "finishedAt": 2892, + "finishedAt": 2858, "contentType": "text/javascript", - "resourceTypeHint": "userUpdate.js" + "resourceTypeHint": "SourceCodeLink.jsx" }, { "id": "net-111", "method": "GET", "url": "http://127.0.0.1:3000/src/services/userLogout.js", "resourceType": "script", - "startedAt": 2882, + "startedAt": 2852, "status": 200, "ok": true, - "finishedAt": 2893, + "finishedAt": 2859, "contentType": "text/javascript", "resourceTypeHint": "userLogout.js" }, @@ -3221,10 +3075,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/Navbar/DropdownItem.jsx", "resourceType": "script", - "startedAt": 2883, + "startedAt": 2852, "status": 200, "ok": true, - "finishedAt": 2893, + "finishedAt": 2859, "contentType": "text/javascript", "resourceTypeHint": "DropdownItem.jsx" }, @@ -3233,106 +3087,106 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/Avatar/Avatar.jsx", "resourceType": "script", - "startedAt": 2886, + "startedAt": 2852, "status": 200, "ok": true, - "finishedAt": 2895, + "finishedAt": 2859, "contentType": "text/javascript", "resourceTypeHint": "Avatar.jsx" }, { "id": "net-114", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/ArticleAuthorButtons/ArticleAuthorButtons.jsx", + "url": "http://127.0.0.1:3000/src/components/FormFieldset/FormFieldset.jsx", "resourceType": "script", - "startedAt": 2887, + "startedAt": 2855, "status": 200, "ok": true, - "finishedAt": 2896, "contentType": "text/javascript", - "resourceTypeHint": "ArticleAuthorButtons.jsx" + "resourceTypeHint": "FormFieldset.jsx", + "finishedAt": 2861 }, { "id": "net-115", "method": "GET", "url": "http://127.0.0.1:3000/src/components/FavButton/FavButton.jsx", "resourceType": "script", - "startedAt": 2887, + "startedAt": 2855, "status": 200, "ok": true, - "finishedAt": 2896, + "finishedAt": 2861, "contentType": "text/javascript", "resourceTypeHint": "FavButton.jsx" }, { "id": "net-116", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/FollowButton/FollowButton.jsx", + "url": "http://127.0.0.1:3000/src/components/ArticleAuthorButtons/ArticleAuthorButtons.jsx", "resourceType": "script", - "startedAt": 2887, + "startedAt": 2855, "status": 200, "ok": true, - "finishedAt": 2896, + "finishedAt": 2861, "contentType": "text/javascript", - "resourceTypeHint": "FollowButton.jsx" + "resourceTypeHint": "ArticleAuthorButtons.jsx" }, { "id": "net-117", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/FormFieldset/FormFieldset.jsx", + "url": "http://127.0.0.1:3000/src/components/FollowButton/FollowButton.jsx", "resourceType": "script", - "startedAt": 2888, + "startedAt": 2856, "status": 200, "ok": true, - "finishedAt": 2897, + "finishedAt": 2862, "contentType": "text/javascript", - "resourceTypeHint": "FormFieldset.jsx" + "resourceTypeHint": "FollowButton.jsx" }, { "id": "net-118", "method": "GET", "url": "http://127.0.0.1:3000/src/assets/smiley-cyrus.jpeg?import", "resourceType": "script", - "startedAt": 2896, + "startedAt": 2859, "status": 200, "ok": true, - "finishedAt": 2901, + "finishedAt": 2863, "contentType": "text/javascript", "resourceTypeHint": "smiley-cyrus.jpeg" }, { "id": "net-119", "method": "GET", - "url": "http://127.0.0.1:3000/src/services/deleteArticle.js", + "url": "http://127.0.0.1:3000/src/services/toggleFav.js", "resourceType": "script", - "startedAt": 2896, + "startedAt": 2862, "status": 200, "ok": true, - "finishedAt": 2901, "contentType": "text/javascript", - "resourceTypeHint": "deleteArticle.js" + "resourceTypeHint": "toggleFav.js", + "finishedAt": 2865 }, { "id": "net-120", "method": "GET", - "url": "http://127.0.0.1:3000/src/services/toggleFav.js", + "url": "http://127.0.0.1:3000/src/services/deleteArticle.js", "resourceType": "script", - "startedAt": 2897, + "startedAt": 2863, "status": 200, "ok": true, - "finishedAt": 2902, + "finishedAt": 2866, "contentType": "text/javascript", - "resourceTypeHint": "toggleFav.js" + "resourceTypeHint": "deleteArticle.js" }, { "id": "net-121", "method": "GET", "url": "http://127.0.0.1:3000/src/services/toggleFollow.js", "resourceType": "script", - "startedAt": 2897, + "startedAt": 2863, "status": 200, "ok": true, - "finishedAt": 2902, + "finishedAt": 2866, "contentType": "text/javascript", "resourceTypeHint": "toggleFollow.js" }, @@ -3341,10 +3195,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/assets/smiley-cyrus.jpeg", "resourceType": "image", - "startedAt": 2916, + "startedAt": 3074, "status": 200, "ok": true, - "finishedAt": 2921, + "finishedAt": 3079, "contentType": "image/jpeg", "resourceTypeHint": "smiley-cyrus.jpeg" }, @@ -3353,10 +3207,10 @@ "method": "GET", "url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdu.woff2", "resourceType": "font", - "startedAt": 2918, + "startedAt": 3077, "status": 200, "ok": true, - "finishedAt": 2966, + "finishedAt": 3122, "contentType": "font/woff2", "resourceTypeHint": "6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdu.woff2" }, @@ -3365,10 +3219,10 @@ "method": "GET", "url": "https://code.ionicframework.com/ionicons/2.0.1/fonts/ionicons.ttf?v=2.0.1", "resourceType": "font", - "startedAt": 2919, + "startedAt": 3077, "status": 200, "ok": true, - "finishedAt": 3053, + "finishedAt": 3188, "contentType": "font/ttf", "resourceTypeHint": "ionicons.ttf" }, @@ -3377,10 +3231,10 @@ "method": "GET", "url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7l.woff2", "resourceType": "font", - "startedAt": 2919, + "startedAt": 3078, "status": 200, "ok": true, - "finishedAt": 2968, + "finishedAt": 3124, "contentType": "font/woff2", "resourceTypeHint": "6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7l.woff2" }, @@ -3389,10 +3243,10 @@ "method": "GET", "url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwlxdu.woff2", "resourceType": "font", - "startedAt": 2920, + "startedAt": 3078, "status": 200, "ok": true, - "finishedAt": 2969, + "finishedAt": 3124, "contentType": "font/woff2", "resourceTypeHint": "6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwlxdu.woff2" }, @@ -3401,82 +3255,82 @@ "method": "GET", "url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7nsDI.woff2", "resourceType": "font", - "startedAt": 2920, + "startedAt": 3078, "status": 200, "ok": true, - "finishedAt": 3022, + "finishedAt": 3177, "contentType": "font/woff2", "resourceTypeHint": "6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7nsDI.woff2" }, { "id": "net-128", "method": "GET", - "url": "http://127.0.0.1:3000/api/articles/rd-test-84fc94-1/comments", + "url": "http://127.0.0.1:3000/api/articles/rd-test-f95995-1/comments", "resourceType": "xhr", - "startedAt": 2925, + "startedAt": 3082, "status": 200, "ok": true, + "finishedAt": 3090, "contentType": "application/json", - "resourceTypeHint": "comments", - "finishedAt": 2941 + "resourceTypeHint": "comments" }, { "id": "net-129", "method": "GET", - "url": "http://127.0.0.1:3000/api/articles/rd-test-84fc94-1", + "url": "http://127.0.0.1:3000/api/articles/rd-test-f95995-1", "resourceType": "xhr", - "startedAt": 2926, + "startedAt": 3082, "status": 200, "ok": true, - "finishedAt": 2946, + "finishedAt": 3105, "contentType": "application/json", - "resourceTypeHint": "rd-test-84fc94-1" + "resourceTypeHint": "rd-test-f95995-1" }, { "id": "net-130", "method": "GET", "url": "http://127.0.0.1:3000/api/user", "resourceType": "xhr", - "startedAt": 2927, + "startedAt": 3083, "status": 200, "ok": true, + "finishedAt": 3092, "contentType": "application/json", - "resourceTypeHint": "user", - "finishedAt": 2937 + "resourceTypeHint": "user" }, { "id": "net-131", "method": "GET", - "url": "http://127.0.0.1:3000/api/articles/rd-test-84fc94-1/comments", + "url": "http://127.0.0.1:3000/api/articles/rd-test-f95995-1/comments", "resourceType": "xhr", - "startedAt": 2927, + "startedAt": 3083, "status": 200, "ok": true, - "finishedAt": 2942, + "finishedAt": 3098, "contentType": "application/json", "resourceTypeHint": "comments" }, { "id": "net-132", "method": "GET", - "url": "http://127.0.0.1:3000/api/articles/rd-test-84fc94-1", + "url": "http://127.0.0.1:3000/api/articles/rd-test-f95995-1", "resourceType": "xhr", - "startedAt": 2927, + "startedAt": 3084, "status": 200, "ok": true, - "finishedAt": 2946, + "finishedAt": 3104, "contentType": "application/json", - "resourceTypeHint": "rd-test-84fc94-1" + "resourceTypeHint": "rd-test-f95995-1" }, { "id": "net-133", "method": "GET", "url": "http://127.0.0.1:3000/api/user", "resourceType": "xhr", - "startedAt": 2928, + "startedAt": 3084, "status": 200, "ok": true, - "finishedAt": 2942, + "finishedAt": 3098, "contentType": "application/json", "resourceTypeHint": "user" }, @@ -3485,10 +3339,10 @@ "method": "GET", "url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwlxdu.woff2", "resourceType": "font", - "startedAt": 2952, + "startedAt": 3112, "status": 200, "ok": true, - "finishedAt": 3008, + "finishedAt": 3164, "contentType": "font/woff2", "resourceTypeHint": "6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwlxdu.woff2" }, @@ -3497,22 +3351,22 @@ "method": "GET", "url": "http://127.0.0.1:3000/", "resourceType": "document", - "startedAt": 3801, + "startedAt": 3962, "status": 200, "ok": true, "contentType": "text/html", "resourceTypeHint": "resource", - "finishedAt": 3810 + "finishedAt": 3971 }, { "id": "net-136", "method": "GET", "url": "http://127.0.0.1:3000/@vite/client", "resourceType": "script", - "startedAt": 3808, + "startedAt": 3969, "status": 200, "ok": true, - "finishedAt": 3816, + "finishedAt": 3979, "contentType": "text/javascript", "resourceTypeHint": "client" }, @@ -3521,10 +3375,10 @@ "method": "GET", "url": "http://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css", "resourceType": "stylesheet", - "startedAt": 3809, + "startedAt": 3970, "status": 307, "ok": false, - "finishedAt": 3812, + "finishedAt": 3973, "location": "https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css", "resourceTypeHint": "ionicons.min.css" }, @@ -3533,10 +3387,10 @@ "method": "GET", "url": "http://fonts.googleapis.com/css?family=Titillium+Web:700|Source+Serif+Pro:400,700|Merriweather+Sans:400,700|Source+Sans+Pro:400,300,600,700,300italic,400italic,600italic,700italic", "resourceType": "stylesheet", - "startedAt": 3809, + "startedAt": 3970, "status": 200, "ok": true, - "finishedAt": 3883, + "finishedAt": 4020, "contentType": "text/css", "resourceTypeHint": "css" }, @@ -3545,10 +3399,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/main.jsx", "resourceType": "script", - "startedAt": 3810, + "startedAt": 3970, "status": 200, "ok": true, - "finishedAt": 3815, + "finishedAt": 3976, "contentType": "text/javascript", "resourceTypeHint": "main.jsx" }, @@ -3557,10 +3411,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/@react-refresh", "resourceType": "script", - "startedAt": 3810, + "startedAt": 3971, "status": 200, "ok": true, - "finishedAt": 3821, + "finishedAt": 3984, "contentType": "text/javascript", "resourceTypeHint": "@react-refresh" }, @@ -3569,22 +3423,22 @@ "method": "GET", "url": "https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css", "resourceType": "stylesheet", - "startedAt": 3812, + "startedAt": 3973, "status": 200, "ok": true, + "finishedAt": 4059, "contentType": "text/css", - "resourceTypeHint": "ionicons.min.css", - "finishedAt": 3895 + "resourceTypeHint": "ionicons.min.css" }, { "id": "net-142", "method": "GET", "url": "http://127.0.0.1:3000/node_modules/.vite/deps/react_jsx-dev-runtime.js?v=96de0870", "resourceType": "script", - "startedAt": 3817, + "startedAt": 3978, "status": 200, "ok": true, - "finishedAt": 3827, + "finishedAt": 3987, "contentType": "text/javascript", "resourceTypeHint": "react_jsx-dev-runtime.js" }, @@ -3593,10 +3447,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/node_modules/.vite/deps/react.js?v=96de0870", "resourceType": "script", - "startedAt": 3817, + "startedAt": 3978, "status": 200, "ok": true, - "finishedAt": 3827, + "finishedAt": 3988, "contentType": "text/javascript", "resourceTypeHint": "react.js" }, @@ -3605,10 +3459,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/node_modules/.vite/deps/react-dom_client.js?v=96de0870", "resourceType": "script", - "startedAt": 3818, + "startedAt": 3979, "status": 200, "ok": true, - "finishedAt": 3846, + "finishedAt": 4016, "contentType": "text/javascript", "resourceTypeHint": "react-dom_client.js" }, @@ -3617,10 +3471,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/node_modules/.vite/deps/react-router-dom.js?v=96de0870", "resourceType": "script", - "startedAt": 3820, + "startedAt": 3979, "status": 200, "ok": true, - "finishedAt": 3847, + "finishedAt": 4016, "contentType": "text/javascript", "resourceTypeHint": "react-router-dom.js" }, @@ -3629,10 +3483,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/App.jsx", "resourceType": "script", - "startedAt": 3820, + "startedAt": 3980, "status": 200, "ok": true, - "finishedAt": 3837, + "finishedAt": 4002, "contentType": "text/javascript", "resourceTypeHint": "App.jsx" }, @@ -3641,10 +3495,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/context/AuthContext.jsx", "resourceType": "script", - "startedAt": 3820, + "startedAt": 3981, "status": 200, "ok": true, - "finishedAt": 3843, + "finishedAt": 4002, "contentType": "text/javascript", "resourceTypeHint": "AuthContext.jsx" }, @@ -3653,10 +3507,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/styles.css", "resourceType": "script", - "startedAt": 3820, + "startedAt": 3981, "status": 200, "ok": true, - "finishedAt": 3846, + "finishedAt": 4003, "contentType": "text/javascript", "resourceTypeHint": "styles.css" }, @@ -3665,10 +3519,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/index.css", "resourceType": "script", - "startedAt": 3821, + "startedAt": 3982, "status": 200, "ok": true, - "finishedAt": 3846, + "finishedAt": 4003, "contentType": "text/javascript", "resourceTypeHint": "index.css" }, @@ -3677,10 +3531,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/reportWebVitals.js", "resourceType": "script", - "startedAt": 3821, + "startedAt": 3982, "status": 200, "ok": true, - "finishedAt": 3847, + "finishedAt": 4004, "contentType": "text/javascript", "resourceTypeHint": "reportWebVitals.js" }, @@ -3689,10 +3543,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/routes/Article/Article.jsx", "resourceType": "script", - "startedAt": 3821, + "startedAt": 3982, "status": 200, "ok": true, - "finishedAt": 3847, + "finishedAt": 4005, "contentType": "text/javascript", "resourceTypeHint": "Article.jsx" }, @@ -3701,10 +3555,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/routes/Article/CommentsSection.jsx", "resourceType": "script", - "startedAt": 3822, + "startedAt": 3984, "status": 200, "ok": true, - "finishedAt": 3847, + "finishedAt": 4005, "contentType": "text/javascript", "resourceTypeHint": "CommentsSection.jsx" }, @@ -3713,10 +3567,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/routes/ArticleEditor.jsx", "resourceType": "script", - "startedAt": 3822, + "startedAt": 3984, "status": 200, "ok": true, - "finishedAt": 3847, + "finishedAt": 4005, "contentType": "text/javascript", "resourceTypeHint": "ArticleEditor.jsx" }, @@ -3725,10 +3579,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/routes/Home.jsx", "resourceType": "script", - "startedAt": 3822, + "startedAt": 3984, "status": 200, "ok": true, - "finishedAt": 3847, + "finishedAt": 4006, "contentType": "text/javascript", "resourceTypeHint": "Home.jsx" }, @@ -3737,10 +3591,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/routes/HomeArticles.jsx", "resourceType": "script", - "startedAt": 3822, + "startedAt": 3985, "status": 200, "ok": true, - "finishedAt": 3847, + "finishedAt": 4007, "contentType": "text/javascript", "resourceTypeHint": "HomeArticles.jsx" }, @@ -3749,10 +3603,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/routes/Login.jsx", "resourceType": "script", - "startedAt": 3822, + "startedAt": 3985, "status": 200, "ok": true, - "finishedAt": 3848, + "finishedAt": 4007, "contentType": "text/javascript", "resourceTypeHint": "Login.jsx" }, @@ -3761,10 +3615,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/routes/NotFound.jsx", "resourceType": "script", - "startedAt": 3823, + "startedAt": 3985, "status": 200, "ok": true, - "finishedAt": 3851, + "finishedAt": 4009, "contentType": "text/javascript", "resourceTypeHint": "NotFound.jsx" }, @@ -3773,10 +3627,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/routes/Profile/Profile.jsx", "resourceType": "script", - "startedAt": 3823, + "startedAt": 3985, "status": 200, "ok": true, - "finishedAt": 3852, + "finishedAt": 4011, "contentType": "text/javascript", "resourceTypeHint": "Profile.jsx" }, @@ -3785,10 +3639,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/routes/Profile/ProfileArticles.jsx", "resourceType": "script", - "startedAt": 3823, + "startedAt": 3985, "status": 200, "ok": true, - "finishedAt": 3852, + "finishedAt": 4015, "contentType": "text/javascript", "resourceTypeHint": "ProfileArticles.jsx" }, @@ -3797,10 +3651,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/routes/Profile/ProfileFavArticles.jsx", "resourceType": "script", - "startedAt": 3823, + "startedAt": 3986, "status": 200, "ok": true, - "finishedAt": 3854, + "finishedAt": 4016, "contentType": "text/javascript", "resourceTypeHint": "ProfileFavArticles.jsx" }, @@ -3809,10 +3663,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/routes/Settings.jsx", "resourceType": "script", - "startedAt": 3823, + "startedAt": 3986, "status": 200, "ok": true, - "finishedAt": 3854, + "finishedAt": 4016, "contentType": "text/javascript", "resourceTypeHint": "Settings.jsx" }, @@ -3821,10 +3675,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/routes/SignUp.jsx", "resourceType": "script", - "startedAt": 3824, + "startedAt": 3986, "status": 200, "ok": true, - "finishedAt": 3854, + "finishedAt": 4016, "contentType": "text/javascript", "resourceTypeHint": "SignUp.jsx" }, @@ -3833,10 +3687,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/@fs/F:/RealDone/work/real-projects/conduit-postgres/node_modules/vite/dist/client/env.mjs", "resourceType": "script", - "startedAt": 3824, + "startedAt": 3986, "status": 200, "ok": true, - "finishedAt": 3854, + "finishedAt": 4018, "contentType": "text/javascript", "resourceTypeHint": "env.mjs" }, @@ -3845,10 +3699,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/node_modules/.vite/deps/chunk-MP6PTA7G.js?v=96de0870", "resourceType": "script", - "startedAt": 3828, + "startedAt": 3987, "status": 200, "ok": true, - "finishedAt": 3858, + "finishedAt": 4018, "contentType": "text/javascript", "resourceTypeHint": "chunk-MP6PTA7G.js" }, @@ -3857,10 +3711,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/node_modules/.vite/deps/chunk-G3PMV62Z.js?v=96de0870", "resourceType": "script", - "startedAt": 3828, + "startedAt": 3988, "status": 200, "ok": true, - "finishedAt": 3858, + "finishedAt": 4018, "contentType": "text/javascript", "resourceTypeHint": "chunk-G3PMV62Z.js" }, @@ -3869,10 +3723,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/Footer/index.js", "resourceType": "script", - "startedAt": 3847, + "startedAt": 4008, "status": 200, "ok": true, - "finishedAt": 3891, + "finishedAt": 4020, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, @@ -3881,10 +3735,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/Navbar/index.js", "resourceType": "script", - "startedAt": 3848, + "startedAt": 4008, "status": 200, "ok": true, - "finishedAt": 3892, + "finishedAt": 4020, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, @@ -3893,274 +3747,274 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/services/getUser.js", "resourceType": "script", - "startedAt": 3848, + "startedAt": 4008, "status": 200, "ok": true, - "finishedAt": 3892, + "finishedAt": 4020, "contentType": "text/javascript", "resourceTypeHint": "getUser.js" }, { "id": "net-169", "method": "GET", - "url": "http://127.0.0.1:3000/node_modules/.vite/deps/chunk-HYJYOVZJ.js?v=96de0870", + "url": "http://127.0.0.1:3000/src/components/CommentEditor/index.js", "resourceType": "script", - "startedAt": 3851, + "startedAt": 4011, "status": 200, "ok": true, - "finishedAt": 3896, + "finishedAt": 4027, "contentType": "text/javascript", - "resourceTypeHint": "chunk-HYJYOVZJ.js" + "resourceTypeHint": "index.js" }, { "id": "net-170", "method": "GET", - "url": "http://127.0.0.1:3000/node_modules/.vite/deps/markdown-to-jsx.js?v=96de0870", + "url": "http://127.0.0.1:3000/src/components/CommentList/index.js", "resourceType": "script", - "startedAt": 3852, + "startedAt": 4011, "status": 200, "ok": true, - "finishedAt": 3896, + "finishedAt": 4029, "contentType": "text/javascript", - "resourceTypeHint": "markdown-to-jsx.js" + "resourceTypeHint": "index.js" }, { "id": "net-171", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/ArticleMeta/index.js", + "url": "http://127.0.0.1:3000/node_modules/.vite/deps/markdown-to-jsx.js?v=96de0870", "resourceType": "script", - "startedAt": 3852, + "startedAt": 4012, "status": 200, "ok": true, - "finishedAt": 3896, + "finishedAt": 4032, "contentType": "text/javascript", - "resourceTypeHint": "index.js" + "resourceTypeHint": "markdown-to-jsx.js" }, { "id": "net-172", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/ArticlesButtons/index.js", + "url": "http://127.0.0.1:3000/src/components/ArticleMeta/index.js", "resourceType": "script", - "startedAt": 3852, + "startedAt": 4012, "status": 200, "ok": true, - "finishedAt": 3896, + "finishedAt": 4030, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, { "id": "net-173", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/ArticleTags/index.js", + "url": "http://127.0.0.1:3000/src/components/ArticlesButtons/index.js", "resourceType": "script", - "startedAt": 3852, + "startedAt": 4012, "status": 200, "ok": true, - "finishedAt": 3896, + "finishedAt": 4031, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, { "id": "net-174", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/BannerContainer/index.js", + "url": "http://127.0.0.1:3000/src/components/ArticleTags/index.js", "resourceType": "script", - "startedAt": 3853, + "startedAt": 4012, "status": 200, "ok": true, - "finishedAt": 3896, + "finishedAt": 4031, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, { "id": "net-175", "method": "GET", - "url": "http://127.0.0.1:3000/src/services/getArticle.js", + "url": "http://127.0.0.1:3000/src/components/BannerContainer/index.js", "resourceType": "script", - "startedAt": 3853, + "startedAt": 4013, "status": 200, "ok": true, - "finishedAt": 3897, + "finishedAt": 4032, "contentType": "text/javascript", - "resourceTypeHint": "getArticle.js" + "resourceTypeHint": "index.js" }, { "id": "net-176", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/CommentEditor/index.js", + "url": "http://127.0.0.1:3000/src/services/getArticle.js", "resourceType": "script", - "startedAt": 3853, + "startedAt": 4013, "status": 200, "ok": true, - "finishedAt": 3897, + "finishedAt": 4033, "contentType": "text/javascript", - "resourceTypeHint": "index.js" + "resourceTypeHint": "getArticle.js" }, { "id": "net-177", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/CommentList/index.js", + "url": "http://127.0.0.1:3000/src/components/ArticleEditorForm/index.js", "resourceType": "script", - "startedAt": 3853, + "startedAt": 4013, "status": 200, "ok": true, - "finishedAt": 3897, + "finishedAt": 4034, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, { "id": "net-178", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/ArticleEditorForm/index.js", + "url": "http://127.0.0.1:3000/src/components/ContainerRow/index.js", "resourceType": "script", - "startedAt": 3853, + "startedAt": 4013, "status": 200, "ok": true, - "finishedAt": 3897, + "finishedAt": 4034, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, { "id": "net-179", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/ContainerRow/index.js", + "url": "http://127.0.0.1:3000/src/components/FeedToggler/index.js", "resourceType": "script", - "startedAt": 3854, + "startedAt": 4014, "status": 200, "ok": true, - "finishedAt": 3897, + "finishedAt": 4034, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, { "id": "net-180", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/FeedToggler/index.js", + "url": "http://127.0.0.1:3000/src/context/FeedContext.jsx", "resourceType": "script", - "startedAt": 3854, + "startedAt": 4014, "status": 200, "ok": true, - "finishedAt": 3897, + "finishedAt": 4035, "contentType": "text/javascript", - "resourceTypeHint": "index.js" + "resourceTypeHint": "FeedContext.jsx" }, { "id": "net-181", "method": "GET", - "url": "http://127.0.0.1:3000/src/context/FeedContext.jsx", + "url": "http://127.0.0.1:3000/src/components/PopularTags/index.js", "resourceType": "script", - "startedAt": 3854, + "startedAt": 4014, "status": 200, "ok": true, - "finishedAt": 3902, + "finishedAt": 4036, "contentType": "text/javascript", - "resourceTypeHint": "FeedContext.jsx" + "resourceTypeHint": "index.js" }, { "id": "net-182", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/PopularTags/index.js", + "url": "http://127.0.0.1:3000/src/components/ArticlesPagination/index.js", "resourceType": "script", - "startedAt": 3854, + "startedAt": 4014, "status": 200, "ok": true, - "finishedAt": 3902, + "finishedAt": 4037, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, { "id": "net-183", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/ArticlesPagination/index.js", + "url": "http://127.0.0.1:3000/src/components/ArticlesPreview/index.js", "resourceType": "script", - "startedAt": 3855, + "startedAt": 4014, "status": 200, "ok": true, - "finishedAt": 3902, + "finishedAt": 4039, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, { "id": "net-184", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/ArticlesPreview/index.js", + "url": "http://127.0.0.1:3000/src/hooks/useArticles.js", "resourceType": "script", - "startedAt": 3855, + "startedAt": 4015, "status": 200, "ok": true, - "finishedAt": 3903, + "finishedAt": 4041, "contentType": "text/javascript", - "resourceTypeHint": "index.js" + "resourceTypeHint": "useArticles.js" }, { "id": "net-185", "method": "GET", - "url": "http://127.0.0.1:3000/src/hooks/useArticles.js", + "url": "http://127.0.0.1:3000/src/components/AuthPageContainer/index.js", "resourceType": "script", - "startedAt": 3855, + "startedAt": 4015, "status": 200, "ok": true, - "finishedAt": 3904, + "finishedAt": 4041, "contentType": "text/javascript", - "resourceTypeHint": "useArticles.js" + "resourceTypeHint": "index.js" }, { "id": "net-186", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/AuthPageContainer/index.js", + "url": "http://127.0.0.1:3000/src/components/LoginForm/index.js", "resourceType": "script", - "startedAt": 3859, + "startedAt": 4015, "status": 200, "ok": true, - "finishedAt": 3904, + "finishedAt": 4041, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, { "id": "net-187", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/LoginForm/index.js", + "url": "http://127.0.0.1:3000/src/components/AuthorInfo/index.js", "resourceType": "script", - "startedAt": 3859, + "startedAt": 4015, "status": 200, "ok": true, - "finishedAt": 3904, + "finishedAt": 4044, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, { "id": "net-188", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/AuthorInfo/index.js", + "url": "http://127.0.0.1:3000/src/components/NavItem/index.js", "resourceType": "script", - "startedAt": 3859, + "startedAt": 4016, "status": 200, "ok": true, - "finishedAt": 3904, + "finishedAt": 4045, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, { "id": "net-189", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/NavItem/index.js", + "url": "http://127.0.0.1:3000/node_modules/.vite/deps/chunk-HYJYOVZJ.js?v=96de0870", "resourceType": "script", - "startedAt": 3859, + "startedAt": 4018, "status": 200, "ok": true, - "finishedAt": 3904, + "finishedAt": 4046, "contentType": "text/javascript", - "resourceTypeHint": "index.js" + "resourceTypeHint": "chunk-HYJYOVZJ.js" }, { "id": "net-190", "method": "GET", "url": "http://127.0.0.1:3000/src/components/SettingsForm/index.js", "resourceType": "script", - "startedAt": 3859, + "startedAt": 4018, "status": 200, "ok": true, - "finishedAt": 3904, + "finishedAt": 4046, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, @@ -4169,10 +4023,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/SignUpForm/index.js", "resourceType": "script", - "startedAt": 3860, + "startedAt": 4018, "status": 200, "ok": true, - "finishedAt": 3904, + "finishedAt": 4047, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, @@ -4181,10 +4035,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/Footer/Footer.jsx", "resourceType": "script", - "startedAt": 3896, + "startedAt": 4020, "status": 200, "ok": true, - "finishedAt": 3911, + "finishedAt": 4047, "contentType": "text/javascript", "resourceTypeHint": "Footer.jsx" }, @@ -4193,10 +4047,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/Navbar/Navbar.jsx", "resourceType": "script", - "startedAt": 3901, + "startedAt": 4020, "status": 200, "ok": true, - "finishedAt": 3919, + "finishedAt": 4047, "contentType": "text/javascript", "resourceTypeHint": "Navbar.jsx" }, @@ -4205,10 +4059,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/node_modules/.vite/deps/axios.js?v=96de0870", "resourceType": "script", - "startedAt": 3901, + "startedAt": 4020, "status": 200, "ok": true, - "finishedAt": 3921, + "finishedAt": 4051, "contentType": "text/javascript", "resourceTypeHint": "axios.js" }, @@ -4217,94 +4071,94 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/helpers/errorHandler.js", "resourceType": "script", - "startedAt": 3901, + "startedAt": 4021, "status": 200, "ok": true, - "finishedAt": 3918, + "finishedAt": 4047, "contentType": "text/javascript", "resourceTypeHint": "errorHandler.js" }, { "id": "net-196", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/ArticleMeta/ArticleMeta.jsx", + "url": "http://127.0.0.1:3000/src/components/CommentEditor/CommentEditor.jsx", "resourceType": "script", - "startedAt": 3901, + "startedAt": 4032, "status": 200, "ok": true, - "finishedAt": 3919, + "finishedAt": 4051, "contentType": "text/javascript", - "resourceTypeHint": "ArticleMeta.jsx" + "resourceTypeHint": "CommentEditor.jsx" }, { "id": "net-197", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/ArticlesButtons/ArticlesButtons.jsx", + "url": "http://127.0.0.1:3000/src/components/CommentList/CommentList.jsx", "resourceType": "script", - "startedAt": 3901, + "startedAt": 4036, "status": 200, "ok": true, - "finishedAt": 3920, + "finishedAt": 4052, "contentType": "text/javascript", - "resourceTypeHint": "ArticlesButtons.jsx" + "resourceTypeHint": "CommentList.jsx" }, { "id": "net-198", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/ArticleTags/ArticleTags.jsx", + "url": "http://127.0.0.1:3000/src/components/ArticleMeta/ArticleMeta.jsx", "resourceType": "script", - "startedAt": 3902, + "startedAt": 4037, "status": 200, "ok": true, - "finishedAt": 3920, + "finishedAt": 4052, "contentType": "text/javascript", - "resourceTypeHint": "ArticleTags.jsx" + "resourceTypeHint": "ArticleMeta.jsx" }, { "id": "net-199", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/BannerContainer/BannerContainer.jsx", + "url": "http://127.0.0.1:3000/src/components/ArticlesButtons/ArticlesButtons.jsx", "resourceType": "script", - "startedAt": 3902, + "startedAt": 4038, "status": 200, "ok": true, - "finishedAt": 3921, + "finishedAt": 4055, "contentType": "text/javascript", - "resourceTypeHint": "BannerContainer.jsx" + "resourceTypeHint": "ArticlesButtons.jsx" }, { "id": "net-200", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/CommentEditor/CommentEditor.jsx", + "url": "http://127.0.0.1:3000/src/components/ArticleTags/ArticleTags.jsx", "resourceType": "script", - "startedAt": 3903, + "startedAt": 4039, "status": 200, "ok": true, - "finishedAt": 3922, + "finishedAt": 4056, "contentType": "text/javascript", - "resourceTypeHint": "CommentEditor.jsx" + "resourceTypeHint": "ArticleTags.jsx" }, { "id": "net-201", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/CommentList/CommentList.jsx", + "url": "http://127.0.0.1:3000/src/components/BannerContainer/BannerContainer.jsx", "resourceType": "script", - "startedAt": 3903, + "startedAt": 4039, "status": 200, "ok": true, - "finishedAt": 3925, + "finishedAt": 4057, "contentType": "text/javascript", - "resourceTypeHint": "CommentList.jsx" + "resourceTypeHint": "BannerContainer.jsx" }, { "id": "net-202", "method": "GET", "url": "http://127.0.0.1:3000/src/components/ArticleEditorForm/ArticleEditorForm.jsx", "resourceType": "script", - "startedAt": 3903, + "startedAt": 4041, "status": 200, "ok": true, - "finishedAt": 3925, + "finishedAt": 4059, "contentType": "text/javascript", "resourceTypeHint": "ArticleEditorForm.jsx" }, @@ -4313,10 +4167,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/ContainerRow/ContainerRow.jsx", "resourceType": "script", - "startedAt": 3903, + "startedAt": 4042, "status": 200, "ok": true, - "finishedAt": 3925, + "finishedAt": 4059, "contentType": "text/javascript", "resourceTypeHint": "ContainerRow.jsx" }, @@ -4325,10 +4179,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/FeedToggler/FeedToggler.jsx", "resourceType": "script", - "startedAt": 3903, + "startedAt": 4042, "status": 200, "ok": true, - "finishedAt": 3926, + "finishedAt": 4059, "contentType": "text/javascript", "resourceTypeHint": "FeedToggler.jsx" }, @@ -4337,10 +4191,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/PopularTags/PopularTags.jsx", "resourceType": "script", - "startedAt": 3904, + "startedAt": 4044, "status": 200, "ok": true, - "finishedAt": 3926, + "finishedAt": 4063, "contentType": "text/javascript", "resourceTypeHint": "PopularTags.jsx" }, @@ -4349,10 +4203,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/ArticlesPagination/ArticlesPagination.jsx", "resourceType": "script", - "startedAt": 3904, + "startedAt": 4045, "status": 200, "ok": true, - "finishedAt": 3930, + "finishedAt": 4064, "contentType": "text/javascript", "resourceTypeHint": "ArticlesPagination.jsx" }, @@ -4361,58 +4215,58 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/ArticlesPreview/ArticlesPreview.jsx", "resourceType": "script", - "startedAt": 3905, + "startedAt": 4045, "status": 200, "ok": true, - "finishedAt": 3932, + "finishedAt": 4064, "contentType": "text/javascript", "resourceTypeHint": "ArticlesPreview.jsx" }, { "id": "net-208", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/AuthPageContainer/AuthPageContainer.jsx", + "url": "http://127.0.0.1:3000/src/services/getArticles.js", "resourceType": "script", - "startedAt": 3905, + "startedAt": 4046, "status": 200, "ok": true, - "finishedAt": 3932, + "finishedAt": 4064, "contentType": "text/javascript", - "resourceTypeHint": "AuthPageContainer.jsx" + "resourceTypeHint": "getArticles.js" }, { "id": "net-209", "method": "GET", - "url": "http://127.0.0.1:3000/src/services/getArticles.js", + "url": "http://127.0.0.1:3000/src/components/LoginForm/LoginForm.jsx", "resourceType": "script", - "startedAt": 3905, + "startedAt": 4047, "status": 200, "ok": true, - "finishedAt": 3932, + "finishedAt": 4065, "contentType": "text/javascript", - "resourceTypeHint": "getArticles.js" + "resourceTypeHint": "LoginForm.jsx" }, { "id": "net-210", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/LoginForm/LoginForm.jsx", + "url": "http://127.0.0.1:3000/src/components/AuthPageContainer/AuthPageContainer.jsx", "resourceType": "script", - "startedAt": 3908, + "startedAt": 4047, "status": 200, "ok": true, - "finishedAt": 3932, + "finishedAt": 4065, "contentType": "text/javascript", - "resourceTypeHint": "LoginForm.jsx" + "resourceTypeHint": "AuthPageContainer.jsx" }, { "id": "net-211", "method": "GET", "url": "http://127.0.0.1:3000/src/components/AuthorInfo/AuthorInfo.jsx", "resourceType": "script", - "startedAt": 3909, + "startedAt": 4047, "status": 200, "ok": true, - "finishedAt": 3932, + "finishedAt": 4066, "contentType": "text/javascript", "resourceTypeHint": "AuthorInfo.jsx" }, @@ -4421,10 +4275,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/NavItem/NavItem.jsx", "resourceType": "script", - "startedAt": 3909, + "startedAt": 4048, "status": 200, "ok": true, - "finishedAt": 3932, + "finishedAt": 4066, "contentType": "text/javascript", "resourceTypeHint": "NavItem.jsx" }, @@ -4433,34 +4287,34 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/SettingsForm/SettingsForm.jsx", "resourceType": "script", - "startedAt": 3909, + "startedAt": 4048, "status": 200, "ok": true, - "finishedAt": 3933, "contentType": "text/javascript", - "resourceTypeHint": "SettingsForm.jsx" + "resourceTypeHint": "SettingsForm.jsx", + "finishedAt": 4069 }, { "id": "net-214", "method": "GET", "url": "http://127.0.0.1:3000/src/components/SignUpForm/SignUpForm.jsx", "resourceType": "script", - "startedAt": 3909, + "startedAt": 4048, "status": 200, "ok": true, - "finishedAt": 3933, "contentType": "text/javascript", - "resourceTypeHint": "SignUpForm.jsx" + "resourceTypeHint": "SignUpForm.jsx", + "finishedAt": 4070 }, { "id": "net-215", "method": "GET", "url": "http://127.0.0.1:3000/src/components/SourceCodeLink/index.js", "resourceType": "script", - "startedAt": 3911, + "startedAt": 4048, "status": 200, "ok": true, - "finishedAt": 3933, + "finishedAt": 4068, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, @@ -4469,130 +4323,130 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/Navbar/DropdownMenu.jsx", "resourceType": "script", - "startedAt": 3922, + "startedAt": 4048, "status": 200, "ok": true, - "finishedAt": 3936, + "finishedAt": 4070, "contentType": "text/javascript", "resourceTypeHint": "DropdownMenu.jsx" }, { "id": "net-217", "method": "GET", - "url": "http://127.0.0.1:3000/src/helpers/dateFormatter.js", + "url": "http://127.0.0.1:3000/src/services/postComment.js", "resourceType": "script", - "startedAt": 3923, + "startedAt": 4051, "status": 200, "ok": true, - "finishedAt": 3936, + "finishedAt": 4071, "contentType": "text/javascript", - "resourceTypeHint": "dateFormatter.js" + "resourceTypeHint": "postComment.js" }, { "id": "net-218", "method": "GET", "url": "http://127.0.0.1:3000/src/components/Avatar/index.js", "resourceType": "script", - "startedAt": 3923, + "startedAt": 4051, "status": 200, "ok": true, - "finishedAt": 3936, + "finishedAt": 4072, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, { "id": "net-219", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/ArticleAuthorButtons/index.js", + "url": "http://127.0.0.1:3000/src/helpers/dateFormatter.js", "resourceType": "script", - "startedAt": 3924, + "startedAt": 4052, "status": 200, "ok": true, - "finishedAt": 3937, + "finishedAt": 4072, "contentType": "text/javascript", - "resourceTypeHint": "index.js" + "resourceTypeHint": "dateFormatter.js" }, { "id": "net-220", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/FavButton/index.js", + "url": "http://127.0.0.1:3000/src/services/deleteComment.js", "resourceType": "script", - "startedAt": 3930, + "startedAt": 4052, "status": 200, "ok": true, - "finishedAt": 3943, + "finishedAt": 4073, "contentType": "text/javascript", - "resourceTypeHint": "index.js" + "resourceTypeHint": "deleteComment.js" }, { "id": "net-221", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/FollowButton/index.js", + "url": "http://127.0.0.1:3000/src/services/getComments.js", "resourceType": "script", - "startedAt": 3930, + "startedAt": 4052, "status": 200, "ok": true, - "finishedAt": 3945, + "finishedAt": 4075, "contentType": "text/javascript", - "resourceTypeHint": "index.js" + "resourceTypeHint": "getComments.js" }, { "id": "net-222", "method": "GET", - "url": "http://127.0.0.1:3000/src/services/postComment.js", + "url": "http://127.0.0.1:3000/src/components/CommentList/CommentAuthor.jsx", "resourceType": "script", - "startedAt": 3930, + "startedAt": 4053, "status": 200, "ok": true, - "finishedAt": 3946, + "finishedAt": 4076, "contentType": "text/javascript", - "resourceTypeHint": "postComment.js" + "resourceTypeHint": "CommentAuthor.jsx" }, { "id": "net-223", "method": "GET", - "url": "http://127.0.0.1:3000/src/services/deleteComment.js", + "url": "http://127.0.0.1:3000/src/components/ArticleAuthorButtons/index.js", "resourceType": "script", - "startedAt": 3930, + "startedAt": 4056, "status": 200, "ok": true, - "finishedAt": 3946, + "finishedAt": 4077, "contentType": "text/javascript", - "resourceTypeHint": "deleteComment.js" + "resourceTypeHint": "index.js" }, { "id": "net-224", "method": "GET", - "url": "http://127.0.0.1:3000/src/services/getComments.js", + "url": "http://127.0.0.1:3000/src/components/FavButton/index.js", "resourceType": "script", - "startedAt": 3931, + "startedAt": 4056, "status": 200, "ok": true, - "finishedAt": 3947, + "finishedAt": 4077, "contentType": "text/javascript", - "resourceTypeHint": "getComments.js" + "resourceTypeHint": "index.js" }, { "id": "net-225", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/CommentList/CommentAuthor.jsx", + "url": "http://127.0.0.1:3000/src/components/FollowButton/index.js", "resourceType": "script", - "startedAt": 3931, + "startedAt": 4057, "status": 200, "ok": true, - "finishedAt": 3947, + "finishedAt": 4077, "contentType": "text/javascript", - "resourceTypeHint": "CommentAuthor.jsx" + "resourceTypeHint": "index.js" }, { "id": "net-226", "method": "GET", "url": "http://127.0.0.1:3000/src/services/setArticle.js", "resourceType": "script", - "startedAt": 3931, + "startedAt": 4061, "status": 200, "ok": true, - "finishedAt": 3949, + "finishedAt": 4077, "contentType": "text/javascript", "resourceTypeHint": "setArticle.js" }, @@ -4601,10 +4455,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/FormFieldset/index.js", "resourceType": "script", - "startedAt": 3931, + "startedAt": 4061, "status": 200, "ok": true, - "finishedAt": 3950, + "finishedAt": 4077, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, @@ -4613,10 +4467,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/FeedToggler/FeedNavLink.jsx", "resourceType": "script", - "startedAt": 3932, + "startedAt": 4062, "status": 200, "ok": true, - "finishedAt": 3950, + "finishedAt": 4078, "contentType": "text/javascript", "resourceTypeHint": "FeedNavLink.jsx" }, @@ -4625,10 +4479,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/services/getTags.js", "resourceType": "script", - "startedAt": 3932, + "startedAt": 4067, "status": 200, "ok": true, - "finishedAt": 3950, + "finishedAt": 4081, "contentType": "text/javascript", "resourceTypeHint": "getTags.js" }, @@ -4637,10 +4491,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/PopularTags/TagButton.jsx", "resourceType": "script", - "startedAt": 3932, + "startedAt": 4069, "status": 200, "ok": true, - "finishedAt": 3950, + "finishedAt": 4081, "contentType": "text/javascript", "resourceTypeHint": "TagButton.jsx" }, @@ -4649,10 +4503,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/node_modules/.vite/deps/react-paginate.js?v=96de0870", "resourceType": "script", - "startedAt": 3933, + "startedAt": 4069, "status": 200, "ok": true, - "finishedAt": 3950, + "finishedAt": 4082, "contentType": "text/javascript", "resourceTypeHint": "react-paginate.js" }, @@ -4661,10 +4515,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/services/userLogin.js", "resourceType": "script", - "startedAt": 3933, + "startedAt": 4069, "status": 200, "ok": true, - "finishedAt": 3952, + "finishedAt": 4082, "contentType": "text/javascript", "resourceTypeHint": "userLogin.js" }, @@ -4673,70 +4527,70 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/services/getProfile.js", "resourceType": "script", - "startedAt": 3933, + "startedAt": 4071, "status": 200, "ok": true, - "finishedAt": 3952, + "finishedAt": 4082, "contentType": "text/javascript", "resourceTypeHint": "getProfile.js" }, { "id": "net-234", "method": "GET", - "url": "http://127.0.0.1:3000/src/services/userSignUp.js", + "url": "http://127.0.0.1:3000/src/components/SourceCodeLink/SourceCodeLink.jsx", "resourceType": "script", - "startedAt": 3933, + "startedAt": 4073, "status": 200, "ok": true, - "finishedAt": 3952, + "finishedAt": 4083, "contentType": "text/javascript", - "resourceTypeHint": "userSignUp.js" + "resourceTypeHint": "SourceCodeLink.jsx" }, { "id": "net-235", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/SourceCodeLink/SourceCodeLink.jsx", + "url": "http://127.0.0.1:3000/src/services/userUpdate.js", "resourceType": "script", - "startedAt": 3934, + "startedAt": 4075, "status": 200, "ok": true, - "finishedAt": 3954, + "finishedAt": 4086, "contentType": "text/javascript", - "resourceTypeHint": "SourceCodeLink.jsx" + "resourceTypeHint": "userUpdate.js" }, { "id": "net-236", "method": "GET", - "url": "http://127.0.0.1:3000/src/services/userUpdate.js", + "url": "http://127.0.0.1:3000/src/services/userSignUp.js", "resourceType": "script", - "startedAt": 3934, + "startedAt": 4075, "status": 200, "ok": true, - "finishedAt": 3954, "contentType": "text/javascript", - "resourceTypeHint": "userUpdate.js" + "resourceTypeHint": "userSignUp.js", + "finishedAt": 4088 }, { "id": "net-237", "method": "GET", "url": "http://127.0.0.1:3000/src/services/userLogout.js", "resourceType": "script", - "startedAt": 3937, + "startedAt": 4076, "status": 200, "ok": true, - "finishedAt": 3954, "contentType": "text/javascript", - "resourceTypeHint": "userLogout.js" + "resourceTypeHint": "userLogout.js", + "finishedAt": 4088 }, { "id": "net-238", "method": "GET", "url": "http://127.0.0.1:3000/src/components/Navbar/DropdownItem.jsx", "resourceType": "script", - "startedAt": 3937, + "startedAt": 4076, "status": 200, "ok": true, - "finishedAt": 3954, + "finishedAt": 4088, "contentType": "text/javascript", "resourceTypeHint": "DropdownItem.jsx" }, @@ -4745,10 +4599,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/Avatar/Avatar.jsx", "resourceType": "script", - "startedAt": 3938, + "startedAt": 4077, "status": 200, "ok": true, - "finishedAt": 3954, + "finishedAt": 4088, "contentType": "text/javascript", "resourceTypeHint": "Avatar.jsx" }, @@ -4757,10 +4611,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/ArticleAuthorButtons/ArticleAuthorButtons.jsx", "resourceType": "script", - "startedAt": 3938, + "startedAt": 4078, "status": 200, "ok": true, - "finishedAt": 3954, + "finishedAt": 4089, "contentType": "text/javascript", "resourceTypeHint": "ArticleAuthorButtons.jsx" }, @@ -4769,10 +4623,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/FavButton/FavButton.jsx", "resourceType": "script", - "startedAt": 3948, + "startedAt": 4080, "status": 200, "ok": true, - "finishedAt": 3956, + "finishedAt": 4089, "contentType": "text/javascript", "resourceTypeHint": "FavButton.jsx" }, @@ -4781,10 +4635,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/FollowButton/FollowButton.jsx", "resourceType": "script", - "startedAt": 3951, + "startedAt": 4080, "status": 200, "ok": true, - "finishedAt": 3958, + "finishedAt": 4089, "contentType": "text/javascript", "resourceTypeHint": "FollowButton.jsx" }, @@ -4793,10 +4647,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/FormFieldset/FormFieldset.jsx", "resourceType": "script", - "startedAt": 3952, + "startedAt": 4080, "status": 200, "ok": true, - "finishedAt": 3958, + "finishedAt": 4089, "contentType": "text/javascript", "resourceTypeHint": "FormFieldset.jsx" }, @@ -4805,46 +4659,46 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/assets/smiley-cyrus.jpeg?import", "resourceType": "script", - "startedAt": 3954, + "startedAt": 4089, "status": 200, "ok": true, - "finishedAt": 3959, + "finishedAt": 4094, "contentType": "text/javascript", "resourceTypeHint": "smiley-cyrus.jpeg" }, { "id": "net-245", "method": "GET", - "url": "http://127.0.0.1:3000/src/services/deleteArticle.js", + "url": "http://127.0.0.1:3000/src/services/toggleFav.js", "resourceType": "script", - "startedAt": 3954, + "startedAt": 4090, "status": 200, "ok": true, - "finishedAt": 3960, + "finishedAt": 4094, "contentType": "text/javascript", - "resourceTypeHint": "deleteArticle.js" + "resourceTypeHint": "toggleFav.js" }, { "id": "net-246", "method": "GET", - "url": "http://127.0.0.1:3000/src/services/toggleFav.js", + "url": "http://127.0.0.1:3000/src/services/deleteArticle.js", "resourceType": "script", - "startedAt": 3956, + "startedAt": 4090, "status": 200, "ok": true, - "finishedAt": 3960, + "finishedAt": 4095, "contentType": "text/javascript", - "resourceTypeHint": "toggleFav.js" + "resourceTypeHint": "deleteArticle.js" }, { "id": "net-247", "method": "GET", "url": "http://127.0.0.1:3000/src/services/toggleFollow.js", "resourceType": "script", - "startedAt": 3958, + "startedAt": 4090, "status": 200, "ok": true, - "finishedAt": 3961, + "finishedAt": 4095, "contentType": "text/javascript", "resourceTypeHint": "toggleFollow.js" }, @@ -4853,10 +4707,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/assets/smiley-cyrus.jpeg", "resourceType": "image", - "startedAt": 3974, + "startedAt": 4108, "status": 200, "ok": true, - "finishedAt": 3980, + "finishedAt": 4113, "contentType": "image/jpeg", "resourceTypeHint": "smiley-cyrus.jpeg" }, @@ -4865,10 +4719,10 @@ "method": "GET", "url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdu.woff2", "resourceType": "font", - "startedAt": 3976, + "startedAt": 4110, "status": 200, "ok": true, - "finishedAt": 4024, + "finishedAt": 4156, "contentType": "font/woff2", "resourceTypeHint": "6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdu.woff2" }, @@ -4877,10 +4731,10 @@ "method": "GET", "url": "https://code.ionicframework.com/ionicons/2.0.1/fonts/ionicons.ttf?v=2.0.1", "resourceType": "font", - "startedAt": 3978, + "startedAt": 4111, "status": 200, "ok": true, - "finishedAt": 4065, + "finishedAt": 4221, "contentType": "font/ttf", "resourceTypeHint": "ionicons.ttf" }, @@ -4889,10 +4743,10 @@ "method": "GET", "url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7l.woff2", "resourceType": "font", - "startedAt": 3978, + "startedAt": 4111, "status": 200, "ok": true, - "finishedAt": 4030, + "finishedAt": 4158, "contentType": "font/woff2", "resourceTypeHint": "6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7l.woff2" }, @@ -4901,10 +4755,10 @@ "method": "GET", "url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwlxdu.woff2", "resourceType": "font", - "startedAt": 3979, + "startedAt": 4112, "status": 200, "ok": true, - "finishedAt": 4031, + "finishedAt": 4159, "contentType": "font/woff2", "resourceTypeHint": "6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwlxdu.woff2" }, @@ -4913,82 +4767,82 @@ "method": "GET", "url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7nsDI.woff2", "resourceType": "font", - "startedAt": 3979, + "startedAt": 4112, "status": 200, "ok": true, - "finishedAt": 4031, + "finishedAt": 4159, "contentType": "font/woff2", "resourceTypeHint": "6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7nsDI.woff2" }, { "id": "net-254", "method": "GET", - "url": "http://127.0.0.1:3000/api/articles/rd-test-84fc94-1/comments", + "url": "http://127.0.0.1:3000/api/articles/rd-test-f95995-1/comments", "resourceType": "xhr", - "startedAt": 3984, + "startedAt": 4116, "status": 200, "ok": true, - "finishedAt": 4003, + "finishedAt": 4134, "contentType": "application/json", "resourceTypeHint": "comments" }, { "id": "net-255", "method": "GET", - "url": "http://127.0.0.1:3000/api/articles/rd-test-84fc94-1", + "url": "http://127.0.0.1:3000/api/articles/rd-test-f95995-1", "resourceType": "xhr", - "startedAt": 3985, + "startedAt": 4116, "status": 200, "ok": true, - "finishedAt": 4007, + "finishedAt": 4139, "contentType": "application/json", - "resourceTypeHint": "rd-test-84fc94-1" + "resourceTypeHint": "rd-test-f95995-1" }, { "id": "net-256", "method": "GET", "url": "http://127.0.0.1:3000/api/user", "resourceType": "xhr", - "startedAt": 3985, + "startedAt": 4116, "status": 200, "ok": true, - "finishedAt": 3997, + "finishedAt": 4127, "contentType": "application/json", "resourceTypeHint": "user" }, { "id": "net-257", "method": "GET", - "url": "http://127.0.0.1:3000/api/articles/rd-test-84fc94-1/comments", + "url": "http://127.0.0.1:3000/api/articles/rd-test-f95995-1/comments", "resourceType": "xhr", - "startedAt": 3986, + "startedAt": 4117, "status": 200, "ok": true, - "finishedAt": 4003, + "finishedAt": 4135, "contentType": "application/json", "resourceTypeHint": "comments" }, { "id": "net-258", "method": "GET", - "url": "http://127.0.0.1:3000/api/articles/rd-test-84fc94-1", + "url": "http://127.0.0.1:3000/api/articles/rd-test-f95995-1", "resourceType": "xhr", - "startedAt": 3987, + "startedAt": 4117, "status": 200, "ok": true, - "finishedAt": 4007, + "finishedAt": 4139, "contentType": "application/json", - "resourceTypeHint": "rd-test-84fc94-1" + "resourceTypeHint": "rd-test-f95995-1" }, { "id": "net-259", "method": "GET", "url": "http://127.0.0.1:3000/api/user", "resourceType": "xhr", - "startedAt": 3987, + "startedAt": 4117, "status": 200, "ok": true, - "finishedAt": 4003, + "finishedAt": 4135, "contentType": "application/json", "resourceTypeHint": "user" }, @@ -4997,10 +4851,10 @@ "method": "GET", "url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwlxdu.woff2", "resourceType": "font", - "startedAt": 4011, + "startedAt": 4144, "status": 200, "ok": true, - "finishedAt": 4077, + "finishedAt": 4211, "contentType": "font/woff2", "resourceTypeHint": "6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwlxdu.woff2" } @@ -5013,28 +4867,28 @@ "selector": "body > div > main > div > div > div > div > form > fieldset > fieldset:nth-of-type(1) > input", "name": "title", "type": "text", - "value": "RD_TEST_84FC94_1", + "value": "RD_TEST_F95995_1", "redacted": false }, { "selector": "body > div > main > div > div > div > div > form > fieldset > fieldset:nth-of-type(2) > input", "name": "description", "type": "text", - "value": "RD_TEST_84FC94_2", + "value": "RD_TEST_F95995_2", "redacted": false }, { "selector": "body > div > main > div > div > div > div > form > fieldset > fieldset:nth-of-type(3) > textarea", "name": "body", "type": "textarea", - "value": "RD_TEST_84FC94_3", + "value": "RD_TEST_F95995_3", "redacted": false }, { "selector": "body > div > main > div > div > div > div > form > fieldset > fieldset:nth-of-type(4) > input", "name": "tags", "type": "text", - "value": "RD_TEST_84FC94_4", + "value": "RD_TEST_F95995_4", "redacted": false } ], @@ -5050,7 +4904,7 @@ "weight": 60, "matchCount": 1, "visibleCount": 1, - "elapsedMs": 5 + "elapsedMs": 2 } ], "chosenStrategy": "text", @@ -5058,10 +4912,10 @@ "retryCount": 0 }, "before": { - "at": 1460, + "at": 1537, "url": "http://127.0.0.1:3000/#/editor", "title": "Conduit", - "domHash": "cda756a29befbf68", + "domHash": "5ebc0985cd298024", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -5073,9 +4927,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "ba9ba6af2ee2f3df", + "textHash": "623d2b57c26f13d5", "visualHash": "b85410fa0ea5a358", - "text": "conduit Source code Home New Article rdq1784818988 Publish Article conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", + "text": "conduit Source code Home New Article rdq1785054823102 Publish Article conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "input", @@ -5127,7 +4981,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "60581d1527367fc4", + "valueHash": "5530bc1e89316fe8", "containsCanary": false } ], @@ -5150,13 +5004,13 @@ "schemaHash": "4dc457684d4d0982", "rows": [ { - "keyHash": "667da1af4b45220f", - "rowHash": "dca511a216c6426d", + "keyHash": "186347d9ea7673a2", + "rowHash": "b722d6313737881a", "softDeleted": false }, { - "keyHash": "346f5d46d64077fa", - "rowHash": "07a8385f5bef979b", + "keyHash": "da7114755c3b82ba", + "rowHash": "8fc053865923194c", "softDeleted": false } ], @@ -5165,10 +5019,10 @@ ] }, "beforeAction": { - "at": 1525, + "at": 1576, "url": "http://127.0.0.1:3000/#/editor", "title": "Conduit", - "domHash": "4b18a056682e0d9e", + "domHash": "e0fcab256097f31b", "canaryPresent": true, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -5180,15 +5034,15 @@ "accessDenied": false }, "semanticDom": { - "textHash": "ba9ba6af2ee2f3df", + "textHash": "623d2b57c26f13d5", "visualHash": "b85410fa0ea5a358", - "text": "conduit Source code Home New Article rdq1784818988 Publish Article conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", + "text": "conduit Source code Home New Article rdq1785054823102 Publish Article conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "input", "type": "text", "name": "title", - "valueHash": "ac458f73e769bb30", + "valueHash": "b1ecbb2c73c74aae", "checked": false, "disabled": false, "visible": true @@ -5197,7 +5051,7 @@ "tag": "input", "type": "text", "name": "description", - "valueHash": "92b8ba20633a1da3", + "valueHash": "7ecc020bffae0253", "checked": false, "disabled": false, "visible": true @@ -5206,7 +5060,7 @@ "tag": "textarea", "type": "textarea", "name": "body", - "valueHash": "c513fc7b75471075", + "valueHash": "6c0eafd99f29ca4d", "disabled": false, "visible": true }, @@ -5214,7 +5068,7 @@ "tag": "input", "type": "text", "name": "tags", - "valueHash": "495fcb93435d0a3e", + "valueHash": "ca4dbf3dc5193203", "checked": false, "disabled": false, "visible": true @@ -5234,7 +5088,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "60581d1527367fc4", + "valueHash": "5530bc1e89316fe8", "containsCanary": false } ], @@ -5248,10 +5102,10 @@ "networkSettled": true, "targetBusyAfter": false, "after": { - "at": 2676, - "url": "http://127.0.0.1:3000/#/article/rd-test-84fc94-1", + "at": 2695, + "url": "http://127.0.0.1:3000/#/article/rd-test-f95995-1", "title": "Conduit", - "domHash": "72c1d5c64ca051b3", + "domHash": "25b61309ee9b15ab", "canaryPresent": true, "bodyCanaryPresent": true, "temporaryBlobUrls": 0, @@ -5263,9 +5117,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "d8aae5298570c824", + "textHash": "fda3dd7493ba82f2", "visualHash": "471347ba69eaf940", - "text": "conduit Source code Home New Article rdq1784818988 RD_TEST_84FC94_1 rdq1784818988 July 23, 2026 Delete Article Edit Article RD_TEST_84FC94_3 RD_TEST_84FC94_4 rdq1784818988 July 23, 2026 Delete Article Edit Article Post Comment There are no comments yet... conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", + "text": "conduit Source code Home New Article rdq1785054823102 RD_TEST_F95995_1 rdq1785054823102 July 26, 2026 Delete Article Edit Article RD_TEST_F95995_3 RD_TEST_F95995_4 rdq1785054823102 July 26, 2026 Delete Article Edit Article Post Comment There are no comments yet... conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "button", @@ -5317,7 +5171,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "60581d1527367fc4", + "valueHash": "5530bc1e89316fe8", "containsCanary": false } ], @@ -5333,8 +5187,8 @@ "schemaHash": "d718b75b5f43908b", "rows": [ { - "keyHash": "da7114755c3b82ba", - "rowHash": "a5fce57b274196ee", + "keyHash": "186347d9ea7673a2", + "rowHash": "2303100aae39ad27", "softDeleted": false } ], @@ -5346,13 +5200,13 @@ "schemaHash": "4dc457684d4d0982", "rows": [ { - "keyHash": "667da1af4b45220f", - "rowHash": "dca511a216c6426d", + "keyHash": "186347d9ea7673a2", + "rowHash": "b722d6313737881a", "softDeleted": false }, { - "keyHash": "346f5d46d64077fa", - "rowHash": "07a8385f5bef979b", + "keyHash": "da7114755c3b82ba", + "rowHash": "8fc053865923194c", "softDeleted": false } ], @@ -5364,25 +5218,25 @@ "webSockets": [ { "url": "ws://127.0.0.1:3000/?token=%5BREDACTED%5D", - "openedAt": 2871, + "openedAt": 3063, "sentFrames": 0, "receivedFrames": 1, "errors": [], - "closedAt": 3806 + "closedAt": 3967 }, { "url": "ws://127.0.0.1:3000/?token=%5BREDACTED%5D", - "openedAt": 3897, + "openedAt": 4061, "sentFrames": 0, "receivedFrames": 1, "errors": [] } ], "afterRefresh": { - "at": 3751, - "url": "http://127.0.0.1:3000/#/article/rd-test-84fc94-1", + "at": 3905, + "url": "http://127.0.0.1:3000/#/article/rd-test-f95995-1", "title": "Conduit", - "domHash": "72c1d5c64ca051b3", + "domHash": "25b61309ee9b15ab", "canaryPresent": true, "bodyCanaryPresent": true, "temporaryBlobUrls": 0, @@ -5394,9 +5248,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "d8aae5298570c824", + "textHash": "fda3dd7493ba82f2", "visualHash": "471347ba69eaf940", - "text": "conduit Source code Home New Article rdq1784818988 RD_TEST_84FC94_1 rdq1784818988 July 23, 2026 Delete Article Edit Article RD_TEST_84FC94_3 RD_TEST_84FC94_4 rdq1784818988 July 23, 2026 Delete Article Edit Article Post Comment There are no comments yet... conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", + "text": "conduit Source code Home New Article rdq1785054823102 RD_TEST_F95995_1 rdq1785054823102 July 26, 2026 Delete Article Edit Article RD_TEST_F95995_3 RD_TEST_F95995_4 rdq1785054823102 July 26, 2026 Delete Article Edit Article Post Comment There are no comments yet... conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "button", @@ -5448,7 +5302,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "60581d1527367fc4", + "valueHash": "5530bc1e89316fe8", "containsCanary": false } ], @@ -5460,10 +5314,10 @@ }, "refreshScreenshot": "screenshots/9b8462828b58-refresh.png", "afterHardRefresh": { - "at": 4827, - "url": "http://127.0.0.1:3000/#/article/rd-test-84fc94-1", + "at": 4932, + "url": "http://127.0.0.1:3000/#/article/rd-test-f95995-1", "title": "Conduit", - "domHash": "72c1d5c64ca051b3", + "domHash": "25b61309ee9b15ab", "canaryPresent": true, "bodyCanaryPresent": true, "temporaryBlobUrls": 0, @@ -5475,9 +5329,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "d8aae5298570c824", + "textHash": "fda3dd7493ba82f2", "visualHash": "471347ba69eaf940", - "text": "conduit Source code Home New Article rdq1784818988 RD_TEST_84FC94_1 rdq1784818988 July 23, 2026 Delete Article Edit Article RD_TEST_84FC94_3 RD_TEST_84FC94_4 rdq1784818988 July 23, 2026 Delete Article Edit Article Post Comment There are no comments yet... conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", + "text": "conduit Source code Home New Article rdq1785054823102 RD_TEST_F95995_1 rdq1785054823102 July 26, 2026 Delete Article Edit Article RD_TEST_F95995_3 RD_TEST_F95995_4 rdq1785054823102 July 26, 2026 Delete Article Edit Article Post Comment There are no comments yet... conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "button", @@ -5529,7 +5383,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "60581d1527367fc4", + "valueHash": "5530bc1e89316fe8", "containsCanary": false } ], @@ -5540,10 +5394,10 @@ } }, "afterNewTab": { - "at": 5924, + "at": 5967, "url": "http://127.0.0.1:3000/#/editor", "title": "Conduit", - "domHash": "cda756a29befbf68", + "domHash": "5ebc0985cd298024", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -5555,9 +5409,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "ba9ba6af2ee2f3df", + "textHash": "623d2b57c26f13d5", "visualHash": "b85410fa0ea5a358", - "text": "conduit Source code Home New Article rdq1784818988 Publish Article conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", + "text": "conduit Source code Home New Article rdq1785054823102 Publish Article conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "input", @@ -5609,7 +5463,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "60581d1527367fc4", + "valueHash": "5530bc1e89316fe8", "containsCanary": false } ], @@ -5620,10 +5474,10 @@ } }, "afterNewContext": { - "at": 7201, - "url": "http://127.0.0.1:3000/#/article/rd-test-84fc94-1", + "at": 7327, + "url": "http://127.0.0.1:3000/#/article/rd-test-f95995-1", "title": "Conduit", - "domHash": "72c1d5c64ca051b3", + "domHash": "25b61309ee9b15ab", "canaryPresent": true, "bodyCanaryPresent": true, "temporaryBlobUrls": 0, @@ -5635,9 +5489,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "d8aae5298570c824", + "textHash": "fda3dd7493ba82f2", "visualHash": "471347ba69eaf940", - "text": "conduit Source code Home New Article rdq1784818988 RD_TEST_84FC94_1 rdq1784818988 July 23, 2026 Delete Article Edit Article RD_TEST_84FC94_3 RD_TEST_84FC94_4 rdq1784818988 July 23, 2026 Delete Article Edit Article Post Comment There are no comments yet... conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", + "text": "conduit Source code Home New Article rdq1785054823102 RD_TEST_F95995_1 rdq1785054823102 July 26, 2026 Delete Article Edit Article RD_TEST_F95995_3 RD_TEST_F95995_4 rdq1785054823102 July 26, 2026 Delete Article Edit Article Post Comment There are no comments yet... conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "button", @@ -5689,7 +5543,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "60581d1527367fc4", + "valueHash": "5530bc1e89316fe8", "containsCanary": false } ], @@ -5705,7 +5559,7 @@ "adapter": "postgresql", "resource": "articles", "added": [ - "da7114755c3b82ba" + "186347d9ea7673a2" ], "removed": [], "changed": [], @@ -5723,7 +5577,7 @@ } ], "sourceSnapshotErrors": [], - "snapshotIndex": "snapshots/RD-005.index.json" + "snapshotIndex": "snapshots/RD-003.index.json" }, "verdict": "VERIFIED", "evidenceLevel": 6, @@ -5731,7 +5585,7 @@ "detectorMatches": [] }, { - "id": "RD-006", + "id": "RD-004", "action": { "id": "87ec9ce9b221", "pageUrl": "http://127.0.0.1:3000/#/editor", @@ -5784,19 +5638,19 @@ "fields": [] }, "evidence": { - "startedAt": "2026-07-23T15:03:34.333Z", - "durationMs": 2496, - "canary": "RD_TEST_4316C7", + "startedAt": "2026-07-26T08:34:09.867Z", + "durationMs": 2532, + "canary": "RD_TEST_FC28E2", "network": [ { "id": "net-1", "method": "GET", "url": "http://127.0.0.1:3000/api/articles/feed?limit=3&&offset=0", "resourceType": "xhr", - "startedAt": 1525, + "startedAt": 1536, "status": 200, "ok": true, - "finishedAt": 1539, + "finishedAt": 1550, "contentType": "application/json", "resourceTypeHint": "feed" }, @@ -5805,22 +5659,22 @@ "method": "GET", "url": "http://127.0.0.1:3000/api/tags", "resourceType": "xhr", - "startedAt": 1526, + "startedAt": 1537, "status": 200, "ok": true, + "finishedAt": 1551, "contentType": "application/json", - "resourceTypeHint": "tags", - "finishedAt": 1534 + "resourceTypeHint": "tags" }, { "id": "net-3", "method": "GET", "url": "http://127.0.0.1:3000/api/articles/feed?limit=3&&offset=0", "resourceType": "xhr", - "startedAt": 1527, + "startedAt": 1537, "status": 200, "ok": true, - "finishedAt": 1540, + "finishedAt": 1554, "contentType": "application/json", "resourceTypeHint": "feed" }, @@ -5829,10 +5683,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/api/tags", "resourceType": "xhr", - "startedAt": 1527, + "startedAt": 1537, "status": 200, "ok": true, - "finishedAt": 1534, + "finishedAt": 1551, "contentType": "application/json", "resourceTypeHint": "tags" } @@ -5853,35 +5707,35 @@ "weight": 92, "matchCount": 2, "visibleCount": 2, - "elapsedMs": 7 + "elapsedMs": 5 }, { "strategy": "role", "weight": 82, "matchCount": 2, "visibleCount": 2, - "elapsedMs": 7 + "elapsedMs": 3 }, { "strategy": "href", "weight": 72, "matchCount": 0, "visibleCount": 0, - "elapsedMs": 2 + "elapsedMs": 1 }, { "strategy": "text", "weight": 60, "matchCount": 2, "visibleCount": 2, - "elapsedMs": 5 + "elapsedMs": 3 }, { "strategy": "css", "weight": 35, "matchCount": 1, "visibleCount": 1, - "elapsedMs": 4 + "elapsedMs": 1 } ], "chosenStrategy": "css", @@ -5889,10 +5743,10 @@ "retryCount": 0 }, "before": { - "at": 1485, + "at": 1507, "url": "http://127.0.0.1:3000/#/editor", "title": "Conduit", - "domHash": "cda756a29befbf68", + "domHash": "5ebc0985cd298024", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -5904,9 +5758,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "ba9ba6af2ee2f3df", + "textHash": "623d2b57c26f13d5", "visualHash": "b85410fa0ea5a358", - "text": "conduit Source code Home New Article rdq1784818988 Publish Article conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", + "text": "conduit Source code Home New Article rdq1785054823102 Publish Article conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "input", @@ -5958,7 +5812,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "60581d1527367fc4", + "valueHash": "5530bc1e89316fe8", "containsCanary": false } ], @@ -5969,10 +5823,10 @@ } }, "beforeAction": { - "at": 1493, + "at": 1514, "url": "http://127.0.0.1:3000/#/editor", "title": "Conduit", - "domHash": "cda756a29befbf68", + "domHash": "5ebc0985cd298024", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -5984,9 +5838,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "ba9ba6af2ee2f3df", + "textHash": "623d2b57c26f13d5", "visualHash": "b85410fa0ea5a358", - "text": "conduit Source code Home New Article rdq1784818988 Publish Article conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", + "text": "conduit Source code Home New Article rdq1785054823102 Publish Article conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "input", @@ -6038,7 +5892,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "60581d1527367fc4", + "valueHash": "5530bc1e89316fe8", "containsCanary": false } ], @@ -6051,10 +5905,10 @@ "networkSettled": true, "targetBusyAfter": false, "after": { - "at": 2493, + "at": 2529, "url": "http://127.0.0.1:3000/#/", "title": "Conduit", - "domHash": "72e1c5d77b56bbde", + "domHash": "f12a3cec7e00e6bc", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -6066,9 +5920,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "ef3e57007eeb4737", + "textHash": "97e2b175e91d32b0", "visualHash": "72ad38eb67085423", - "text": "conduit Source code Home New Article rdq1784818988 Your Feed Global Feed Articles not available. Popular Tags RD_TEST_84FC94_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", + "text": "conduit Source code Home New Article rdq1785054823102 Your Feed Global Feed Articles not available. Popular Tags RD_TEST_F95995_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "button", @@ -6099,7 +5953,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "60581d1527367fc4", + "valueHash": "5530bc1e89316fe8", "containsCanary": false } ], @@ -6109,7 +5963,7 @@ "indexedDb": [] } }, - "snapshotIndex": "snapshots/RD-006.index.json" + "snapshotIndex": "snapshots/RD-004.index.json" }, "verdict": "VERIFIED", "evidenceLevel": 2, @@ -6117,67 +5971,62 @@ "detectorMatches": [] }, { - "id": "RD-007", + "id": "RD-005", "action": { - "id": "799b5221fec8", - "pageUrl": "http://127.0.0.1:3000/#/editor", - "label": "Thinkster", + "id": "41da37d8eedb", + "pageUrl": "http://127.0.0.1:3000/", + "label": "conduit", "activation": "click", "kind": "navigation", "intent": "navigate", "risk": "safe", "fingerprint": { - "selector": "body > div > footer > div > span > a", + "selector": "body > div > header > nav > div > a", "tag": "a", - "ordinal": 6, + "ordinal": 0, "role": "link", - "accessibleName": "Thinkster", - "text": "Thinkster", - "href": "https://thinkster.io/", + "accessibleName": "conduit", + "text": "conduit", + "href": "http://127.0.0.1:3000/#/", "candidates": [ { "strategy": "role", "weight": 92, "role": "link", - "name": "Thinkster", + "name": "conduit", "exact": true }, { "strategy": "role", "weight": 82, "role": "link", - "name": "Thinkster", + "name": "conduit", "exact": false }, { "strategy": "href", "weight": 72, - "value": "https://thinkster.io/" + "value": "http://127.0.0.1:3000/#/" }, { "strategy": "text", "weight": 60, - "value": "Thinkster", + "value": "conduit", "exact": true }, { "strategy": "css", "weight": 35, - "selector": "body > div > footer > div > span > a" + "selector": "body > div > header > nav > div > a" } ] }, "fields": [] }, - "verdict": "SKIPPED", - "evidenceLevel": 0, - "reason": "Cross-origin navigation blocked by the default safety policy. Use --allow-external explicitly.", - "skippedReason": "Cross-origin navigation blocked by the default safety policy. Use --allow-external explicitly.", - "detectorMatches": [], "evidence": { - "startedAt": "", - "durationMs": 0, - "canary": "", + "startedAt": "2026-07-26T08:34:12.402Z", + "durationMs": 2503, + "canary": "RD_TEST_12F106", "network": [], "console": [], "pageErrors": [], @@ -6185,186 +6034,45 @@ "filledFields": [], "dialogs": [], "downloads": [], + "downloadEvidence": [], + "uploads": [], "popupUrls": [], - "snapshotIndex": "snapshots/RD-007.index.json" - } - }, - { - "id": "RD-008", - "action": { - "id": "37e9aaab233a", - "pageUrl": "http://127.0.0.1:3000/#/editor", - "label": "Source code", - "activation": "click", - "kind": "navigation", - "intent": "navigate", - "risk": "safe", - "fingerprint": { - "selector": "body > div > footer > div > ul > li > a", - "tag": "a", - "ordinal": 7, - "role": "link", - "accessibleName": "Source code", - "text": "Source code", - "href": "https://github.com/TonyMckes/conduit-realworld-example-app", - "candidates": [ + "locatorResolution": { + "attempts": [ { "strategy": "role", "weight": 92, - "role": "link", - "name": "Source code", - "exact": true + "matchCount": 2, + "visibleCount": 2, + "elapsedMs": 4 }, { "strategy": "role", "weight": 82, - "role": "link", - "name": "Source code", - "exact": false + "matchCount": 2, + "visibleCount": 2, + "elapsedMs": 3 }, { "strategy": "href", "weight": 72, - "value": "https://github.com/TonyMckes/conduit-realworld-example-app" + "matchCount": 0, + "visibleCount": 0, + "elapsedMs": 1 }, { "strategy": "text", "weight": 60, - "value": "Source code", - "exact": true - }, - { - "strategy": "css", - "weight": 35, - "selector": "body > div > footer > div > ul > li > a" - } - ] - }, - "fields": [] - }, - "verdict": "SKIPPED", - "evidenceLevel": 0, - "reason": "Cross-origin navigation blocked by the default safety policy. Use --allow-external explicitly.", - "skippedReason": "Cross-origin navigation blocked by the default safety policy. Use --allow-external explicitly.", - "detectorMatches": [], - "evidence": { - "startedAt": "", - "durationMs": 0, - "canary": "", - "network": [], - "console": [], - "pageErrors": [], - "uiClaims": [], - "filledFields": [], - "dialogs": [], - "downloads": [], - "popupUrls": [], - "snapshotIndex": "snapshots/RD-008.index.json" - } - }, - { - "id": "RD-009", - "action": { - "id": "41da37d8eedb", - "pageUrl": "http://127.0.0.1:3000/", - "label": "conduit", - "activation": "click", - "kind": "navigation", - "intent": "navigate", - "risk": "safe", - "fingerprint": { - "selector": "body > div > header > nav > div > a", - "tag": "a", - "ordinal": 0, - "role": "link", - "accessibleName": "conduit", - "text": "conduit", - "href": "http://127.0.0.1:3000/#/", - "candidates": [ - { - "strategy": "role", - "weight": 92, - "role": "link", - "name": "conduit", - "exact": true - }, - { - "strategy": "role", - "weight": 82, - "role": "link", - "name": "conduit", - "exact": false - }, - { - "strategy": "href", - "weight": 72, - "value": "http://127.0.0.1:3000/#/" - }, - { - "strategy": "text", - "weight": 60, - "value": "conduit", - "exact": true - }, - { - "strategy": "css", - "weight": 35, - "selector": "body > div > header > nav > div > a" - } - ] - }, - "fields": [] - }, - "evidence": { - "startedAt": "2026-07-23T15:03:36.864Z", - "durationMs": 2474, - "canary": "RD_TEST_BB59C9", - "network": [], - "console": [], - "pageErrors": [], - "uiClaims": [], - "filledFields": [], - "dialogs": [], - "downloads": [], - "downloadEvidence": [], - "uploads": [], - "popupUrls": [], - "locatorResolution": { - "attempts": [ - { - "strategy": "role", - "weight": 92, - "matchCount": 2, - "visibleCount": 2, - "elapsedMs": 8 - }, - { - "strategy": "role", - "weight": 82, - "matchCount": 2, - "visibleCount": 2, - "elapsedMs": 6 - }, - { - "strategy": "href", - "weight": 72, - "matchCount": 0, - "visibleCount": 0, - "elapsedMs": 2 - }, - { - "strategy": "text", - "weight": 60, - "matchCount": 2, - "visibleCount": 2, - "elapsedMs": 6 + "matchCount": 2, + "visibleCount": 2, + "elapsedMs": 2 }, { "strategy": "css", "weight": 35, "matchCount": 1, "visibleCount": 1, - "elapsedMs": 3 + "elapsedMs": 2 } ], "chosenStrategy": "css", @@ -6372,10 +6080,10 @@ "retryCount": 0 }, "before": { - "at": 1466, + "at": 1518, "url": "http://127.0.0.1:3000/", "title": "Conduit", - "domHash": "72e1c5d77b56bbde", + "domHash": "f12a3cec7e00e6bc", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -6387,9 +6095,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "ef3e57007eeb4737", + "textHash": "97e2b175e91d32b0", "visualHash": "72ad38eb67085423", - "text": "conduit Source code Home New Article rdq1784818988 Your Feed Global Feed Articles not available. Popular Tags RD_TEST_84FC94_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", + "text": "conduit Source code Home New Article rdq1785054823102 Your Feed Global Feed Articles not available. Popular Tags RD_TEST_F95995_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "button", @@ -6420,7 +6128,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "60581d1527367fc4", + "valueHash": "5530bc1e89316fe8", "containsCanary": false } ], @@ -6431,10 +6139,10 @@ } }, "beforeAction": { - "at": 1475, + "at": 1525, "url": "http://127.0.0.1:3000/", "title": "Conduit", - "domHash": "72e1c5d77b56bbde", + "domHash": "f12a3cec7e00e6bc", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -6446,9 +6154,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "ef3e57007eeb4737", + "textHash": "97e2b175e91d32b0", "visualHash": "72ad38eb67085423", - "text": "conduit Source code Home New Article rdq1784818988 Your Feed Global Feed Articles not available. Popular Tags RD_TEST_84FC94_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", + "text": "conduit Source code Home New Article rdq1785054823102 Your Feed Global Feed Articles not available. Popular Tags RD_TEST_F95995_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "button", @@ -6479,7 +6187,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "60581d1527367fc4", + "valueHash": "5530bc1e89316fe8", "containsCanary": false } ], @@ -6492,10 +6200,10 @@ "networkSettled": true, "targetBusyAfter": false, "after": { - "at": 2470, + "at": 2500, "url": "http://127.0.0.1:3000/#/", "title": "Conduit", - "domHash": "72e1c5d77b56bbde", + "domHash": "f12a3cec7e00e6bc", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -6507,9 +6215,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "ef3e57007eeb4737", + "textHash": "97e2b175e91d32b0", "visualHash": "72ad38eb67085423", - "text": "conduit Source code Home New Article rdq1784818988 Your Feed Global Feed Articles not available. Popular Tags RD_TEST_84FC94_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", + "text": "conduit Source code Home New Article rdq1785054823102 Your Feed Global Feed Articles not available. Popular Tags RD_TEST_F95995_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "button", @@ -6540,7 +6248,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "60581d1527367fc4", + "valueHash": "5530bc1e89316fe8", "containsCanary": false } ], @@ -6550,7 +6258,7 @@ "indexedDb": [] } }, - "snapshotIndex": "snapshots/RD-009.index.json" + "snapshotIndex": "snapshots/RD-005.index.json" }, "verdict": "VERIFIED", "evidenceLevel": 1, @@ -6558,80 +6266,7 @@ "detectorMatches": [] }, { - "id": "RD-010", - "action": { - "id": "25e3419d67d3", - "pageUrl": "http://127.0.0.1:3000/", - "label": "Source code", - "activation": "click", - "kind": "navigation", - "intent": "navigate", - "risk": "safe", - "fingerprint": { - "selector": "body > div > header > nav > div > ul:nth-of-type(1) > li > a", - "tag": "a", - "ordinal": 1, - "role": "link", - "accessibleName": "Source code", - "text": "Source code", - "href": "https://github.com/TonyMckes/conduit-realworld-example-app", - "candidates": [ - { - "strategy": "role", - "weight": 92, - "role": "link", - "name": "Source code", - "exact": true - }, - { - "strategy": "role", - "weight": 82, - "role": "link", - "name": "Source code", - "exact": false - }, - { - "strategy": "href", - "weight": 72, - "value": "https://github.com/TonyMckes/conduit-realworld-example-app" - }, - { - "strategy": "text", - "weight": 60, - "value": "Source code", - "exact": true - }, - { - "strategy": "css", - "weight": 35, - "selector": "body > div > header > nav > div > ul:nth-of-type(1) > li > a" - } - ] - }, - "fields": [] - }, - "verdict": "SKIPPED", - "evidenceLevel": 0, - "reason": "Cross-origin navigation blocked by the default safety policy. Use --allow-external explicitly.", - "skippedReason": "Cross-origin navigation blocked by the default safety policy. Use --allow-external explicitly.", - "detectorMatches": [], - "evidence": { - "startedAt": "", - "durationMs": 0, - "canary": "", - "network": [], - "console": [], - "pageErrors": [], - "uiClaims": [], - "filledFields": [], - "dialogs": [], - "downloads": [], - "popupUrls": [], - "snapshotIndex": "snapshots/RD-010.index.json" - } - }, - { - "id": "RD-011", + "id": "RD-006", "action": { "id": "1f1deb778a19", "pageUrl": "http://127.0.0.1:3000/", @@ -6684,9 +6319,9 @@ "fields": [] }, "evidence": { - "startedAt": "2026-07-23T15:03:39.366Z", - "durationMs": 2480, - "canary": "RD_TEST_CA306B", + "startedAt": "2026-07-26T08:34:14.908Z", + "durationMs": 2524, + "canary": "RD_TEST_20ABB1", "network": [], "console": [], "pageErrors": [], @@ -6704,14 +6339,14 @@ "weight": 92, "matchCount": 0, "visibleCount": 0, - "elapsedMs": 3 + "elapsedMs": 2 }, { "strategy": "role", "weight": 82, "matchCount": 1, "visibleCount": 1, - "elapsedMs": 5 + "elapsedMs": 2 } ], "chosenStrategy": "role", @@ -6719,10 +6354,10 @@ "retryCount": 0 }, "before": { - "at": 1463, + "at": 1532, "url": "http://127.0.0.1:3000/", "title": "Conduit", - "domHash": "72e1c5d77b56bbde", + "domHash": "f12a3cec7e00e6bc", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -6734,9 +6369,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "ef3e57007eeb4737", + "textHash": "97e2b175e91d32b0", "visualHash": "72ad38eb67085423", - "text": "conduit Source code Home New Article rdq1784818988 Your Feed Global Feed Articles not available. Popular Tags RD_TEST_84FC94_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", + "text": "conduit Source code Home New Article rdq1785054823102 Your Feed Global Feed Articles not available. Popular Tags RD_TEST_F95995_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "button", @@ -6767,7 +6402,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "60581d1527367fc4", + "valueHash": "5530bc1e89316fe8", "containsCanary": false } ], @@ -6778,10 +6413,10 @@ } }, "beforeAction": { - "at": 1471, + "at": 1538, "url": "http://127.0.0.1:3000/", "title": "Conduit", - "domHash": "72e1c5d77b56bbde", + "domHash": "f12a3cec7e00e6bc", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -6793,9 +6428,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "ef3e57007eeb4737", + "textHash": "97e2b175e91d32b0", "visualHash": "72ad38eb67085423", - "text": "conduit Source code Home New Article rdq1784818988 Your Feed Global Feed Articles not available. Popular Tags RD_TEST_84FC94_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", + "text": "conduit Source code Home New Article rdq1785054823102 Your Feed Global Feed Articles not available. Popular Tags RD_TEST_F95995_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "button", @@ -6826,7 +6461,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "60581d1527367fc4", + "valueHash": "5530bc1e89316fe8", "containsCanary": false } ], @@ -6839,10 +6474,10 @@ "networkSettled": true, "targetBusyAfter": false, "after": { - "at": 2476, + "at": 2521, "url": "http://127.0.0.1:3000/#/", "title": "Conduit", - "domHash": "72e1c5d77b56bbde", + "domHash": "f12a3cec7e00e6bc", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -6854,9 +6489,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "ef3e57007eeb4737", + "textHash": "97e2b175e91d32b0", "visualHash": "72ad38eb67085423", - "text": "conduit Source code Home New Article rdq1784818988 Your Feed Global Feed Articles not available. Popular Tags RD_TEST_84FC94_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", + "text": "conduit Source code Home New Article rdq1785054823102 Your Feed Global Feed Articles not available. Popular Tags RD_TEST_F95995_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "button", @@ -6887,7 +6522,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "60581d1527367fc4", + "valueHash": "5530bc1e89316fe8", "containsCanary": false } ], @@ -6897,7 +6532,7 @@ "indexedDb": [] } }, - "snapshotIndex": "snapshots/RD-011.index.json" + "snapshotIndex": "snapshots/RD-006.index.json" }, "verdict": "VERIFIED", "evidenceLevel": 1, @@ -6905,7 +6540,7 @@ "detectorMatches": [] }, { - "id": "RD-012", + "id": "RD-007", "action": { "id": "23e7c4644d98", "pageUrl": "http://127.0.0.1:3000/", @@ -6958,9 +6593,9 @@ "fields": [] }, "evidence": { - "startedAt": "2026-07-23T15:03:41.873Z", - "durationMs": 2482, - "canary": "RD_TEST_C11649", + "startedAt": "2026-07-26T08:34:17.434Z", + "durationMs": 2517, + "canary": "RD_TEST_537EB8", "network": [], "console": [], "pageErrors": [], @@ -6978,14 +6613,14 @@ "weight": 92, "matchCount": 0, "visibleCount": 0, - "elapsedMs": 3 + "elapsedMs": 2 }, { "strategy": "role", "weight": 82, "matchCount": 1, "visibleCount": 1, - "elapsedMs": 4 + "elapsedMs": 2 } ], "chosenStrategy": "role", @@ -6993,10 +6628,10 @@ "retryCount": 0 }, "before": { - "at": 1483, + "at": 1518, "url": "http://127.0.0.1:3000/", "title": "Conduit", - "domHash": "72e1c5d77b56bbde", + "domHash": "f12a3cec7e00e6bc", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -7008,9 +6643,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "ef3e57007eeb4737", + "textHash": "97e2b175e91d32b0", "visualHash": "72ad38eb67085423", - "text": "conduit Source code Home New Article rdq1784818988 Your Feed Global Feed Articles not available. Popular Tags RD_TEST_84FC94_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", + "text": "conduit Source code Home New Article rdq1785054823102 Your Feed Global Feed Articles not available. Popular Tags RD_TEST_F95995_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "button", @@ -7041,7 +6676,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "60581d1527367fc4", + "valueHash": "5530bc1e89316fe8", "containsCanary": false } ], @@ -7052,10 +6687,10 @@ } }, "beforeAction": { - "at": 1491, + "at": 1524, "url": "http://127.0.0.1:3000/", "title": "Conduit", - "domHash": "72e1c5d77b56bbde", + "domHash": "f12a3cec7e00e6bc", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -7067,9 +6702,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "ef3e57007eeb4737", + "textHash": "97e2b175e91d32b0", "visualHash": "72ad38eb67085423", - "text": "conduit Source code Home New Article rdq1784818988 Your Feed Global Feed Articles not available. Popular Tags RD_TEST_84FC94_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", + "text": "conduit Source code Home New Article rdq1785054823102 Your Feed Global Feed Articles not available. Popular Tags RD_TEST_F95995_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "button", @@ -7100,7 +6735,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "60581d1527367fc4", + "valueHash": "5530bc1e89316fe8", "containsCanary": false } ], @@ -7113,10 +6748,10 @@ "networkSettled": true, "targetBusyAfter": false, "after": { - "at": 2478, + "at": 2513, "url": "http://127.0.0.1:3000/#/editor", "title": "Conduit", - "domHash": "cda756a29befbf68", + "domHash": "5ebc0985cd298024", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -7128,9 +6763,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "ba9ba6af2ee2f3df", + "textHash": "623d2b57c26f13d5", "visualHash": "b85410fa0ea5a358", - "text": "conduit Source code Home New Article rdq1784818988 Publish Article conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", + "text": "conduit Source code Home New Article rdq1785054823102 Publish Article conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "input", @@ -7182,7 +6817,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "60581d1527367fc4", + "valueHash": "5530bc1e89316fe8", "containsCanary": false } ], @@ -7192,7 +6827,7 @@ "indexedDb": [] } }, - "snapshotIndex": "snapshots/RD-012.index.json" + "snapshotIndex": "snapshots/RD-007.index.json" }, "verdict": "VERIFIED", "evidenceLevel": 1, @@ -7200,7 +6835,7 @@ "detectorMatches": [] }, { - "id": "RD-013", + "id": "RD-008", "action": { "id": "2d9ff0a4be0d", "pageUrl": "http://127.0.0.1:3000/", @@ -7248,19 +6883,19 @@ "fields": [] }, "evidence": { - "startedAt": "2026-07-23T15:03:44.389Z", - "durationMs": 2496, - "canary": "RD_TEST_1DA989", + "startedAt": "2026-07-26T08:34:19.953Z", + "durationMs": 2594, + "canary": "RD_TEST_FE52A0", "network": [ { "id": "net-1", "method": "GET", "url": "http://127.0.0.1:3000/api/articles/feed?limit=3&&offset=0", "resourceType": "xhr", - "startedAt": 1486, + "startedAt": 1582, "status": 200, "ok": true, - "finishedAt": 1496, + "finishedAt": 1593, "contentType": "application/json", "resourceTypeHint": "feed" } @@ -7281,7 +6916,7 @@ "weight": 92, "matchCount": 1, "visibleCount": 1, - "elapsedMs": 4 + "elapsedMs": 3 } ], "chosenStrategy": "role", @@ -7289,10 +6924,10 @@ "retryCount": 0 }, "before": { - "at": 1452, + "at": 1551, "url": "http://127.0.0.1:3000/", "title": "Conduit", - "domHash": "72e1c5d77b56bbde", + "domHash": "f12a3cec7e00e6bc", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -7304,9 +6939,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "ef3e57007eeb4737", + "textHash": "97e2b175e91d32b0", "visualHash": "72ad38eb67085423", - "text": "conduit Source code Home New Article rdq1784818988 Your Feed Global Feed Articles not available. Popular Tags RD_TEST_84FC94_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", + "text": "conduit Source code Home New Article rdq1785054823102 Your Feed Global Feed Articles not available. Popular Tags RD_TEST_F95995_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "button", @@ -7337,7 +6972,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "60581d1527367fc4", + "valueHash": "5530bc1e89316fe8", "containsCanary": false } ], @@ -7348,10 +6983,10 @@ } }, "beforeAction": { - "at": 1460, + "at": 1558, "url": "http://127.0.0.1:3000/", "title": "Conduit", - "domHash": "72e1c5d77b56bbde", + "domHash": "f12a3cec7e00e6bc", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -7363,9 +6998,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "ef3e57007eeb4737", + "textHash": "97e2b175e91d32b0", "visualHash": "72ad38eb67085423", - "text": "conduit Source code Home New Article rdq1784818988 Your Feed Global Feed Articles not available. Popular Tags RD_TEST_84FC94_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", + "text": "conduit Source code Home New Article rdq1785054823102 Your Feed Global Feed Articles not available. Popular Tags RD_TEST_F95995_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "button", @@ -7396,7 +7031,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "60581d1527367fc4", + "valueHash": "5530bc1e89316fe8", "containsCanary": false } ], @@ -7409,10 +7044,10 @@ "networkSettled": true, "targetBusyAfter": false, "after": { - "at": 2469, + "at": 2566, "url": "http://127.0.0.1:3000/", "title": "Conduit", - "domHash": "72e1c5d77b56bbde", + "domHash": "f12a3cec7e00e6bc", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -7424,9 +7059,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "ef3e57007eeb4737", + "textHash": "97e2b175e91d32b0", "visualHash": "72ad38eb67085423", - "text": "conduit Source code Home New Article rdq1784818988 Your Feed Global Feed Articles not available. Popular Tags RD_TEST_84FC94_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", + "text": "conduit Source code Home New Article rdq1785054823102 Your Feed Global Feed Articles not available. Popular Tags RD_TEST_F95995_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "button", @@ -7457,7 +7092,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "60581d1527367fc4", + "valueHash": "5530bc1e89316fe8", "containsCanary": false } ], @@ -7468,7 +7103,7 @@ } }, "screenshot": "screenshots/2d9ff0a4be0d-after.png", - "snapshotIndex": "snapshots/RD-013.index.json" + "snapshotIndex": "snapshots/RD-008.index.json" }, "verdict": "VERIFIED", "evidenceLevel": 2, @@ -7476,7 +7111,7 @@ "detectorMatches": [] }, { - "id": "RD-014", + "id": "RD-009", "action": { "id": "3e6593f2a04d", "pageUrl": "http://127.0.0.1:3000/", @@ -7524,19 +7159,19 @@ "fields": [] }, "evidence": { - "startedAt": "2026-07-23T15:03:46.913Z", - "durationMs": 2544, - "canary": "RD_TEST_398BCC", + "startedAt": "2026-07-26T08:34:22.550Z", + "durationMs": 2585, + "canary": "RD_TEST_55D27D", "network": [ { "id": "net-1", "method": "GET", "url": "http://127.0.0.1:3000/api/articles?limit=3&&offset=0", "resourceType": "xhr", - "startedAt": 1478, + "startedAt": 1537, "status": 200, "ok": true, - "finishedAt": 1490, + "finishedAt": 1547, "contentType": "application/json", "resourceTypeHint": "articles" }, @@ -7545,10 +7180,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/assets/smiley-cyrus.jpeg", "resourceType": "image", - "startedAt": 1502, + "startedAt": 1561, "status": 200, "ok": true, - "finishedAt": 1508, + "finishedAt": 1568, "contentType": "image/jpeg", "resourceTypeHint": "smiley-cyrus.jpeg" }, @@ -7557,10 +7192,10 @@ "method": "GET", "url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwlxdu.woff2", "resourceType": "font", - "startedAt": 1507, + "startedAt": 1566, "status": 200, "ok": true, - "finishedAt": 1556, + "finishedAt": 1611, "contentType": "font/woff2", "resourceTypeHint": "6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwlxdu.woff2" } @@ -7581,7 +7216,7 @@ "weight": 92, "matchCount": 1, "visibleCount": 1, - "elapsedMs": 5 + "elapsedMs": 2 } ], "chosenStrategy": "role", @@ -7589,10 +7224,10 @@ "retryCount": 0 }, "before": { - "at": 1437, + "at": 1496, "url": "http://127.0.0.1:3000/", "title": "Conduit", - "domHash": "72e1c5d77b56bbde", + "domHash": "f12a3cec7e00e6bc", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -7604,9 +7239,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "ef3e57007eeb4737", + "textHash": "97e2b175e91d32b0", "visualHash": "72ad38eb67085423", - "text": "conduit Source code Home New Article rdq1784818988 Your Feed Global Feed Articles not available. Popular Tags RD_TEST_84FC94_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", + "text": "conduit Source code Home New Article rdq1785054823102 Your Feed Global Feed Articles not available. Popular Tags RD_TEST_F95995_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "button", @@ -7637,7 +7272,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "60581d1527367fc4", + "valueHash": "5530bc1e89316fe8", "containsCanary": false } ], @@ -7648,10 +7283,10 @@ } }, "beforeAction": { - "at": 1445, + "at": 1502, "url": "http://127.0.0.1:3000/", "title": "Conduit", - "domHash": "72e1c5d77b56bbde", + "domHash": "f12a3cec7e00e6bc", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -7663,9 +7298,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "ef3e57007eeb4737", + "textHash": "97e2b175e91d32b0", "visualHash": "72ad38eb67085423", - "text": "conduit Source code Home New Article rdq1784818988 Your Feed Global Feed Articles not available. Popular Tags RD_TEST_84FC94_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", + "text": "conduit Source code Home New Article rdq1785054823102 Your Feed Global Feed Articles not available. Popular Tags RD_TEST_F95995_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "button", @@ -7696,7 +7331,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "60581d1527367fc4", + "valueHash": "5530bc1e89316fe8", "containsCanary": false } ], @@ -7709,10 +7344,10 @@ "networkSettled": true, "targetBusyAfter": false, "after": { - "at": 2540, + "at": 2582, "url": "http://127.0.0.1:3000/", "title": "Conduit", - "domHash": "6310657147508b86", + "domHash": "ceb85936b41179c4", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -7724,9 +7359,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "16afc3243859d9ed", + "textHash": "8a9f519f45b7c60f", "visualHash": "805f65e8f4aada8d", - "text": "conduit Source code Home New Article rdq1784818988 Your Feed Global Feed rdq1784818988 July 23, 2026 ( 0 ) RD_TEST_84FC94_1 RD_TEST_84FC94_2 Read more... RD_TEST_84FC94_4 1 Popular Tags RD_TEST_84FC94_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", + "text": "conduit Source code Home New Article rdq1785054823102 Your Feed Global Feed rdq1785054823102 July 26, 2026 ( 0 ) RD_TEST_F95995_1 RD_TEST_F95995_2 Read more... RD_TEST_F95995_4 1 Popular Tags RD_TEST_F95995_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "button", @@ -7764,7 +7399,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "60581d1527367fc4", + "valueHash": "5530bc1e89316fe8", "containsCanary": false } ], @@ -7774,7 +7409,7 @@ "indexedDb": [] } }, - "snapshotIndex": "snapshots/RD-014.index.json" + "snapshotIndex": "snapshots/RD-009.index.json" }, "verdict": "VERIFIED", "evidenceLevel": 2, @@ -7782,7 +7417,7 @@ "detectorMatches": [] }, { - "id": "RD-015", + "id": "RD-010", "action": { "id": "f485075d62a6", "pageUrl": "http://127.0.0.1:3000/", @@ -7835,9 +7470,9 @@ "fields": [] }, "evidence": { - "startedAt": "2026-07-23T15:03:49.495Z", - "durationMs": 2492, - "canary": "RD_TEST_71660B", + "startedAt": "2026-07-26T08:34:25.137Z", + "durationMs": 2544, + "canary": "RD_TEST_946897", "network": [], "console": [], "pageErrors": [], @@ -7855,35 +7490,35 @@ "weight": 92, "matchCount": 2, "visibleCount": 2, - "elapsedMs": 8 + "elapsedMs": 4 }, { "strategy": "role", "weight": 82, "matchCount": 2, "visibleCount": 2, - "elapsedMs": 6 + "elapsedMs": 3 }, { "strategy": "href", "weight": 72, "matchCount": 0, "visibleCount": 0, - "elapsedMs": 3 + "elapsedMs": 1 }, { "strategy": "text", "weight": 60, "matchCount": 2, "visibleCount": 2, - "elapsedMs": 9 + "elapsedMs": 2 }, { "strategy": "css", "weight": 35, "matchCount": 1, "visibleCount": 1, - "elapsedMs": 7 + "elapsedMs": 2 } ], "chosenStrategy": "css", @@ -7891,10 +7526,10 @@ "retryCount": 0 }, "before": { - "at": 1501, + "at": 1549, "url": "http://127.0.0.1:3000/", "title": "Conduit", - "domHash": "72e1c5d77b56bbde", + "domHash": "f12a3cec7e00e6bc", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -7906,9 +7541,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "ef3e57007eeb4737", + "textHash": "97e2b175e91d32b0", "visualHash": "72ad38eb67085423", - "text": "conduit Source code Home New Article rdq1784818988 Your Feed Global Feed Articles not available. Popular Tags RD_TEST_84FC94_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", + "text": "conduit Source code Home New Article rdq1785054823102 Your Feed Global Feed Articles not available. Popular Tags RD_TEST_F95995_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "button", @@ -7939,7 +7574,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "60581d1527367fc4", + "valueHash": "5530bc1e89316fe8", "containsCanary": false } ], @@ -7950,10 +7585,10 @@ } }, "beforeAction": { - "at": 1510, + "at": 1556, "url": "http://127.0.0.1:3000/", "title": "Conduit", - "domHash": "72e1c5d77b56bbde", + "domHash": "f12a3cec7e00e6bc", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -7965,9 +7600,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "ef3e57007eeb4737", + "textHash": "97e2b175e91d32b0", "visualHash": "72ad38eb67085423", - "text": "conduit Source code Home New Article rdq1784818988 Your Feed Global Feed Articles not available. Popular Tags RD_TEST_84FC94_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", + "text": "conduit Source code Home New Article rdq1785054823102 Your Feed Global Feed Articles not available. Popular Tags RD_TEST_F95995_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "button", @@ -7998,7 +7633,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "60581d1527367fc4", + "valueHash": "5530bc1e89316fe8", "containsCanary": false } ], @@ -8011,10 +7646,10 @@ "networkSettled": true, "targetBusyAfter": false, "after": { - "at": 2488, + "at": 2541, "url": "http://127.0.0.1:3000/#/", "title": "Conduit", - "domHash": "72e1c5d77b56bbde", + "domHash": "f12a3cec7e00e6bc", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -8026,9 +7661,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "ef3e57007eeb4737", + "textHash": "97e2b175e91d32b0", "visualHash": "72ad38eb67085423", - "text": "conduit Source code Home New Article rdq1784818988 Your Feed Global Feed Articles not available. Popular Tags RD_TEST_84FC94_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", + "text": "conduit Source code Home New Article rdq1785054823102 Your Feed Global Feed Articles not available. Popular Tags RD_TEST_F95995_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "button", @@ -8059,7 +7694,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "60581d1527367fc4", + "valueHash": "5530bc1e89316fe8", "containsCanary": false } ], @@ -8069,7 +7704,7 @@ "indexedDb": [] } }, - "snapshotIndex": "snapshots/RD-015.index.json" + "snapshotIndex": "snapshots/RD-010.index.json" }, "verdict": "VERIFIED", "evidenceLevel": 1, @@ -8077,23 +7712,388 @@ "detectorMatches": [] }, { - "id": "RD-016", + "id": "RD-011", "action": { - "id": "6959be4b6ca4", - "pageUrl": "http://127.0.0.1:3000/", - "label": "Thinkster", + "id": "b4f9d978244f", + "pageUrl": "http://127.0.0.1:3000/#/editor", + "label": "Source code", "activation": "click", "kind": "navigation", "intent": "navigate", "risk": "safe", "fingerprint": { - "selector": "body > div > footer > div > span > a", + "selector": "body > div > header > nav > div > ul:nth-of-type(1) > li > a", "tag": "a", - "ordinal": 7, + "ordinal": 1, "role": "link", - "accessibleName": "Thinkster", - "text": "Thinkster", - "href": "https://thinkster.io/", + "accessibleName": "Source code", + "text": "Source code", + "href": "https://github.com/TonyMckes/conduit-realworld-example-app", + "candidates": [ + { + "strategy": "role", + "weight": 92, + "role": "link", + "name": "Source code", + "exact": true + }, + { + "strategy": "role", + "weight": 82, + "role": "link", + "name": "Source code", + "exact": false + }, + { + "strategy": "href", + "weight": 72, + "value": "https://github.com/TonyMckes/conduit-realworld-example-app" + }, + { + "strategy": "text", + "weight": 60, + "value": "Source code", + "exact": true + }, + { + "strategy": "css", + "weight": 35, + "selector": "body > div > header > nav > div > ul:nth-of-type(1) > li > a" + } + ] + }, + "fields": [] + }, + "verdict": "SKIPPED", + "evidenceLevel": 0, + "reason": "Cross-origin navigation blocked by the default safety policy. Use --allow-external explicitly.", + "skippedReason": "Cross-origin navigation blocked by the default safety policy. Use --allow-external explicitly.", + "detectorMatches": [], + "evidence": { + "startedAt": "", + "durationMs": 0, + "canary": "", + "network": [], + "console": [], + "pageErrors": [], + "uiClaims": [], + "filledFields": [], + "dialogs": [], + "downloads": [], + "popupUrls": [], + "snapshotIndex": "snapshots/RD-011.index.json" + } + }, + { + "id": "RD-012", + "action": { + "id": "92a9b567b4fa", + "pageUrl": "http://127.0.0.1:3000/#/editor", + "label": "New Article", + "activation": "click", + "kind": "navigation", + "intent": "navigate", + "risk": "safe", + "fingerprint": { + "selector": "body > div > header > nav > div > ul:nth-of-type(2) > li:nth-of-type(2) > a", + "tag": "a", + "ordinal": 3, + "role": "link", + "accessibleName": "New Article", + "text": "New Article", + "href": "http://127.0.0.1:3000/#/editor", + "candidates": [ + { + "strategy": "role", + "weight": 92, + "role": "link", + "name": "New Article", + "exact": true + }, + { + "strategy": "role", + "weight": 82, + "role": "link", + "name": "New Article", + "exact": false + }, + { + "strategy": "href", + "weight": 72, + "value": "http://127.0.0.1:3000/#/editor" + }, + { + "strategy": "text", + "weight": 60, + "value": "New Article", + "exact": true + }, + { + "strategy": "css", + "weight": 35, + "selector": "body > div > header > nav > div > ul:nth-of-type(2) > li:nth-of-type(2) > a" + } + ] + }, + "fields": [] + }, + "verdict": "SKIPPED", + "evidenceLevel": 0, + "reason": "Navigation target is already the current page.", + "skippedReason": "Navigation target is already the current page.", + "detectorMatches": [], + "evidence": { + "startedAt": "", + "durationMs": 0, + "canary": "", + "network": [], + "console": [], + "pageErrors": [], + "uiClaims": [], + "filledFields": [], + "dialogs": [], + "downloads": [], + "popupUrls": [], + "snapshotIndex": "snapshots/RD-012.index.json" + } + }, + { + "id": "RD-013", + "action": { + "id": "799b5221fec8", + "pageUrl": "http://127.0.0.1:3000/#/editor", + "label": "Thinkster", + "activation": "click", + "kind": "navigation", + "intent": "navigate", + "risk": "safe", + "fingerprint": { + "selector": "body > div > footer > div > span > a", + "tag": "a", + "ordinal": 6, + "role": "link", + "accessibleName": "Thinkster", + "text": "Thinkster", + "href": "https://thinkster.io/", + "candidates": [ + { + "strategy": "role", + "weight": 92, + "role": "link", + "name": "Thinkster", + "exact": true + }, + { + "strategy": "role", + "weight": 82, + "role": "link", + "name": "Thinkster", + "exact": false + }, + { + "strategy": "href", + "weight": 72, + "value": "https://thinkster.io/" + }, + { + "strategy": "text", + "weight": 60, + "value": "Thinkster", + "exact": true + }, + { + "strategy": "css", + "weight": 35, + "selector": "body > div > footer > div > span > a" + } + ] + }, + "fields": [] + }, + "verdict": "SKIPPED", + "evidenceLevel": 0, + "reason": "Cross-origin navigation blocked by the default safety policy. Use --allow-external explicitly.", + "skippedReason": "Cross-origin navigation blocked by the default safety policy. Use --allow-external explicitly.", + "detectorMatches": [], + "evidence": { + "startedAt": "", + "durationMs": 0, + "canary": "", + "network": [], + "console": [], + "pageErrors": [], + "uiClaims": [], + "filledFields": [], + "dialogs": [], + "downloads": [], + "popupUrls": [], + "snapshotIndex": "snapshots/RD-013.index.json" + } + }, + { + "id": "RD-014", + "action": { + "id": "37e9aaab233a", + "pageUrl": "http://127.0.0.1:3000/#/editor", + "label": "Source code", + "activation": "click", + "kind": "navigation", + "intent": "navigate", + "risk": "safe", + "fingerprint": { + "selector": "body > div > footer > div > ul > li > a", + "tag": "a", + "ordinal": 7, + "role": "link", + "accessibleName": "Source code", + "text": "Source code", + "href": "https://github.com/TonyMckes/conduit-realworld-example-app", + "candidates": [ + { + "strategy": "role", + "weight": 92, + "role": "link", + "name": "Source code", + "exact": true + }, + { + "strategy": "role", + "weight": 82, + "role": "link", + "name": "Source code", + "exact": false + }, + { + "strategy": "href", + "weight": 72, + "value": "https://github.com/TonyMckes/conduit-realworld-example-app" + }, + { + "strategy": "text", + "weight": 60, + "value": "Source code", + "exact": true + }, + { + "strategy": "css", + "weight": 35, + "selector": "body > div > footer > div > ul > li > a" + } + ] + }, + "fields": [] + }, + "verdict": "SKIPPED", + "evidenceLevel": 0, + "reason": "Cross-origin navigation blocked by the default safety policy. Use --allow-external explicitly.", + "skippedReason": "Cross-origin navigation blocked by the default safety policy. Use --allow-external explicitly.", + "detectorMatches": [], + "evidence": { + "startedAt": "", + "durationMs": 0, + "canary": "", + "network": [], + "console": [], + "pageErrors": [], + "uiClaims": [], + "filledFields": [], + "dialogs": [], + "downloads": [], + "popupUrls": [], + "snapshotIndex": "snapshots/RD-014.index.json" + } + }, + { + "id": "RD-015", + "action": { + "id": "25e3419d67d3", + "pageUrl": "http://127.0.0.1:3000/", + "label": "Source code", + "activation": "click", + "kind": "navigation", + "intent": "navigate", + "risk": "safe", + "fingerprint": { + "selector": "body > div > header > nav > div > ul:nth-of-type(1) > li > a", + "tag": "a", + "ordinal": 1, + "role": "link", + "accessibleName": "Source code", + "text": "Source code", + "href": "https://github.com/TonyMckes/conduit-realworld-example-app", + "candidates": [ + { + "strategy": "role", + "weight": 92, + "role": "link", + "name": "Source code", + "exact": true + }, + { + "strategy": "role", + "weight": 82, + "role": "link", + "name": "Source code", + "exact": false + }, + { + "strategy": "href", + "weight": 72, + "value": "https://github.com/TonyMckes/conduit-realworld-example-app" + }, + { + "strategy": "text", + "weight": 60, + "value": "Source code", + "exact": true + }, + { + "strategy": "css", + "weight": 35, + "selector": "body > div > header > nav > div > ul:nth-of-type(1) > li > a" + } + ] + }, + "fields": [] + }, + "verdict": "SKIPPED", + "evidenceLevel": 0, + "reason": "Cross-origin navigation blocked by the default safety policy. Use --allow-external explicitly.", + "skippedReason": "Cross-origin navigation blocked by the default safety policy. Use --allow-external explicitly.", + "detectorMatches": [], + "evidence": { + "startedAt": "", + "durationMs": 0, + "canary": "", + "network": [], + "console": [], + "pageErrors": [], + "uiClaims": [], + "filledFields": [], + "dialogs": [], + "downloads": [], + "popupUrls": [], + "snapshotIndex": "snapshots/RD-015.index.json" + } + }, + { + "id": "RD-016", + "action": { + "id": "6959be4b6ca4", + "pageUrl": "http://127.0.0.1:3000/", + "label": "Thinkster", + "activation": "click", + "kind": "navigation", + "intent": "navigate", + "risk": "safe", + "fingerprint": { + "selector": "body > div > footer > div > span > a", + "tag": "a", + "ordinal": 7, + "role": "link", + "accessibleName": "Thinkster", + "text": "Thinkster", + "href": "https://thinkster.io/", "candidates": [ { "strategy": "role", @@ -8225,8 +8225,8 @@ ], "environment": { "status": "VALID", - "checkedAt": "2026-07-23T15:03:16.701Z", - "durationMs": 2606, + "checkedAt": "2026-07-26T08:33:51.954Z", + "durationMs": 2765, "targetUrl": "http://127.0.0.1:3000/#/editor", "mainDocument": { "status": 200, @@ -8239,7 +8239,7 @@ "failed": 0 }, "render": { - "bodyTextLength": 168, + "bodyTextLength": 171, "visibleElements": 44, "interactiveElements": 12, "ready": true @@ -8251,6 +8251,36 @@ }, "completeness": { "truncated": false, - "reasons": [] + "reasons": [], + "selection": { + "strategy": "coverage-balanced-v1", + "eligibleActions": 17, + "selectedActions": 17, + "omittedActions": 0, + "eligiblePages": 2, + "selectedPages": 2, + "eligibleKinds": [ + "mutation", + "local", + "navigation" + ], + "selectedKinds": [ + "mutation", + "local", + "navigation" + ], + "eligibleIntents": [ + "submit", + "interact", + "navigate" + ], + "selectedIntents": [ + "submit", + "interact", + "navigate" + ], + "deniedEligibleActions": 7, + "deniedSelectedActions": 7 + } } } diff --git a/release/evidence/raw/conduit-postgres-delete.scan.json b/release/evidence/raw/conduit-postgres-delete.scan.json index 3fc38b0..7ac8ce3 100644 --- a/release/evidence/raw/conduit-postgres-delete.scan.json +++ b/release/evidence/raw/conduit-postgres-delete.scan.json @@ -1,9 +1,9 @@ { "schemaVersion": "1.0", - "scanId": "20260723T150518Z-fe89", - "targetUrl": "http://127.0.0.1:3000/#/article/rd-test-f12177-1", - "startedAt": "2026-07-23T15:05:18.032Z", - "finishedAt": "2026-07-23T15:05:30.377Z", + "scanId": "20260726T083609Z-d4a2", + "targetUrl": "http://127.0.0.1:3000/#/article/rd-test-612495-1", + "startedAt": "2026-07-26T08:36:09.504Z", + "finishedAt": "2026-07-26T08:36:22.134Z", "options": { "maxPages": 1, "maxActions": 30, @@ -16,7 +16,7 @@ "mutationAllowed": true, "deep": true, "trace": false, - "traceOnFailure": true, + "traceOnFailure": false, "video": false, "environmentTimeoutMs": 10000, "acceptEnvironmentRisk": false, @@ -41,12 +41,12 @@ }, "pages": [ { - "url": "http://127.0.0.1:3000/#/article/rd-test-f12177-1", + "url": "http://127.0.0.1:3000/#/article/rd-test-612495-1", "title": "Conduit", "actions": [ { - "id": "b8d7183c0c34", - "pageUrl": "http://127.0.0.1:3000/#/article/rd-test-f12177-1", + "id": "b762d9d37e55", + "pageUrl": "http://127.0.0.1:3000/#/article/rd-test-612495-1", "label": "conduit", "activation": "click", "kind": "navigation", @@ -96,8 +96,8 @@ "fields": [] }, { - "id": "2ef4e76a08d8", - "pageUrl": "http://127.0.0.1:3000/#/article/rd-test-f12177-1", + "id": "3f10c08e039a", + "pageUrl": "http://127.0.0.1:3000/#/article/rd-test-612495-1", "label": "Source code", "activation": "click", "kind": "navigation", @@ -147,8 +147,8 @@ "fields": [] }, { - "id": "ff8291d1d4cd", - "pageUrl": "http://127.0.0.1:3000/#/article/rd-test-f12177-1", + "id": "9fa78fb93c48", + "pageUrl": "http://127.0.0.1:3000/#/article/rd-test-612495-1", "label": "Home", "activation": "click", "kind": "navigation", @@ -198,8 +198,8 @@ "fields": [] }, { - "id": "5b3675d43a71", - "pageUrl": "http://127.0.0.1:3000/#/article/rd-test-f12177-1", + "id": "ca1741f07442", + "pageUrl": "http://127.0.0.1:3000/#/article/rd-test-612495-1", "label": "New Article", "activation": "click", "kind": "navigation", @@ -249,9 +249,9 @@ "fields": [] }, { - "id": "05b56a8bbed2", - "pageUrl": "http://127.0.0.1:3000/#/article/rd-test-f12177-1", - "label": "http://127.0.0.1:3000/#/profile/rdq1784818988", + "id": "1a74f155df00", + "pageUrl": "http://127.0.0.1:3000/#/article/rd-test-612495-1", + "label": "http://127.0.0.1:3000/#/profile/rdq1785054823102", "activation": "click", "kind": "navigation", "intent": "navigate", @@ -261,12 +261,12 @@ "tag": "a", "ordinal": 4, "role": "link", - "href": "http://127.0.0.1:3000/#/profile/rdq1784818988", + "href": "http://127.0.0.1:3000/#/profile/rdq1785054823102", "candidates": [ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:3000/#/profile/rdq1784818988" + "value": "http://127.0.0.1:3000/#/profile/rdq1785054823102" }, { "strategy": "css", @@ -278,9 +278,9 @@ "fields": [] }, { - "id": "041a2c4ca30d", - "pageUrl": "http://127.0.0.1:3000/#/article/rd-test-f12177-1", - "label": "rdq1784818988", + "id": "bae90ec66252", + "pageUrl": "http://127.0.0.1:3000/#/article/rd-test-612495-1", + "label": "rdq1785054823102", "activation": "click", "kind": "navigation", "intent": "navigate", @@ -290,33 +290,33 @@ "tag": "a", "ordinal": 5, "role": "link", - "accessibleName": "rdq1784818988", - "text": "rdq1784818988", - "href": "http://127.0.0.1:3000/#/profile/rdq1784818988", + "accessibleName": "rdq1785054823102", + "text": "rdq1785054823102", + "href": "http://127.0.0.1:3000/#/profile/rdq1785054823102", "candidates": [ { "strategy": "role", "weight": 92, "role": "link", - "name": "rdq1784818988", + "name": "rdq1785054823102", "exact": true }, { "strategy": "role", "weight": 82, "role": "link", - "name": "rdq1784818988", + "name": "rdq1785054823102", "exact": false }, { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:3000/#/profile/rdq1784818988" + "value": "http://127.0.0.1:3000/#/profile/rdq1785054823102" }, { "strategy": "text", "weight": 60, - "value": "rdq1784818988", + "value": "rdq1785054823102", "exact": true }, { @@ -329,8 +329,8 @@ "fields": [] }, { - "id": "d20d0c1ba8c4", - "pageUrl": "http://127.0.0.1:3000/#/article/rd-test-f12177-1", + "id": "b19cc47f4064", + "pageUrl": "http://127.0.0.1:3000/#/article/rd-test-612495-1", "label": "Delete Article", "activation": "click", "kind": "mutation", @@ -375,8 +375,8 @@ "fields": [] }, { - "id": "e70c71891b06", - "pageUrl": "http://127.0.0.1:3000/#/article/rd-test-f12177-1", + "id": "608a379796a9", + "pageUrl": "http://127.0.0.1:3000/#/article/rd-test-612495-1", "label": "Edit Article", "activation": "click", "kind": "mutation", @@ -421,9 +421,9 @@ "fields": [] }, { - "id": "8a38e8cf777d", - "pageUrl": "http://127.0.0.1:3000/#/article/rd-test-f12177-1", - "label": "http://127.0.0.1:3000/#/profile/rdq1784818988", + "id": "7c2525ea457d", + "pageUrl": "http://127.0.0.1:3000/#/article/rd-test-612495-1", + "label": "http://127.0.0.1:3000/#/profile/rdq1785054823102", "activation": "click", "kind": "navigation", "intent": "navigate", @@ -433,12 +433,12 @@ "tag": "a", "ordinal": 8, "role": "link", - "href": "http://127.0.0.1:3000/#/profile/rdq1784818988", + "href": "http://127.0.0.1:3000/#/profile/rdq1785054823102", "candidates": [ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:3000/#/profile/rdq1784818988" + "value": "http://127.0.0.1:3000/#/profile/rdq1785054823102" }, { "strategy": "css", @@ -450,9 +450,9 @@ "fields": [] }, { - "id": "923159449d15", - "pageUrl": "http://127.0.0.1:3000/#/article/rd-test-f12177-1", - "label": "rdq1784818988", + "id": "5f4a1fd48ba4", + "pageUrl": "http://127.0.0.1:3000/#/article/rd-test-612495-1", + "label": "rdq1785054823102", "activation": "click", "kind": "navigation", "intent": "navigate", @@ -462,33 +462,33 @@ "tag": "a", "ordinal": 9, "role": "link", - "accessibleName": "rdq1784818988", - "text": "rdq1784818988", - "href": "http://127.0.0.1:3000/#/profile/rdq1784818988", + "accessibleName": "rdq1785054823102", + "text": "rdq1785054823102", + "href": "http://127.0.0.1:3000/#/profile/rdq1785054823102", "candidates": [ { "strategy": "role", "weight": 92, "role": "link", - "name": "rdq1784818988", + "name": "rdq1785054823102", "exact": true }, { "strategy": "role", "weight": 82, "role": "link", - "name": "rdq1784818988", + "name": "rdq1785054823102", "exact": false }, { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:3000/#/profile/rdq1784818988" + "value": "http://127.0.0.1:3000/#/profile/rdq1785054823102" }, { "strategy": "text", "weight": 60, - "value": "rdq1784818988", + "value": "rdq1785054823102", "exact": true }, { @@ -501,8 +501,8 @@ "fields": [] }, { - "id": "c45c41f3c9f1", - "pageUrl": "http://127.0.0.1:3000/#/article/rd-test-f12177-1", + "id": "ecd3be0d2ec5", + "pageUrl": "http://127.0.0.1:3000/#/article/rd-test-612495-1", "label": "Delete Article", "activation": "click", "kind": "mutation", @@ -547,8 +547,8 @@ "fields": [] }, { - "id": "483337a88d2f", - "pageUrl": "http://127.0.0.1:3000/#/article/rd-test-f12177-1", + "id": "dfdc9f148c07", + "pageUrl": "http://127.0.0.1:3000/#/article/rd-test-612495-1", "label": "Edit Article", "activation": "click", "kind": "mutation", @@ -593,8 +593,8 @@ "fields": [] }, { - "id": "ac45806ad1e7", - "pageUrl": "http://127.0.0.1:3000/#/article/rd-test-f12177-1", + "id": "6635954920fe", + "pageUrl": "http://127.0.0.1:3000/#/article/rd-test-612495-1", "label": "Post Comment", "activation": "submit", "kind": "mutation", @@ -632,8 +632,8 @@ ] }, { - "id": "84c7355ba983", - "pageUrl": "http://127.0.0.1:3000/#/article/rd-test-f12177-1", + "id": "cfdf37caa8f3", + "pageUrl": "http://127.0.0.1:3000/#/article/rd-test-612495-1", "label": "conduit", "activation": "click", "kind": "navigation", @@ -683,8 +683,8 @@ "fields": [] }, { - "id": "7838987584be", - "pageUrl": "http://127.0.0.1:3000/#/article/rd-test-f12177-1", + "id": "ed2174de651c", + "pageUrl": "http://127.0.0.1:3000/#/article/rd-test-612495-1", "label": "Thinkster", "activation": "click", "kind": "navigation", @@ -734,8 +734,8 @@ "fields": [] }, { - "id": "c958f4282a85", - "pageUrl": "http://127.0.0.1:3000/#/article/rd-test-f12177-1", + "id": "be4fe57c7f48", + "pageUrl": "http://127.0.0.1:3000/#/article/rd-test-612495-1", "label": "Source code", "activation": "click", "kind": "navigation", @@ -791,1033 +791,77 @@ { "id": "RD-001", "action": { - "id": "b8d7183c0c34", - "pageUrl": "http://127.0.0.1:3000/#/article/rd-test-f12177-1", - "label": "conduit", - "activation": "click", - "kind": "navigation", - "intent": "navigate", - "risk": "safe", - "fingerprint": { - "selector": "body > div > header > nav > div > a", - "tag": "a", - "ordinal": 0, - "role": "link", - "accessibleName": "conduit", - "text": "conduit", - "href": "http://127.0.0.1:3000/#/", - "candidates": [ - { - "strategy": "role", - "weight": 92, - "role": "link", - "name": "conduit", - "exact": true - }, - { - "strategy": "role", - "weight": 82, - "role": "link", - "name": "conduit", - "exact": false - }, - { - "strategy": "href", - "weight": 72, - "value": "http://127.0.0.1:3000/#/" - }, - { - "strategy": "text", - "weight": 60, - "value": "conduit", - "exact": true - }, - { - "strategy": "css", - "weight": 35, - "selector": "body > div > header > nav > div > a" - } - ] - }, - "fields": [] - }, - "verdict": "SKIPPED", - "evidenceLevel": 0, - "reason": "Disposable CRUD qualification executes only the target delete action.", - "skippedReason": "Disposable CRUD qualification executes only the target delete action.", - "detectorMatches": [], - "evidence": { - "startedAt": "", - "durationMs": 0, - "canary": "", - "network": [], - "console": [], - "pageErrors": [], - "uiClaims": [], - "filledFields": [], - "dialogs": [], - "downloads": [], - "popupUrls": [], - "snapshotIndex": "snapshots/RD-001.index.json" - } - }, - { - "id": "RD-002", - "action": { - "id": "2ef4e76a08d8", - "pageUrl": "http://127.0.0.1:3000/#/article/rd-test-f12177-1", - "label": "Source code", - "activation": "click", - "kind": "navigation", - "intent": "navigate", - "risk": "safe", - "fingerprint": { - "selector": "body > div > header > nav > div > ul:nth-of-type(1) > li > a", - "tag": "a", - "ordinal": 1, - "role": "link", - "accessibleName": "Source code", - "text": "Source code", - "href": "https://github.com/TonyMckes/conduit-realworld-example-app", - "candidates": [ - { - "strategy": "role", - "weight": 92, - "role": "link", - "name": "Source code", - "exact": true - }, - { - "strategy": "role", - "weight": 82, - "role": "link", - "name": "Source code", - "exact": false - }, - { - "strategy": "href", - "weight": 72, - "value": "https://github.com/TonyMckes/conduit-realworld-example-app" - }, - { - "strategy": "text", - "weight": 60, - "value": "Source code", - "exact": true - }, - { - "strategy": "css", - "weight": 35, - "selector": "body > div > header > nav > div > ul:nth-of-type(1) > li > a" - } - ] - }, - "fields": [] - }, - "verdict": "SKIPPED", - "evidenceLevel": 0, - "reason": "Disposable CRUD qualification executes only the target delete action.", - "skippedReason": "Disposable CRUD qualification executes only the target delete action.", - "detectorMatches": [], - "evidence": { - "startedAt": "", - "durationMs": 0, - "canary": "", - "network": [], - "console": [], - "pageErrors": [], - "uiClaims": [], - "filledFields": [], - "dialogs": [], - "downloads": [], - "popupUrls": [], - "snapshotIndex": "snapshots/RD-002.index.json" - } - }, - { - "id": "RD-003", - "action": { - "id": "ff8291d1d4cd", - "pageUrl": "http://127.0.0.1:3000/#/article/rd-test-f12177-1", - "label": "Home", + "id": "b19cc47f4064", + "pageUrl": "http://127.0.0.1:3000/#/article/rd-test-612495-1", + "label": "Delete Article", "activation": "click", - "kind": "navigation", - "intent": "navigate", - "risk": "safe", + "kind": "mutation", + "intent": "delete", + "risk": "destructive", "fingerprint": { - "selector": "body > div > header > nav > div > ul:nth-of-type(2) > li:nth-of-type(1) > a", - "tag": "a", - "ordinal": 2, - "role": "link", - "accessibleName": "Home", - "text": "Home", - "href": "http://127.0.0.1:3000/#/", + "selector": "body > div > main > div > div:nth-of-type(1) > div > div > button:nth-of-type(1)", + "tag": "button", + "ordinal": 6, + "role": "button", + "accessibleName": "Delete Article", + "text": "Delete Article", + "type": "submit", "candidates": [ { "strategy": "role", "weight": 92, - "role": "link", - "name": "Home", + "role": "button", + "name": "Delete Article", "exact": true }, { "strategy": "role", "weight": 82, - "role": "link", - "name": "Home", + "role": "button", + "name": "Delete Article", "exact": false }, - { - "strategy": "href", - "weight": 72, - "value": "http://127.0.0.1:3000/#/" - }, { "strategy": "text", "weight": 60, - "value": "Home", + "value": "Delete Article", "exact": true }, { "strategy": "css", "weight": 35, - "selector": "body > div > header > nav > div > ul:nth-of-type(2) > li:nth-of-type(1) > a" + "selector": "body > div > main > div > div:nth-of-type(1) > div > div > button:nth-of-type(1)" } ] }, "fields": [] }, - "verdict": "SKIPPED", - "evidenceLevel": 0, - "reason": "Disposable CRUD qualification executes only the target delete action.", - "skippedReason": "Disposable CRUD qualification executes only the target delete action.", - "detectorMatches": [], "evidence": { - "startedAt": "", - "durationMs": 0, - "canary": "", - "network": [], - "console": [], - "pageErrors": [], - "uiClaims": [], - "filledFields": [], - "dialogs": [], - "downloads": [], - "popupUrls": [], - "snapshotIndex": "snapshots/RD-003.index.json" - } - }, - { - "id": "RD-004", - "action": { - "id": "5b3675d43a71", - "pageUrl": "http://127.0.0.1:3000/#/article/rd-test-f12177-1", - "label": "New Article", - "activation": "click", - "kind": "navigation", - "intent": "navigate", - "risk": "safe", - "fingerprint": { - "selector": "body > div > header > nav > div > ul:nth-of-type(2) > li:nth-of-type(2) > a", - "tag": "a", - "ordinal": 3, - "role": "link", - "accessibleName": "New Article", - "text": "New Article", - "href": "http://127.0.0.1:3000/#/editor", - "candidates": [ - { - "strategy": "role", - "weight": 92, - "role": "link", - "name": "New Article", - "exact": true - }, - { - "strategy": "role", - "weight": 82, - "role": "link", - "name": "New Article", - "exact": false - }, - { - "strategy": "href", - "weight": 72, - "value": "http://127.0.0.1:3000/#/editor" - }, - { - "strategy": "text", - "weight": 60, - "value": "New Article", - "exact": true - }, - { - "strategy": "css", - "weight": 35, - "selector": "body > div > header > nav > div > ul:nth-of-type(2) > li:nth-of-type(2) > a" - } - ] - }, - "fields": [] - }, - "verdict": "SKIPPED", - "evidenceLevel": 0, - "reason": "Disposable CRUD qualification executes only the target delete action.", - "skippedReason": "Disposable CRUD qualification executes only the target delete action.", - "detectorMatches": [], - "evidence": { - "startedAt": "", - "durationMs": 0, - "canary": "", - "network": [], - "console": [], - "pageErrors": [], - "uiClaims": [], - "filledFields": [], - "dialogs": [], - "downloads": [], - "popupUrls": [], - "snapshotIndex": "snapshots/RD-004.index.json" - } - }, - { - "id": "RD-005", - "action": { - "id": "05b56a8bbed2", - "pageUrl": "http://127.0.0.1:3000/#/article/rd-test-f12177-1", - "label": "http://127.0.0.1:3000/#/profile/rdq1784818988", - "activation": "click", - "kind": "navigation", - "intent": "navigate", - "risk": "safe", - "fingerprint": { - "selector": "body > div > main > div > div:nth-of-type(1) > div > div > a", - "tag": "a", - "ordinal": 4, - "role": "link", - "href": "http://127.0.0.1:3000/#/profile/rdq1784818988", - "candidates": [ - { - "strategy": "href", - "weight": 72, - "value": "http://127.0.0.1:3000/#/profile/rdq1784818988" - }, - { - "strategy": "css", - "weight": 35, - "selector": "body > div > main > div > div:nth-of-type(1) > div > div > a" - } - ] - }, - "fields": [] - }, - "verdict": "SKIPPED", - "evidenceLevel": 0, - "reason": "Disposable CRUD qualification executes only the target delete action.", - "skippedReason": "Disposable CRUD qualification executes only the target delete action.", - "detectorMatches": [], - "evidence": { - "startedAt": "", - "durationMs": 0, - "canary": "", - "network": [], - "console": [], - "pageErrors": [], - "uiClaims": [], - "filledFields": [], - "dialogs": [], - "downloads": [], - "popupUrls": [], - "snapshotIndex": "snapshots/RD-005.index.json" - } - }, - { - "id": "RD-006", - "action": { - "id": "041a2c4ca30d", - "pageUrl": "http://127.0.0.1:3000/#/article/rd-test-f12177-1", - "label": "rdq1784818988", - "activation": "click", - "kind": "navigation", - "intent": "navigate", - "risk": "safe", - "fingerprint": { - "selector": "body > div > main > div > div:nth-of-type(1) > div > div > div > a", - "tag": "a", - "ordinal": 5, - "role": "link", - "accessibleName": "rdq1784818988", - "text": "rdq1784818988", - "href": "http://127.0.0.1:3000/#/profile/rdq1784818988", - "candidates": [ - { - "strategy": "role", - "weight": 92, - "role": "link", - "name": "rdq1784818988", - "exact": true - }, - { - "strategy": "role", - "weight": 82, - "role": "link", - "name": "rdq1784818988", - "exact": false - }, - { - "strategy": "href", - "weight": 72, - "value": "http://127.0.0.1:3000/#/profile/rdq1784818988" - }, - { - "strategy": "text", - "weight": 60, - "value": "rdq1784818988", - "exact": true - }, - { - "strategy": "css", - "weight": 35, - "selector": "body > div > main > div > div:nth-of-type(1) > div > div > div > a" - } - ] - }, - "fields": [] - }, - "verdict": "SKIPPED", - "evidenceLevel": 0, - "reason": "Disposable CRUD qualification executes only the target delete action.", - "skippedReason": "Disposable CRUD qualification executes only the target delete action.", - "detectorMatches": [], - "evidence": { - "startedAt": "", - "durationMs": 0, - "canary": "", - "network": [], - "console": [], - "pageErrors": [], - "uiClaims": [], - "filledFields": [], - "dialogs": [], - "downloads": [], - "popupUrls": [], - "snapshotIndex": "snapshots/RD-006.index.json" - } - }, - { - "id": "RD-007", - "action": { - "id": "e70c71891b06", - "pageUrl": "http://127.0.0.1:3000/#/article/rd-test-f12177-1", - "label": "Edit Article", - "activation": "click", - "kind": "mutation", - "intent": "update", - "risk": "safe", - "fingerprint": { - "selector": "body > div > main > div > div:nth-of-type(1) > div > div > button:nth-of-type(2)", - "tag": "button", - "ordinal": 7, - "role": "button", - "accessibleName": "Edit Article", - "text": "Edit Article", - "type": "submit", - "candidates": [ - { - "strategy": "role", - "weight": 92, - "role": "button", - "name": "Edit Article", - "exact": true - }, - { - "strategy": "role", - "weight": 82, - "role": "button", - "name": "Edit Article", - "exact": false - }, - { - "strategy": "text", - "weight": 60, - "value": "Edit Article", - "exact": true - }, - { - "strategy": "css", - "weight": 35, - "selector": "body > div > main > div > div:nth-of-type(1) > div > div > button:nth-of-type(2)" - } - ] - }, - "fields": [] - }, - "verdict": "SKIPPED", - "evidenceLevel": 0, - "reason": "Disposable CRUD qualification executes only the target delete action.", - "skippedReason": "Disposable CRUD qualification executes only the target delete action.", - "detectorMatches": [], - "evidence": { - "startedAt": "", - "durationMs": 0, - "canary": "", - "network": [], - "console": [], - "pageErrors": [], - "uiClaims": [], - "filledFields": [], - "dialogs": [], - "downloads": [], - "popupUrls": [], - "snapshotIndex": "snapshots/RD-007.index.json" - } - }, - { - "id": "RD-008", - "action": { - "id": "8a38e8cf777d", - "pageUrl": "http://127.0.0.1:3000/#/article/rd-test-f12177-1", - "label": "http://127.0.0.1:3000/#/profile/rdq1784818988", - "activation": "click", - "kind": "navigation", - "intent": "navigate", - "risk": "safe", - "fingerprint": { - "selector": "body > div > main > div > div:nth-of-type(2) > div:nth-of-type(2) > div > a", - "tag": "a", - "ordinal": 8, - "role": "link", - "href": "http://127.0.0.1:3000/#/profile/rdq1784818988", - "candidates": [ - { - "strategy": "href", - "weight": 72, - "value": "http://127.0.0.1:3000/#/profile/rdq1784818988" - }, - { - "strategy": "css", - "weight": 35, - "selector": "body > div > main > div > div:nth-of-type(2) > div:nth-of-type(2) > div > a" - } - ] - }, - "fields": [] - }, - "verdict": "SKIPPED", - "evidenceLevel": 0, - "reason": "Disposable CRUD qualification executes only the target delete action.", - "skippedReason": "Disposable CRUD qualification executes only the target delete action.", - "detectorMatches": [], - "evidence": { - "startedAt": "", - "durationMs": 0, - "canary": "", - "network": [], - "console": [], - "pageErrors": [], - "uiClaims": [], - "filledFields": [], - "dialogs": [], - "downloads": [], - "popupUrls": [], - "snapshotIndex": "snapshots/RD-008.index.json" - } - }, - { - "id": "RD-009", - "action": { - "id": "923159449d15", - "pageUrl": "http://127.0.0.1:3000/#/article/rd-test-f12177-1", - "label": "rdq1784818988", - "activation": "click", - "kind": "navigation", - "intent": "navigate", - "risk": "safe", - "fingerprint": { - "selector": "body > div > main > div > div:nth-of-type(2) > div:nth-of-type(2) > div > div > a", - "tag": "a", - "ordinal": 9, - "role": "link", - "accessibleName": "rdq1784818988", - "text": "rdq1784818988", - "href": "http://127.0.0.1:3000/#/profile/rdq1784818988", - "candidates": [ - { - "strategy": "role", - "weight": 92, - "role": "link", - "name": "rdq1784818988", - "exact": true - }, - { - "strategy": "role", - "weight": 82, - "role": "link", - "name": "rdq1784818988", - "exact": false - }, - { - "strategy": "href", - "weight": 72, - "value": "http://127.0.0.1:3000/#/profile/rdq1784818988" - }, - { - "strategy": "text", - "weight": 60, - "value": "rdq1784818988", - "exact": true - }, - { - "strategy": "css", - "weight": 35, - "selector": "body > div > main > div > div:nth-of-type(2) > div:nth-of-type(2) > div > div > a" - } - ] - }, - "fields": [] - }, - "verdict": "SKIPPED", - "evidenceLevel": 0, - "reason": "Disposable CRUD qualification executes only the target delete action.", - "skippedReason": "Disposable CRUD qualification executes only the target delete action.", - "detectorMatches": [], - "evidence": { - "startedAt": "", - "durationMs": 0, - "canary": "", - "network": [], - "console": [], - "pageErrors": [], - "uiClaims": [], - "filledFields": [], - "dialogs": [], - "downloads": [], - "popupUrls": [], - "snapshotIndex": "snapshots/RD-009.index.json" - } - }, - { - "id": "RD-010", - "action": { - "id": "483337a88d2f", - "pageUrl": "http://127.0.0.1:3000/#/article/rd-test-f12177-1", - "label": "Edit Article", - "activation": "click", - "kind": "mutation", - "intent": "update", - "risk": "safe", - "fingerprint": { - "selector": "body > div > main > div > div:nth-of-type(2) > div:nth-of-type(2) > div > button:nth-of-type(2)", - "tag": "button", - "ordinal": 11, - "role": "button", - "accessibleName": "Edit Article", - "text": "Edit Article", - "type": "submit", - "candidates": [ - { - "strategy": "role", - "weight": 92, - "role": "button", - "name": "Edit Article", - "exact": true - }, - { - "strategy": "role", - "weight": 82, - "role": "button", - "name": "Edit Article", - "exact": false - }, - { - "strategy": "text", - "weight": 60, - "value": "Edit Article", - "exact": true - }, - { - "strategy": "css", - "weight": 35, - "selector": "body > div > main > div > div:nth-of-type(2) > div:nth-of-type(2) > div > button:nth-of-type(2)" - } - ] - }, - "fields": [] - }, - "verdict": "SKIPPED", - "evidenceLevel": 0, - "reason": "Disposable CRUD qualification executes only the target delete action.", - "skippedReason": "Disposable CRUD qualification executes only the target delete action.", - "detectorMatches": [], - "evidence": { - "startedAt": "", - "durationMs": 0, - "canary": "", - "network": [], - "console": [], - "pageErrors": [], - "uiClaims": [], - "filledFields": [], - "dialogs": [], - "downloads": [], - "popupUrls": [], - "snapshotIndex": "snapshots/RD-010.index.json" - } - }, - { - "id": "RD-011", - "action": { - "id": "ac45806ad1e7", - "pageUrl": "http://127.0.0.1:3000/#/article/rd-test-f12177-1", - "label": "Post Comment", - "activation": "submit", - "kind": "mutation", - "intent": "submit", - "risk": "safe", - "fingerprint": { - "selector": "body > div > main > div > div:nth-of-type(2) > div:nth-of-type(3) > div > form", - "tag": "form", - "ordinal": 12, - "accessibleName": "Post Comment", - "text": "Post Comment", - "candidates": [ - { - "strategy": "text", - "weight": 60, - "value": "Post Comment", - "exact": true - }, - { - "strategy": "css", - "weight": 35, - "selector": "body > div > main > div > div:nth-of-type(2) > div:nth-of-type(3) > div > form" - } - ] - }, - "fields": [ - { - "selector": "body > div > main > div > div:nth-of-type(2) > div:nth-of-type(3) > div > form > div:nth-of-type(1) > textarea", - "tag": "textarea", - "type": "textarea", - "required": false, - "disabled": false, - "placeholder": "Write a comment..." - } - ] - }, - "verdict": "SKIPPED", - "evidenceLevel": 0, - "reason": "Disposable CRUD qualification executes only the target delete action.", - "skippedReason": "Disposable CRUD qualification executes only the target delete action.", - "detectorMatches": [], - "evidence": { - "startedAt": "", - "durationMs": 0, - "canary": "", - "network": [], - "console": [], - "pageErrors": [], - "uiClaims": [], - "filledFields": [], - "dialogs": [], - "downloads": [], - "popupUrls": [], - "snapshotIndex": "snapshots/RD-011.index.json" - } - }, - { - "id": "RD-012", - "action": { - "id": "84c7355ba983", - "pageUrl": "http://127.0.0.1:3000/#/article/rd-test-f12177-1", - "label": "conduit", - "activation": "click", - "kind": "navigation", - "intent": "navigate", - "risk": "safe", - "fingerprint": { - "selector": "body > div > footer > div > a", - "tag": "a", - "ordinal": 13, - "role": "link", - "accessibleName": "conduit", - "text": "conduit", - "href": "http://127.0.0.1:3000/#/", - "candidates": [ - { - "strategy": "role", - "weight": 92, - "role": "link", - "name": "conduit", - "exact": true - }, - { - "strategy": "role", - "weight": 82, - "role": "link", - "name": "conduit", - "exact": false - }, - { - "strategy": "href", - "weight": 72, - "value": "http://127.0.0.1:3000/#/" - }, - { - "strategy": "text", - "weight": 60, - "value": "conduit", - "exact": true - }, - { - "strategy": "css", - "weight": 35, - "selector": "body > div > footer > div > a" - } - ] - }, - "fields": [] - }, - "verdict": "SKIPPED", - "evidenceLevel": 0, - "reason": "Disposable CRUD qualification executes only the target delete action.", - "skippedReason": "Disposable CRUD qualification executes only the target delete action.", - "detectorMatches": [], - "evidence": { - "startedAt": "", - "durationMs": 0, - "canary": "", - "network": [], - "console": [], - "pageErrors": [], - "uiClaims": [], - "filledFields": [], - "dialogs": [], - "downloads": [], - "popupUrls": [], - "snapshotIndex": "snapshots/RD-012.index.json" - } - }, - { - "id": "RD-013", - "action": { - "id": "7838987584be", - "pageUrl": "http://127.0.0.1:3000/#/article/rd-test-f12177-1", - "label": "Thinkster", - "activation": "click", - "kind": "navigation", - "intent": "navigate", - "risk": "safe", - "fingerprint": { - "selector": "body > div > footer > div > span > a", - "tag": "a", - "ordinal": 14, - "role": "link", - "accessibleName": "Thinkster", - "text": "Thinkster", - "href": "https://thinkster.io/", - "candidates": [ - { - "strategy": "role", - "weight": 92, - "role": "link", - "name": "Thinkster", - "exact": true - }, - { - "strategy": "role", - "weight": 82, - "role": "link", - "name": "Thinkster", - "exact": false - }, - { - "strategy": "href", - "weight": 72, - "value": "https://thinkster.io/" - }, - { - "strategy": "text", - "weight": 60, - "value": "Thinkster", - "exact": true - }, - { - "strategy": "css", - "weight": 35, - "selector": "body > div > footer > div > span > a" - } - ] - }, - "fields": [] - }, - "verdict": "SKIPPED", - "evidenceLevel": 0, - "reason": "Disposable CRUD qualification executes only the target delete action.", - "skippedReason": "Disposable CRUD qualification executes only the target delete action.", - "detectorMatches": [], - "evidence": { - "startedAt": "", - "durationMs": 0, - "canary": "", - "network": [], - "console": [], - "pageErrors": [], - "uiClaims": [], - "filledFields": [], - "dialogs": [], - "downloads": [], - "popupUrls": [], - "snapshotIndex": "snapshots/RD-013.index.json" - } - }, - { - "id": "RD-014", - "action": { - "id": "c958f4282a85", - "pageUrl": "http://127.0.0.1:3000/#/article/rd-test-f12177-1", - "label": "Source code", - "activation": "click", - "kind": "navigation", - "intent": "navigate", - "risk": "safe", - "fingerprint": { - "selector": "body > div > footer > div > ul > li > a", - "tag": "a", - "ordinal": 15, - "role": "link", - "accessibleName": "Source code", - "text": "Source code", - "href": "https://github.com/TonyMckes/conduit-realworld-example-app", - "candidates": [ - { - "strategy": "role", - "weight": 92, - "role": "link", - "name": "Source code", - "exact": true - }, - { - "strategy": "role", - "weight": 82, - "role": "link", - "name": "Source code", - "exact": false - }, - { - "strategy": "href", - "weight": 72, - "value": "https://github.com/TonyMckes/conduit-realworld-example-app" - }, - { - "strategy": "text", - "weight": 60, - "value": "Source code", - "exact": true - }, - { - "strategy": "css", - "weight": 35, - "selector": "body > div > footer > div > ul > li > a" - } - ] - }, - "fields": [] - }, - "verdict": "SKIPPED", - "evidenceLevel": 0, - "reason": "Disposable CRUD qualification executes only the target delete action.", - "skippedReason": "Disposable CRUD qualification executes only the target delete action.", - "detectorMatches": [], - "evidence": { - "startedAt": "", - "durationMs": 0, - "canary": "", - "network": [], - "console": [], - "pageErrors": [], - "uiClaims": [], - "filledFields": [], - "dialogs": [], - "downloads": [], - "popupUrls": [], - "snapshotIndex": "snapshots/RD-014.index.json" - } - }, - { - "id": "RD-015", - "action": { - "id": "d20d0c1ba8c4", - "pageUrl": "http://127.0.0.1:3000/#/article/rd-test-f12177-1", - "label": "Delete Article", - "activation": "click", - "kind": "mutation", - "intent": "delete", - "risk": "destructive", - "fingerprint": { - "selector": "body > div > main > div > div:nth-of-type(1) > div > div > button:nth-of-type(1)", - "tag": "button", - "ordinal": 6, - "role": "button", - "accessibleName": "Delete Article", - "text": "Delete Article", - "type": "submit", - "candidates": [ - { - "strategy": "role", - "weight": 92, - "role": "button", - "name": "Delete Article", - "exact": true - }, - { - "strategy": "role", - "weight": 82, - "role": "button", - "name": "Delete Article", - "exact": false - }, - { - "strategy": "text", - "weight": 60, - "value": "Delete Article", - "exact": true - }, - { - "strategy": "css", - "weight": 35, - "selector": "body > div > main > div > div:nth-of-type(1) > div > div > button:nth-of-type(1)" - } - ] - }, - "fields": [] - }, - "evidence": { - "startedAt": "2026-07-23T15:05:20.959Z", - "durationMs": 7209, - "canary": "RD_TEST_FD5A7E", + "startedAt": "2026-07-26T08:36:12.627Z", + "durationMs": 7367, + "canary": "RD_TEST_3E4ACF", "network": [ { "id": "net-1", "method": "DELETE", - "url": "http://127.0.0.1:3000/api/articles/rd-test-f12177-1/", + "url": "http://127.0.0.1:3000/api/articles/rd-test-612495-1/", "resourceType": "xhr", - "startedAt": 1537, + "startedAt": 1589, "status": 200, "ok": true, + "finishedAt": 1600, "contentType": "application/json", - "resourceTypeHint": "rd-test-f12177-1", - "finishedAt": 1547 + "resourceTypeHint": "rd-test-612495-1" }, { "id": "net-2", "method": "GET", "url": "http://127.0.0.1:3000/api/articles/feed?limit=3&&offset=0", "resourceType": "xhr", - "startedAt": 1553, + "startedAt": 1608, "status": 200, "ok": true, - "finishedAt": 1564, + "finishedAt": 1620, "contentType": "application/json", "resourceTypeHint": "feed" }, @@ -1826,10 +870,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/api/tags", "resourceType": "xhr", - "startedAt": 1554, + "startedAt": 1608, "status": 200, "ok": true, - "finishedAt": 1562, + "finishedAt": 1617, "contentType": "application/json", "resourceTypeHint": "tags" }, @@ -1838,10 +882,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/api/articles/feed?limit=3&&offset=0", "resourceType": "xhr", - "startedAt": 1555, + "startedAt": 1609, "status": 200, "ok": true, - "finishedAt": 1568, + "finishedAt": 1621, "contentType": "application/json", "resourceTypeHint": "feed" }, @@ -1850,10 +894,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/api/tags", "resourceType": "xhr", - "startedAt": 1555, + "startedAt": 1609, "status": 200, "ok": true, - "finishedAt": 1563, + "finishedAt": 1619, "contentType": "application/json", "resourceTypeHint": "tags" }, @@ -1862,22 +906,22 @@ "method": "GET", "url": "http://127.0.0.1:3000/", "resourceType": "document", - "startedAt": 2767, + "startedAt": 2836, "status": 200, "ok": true, "contentType": "text/html", "resourceTypeHint": "resource", - "finishedAt": 2776 + "finishedAt": 2843 }, { "id": "net-7", "method": "GET", "url": "http://127.0.0.1:3000/@vite/client", "resourceType": "script", - "startedAt": 2774, + "startedAt": 2842, "status": 200, "ok": true, - "finishedAt": 2787, + "finishedAt": 2854, "contentType": "text/javascript", "resourceTypeHint": "client" }, @@ -1886,10 +930,10 @@ "method": "GET", "url": "http://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css", "resourceType": "stylesheet", - "startedAt": 2774, + "startedAt": 2842, "status": 307, "ok": false, - "finishedAt": 2778, + "finishedAt": 2845, "location": "https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css", "resourceTypeHint": "ionicons.min.css" }, @@ -1898,10 +942,10 @@ "method": "GET", "url": "http://fonts.googleapis.com/css?family=Titillium+Web:700|Source+Serif+Pro:400,700|Merriweather+Sans:400,700|Source+Sans+Pro:400,300,600,700,300italic,400italic,600italic,700italic", "resourceType": "stylesheet", - "startedAt": 2774, + "startedAt": 2842, "status": 200, "ok": true, - "finishedAt": 2851, + "finishedAt": 2899, "contentType": "text/css", "resourceTypeHint": "css" }, @@ -1910,10 +954,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/main.jsx", "resourceType": "script", - "startedAt": 2775, + "startedAt": 2843, "status": 200, "ok": true, - "finishedAt": 2782, + "finishedAt": 2849, "contentType": "text/javascript", "resourceTypeHint": "main.jsx" }, @@ -1922,10 +966,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/@react-refresh", "resourceType": "script", - "startedAt": 2776, + "startedAt": 2843, "status": 200, "ok": true, - "finishedAt": 2787, + "finishedAt": 2854, "contentType": "text/javascript", "resourceTypeHint": "@react-refresh" }, @@ -1934,10 +978,10 @@ "method": "GET", "url": "https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css", "resourceType": "stylesheet", - "startedAt": 2778, + "startedAt": 2845, "status": 200, "ok": true, - "finishedAt": 2898, + "finishedAt": 3130, "contentType": "text/css", "resourceTypeHint": "ionicons.min.css" }, @@ -1946,10 +990,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/node_modules/.vite/deps/react_jsx-dev-runtime.js?v=96de0870", "resourceType": "script", - "startedAt": 2783, + "startedAt": 2850, "status": 200, "ok": true, - "finishedAt": 2798, + "finishedAt": 2858, "contentType": "text/javascript", "resourceTypeHint": "react_jsx-dev-runtime.js" }, @@ -1958,10 +1002,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/node_modules/.vite/deps/react.js?v=96de0870", "resourceType": "script", - "startedAt": 2783, + "startedAt": 2851, "status": 200, "ok": true, - "finishedAt": 2799, + "finishedAt": 2859, "contentType": "text/javascript", "resourceTypeHint": "react.js" }, @@ -1970,10 +1014,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/node_modules/.vite/deps/react-dom_client.js?v=96de0870", "resourceType": "script", - "startedAt": 2784, + "startedAt": 2851, "status": 200, "ok": true, - "finishedAt": 2810, + "finishedAt": 2893, "contentType": "text/javascript", "resourceTypeHint": "react-dom_client.js" }, @@ -1982,10 +1026,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/node_modules/.vite/deps/react-router-dom.js?v=96de0870", "resourceType": "script", - "startedAt": 2785, + "startedAt": 2851, "status": 200, "ok": true, - "finishedAt": 2851, + "finishedAt": 2884, "contentType": "text/javascript", "resourceTypeHint": "react-router-dom.js" }, @@ -1994,10 +1038,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/App.jsx", "resourceType": "script", - "startedAt": 2786, + "startedAt": 2852, "status": 200, "ok": true, - "finishedAt": 2806, + "finishedAt": 2870, "contentType": "text/javascript", "resourceTypeHint": "App.jsx" }, @@ -2006,10 +1050,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/context/AuthContext.jsx", "resourceType": "script", - "startedAt": 2786, + "startedAt": 2852, "status": 200, "ok": true, - "finishedAt": 2807, + "finishedAt": 2871, "contentType": "text/javascript", "resourceTypeHint": "AuthContext.jsx" }, @@ -2018,10 +1062,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/styles.css", "resourceType": "script", - "startedAt": 2786, + "startedAt": 2853, "status": 200, "ok": true, - "finishedAt": 2809, + "finishedAt": 2871, "contentType": "text/javascript", "resourceTypeHint": "styles.css" }, @@ -2030,10 +1074,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/index.css", "resourceType": "script", - "startedAt": 2786, + "startedAt": 2853, "status": 200, "ok": true, - "finishedAt": 2809, + "finishedAt": 2871, "contentType": "text/javascript", "resourceTypeHint": "index.css" }, @@ -2042,10 +1086,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/reportWebVitals.js", "resourceType": "script", - "startedAt": 2787, + "startedAt": 2853, "status": 200, "ok": true, - "finishedAt": 2808, + "finishedAt": 2872, "contentType": "text/javascript", "resourceTypeHint": "reportWebVitals.js" }, @@ -2054,10 +1098,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/routes/Article/Article.jsx", "resourceType": "script", - "startedAt": 2787, + "startedAt": 2853, "status": 200, "ok": true, - "finishedAt": 2812, + "finishedAt": 2873, "contentType": "text/javascript", "resourceTypeHint": "Article.jsx" }, @@ -2066,10 +1110,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/routes/Article/CommentsSection.jsx", "resourceType": "script", - "startedAt": 2787, + "startedAt": 2853, "status": 200, "ok": true, - "finishedAt": 2811, + "finishedAt": 2872, "contentType": "text/javascript", "resourceTypeHint": "CommentsSection.jsx" }, @@ -2078,10 +1122,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/routes/ArticleEditor.jsx", "resourceType": "script", - "startedAt": 2787, + "startedAt": 2854, "status": 200, "ok": true, - "finishedAt": 2812, + "finishedAt": 2873, "contentType": "text/javascript", "resourceTypeHint": "ArticleEditor.jsx" }, @@ -2090,10 +1134,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/routes/Home.jsx", "resourceType": "script", - "startedAt": 2792, + "startedAt": 2855, "status": 200, "ok": true, - "finishedAt": 2813, + "finishedAt": 2874, "contentType": "text/javascript", "resourceTypeHint": "Home.jsx" }, @@ -2102,10 +1146,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/routes/HomeArticles.jsx", "resourceType": "script", - "startedAt": 2792, + "startedAt": 2855, "status": 200, "ok": true, - "finishedAt": 2851, + "finishedAt": 2874, "contentType": "text/javascript", "resourceTypeHint": "HomeArticles.jsx" }, @@ -2114,10 +1158,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/routes/Login.jsx", "resourceType": "script", - "startedAt": 2792, + "startedAt": 2856, "status": 200, "ok": true, - "finishedAt": 2851, + "finishedAt": 2874, "contentType": "text/javascript", "resourceTypeHint": "Login.jsx" }, @@ -2126,10 +1170,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/routes/NotFound.jsx", "resourceType": "script", - "startedAt": 2793, + "startedAt": 2856, "status": 200, "ok": true, - "finishedAt": 2851, + "finishedAt": 2880, "contentType": "text/javascript", "resourceTypeHint": "NotFound.jsx" }, @@ -2138,10 +1182,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/routes/Profile/Profile.jsx", "resourceType": "script", - "startedAt": 2793, + "startedAt": 2856, "status": 200, "ok": true, - "finishedAt": 2851, + "finishedAt": 2880, "contentType": "text/javascript", "resourceTypeHint": "Profile.jsx" }, @@ -2150,10 +1194,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/routes/Profile/ProfileArticles.jsx", "resourceType": "script", - "startedAt": 2793, + "startedAt": 2856, "status": 200, "ok": true, - "finishedAt": 2851, + "finishedAt": 2881, "contentType": "text/javascript", "resourceTypeHint": "ProfileArticles.jsx" }, @@ -2162,10 +1206,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/routes/Profile/ProfileFavArticles.jsx", "resourceType": "script", - "startedAt": 2793, + "startedAt": 2856, "status": 200, "ok": true, - "finishedAt": 2851, + "finishedAt": 2890, "contentType": "text/javascript", "resourceTypeHint": "ProfileFavArticles.jsx" }, @@ -2174,10 +1218,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/routes/Settings.jsx", "resourceType": "script", - "startedAt": 2793, + "startedAt": 2857, "status": 200, "ok": true, - "finishedAt": 2851, + "finishedAt": 2887, "contentType": "text/javascript", "resourceTypeHint": "Settings.jsx" }, @@ -2186,10 +1230,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/routes/SignUp.jsx", "resourceType": "script", - "startedAt": 2794, + "startedAt": 2857, "status": 200, "ok": true, - "finishedAt": 2851, + "finishedAt": 2891, "contentType": "text/javascript", "resourceTypeHint": "SignUp.jsx" }, @@ -2198,10 +1242,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/@fs/F:/RealDone/work/real-projects/conduit-postgres/node_modules/vite/dist/client/env.mjs", "resourceType": "script", - "startedAt": 2794, + "startedAt": 2857, "status": 200, "ok": true, - "finishedAt": 2852, + "finishedAt": 2891, "contentType": "text/javascript", "resourceTypeHint": "env.mjs" }, @@ -2210,10 +1254,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/node_modules/.vite/deps/chunk-MP6PTA7G.js?v=96de0870", "resourceType": "script", - "startedAt": 2798, + "startedAt": 2858, "status": 200, "ok": true, - "finishedAt": 2852, + "finishedAt": 2892, "contentType": "text/javascript", "resourceTypeHint": "chunk-MP6PTA7G.js" }, @@ -2222,10 +1266,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/node_modules/.vite/deps/chunk-G3PMV62Z.js?v=96de0870", "resourceType": "script", - "startedAt": 2799, + "startedAt": 2858, "status": 200, "ok": true, - "finishedAt": 2852, + "finishedAt": 2892, "contentType": "text/javascript", "resourceTypeHint": "chunk-G3PMV62Z.js" }, @@ -2234,10 +1278,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/Footer/index.js", "resourceType": "script", - "startedAt": 2813, + "startedAt": 2875, "status": 200, "ok": true, - "finishedAt": 2852, + "finishedAt": 2893, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, @@ -2246,286 +1290,286 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/Navbar/index.js", "resourceType": "script", - "startedAt": 2819, + "startedAt": 2875, "status": 200, "ok": true, - "finishedAt": 2852, + "finishedAt": 2900, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, { "id": "net-39", "method": "GET", - "url": "http://127.0.0.1:3000/src/services/getUser.js", - "resourceType": "script", - "startedAt": 2819, - "status": 200, - "ok": true, - "finishedAt": 2852, - "contentType": "text/javascript", - "resourceTypeHint": "getUser.js" - }, - { - "id": "net-40", - "method": "GET", - "url": "http://127.0.0.1:3000/node_modules/.vite/deps/chunk-HYJYOVZJ.js?v=96de0870", + "url": "http://127.0.0.1:3000/src/services/getUser.js", "resourceType": "script", - "startedAt": 2819, + "startedAt": 2879, "status": 200, "ok": true, - "finishedAt": 2852, + "finishedAt": 2901, "contentType": "text/javascript", - "resourceTypeHint": "chunk-HYJYOVZJ.js" + "resourceTypeHint": "getUser.js" }, { - "id": "net-41", + "id": "net-40", "method": "GET", "url": "http://127.0.0.1:3000/src/components/CommentEditor/index.js", "resourceType": "script", - "startedAt": 2819, + "startedAt": 2884, "status": 200, "ok": true, - "finishedAt": 2852, + "finishedAt": 2907, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, { - "id": "net-42", + "id": "net-41", "method": "GET", "url": "http://127.0.0.1:3000/src/components/CommentList/index.js", "resourceType": "script", - "startedAt": 2820, + "startedAt": 2884, "status": 200, "ok": true, - "finishedAt": 2852, + "finishedAt": 2908, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, { - "id": "net-43", + "id": "net-42", "method": "GET", "url": "http://127.0.0.1:3000/src/components/ArticleEditorForm/index.js", "resourceType": "script", - "startedAt": 2820, + "startedAt": 2885, "status": 200, "ok": true, - "finishedAt": 2856, + "finishedAt": 2908, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, { - "id": "net-44", + "id": "net-43", "method": "GET", "url": "http://127.0.0.1:3000/src/components/ContainerRow/index.js", "resourceType": "script", - "startedAt": 2820, + "startedAt": 2885, "status": 200, "ok": true, - "finishedAt": 2856, + "finishedAt": 2909, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, { - "id": "net-45", + "id": "net-44", "method": "GET", "url": "http://127.0.0.1:3000/node_modules/.vite/deps/markdown-to-jsx.js?v=96de0870", "resourceType": "script", - "startedAt": 2820, + "startedAt": 2885, "status": 200, "ok": true, - "finishedAt": 2857, + "finishedAt": 2912, "contentType": "text/javascript", "resourceTypeHint": "markdown-to-jsx.js" }, { - "id": "net-46", + "id": "net-45", "method": "GET", "url": "http://127.0.0.1:3000/src/components/ArticleMeta/index.js", "resourceType": "script", - "startedAt": 2820, + "startedAt": 2886, "status": 200, "ok": true, - "finishedAt": 2857, + "finishedAt": 2909, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, { - "id": "net-47", + "id": "net-46", "method": "GET", "url": "http://127.0.0.1:3000/src/components/ArticlesButtons/index.js", "resourceType": "script", - "startedAt": 2821, + "startedAt": 2886, "status": 200, "ok": true, - "finishedAt": 2857, + "finishedAt": 2911, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, { - "id": "net-48", + "id": "net-47", "method": "GET", "url": "http://127.0.0.1:3000/src/components/ArticleTags/index.js", "resourceType": "script", - "startedAt": 2821, + "startedAt": 2887, "status": 200, "ok": true, - "finishedAt": 2857, + "finishedAt": 2911, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, { - "id": "net-49", + "id": "net-48", "method": "GET", "url": "http://127.0.0.1:3000/src/components/BannerContainer/index.js", "resourceType": "script", - "startedAt": 2821, + "startedAt": 2887, "status": 200, "ok": true, - "finishedAt": 2858, + "finishedAt": 2911, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, { - "id": "net-50", + "id": "net-49", "method": "GET", "url": "http://127.0.0.1:3000/src/services/getArticle.js", "resourceType": "script", - "startedAt": 2821, + "startedAt": 2887, "status": 200, "ok": true, - "finishedAt": 2858, + "finishedAt": 2913, "contentType": "text/javascript", "resourceTypeHint": "getArticle.js" }, { - "id": "net-51", + "id": "net-50", "method": "GET", "url": "http://127.0.0.1:3000/src/components/FeedToggler/index.js", "resourceType": "script", - "startedAt": 2856, + "startedAt": 2888, "status": 200, "ok": true, - "finishedAt": 2874, + "finishedAt": 2914, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, { - "id": "net-52", + "id": "net-51", "method": "GET", "url": "http://127.0.0.1:3000/src/context/FeedContext.jsx", "resourceType": "script", - "startedAt": 2857, + "startedAt": 2888, "status": 200, "ok": true, - "finishedAt": 2875, + "finishedAt": 2914, "contentType": "text/javascript", "resourceTypeHint": "FeedContext.jsx" }, { - "id": "net-53", + "id": "net-52", "method": "GET", "url": "http://127.0.0.1:3000/src/components/PopularTags/index.js", "resourceType": "script", - "startedAt": 2857, + "startedAt": 2888, + "status": 200, + "ok": true, + "finishedAt": 2915, + "contentType": "text/javascript", + "resourceTypeHint": "index.js" + }, + { + "id": "net-53", + "method": "GET", + "url": "http://127.0.0.1:3000/src/components/ArticlesPagination/index.js", + "resourceType": "script", + "startedAt": 2889, "status": 200, "ok": true, - "finishedAt": 2875, + "finishedAt": 2916, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, { "id": "net-54", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/AuthPageContainer/index.js", + "url": "http://127.0.0.1:3000/src/components/ArticlesPreview/index.js", "resourceType": "script", - "startedAt": 2857, + "startedAt": 2889, "status": 200, "ok": true, - "finishedAt": 2876, + "finishedAt": 2917, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, { "id": "net-55", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/LoginForm/index.js", + "url": "http://127.0.0.1:3000/src/hooks/useArticles.js", "resourceType": "script", - "startedAt": 2858, + "startedAt": 2889, "status": 200, "ok": true, - "finishedAt": 2877, + "finishedAt": 2917, "contentType": "text/javascript", - "resourceTypeHint": "index.js" + "resourceTypeHint": "useArticles.js" }, { "id": "net-56", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/ArticlesPagination/index.js", + "url": "http://127.0.0.1:3000/src/components/AuthPageContainer/index.js", "resourceType": "script", - "startedAt": 2858, + "startedAt": 2890, "status": 200, "ok": true, - "finishedAt": 2876, + "finishedAt": 2917, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, { "id": "net-57", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/ArticlesPreview/index.js", + "url": "http://127.0.0.1:3000/src/components/LoginForm/index.js", "resourceType": "script", - "startedAt": 2858, + "startedAt": 2890, "status": 200, "ok": true, - "finishedAt": 2878, + "finishedAt": 2917, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, { "id": "net-58", "method": "GET", - "url": "http://127.0.0.1:3000/src/hooks/useArticles.js", + "url": "http://127.0.0.1:3000/src/components/AuthorInfo/index.js", "resourceType": "script", - "startedAt": 2858, + "startedAt": 2891, "status": 200, "ok": true, - "finishedAt": 2879, + "finishedAt": 2919, "contentType": "text/javascript", - "resourceTypeHint": "useArticles.js" + "resourceTypeHint": "index.js" }, { "id": "net-59", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/AuthorInfo/index.js", + "url": "http://127.0.0.1:3000/src/components/NavItem/index.js", "resourceType": "script", - "startedAt": 2858, + "startedAt": 2891, "status": 200, "ok": true, - "finishedAt": 2879, + "finishedAt": 2920, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, { "id": "net-60", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/NavItem/index.js", + "url": "http://127.0.0.1:3000/node_modules/.vite/deps/chunk-HYJYOVZJ.js?v=96de0870", "resourceType": "script", - "startedAt": 2859, + "startedAt": 2892, "status": 200, "ok": true, - "finishedAt": 2882, + "finishedAt": 2920, "contentType": "text/javascript", - "resourceTypeHint": "index.js" + "resourceTypeHint": "chunk-HYJYOVZJ.js" }, { "id": "net-61", "method": "GET", "url": "http://127.0.0.1:3000/src/components/SettingsForm/index.js", "resourceType": "script", - "startedAt": 2859, + "startedAt": 2892, "status": 200, "ok": true, - "finishedAt": 2883, + "finishedAt": 2921, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, @@ -2534,10 +1578,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/SignUpForm/index.js", "resourceType": "script", - "startedAt": 2859, + "startedAt": 2893, "status": 200, "ok": true, - "finishedAt": 2883, + "finishedAt": 2922, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, @@ -2546,10 +1590,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/Footer/Footer.jsx", "resourceType": "script", - "startedAt": 2859, + "startedAt": 2893, "status": 200, "ok": true, - "finishedAt": 2883, + "finishedAt": 2923, "contentType": "text/javascript", "resourceTypeHint": "Footer.jsx" }, @@ -2558,10 +1602,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/Navbar/Navbar.jsx", "resourceType": "script", - "startedAt": 2859, + "startedAt": 2900, "status": 200, "ok": true, - "finishedAt": 2886, + "finishedAt": 2923, "contentType": "text/javascript", "resourceTypeHint": "Navbar.jsx" }, @@ -2570,10 +1614,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/node_modules/.vite/deps/axios.js?v=96de0870", "resourceType": "script", - "startedAt": 2860, + "startedAt": 2901, "status": 200, "ok": true, - "finishedAt": 2894, + "finishedAt": 2926, "contentType": "text/javascript", "resourceTypeHint": "axios.js" }, @@ -2582,10 +1626,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/helpers/errorHandler.js", "resourceType": "script", - "startedAt": 2860, + "startedAt": 2901, "status": 200, "ok": true, - "finishedAt": 2886, + "finishedAt": 2923, "contentType": "text/javascript", "resourceTypeHint": "errorHandler.js" }, @@ -2594,10 +1638,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/CommentEditor/CommentEditor.jsx", "resourceType": "script", - "startedAt": 2860, + "startedAt": 2912, "status": 200, "ok": true, - "finishedAt": 2887, + "finishedAt": 2926, "contentType": "text/javascript", "resourceTypeHint": "CommentEditor.jsx" }, @@ -2606,10 +1650,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/CommentList/CommentList.jsx", "resourceType": "script", - "startedAt": 2860, + "startedAt": 2913, "status": 200, "ok": true, - "finishedAt": 2888, + "finishedAt": 2926, "contentType": "text/javascript", "resourceTypeHint": "CommentList.jsx" }, @@ -2618,10 +1662,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/ArticleEditorForm/ArticleEditorForm.jsx", "resourceType": "script", - "startedAt": 2860, + "startedAt": 2913, "status": 200, "ok": true, - "finishedAt": 2888, + "finishedAt": 2926, "contentType": "text/javascript", "resourceTypeHint": "ArticleEditorForm.jsx" }, @@ -2630,10 +1674,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/ContainerRow/ContainerRow.jsx", "resourceType": "script", - "startedAt": 2861, + "startedAt": 2915, "status": 200, "ok": true, - "finishedAt": 2891, + "finishedAt": 2926, "contentType": "text/javascript", "resourceTypeHint": "ContainerRow.jsx" }, @@ -2642,10 +1686,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/ArticleMeta/ArticleMeta.jsx", "resourceType": "script", - "startedAt": 2861, + "startedAt": 2915, "status": 200, "ok": true, - "finishedAt": 2892, + "finishedAt": 2929, "contentType": "text/javascript", "resourceTypeHint": "ArticleMeta.jsx" }, @@ -2654,10 +1698,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/ArticlesButtons/ArticlesButtons.jsx", "resourceType": "script", - "startedAt": 2861, + "startedAt": 2916, "status": 200, "ok": true, - "finishedAt": 2893, + "finishedAt": 2930, "contentType": "text/javascript", "resourceTypeHint": "ArticlesButtons.jsx" }, @@ -2666,10 +1710,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/ArticleTags/ArticleTags.jsx", "resourceType": "script", - "startedAt": 2861, + "startedAt": 2917, "status": 200, "ok": true, - "finishedAt": 2893, + "finishedAt": 2930, "contentType": "text/javascript", "resourceTypeHint": "ArticleTags.jsx" }, @@ -2678,10 +1722,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/BannerContainer/BannerContainer.jsx", "resourceType": "script", - "startedAt": 2861, + "startedAt": 2917, "status": 200, "ok": true, - "finishedAt": 2894, + "finishedAt": 2930, "contentType": "text/javascript", "resourceTypeHint": "BannerContainer.jsx" }, @@ -2690,10 +1734,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/FeedToggler/FeedToggler.jsx", "resourceType": "script", - "startedAt": 2878, + "startedAt": 2918, "status": 200, "ok": true, - "finishedAt": 2895, + "finishedAt": 2931, "contentType": "text/javascript", "resourceTypeHint": "FeedToggler.jsx" }, @@ -2702,10 +1746,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/PopularTags/PopularTags.jsx", "resourceType": "script", - "startedAt": 2880, + "startedAt": 2920, "status": 200, "ok": true, - "finishedAt": 2898, + "finishedAt": 2933, "contentType": "text/javascript", "resourceTypeHint": "PopularTags.jsx" }, @@ -2714,70 +1758,70 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/ArticlesPagination/ArticlesPagination.jsx", "resourceType": "script", - "startedAt": 2880, + "startedAt": 2920, "status": 200, "ok": true, - "finishedAt": 2901, + "finishedAt": 2933, "contentType": "text/javascript", "resourceTypeHint": "ArticlesPagination.jsx" }, { "id": "net-78", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/AuthPageContainer/AuthPageContainer.jsx", + "url": "http://127.0.0.1:3000/src/components/ArticlesPreview/ArticlesPreview.jsx", "resourceType": "script", - "startedAt": 2880, + "startedAt": 2920, "status": 200, "ok": true, - "finishedAt": 2901, + "finishedAt": 2933, "contentType": "text/javascript", - "resourceTypeHint": "AuthPageContainer.jsx" + "resourceTypeHint": "ArticlesPreview.jsx" }, { "id": "net-79", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/LoginForm/LoginForm.jsx", + "url": "http://127.0.0.1:3000/src/components/AuthPageContainer/AuthPageContainer.jsx", "resourceType": "script", - "startedAt": 2881, + "startedAt": 2922, "status": 200, "ok": true, - "finishedAt": 2901, + "finishedAt": 2935, "contentType": "text/javascript", - "resourceTypeHint": "LoginForm.jsx" + "resourceTypeHint": "AuthPageContainer.jsx" }, { "id": "net-80", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/ArticlesPreview/ArticlesPreview.jsx", + "url": "http://127.0.0.1:3000/src/services/getArticles.js", "resourceType": "script", - "startedAt": 2885, + "startedAt": 2922, "status": 200, "ok": true, - "finishedAt": 2906, + "finishedAt": 2935, "contentType": "text/javascript", - "resourceTypeHint": "ArticlesPreview.jsx" + "resourceTypeHint": "getArticles.js" }, { "id": "net-81", "method": "GET", - "url": "http://127.0.0.1:3000/src/services/getArticles.js", + "url": "http://127.0.0.1:3000/src/components/LoginForm/LoginForm.jsx", "resourceType": "script", - "startedAt": 2886, + "startedAt": 2922, "status": 200, "ok": true, - "finishedAt": 2906, + "finishedAt": 2935, "contentType": "text/javascript", - "resourceTypeHint": "getArticles.js" + "resourceTypeHint": "LoginForm.jsx" }, { "id": "net-82", "method": "GET", "url": "http://127.0.0.1:3000/src/components/AuthorInfo/AuthorInfo.jsx", "resourceType": "script", - "startedAt": 2886, + "startedAt": 2923, "status": 200, "ok": true, - "finishedAt": 2906, + "finishedAt": 2936, "contentType": "text/javascript", "resourceTypeHint": "AuthorInfo.jsx" }, @@ -2786,10 +1830,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/NavItem/NavItem.jsx", "resourceType": "script", - "startedAt": 2887, + "startedAt": 2923, "status": 200, "ok": true, - "finishedAt": 2906, + "finishedAt": 2936, "contentType": "text/javascript", "resourceTypeHint": "NavItem.jsx" }, @@ -2798,10 +1842,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/SettingsForm/SettingsForm.jsx", "resourceType": "script", - "startedAt": 2887, + "startedAt": 2925, "status": 200, "ok": true, - "finishedAt": 2906, + "finishedAt": 2938, "contentType": "text/javascript", "resourceTypeHint": "SettingsForm.jsx" }, @@ -2810,10 +1854,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/SignUpForm/SignUpForm.jsx", "resourceType": "script", - "startedAt": 2887, + "startedAt": 2925, "status": 200, "ok": true, - "finishedAt": 2906, + "finishedAt": 2938, "contentType": "text/javascript", "resourceTypeHint": "SignUpForm.jsx" }, @@ -2822,10 +1866,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/SourceCodeLink/index.js", "resourceType": "script", - "startedAt": 2887, + "startedAt": 2925, "status": 200, "ok": true, - "finishedAt": 2907, + "finishedAt": 2938, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, @@ -2834,10 +1878,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/Navbar/DropdownMenu.jsx", "resourceType": "script", - "startedAt": 2888, + "startedAt": 2926, "status": 200, "ok": true, - "finishedAt": 2907, + "finishedAt": 2939, "contentType": "text/javascript", "resourceTypeHint": "DropdownMenu.jsx" }, @@ -2846,10 +1890,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/services/postComment.js", "resourceType": "script", - "startedAt": 2892, + "startedAt": 2927, "status": 200, "ok": true, - "finishedAt": 2911, + "finishedAt": 2939, "contentType": "text/javascript", "resourceTypeHint": "postComment.js" }, @@ -2858,10 +1902,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/Avatar/index.js", "resourceType": "script", - "startedAt": 2892, + "startedAt": 2927, "status": 200, "ok": true, - "finishedAt": 2912, + "finishedAt": 2939, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, @@ -2870,10 +1914,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/helpers/dateFormatter.js", "resourceType": "script", - "startedAt": 2892, + "startedAt": 2928, "status": 200, "ok": true, - "finishedAt": 2912, + "finishedAt": 2943, "contentType": "text/javascript", "resourceTypeHint": "dateFormatter.js" }, @@ -2882,10 +1926,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/services/deleteComment.js", "resourceType": "script", - "startedAt": 2893, + "startedAt": 2929, "status": 200, "ok": true, - "finishedAt": 2914, + "finishedAt": 2943, "contentType": "text/javascript", "resourceTypeHint": "deleteComment.js" }, @@ -2894,10 +1938,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/services/getComments.js", "resourceType": "script", - "startedAt": 2893, + "startedAt": 2929, "status": 200, "ok": true, - "finishedAt": 2914, + "finishedAt": 2943, "contentType": "text/javascript", "resourceTypeHint": "getComments.js" }, @@ -2906,10 +1950,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/CommentList/CommentAuthor.jsx", "resourceType": "script", - "startedAt": 2894, + "startedAt": 2929, "status": 200, "ok": true, - "finishedAt": 2915, + "finishedAt": 2944, "contentType": "text/javascript", "resourceTypeHint": "CommentAuthor.jsx" }, @@ -2918,10 +1962,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/services/setArticle.js", "resourceType": "script", - "startedAt": 2894, + "startedAt": 2929, "status": 200, "ok": true, - "finishedAt": 2915, + "finishedAt": 2943, "contentType": "text/javascript", "resourceTypeHint": "setArticle.js" }, @@ -2930,10 +1974,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/FormFieldset/index.js", "resourceType": "script", - "startedAt": 2894, + "startedAt": 2929, "status": 200, "ok": true, - "finishedAt": 2915, + "finishedAt": 2944, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, @@ -2942,10 +1986,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/ArticleAuthorButtons/index.js", "resourceType": "script", - "startedAt": 2895, + "startedAt": 2930, "status": 200, "ok": true, - "finishedAt": 2918, + "finishedAt": 2945, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, @@ -2954,10 +1998,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/FavButton/index.js", "resourceType": "script", - "startedAt": 2895, + "startedAt": 2930, "status": 200, "ok": true, - "finishedAt": 2918, + "finishedAt": 2945, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, @@ -2966,10 +2010,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/FollowButton/index.js", "resourceType": "script", - "startedAt": 2895, + "startedAt": 2931, "status": 200, "ok": true, - "finishedAt": 2919, + "finishedAt": 2947, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, @@ -2978,10 +2022,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/FeedToggler/FeedNavLink.jsx", "resourceType": "script", - "startedAt": 2896, + "startedAt": 2931, "status": 200, "ok": true, - "finishedAt": 2920, + "finishedAt": 2947, "contentType": "text/javascript", "resourceTypeHint": "FeedNavLink.jsx" }, @@ -2990,10 +2034,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/services/getTags.js", "resourceType": "script", - "startedAt": 2901, + "startedAt": 2933, "status": 200, "ok": true, - "finishedAt": 2920, + "finishedAt": 2947, "contentType": "text/javascript", "resourceTypeHint": "getTags.js" }, @@ -3002,10 +2046,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/PopularTags/TagButton.jsx", "resourceType": "script", - "startedAt": 2901, + "startedAt": 2933, "status": 200, "ok": true, - "finishedAt": 2920, + "finishedAt": 2947, "contentType": "text/javascript", "resourceTypeHint": "TagButton.jsx" }, @@ -3014,10 +2058,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/node_modules/.vite/deps/react-paginate.js?v=96de0870", "resourceType": "script", - "startedAt": 2902, + "startedAt": 2934, "status": 200, "ok": true, - "finishedAt": 2921, + "finishedAt": 2947, "contentType": "text/javascript", "resourceTypeHint": "react-paginate.js" }, @@ -3026,10 +2070,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/services/userLogin.js", "resourceType": "script", - "startedAt": 2902, + "startedAt": 2936, "status": 200, "ok": true, - "finishedAt": 2920, + "finishedAt": 2949, "contentType": "text/javascript", "resourceTypeHint": "userLogin.js" }, @@ -3038,10 +2082,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/services/getProfile.js", "resourceType": "script", - "startedAt": 2908, + "startedAt": 2936, "status": 200, "ok": true, - "finishedAt": 2923, + "finishedAt": 2949, "contentType": "text/javascript", "resourceTypeHint": "getProfile.js" }, @@ -3050,10 +2094,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/services/userUpdate.js", "resourceType": "script", - "startedAt": 2909, + "startedAt": 2939, "status": 200, "ok": true, - "finishedAt": 2923, + "finishedAt": 2949, "contentType": "text/javascript", "resourceTypeHint": "userUpdate.js" }, @@ -3062,10 +2106,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/services/userSignUp.js", "resourceType": "script", - "startedAt": 2909, + "startedAt": 2940, "status": 200, "ok": true, - "finishedAt": 2923, + "finishedAt": 2950, "contentType": "text/javascript", "resourceTypeHint": "userSignUp.js" }, @@ -3074,10 +2118,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/SourceCodeLink/SourceCodeLink.jsx", "resourceType": "script", - "startedAt": 2912, + "startedAt": 2941, "status": 200, "ok": true, - "finishedAt": 2925, + "finishedAt": 2950, "contentType": "text/javascript", "resourceTypeHint": "SourceCodeLink.jsx" }, @@ -3086,10 +2130,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/services/userLogout.js", "resourceType": "script", - "startedAt": 2912, + "startedAt": 2941, "status": 200, "ok": true, - "finishedAt": 2925, + "finishedAt": 2950, "contentType": "text/javascript", "resourceTypeHint": "userLogout.js" }, @@ -3098,10 +2142,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/Navbar/DropdownItem.jsx", "resourceType": "script", - "startedAt": 2912, + "startedAt": 2941, "status": 200, "ok": true, - "finishedAt": 2925, + "finishedAt": 2950, "contentType": "text/javascript", "resourceTypeHint": "DropdownItem.jsx" }, @@ -3110,10 +2154,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/Avatar/Avatar.jsx", "resourceType": "script", - "startedAt": 2919, + "startedAt": 2942, "status": 200, "ok": true, - "finishedAt": 2933, + "finishedAt": 2950, "contentType": "text/javascript", "resourceTypeHint": "Avatar.jsx" }, @@ -3122,10 +2166,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/FormFieldset/FormFieldset.jsx", "resourceType": "script", - "startedAt": 2919, + "startedAt": 2946, "status": 200, "ok": true, - "finishedAt": 2933, + "finishedAt": 2951, "contentType": "text/javascript", "resourceTypeHint": "FormFieldset.jsx" }, @@ -3134,10 +2178,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/ArticleAuthorButtons/ArticleAuthorButtons.jsx", "resourceType": "script", - "startedAt": 2920, + "startedAt": 2948, "status": 200, "ok": true, - "finishedAt": 2933, + "finishedAt": 2954, "contentType": "text/javascript", "resourceTypeHint": "ArticleAuthorButtons.jsx" }, @@ -3146,10 +2190,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/FavButton/FavButton.jsx", "resourceType": "script", - "startedAt": 2920, + "startedAt": 2948, "status": 200, "ok": true, - "finishedAt": 2933, + "finishedAt": 2954, "contentType": "text/javascript", "resourceTypeHint": "FavButton.jsx" }, @@ -3158,10 +2202,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/FollowButton/FollowButton.jsx", "resourceType": "script", - "startedAt": 2921, + "startedAt": 2949, "status": 200, "ok": true, - "finishedAt": 2933, + "finishedAt": 2955, "contentType": "text/javascript", "resourceTypeHint": "FollowButton.jsx" }, @@ -3170,58 +2214,58 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/assets/smiley-cyrus.jpeg?import", "resourceType": "script", - "startedAt": 2933, + "startedAt": 2950, "status": 200, "ok": true, + "finishedAt": 2955, "contentType": "text/javascript", - "resourceTypeHint": "smiley-cyrus.jpeg", - "finishedAt": 2938 + "resourceTypeHint": "smiley-cyrus.jpeg" }, { "id": "net-116", "method": "GET", "url": "http://127.0.0.1:3000/src/services/deleteArticle.js", "resourceType": "script", - "startedAt": 2933, + "startedAt": 2954, "status": 200, "ok": true, - "finishedAt": 2938, + "finishedAt": 2958, "contentType": "text/javascript", "resourceTypeHint": "deleteArticle.js" }, { "id": "net-117", "method": "GET", - "url": "http://127.0.0.1:3000/src/services/toggleFollow.js", + "url": "http://127.0.0.1:3000/src/services/toggleFav.js", "resourceType": "script", - "startedAt": 2934, + "startedAt": 2955, "status": 200, "ok": true, - "finishedAt": 2939, + "finishedAt": 2958, "contentType": "text/javascript", - "resourceTypeHint": "toggleFollow.js" + "resourceTypeHint": "toggleFav.js" }, { "id": "net-118", "method": "GET", - "url": "http://127.0.0.1:3000/src/services/toggleFav.js", + "url": "http://127.0.0.1:3000/src/services/toggleFollow.js", "resourceType": "script", - "startedAt": 2934, + "startedAt": 2956, "status": 200, "ok": true, - "finishedAt": 2939, + "finishedAt": 2958, "contentType": "text/javascript", - "resourceTypeHint": "toggleFav.js" + "resourceTypeHint": "toggleFollow.js" }, { "id": "net-119", "method": "GET", "url": "http://127.0.0.1:3000/src/assets/smiley-cyrus.jpeg", "resourceType": "image", - "startedAt": 2950, + "startedAt": 3143, "status": 200, "ok": true, - "finishedAt": 2956, + "finishedAt": 3148, "contentType": "image/jpeg", "resourceTypeHint": "smiley-cyrus.jpeg" }, @@ -3230,10 +2274,10 @@ "method": "GET", "url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdu.woff2", "resourceType": "font", - "startedAt": 2953, + "startedAt": 3146, "status": 200, "ok": true, - "finishedAt": 2999, + "finishedAt": 3192, "contentType": "font/woff2", "resourceTypeHint": "6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdu.woff2" }, @@ -3242,10 +2286,10 @@ "method": "GET", "url": "https://code.ionicframework.com/ionicons/2.0.1/fonts/ionicons.ttf?v=2.0.1", "resourceType": "font", - "startedAt": 2953, + "startedAt": 3147, "status": 200, "ok": true, - "finishedAt": 3098, + "finishedAt": 3253, "contentType": "font/ttf", "resourceTypeHint": "ionicons.ttf" }, @@ -3254,10 +2298,10 @@ "method": "GET", "url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7l.woff2", "resourceType": "font", - "startedAt": 2954, + "startedAt": 3147, "status": 200, "ok": true, - "finishedAt": 3002, + "finishedAt": 3192, "contentType": "font/woff2", "resourceTypeHint": "6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7l.woff2" }, @@ -3266,10 +2310,10 @@ "method": "GET", "url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7nsDI.woff2", "resourceType": "font", - "startedAt": 2954, + "startedAt": 3147, "status": 200, "ok": true, - "finishedAt": 3001, + "finishedAt": 3193, "contentType": "font/woff2", "resourceTypeHint": "6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7nsDI.woff2" }, @@ -3278,34 +2322,34 @@ "method": "GET", "url": "http://127.0.0.1:3000/api/articles/feed?limit=3&&offset=0", "resourceType": "xhr", - "startedAt": 2958, + "startedAt": 3151, "status": 200, "ok": true, + "finishedAt": 3166, "contentType": "application/json", - "resourceTypeHint": "feed", - "finishedAt": 2968 + "resourceTypeHint": "feed" }, { "id": "net-125", "method": "GET", "url": "http://127.0.0.1:3000/api/tags", "resourceType": "xhr", - "startedAt": 2958, + "startedAt": 3152, "status": 200, "ok": true, - "finishedAt": 2969, "contentType": "application/json", - "resourceTypeHint": "tags" + "resourceTypeHint": "tags", + "finishedAt": 3161 }, { "id": "net-126", "method": "GET", "url": "http://127.0.0.1:3000/api/user", "resourceType": "xhr", - "startedAt": 2959, + "startedAt": 3152, "status": 200, "ok": true, - "finishedAt": 2969, + "finishedAt": 3162, "contentType": "application/json", "resourceTypeHint": "user" }, @@ -3314,10 +2358,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/api/articles/feed?limit=3&&offset=0", "resourceType": "xhr", - "startedAt": 2959, + "startedAt": 3152, "status": 200, "ok": true, - "finishedAt": 2973, + "finishedAt": 3166, "contentType": "application/json", "resourceTypeHint": "feed" }, @@ -3326,10 +2370,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/api/tags", "resourceType": "xhr", - "startedAt": 2960, + "startedAt": 3153, "status": 200, "ok": true, - "finishedAt": 2972, + "finishedAt": 3165, "contentType": "application/json", "resourceTypeHint": "tags" }, @@ -3338,10 +2382,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/api/user", "resourceType": "xhr", - "startedAt": 2960, + "startedAt": 3153, "status": 200, "ok": true, - "finishedAt": 2973, + "finishedAt": 3166, "contentType": "application/json", "resourceTypeHint": "user" }, @@ -3350,22 +2394,22 @@ "method": "GET", "url": "http://127.0.0.1:3000/", "resourceType": "document", - "startedAt": 3819, + "startedAt": 4002, "status": 200, "ok": true, "contentType": "text/html", "resourceTypeHint": "resource", - "finishedAt": 3828 + "finishedAt": 4012 }, { "id": "net-131", "method": "GET", "url": "http://127.0.0.1:3000/@vite/client", "resourceType": "script", - "startedAt": 3826, + "startedAt": 4009, "status": 200, "ok": true, - "finishedAt": 3836, + "finishedAt": 4020, "contentType": "text/javascript", "resourceTypeHint": "client" }, @@ -3374,10 +2418,10 @@ "method": "GET", "url": "http://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css", "resourceType": "stylesheet", - "startedAt": 3827, + "startedAt": 4011, "status": 307, "ok": false, - "finishedAt": 3831, + "finishedAt": 4015, "location": "https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css", "resourceTypeHint": "ionicons.min.css" }, @@ -3386,10 +2430,10 @@ "method": "GET", "url": "http://fonts.googleapis.com/css?family=Titillium+Web:700|Source+Serif+Pro:400,700|Merriweather+Sans:400,700|Source+Sans+Pro:400,300,600,700,300italic,400italic,600italic,700italic", "resourceType": "stylesheet", - "startedAt": 3827, + "startedAt": 4011, "status": 200, "ok": true, - "finishedAt": 3888, + "finishedAt": 4060, "contentType": "text/css", "resourceTypeHint": "css" }, @@ -3398,10 +2442,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/main.jsx", "resourceType": "script", - "startedAt": 3827, + "startedAt": 4011, "status": 200, "ok": true, - "finishedAt": 3833, + "finishedAt": 4019, "contentType": "text/javascript", "resourceTypeHint": "main.jsx" }, @@ -3410,10 +2454,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/@react-refresh", "resourceType": "script", - "startedAt": 3828, + "startedAt": 4012, "status": 200, "ok": true, - "finishedAt": 3842, + "finishedAt": 4026, "contentType": "text/javascript", "resourceTypeHint": "@react-refresh" }, @@ -3422,10 +2466,10 @@ "method": "GET", "url": "https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css", "resourceType": "stylesheet", - "startedAt": 3831, + "startedAt": 4015, "status": 200, "ok": true, - "finishedAt": 3915, + "finishedAt": 4099, "contentType": "text/css", "resourceTypeHint": "ionicons.min.css" }, @@ -3434,10 +2478,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/node_modules/.vite/deps/react_jsx-dev-runtime.js?v=96de0870", "resourceType": "script", - "startedAt": 3835, + "startedAt": 4021, "status": 200, "ok": true, - "finishedAt": 3846, + "finishedAt": 4030, "contentType": "text/javascript", "resourceTypeHint": "react_jsx-dev-runtime.js" }, @@ -3446,10 +2490,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/node_modules/.vite/deps/react.js?v=96de0870", "resourceType": "script", - "startedAt": 3836, + "startedAt": 4021, "status": 200, "ok": true, - "finishedAt": 3846, + "finishedAt": 4030, "contentType": "text/javascript", "resourceTypeHint": "react.js" }, @@ -3458,10 +2502,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/node_modules/.vite/deps/react-dom_client.js?v=96de0870", "resourceType": "script", - "startedAt": 3836, + "startedAt": 4021, "status": 200, "ok": true, - "finishedAt": 3873, + "finishedAt": 4050, "contentType": "text/javascript", "resourceTypeHint": "react-dom_client.js" }, @@ -3470,10 +2514,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/node_modules/.vite/deps/react-router-dom.js?v=96de0870", "resourceType": "script", - "startedAt": 3839, + "startedAt": 4022, "status": 200, "ok": true, - "finishedAt": 3873, + "finishedAt": 4054, "contentType": "text/javascript", "resourceTypeHint": "react-router-dom.js" }, @@ -3482,10 +2526,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/App.jsx", "resourceType": "script", - "startedAt": 3839, + "startedAt": 4023, "status": 200, "ok": true, - "finishedAt": 3857, + "finishedAt": 4042, "contentType": "text/javascript", "resourceTypeHint": "App.jsx" }, @@ -3494,10 +2538,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/context/AuthContext.jsx", "resourceType": "script", - "startedAt": 3839, + "startedAt": 4023, "status": 200, "ok": true, - "finishedAt": 3856, + "finishedAt": 4043, "contentType": "text/javascript", "resourceTypeHint": "AuthContext.jsx" }, @@ -3506,10 +2550,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/styles.css", "resourceType": "script", - "startedAt": 3839, + "startedAt": 4023, "status": 200, "ok": true, - "finishedAt": 3858, + "finishedAt": 4043, "contentType": "text/javascript", "resourceTypeHint": "styles.css" }, @@ -3518,10 +2562,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/index.css", "resourceType": "script", - "startedAt": 3840, + "startedAt": 4023, "status": 200, "ok": true, - "finishedAt": 3859, + "finishedAt": 4044, "contentType": "text/javascript", "resourceTypeHint": "index.css" }, @@ -3530,10 +2574,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/reportWebVitals.js", "resourceType": "script", - "startedAt": 3840, + "startedAt": 4023, "status": 200, "ok": true, - "finishedAt": 3858, + "finishedAt": 4045, "contentType": "text/javascript", "resourceTypeHint": "reportWebVitals.js" }, @@ -3542,10 +2586,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/routes/Article/Article.jsx", "resourceType": "script", - "startedAt": 3840, + "startedAt": 4024, "status": 200, "ok": true, - "finishedAt": 3862, + "finishedAt": 4046, "contentType": "text/javascript", "resourceTypeHint": "Article.jsx" }, @@ -3554,10 +2598,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/routes/Article/CommentsSection.jsx", "resourceType": "script", - "startedAt": 3841, + "startedAt": 4024, "status": 200, "ok": true, - "finishedAt": 3860, + "finishedAt": 4046, "contentType": "text/javascript", "resourceTypeHint": "CommentsSection.jsx" }, @@ -3566,10 +2610,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/routes/ArticleEditor.jsx", "resourceType": "script", - "startedAt": 3841, + "startedAt": 4024, "status": 200, "ok": true, - "finishedAt": 3862, + "finishedAt": 4047, "contentType": "text/javascript", "resourceTypeHint": "ArticleEditor.jsx" }, @@ -3578,10 +2622,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/routes/Home.jsx", "resourceType": "script", - "startedAt": 3841, + "startedAt": 4024, "status": 200, "ok": true, - "finishedAt": 3862, + "finishedAt": 4049, "contentType": "text/javascript", "resourceTypeHint": "Home.jsx" }, @@ -3590,10 +2634,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/routes/HomeArticles.jsx", "resourceType": "script", - "startedAt": 3841, + "startedAt": 4024, "status": 200, "ok": true, - "finishedAt": 3863, + "finishedAt": 4051, "contentType": "text/javascript", "resourceTypeHint": "HomeArticles.jsx" }, @@ -3602,10 +2646,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/routes/Login.jsx", "resourceType": "script", - "startedAt": 3841, + "startedAt": 4025, "status": 200, "ok": true, - "finishedAt": 3864, + "finishedAt": 4052, "contentType": "text/javascript", "resourceTypeHint": "Login.jsx" }, @@ -3614,10 +2658,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/routes/NotFound.jsx", "resourceType": "script", - "startedAt": 3842, + "startedAt": 4025, "status": 200, "ok": true, - "finishedAt": 3866, + "finishedAt": 4052, "contentType": "text/javascript", "resourceTypeHint": "NotFound.jsx" }, @@ -3626,10 +2670,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/routes/Profile/Profile.jsx", "resourceType": "script", - "startedAt": 3842, + "startedAt": 4026, "status": 200, "ok": true, - "finishedAt": 3866, + "finishedAt": 4052, "contentType": "text/javascript", "resourceTypeHint": "Profile.jsx" }, @@ -3638,10 +2682,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/routes/Profile/ProfileArticles.jsx", "resourceType": "script", - "startedAt": 3842, + "startedAt": 4026, "status": 200, "ok": true, - "finishedAt": 3873, + "finishedAt": 4052, "contentType": "text/javascript", "resourceTypeHint": "ProfileArticles.jsx" }, @@ -3650,10 +2694,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/routes/Profile/ProfileFavArticles.jsx", "resourceType": "script", - "startedAt": 3842, + "startedAt": 4026, "status": 200, "ok": true, - "finishedAt": 3873, + "finishedAt": 4055, "contentType": "text/javascript", "resourceTypeHint": "ProfileFavArticles.jsx" }, @@ -3662,10 +2706,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/routes/Settings.jsx", "resourceType": "script", - "startedAt": 3842, + "startedAt": 4027, "status": 200, "ok": true, - "finishedAt": 3873, + "finishedAt": 4058, "contentType": "text/javascript", "resourceTypeHint": "Settings.jsx" }, @@ -3674,10 +2718,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/routes/SignUp.jsx", "resourceType": "script", - "startedAt": 3843, + "startedAt": 4027, "status": 200, "ok": true, - "finishedAt": 3873, + "finishedAt": 4058, "contentType": "text/javascript", "resourceTypeHint": "SignUp.jsx" }, @@ -3686,10 +2730,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/@fs/F:/RealDone/work/real-projects/conduit-postgres/node_modules/vite/dist/client/env.mjs", "resourceType": "script", - "startedAt": 3843, + "startedAt": 4027, "status": 200, "ok": true, - "finishedAt": 3874, + "finishedAt": 4059, "contentType": "text/javascript", "resourceTypeHint": "env.mjs" }, @@ -3698,10 +2742,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/node_modules/.vite/deps/chunk-MP6PTA7G.js?v=96de0870", "resourceType": "script", - "startedAt": 3846, + "startedAt": 4032, "status": 200, "ok": true, - "finishedAt": 3874, + "finishedAt": 4060, "contentType": "text/javascript", "resourceTypeHint": "chunk-MP6PTA7G.js" }, @@ -3710,154 +2754,154 @@ "method": "GET", "url": "http://127.0.0.1:3000/node_modules/.vite/deps/chunk-G3PMV62Z.js?v=96de0870", "resourceType": "script", - "startedAt": 3846, + "startedAt": 4032, "status": 200, "ok": true, - "finishedAt": 3874, + "finishedAt": 4060, "contentType": "text/javascript", "resourceTypeHint": "chunk-G3PMV62Z.js" }, { "id": "net-161", "method": "GET", - "url": "http://127.0.0.1:3000/src/services/getUser.js", + "url": "http://127.0.0.1:3000/src/components/Footer/index.js", "resourceType": "script", - "startedAt": 3861, + "startedAt": 4048, "status": 200, "ok": true, - "finishedAt": 3877, + "finishedAt": 4062, "contentType": "text/javascript", - "resourceTypeHint": "getUser.js" + "resourceTypeHint": "index.js" }, { "id": "net-162", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/Footer/index.js", + "url": "http://127.0.0.1:3000/src/components/Navbar/index.js", "resourceType": "script", - "startedAt": 3862, + "startedAt": 4048, "status": 200, "ok": true, - "finishedAt": 3878, + "finishedAt": 4063, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, { "id": "net-163", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/Navbar/index.js", + "url": "http://127.0.0.1:3000/src/services/getUser.js", "resourceType": "script", - "startedAt": 3864, + "startedAt": 4049, "status": 200, "ok": true, - "finishedAt": 3915, + "finishedAt": 4063, "contentType": "text/javascript", - "resourceTypeHint": "index.js" + "resourceTypeHint": "getUser.js" }, { "id": "net-164", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/CommentEditor/index.js", + "url": "http://127.0.0.1:3000/node_modules/.vite/deps/markdown-to-jsx.js?v=96de0870", "resourceType": "script", - "startedAt": 3864, + "startedAt": 4052, "status": 200, "ok": true, - "finishedAt": 3916, + "finishedAt": 4071, "contentType": "text/javascript", - "resourceTypeHint": "index.js" + "resourceTypeHint": "markdown-to-jsx.js" }, { "id": "net-165", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/CommentList/index.js", + "url": "http://127.0.0.1:3000/src/components/ArticleMeta/index.js", "resourceType": "script", - "startedAt": 3864, + "startedAt": 4053, "status": 200, "ok": true, - "finishedAt": 3919, "contentType": "text/javascript", - "resourceTypeHint": "index.js" + "resourceTypeHint": "index.js", + "finishedAt": 4070 }, { "id": "net-166", "method": "GET", - "url": "http://127.0.0.1:3000/node_modules/.vite/deps/markdown-to-jsx.js?v=96de0870", + "url": "http://127.0.0.1:3000/src/components/ArticlesButtons/index.js", "resourceType": "script", - "startedAt": 3866, + "startedAt": 4053, "status": 200, "ok": true, - "finishedAt": 3919, + "finishedAt": 4070, "contentType": "text/javascript", - "resourceTypeHint": "markdown-to-jsx.js" + "resourceTypeHint": "index.js" }, { "id": "net-167", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/ArticleMeta/index.js", + "url": "http://127.0.0.1:3000/src/components/ArticleTags/index.js", "resourceType": "script", - "startedAt": 3866, + "startedAt": 4053, "status": 200, "ok": true, - "finishedAt": 3919, + "finishedAt": 4071, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, { "id": "net-168", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/ArticlesButtons/index.js", + "url": "http://127.0.0.1:3000/src/components/BannerContainer/index.js", "resourceType": "script", - "startedAt": 3867, + "startedAt": 4053, "status": 200, "ok": true, - "finishedAt": 3919, + "finishedAt": 4072, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, { "id": "net-169", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/ArticleTags/index.js", + "url": "http://127.0.0.1:3000/src/services/getArticle.js", "resourceType": "script", - "startedAt": 3867, + "startedAt": 4054, "status": 200, "ok": true, - "finishedAt": 3920, + "finishedAt": 4073, "contentType": "text/javascript", - "resourceTypeHint": "index.js" + "resourceTypeHint": "getArticle.js" }, { "id": "net-170", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/BannerContainer/index.js", + "url": "http://127.0.0.1:3000/src/components/CommentEditor/index.js", "resourceType": "script", - "startedAt": 3867, + "startedAt": 4054, "status": 200, "ok": true, - "finishedAt": 3920, + "finishedAt": 4073, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, { "id": "net-171", "method": "GET", - "url": "http://127.0.0.1:3000/src/services/getArticle.js", + "url": "http://127.0.0.1:3000/src/components/CommentList/index.js", "resourceType": "script", - "startedAt": 3867, + "startedAt": 4055, "status": 200, "ok": true, - "finishedAt": 3920, + "finishedAt": 4074, "contentType": "text/javascript", - "resourceTypeHint": "getArticle.js" + "resourceTypeHint": "index.js" }, { "id": "net-172", "method": "GET", "url": "http://127.0.0.1:3000/src/components/ArticleEditorForm/index.js", "resourceType": "script", - "startedAt": 3867, + "startedAt": 4055, "status": 200, "ok": true, - "finishedAt": 3920, + "finishedAt": 4074, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, @@ -3866,10 +2910,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/ContainerRow/index.js", "resourceType": "script", - "startedAt": 3868, + "startedAt": 4055, "status": 200, "ok": true, - "finishedAt": 3920, + "finishedAt": 4074, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, @@ -3878,10 +2922,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/FeedToggler/index.js", "resourceType": "script", - "startedAt": 3868, + "startedAt": 4057, "status": 200, "ok": true, - "finishedAt": 3920, + "finishedAt": 4076, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, @@ -3890,10 +2934,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/context/FeedContext.jsx", "resourceType": "script", - "startedAt": 3868, + "startedAt": 4058, "status": 200, "ok": true, - "finishedAt": 3920, + "finishedAt": 4076, "contentType": "text/javascript", "resourceTypeHint": "FeedContext.jsx" }, @@ -3902,118 +2946,118 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/PopularTags/index.js", "resourceType": "script", - "startedAt": 3871, + "startedAt": 4058, "status": 200, "ok": true, - "finishedAt": 3920, + "finishedAt": 4077, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, { "id": "net-177", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/ArticlesPagination/index.js", + "url": "http://127.0.0.1:3000/node_modules/.vite/deps/chunk-HYJYOVZJ.js?v=96de0870", "resourceType": "script", - "startedAt": 3871, + "startedAt": 4058, "status": 200, "ok": true, - "finishedAt": 3920, + "finishedAt": 4078, "contentType": "text/javascript", - "resourceTypeHint": "index.js" + "resourceTypeHint": "chunk-HYJYOVZJ.js" }, { "id": "net-178", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/ArticlesPreview/index.js", + "url": "http://127.0.0.1:3000/src/components/ArticlesPagination/index.js", "resourceType": "script", - "startedAt": 3871, + "startedAt": 4059, "status": 200, "ok": true, - "finishedAt": 3921, + "finishedAt": 4079, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, { "id": "net-179", "method": "GET", - "url": "http://127.0.0.1:3000/src/hooks/useArticles.js", + "url": "http://127.0.0.1:3000/src/components/ArticlesPreview/index.js", "resourceType": "script", - "startedAt": 3872, + "startedAt": 4059, "status": 200, "ok": true, - "finishedAt": 3921, + "finishedAt": 4080, "contentType": "text/javascript", - "resourceTypeHint": "useArticles.js" + "resourceTypeHint": "index.js" }, { "id": "net-180", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/AuthPageContainer/index.js", + "url": "http://127.0.0.1:3000/src/hooks/useArticles.js", "resourceType": "script", - "startedAt": 3872, + "startedAt": 4059, "status": 200, "ok": true, - "finishedAt": 3921, + "finishedAt": 4082, "contentType": "text/javascript", - "resourceTypeHint": "index.js" + "resourceTypeHint": "useArticles.js" }, { "id": "net-181", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/LoginForm/index.js", + "url": "http://127.0.0.1:3000/src/components/AuthPageContainer/index.js", "resourceType": "script", - "startedAt": 3872, + "startedAt": 4059, "status": 200, "ok": true, - "finishedAt": 3921, + "finishedAt": 4081, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, { "id": "net-182", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/AuthorInfo/index.js", + "url": "http://127.0.0.1:3000/src/components/LoginForm/index.js", "resourceType": "script", - "startedAt": 3873, + "startedAt": 4060, "status": 200, "ok": true, - "finishedAt": 3921, + "finishedAt": 4083, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, { "id": "net-183", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/NavItem/index.js", + "url": "http://127.0.0.1:3000/src/components/AuthorInfo/index.js", "resourceType": "script", - "startedAt": 3873, + "startedAt": 4060, "status": 200, "ok": true, - "finishedAt": 3921, + "finishedAt": 4085, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, { "id": "net-184", "method": "GET", - "url": "http://127.0.0.1:3000/node_modules/.vite/deps/chunk-HYJYOVZJ.js?v=96de0870", + "url": "http://127.0.0.1:3000/src/components/NavItem/index.js", "resourceType": "script", - "startedAt": 3874, + "startedAt": 4060, "status": 200, "ok": true, - "finishedAt": 3921, + "finishedAt": 4085, "contentType": "text/javascript", - "resourceTypeHint": "chunk-HYJYOVZJ.js" + "resourceTypeHint": "index.js" }, { "id": "net-185", "method": "GET", "url": "http://127.0.0.1:3000/src/components/SettingsForm/index.js", "resourceType": "script", - "startedAt": 3874, + "startedAt": 4060, "status": 200, "ok": true, - "finishedAt": 3921, + "finishedAt": 4085, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, @@ -4022,142 +3066,142 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/SignUpForm/index.js", "resourceType": "script", - "startedAt": 3874, + "startedAt": 4061, "status": 200, "ok": true, - "finishedAt": 3921, + "finishedAt": 4087, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, { "id": "net-187", "method": "GET", - "url": "http://127.0.0.1:3000/node_modules/.vite/deps/axios.js?v=96de0870", + "url": "http://127.0.0.1:3000/src/components/Footer/Footer.jsx", "resourceType": "script", - "startedAt": 3877, + "startedAt": 4062, "status": 200, "ok": true, - "finishedAt": 3922, + "finishedAt": 4088, "contentType": "text/javascript", - "resourceTypeHint": "axios.js" + "resourceTypeHint": "Footer.jsx" }, { "id": "net-188", "method": "GET", - "url": "http://127.0.0.1:3000/src/helpers/errorHandler.js", + "url": "http://127.0.0.1:3000/src/components/Navbar/Navbar.jsx", "resourceType": "script", - "startedAt": 3877, + "startedAt": 4063, "status": 200, "ok": true, - "finishedAt": 3921, + "finishedAt": 4088, "contentType": "text/javascript", - "resourceTypeHint": "errorHandler.js" + "resourceTypeHint": "Navbar.jsx" }, { "id": "net-189", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/Footer/Footer.jsx", + "url": "http://127.0.0.1:3000/node_modules/.vite/deps/axios.js?v=96de0870", "resourceType": "script", - "startedAt": 3878, + "startedAt": 4063, "status": 200, "ok": true, - "finishedAt": 3922, + "finishedAt": 4090, "contentType": "text/javascript", - "resourceTypeHint": "Footer.jsx" + "resourceTypeHint": "axios.js" }, { "id": "net-190", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/Navbar/Navbar.jsx", + "url": "http://127.0.0.1:3000/src/helpers/errorHandler.js", "resourceType": "script", - "startedAt": 3925, + "startedAt": 4063, "status": 200, "ok": true, - "finishedAt": 3939, + "finishedAt": 4088, "contentType": "text/javascript", - "resourceTypeHint": "Navbar.jsx" + "resourceTypeHint": "errorHandler.js" }, { "id": "net-191", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/CommentEditor/CommentEditor.jsx", + "url": "http://127.0.0.1:3000/src/components/ArticleMeta/ArticleMeta.jsx", "resourceType": "script", - "startedAt": 3926, + "startedAt": 4075, "status": 200, "ok": true, - "finishedAt": 3940, + "finishedAt": 4090, "contentType": "text/javascript", - "resourceTypeHint": "CommentEditor.jsx" + "resourceTypeHint": "ArticleMeta.jsx" }, { "id": "net-192", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/CommentList/CommentList.jsx", + "url": "http://127.0.0.1:3000/src/components/ArticlesButtons/ArticlesButtons.jsx", "resourceType": "script", - "startedAt": 3926, + "startedAt": 4076, "status": 200, "ok": true, - "finishedAt": 3940, + "finishedAt": 4092, "contentType": "text/javascript", - "resourceTypeHint": "CommentList.jsx" + "resourceTypeHint": "ArticlesButtons.jsx" }, { "id": "net-193", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/ArticleMeta/ArticleMeta.jsx", + "url": "http://127.0.0.1:3000/src/components/ArticleTags/ArticleTags.jsx", "resourceType": "script", - "startedAt": 3926, + "startedAt": 4077, "status": 200, "ok": true, - "finishedAt": 3940, + "finishedAt": 4092, "contentType": "text/javascript", - "resourceTypeHint": "ArticleMeta.jsx" + "resourceTypeHint": "ArticleTags.jsx" }, { "id": "net-194", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/ArticlesButtons/ArticlesButtons.jsx", + "url": "http://127.0.0.1:3000/src/components/BannerContainer/BannerContainer.jsx", "resourceType": "script", - "startedAt": 3926, + "startedAt": 4078, "status": 200, "ok": true, - "finishedAt": 3941, + "finishedAt": 4093, "contentType": "text/javascript", - "resourceTypeHint": "ArticlesButtons.jsx" + "resourceTypeHint": "BannerContainer.jsx" }, { "id": "net-195", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/ArticleTags/ArticleTags.jsx", + "url": "http://127.0.0.1:3000/src/components/CommentEditor/CommentEditor.jsx", "resourceType": "script", - "startedAt": 3927, + "startedAt": 4080, "status": 200, "ok": true, - "finishedAt": 3941, + "finishedAt": 4095, "contentType": "text/javascript", - "resourceTypeHint": "ArticleTags.jsx" + "resourceTypeHint": "CommentEditor.jsx" }, { "id": "net-196", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/BannerContainer/BannerContainer.jsx", + "url": "http://127.0.0.1:3000/src/components/CommentList/CommentList.jsx", "resourceType": "script", - "startedAt": 3927, + "startedAt": 4080, "status": 200, "ok": true, - "finishedAt": 3943, + "finishedAt": 4096, "contentType": "text/javascript", - "resourceTypeHint": "BannerContainer.jsx" + "resourceTypeHint": "CommentList.jsx" }, { "id": "net-197", "method": "GET", "url": "http://127.0.0.1:3000/src/components/ArticleEditorForm/ArticleEditorForm.jsx", "resourceType": "script", - "startedAt": 3927, + "startedAt": 4083, "status": 200, "ok": true, - "finishedAt": 3943, + "finishedAt": 4098, "contentType": "text/javascript", "resourceTypeHint": "ArticleEditorForm.jsx" }, @@ -4166,10 +3210,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/ContainerRow/ContainerRow.jsx", "resourceType": "script", - "startedAt": 3927, + "startedAt": 4083, "status": 200, "ok": true, - "finishedAt": 3947, + "finishedAt": 4098, "contentType": "text/javascript", "resourceTypeHint": "ContainerRow.jsx" }, @@ -4178,10 +3222,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/FeedToggler/FeedToggler.jsx", "resourceType": "script", - "startedAt": 3927, + "startedAt": 4083, "status": 200, "ok": true, - "finishedAt": 3947, + "finishedAt": 4098, "contentType": "text/javascript", "resourceTypeHint": "FeedToggler.jsx" }, @@ -4190,10 +3234,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/PopularTags/PopularTags.jsx", "resourceType": "script", - "startedAt": 3928, + "startedAt": 4086, "status": 200, "ok": true, - "finishedAt": 3947, + "finishedAt": 4101, "contentType": "text/javascript", "resourceTypeHint": "PopularTags.jsx" }, @@ -4202,10 +3246,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/ArticlesPagination/ArticlesPagination.jsx", "resourceType": "script", - "startedAt": 3928, + "startedAt": 4086, "status": 200, "ok": true, - "finishedAt": 3947, + "finishedAt": 4102, "contentType": "text/javascript", "resourceTypeHint": "ArticlesPagination.jsx" }, @@ -4214,46 +3258,46 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/ArticlesPreview/ArticlesPreview.jsx", "resourceType": "script", - "startedAt": 3928, + "startedAt": 4086, "status": 200, "ok": true, - "finishedAt": 3951, + "finishedAt": 4102, "contentType": "text/javascript", "resourceTypeHint": "ArticlesPreview.jsx" }, { "id": "net-203", "method": "GET", - "url": "http://127.0.0.1:3000/src/services/getArticles.js", + "url": "http://127.0.0.1:3000/src/components/AuthPageContainer/AuthPageContainer.jsx", "resourceType": "script", - "startedAt": 3928, + "startedAt": 4086, "status": 200, "ok": true, - "finishedAt": 3951, + "finishedAt": 4103, "contentType": "text/javascript", - "resourceTypeHint": "getArticles.js" + "resourceTypeHint": "AuthPageContainer.jsx" }, { "id": "net-204", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/AuthPageContainer/AuthPageContainer.jsx", + "url": "http://127.0.0.1:3000/src/services/getArticles.js", "resourceType": "script", - "startedAt": 3928, + "startedAt": 4087, "status": 200, "ok": true, - "finishedAt": 3952, + "finishedAt": 4104, "contentType": "text/javascript", - "resourceTypeHint": "AuthPageContainer.jsx" + "resourceTypeHint": "getArticles.js" }, { "id": "net-205", "method": "GET", "url": "http://127.0.0.1:3000/src/components/LoginForm/LoginForm.jsx", "resourceType": "script", - "startedAt": 3928, + "startedAt": 4087, "status": 200, "ok": true, - "finishedAt": 3952, + "finishedAt": 4104, "contentType": "text/javascript", "resourceTypeHint": "LoginForm.jsx" }, @@ -4262,10 +3306,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/AuthorInfo/AuthorInfo.jsx", "resourceType": "script", - "startedAt": 3929, + "startedAt": 4088, "status": 200, "ok": true, - "finishedAt": 3952, + "finishedAt": 4104, "contentType": "text/javascript", "resourceTypeHint": "AuthorInfo.jsx" }, @@ -4274,10 +3318,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/NavItem/NavItem.jsx", "resourceType": "script", - "startedAt": 3929, + "startedAt": 4090, "status": 200, "ok": true, - "finishedAt": 3953, + "finishedAt": 4106, "contentType": "text/javascript", "resourceTypeHint": "NavItem.jsx" }, @@ -4286,10 +3330,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/SettingsForm/SettingsForm.jsx", "resourceType": "script", - "startedAt": 3929, + "startedAt": 4090, "status": 200, "ok": true, - "finishedAt": 3953, + "finishedAt": 4107, "contentType": "text/javascript", "resourceTypeHint": "SettingsForm.jsx" }, @@ -4298,10 +3342,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/SignUpForm/SignUpForm.jsx", "resourceType": "script", - "startedAt": 3929, + "startedAt": 4090, "status": 200, "ok": true, - "finishedAt": 3953, + "finishedAt": 4106, "contentType": "text/javascript", "resourceTypeHint": "SignUpForm.jsx" }, @@ -4310,10 +3354,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/SourceCodeLink/index.js", "resourceType": "script", - "startedAt": 3929, + "startedAt": 4091, "status": 200, "ok": true, - "finishedAt": 3953, + "finishedAt": 4108, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, @@ -4322,10 +3366,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/Navbar/DropdownMenu.jsx", "resourceType": "script", - "startedAt": 3942, + "startedAt": 4091, "status": 200, "ok": true, - "finishedAt": 3956, + "finishedAt": 4107, "contentType": "text/javascript", "resourceTypeHint": "DropdownMenu.jsx" }, @@ -4334,58 +3378,58 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/helpers/dateFormatter.js", "resourceType": "script", - "startedAt": 3944, + "startedAt": 4091, "status": 200, "ok": true, - "finishedAt": 3958, + "finishedAt": 4108, "contentType": "text/javascript", "resourceTypeHint": "dateFormatter.js" }, { "id": "net-213", "method": "GET", - "url": "http://127.0.0.1:3000/src/services/deleteComment.js", + "url": "http://127.0.0.1:3000/src/components/Avatar/index.js", "resourceType": "script", - "startedAt": 3944, + "startedAt": 4092, "status": 200, "ok": true, - "finishedAt": 3959, + "finishedAt": 4110, "contentType": "text/javascript", - "resourceTypeHint": "deleteComment.js" + "resourceTypeHint": "index.js" }, { "id": "net-214", "method": "GET", - "url": "http://127.0.0.1:3000/src/services/getComments.js", + "url": "http://127.0.0.1:3000/src/components/ArticleAuthorButtons/index.js", "resourceType": "script", - "startedAt": 3944, + "startedAt": 4092, "status": 200, "ok": true, - "finishedAt": 3959, + "finishedAt": 4113, "contentType": "text/javascript", - "resourceTypeHint": "getComments.js" + "resourceTypeHint": "index.js" }, { "id": "net-215", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/CommentList/CommentAuthor.jsx", + "url": "http://127.0.0.1:3000/src/components/FavButton/index.js", "resourceType": "script", - "startedAt": 3945, + "startedAt": 4093, "status": 200, "ok": true, - "finishedAt": 3960, + "finishedAt": 4113, "contentType": "text/javascript", - "resourceTypeHint": "CommentAuthor.jsx" + "resourceTypeHint": "index.js" }, { "id": "net-216", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/Avatar/index.js", + "url": "http://127.0.0.1:3000/src/components/FollowButton/index.js", "resourceType": "script", - "startedAt": 3947, + "startedAt": 4093, "status": 200, "ok": true, - "finishedAt": 3960, + "finishedAt": 4113, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, @@ -4394,58 +3438,58 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/services/postComment.js", "resourceType": "script", - "startedAt": 3947, + "startedAt": 4095, "status": 200, "ok": true, - "finishedAt": 3960, + "finishedAt": 4113, "contentType": "text/javascript", "resourceTypeHint": "postComment.js" }, { "id": "net-218", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/ArticleAuthorButtons/index.js", + "url": "http://127.0.0.1:3000/src/services/deleteComment.js", "resourceType": "script", - "startedAt": 3950, + "startedAt": 4096, "status": 200, "ok": true, - "finishedAt": 3964, + "finishedAt": 4113, "contentType": "text/javascript", - "resourceTypeHint": "index.js" + "resourceTypeHint": "deleteComment.js" }, { "id": "net-219", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/FavButton/index.js", + "url": "http://127.0.0.1:3000/src/services/getComments.js", "resourceType": "script", - "startedAt": 3950, + "startedAt": 4096, "status": 200, "ok": true, - "finishedAt": 3964, + "finishedAt": 4115, "contentType": "text/javascript", - "resourceTypeHint": "index.js" + "resourceTypeHint": "getComments.js" }, { "id": "net-220", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/FollowButton/index.js", + "url": "http://127.0.0.1:3000/src/components/CommentList/CommentAuthor.jsx", "resourceType": "script", - "startedAt": 3950, + "startedAt": 4096, "status": 200, "ok": true, - "finishedAt": 3965, + "finishedAt": 4115, "contentType": "text/javascript", - "resourceTypeHint": "index.js" + "resourceTypeHint": "CommentAuthor.jsx" }, { "id": "net-221", "method": "GET", "url": "http://127.0.0.1:3000/src/services/setArticle.js", "resourceType": "script", - "startedAt": 3951, + "startedAt": 4098, "status": 200, "ok": true, - "finishedAt": 3965, + "finishedAt": 4115, "contentType": "text/javascript", "resourceTypeHint": "setArticle.js" }, @@ -4454,10 +3498,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/FormFieldset/index.js", "resourceType": "script", - "startedAt": 3951, + "startedAt": 4098, "status": 200, "ok": true, - "finishedAt": 3965, + "finishedAt": 4116, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, @@ -4466,10 +3510,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/FeedToggler/FeedNavLink.jsx", "resourceType": "script", - "startedAt": 3951, + "startedAt": 4098, "status": 200, "ok": true, - "finishedAt": 3966, + "finishedAt": 4116, "contentType": "text/javascript", "resourceTypeHint": "FeedNavLink.jsx" }, @@ -4478,10 +3522,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/services/getTags.js", "resourceType": "script", - "startedAt": 3951, + "startedAt": 4102, "status": 200, "ok": true, - "finishedAt": 3967, + "finishedAt": 4116, "contentType": "text/javascript", "resourceTypeHint": "getTags.js" }, @@ -4490,10 +3534,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/PopularTags/TagButton.jsx", "resourceType": "script", - "startedAt": 3952, + "startedAt": 4105, "status": 200, "ok": true, - "finishedAt": 3967, + "finishedAt": 4116, "contentType": "text/javascript", "resourceTypeHint": "TagButton.jsx" }, @@ -4502,10 +3546,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/node_modules/.vite/deps/react-paginate.js?v=96de0870", "resourceType": "script", - "startedAt": 3952, + "startedAt": 4108, "status": 200, "ok": true, - "finishedAt": 3969, + "finishedAt": 4117, "contentType": "text/javascript", "resourceTypeHint": "react-paginate.js" }, @@ -4514,10 +3558,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/services/userLogin.js", "resourceType": "script", - "startedAt": 3953, + "startedAt": 4108, "status": 200, "ok": true, - "finishedAt": 3969, + "finishedAt": 4118, "contentType": "text/javascript", "resourceTypeHint": "userLogin.js" }, @@ -4526,957 +3570,1886 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/services/getProfile.js", "resourceType": "script", - "startedAt": 3955, + "startedAt": 4109, "status": 200, "ok": true, - "finishedAt": 3970, + "finishedAt": 4118, "contentType": "text/javascript", "resourceTypeHint": "getProfile.js" }, { "id": "net-229", "method": "GET", + "url": "http://127.0.0.1:3000/src/services/userSignUp.js", + "resourceType": "script", + "startedAt": 4111, + "status": 200, + "ok": true, + "finishedAt": 4122, + "contentType": "text/javascript", + "resourceTypeHint": "userSignUp.js" + }, + { + "id": "net-230", + "method": "GET", "url": "http://127.0.0.1:3000/src/services/userUpdate.js", "resourceType": "script", - "startedAt": 3956, + "startedAt": 4111, "status": 200, "ok": true, - "finishedAt": 3969, + "finishedAt": 4123, "contentType": "text/javascript", "resourceTypeHint": "userUpdate.js" }, { - "id": "net-230", + "id": "net-231", + "method": "GET", + "url": "http://127.0.0.1:3000/src/services/userLogout.js", + "resourceType": "script", + "startedAt": 4112, + "status": 200, + "ok": true, + "finishedAt": 4123, + "contentType": "text/javascript", + "resourceTypeHint": "userLogout.js" + }, + { + "id": "net-232", + "method": "GET", + "url": "http://127.0.0.1:3000/src/components/Navbar/DropdownItem.jsx", + "resourceType": "script", + "startedAt": 4112, + "status": 200, + "ok": true, + "finishedAt": 4124, + "contentType": "text/javascript", + "resourceTypeHint": "DropdownItem.jsx" + }, + { + "id": "net-233", + "method": "GET", + "url": "http://127.0.0.1:3000/src/components/SourceCodeLink/SourceCodeLink.jsx", + "resourceType": "script", + "startedAt": 4112, + "status": 200, + "ok": true, + "finishedAt": 4125, + "contentType": "text/javascript", + "resourceTypeHint": "SourceCodeLink.jsx" + }, + { + "id": "net-234", + "method": "GET", + "url": "http://127.0.0.1:3000/src/components/Avatar/Avatar.jsx", + "resourceType": "script", + "startedAt": 4113, + "status": 200, + "ok": true, + "finishedAt": 4125, + "contentType": "text/javascript", + "resourceTypeHint": "Avatar.jsx" + }, + { + "id": "net-235", + "method": "GET", + "url": "http://127.0.0.1:3000/src/components/ArticleAuthorButtons/ArticleAuthorButtons.jsx", + "resourceType": "script", + "startedAt": 4115, + "status": 200, + "ok": true, + "finishedAt": 4125, + "contentType": "text/javascript", + "resourceTypeHint": "ArticleAuthorButtons.jsx" + }, + { + "id": "net-236", + "method": "GET", + "url": "http://127.0.0.1:3000/src/components/FavButton/FavButton.jsx", + "resourceType": "script", + "startedAt": 4115, + "status": 200, + "ok": true, + "finishedAt": 4125, + "contentType": "text/javascript", + "resourceTypeHint": "FavButton.jsx" + }, + { + "id": "net-237", + "method": "GET", + "url": "http://127.0.0.1:3000/src/components/FollowButton/FollowButton.jsx", + "resourceType": "script", + "startedAt": 4116, + "status": 200, + "ok": true, + "finishedAt": 4125, + "contentType": "text/javascript", + "resourceTypeHint": "FollowButton.jsx" + }, + { + "id": "net-238", + "method": "GET", + "url": "http://127.0.0.1:3000/src/components/FormFieldset/FormFieldset.jsx", + "resourceType": "script", + "startedAt": 4116, + "status": 200, + "ok": true, + "finishedAt": 4126, + "contentType": "text/javascript", + "resourceTypeHint": "FormFieldset.jsx" + }, + { + "id": "net-239", + "method": "GET", + "url": "http://127.0.0.1:3000/src/assets/smiley-cyrus.jpeg?import", + "resourceType": "script", + "startedAt": 4125, + "status": 200, + "ok": true, + "finishedAt": 4129, + "contentType": "text/javascript", + "resourceTypeHint": "smiley-cyrus.jpeg" + }, + { + "id": "net-240", + "method": "GET", + "url": "http://127.0.0.1:3000/src/services/deleteArticle.js", + "resourceType": "script", + "startedAt": 4126, + "status": 200, + "ok": true, + "contentType": "text/javascript", + "resourceTypeHint": "deleteArticle.js", + "finishedAt": 4133 + }, + { + "id": "net-241", + "method": "GET", + "url": "http://127.0.0.1:3000/src/services/toggleFollow.js", + "resourceType": "script", + "startedAt": 4126, + "status": 200, + "ok": true, + "finishedAt": 4133, + "contentType": "text/javascript", + "resourceTypeHint": "toggleFollow.js" + }, + { + "id": "net-242", + "method": "GET", + "url": "http://127.0.0.1:3000/src/services/toggleFav.js", + "resourceType": "script", + "startedAt": 4126, + "status": 200, + "ok": true, + "finishedAt": 4133, + "contentType": "text/javascript", + "resourceTypeHint": "toggleFav.js" + }, + { + "id": "net-243", + "method": "GET", + "url": "http://127.0.0.1:3000/src/assets/smiley-cyrus.jpeg", + "resourceType": "image", + "startedAt": 4143, + "status": 200, + "ok": true, + "finishedAt": 4150, + "contentType": "image/jpeg", + "resourceTypeHint": "smiley-cyrus.jpeg" + }, + { + "id": "net-244", + "method": "GET", + "url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdu.woff2", + "resourceType": "font", + "startedAt": 4145, + "status": 200, + "ok": true, + "finishedAt": 4191, + "contentType": "font/woff2", + "resourceTypeHint": "6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdu.woff2" + }, + { + "id": "net-245", + "method": "GET", + "url": "https://code.ionicframework.com/ionicons/2.0.1/fonts/ionicons.ttf?v=2.0.1", + "resourceType": "font", + "startedAt": 4145, + "status": 200, + "ok": true, + "finishedAt": 4249, + "contentType": "font/ttf", + "resourceTypeHint": "ionicons.ttf" + }, + { + "id": "net-246", "method": "GET", - "url": "http://127.0.0.1:3000/src/services/userSignUp.js", - "resourceType": "script", - "startedAt": 3956, + "url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7l.woff2", + "resourceType": "font", + "startedAt": 4146, "status": 200, "ok": true, - "finishedAt": 3971, - "contentType": "text/javascript", - "resourceTypeHint": "userSignUp.js" + "finishedAt": 4199, + "contentType": "font/woff2", + "resourceTypeHint": "6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7l.woff2" }, { - "id": "net-231", + "id": "net-247", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/SourceCodeLink/SourceCodeLink.jsx", - "resourceType": "script", - "startedAt": 3956, + "url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7nsDI.woff2", + "resourceType": "font", + "startedAt": 4146, "status": 200, "ok": true, - "finishedAt": 3971, - "contentType": "text/javascript", - "resourceTypeHint": "SourceCodeLink.jsx" + "finishedAt": 4190, + "contentType": "font/woff2", + "resourceTypeHint": "6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7nsDI.woff2" }, { - "id": "net-232", + "id": "net-248", "method": "GET", - "url": "http://127.0.0.1:3000/src/services/userLogout.js", - "resourceType": "script", - "startedAt": 3956, + "url": "http://127.0.0.1:3000/api/articles/feed?limit=3&&offset=0", + "resourceType": "xhr", + "startedAt": 4148, "status": 200, "ok": true, - "finishedAt": 3971, - "contentType": "text/javascript", - "resourceTypeHint": "userLogout.js" + "contentType": "application/json", + "resourceTypeHint": "feed", + "finishedAt": 4159 }, { - "id": "net-233", + "id": "net-249", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/Navbar/DropdownItem.jsx", - "resourceType": "script", - "startedAt": 3957, + "url": "http://127.0.0.1:3000/api/tags", + "resourceType": "xhr", + "startedAt": 4148, "status": 200, "ok": true, - "finishedAt": 3971, - "contentType": "text/javascript", - "resourceTypeHint": "DropdownItem.jsx" + "contentType": "application/json", + "resourceTypeHint": "tags", + "finishedAt": 4158 }, { - "id": "net-234", + "id": "net-250", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/Avatar/Avatar.jsx", - "resourceType": "script", - "startedAt": 3960, + "url": "http://127.0.0.1:3000/api/user", + "resourceType": "xhr", + "startedAt": 4149, "status": 200, "ok": true, - "finishedAt": 3971, - "contentType": "text/javascript", - "resourceTypeHint": "Avatar.jsx" + "finishedAt": 4159, + "contentType": "application/json", + "resourceTypeHint": "user" }, { - "id": "net-235", + "id": "net-251", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/ArticleAuthorButtons/ArticleAuthorButtons.jsx", - "resourceType": "script", - "startedAt": 3967, + "url": "http://127.0.0.1:3000/api/articles/feed?limit=3&&offset=0", + "resourceType": "xhr", + "startedAt": 4149, "status": 200, "ok": true, - "finishedAt": 3973, - "contentType": "text/javascript", - "resourceTypeHint": "ArticleAuthorButtons.jsx" + "finishedAt": 4162, + "contentType": "application/json", + "resourceTypeHint": "feed" }, { - "id": "net-236", + "id": "net-252", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/FavButton/FavButton.jsx", - "resourceType": "script", - "startedAt": 3969, + "url": "http://127.0.0.1:3000/api/tags", + "resourceType": "xhr", + "startedAt": 4150, "status": 200, "ok": true, - "finishedAt": 3975, - "contentType": "text/javascript", - "resourceTypeHint": "FavButton.jsx" + "finishedAt": 4160, + "contentType": "application/json", + "resourceTypeHint": "tags" }, { - "id": "net-237", + "id": "net-253", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/FollowButton/FollowButton.jsx", - "resourceType": "script", - "startedAt": 3969, + "url": "http://127.0.0.1:3000/api/user", + "resourceType": "xhr", + "startedAt": 4150, "status": 200, "ok": true, - "finishedAt": 3976, - "contentType": "text/javascript", - "resourceTypeHint": "FollowButton.jsx" + "finishedAt": 4159, + "contentType": "application/json", + "resourceTypeHint": "user" + } + ], + "console": [], + "pageErrors": [], + "uiClaims": [], + "filledFields": [], + "dialogs": [ + "confirm: Want to delete the article?" + ], + "downloads": [], + "downloadEvidence": [], + "uploads": [], + "popupUrls": [], + "locatorResolution": { + "attempts": [ + { + "strategy": "role", + "weight": 92, + "matchCount": 0, + "visibleCount": 0, + "elapsedMs": 2 + }, + { + "strategy": "role", + "weight": 82, + "matchCount": 2, + "visibleCount": 2, + "elapsedMs": 4 + }, + { + "strategy": "text", + "weight": 60, + "matchCount": 2, + "visibleCount": 2, + "elapsedMs": 3 + }, + { + "strategy": "css", + "weight": 35, + "matchCount": 1, + "visibleCount": 1, + "elapsedMs": 3 + } + ], + "chosenStrategy": "css", + "chosenWeight": 35, + "retryCount": 0 + }, + "before": { + "at": 1542, + "url": "http://127.0.0.1:3000/#/article/rd-test-612495-1", + "title": "Conduit", + "domHash": "055aada6581c1e1b", + "canaryPresent": false, + "bodyCanaryPresent": false, + "temporaryBlobUrls": 0, + "auth": { + "artifacts": 0, + "expiredArtifacts": 0, + "privateContent": false, + "adminContent": false, + "accessDenied": false + }, + "semanticDom": { + "textHash": "02ca7f6b6550bdfa", + "visualHash": "471347ba69eaf940", + "text": "conduit Source code Home New Article rdq1785054823102 RD_TEST_612495_1 rdq1785054823102 July 26, 2026 Delete Article Edit Article RD_TEST_612495_3 RD_TEST_F95995_4 rdq1785054823102 July 26, 2026 Delete Article Edit Article Post Comment There are no comments yet... conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", + "controls": [ + { + "tag": "button", + "type": "submit", + "valueHash": "e3b0c44298fc1c14", + "disabled": false, + "visible": true + }, + { + "tag": "button", + "type": "submit", + "valueHash": "e3b0c44298fc1c14", + "disabled": false, + "visible": true + }, + { + "tag": "button", + "type": "submit", + "valueHash": "e3b0c44298fc1c14", + "disabled": false, + "visible": true + }, + { + "tag": "button", + "type": "submit", + "valueHash": "e3b0c44298fc1c14", + "disabled": false, + "visible": true + }, + { + "tag": "textarea", + "type": "textarea", + "valueHash": "e3b0c44298fc1c14", + "disabled": false, + "visible": true + }, + { + "tag": "button", + "type": "submit", + "valueHash": "e3b0c44298fc1c14", + "disabled": false, + "visible": true + } + ] + }, + "busyControls": 0, + "disabledControls": 0, + "storage": { + "local": [ + { + "key": "loggedUser", + "valueHash": "5530bc1e89316fe8", + "containsCanary": false + } + ], + "session": [], + "cookieNames": [], + "cookies": [], + "indexedDb": [] + }, + "sourceSnapshots": [ + { + "adapter": "postgresql", + "resource": "articles", + "schemaHash": "d718b75b5f43908b", + "rows": [ + { + "keyHash": "186347d9ea7673a2", + "rowHash": "dd289eee40f7c4c1", + "softDeleted": false + } + ], + "truncated": false + }, + { + "adapter": "postgresql", + "resource": "users", + "schemaHash": "4dc457684d4d0982", + "rows": [ + { + "keyHash": "186347d9ea7673a2", + "rowHash": "b722d6313737881a", + "softDeleted": false + }, + { + "keyHash": "da7114755c3b82ba", + "rowHash": "8fc053865923194c", + "softDeleted": false + } + ], + "truncated": false + } + ] + }, + "beforeAction": { + "at": 1554, + "url": "http://127.0.0.1:3000/#/article/rd-test-612495-1", + "title": "Conduit", + "domHash": "055aada6581c1e1b", + "canaryPresent": false, + "bodyCanaryPresent": false, + "temporaryBlobUrls": 0, + "auth": { + "artifacts": 0, + "expiredArtifacts": 0, + "privateContent": false, + "adminContent": false, + "accessDenied": false + }, + "semanticDom": { + "textHash": "02ca7f6b6550bdfa", + "visualHash": "471347ba69eaf940", + "text": "conduit Source code Home New Article rdq1785054823102 RD_TEST_612495_1 rdq1785054823102 July 26, 2026 Delete Article Edit Article RD_TEST_612495_3 RD_TEST_F95995_4 rdq1785054823102 July 26, 2026 Delete Article Edit Article Post Comment There are no comments yet... conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", + "controls": [ + { + "tag": "button", + "type": "submit", + "valueHash": "e3b0c44298fc1c14", + "disabled": false, + "visible": true + }, + { + "tag": "button", + "type": "submit", + "valueHash": "e3b0c44298fc1c14", + "disabled": false, + "visible": true + }, + { + "tag": "button", + "type": "submit", + "valueHash": "e3b0c44298fc1c14", + "disabled": false, + "visible": true + }, + { + "tag": "button", + "type": "submit", + "valueHash": "e3b0c44298fc1c14", + "disabled": false, + "visible": true + }, + { + "tag": "textarea", + "type": "textarea", + "valueHash": "e3b0c44298fc1c14", + "disabled": false, + "visible": true + }, + { + "tag": "button", + "type": "submit", + "valueHash": "e3b0c44298fc1c14", + "disabled": false, + "visible": true + } + ] }, - { - "id": "net-238", - "method": "GET", - "url": "http://127.0.0.1:3000/src/components/FormFieldset/FormFieldset.jsx", - "resourceType": "script", - "startedAt": 3969, - "status": 200, - "ok": true, - "finishedAt": 3976, - "contentType": "text/javascript", - "resourceTypeHint": "FormFieldset.jsx" + "busyControls": 0, + "disabledControls": 0, + "storage": { + "local": [ + { + "key": "loggedUser", + "valueHash": "5530bc1e89316fe8", + "containsCanary": false + } + ], + "session": [], + "cookieNames": [], + "cookies": [], + "indexedDb": [] + } + }, + "targetDisabledAfter": false, + "networkSettled": true, + "after": { + "at": 2797, + "url": "http://127.0.0.1:3000/#/", + "title": "Conduit", + "domHash": "f12a3cec7e00e6bc", + "canaryPresent": false, + "bodyCanaryPresent": false, + "temporaryBlobUrls": 0, + "auth": { + "artifacts": 0, + "expiredArtifacts": 0, + "privateContent": false, + "adminContent": false, + "accessDenied": false }, - { - "id": "net-239", - "method": "GET", - "url": "http://127.0.0.1:3000/src/assets/smiley-cyrus.jpeg?import", - "resourceType": "script", - "startedAt": 3972, - "status": 200, - "ok": true, - "finishedAt": 3977, - "contentType": "text/javascript", - "resourceTypeHint": "smiley-cyrus.jpeg" + "semanticDom": { + "textHash": "97e2b175e91d32b0", + "visualHash": "72ad38eb67085423", + "text": "conduit Source code Home New Article rdq1785054823102 Your Feed Global Feed Articles not available. Popular Tags RD_TEST_F95995_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", + "controls": [ + { + "tag": "button", + "type": "submit", + "valueHash": "e3b0c44298fc1c14", + "disabled": false, + "visible": true + }, + { + "tag": "button", + "type": "submit", + "valueHash": "e3b0c44298fc1c14", + "disabled": false, + "visible": true + }, + { + "tag": "button", + "type": "submit", + "valueHash": "e3b0c44298fc1c14", + "disabled": false, + "visible": true + } + ] }, - { - "id": "net-240", - "method": "GET", - "url": "http://127.0.0.1:3000/src/services/deleteArticle.js", - "resourceType": "script", - "startedAt": 3974, - "status": 200, - "ok": true, - "finishedAt": 3977, - "contentType": "text/javascript", - "resourceTypeHint": "deleteArticle.js" + "busyControls": 0, + "disabledControls": 0, + "storage": { + "local": [ + { + "key": "loggedUser", + "valueHash": "5530bc1e89316fe8", + "containsCanary": false + } + ], + "session": [], + "cookieNames": [], + "cookies": [], + "indexedDb": [] }, + "sourceSnapshots": [ + { + "adapter": "postgresql", + "resource": "articles", + "schemaHash": "d718b75b5f43908b", + "rows": [], + "truncated": false + }, + { + "adapter": "postgresql", + "resource": "users", + "schemaHash": "4dc457684d4d0982", + "rows": [ + { + "keyHash": "186347d9ea7673a2", + "rowHash": "b722d6313737881a", + "softDeleted": false + }, + { + "keyHash": "da7114755c3b82ba", + "rowHash": "8fc053865923194c", + "softDeleted": false + } + ], + "truncated": false + } + ] + }, + "screenshot": "screenshots/b19cc47f4064-after.png", + "webSockets": [ { - "id": "net-241", - "method": "GET", - "url": "http://127.0.0.1:3000/src/services/toggleFav.js", - "resourceType": "script", - "startedAt": 3975, - "status": 200, - "ok": true, - "finishedAt": 3979, - "contentType": "text/javascript", - "resourceTypeHint": "toggleFav.js" + "url": "ws://127.0.0.1:3000/?token=%5BREDACTED%5D", + "openedAt": 3137, + "sentFrames": 0, + "receivedFrames": 1, + "errors": [], + "closedAt": 4007 }, { - "id": "net-242", - "method": "GET", - "url": "http://127.0.0.1:3000/src/services/toggleFollow.js", - "resourceType": "script", - "startedAt": 3977, - "status": 200, - "ok": true, - "finishedAt": 3980, - "contentType": "text/javascript", - "resourceTypeHint": "toggleFollow.js" + "url": "ws://127.0.0.1:3000/?token=%5BREDACTED%5D", + "openedAt": 4100, + "sentFrames": 0, + "receivedFrames": 1, + "errors": [] + } + ], + "afterRefresh": { + "at": 3972, + "url": "http://127.0.0.1:3000/#/", + "title": "Conduit", + "domHash": "f12a3cec7e00e6bc", + "canaryPresent": false, + "bodyCanaryPresent": false, + "temporaryBlobUrls": 0, + "auth": { + "artifacts": 0, + "expiredArtifacts": 0, + "privateContent": false, + "adminContent": false, + "accessDenied": false }, - { - "id": "net-243", - "method": "GET", - "url": "http://127.0.0.1:3000/src/assets/smiley-cyrus.jpeg", - "resourceType": "image", - "startedAt": 3992, - "status": 200, - "ok": true, - "finishedAt": 3997, - "contentType": "image/jpeg", - "resourceTypeHint": "smiley-cyrus.jpeg" + "semanticDom": { + "textHash": "97e2b175e91d32b0", + "visualHash": "72ad38eb67085423", + "text": "conduit Source code Home New Article rdq1785054823102 Your Feed Global Feed Articles not available. Popular Tags RD_TEST_F95995_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", + "controls": [ + { + "tag": "button", + "type": "submit", + "valueHash": "e3b0c44298fc1c14", + "disabled": false, + "visible": true + }, + { + "tag": "button", + "type": "submit", + "valueHash": "e3b0c44298fc1c14", + "disabled": false, + "visible": true + }, + { + "tag": "button", + "type": "submit", + "valueHash": "e3b0c44298fc1c14", + "disabled": false, + "visible": true + } + ] }, - { - "id": "net-244", - "method": "GET", - "url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdu.woff2", - "resourceType": "font", - "startedAt": 3993, - "status": 200, - "ok": true, - "finishedAt": 4044, - "contentType": "font/woff2", - "resourceTypeHint": "6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdu.woff2" + "busyControls": 0, + "disabledControls": 0, + "storage": { + "local": [ + { + "key": "loggedUser", + "valueHash": "5530bc1e89316fe8", + "containsCanary": false + } + ], + "session": [], + "cookieNames": [], + "cookies": [], + "indexedDb": [] + } + }, + "refreshScreenshot": "screenshots/b19cc47f4064-refresh.png", + "afterHardRefresh": { + "at": 4961, + "url": "http://127.0.0.1:3000/#/", + "title": "Conduit", + "domHash": "f12a3cec7e00e6bc", + "canaryPresent": false, + "bodyCanaryPresent": false, + "temporaryBlobUrls": 0, + "auth": { + "artifacts": 0, + "expiredArtifacts": 0, + "privateContent": false, + "adminContent": false, + "accessDenied": false }, - { - "id": "net-245", - "method": "GET", - "url": "https://code.ionicframework.com/ionicons/2.0.1/fonts/ionicons.ttf?v=2.0.1", - "resourceType": "font", - "startedAt": 3994, - "status": 200, - "ok": true, - "finishedAt": 4087, - "contentType": "font/ttf", - "resourceTypeHint": "ionicons.ttf" + "semanticDom": { + "textHash": "97e2b175e91d32b0", + "visualHash": "72ad38eb67085423", + "text": "conduit Source code Home New Article rdq1785054823102 Your Feed Global Feed Articles not available. Popular Tags RD_TEST_F95995_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", + "controls": [ + { + "tag": "button", + "type": "submit", + "valueHash": "e3b0c44298fc1c14", + "disabled": false, + "visible": true + }, + { + "tag": "button", + "type": "submit", + "valueHash": "e3b0c44298fc1c14", + "disabled": false, + "visible": true + }, + { + "tag": "button", + "type": "submit", + "valueHash": "e3b0c44298fc1c14", + "disabled": false, + "visible": true + } + ] }, - { - "id": "net-246", - "method": "GET", - "url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7l.woff2", - "resourceType": "font", - "startedAt": 3995, - "status": 200, - "ok": true, - "finishedAt": 4041, - "contentType": "font/woff2", - "resourceTypeHint": "6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7l.woff2" + "busyControls": 0, + "disabledControls": 0, + "storage": { + "local": [ + { + "key": "loggedUser", + "valueHash": "5530bc1e89316fe8", + "containsCanary": false + } + ], + "session": [], + "cookieNames": [], + "cookies": [], + "indexedDb": [] + } + }, + "afterNewTab": { + "at": 6007, + "url": "http://127.0.0.1:3000/#/not-found", + "title": "Conduit", + "domHash": "cbdcb0acc42ff88a", + "canaryPresent": false, + "bodyCanaryPresent": false, + "temporaryBlobUrls": 0, + "auth": { + "artifacts": 0, + "expiredArtifacts": 0, + "privateContent": false, + "adminContent": false, + "accessDenied": false }, - { - "id": "net-247", - "method": "GET", - "url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7nsDI.woff2", - "resourceType": "font", - "startedAt": 3995, - "status": 200, - "ok": true, - "finishedAt": 4043, - "contentType": "font/woff2", - "resourceTypeHint": "6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7nsDI.woff2" + "semanticDom": { + "textHash": "9df20484a6ae7987", + "visualHash": "e61dcd76e2bbdd7c", + "text": "404 Not Found Go to home page", + "controls": [] }, - { - "id": "net-248", - "method": "GET", - "url": "http://127.0.0.1:3000/api/articles/feed?limit=3&&offset=0", - "resourceType": "xhr", - "startedAt": 3998, - "status": 200, - "ok": true, - "finishedAt": 4015, - "contentType": "application/json", - "resourceTypeHint": "feed" + "busyControls": 0, + "disabledControls": 0, + "storage": { + "local": [ + { + "key": "loggedUser", + "valueHash": "5530bc1e89316fe8", + "containsCanary": false + } + ], + "session": [], + "cookieNames": [], + "cookies": [], + "indexedDb": [] + } + }, + "afterNewContext": { + "at": 7364, + "url": "http://127.0.0.1:3000/#/", + "title": "Conduit", + "domHash": "f12a3cec7e00e6bc", + "canaryPresent": false, + "bodyCanaryPresent": false, + "temporaryBlobUrls": 0, + "auth": { + "artifacts": 0, + "expiredArtifacts": 0, + "privateContent": false, + "adminContent": false, + "accessDenied": false }, - { - "id": "net-249", - "method": "GET", - "url": "http://127.0.0.1:3000/api/tags", - "resourceType": "xhr", - "startedAt": 3999, - "status": 200, - "ok": true, - "contentType": "application/json", - "resourceTypeHint": "tags", - "finishedAt": 4011 + "semanticDom": { + "textHash": "97e2b175e91d32b0", + "visualHash": "72ad38eb67085423", + "text": "conduit Source code Home New Article rdq1785054823102 Your Feed Global Feed Articles not available. Popular Tags RD_TEST_F95995_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", + "controls": [ + { + "tag": "button", + "type": "submit", + "valueHash": "e3b0c44298fc1c14", + "disabled": false, + "visible": true + }, + { + "tag": "button", + "type": "submit", + "valueHash": "e3b0c44298fc1c14", + "disabled": false, + "visible": true + }, + { + "tag": "button", + "type": "submit", + "valueHash": "e3b0c44298fc1c14", + "disabled": false, + "visible": true + } + ] }, + "busyControls": 0, + "disabledControls": 0, + "storage": { + "local": [ + { + "key": "loggedUser", + "valueHash": "5530bc1e89316fe8", + "containsCanary": false + } + ], + "session": [], + "cookieNames": [], + "cookies": [], + "indexedDb": [] + } + }, + "sourceDiffs": [ { - "id": "net-250", - "method": "GET", - "url": "http://127.0.0.1:3000/api/user", - "resourceType": "xhr", - "startedAt": 4000, - "status": 200, - "ok": true, - "contentType": "application/json", - "resourceTypeHint": "user", - "finishedAt": 4012 + "adapter": "postgresql", + "resource": "articles", + "added": [], + "removed": [ + "186347d9ea7673a2" + ], + "changed": [], + "softDeleted": [], + "truncated": false }, { - "id": "net-251", - "method": "GET", - "url": "http://127.0.0.1:3000/api/articles/feed?limit=3&&offset=0", - "resourceType": "xhr", - "startedAt": 4000, - "status": 200, - "ok": true, - "finishedAt": 4015, - "contentType": "application/json", - "resourceTypeHint": "feed" - }, + "adapter": "postgresql", + "resource": "users", + "added": [], + "removed": [], + "changed": [], + "softDeleted": [], + "truncated": false + } + ], + "sourceSnapshotErrors": [], + "persistenceScope": "SOURCE_OF_TRUTH_CONFIRMED", + "snapshotIndex": "snapshots/RD-001.index.json" + }, + "verdict": "VERIFIED", + "evidenceLevel": 6, + "reason": "The configured source of truth independently confirmed a persisted change during the action.", + "detectorMatches": [] + }, + { + "id": "RD-002", + "action": { + "id": "ecd3be0d2ec5", + "pageUrl": "http://127.0.0.1:3000/#/article/rd-test-612495-1", + "label": "Delete Article", + "activation": "click", + "kind": "mutation", + "intent": "delete", + "risk": "destructive", + "fingerprint": { + "selector": "body > div > main > div > div:nth-of-type(2) > div:nth-of-type(2) > div > button:nth-of-type(1)", + "tag": "button", + "ordinal": 10, + "role": "button", + "accessibleName": "Delete Article", + "text": "Delete Article", + "type": "submit", + "candidates": [ + { + "strategy": "role", + "weight": 92, + "role": "button", + "name": "Delete Article", + "exact": true + }, + { + "strategy": "role", + "weight": 82, + "role": "button", + "name": "Delete Article", + "exact": false + }, + { + "strategy": "text", + "weight": 60, + "value": "Delete Article", + "exact": true + }, + { + "strategy": "css", + "weight": 35, + "selector": "body > div > main > div > div:nth-of-type(2) > div:nth-of-type(2) > div > button:nth-of-type(1)" + } + ] + }, + "fields": [] + }, + "evidence": { + "startedAt": "2026-07-26T08:36:20.048Z", + "durationMs": 2047, + "canary": "RD_TEST_2B6A15", + "network": [], + "console": [], + "pageErrors": [], + "uiClaims": [], + "filledFields": [], + "dialogs": [], + "downloads": [], + "downloadEvidence": [], + "uploads": [], + "popupUrls": [], + "targetNotFound": true, + "locatorResolution": { + "attempts": [ + { + "strategy": "role", + "weight": 92, + "matchCount": 0, + "visibleCount": 0, + "elapsedMs": 1 + }, + { + "strategy": "role", + "weight": 82, + "matchCount": 0, + "visibleCount": 0, + "elapsedMs": 1 + }, + { + "strategy": "text", + "weight": 60, + "matchCount": 0, + "visibleCount": 0, + "elapsedMs": 1 + }, + { + "strategy": "css", + "weight": 35, + "matchCount": 0, + "visibleCount": 0, + "elapsedMs": 1 + }, + { + "strategy": "role", + "weight": 92, + "matchCount": 0, + "visibleCount": 0, + "elapsedMs": 1 + }, + { + "strategy": "role", + "weight": 82, + "matchCount": 0, + "visibleCount": 0, + "elapsedMs": 1 + }, + { + "strategy": "text", + "weight": 60, + "matchCount": 0, + "visibleCount": 0, + "elapsedMs": 0 + }, + { + "strategy": "css", + "weight": 35, + "matchCount": 0, + "visibleCount": 0, + "elapsedMs": 1 + }, + { + "strategy": "role", + "weight": 92, + "matchCount": 0, + "visibleCount": 0, + "elapsedMs": 2 + }, + { + "strategy": "role", + "weight": 82, + "matchCount": 0, + "visibleCount": 0, + "elapsedMs": 0 + }, + { + "strategy": "text", + "weight": 60, + "matchCount": 0, + "visibleCount": 0, + "elapsedMs": 1 + }, + { + "strategy": "css", + "weight": 35, + "matchCount": 0, + "visibleCount": 0, + "elapsedMs": 1 + } + ], + "retryCount": 2 + }, + "executionError": "No visible element matched the semantic fingerprint. The action was not executed.", + "screenshot": "screenshots/ecd3be0d2ec5-error.png", + "sourceDiffs": [ { - "id": "net-252", - "method": "GET", - "url": "http://127.0.0.1:3000/api/tags", - "resourceType": "xhr", - "startedAt": 4001, - "status": 200, - "ok": true, - "finishedAt": 4012, - "contentType": "application/json", - "resourceTypeHint": "tags" + "adapter": "postgresql", + "resource": "articles", + "added": [], + "removed": [], + "changed": [], + "softDeleted": [], + "truncated": false }, { - "id": "net-253", - "method": "GET", - "url": "http://127.0.0.1:3000/api/user", - "resourceType": "xhr", - "startedAt": 4001, - "status": 200, - "ok": true, - "finishedAt": 4012, - "contentType": "application/json", - "resourceTypeHint": "user" + "adapter": "postgresql", + "resource": "users", + "added": [], + "removed": [], + "changed": [], + "softDeleted": [], + "truncated": false } ], + "sourceSnapshotErrors": [], + "snapshotIndex": "snapshots/RD-002.index.json" + }, + "verdict": "UNCERTAIN", + "evidenceLevel": 0, + "reason": "The discovered semantic target was not present in a fresh execution context, so no substitute element was executed.", + "detectorMatches": [] + }, + { + "id": "RD-003", + "action": { + "id": "b762d9d37e55", + "pageUrl": "http://127.0.0.1:3000/#/article/rd-test-612495-1", + "label": "conduit", + "activation": "click", + "kind": "navigation", + "intent": "navigate", + "risk": "safe", + "fingerprint": { + "selector": "body > div > header > nav > div > a", + "tag": "a", + "ordinal": 0, + "role": "link", + "accessibleName": "conduit", + "text": "conduit", + "href": "http://127.0.0.1:3000/#/", + "candidates": [ + { + "strategy": "role", + "weight": 92, + "role": "link", + "name": "conduit", + "exact": true + }, + { + "strategy": "role", + "weight": 82, + "role": "link", + "name": "conduit", + "exact": false + }, + { + "strategy": "href", + "weight": 72, + "value": "http://127.0.0.1:3000/#/" + }, + { + "strategy": "text", + "weight": 60, + "value": "conduit", + "exact": true + }, + { + "strategy": "css", + "weight": 35, + "selector": "body > div > header > nav > div > a" + } + ] + }, + "fields": [] + }, + "verdict": "SKIPPED", + "evidenceLevel": 0, + "reason": "Disposable CRUD qualification executes only the target delete action.", + "skippedReason": "Disposable CRUD qualification executes only the target delete action.", + "detectorMatches": [], + "evidence": { + "startedAt": "", + "durationMs": 0, + "canary": "", + "network": [], + "console": [], + "pageErrors": [], + "uiClaims": [], + "filledFields": [], + "dialogs": [], + "downloads": [], + "popupUrls": [], + "snapshotIndex": "snapshots/RD-003.index.json" + } + }, + { + "id": "RD-004", + "action": { + "id": "3f10c08e039a", + "pageUrl": "http://127.0.0.1:3000/#/article/rd-test-612495-1", + "label": "Source code", + "activation": "click", + "kind": "navigation", + "intent": "navigate", + "risk": "safe", + "fingerprint": { + "selector": "body > div > header > nav > div > ul:nth-of-type(1) > li > a", + "tag": "a", + "ordinal": 1, + "role": "link", + "accessibleName": "Source code", + "text": "Source code", + "href": "https://github.com/TonyMckes/conduit-realworld-example-app", + "candidates": [ + { + "strategy": "role", + "weight": 92, + "role": "link", + "name": "Source code", + "exact": true + }, + { + "strategy": "role", + "weight": 82, + "role": "link", + "name": "Source code", + "exact": false + }, + { + "strategy": "href", + "weight": 72, + "value": "https://github.com/TonyMckes/conduit-realworld-example-app" + }, + { + "strategy": "text", + "weight": 60, + "value": "Source code", + "exact": true + }, + { + "strategy": "css", + "weight": 35, + "selector": "body > div > header > nav > div > ul:nth-of-type(1) > li > a" + } + ] + }, + "fields": [] + }, + "verdict": "SKIPPED", + "evidenceLevel": 0, + "reason": "Disposable CRUD qualification executes only the target delete action.", + "skippedReason": "Disposable CRUD qualification executes only the target delete action.", + "detectorMatches": [], + "evidence": { + "startedAt": "", + "durationMs": 0, + "canary": "", + "network": [], "console": [], "pageErrors": [], "uiClaims": [], "filledFields": [], - "dialogs": [ - "confirm: Want to delete the article?" - ], + "dialogs": [], "downloads": [], - "downloadEvidence": [], - "uploads": [], "popupUrls": [], - "locatorResolution": { - "attempts": [ + "snapshotIndex": "snapshots/RD-004.index.json" + } + }, + { + "id": "RD-005", + "action": { + "id": "9fa78fb93c48", + "pageUrl": "http://127.0.0.1:3000/#/article/rd-test-612495-1", + "label": "Home", + "activation": "click", + "kind": "navigation", + "intent": "navigate", + "risk": "safe", + "fingerprint": { + "selector": "body > div > header > nav > div > ul:nth-of-type(2) > li:nth-of-type(1) > a", + "tag": "a", + "ordinal": 2, + "role": "link", + "accessibleName": "Home", + "text": "Home", + "href": "http://127.0.0.1:3000/#/", + "candidates": [ { "strategy": "role", "weight": 92, - "matchCount": 0, - "visibleCount": 0, - "elapsedMs": 3 + "role": "link", + "name": "Home", + "exact": true }, { "strategy": "role", "weight": 82, - "matchCount": 2, - "visibleCount": 2, - "elapsedMs": 8 + "role": "link", + "name": "Home", + "exact": false + }, + { + "strategy": "href", + "weight": 72, + "value": "http://127.0.0.1:3000/#/" }, { "strategy": "text", "weight": 60, - "matchCount": 2, - "visibleCount": 2, - "elapsedMs": 8 + "value": "Home", + "exact": true }, { "strategy": "css", "weight": 35, - "matchCount": 1, - "visibleCount": 1, - "elapsedMs": 5 + "selector": "body > div > header > nav > div > ul:nth-of-type(2) > li:nth-of-type(1) > a" } - ], - "chosenStrategy": "css", - "chosenWeight": 35, - "retryCount": 0 + ] }, - "before": { - "at": 1491, - "url": "http://127.0.0.1:3000/#/article/rd-test-f12177-1", - "title": "Conduit", - "domHash": "c2d22593b4518e6e", - "canaryPresent": false, - "bodyCanaryPresent": false, - "temporaryBlobUrls": 0, - "auth": { - "artifacts": 0, - "expiredArtifacts": 0, - "privateContent": false, - "adminContent": false, - "accessDenied": false - }, - "semanticDom": { - "textHash": "2bad7f58583d38f6", - "visualHash": "471347ba69eaf940", - "text": "conduit Source code Home New Article rdq1784818988 RD_TEST_F12177_1 rdq1784818988 July 23, 2026 Delete Article Edit Article RD_TEST_F12177_3 RD_TEST_84FC94_4 rdq1784818988 July 23, 2026 Delete Article Edit Article Post Comment There are no comments yet... conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", - "controls": [ - { - "tag": "button", - "type": "submit", - "valueHash": "e3b0c44298fc1c14", - "disabled": false, - "visible": true - }, - { - "tag": "button", - "type": "submit", - "valueHash": "e3b0c44298fc1c14", - "disabled": false, - "visible": true - }, - { - "tag": "button", - "type": "submit", - "valueHash": "e3b0c44298fc1c14", - "disabled": false, - "visible": true - }, - { - "tag": "button", - "type": "submit", - "valueHash": "e3b0c44298fc1c14", - "disabled": false, - "visible": true - }, - { - "tag": "textarea", - "type": "textarea", - "valueHash": "e3b0c44298fc1c14", - "disabled": false, - "visible": true - }, - { - "tag": "button", - "type": "submit", - "valueHash": "e3b0c44298fc1c14", - "disabled": false, - "visible": true - } - ] - }, - "busyControls": 0, - "disabledControls": 0, - "storage": { - "local": [ - { - "key": "loggedUser", - "valueHash": "60581d1527367fc4", - "containsCanary": false - } - ], - "session": [], - "cookieNames": [], - "cookies": [], - "indexedDb": [] - }, - "sourceSnapshots": [ + "fields": [] + }, + "verdict": "SKIPPED", + "evidenceLevel": 0, + "reason": "Disposable CRUD qualification executes only the target delete action.", + "skippedReason": "Disposable CRUD qualification executes only the target delete action.", + "detectorMatches": [], + "evidence": { + "startedAt": "", + "durationMs": 0, + "canary": "", + "network": [], + "console": [], + "pageErrors": [], + "uiClaims": [], + "filledFields": [], + "dialogs": [], + "downloads": [], + "popupUrls": [], + "snapshotIndex": "snapshots/RD-005.index.json" + } + }, + { + "id": "RD-006", + "action": { + "id": "ca1741f07442", + "pageUrl": "http://127.0.0.1:3000/#/article/rd-test-612495-1", + "label": "New Article", + "activation": "click", + "kind": "navigation", + "intent": "navigate", + "risk": "safe", + "fingerprint": { + "selector": "body > div > header > nav > div > ul:nth-of-type(2) > li:nth-of-type(2) > a", + "tag": "a", + "ordinal": 3, + "role": "link", + "accessibleName": "New Article", + "text": "New Article", + "href": "http://127.0.0.1:3000/#/editor", + "candidates": [ + { + "strategy": "role", + "weight": 92, + "role": "link", + "name": "New Article", + "exact": true + }, + { + "strategy": "role", + "weight": 82, + "role": "link", + "name": "New Article", + "exact": false + }, + { + "strategy": "href", + "weight": 72, + "value": "http://127.0.0.1:3000/#/editor" + }, + { + "strategy": "text", + "weight": 60, + "value": "New Article", + "exact": true + }, + { + "strategy": "css", + "weight": 35, + "selector": "body > div > header > nav > div > ul:nth-of-type(2) > li:nth-of-type(2) > a" + } + ] + }, + "fields": [] + }, + "verdict": "SKIPPED", + "evidenceLevel": 0, + "reason": "Disposable CRUD qualification executes only the target delete action.", + "skippedReason": "Disposable CRUD qualification executes only the target delete action.", + "detectorMatches": [], + "evidence": { + "startedAt": "", + "durationMs": 0, + "canary": "", + "network": [], + "console": [], + "pageErrors": [], + "uiClaims": [], + "filledFields": [], + "dialogs": [], + "downloads": [], + "popupUrls": [], + "snapshotIndex": "snapshots/RD-006.index.json" + } + }, + { + "id": "RD-007", + "action": { + "id": "1a74f155df00", + "pageUrl": "http://127.0.0.1:3000/#/article/rd-test-612495-1", + "label": "http://127.0.0.1:3000/#/profile/rdq1785054823102", + "activation": "click", + "kind": "navigation", + "intent": "navigate", + "risk": "safe", + "fingerprint": { + "selector": "body > div > main > div > div:nth-of-type(1) > div > div > a", + "tag": "a", + "ordinal": 4, + "role": "link", + "href": "http://127.0.0.1:3000/#/profile/rdq1785054823102", + "candidates": [ { - "adapter": "postgresql", - "resource": "articles", - "schemaHash": "d718b75b5f43908b", - "rows": [ - { - "keyHash": "da7114755c3b82ba", - "rowHash": "c8211955f327079a", - "softDeleted": false - } - ], - "truncated": false + "strategy": "href", + "weight": 72, + "value": "http://127.0.0.1:3000/#/profile/rdq1785054823102" }, { - "adapter": "postgresql", - "resource": "users", - "schemaHash": "4dc457684d4d0982", - "rows": [ - { - "keyHash": "667da1af4b45220f", - "rowHash": "dca511a216c6426d", - "softDeleted": false - }, - { - "keyHash": "346f5d46d64077fa", - "rowHash": "07a8385f5bef979b", - "softDeleted": false - } - ], - "truncated": false + "strategy": "css", + "weight": 35, + "selector": "body > div > main > div > div:nth-of-type(1) > div > div > a" } ] }, - "beforeAction": { - "at": 1508, - "url": "http://127.0.0.1:3000/#/article/rd-test-f12177-1", - "title": "Conduit", - "domHash": "c2d22593b4518e6e", - "canaryPresent": false, - "bodyCanaryPresent": false, - "temporaryBlobUrls": 0, - "auth": { - "artifacts": 0, - "expiredArtifacts": 0, - "privateContent": false, - "adminContent": false, - "accessDenied": false - }, - "semanticDom": { - "textHash": "2bad7f58583d38f6", - "visualHash": "471347ba69eaf940", - "text": "conduit Source code Home New Article rdq1784818988 RD_TEST_F12177_1 rdq1784818988 July 23, 2026 Delete Article Edit Article RD_TEST_F12177_3 RD_TEST_84FC94_4 rdq1784818988 July 23, 2026 Delete Article Edit Article Post Comment There are no comments yet... conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", - "controls": [ - { - "tag": "button", - "type": "submit", - "valueHash": "e3b0c44298fc1c14", - "disabled": false, - "visible": true - }, - { - "tag": "button", - "type": "submit", - "valueHash": "e3b0c44298fc1c14", - "disabled": false, - "visible": true - }, - { - "tag": "button", - "type": "submit", - "valueHash": "e3b0c44298fc1c14", - "disabled": false, - "visible": true - }, - { - "tag": "button", - "type": "submit", - "valueHash": "e3b0c44298fc1c14", - "disabled": false, - "visible": true - }, - { - "tag": "textarea", - "type": "textarea", - "valueHash": "e3b0c44298fc1c14", - "disabled": false, - "visible": true - }, - { - "tag": "button", - "type": "submit", - "valueHash": "e3b0c44298fc1c14", - "disabled": false, - "visible": true - } - ] - }, - "busyControls": 0, - "disabledControls": 0, - "storage": { - "local": [ - { - "key": "loggedUser", - "valueHash": "60581d1527367fc4", - "containsCanary": false - } - ], - "session": [], - "cookieNames": [], - "cookies": [], - "indexedDb": [] - } + "fields": [] + }, + "verdict": "SKIPPED", + "evidenceLevel": 0, + "reason": "Disposable CRUD qualification executes only the target delete action.", + "skippedReason": "Disposable CRUD qualification executes only the target delete action.", + "detectorMatches": [], + "evidence": { + "startedAt": "", + "durationMs": 0, + "canary": "", + "network": [], + "console": [], + "pageErrors": [], + "uiClaims": [], + "filledFields": [], + "dialogs": [], + "downloads": [], + "popupUrls": [], + "snapshotIndex": "snapshots/RD-007.index.json" + } + }, + { + "id": "RD-008", + "action": { + "id": "bae90ec66252", + "pageUrl": "http://127.0.0.1:3000/#/article/rd-test-612495-1", + "label": "rdq1785054823102", + "activation": "click", + "kind": "navigation", + "intent": "navigate", + "risk": "safe", + "fingerprint": { + "selector": "body > div > main > div > div:nth-of-type(1) > div > div > div > a", + "tag": "a", + "ordinal": 5, + "role": "link", + "accessibleName": "rdq1785054823102", + "text": "rdq1785054823102", + "href": "http://127.0.0.1:3000/#/profile/rdq1785054823102", + "candidates": [ + { + "strategy": "role", + "weight": 92, + "role": "link", + "name": "rdq1785054823102", + "exact": true + }, + { + "strategy": "role", + "weight": 82, + "role": "link", + "name": "rdq1785054823102", + "exact": false + }, + { + "strategy": "href", + "weight": 72, + "value": "http://127.0.0.1:3000/#/profile/rdq1785054823102" + }, + { + "strategy": "text", + "weight": 60, + "value": "rdq1785054823102", + "exact": true + }, + { + "strategy": "css", + "weight": 35, + "selector": "body > div > main > div > div:nth-of-type(1) > div > div > div > a" + } + ] }, - "targetDisabledAfter": false, - "networkSettled": true, - "after": { - "at": 2737, - "url": "http://127.0.0.1:3000/#/", - "title": "Conduit", - "domHash": "72e1c5d77b56bbde", - "canaryPresent": false, - "bodyCanaryPresent": false, - "temporaryBlobUrls": 0, - "auth": { - "artifacts": 0, - "expiredArtifacts": 0, - "privateContent": false, - "adminContent": false, - "accessDenied": false - }, - "semanticDom": { - "textHash": "ef3e57007eeb4737", - "visualHash": "72ad38eb67085423", - "text": "conduit Source code Home New Article rdq1784818988 Your Feed Global Feed Articles not available. Popular Tags RD_TEST_84FC94_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", - "controls": [ - { - "tag": "button", - "type": "submit", - "valueHash": "e3b0c44298fc1c14", - "disabled": false, - "visible": true - }, - { - "tag": "button", - "type": "submit", - "valueHash": "e3b0c44298fc1c14", - "disabled": false, - "visible": true - }, - { - "tag": "button", - "type": "submit", - "valueHash": "e3b0c44298fc1c14", - "disabled": false, - "visible": true - } - ] - }, - "busyControls": 0, - "disabledControls": 0, - "storage": { - "local": [ - { - "key": "loggedUser", - "valueHash": "60581d1527367fc4", - "containsCanary": false - } - ], - "session": [], - "cookieNames": [], - "cookies": [], - "indexedDb": [] - }, - "sourceSnapshots": [ + "fields": [] + }, + "verdict": "SKIPPED", + "evidenceLevel": 0, + "reason": "Disposable CRUD qualification executes only the target delete action.", + "skippedReason": "Disposable CRUD qualification executes only the target delete action.", + "detectorMatches": [], + "evidence": { + "startedAt": "", + "durationMs": 0, + "canary": "", + "network": [], + "console": [], + "pageErrors": [], + "uiClaims": [], + "filledFields": [], + "dialogs": [], + "downloads": [], + "popupUrls": [], + "snapshotIndex": "snapshots/RD-008.index.json" + } + }, + { + "id": "RD-009", + "action": { + "id": "608a379796a9", + "pageUrl": "http://127.0.0.1:3000/#/article/rd-test-612495-1", + "label": "Edit Article", + "activation": "click", + "kind": "mutation", + "intent": "update", + "risk": "safe", + "fingerprint": { + "selector": "body > div > main > div > div:nth-of-type(1) > div > div > button:nth-of-type(2)", + "tag": "button", + "ordinal": 7, + "role": "button", + "accessibleName": "Edit Article", + "text": "Edit Article", + "type": "submit", + "candidates": [ { - "adapter": "postgresql", - "resource": "articles", - "schemaHash": "d718b75b5f43908b", - "rows": [], - "truncated": false + "strategy": "role", + "weight": 92, + "role": "button", + "name": "Edit Article", + "exact": true }, { - "adapter": "postgresql", - "resource": "users", - "schemaHash": "4dc457684d4d0982", - "rows": [ - { - "keyHash": "667da1af4b45220f", - "rowHash": "dca511a216c6426d", - "softDeleted": false - }, - { - "keyHash": "346f5d46d64077fa", - "rowHash": "07a8385f5bef979b", - "softDeleted": false - } - ], - "truncated": false + "strategy": "role", + "weight": 82, + "role": "button", + "name": "Edit Article", + "exact": false + }, + { + "strategy": "text", + "weight": 60, + "value": "Edit Article", + "exact": true + }, + { + "strategy": "css", + "weight": 35, + "selector": "body > div > main > div > div:nth-of-type(1) > div > div > button:nth-of-type(2)" } ] }, - "screenshot": "screenshots/d20d0c1ba8c4-after.png", - "webSockets": [ - { - "url": "ws://127.0.0.1:3000/?token=%5BREDACTED%5D", - "openedAt": 2902, - "sentFrames": 0, - "receivedFrames": 1, - "errors": [], - "closedAt": 3824 - }, - { - "url": "ws://127.0.0.1:3000/?token=%5BREDACTED%5D", - "openedAt": 3926, - "sentFrames": 0, - "receivedFrames": 1, - "errors": [] - } - ], - "afterRefresh": { - "at": 3788, - "url": "http://127.0.0.1:3000/#/", - "title": "Conduit", - "domHash": "72e1c5d77b56bbde", - "canaryPresent": false, - "bodyCanaryPresent": false, - "temporaryBlobUrls": 0, - "auth": { - "artifacts": 0, - "expiredArtifacts": 0, - "privateContent": false, - "adminContent": false, - "accessDenied": false - }, - "semanticDom": { - "textHash": "ef3e57007eeb4737", - "visualHash": "72ad38eb67085423", - "text": "conduit Source code Home New Article rdq1784818988 Your Feed Global Feed Articles not available. Popular Tags RD_TEST_84FC94_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", - "controls": [ - { - "tag": "button", - "type": "submit", - "valueHash": "e3b0c44298fc1c14", - "disabled": false, - "visible": true - }, - { - "tag": "button", - "type": "submit", - "valueHash": "e3b0c44298fc1c14", - "disabled": false, - "visible": true - }, - { - "tag": "button", - "type": "submit", - "valueHash": "e3b0c44298fc1c14", - "disabled": false, - "visible": true - } - ] - }, - "busyControls": 0, - "disabledControls": 0, - "storage": { - "local": [ - { - "key": "loggedUser", - "valueHash": "60581d1527367fc4", - "containsCanary": false - } - ], - "session": [], - "cookieNames": [], - "cookies": [], - "indexedDb": [] - } + "fields": [] + }, + "verdict": "SKIPPED", + "evidenceLevel": 0, + "reason": "Disposable CRUD qualification executes only the target delete action.", + "skippedReason": "Disposable CRUD qualification executes only the target delete action.", + "detectorMatches": [], + "evidence": { + "startedAt": "", + "durationMs": 0, + "canary": "", + "network": [], + "console": [], + "pageErrors": [], + "uiClaims": [], + "filledFields": [], + "dialogs": [], + "downloads": [], + "popupUrls": [], + "snapshotIndex": "snapshots/RD-009.index.json" + } + }, + { + "id": "RD-010", + "action": { + "id": "7c2525ea457d", + "pageUrl": "http://127.0.0.1:3000/#/article/rd-test-612495-1", + "label": "http://127.0.0.1:3000/#/profile/rdq1785054823102", + "activation": "click", + "kind": "navigation", + "intent": "navigate", + "risk": "safe", + "fingerprint": { + "selector": "body > div > main > div > div:nth-of-type(2) > div:nth-of-type(2) > div > a", + "tag": "a", + "ordinal": 8, + "role": "link", + "href": "http://127.0.0.1:3000/#/profile/rdq1785054823102", + "candidates": [ + { + "strategy": "href", + "weight": 72, + "value": "http://127.0.0.1:3000/#/profile/rdq1785054823102" + }, + { + "strategy": "css", + "weight": 35, + "selector": "body > div > main > div > div:nth-of-type(2) > div:nth-of-type(2) > div > a" + } + ] }, - "refreshScreenshot": "screenshots/d20d0c1ba8c4-refresh.png", - "afterHardRefresh": { - "at": 4817, - "url": "http://127.0.0.1:3000/#/", - "title": "Conduit", - "domHash": "72e1c5d77b56bbde", - "canaryPresent": false, - "bodyCanaryPresent": false, - "temporaryBlobUrls": 0, - "auth": { - "artifacts": 0, - "expiredArtifacts": 0, - "privateContent": false, - "adminContent": false, - "accessDenied": false - }, - "semanticDom": { - "textHash": "ef3e57007eeb4737", - "visualHash": "72ad38eb67085423", - "text": "conduit Source code Home New Article rdq1784818988 Your Feed Global Feed Articles not available. Popular Tags RD_TEST_84FC94_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", - "controls": [ - { - "tag": "button", - "type": "submit", - "valueHash": "e3b0c44298fc1c14", - "disabled": false, - "visible": true - }, - { - "tag": "button", - "type": "submit", - "valueHash": "e3b0c44298fc1c14", - "disabled": false, - "visible": true - }, - { - "tag": "button", - "type": "submit", - "valueHash": "e3b0c44298fc1c14", - "disabled": false, - "visible": true - } - ] - }, - "busyControls": 0, - "disabledControls": 0, - "storage": { - "local": [ - { - "key": "loggedUser", - "valueHash": "60581d1527367fc4", - "containsCanary": false - } - ], - "session": [], - "cookieNames": [], - "cookies": [], - "indexedDb": [] - } + "fields": [] + }, + "verdict": "SKIPPED", + "evidenceLevel": 0, + "reason": "Disposable CRUD qualification executes only the target delete action.", + "skippedReason": "Disposable CRUD qualification executes only the target delete action.", + "detectorMatches": [], + "evidence": { + "startedAt": "", + "durationMs": 0, + "canary": "", + "network": [], + "console": [], + "pageErrors": [], + "uiClaims": [], + "filledFields": [], + "dialogs": [], + "downloads": [], + "popupUrls": [], + "snapshotIndex": "snapshots/RD-010.index.json" + } + }, + { + "id": "RD-011", + "action": { + "id": "5f4a1fd48ba4", + "pageUrl": "http://127.0.0.1:3000/#/article/rd-test-612495-1", + "label": "rdq1785054823102", + "activation": "click", + "kind": "navigation", + "intent": "navigate", + "risk": "safe", + "fingerprint": { + "selector": "body > div > main > div > div:nth-of-type(2) > div:nth-of-type(2) > div > div > a", + "tag": "a", + "ordinal": 9, + "role": "link", + "accessibleName": "rdq1785054823102", + "text": "rdq1785054823102", + "href": "http://127.0.0.1:3000/#/profile/rdq1785054823102", + "candidates": [ + { + "strategy": "role", + "weight": 92, + "role": "link", + "name": "rdq1785054823102", + "exact": true + }, + { + "strategy": "role", + "weight": 82, + "role": "link", + "name": "rdq1785054823102", + "exact": false + }, + { + "strategy": "href", + "weight": 72, + "value": "http://127.0.0.1:3000/#/profile/rdq1785054823102" + }, + { + "strategy": "text", + "weight": 60, + "value": "rdq1785054823102", + "exact": true + }, + { + "strategy": "css", + "weight": 35, + "selector": "body > div > main > div > div:nth-of-type(2) > div:nth-of-type(2) > div > div > a" + } + ] }, - "afterNewTab": { - "at": 5945, - "url": "http://127.0.0.1:3000/#/not-found", - "title": "Conduit", - "domHash": "cbdcb0acc42ff88a", - "canaryPresent": false, - "bodyCanaryPresent": false, - "temporaryBlobUrls": 0, - "auth": { - "artifacts": 0, - "expiredArtifacts": 0, - "privateContent": false, - "adminContent": false, - "accessDenied": false - }, - "semanticDom": { - "textHash": "9df20484a6ae7987", - "visualHash": "e61dcd76e2bbdd7c", - "text": "404 Not Found Go to home page", - "controls": [] - }, - "busyControls": 0, - "disabledControls": 0, - "storage": { - "local": [ - { - "key": "loggedUser", - "valueHash": "60581d1527367fc4", - "containsCanary": false - } - ], - "session": [], - "cookieNames": [], - "cookies": [], - "indexedDb": [] - } + "fields": [] + }, + "verdict": "SKIPPED", + "evidenceLevel": 0, + "reason": "Disposable CRUD qualification executes only the target delete action.", + "skippedReason": "Disposable CRUD qualification executes only the target delete action.", + "detectorMatches": [], + "evidence": { + "startedAt": "", + "durationMs": 0, + "canary": "", + "network": [], + "console": [], + "pageErrors": [], + "uiClaims": [], + "filledFields": [], + "dialogs": [], + "downloads": [], + "popupUrls": [], + "snapshotIndex": "snapshots/RD-011.index.json" + } + }, + { + "id": "RD-012", + "action": { + "id": "dfdc9f148c07", + "pageUrl": "http://127.0.0.1:3000/#/article/rd-test-612495-1", + "label": "Edit Article", + "activation": "click", + "kind": "mutation", + "intent": "update", + "risk": "safe", + "fingerprint": { + "selector": "body > div > main > div > div:nth-of-type(2) > div:nth-of-type(2) > div > button:nth-of-type(2)", + "tag": "button", + "ordinal": 11, + "role": "button", + "accessibleName": "Edit Article", + "text": "Edit Article", + "type": "submit", + "candidates": [ + { + "strategy": "role", + "weight": 92, + "role": "button", + "name": "Edit Article", + "exact": true + }, + { + "strategy": "role", + "weight": 82, + "role": "button", + "name": "Edit Article", + "exact": false + }, + { + "strategy": "text", + "weight": 60, + "value": "Edit Article", + "exact": true + }, + { + "strategy": "css", + "weight": 35, + "selector": "body > div > main > div > div:nth-of-type(2) > div:nth-of-type(2) > div > button:nth-of-type(2)" + } + ] }, - "afterNewContext": { - "at": 7206, - "url": "http://127.0.0.1:3000/#/", - "title": "Conduit", - "domHash": "72e1c5d77b56bbde", - "canaryPresent": false, - "bodyCanaryPresent": false, - "temporaryBlobUrls": 0, - "auth": { - "artifacts": 0, - "expiredArtifacts": 0, - "privateContent": false, - "adminContent": false, - "accessDenied": false - }, - "semanticDom": { - "textHash": "ef3e57007eeb4737", - "visualHash": "72ad38eb67085423", - "text": "conduit Source code Home New Article rdq1784818988 Your Feed Global Feed Articles not available. Popular Tags RD_TEST_84FC94_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", - "controls": [ - { - "tag": "button", - "type": "submit", - "valueHash": "e3b0c44298fc1c14", - "disabled": false, - "visible": true - }, - { - "tag": "button", - "type": "submit", - "valueHash": "e3b0c44298fc1c14", - "disabled": false, - "visible": true - }, - { - "tag": "button", - "type": "submit", - "valueHash": "e3b0c44298fc1c14", - "disabled": false, - "visible": true - } - ] - }, - "busyControls": 0, - "disabledControls": 0, - "storage": { - "local": [ - { - "key": "loggedUser", - "valueHash": "60581d1527367fc4", - "containsCanary": false - } - ], - "session": [], - "cookieNames": [], - "cookies": [], - "indexedDb": [] - } + "fields": [] + }, + "verdict": "SKIPPED", + "evidenceLevel": 0, + "reason": "Disposable CRUD qualification executes only the target delete action.", + "skippedReason": "Disposable CRUD qualification executes only the target delete action.", + "detectorMatches": [], + "evidence": { + "startedAt": "", + "durationMs": 0, + "canary": "", + "network": [], + "console": [], + "pageErrors": [], + "uiClaims": [], + "filledFields": [], + "dialogs": [], + "downloads": [], + "popupUrls": [], + "snapshotIndex": "snapshots/RD-012.index.json" + } + }, + { + "id": "RD-013", + "action": { + "id": "6635954920fe", + "pageUrl": "http://127.0.0.1:3000/#/article/rd-test-612495-1", + "label": "Post Comment", + "activation": "submit", + "kind": "mutation", + "intent": "submit", + "risk": "safe", + "fingerprint": { + "selector": "body > div > main > div > div:nth-of-type(2) > div:nth-of-type(3) > div > form", + "tag": "form", + "ordinal": 12, + "accessibleName": "Post Comment", + "text": "Post Comment", + "candidates": [ + { + "strategy": "text", + "weight": 60, + "value": "Post Comment", + "exact": true + }, + { + "strategy": "css", + "weight": 35, + "selector": "body > div > main > div > div:nth-of-type(2) > div:nth-of-type(3) > div > form" + } + ] }, - "sourceDiffs": [ - { - "adapter": "postgresql", - "resource": "articles", - "added": [], - "removed": [ - "da7114755c3b82ba" - ], - "changed": [], - "softDeleted": [], - "truncated": false - }, + "fields": [ { - "adapter": "postgresql", - "resource": "users", - "added": [], - "removed": [], - "changed": [], - "softDeleted": [], - "truncated": false + "selector": "body > div > main > div > div:nth-of-type(2) > div:nth-of-type(3) > div > form > div:nth-of-type(1) > textarea", + "tag": "textarea", + "type": "textarea", + "required": false, + "disabled": false, + "placeholder": "Write a comment..." } - ], - "sourceSnapshotErrors": [], - "persistenceScope": "SOURCE_OF_TRUTH_CONFIRMED", - "snapshotIndex": "snapshots/RD-015.index.json" + ] }, - "verdict": "VERIFIED", - "evidenceLevel": 6, - "reason": "The configured source of truth independently confirmed a persisted change during the action.", - "detectorMatches": [] + "verdict": "SKIPPED", + "evidenceLevel": 0, + "reason": "Disposable CRUD qualification executes only the target delete action.", + "skippedReason": "Disposable CRUD qualification executes only the target delete action.", + "detectorMatches": [], + "evidence": { + "startedAt": "", + "durationMs": 0, + "canary": "", + "network": [], + "console": [], + "pageErrors": [], + "uiClaims": [], + "filledFields": [], + "dialogs": [], + "downloads": [], + "popupUrls": [], + "snapshotIndex": "snapshots/RD-013.index.json" + } }, { - "id": "RD-016", + "id": "RD-014", "action": { - "id": "c45c41f3c9f1", - "pageUrl": "http://127.0.0.1:3000/#/article/rd-test-f12177-1", - "label": "Delete Article", + "id": "cfdf37caa8f3", + "pageUrl": "http://127.0.0.1:3000/#/article/rd-test-612495-1", + "label": "conduit", "activation": "click", - "kind": "mutation", - "intent": "delete", - "risk": "destructive", + "kind": "navigation", + "intent": "navigate", + "risk": "safe", "fingerprint": { - "selector": "body > div > main > div > div:nth-of-type(2) > div:nth-of-type(2) > div > button:nth-of-type(1)", - "tag": "button", - "ordinal": 10, - "role": "button", - "accessibleName": "Delete Article", - "text": "Delete Article", - "type": "submit", + "selector": "body > div > footer > div > a", + "tag": "a", + "ordinal": 13, + "role": "link", + "accessibleName": "conduit", + "text": "conduit", + "href": "http://127.0.0.1:3000/#/", "candidates": [ { "strategy": "role", "weight": 92, - "role": "button", - "name": "Delete Article", + "role": "link", + "name": "conduit", "exact": true }, { "strategy": "role", "weight": 82, - "role": "button", - "name": "Delete Article", + "role": "link", + "name": "conduit", "exact": false }, + { + "strategy": "href", + "weight": 72, + "value": "http://127.0.0.1:3000/#/" + }, { "strategy": "text", "weight": 60, - "value": "Delete Article", + "value": "conduit", "exact": true }, { "strategy": "css", "weight": 35, - "selector": "body > div > main > div > div:nth-of-type(2) > div:nth-of-type(2) > div > button:nth-of-type(1)" + "selector": "body > div > footer > div > a" } ] }, "fields": [] }, + "verdict": "SKIPPED", + "evidenceLevel": 0, + "reason": "Disposable CRUD qualification executes only the target delete action.", + "skippedReason": "Disposable CRUD qualification executes only the target delete action.", + "detectorMatches": [], "evidence": { - "startedAt": "2026-07-23T15:05:28.304Z", - "durationMs": 2008, - "canary": "RD_TEST_2D7D3B", + "startedAt": "", + "durationMs": 0, + "canary": "", "network": [], "console": [], "pageErrors": [], @@ -5484,136 +5457,162 @@ "filledFields": [], "dialogs": [], "downloads": [], - "downloadEvidence": [], - "uploads": [], "popupUrls": [], - "targetNotFound": true, - "locatorResolution": { - "attempts": [ + "snapshotIndex": "snapshots/RD-014.index.json" + } + }, + { + "id": "RD-015", + "action": { + "id": "ed2174de651c", + "pageUrl": "http://127.0.0.1:3000/#/article/rd-test-612495-1", + "label": "Thinkster", + "activation": "click", + "kind": "navigation", + "intent": "navigate", + "risk": "safe", + "fingerprint": { + "selector": "body > div > footer > div > span > a", + "tag": "a", + "ordinal": 14, + "role": "link", + "accessibleName": "Thinkster", + "text": "Thinkster", + "href": "https://thinkster.io/", + "candidates": [ { "strategy": "role", "weight": 92, - "matchCount": 0, - "visibleCount": 0, - "elapsedMs": 3 + "role": "link", + "name": "Thinkster", + "exact": true }, { "strategy": "role", "weight": 82, - "matchCount": 0, - "visibleCount": 0, - "elapsedMs": 1 - }, - { - "strategy": "text", - "weight": 60, - "matchCount": 0, - "visibleCount": 0, - "elapsedMs": 3 - }, - { - "strategy": "css", - "weight": 35, - "matchCount": 0, - "visibleCount": 0, - "elapsedMs": 1 - }, - { - "strategy": "role", - "weight": 92, - "matchCount": 0, - "visibleCount": 0, - "elapsedMs": 2 + "role": "link", + "name": "Thinkster", + "exact": false }, { - "strategy": "role", - "weight": 82, - "matchCount": 0, - "visibleCount": 0, - "elapsedMs": 1 + "strategy": "href", + "weight": 72, + "value": "https://thinkster.io/" }, { "strategy": "text", "weight": 60, - "matchCount": 0, - "visibleCount": 0, - "elapsedMs": 2 + "value": "Thinkster", + "exact": true }, { "strategy": "css", "weight": 35, - "matchCount": 0, - "visibleCount": 0, - "elapsedMs": 2 - }, + "selector": "body > div > footer > div > span > a" + } + ] + }, + "fields": [] + }, + "verdict": "SKIPPED", + "evidenceLevel": 0, + "reason": "Disposable CRUD qualification executes only the target delete action.", + "skippedReason": "Disposable CRUD qualification executes only the target delete action.", + "detectorMatches": [], + "evidence": { + "startedAt": "", + "durationMs": 0, + "canary": "", + "network": [], + "console": [], + "pageErrors": [], + "uiClaims": [], + "filledFields": [], + "dialogs": [], + "downloads": [], + "popupUrls": [], + "snapshotIndex": "snapshots/RD-015.index.json" + } + }, + { + "id": "RD-016", + "action": { + "id": "be4fe57c7f48", + "pageUrl": "http://127.0.0.1:3000/#/article/rd-test-612495-1", + "label": "Source code", + "activation": "click", + "kind": "navigation", + "intent": "navigate", + "risk": "safe", + "fingerprint": { + "selector": "body > div > footer > div > ul > li > a", + "tag": "a", + "ordinal": 15, + "role": "link", + "accessibleName": "Source code", + "text": "Source code", + "href": "https://github.com/TonyMckes/conduit-realworld-example-app", + "candidates": [ { "strategy": "role", "weight": 92, - "matchCount": 0, - "visibleCount": 0, - "elapsedMs": 2 + "role": "link", + "name": "Source code", + "exact": true }, { "strategy": "role", "weight": 82, - "matchCount": 0, - "visibleCount": 0, - "elapsedMs": 2 + "role": "link", + "name": "Source code", + "exact": false + }, + { + "strategy": "href", + "weight": 72, + "value": "https://github.com/TonyMckes/conduit-realworld-example-app" }, { "strategy": "text", "weight": 60, - "matchCount": 0, - "visibleCount": 0, - "elapsedMs": 1 + "value": "Source code", + "exact": true }, { "strategy": "css", "weight": 35, - "matchCount": 0, - "visibleCount": 0, - "elapsedMs": 2 + "selector": "body > div > footer > div > ul > li > a" } - ], - "retryCount": 2 + ] }, - "executionError": "No visible element matched the semantic fingerprint. The action was not executed.", - "screenshot": "screenshots/c45c41f3c9f1-error.png", - "trace": "traces/c45c41f3c9f1.zip", - "sourceDiffs": [ - { - "adapter": "postgresql", - "resource": "articles", - "added": [], - "removed": [], - "changed": [], - "softDeleted": [], - "truncated": false - }, - { - "adapter": "postgresql", - "resource": "users", - "added": [], - "removed": [], - "changed": [], - "softDeleted": [], - "truncated": false - } - ], - "sourceSnapshotErrors": [], - "snapshotIndex": "snapshots/RD-016.index.json" + "fields": [] }, - "verdict": "UNCERTAIN", + "verdict": "SKIPPED", "evidenceLevel": 0, - "reason": "The discovered semantic target was not present in a fresh execution context, so no substitute element was executed.", - "detectorMatches": [] + "reason": "Disposable CRUD qualification executes only the target delete action.", + "skippedReason": "Disposable CRUD qualification executes only the target delete action.", + "detectorMatches": [], + "evidence": { + "startedAt": "", + "durationMs": 0, + "canary": "", + "network": [], + "console": [], + "pageErrors": [], + "uiClaims": [], + "filledFields": [], + "dialogs": [], + "downloads": [], + "popupUrls": [], + "snapshotIndex": "snapshots/RD-016.index.json" + } } ], "environment": { "status": "VALID", - "checkedAt": "2026-07-23T15:05:18.096Z", - "durationMs": 1341, - "targetUrl": "http://127.0.0.1:3000/#/article/rd-test-f12177-1", + "checkedAt": "2026-07-26T08:36:09.568Z", + "durationMs": 1402, + "targetUrl": "http://127.0.0.1:3000/#/article/rd-test-612495-1", "mainDocument": { "status": 200, "contentType": "text/html" @@ -5625,7 +5624,7 @@ "failed": 0 }, "render": { - "bodyTextLength": 357, + "bodyTextLength": 366, "visibleElements": 72, "interactiveElements": 19, "ready": true @@ -5639,6 +5638,36 @@ "truncated": true, "reasons": [ "max-pages" - ] + ], + "selection": { + "strategy": "coverage-balanced-v1", + "eligibleActions": 16, + "selectedActions": 16, + "omittedActions": 0, + "eligiblePages": 1, + "selectedPages": 1, + "eligibleKinds": [ + "mutation", + "navigation" + ], + "selectedKinds": [ + "mutation", + "navigation" + ], + "eligibleIntents": [ + "update", + "submit", + "navigate", + "delete" + ], + "selectedIntents": [ + "update", + "submit", + "navigate", + "delete" + ], + "deniedEligibleActions": 14, + "deniedSelectedActions": 14 + } } } diff --git a/release/evidence/raw/conduit-postgres-update.scan.json b/release/evidence/raw/conduit-postgres-update.scan.json index 8056fcc..9df069e 100644 --- a/release/evidence/raw/conduit-postgres-update.scan.json +++ b/release/evidence/raw/conduit-postgres-update.scan.json @@ -1,9 +1,9 @@ { "schemaVersion": "1.0", - "scanId": "20260723T150413Z-6490", - "targetUrl": "http://127.0.0.1:3000/#/editor/rd-test-84fc94-1", - "startedAt": "2026-07-23T15:04:13.312Z", - "finishedAt": "2026-07-23T15:04:53.785Z", + "scanId": "20260726T083508Z-ef21", + "targetUrl": "http://127.0.0.1:3000/#/editor/rd-test-f95995-1", + "startedAt": "2026-07-26T08:35:08.087Z", + "finishedAt": "2026-07-26T08:35:48.932Z", "options": { "maxPages": 2, "maxActions": 20, @@ -16,7 +16,7 @@ "mutationAllowed": true, "deep": true, "trace": false, - "traceOnFailure": true, + "traceOnFailure": false, "video": false, "environmentTimeoutMs": 10000, "acceptEnvironmentRisk": false, @@ -41,12 +41,12 @@ }, "pages": [ { - "url": "http://127.0.0.1:3000/#/editor/rd-test-84fc94-1", + "url": "http://127.0.0.1:3000/#/editor/rd-test-f95995-1", "title": "Conduit", "actions": [ { - "id": "b68a5e9ad903", - "pageUrl": "http://127.0.0.1:3000/#/editor/rd-test-84fc94-1", + "id": "4db22f7cf4f1", + "pageUrl": "http://127.0.0.1:3000/#/editor/rd-test-f95995-1", "label": "conduit", "activation": "click", "kind": "navigation", @@ -96,8 +96,8 @@ "fields": [] }, { - "id": "f3b133a0dd12", - "pageUrl": "http://127.0.0.1:3000/#/editor/rd-test-84fc94-1", + "id": "7244750fb0e2", + "pageUrl": "http://127.0.0.1:3000/#/editor/rd-test-f95995-1", "label": "Source code", "activation": "click", "kind": "navigation", @@ -147,8 +147,8 @@ "fields": [] }, { - "id": "8484117c1622", - "pageUrl": "http://127.0.0.1:3000/#/editor/rd-test-84fc94-1", + "id": "77039a373aea", + "pageUrl": "http://127.0.0.1:3000/#/editor/rd-test-f95995-1", "label": "Home", "activation": "click", "kind": "navigation", @@ -198,8 +198,8 @@ "fields": [] }, { - "id": "daae7fa87fc6", - "pageUrl": "http://127.0.0.1:3000/#/editor/rd-test-84fc94-1", + "id": "4634557aadaa", + "pageUrl": "http://127.0.0.1:3000/#/editor/rd-test-f95995-1", "label": "New Article", "activation": "click", "kind": "navigation", @@ -249,8 +249,8 @@ "fields": [] }, { - "id": "6602a97ee255", - "pageUrl": "http://127.0.0.1:3000/#/editor/rd-test-84fc94-1", + "id": "4da0f6d01b9f", + "pageUrl": "http://127.0.0.1:3000/#/editor/rd-test-f95995-1", "label": "Update Article", "activation": "submit", "kind": "mutation", @@ -284,7 +284,7 @@ "required": true, "disabled": false, "name": "title", - "label": "RD_TEST_84FC94_1", + "label": "RD_TEST_F95995_1", "placeholder": "Article Title" }, { @@ -294,7 +294,7 @@ "required": true, "disabled": false, "name": "description", - "label": "RD_TEST_84FC94_2", + "label": "RD_TEST_F95995_2", "placeholder": "What's this article about?" }, { @@ -313,14 +313,14 @@ "required": false, "disabled": false, "name": "tags", - "label": "RD_TEST_84FC94_4", + "label": "RD_TEST_F95995_4", "placeholder": "Enter tags" } ] }, { - "id": "cac957bd899c", - "pageUrl": "http://127.0.0.1:3000/#/editor/rd-test-84fc94-1", + "id": "8e91a4b368af", + "pageUrl": "http://127.0.0.1:3000/#/editor/rd-test-f95995-1", "label": "conduit", "activation": "click", "kind": "navigation", @@ -370,8 +370,8 @@ "fields": [] }, { - "id": "cc4dcb5707f2", - "pageUrl": "http://127.0.0.1:3000/#/editor/rd-test-84fc94-1", + "id": "c4e7eb1ccc17", + "pageUrl": "http://127.0.0.1:3000/#/editor/rd-test-f95995-1", "label": "Thinkster", "activation": "click", "kind": "navigation", @@ -421,8 +421,8 @@ "fields": [] }, { - "id": "f5b376e9eec4", - "pageUrl": "http://127.0.0.1:3000/#/editor/rd-test-84fc94-1", + "id": "e1aaac6ec218", + "pageUrl": "http://127.0.0.1:3000/#/editor/rd-test-f95995-1", "label": "Source code", "activation": "click", "kind": "navigation", @@ -774,9 +774,9 @@ "fields": [] }, { - "id": "399f2f7066a4", + "id": "728383b5947d", "pageUrl": "http://127.0.0.1:3000/", - "label": "RD_TEST_84FC94_4", + "label": "RD_TEST_F95995_4", "activation": "click", "kind": "local", "intent": "interact", @@ -786,28 +786,28 @@ "tag": "button", "ordinal": 6, "role": "button", - "accessibleName": "RD_TEST_84FC94_4", - "text": "RD_TEST_84FC94_4", + "accessibleName": "RD_TEST_F95995_4", + "text": "RD_TEST_F95995_4", "type": "submit", "candidates": [ { "strategy": "role", "weight": 92, "role": "button", - "name": "RD_TEST_84FC94_4", + "name": "RD_TEST_F95995_4", "exact": true }, { "strategy": "role", "weight": 82, "role": "button", - "name": "RD_TEST_84FC94_4", + "name": "RD_TEST_F95995_4", "exact": false }, { "strategy": "text", "weight": 60, - "value": "RD_TEST_84FC94_4", + "value": "RD_TEST_F95995_4", "exact": true }, { @@ -979,8 +979,8 @@ { "id": "RD-001", "action": { - "id": "b68a5e9ad903", - "pageUrl": "http://127.0.0.1:3000/#/editor/rd-test-84fc94-1", + "id": "4db22f7cf4f1", + "pageUrl": "http://127.0.0.1:3000/#/editor/rd-test-f95995-1", "label": "conduit", "activation": "click", "kind": "navigation", @@ -1030,19 +1030,19 @@ "fields": [] }, "evidence": { - "startedAt": "2026-07-23T15:04:18.528Z", - "durationMs": 2492, - "canary": "RD_TEST_B00E5A", + "startedAt": "2026-07-26T08:35:13.579Z", + "durationMs": 2570, + "canary": "RD_TEST_BFF535", "network": [ { "id": "net-1", "method": "GET", "url": "http://127.0.0.1:3000/api/articles/feed?limit=3&&offset=0", "resourceType": "xhr", - "startedAt": 1529, + "startedAt": 1587, "status": 200, "ok": true, - "finishedAt": 1540, + "finishedAt": 1608, "contentType": "application/json", "resourceTypeHint": "feed" }, @@ -1051,10 +1051,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/api/tags", "resourceType": "xhr", - "startedAt": 1530, + "startedAt": 1588, "status": 200, "ok": true, - "finishedAt": 1537, + "finishedAt": 1599, "contentType": "application/json", "resourceTypeHint": "tags" }, @@ -1063,10 +1063,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/api/articles/feed?limit=3&&offset=0", "resourceType": "xhr", - "startedAt": 1530, + "startedAt": 1588, "status": 200, "ok": true, - "finishedAt": 1539, + "finishedAt": 1608, "contentType": "application/json", "resourceTypeHint": "feed" }, @@ -1075,12 +1075,12 @@ "method": "GET", "url": "http://127.0.0.1:3000/api/tags", "resourceType": "xhr", - "startedAt": 1531, + "startedAt": 1589, "status": 200, "ok": true, - "finishedAt": 1537, "contentType": "application/json", - "resourceTypeHint": "tags" + "resourceTypeHint": "tags", + "finishedAt": 1598 } ], "console": [], @@ -1099,35 +1099,35 @@ "weight": 92, "matchCount": 2, "visibleCount": 2, - "elapsedMs": 9 + "elapsedMs": 6 }, { "strategy": "role", "weight": 82, "matchCount": 2, "visibleCount": 2, - "elapsedMs": 7 + "elapsedMs": 2 }, { "strategy": "href", "weight": 72, "matchCount": 0, "visibleCount": 0, - "elapsedMs": 2 + "elapsedMs": 1 }, { "strategy": "text", "weight": 60, "matchCount": 2, "visibleCount": 2, - "elapsedMs": 6 + "elapsedMs": 3 }, { "strategy": "css", "weight": 35, "matchCount": 1, "visibleCount": 1, - "elapsedMs": 4 + "elapsedMs": 2 } ], "chosenStrategy": "css", @@ -1135,10 +1135,10 @@ "retryCount": 0 }, "before": { - "at": 1484, - "url": "http://127.0.0.1:3000/#/editor/rd-test-84fc94-1", + "at": 1554, + "url": "http://127.0.0.1:3000/#/editor/rd-test-f95995-1", "title": "Conduit", - "domHash": "5e4f35896b0a0efe", + "domHash": "319c3f111f0df4bf", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -1150,15 +1150,15 @@ "accessDenied": false }, "semanticDom": { - "textHash": "5bd3d7b2b57f2618", + "textHash": "dcdc0f6db71ab4cc", "visualHash": "b85410fa0ea5a358", - "text": "conduit Source code Home New Article rdq1784818988 Update Article conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", + "text": "conduit Source code Home New Article rdq1785054823102 Update Article conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "input", "type": "text", "name": "title", - "valueHash": "ac458f73e769bb30", + "valueHash": "b1ecbb2c73c74aae", "checked": false, "disabled": false, "visible": true @@ -1167,7 +1167,7 @@ "tag": "input", "type": "text", "name": "description", - "valueHash": "92b8ba20633a1da3", + "valueHash": "7ecc020bffae0253", "checked": false, "disabled": false, "visible": true @@ -1176,7 +1176,7 @@ "tag": "textarea", "type": "textarea", "name": "body", - "valueHash": "c513fc7b75471075", + "valueHash": "6c0eafd99f29ca4d", "disabled": false, "visible": true }, @@ -1184,7 +1184,7 @@ "tag": "input", "type": "text", "name": "tags", - "valueHash": "495fcb93435d0a3e", + "valueHash": "ca4dbf3dc5193203", "checked": false, "disabled": false, "visible": true @@ -1204,7 +1204,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "60581d1527367fc4", + "valueHash": "5530bc1e89316fe8", "containsCanary": false } ], @@ -1215,10 +1215,10 @@ } }, "beforeAction": { - "at": 1495, - "url": "http://127.0.0.1:3000/#/editor/rd-test-84fc94-1", + "at": 1562, + "url": "http://127.0.0.1:3000/#/editor/rd-test-f95995-1", "title": "Conduit", - "domHash": "5e4f35896b0a0efe", + "domHash": "319c3f111f0df4bf", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -1230,15 +1230,15 @@ "accessDenied": false }, "semanticDom": { - "textHash": "5bd3d7b2b57f2618", + "textHash": "dcdc0f6db71ab4cc", "visualHash": "b85410fa0ea5a358", - "text": "conduit Source code Home New Article rdq1784818988 Update Article conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", + "text": "conduit Source code Home New Article rdq1785054823102 Update Article conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "input", "type": "text", "name": "title", - "valueHash": "ac458f73e769bb30", + "valueHash": "b1ecbb2c73c74aae", "checked": false, "disabled": false, "visible": true @@ -1247,7 +1247,7 @@ "tag": "input", "type": "text", "name": "description", - "valueHash": "92b8ba20633a1da3", + "valueHash": "7ecc020bffae0253", "checked": false, "disabled": false, "visible": true @@ -1256,7 +1256,7 @@ "tag": "textarea", "type": "textarea", "name": "body", - "valueHash": "c513fc7b75471075", + "valueHash": "6c0eafd99f29ca4d", "disabled": false, "visible": true }, @@ -1264,7 +1264,7 @@ "tag": "input", "type": "text", "name": "tags", - "valueHash": "495fcb93435d0a3e", + "valueHash": "ca4dbf3dc5193203", "checked": false, "disabled": false, "visible": true @@ -1284,7 +1284,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "60581d1527367fc4", + "valueHash": "5530bc1e89316fe8", "containsCanary": false } ], @@ -1297,10 +1297,10 @@ "networkSettled": true, "targetBusyAfter": false, "after": { - "at": 2488, + "at": 2567, "url": "http://127.0.0.1:3000/#/", "title": "Conduit", - "domHash": "72e1c5d77b56bbde", + "domHash": "f12a3cec7e00e6bc", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -1312,9 +1312,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "ef3e57007eeb4737", + "textHash": "97e2b175e91d32b0", "visualHash": "72ad38eb67085423", - "text": "conduit Source code Home New Article rdq1784818988 Your Feed Global Feed Articles not available. Popular Tags RD_TEST_84FC94_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", + "text": "conduit Source code Home New Article rdq1785054823102 Your Feed Global Feed Articles not available. Popular Tags RD_TEST_F95995_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "button", @@ -1345,7 +1345,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "60581d1527367fc4", + "valueHash": "5530bc1e89316fe8", "containsCanary": false } ], @@ -1365,81 +1365,8 @@ { "id": "RD-002", "action": { - "id": "f3b133a0dd12", - "pageUrl": "http://127.0.0.1:3000/#/editor/rd-test-84fc94-1", - "label": "Source code", - "activation": "click", - "kind": "navigation", - "intent": "navigate", - "risk": "safe", - "fingerprint": { - "selector": "body > div > header > nav > div > ul:nth-of-type(1) > li > a", - "tag": "a", - "ordinal": 1, - "role": "link", - "accessibleName": "Source code", - "text": "Source code", - "href": "https://github.com/TonyMckes/conduit-realworld-example-app", - "candidates": [ - { - "strategy": "role", - "weight": 92, - "role": "link", - "name": "Source code", - "exact": true - }, - { - "strategy": "role", - "weight": 82, - "role": "link", - "name": "Source code", - "exact": false - }, - { - "strategy": "href", - "weight": 72, - "value": "https://github.com/TonyMckes/conduit-realworld-example-app" - }, - { - "strategy": "text", - "weight": 60, - "value": "Source code", - "exact": true - }, - { - "strategy": "css", - "weight": 35, - "selector": "body > div > header > nav > div > ul:nth-of-type(1) > li > a" - } - ] - }, - "fields": [] - }, - "verdict": "SKIPPED", - "evidenceLevel": 0, - "reason": "Cross-origin navigation blocked by the default safety policy. Use --allow-external explicitly.", - "skippedReason": "Cross-origin navigation blocked by the default safety policy. Use --allow-external explicitly.", - "detectorMatches": [], - "evidence": { - "startedAt": "", - "durationMs": 0, - "canary": "", - "network": [], - "console": [], - "pageErrors": [], - "uiClaims": [], - "filledFields": [], - "dialogs": [], - "downloads": [], - "popupUrls": [], - "snapshotIndex": "snapshots/RD-002.index.json" - } - }, - { - "id": "RD-003", - "action": { - "id": "8484117c1622", - "pageUrl": "http://127.0.0.1:3000/#/editor/rd-test-84fc94-1", + "id": "77039a373aea", + "pageUrl": "http://127.0.0.1:3000/#/editor/rd-test-f95995-1", "label": "Home", "activation": "click", "kind": "navigation", @@ -1489,19 +1416,19 @@ "fields": [] }, "evidence": { - "startedAt": "2026-07-23T15:04:21.067Z", - "durationMs": 2485, - "canary": "RD_TEST_35FA85", + "startedAt": "2026-07-26T08:35:16.155Z", + "durationMs": 2515, + "canary": "RD_TEST_834028", "network": [ { "id": "net-1", "method": "GET", "url": "http://127.0.0.1:3000/api/articles/feed?limit=3&&offset=0", "resourceType": "xhr", - "startedAt": 1510, + "startedAt": 1529, "status": 200, "ok": true, - "finishedAt": 1520, + "finishedAt": 1543, "contentType": "application/json", "resourceTypeHint": "feed" }, @@ -1510,10 +1437,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/api/tags", "resourceType": "xhr", - "startedAt": 1511, + "startedAt": 1529, "status": 200, "ok": true, - "finishedAt": 1517, + "finishedAt": 1537, "contentType": "application/json", "resourceTypeHint": "tags" }, @@ -1522,10 +1449,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/api/articles/feed?limit=3&&offset=0", "resourceType": "xhr", - "startedAt": 1511, + "startedAt": 1530, "status": 200, "ok": true, - "finishedAt": 1524, + "finishedAt": 1544, "contentType": "application/json", "resourceTypeHint": "feed" }, @@ -1534,12 +1461,12 @@ "method": "GET", "url": "http://127.0.0.1:3000/api/tags", "resourceType": "xhr", - "startedAt": 1512, + "startedAt": 1530, "status": 200, "ok": true, + "finishedAt": 1538, "contentType": "application/json", - "resourceTypeHint": "tags", - "finishedAt": 1519 + "resourceTypeHint": "tags" } ], "console": [], @@ -1558,14 +1485,14 @@ "weight": 92, "matchCount": 0, "visibleCount": 0, - "elapsedMs": 3 + "elapsedMs": 2 }, { "strategy": "role", "weight": 82, "matchCount": 1, "visibleCount": 1, - "elapsedMs": 5 + "elapsedMs": 2 } ], "chosenStrategy": "role", @@ -1573,10 +1500,10 @@ "retryCount": 0 }, "before": { - "at": 1471, - "url": "http://127.0.0.1:3000/#/editor/rd-test-84fc94-1", + "at": 1497, + "url": "http://127.0.0.1:3000/#/editor/rd-test-f95995-1", "title": "Conduit", - "domHash": "5e4f35896b0a0efe", + "domHash": "319c3f111f0df4bf", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -1588,15 +1515,15 @@ "accessDenied": false }, "semanticDom": { - "textHash": "5bd3d7b2b57f2618", + "textHash": "dcdc0f6db71ab4cc", "visualHash": "b85410fa0ea5a358", - "text": "conduit Source code Home New Article rdq1784818988 Update Article conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", + "text": "conduit Source code Home New Article rdq1785054823102 Update Article conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "input", "type": "text", "name": "title", - "valueHash": "ac458f73e769bb30", + "valueHash": "b1ecbb2c73c74aae", "checked": false, "disabled": false, "visible": true @@ -1605,7 +1532,7 @@ "tag": "input", "type": "text", "name": "description", - "valueHash": "92b8ba20633a1da3", + "valueHash": "7ecc020bffae0253", "checked": false, "disabled": false, "visible": true @@ -1614,7 +1541,7 @@ "tag": "textarea", "type": "textarea", "name": "body", - "valueHash": "c513fc7b75471075", + "valueHash": "6c0eafd99f29ca4d", "disabled": false, "visible": true }, @@ -1622,7 +1549,7 @@ "tag": "input", "type": "text", "name": "tags", - "valueHash": "495fcb93435d0a3e", + "valueHash": "ca4dbf3dc5193203", "checked": false, "disabled": false, "visible": true @@ -1642,7 +1569,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "60581d1527367fc4", + "valueHash": "5530bc1e89316fe8", "containsCanary": false } ], @@ -1653,10 +1580,10 @@ } }, "beforeAction": { - "at": 1480, - "url": "http://127.0.0.1:3000/#/editor/rd-test-84fc94-1", + "at": 1503, + "url": "http://127.0.0.1:3000/#/editor/rd-test-f95995-1", "title": "Conduit", - "domHash": "5e4f35896b0a0efe", + "domHash": "319c3f111f0df4bf", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -1668,15 +1595,15 @@ "accessDenied": false }, "semanticDom": { - "textHash": "5bd3d7b2b57f2618", + "textHash": "dcdc0f6db71ab4cc", "visualHash": "b85410fa0ea5a358", - "text": "conduit Source code Home New Article rdq1784818988 Update Article conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", + "text": "conduit Source code Home New Article rdq1785054823102 Update Article conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "input", "type": "text", "name": "title", - "valueHash": "ac458f73e769bb30", + "valueHash": "b1ecbb2c73c74aae", "checked": false, "disabled": false, "visible": true @@ -1685,7 +1612,7 @@ "tag": "input", "type": "text", "name": "description", - "valueHash": "92b8ba20633a1da3", + "valueHash": "7ecc020bffae0253", "checked": false, "disabled": false, "visible": true @@ -1694,7 +1621,7 @@ "tag": "textarea", "type": "textarea", "name": "body", - "valueHash": "c513fc7b75471075", + "valueHash": "6c0eafd99f29ca4d", "disabled": false, "visible": true }, @@ -1702,7 +1629,7 @@ "tag": "input", "type": "text", "name": "tags", - "valueHash": "495fcb93435d0a3e", + "valueHash": "ca4dbf3dc5193203", "checked": false, "disabled": false, "visible": true @@ -1722,7 +1649,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "60581d1527367fc4", + "valueHash": "5530bc1e89316fe8", "containsCanary": false } ], @@ -1735,10 +1662,10 @@ "networkSettled": true, "targetBusyAfter": false, "after": { - "at": 2481, + "at": 2512, "url": "http://127.0.0.1:3000/#/", "title": "Conduit", - "domHash": "72e1c5d77b56bbde", + "domHash": "f12a3cec7e00e6bc", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -1750,9 +1677,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "ef3e57007eeb4737", + "textHash": "97e2b175e91d32b0", "visualHash": "72ad38eb67085423", - "text": "conduit Source code Home New Article rdq1784818988 Your Feed Global Feed Articles not available. Popular Tags RD_TEST_84FC94_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", + "text": "conduit Source code Home New Article rdq1785054823102 Your Feed Global Feed Articles not available. Popular Tags RD_TEST_F95995_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "button", @@ -1783,7 +1710,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "60581d1527367fc4", + "valueHash": "5530bc1e89316fe8", "containsCanary": false } ], @@ -1793,7 +1720,7 @@ "indexedDb": [] } }, - "snapshotIndex": "snapshots/RD-003.index.json" + "snapshotIndex": "snapshots/RD-002.index.json" }, "verdict": "VERIFIED", "evidenceLevel": 2, @@ -1801,10 +1728,10 @@ "detectorMatches": [] }, { - "id": "RD-004", + "id": "RD-003", "action": { - "id": "daae7fa87fc6", - "pageUrl": "http://127.0.0.1:3000/#/editor/rd-test-84fc94-1", + "id": "4634557aadaa", + "pageUrl": "http://127.0.0.1:3000/#/editor/rd-test-f95995-1", "label": "New Article", "activation": "click", "kind": "navigation", @@ -1854,9 +1781,9 @@ "fields": [] }, "evidence": { - "startedAt": "2026-07-23T15:04:23.589Z", - "durationMs": 2432, - "canary": "RD_TEST_2F0727", + "startedAt": "2026-07-26T08:35:18.673Z", + "durationMs": 2527, + "canary": "RD_TEST_4340A7", "network": [], "console": [], "pageErrors": [], @@ -1874,14 +1801,14 @@ "weight": 92, "matchCount": 0, "visibleCount": 0, - "elapsedMs": 3 + "elapsedMs": 2 }, { "strategy": "role", "weight": 82, "matchCount": 1, "visibleCount": 1, - "elapsedMs": 5 + "elapsedMs": 3 } ], "chosenStrategy": "role", @@ -1889,10 +1816,10 @@ "retryCount": 0 }, "before": { - "at": 1429, - "url": "http://127.0.0.1:3000/#/editor/rd-test-84fc94-1", + "at": 1531, + "url": "http://127.0.0.1:3000/#/editor/rd-test-f95995-1", "title": "Conduit", - "domHash": "5e4f35896b0a0efe", + "domHash": "319c3f111f0df4bf", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -1904,15 +1831,15 @@ "accessDenied": false }, "semanticDom": { - "textHash": "5bd3d7b2b57f2618", + "textHash": "dcdc0f6db71ab4cc", "visualHash": "b85410fa0ea5a358", - "text": "conduit Source code Home New Article rdq1784818988 Update Article conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", + "text": "conduit Source code Home New Article rdq1785054823102 Update Article conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "input", "type": "text", "name": "title", - "valueHash": "ac458f73e769bb30", + "valueHash": "b1ecbb2c73c74aae", "checked": false, "disabled": false, "visible": true @@ -1921,7 +1848,7 @@ "tag": "input", "type": "text", "name": "description", - "valueHash": "92b8ba20633a1da3", + "valueHash": "7ecc020bffae0253", "checked": false, "disabled": false, "visible": true @@ -1930,7 +1857,7 @@ "tag": "textarea", "type": "textarea", "name": "body", - "valueHash": "c513fc7b75471075", + "valueHash": "6c0eafd99f29ca4d", "disabled": false, "visible": true }, @@ -1938,7 +1865,7 @@ "tag": "input", "type": "text", "name": "tags", - "valueHash": "495fcb93435d0a3e", + "valueHash": "ca4dbf3dc5193203", "checked": false, "disabled": false, "visible": true @@ -1958,7 +1885,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "60581d1527367fc4", + "valueHash": "5530bc1e89316fe8", "containsCanary": false } ], @@ -1969,10 +1896,10 @@ } }, "beforeAction": { - "at": 1438, - "url": "http://127.0.0.1:3000/#/editor/rd-test-84fc94-1", + "at": 1538, + "url": "http://127.0.0.1:3000/#/editor/rd-test-f95995-1", "title": "Conduit", - "domHash": "5e4f35896b0a0efe", + "domHash": "319c3f111f0df4bf", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -1984,15 +1911,15 @@ "accessDenied": false }, "semanticDom": { - "textHash": "5bd3d7b2b57f2618", + "textHash": "dcdc0f6db71ab4cc", "visualHash": "b85410fa0ea5a358", - "text": "conduit Source code Home New Article rdq1784818988 Update Article conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", + "text": "conduit Source code Home New Article rdq1785054823102 Update Article conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "input", "type": "text", "name": "title", - "valueHash": "ac458f73e769bb30", + "valueHash": "b1ecbb2c73c74aae", "checked": false, "disabled": false, "visible": true @@ -2001,7 +1928,7 @@ "tag": "input", "type": "text", "name": "description", - "valueHash": "92b8ba20633a1da3", + "valueHash": "7ecc020bffae0253", "checked": false, "disabled": false, "visible": true @@ -2010,7 +1937,7 @@ "tag": "textarea", "type": "textarea", "name": "body", - "valueHash": "c513fc7b75471075", + "valueHash": "6c0eafd99f29ca4d", "disabled": false, "visible": true }, @@ -2018,7 +1945,7 @@ "tag": "input", "type": "text", "name": "tags", - "valueHash": "495fcb93435d0a3e", + "valueHash": "ca4dbf3dc5193203", "checked": false, "disabled": false, "visible": true @@ -2038,7 +1965,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "60581d1527367fc4", + "valueHash": "5530bc1e89316fe8", "containsCanary": false } ], @@ -2051,10 +1978,10 @@ "networkSettled": true, "targetBusyAfter": false, "after": { - "at": 2428, + "at": 2524, "url": "http://127.0.0.1:3000/#/editor", "title": "Conduit", - "domHash": "cda756a29befbf68", + "domHash": "5ebc0985cd298024", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -2066,9 +1993,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "ba9ba6af2ee2f3df", + "textHash": "623d2b57c26f13d5", "visualHash": "b85410fa0ea5a358", - "text": "conduit Source code Home New Article rdq1784818988 Publish Article conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", + "text": "conduit Source code Home New Article rdq1785054823102 Publish Article conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "input", @@ -2120,7 +2047,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "60581d1527367fc4", + "valueHash": "5530bc1e89316fe8", "containsCanary": false } ], @@ -2130,7 +2057,7 @@ "indexedDb": [] } }, - "snapshotIndex": "snapshots/RD-004.index.json" + "snapshotIndex": "snapshots/RD-003.index.json" }, "verdict": "VERIFIED", "evidenceLevel": 1, @@ -2138,10 +2065,10 @@ "detectorMatches": [] }, { - "id": "RD-005", + "id": "RD-004", "action": { - "id": "6602a97ee255", - "pageUrl": "http://127.0.0.1:3000/#/editor/rd-test-84fc94-1", + "id": "4da0f6d01b9f", + "pageUrl": "http://127.0.0.1:3000/#/editor/rd-test-f95995-1", "label": "Update Article", "activation": "submit", "kind": "mutation", @@ -2175,7 +2102,7 @@ "required": true, "disabled": false, "name": "title", - "label": "RD_TEST_84FC94_1", + "label": "RD_TEST_F95995_1", "placeholder": "Article Title" }, { @@ -2185,7 +2112,7 @@ "required": true, "disabled": false, "name": "description", - "label": "RD_TEST_84FC94_2", + "label": "RD_TEST_F95995_2", "placeholder": "What's this article about?" }, { @@ -2204,37 +2131,37 @@ "required": false, "disabled": false, "name": "tags", - "label": "RD_TEST_84FC94_4", + "label": "RD_TEST_F95995_4", "placeholder": "Enter tags" } ] }, "evidence": { - "startedAt": "2026-07-23T15:04:26.100Z", - "durationMs": 7165, - "canary": "RD_TEST_F12177", + "startedAt": "2026-07-26T08:35:21.244Z", + "durationMs": 7327, + "canary": "RD_TEST_612495", "network": [ { "id": "net-1", "method": "PUT", - "url": "http://127.0.0.1:3000/api/articles/rd-test-84fc94-1", + "url": "http://127.0.0.1:3000/api/articles/rd-test-f95995-1", "resourceType": "xhr", - "startedAt": 1562, + "startedAt": 1639, "status": 200, "ok": true, - "finishedAt": 1573, + "finishedAt": 1651, "contentType": "application/json", - "resourceTypeHint": "rd-test-84fc94-1" + "resourceTypeHint": "rd-test-f95995-1" }, { "id": "net-2", "method": "GET", "url": "http://127.0.0.1:3000/src/assets/smiley-cyrus.jpeg", "resourceType": "image", - "startedAt": 1578, + "startedAt": 1656, "status": 200, "ok": true, - "finishedAt": 1586, + "finishedAt": 1661, "contentType": "image/jpeg", "resourceTypeHint": "smiley-cyrus.jpeg" }, @@ -2243,70 +2170,70 @@ "method": "GET", "url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwlxdu.woff2", "resourceType": "font", - "startedAt": 1585, + "startedAt": 1665, "status": 200, "ok": true, - "finishedAt": 1632, + "finishedAt": 1712, "contentType": "font/woff2", "resourceTypeHint": "6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwlxdu.woff2" }, { "id": "net-4", "method": "GET", - "url": "http://127.0.0.1:3000/api/articles/rd-test-f12177-1/comments", + "url": "http://127.0.0.1:3000/api/articles/rd-test-612495-1/comments", "resourceType": "xhr", - "startedAt": 1588, + "startedAt": 1668, "status": 200, "ok": true, - "finishedAt": 1597, + "finishedAt": 1679, "contentType": "application/json", "resourceTypeHint": "comments" }, { "id": "net-5", "method": "GET", - "url": "http://127.0.0.1:3000/api/articles/rd-test-f12177-1", + "url": "http://127.0.0.1:3000/api/articles/rd-test-612495-1", "resourceType": "xhr", - "startedAt": 1588, + "startedAt": 1669, "status": 200, "ok": true, "contentType": "application/json", - "resourceTypeHint": "rd-test-f12177-1", - "finishedAt": 1601 + "resourceTypeHint": "rd-test-612495-1", + "finishedAt": 1686 }, { "id": "net-6", "method": "GET", - "url": "http://127.0.0.1:3000/api/articles/rd-test-f12177-1/comments", + "url": "http://127.0.0.1:3000/api/articles/rd-test-612495-1/comments", "resourceType": "xhr", - "startedAt": 1589, + "startedAt": 1670, "status": 200, "ok": true, - "finishedAt": 1598, + "finishedAt": 1680, "contentType": "application/json", "resourceTypeHint": "comments" }, { "id": "net-7", "method": "GET", - "url": "http://127.0.0.1:3000/api/articles/rd-test-f12177-1", + "url": "http://127.0.0.1:3000/api/articles/rd-test-612495-1", "resourceType": "xhr", - "startedAt": 1589, + "startedAt": 1670, "status": 200, "ok": true, - "finishedAt": 1614, + "finishedAt": 1686, "contentType": "application/json", - "resourceTypeHint": "rd-test-f12177-1" + "resourceTypeHint": "rd-test-612495-1" }, { "id": "net-8", "method": "GET", "url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwlxdu.woff2", "resourceType": "font", - "startedAt": 1619, + "startedAt": 1718, "status": 200, "ok": true, - "finishedAt": 1666, + "finishedAt": 1763, "contentType": "font/woff2", "resourceTypeHint": "6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwlxdu.woff2" }, @@ -2315,22 +2242,22 @@ "method": "GET", "url": "http://127.0.0.1:3000/", "resourceType": "document", - "startedAt": 2692, + "startedAt": 2751, "status": 200, "ok": true, "contentType": "text/html", "resourceTypeHint": "resource", - "finishedAt": 2703 + "finishedAt": 2760 }, { "id": "net-10", "method": "GET", "url": "http://127.0.0.1:3000/@vite/client", "resourceType": "script", - "startedAt": 2701, + "startedAt": 2758, "status": 200, "ok": true, - "finishedAt": 2711, + "finishedAt": 2772, "contentType": "text/javascript", "resourceTypeHint": "client" }, @@ -2339,10 +2266,10 @@ "method": "GET", "url": "http://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css", "resourceType": "stylesheet", - "startedAt": 2701, + "startedAt": 2759, "status": 307, "ok": false, - "finishedAt": 2705, + "finishedAt": 2762, "location": "https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css", "resourceTypeHint": "ionicons.min.css" }, @@ -2351,22 +2278,22 @@ "method": "GET", "url": "http://fonts.googleapis.com/css?family=Titillium+Web:700|Source+Serif+Pro:400,700|Merriweather+Sans:400,700|Source+Sans+Pro:400,300,600,700,300italic,400italic,600italic,700italic", "resourceType": "stylesheet", - "startedAt": 2701, + "startedAt": 2759, "status": 200, "ok": true, + "finishedAt": 2807, "contentType": "text/css", - "resourceTypeHint": "css", - "finishedAt": 2780 + "resourceTypeHint": "css" }, { "id": "net-13", "method": "GET", "url": "http://127.0.0.1:3000/src/main.jsx", "resourceType": "script", - "startedAt": 2702, + "startedAt": 2759, "status": 200, "ok": true, - "finishedAt": 2709, + "finishedAt": 2767, "contentType": "text/javascript", "resourceTypeHint": "main.jsx" }, @@ -2375,10 +2302,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/@react-refresh", "resourceType": "script", - "startedAt": 2703, + "startedAt": 2760, "status": 200, "ok": true, - "finishedAt": 2722, + "finishedAt": 2773, "contentType": "text/javascript", "resourceTypeHint": "@react-refresh" }, @@ -2387,10 +2314,10 @@ "method": "GET", "url": "https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css", "resourceType": "stylesheet", - "startedAt": 2705, + "startedAt": 2762, "status": 200, "ok": true, - "finishedAt": 2835, + "finishedAt": 3053, "contentType": "text/css", "resourceTypeHint": "ionicons.min.css" }, @@ -2399,10 +2326,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/node_modules/.vite/deps/react_jsx-dev-runtime.js?v=96de0870", "resourceType": "script", - "startedAt": 2712, + "startedAt": 2768, "status": 200, "ok": true, - "finishedAt": 2723, + "finishedAt": 2778, "contentType": "text/javascript", "resourceTypeHint": "react_jsx-dev-runtime.js" }, @@ -2411,10 +2338,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/node_modules/.vite/deps/react.js?v=96de0870", "resourceType": "script", - "startedAt": 2713, + "startedAt": 2768, "status": 200, "ok": true, - "finishedAt": 2726, + "finishedAt": 2778, "contentType": "text/javascript", "resourceTypeHint": "react.js" }, @@ -2423,10 +2350,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/node_modules/.vite/deps/react-dom_client.js?v=96de0870", "resourceType": "script", - "startedAt": 2714, + "startedAt": 2769, "status": 200, "ok": true, - "finishedAt": 2743, + "finishedAt": 2805, "contentType": "text/javascript", "resourceTypeHint": "react-dom_client.js" }, @@ -2435,10 +2362,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/node_modules/.vite/deps/react-router-dom.js?v=96de0870", "resourceType": "script", - "startedAt": 2714, + "startedAt": 2769, "status": 200, "ok": true, - "finishedAt": 2753, + "finishedAt": 2799, "contentType": "text/javascript", "resourceTypeHint": "react-router-dom.js" }, @@ -2447,10 +2374,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/App.jsx", "resourceType": "script", - "startedAt": 2714, + "startedAt": 2770, "status": 200, "ok": true, - "finishedAt": 2736, + "finishedAt": 2787, "contentType": "text/javascript", "resourceTypeHint": "App.jsx" }, @@ -2459,10 +2386,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/context/AuthContext.jsx", "resourceType": "script", - "startedAt": 2714, + "startedAt": 2771, "status": 200, "ok": true, - "finishedAt": 2737, + "finishedAt": 2788, "contentType": "text/javascript", "resourceTypeHint": "AuthContext.jsx" }, @@ -2471,10 +2398,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/styles.css", "resourceType": "script", - "startedAt": 2715, + "startedAt": 2771, "status": 200, "ok": true, - "finishedAt": 2738, + "finishedAt": 2789, "contentType": "text/javascript", "resourceTypeHint": "styles.css" }, @@ -2483,10 +2410,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/index.css", "resourceType": "script", - "startedAt": 2716, + "startedAt": 2771, "status": 200, "ok": true, - "finishedAt": 2736, + "finishedAt": 2788, "contentType": "text/javascript", "resourceTypeHint": "index.css" }, @@ -2495,10 +2422,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/reportWebVitals.js", "resourceType": "script", - "startedAt": 2716, + "startedAt": 2772, "status": 200, "ok": true, - "finishedAt": 2738, + "finishedAt": 2789, "contentType": "text/javascript", "resourceTypeHint": "reportWebVitals.js" }, @@ -2507,10 +2434,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/routes/Article/Article.jsx", "resourceType": "script", - "startedAt": 2717, + "startedAt": 2773, "status": 200, "ok": true, - "finishedAt": 2739, + "finishedAt": 2789, "contentType": "text/javascript", "resourceTypeHint": "Article.jsx" }, @@ -2519,10 +2446,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/routes/Article/CommentsSection.jsx", "resourceType": "script", - "startedAt": 2717, + "startedAt": 2773, "status": 200, "ok": true, - "finishedAt": 2740, + "finishedAt": 2790, "contentType": "text/javascript", "resourceTypeHint": "CommentsSection.jsx" }, @@ -2531,10 +2458,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/routes/ArticleEditor.jsx", "resourceType": "script", - "startedAt": 2717, + "startedAt": 2773, "status": 200, "ok": true, - "finishedAt": 2740, + "finishedAt": 2792, "contentType": "text/javascript", "resourceTypeHint": "ArticleEditor.jsx" }, @@ -2543,10 +2470,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/routes/Home.jsx", "resourceType": "script", - "startedAt": 2717, + "startedAt": 2774, "status": 200, "ok": true, - "finishedAt": 2744, + "finishedAt": 2792, "contentType": "text/javascript", "resourceTypeHint": "Home.jsx" }, @@ -2555,10 +2482,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/routes/HomeArticles.jsx", "resourceType": "script", - "startedAt": 2718, + "startedAt": 2774, "status": 200, "ok": true, - "finishedAt": 2745, + "finishedAt": 2794, "contentType": "text/javascript", "resourceTypeHint": "HomeArticles.jsx" }, @@ -2567,10 +2494,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/routes/Login.jsx", "resourceType": "script", - "startedAt": 2718, + "startedAt": 2774, "status": 200, "ok": true, - "finishedAt": 2745, + "finishedAt": 2794, "contentType": "text/javascript", "resourceTypeHint": "Login.jsx" }, @@ -2579,10 +2506,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/routes/NotFound.jsx", "resourceType": "script", - "startedAt": 2718, + "startedAt": 2774, "status": 200, "ok": true, - "finishedAt": 2745, + "finishedAt": 2795, "contentType": "text/javascript", "resourceTypeHint": "NotFound.jsx" }, @@ -2591,10 +2518,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/routes/Profile/Profile.jsx", "resourceType": "script", - "startedAt": 2718, + "startedAt": 2774, "status": 200, "ok": true, - "finishedAt": 2747, + "finishedAt": 2795, "contentType": "text/javascript", "resourceTypeHint": "Profile.jsx" }, @@ -2603,10 +2530,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/routes/Profile/ProfileArticles.jsx", "resourceType": "script", - "startedAt": 2718, + "startedAt": 2775, "status": 200, "ok": true, - "finishedAt": 2747, + "finishedAt": 2798, "contentType": "text/javascript", "resourceTypeHint": "ProfileArticles.jsx" }, @@ -2615,10 +2542,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/routes/Profile/ProfileFavArticles.jsx", "resourceType": "script", - "startedAt": 2720, + "startedAt": 2775, "status": 200, "ok": true, - "finishedAt": 2749, + "finishedAt": 2799, "contentType": "text/javascript", "resourceTypeHint": "ProfileFavArticles.jsx" }, @@ -2627,10 +2554,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/routes/Settings.jsx", "resourceType": "script", - "startedAt": 2722, + "startedAt": 2775, "status": 200, "ok": true, - "finishedAt": 2749, + "finishedAt": 2801, "contentType": "text/javascript", "resourceTypeHint": "Settings.jsx" }, @@ -2639,10 +2566,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/routes/SignUp.jsx", "resourceType": "script", - "startedAt": 2722, + "startedAt": 2776, "status": 200, "ok": true, - "finishedAt": 2749, + "finishedAt": 2801, "contentType": "text/javascript", "resourceTypeHint": "SignUp.jsx" }, @@ -2651,10 +2578,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/@fs/F:/RealDone/work/real-projects/conduit-postgres/node_modules/vite/dist/client/env.mjs", "resourceType": "script", - "startedAt": 2723, + "startedAt": 2776, "status": 200, "ok": true, - "finishedAt": 2749, + "finishedAt": 2801, "contentType": "text/javascript", "resourceTypeHint": "env.mjs" }, @@ -2663,10 +2590,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/node_modules/.vite/deps/chunk-MP6PTA7G.js?v=96de0870", "resourceType": "script", - "startedAt": 2723, + "startedAt": 2778, "status": 200, "ok": true, - "finishedAt": 2781, + "finishedAt": 2805, "contentType": "text/javascript", "resourceTypeHint": "chunk-MP6PTA7G.js" }, @@ -2675,10 +2602,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/node_modules/.vite/deps/chunk-G3PMV62Z.js?v=96de0870", "resourceType": "script", - "startedAt": 2723, + "startedAt": 2779, "status": 200, "ok": true, - "finishedAt": 2754, + "finishedAt": 2802, "contentType": "text/javascript", "resourceTypeHint": "chunk-G3PMV62Z.js" }, @@ -2687,10 +2614,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/Footer/index.js", "resourceType": "script", - "startedAt": 2741, + "startedAt": 2790, "status": 200, "ok": true, - "finishedAt": 2781, + "finishedAt": 2806, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, @@ -2699,10 +2626,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/Navbar/index.js", "resourceType": "script", - "startedAt": 2742, + "startedAt": 2791, "status": 200, "ok": true, - "finishedAt": 2781, + "finishedAt": 2806, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, @@ -2711,10 +2638,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/services/getUser.js", "resourceType": "script", - "startedAt": 2742, + "startedAt": 2795, "status": 200, "ok": true, - "finishedAt": 2781, + "finishedAt": 2810, "contentType": "text/javascript", "resourceTypeHint": "getUser.js" }, @@ -2723,10 +2650,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/node_modules/.vite/deps/markdown-to-jsx.js?v=96de0870", "resourceType": "script", - "startedAt": 2747, + "startedAt": 2795, "status": 200, "ok": true, - "finishedAt": 2788, + "finishedAt": 2813, "contentType": "text/javascript", "resourceTypeHint": "markdown-to-jsx.js" }, @@ -2735,10 +2662,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/ArticleMeta/index.js", "resourceType": "script", - "startedAt": 2747, + "startedAt": 2796, "status": 200, "ok": true, - "finishedAt": 2788, + "finishedAt": 2811, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, @@ -2747,10 +2674,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/ArticlesButtons/index.js", "resourceType": "script", - "startedAt": 2748, + "startedAt": 2796, "status": 200, "ok": true, - "finishedAt": 2788, + "finishedAt": 2811, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, @@ -2759,10 +2686,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/ArticleTags/index.js", "resourceType": "script", - "startedAt": 2748, + "startedAt": 2796, "status": 200, "ok": true, - "finishedAt": 2788, + "finishedAt": 2811, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, @@ -2771,10 +2698,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/BannerContainer/index.js", "resourceType": "script", - "startedAt": 2748, + "startedAt": 2797, "status": 200, "ok": true, - "finishedAt": 2788, + "finishedAt": 2812, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, @@ -2783,202 +2710,202 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/services/getArticle.js", "resourceType": "script", - "startedAt": 2748, + "startedAt": 2798, "status": 200, "ok": true, + "finishedAt": 2815, "contentType": "text/javascript", - "resourceTypeHint": "getArticle.js", - "finishedAt": 2789 + "resourceTypeHint": "getArticle.js" }, { "id": "net-49", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/ArticleEditorForm/index.js", + "url": "http://127.0.0.1:3000/src/components/CommentEditor/index.js", "resourceType": "script", - "startedAt": 2749, + "startedAt": 2798, "status": 200, "ok": true, - "finishedAt": 2791, + "finishedAt": 2815, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, { "id": "net-50", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/ContainerRow/index.js", + "url": "http://127.0.0.1:3000/src/components/CommentList/index.js", "resourceType": "script", - "startedAt": 2749, + "startedAt": 2799, "status": 200, "ok": true, - "finishedAt": 2792, + "finishedAt": 2816, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, { "id": "net-51", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/CommentEditor/index.js", + "url": "http://127.0.0.1:3000/src/components/ArticleEditorForm/index.js", "resourceType": "script", - "startedAt": 2750, + "startedAt": 2799, "status": 200, "ok": true, - "finishedAt": 2792, + "finishedAt": 2816, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, { "id": "net-52", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/CommentList/index.js", + "url": "http://127.0.0.1:3000/src/components/ContainerRow/index.js", "resourceType": "script", - "startedAt": 2753, + "startedAt": 2801, "status": 200, "ok": true, - "finishedAt": 2792, + "finishedAt": 2818, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, { "id": "net-53", "method": "GET", - "url": "http://127.0.0.1:3000/node_modules/.vite/deps/chunk-HYJYOVZJ.js?v=96de0870", + "url": "http://127.0.0.1:3000/src/components/FeedToggler/index.js", "resourceType": "script", - "startedAt": 2753, + "startedAt": 2802, "status": 200, "ok": true, - "finishedAt": 2795, + "finishedAt": 2818, "contentType": "text/javascript", - "resourceTypeHint": "chunk-HYJYOVZJ.js" + "resourceTypeHint": "index.js" }, { "id": "net-54", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/FeedToggler/index.js", + "url": "http://127.0.0.1:3000/src/context/FeedContext.jsx", "resourceType": "script", - "startedAt": 2754, + "startedAt": 2802, "status": 200, "ok": true, - "finishedAt": 2798, + "finishedAt": 2819, "contentType": "text/javascript", - "resourceTypeHint": "index.js" + "resourceTypeHint": "FeedContext.jsx" }, { "id": "net-55", "method": "GET", - "url": "http://127.0.0.1:3000/src/context/FeedContext.jsx", + "url": "http://127.0.0.1:3000/src/components/PopularTags/index.js", "resourceType": "script", - "startedAt": 2754, + "startedAt": 2802, "status": 200, "ok": true, - "finishedAt": 2799, + "finishedAt": 2819, "contentType": "text/javascript", - "resourceTypeHint": "FeedContext.jsx" + "resourceTypeHint": "index.js" }, { "id": "net-56", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/PopularTags/index.js", + "url": "http://127.0.0.1:3000/src/components/ArticlesPagination/index.js", "resourceType": "script", - "startedAt": 2754, + "startedAt": 2802, "status": 200, "ok": true, - "finishedAt": 2798, + "finishedAt": 2819, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, { "id": "net-57", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/ArticlesPagination/index.js", + "url": "http://127.0.0.1:3000/src/components/ArticlesPreview/index.js", "resourceType": "script", - "startedAt": 2755, + "startedAt": 2803, "status": 200, "ok": true, - "finishedAt": 2798, + "finishedAt": 2819, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, { "id": "net-58", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/ArticlesPreview/index.js", + "url": "http://127.0.0.1:3000/src/hooks/useArticles.js", "resourceType": "script", - "startedAt": 2755, + "startedAt": 2803, "status": 200, "ok": true, - "finishedAt": 2799, + "finishedAt": 2821, "contentType": "text/javascript", - "resourceTypeHint": "index.js" + "resourceTypeHint": "useArticles.js" }, { "id": "net-59", "method": "GET", - "url": "http://127.0.0.1:3000/src/hooks/useArticles.js", + "url": "http://127.0.0.1:3000/src/components/AuthPageContainer/index.js", "resourceType": "script", - "startedAt": 2755, + "startedAt": 2803, "status": 200, "ok": true, - "finishedAt": 2799, + "finishedAt": 2821, "contentType": "text/javascript", - "resourceTypeHint": "useArticles.js" + "resourceTypeHint": "index.js" }, { "id": "net-60", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/AuthPageContainer/index.js", + "url": "http://127.0.0.1:3000/src/components/LoginForm/index.js", "resourceType": "script", - "startedAt": 2755, + "startedAt": 2803, "status": 200, "ok": true, - "finishedAt": 2799, + "finishedAt": 2822, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, { "id": "net-61", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/LoginForm/index.js", + "url": "http://127.0.0.1:3000/src/components/AuthorInfo/index.js", "resourceType": "script", - "startedAt": 2756, + "startedAt": 2804, "status": 200, "ok": true, - "finishedAt": 2799, + "finishedAt": 2823, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, { "id": "net-62", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/AuthorInfo/index.js", + "url": "http://127.0.0.1:3000/src/components/NavItem/index.js", "resourceType": "script", - "startedAt": 2756, + "startedAt": 2804, "status": 200, "ok": true, - "finishedAt": 2799, + "finishedAt": 2823, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, { "id": "net-63", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/NavItem/index.js", + "url": "http://127.0.0.1:3000/node_modules/.vite/deps/chunk-HYJYOVZJ.js?v=96de0870", "resourceType": "script", - "startedAt": 2756, + "startedAt": 2804, "status": 200, "ok": true, - "finishedAt": 2799, + "finishedAt": 2825, "contentType": "text/javascript", - "resourceTypeHint": "index.js" + "resourceTypeHint": "chunk-HYJYOVZJ.js" }, { "id": "net-64", "method": "GET", "url": "http://127.0.0.1:3000/src/components/SettingsForm/index.js", "resourceType": "script", - "startedAt": 2757, + "startedAt": 2804, "status": 200, "ok": true, - "finishedAt": 2799, + "finishedAt": 2825, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, @@ -2987,10 +2914,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/SignUpForm/index.js", "resourceType": "script", - "startedAt": 2757, + "startedAt": 2805, "status": 200, "ok": true, - "finishedAt": 2799, + "finishedAt": 2826, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, @@ -2999,10 +2926,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/Footer/Footer.jsx", "resourceType": "script", - "startedAt": 2786, + "startedAt": 2806, "status": 200, "ok": true, - "finishedAt": 2800, + "finishedAt": 2828, "contentType": "text/javascript", "resourceTypeHint": "Footer.jsx" }, @@ -3011,10 +2938,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/Navbar/Navbar.jsx", "resourceType": "script", - "startedAt": 2789, + "startedAt": 2806, "status": 200, "ok": true, - "finishedAt": 2807, + "finishedAt": 2828, "contentType": "text/javascript", "resourceTypeHint": "Navbar.jsx" }, @@ -3023,10 +2950,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/node_modules/.vite/deps/axios.js?v=96de0870", "resourceType": "script", - "startedAt": 2790, + "startedAt": 2810, "status": 200, "ok": true, - "finishedAt": 2807, + "finishedAt": 2831, "contentType": "text/javascript", "resourceTypeHint": "axios.js" }, @@ -3035,10 +2962,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/helpers/errorHandler.js", "resourceType": "script", - "startedAt": 2791, + "startedAt": 2810, "status": 200, "ok": true, - "finishedAt": 2810, + "finishedAt": 2828, "contentType": "text/javascript", "resourceTypeHint": "errorHandler.js" }, @@ -3047,10 +2974,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/ArticleMeta/ArticleMeta.jsx", "resourceType": "script", - "startedAt": 2792, + "startedAt": 2811, "status": 200, "ok": true, - "finishedAt": 2810, + "finishedAt": 2829, "contentType": "text/javascript", "resourceTypeHint": "ArticleMeta.jsx" }, @@ -3059,10 +2986,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/ArticlesButtons/ArticlesButtons.jsx", "resourceType": "script", - "startedAt": 2792, + "startedAt": 2812, "status": 200, "ok": true, - "finishedAt": 2810, + "finishedAt": 2829, "contentType": "text/javascript", "resourceTypeHint": "ArticlesButtons.jsx" }, @@ -3071,10 +2998,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/ArticleTags/ArticleTags.jsx", "resourceType": "script", - "startedAt": 2792, + "startedAt": 2812, "status": 200, "ok": true, - "finishedAt": 2810, + "finishedAt": 2831, "contentType": "text/javascript", "resourceTypeHint": "ArticleTags.jsx" }, @@ -3083,106 +3010,106 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/BannerContainer/BannerContainer.jsx", "resourceType": "script", - "startedAt": 2792, + "startedAt": 2813, "status": 200, "ok": true, - "finishedAt": 2810, + "finishedAt": 2831, "contentType": "text/javascript", "resourceTypeHint": "BannerContainer.jsx" }, { "id": "net-74", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/ArticleEditorForm/ArticleEditorForm.jsx", + "url": "http://127.0.0.1:3000/src/components/CommentEditor/CommentEditor.jsx", "resourceType": "script", - "startedAt": 2793, + "startedAt": 2816, "status": 200, "ok": true, - "finishedAt": 2810, + "finishedAt": 2832, "contentType": "text/javascript", - "resourceTypeHint": "ArticleEditorForm.jsx" + "resourceTypeHint": "CommentEditor.jsx" }, { "id": "net-75", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/ContainerRow/ContainerRow.jsx", + "url": "http://127.0.0.1:3000/src/components/CommentList/CommentList.jsx", "resourceType": "script", - "startedAt": 2793, + "startedAt": 2817, "status": 200, "ok": true, - "finishedAt": 2812, + "finishedAt": 2833, "contentType": "text/javascript", - "resourceTypeHint": "ContainerRow.jsx" + "resourceTypeHint": "CommentList.jsx" }, { "id": "net-76", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/CommentEditor/CommentEditor.jsx", + "url": "http://127.0.0.1:3000/src/components/ArticleEditorForm/ArticleEditorForm.jsx", "resourceType": "script", - "startedAt": 2793, + "startedAt": 2817, "status": 200, "ok": true, - "finishedAt": 2812, + "finishedAt": 2837, "contentType": "text/javascript", - "resourceTypeHint": "CommentEditor.jsx" + "resourceTypeHint": "ArticleEditorForm.jsx" }, { "id": "net-77", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/CommentList/CommentList.jsx", + "url": "http://127.0.0.1:3000/src/components/ContainerRow/ContainerRow.jsx", "resourceType": "script", - "startedAt": 2793, + "startedAt": 2820, "status": 200, "ok": true, - "finishedAt": 2812, + "finishedAt": 2838, "contentType": "text/javascript", - "resourceTypeHint": "CommentList.jsx" + "resourceTypeHint": "ContainerRow.jsx" }, { "id": "net-78", "method": "GET", "url": "http://127.0.0.1:3000/src/components/FeedToggler/FeedToggler.jsx", "resourceType": "script", - "startedAt": 2800, + "startedAt": 2820, "status": 200, "ok": true, - "finishedAt": 2817, + "finishedAt": 2838, "contentType": "text/javascript", "resourceTypeHint": "FeedToggler.jsx" }, { "id": "net-79", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/PopularTags/PopularTags.jsx", + "url": "http://127.0.0.1:3000/src/components/ArticlesPagination/ArticlesPagination.jsx", "resourceType": "script", - "startedAt": 2800, + "startedAt": 2823, "status": 200, "ok": true, - "finishedAt": 2818, + "finishedAt": 2839, "contentType": "text/javascript", - "resourceTypeHint": "PopularTags.jsx" + "resourceTypeHint": "ArticlesPagination.jsx" }, { "id": "net-80", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/ArticlesPagination/ArticlesPagination.jsx", + "url": "http://127.0.0.1:3000/src/components/PopularTags/PopularTags.jsx", "resourceType": "script", - "startedAt": 2800, + "startedAt": 2824, "status": 200, "ok": true, - "finishedAt": 2818, + "finishedAt": 2840, "contentType": "text/javascript", - "resourceTypeHint": "ArticlesPagination.jsx" + "resourceTypeHint": "PopularTags.jsx" }, { "id": "net-81", "method": "GET", "url": "http://127.0.0.1:3000/src/components/ArticlesPreview/ArticlesPreview.jsx", "resourceType": "script", - "startedAt": 2800, + "startedAt": 2824, "status": 200, "ok": true, - "finishedAt": 2818, + "finishedAt": 2840, "contentType": "text/javascript", "resourceTypeHint": "ArticlesPreview.jsx" }, @@ -3191,10 +3118,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/services/getArticles.js", "resourceType": "script", - "startedAt": 2800, + "startedAt": 2826, "status": 200, "ok": true, - "finishedAt": 2818, + "finishedAt": 2842, "contentType": "text/javascript", "resourceTypeHint": "getArticles.js" }, @@ -3203,10 +3130,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/AuthPageContainer/AuthPageContainer.jsx", "resourceType": "script", - "startedAt": 2801, + "startedAt": 2828, "status": 200, "ok": true, - "finishedAt": 2818, + "finishedAt": 2844, "contentType": "text/javascript", "resourceTypeHint": "AuthPageContainer.jsx" }, @@ -3215,58 +3142,58 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/LoginForm/LoginForm.jsx", "resourceType": "script", - "startedAt": 2801, + "startedAt": 2828, "status": 200, "ok": true, - "finishedAt": 2822, + "finishedAt": 2844, "contentType": "text/javascript", "resourceTypeHint": "LoginForm.jsx" }, { "id": "net-85", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/NavItem/NavItem.jsx", + "url": "http://127.0.0.1:3000/src/components/AuthorInfo/AuthorInfo.jsx", "resourceType": "script", - "startedAt": 2801, + "startedAt": 2829, "status": 200, "ok": true, - "finishedAt": 2822, + "finishedAt": 2844, "contentType": "text/javascript", - "resourceTypeHint": "NavItem.jsx" + "resourceTypeHint": "AuthorInfo.jsx" }, { "id": "net-86", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/SettingsForm/SettingsForm.jsx", + "url": "http://127.0.0.1:3000/src/components/NavItem/NavItem.jsx", "resourceType": "script", - "startedAt": 2801, + "startedAt": 2830, "status": 200, "ok": true, - "finishedAt": 2822, + "finishedAt": 2852, "contentType": "text/javascript", - "resourceTypeHint": "SettingsForm.jsx" + "resourceTypeHint": "NavItem.jsx" }, { "id": "net-87", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/AuthorInfo/AuthorInfo.jsx", + "url": "http://127.0.0.1:3000/src/components/SettingsForm/SettingsForm.jsx", "resourceType": "script", - "startedAt": 2801, + "startedAt": 2831, "status": 200, "ok": true, - "finishedAt": 2823, + "finishedAt": 2853, "contentType": "text/javascript", - "resourceTypeHint": "AuthorInfo.jsx" + "resourceTypeHint": "SettingsForm.jsx" }, { "id": "net-88", "method": "GET", "url": "http://127.0.0.1:3000/src/components/SignUpForm/SignUpForm.jsx", "resourceType": "script", - "startedAt": 2802, + "startedAt": 2831, "status": 200, "ok": true, - "finishedAt": 2823, + "finishedAt": 2852, "contentType": "text/javascript", "resourceTypeHint": "SignUpForm.jsx" }, @@ -3275,10 +3202,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/SourceCodeLink/index.js", "resourceType": "script", - "startedAt": 2802, + "startedAt": 2831, "status": 200, "ok": true, - "finishedAt": 2825, + "finishedAt": 2852, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, @@ -3287,10 +3214,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/Navbar/DropdownMenu.jsx", "resourceType": "script", - "startedAt": 2807, + "startedAt": 2832, "status": 200, "ok": true, - "finishedAt": 2826, + "finishedAt": 2854, "contentType": "text/javascript", "resourceTypeHint": "DropdownMenu.jsx" }, @@ -3299,10 +3226,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/helpers/dateFormatter.js", "resourceType": "script", - "startedAt": 2810, + "startedAt": 2832, "status": 200, "ok": true, - "finishedAt": 2829, + "finishedAt": 2854, "contentType": "text/javascript", "resourceTypeHint": "dateFormatter.js" }, @@ -3311,10 +3238,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/Avatar/index.js", "resourceType": "script", - "startedAt": 2810, + "startedAt": 2832, "status": 200, "ok": true, - "finishedAt": 2830, + "finishedAt": 2854, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, @@ -3323,10 +3250,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/ArticleAuthorButtons/index.js", "resourceType": "script", - "startedAt": 2811, + "startedAt": 2832, "status": 200, "ok": true, - "finishedAt": 2830, + "finishedAt": 2855, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, @@ -3335,10 +3262,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/FavButton/index.js", "resourceType": "script", - "startedAt": 2811, + "startedAt": 2833, "status": 200, "ok": true, - "finishedAt": 2830, + "finishedAt": 2855, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, @@ -3347,202 +3274,202 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/FollowButton/index.js", "resourceType": "script", - "startedAt": 2811, + "startedAt": 2836, "status": 200, "ok": true, - "finishedAt": 2833, + "finishedAt": 2856, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, { "id": "net-96", "method": "GET", - "url": "http://127.0.0.1:3000/src/services/setArticle.js", + "url": "http://127.0.0.1:3000/src/services/postComment.js", "resourceType": "script", - "startedAt": 2811, + "startedAt": 2837, "status": 200, "ok": true, - "finishedAt": 2833, + "finishedAt": 2856, "contentType": "text/javascript", - "resourceTypeHint": "setArticle.js" + "resourceTypeHint": "postComment.js" }, { "id": "net-97", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/FormFieldset/index.js", + "url": "http://127.0.0.1:3000/src/services/deleteComment.js", "resourceType": "script", - "startedAt": 2812, + "startedAt": 2838, "status": 200, "ok": true, - "finishedAt": 2833, + "finishedAt": 2857, "contentType": "text/javascript", - "resourceTypeHint": "index.js" + "resourceTypeHint": "deleteComment.js" }, { "id": "net-98", "method": "GET", - "url": "http://127.0.0.1:3000/src/services/postComment.js", + "url": "http://127.0.0.1:3000/src/services/getComments.js", "resourceType": "script", - "startedAt": 2812, + "startedAt": 2838, "status": 200, "ok": true, - "finishedAt": 2834, + "finishedAt": 2858, "contentType": "text/javascript", - "resourceTypeHint": "postComment.js" + "resourceTypeHint": "getComments.js" }, { "id": "net-99", "method": "GET", - "url": "http://127.0.0.1:3000/src/services/deleteComment.js", + "url": "http://127.0.0.1:3000/src/components/CommentList/CommentAuthor.jsx", "resourceType": "script", - "startedAt": 2812, + "startedAt": 2838, "status": 200, "ok": true, - "finishedAt": 2834, + "finishedAt": 2859, "contentType": "text/javascript", - "resourceTypeHint": "deleteComment.js" + "resourceTypeHint": "CommentAuthor.jsx" }, { "id": "net-100", "method": "GET", - "url": "http://127.0.0.1:3000/src/services/getComments.js", + "url": "http://127.0.0.1:3000/src/services/setArticle.js", "resourceType": "script", - "startedAt": 2812, + "startedAt": 2839, "status": 200, "ok": true, - "finishedAt": 2834, + "finishedAt": 2860, "contentType": "text/javascript", - "resourceTypeHint": "getComments.js" + "resourceTypeHint": "setArticle.js" }, { "id": "net-101", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/CommentList/CommentAuthor.jsx", + "url": "http://127.0.0.1:3000/src/components/FormFieldset/index.js", "resourceType": "script", - "startedAt": 2813, + "startedAt": 2839, "status": 200, "ok": true, - "finishedAt": 2835, + "finishedAt": 2860, "contentType": "text/javascript", - "resourceTypeHint": "CommentAuthor.jsx" + "resourceTypeHint": "index.js" }, { "id": "net-102", "method": "GET", "url": "http://127.0.0.1:3000/src/components/FeedToggler/FeedNavLink.jsx", "resourceType": "script", - "startedAt": 2821, + "startedAt": 2839, "status": 200, "ok": true, - "finishedAt": 2837, + "finishedAt": 2861, "contentType": "text/javascript", "resourceTypeHint": "FeedNavLink.jsx" }, { "id": "net-103", "method": "GET", - "url": "http://127.0.0.1:3000/src/services/getTags.js", + "url": "http://127.0.0.1:3000/node_modules/.vite/deps/react-paginate.js?v=96de0870", "resourceType": "script", - "startedAt": 2823, + "startedAt": 2840, "status": 200, "ok": true, - "finishedAt": 2838, + "finishedAt": 2861, "contentType": "text/javascript", - "resourceTypeHint": "getTags.js" + "resourceTypeHint": "react-paginate.js" }, { "id": "net-104", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/PopularTags/TagButton.jsx", + "url": "http://127.0.0.1:3000/src/services/getTags.js", "resourceType": "script", - "startedAt": 2825, + "startedAt": 2840, "status": 200, "ok": true, - "finishedAt": 2840, + "finishedAt": 2861, "contentType": "text/javascript", - "resourceTypeHint": "TagButton.jsx" + "resourceTypeHint": "getTags.js" }, { "id": "net-105", "method": "GET", - "url": "http://127.0.0.1:3000/node_modules/.vite/deps/react-paginate.js?v=96de0870", + "url": "http://127.0.0.1:3000/src/components/PopularTags/TagButton.jsx", "resourceType": "script", - "startedAt": 2825, + "startedAt": 2840, "status": 200, "ok": true, - "finishedAt": 2840, + "finishedAt": 2861, "contentType": "text/javascript", - "resourceTypeHint": "react-paginate.js" + "resourceTypeHint": "TagButton.jsx" }, { "id": "net-106", "method": "GET", "url": "http://127.0.0.1:3000/src/services/userLogin.js", "resourceType": "script", - "startedAt": 2827, + "startedAt": 2844, "status": 200, "ok": true, - "finishedAt": 2841, + "finishedAt": 2862, "contentType": "text/javascript", "resourceTypeHint": "userLogin.js" }, { "id": "net-107", "method": "GET", - "url": "http://127.0.0.1:3000/src/services/userUpdate.js", + "url": "http://127.0.0.1:3000/src/services/getProfile.js", "resourceType": "script", - "startedAt": 2828, + "startedAt": 2844, "status": 200, "ok": true, - "finishedAt": 2842, + "finishedAt": 2862, "contentType": "text/javascript", - "resourceTypeHint": "userUpdate.js" + "resourceTypeHint": "getProfile.js" }, { "id": "net-108", "method": "GET", - "url": "http://127.0.0.1:3000/src/services/getProfile.js", + "url": "http://127.0.0.1:3000/src/components/SourceCodeLink/SourceCodeLink.jsx", "resourceType": "script", - "startedAt": 2828, + "startedAt": 2857, "status": 200, "ok": true, - "finishedAt": 2842, + "finishedAt": 2865, "contentType": "text/javascript", - "resourceTypeHint": "getProfile.js" + "resourceTypeHint": "SourceCodeLink.jsx" }, { "id": "net-109", "method": "GET", "url": "http://127.0.0.1:3000/src/services/userSignUp.js", "resourceType": "script", - "startedAt": 2828, + "startedAt": 2858, "status": 200, "ok": true, - "finishedAt": 2842, + "finishedAt": 2866, "contentType": "text/javascript", "resourceTypeHint": "userSignUp.js" }, { "id": "net-110", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/SourceCodeLink/SourceCodeLink.jsx", + "url": "http://127.0.0.1:3000/src/services/userUpdate.js", "resourceType": "script", - "startedAt": 2829, + "startedAt": 2858, "status": 200, "ok": true, - "finishedAt": 2843, + "finishedAt": 2867, "contentType": "text/javascript", - "resourceTypeHint": "SourceCodeLink.jsx" + "resourceTypeHint": "userUpdate.js" }, { "id": "net-111", "method": "GET", "url": "http://127.0.0.1:3000/src/services/userLogout.js", "resourceType": "script", - "startedAt": 2829, + "startedAt": 2859, "status": 200, "ok": true, - "finishedAt": 2843, + "finishedAt": 2868, "contentType": "text/javascript", "resourceTypeHint": "userLogout.js" }, @@ -3551,58 +3478,58 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/Navbar/DropdownItem.jsx", "resourceType": "script", - "startedAt": 2833, + "startedAt": 2860, "status": 200, "ok": true, - "finishedAt": 2844, + "finishedAt": 2868, "contentType": "text/javascript", "resourceTypeHint": "DropdownItem.jsx" }, { "id": "net-113", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/ArticleAuthorButtons/ArticleAuthorButtons.jsx", + "url": "http://127.0.0.1:3000/src/components/Avatar/Avatar.jsx", "resourceType": "script", - "startedAt": 2833, + "startedAt": 2860, "status": 200, "ok": true, - "finishedAt": 2844, + "finishedAt": 2869, "contentType": "text/javascript", - "resourceTypeHint": "ArticleAuthorButtons.jsx" + "resourceTypeHint": "Avatar.jsx" }, { "id": "net-114", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/FavButton/FavButton.jsx", + "url": "http://127.0.0.1:3000/src/components/ArticleAuthorButtons/ArticleAuthorButtons.jsx", "resourceType": "script", - "startedAt": 2834, + "startedAt": 2860, "status": 200, "ok": true, - "finishedAt": 2845, + "finishedAt": 2869, "contentType": "text/javascript", - "resourceTypeHint": "FavButton.jsx" + "resourceTypeHint": "ArticleAuthorButtons.jsx" }, { "id": "net-115", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/Avatar/Avatar.jsx", + "url": "http://127.0.0.1:3000/src/components/FavButton/FavButton.jsx", "resourceType": "script", - "startedAt": 2834, + "startedAt": 2860, "status": 200, "ok": true, - "finishedAt": 2845, + "finishedAt": 2870, "contentType": "text/javascript", - "resourceTypeHint": "Avatar.jsx" + "resourceTypeHint": "FavButton.jsx" }, { "id": "net-116", "method": "GET", "url": "http://127.0.0.1:3000/src/components/FollowButton/FollowButton.jsx", "resourceType": "script", - "startedAt": 2834, + "startedAt": 2861, "status": 200, "ok": true, - "finishedAt": 2846, + "finishedAt": 2870, "contentType": "text/javascript", "resourceTypeHint": "FollowButton.jsx" }, @@ -3611,46 +3538,46 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/FormFieldset/FormFieldset.jsx", "resourceType": "script", - "startedAt": 2835, + "startedAt": 2862, "status": 200, "ok": true, - "finishedAt": 2846, + "finishedAt": 2871, "contentType": "text/javascript", "resourceTypeHint": "FormFieldset.jsx" }, { "id": "net-118", "method": "GET", - "url": "http://127.0.0.1:3000/src/services/deleteArticle.js", + "url": "http://127.0.0.1:3000/src/assets/smiley-cyrus.jpeg?import", "resourceType": "script", - "startedAt": 2846, + "startedAt": 2869, "status": 200, "ok": true, - "finishedAt": 2851, + "finishedAt": 2874, "contentType": "text/javascript", - "resourceTypeHint": "deleteArticle.js" + "resourceTypeHint": "smiley-cyrus.jpeg" }, { "id": "net-119", "method": "GET", - "url": "http://127.0.0.1:3000/src/assets/smiley-cyrus.jpeg?import", + "url": "http://127.0.0.1:3000/src/services/deleteArticle.js", "resourceType": "script", - "startedAt": 2846, + "startedAt": 2870, "status": 200, "ok": true, - "finishedAt": 2852, + "finishedAt": 2874, "contentType": "text/javascript", - "resourceTypeHint": "smiley-cyrus.jpeg" + "resourceTypeHint": "deleteArticle.js" }, { "id": "net-120", "method": "GET", "url": "http://127.0.0.1:3000/src/services/toggleFav.js", "resourceType": "script", - "startedAt": 2846, + "startedAt": 2871, "status": 200, "ok": true, - "finishedAt": 2852, + "finishedAt": 2875, "contentType": "text/javascript", "resourceTypeHint": "toggleFav.js" }, @@ -3659,10 +3586,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/services/toggleFollow.js", "resourceType": "script", - "startedAt": 2846, + "startedAt": 2871, "status": 200, "ok": true, - "finishedAt": 2852, + "finishedAt": 2875, "contentType": "text/javascript", "resourceTypeHint": "toggleFollow.js" }, @@ -3671,10 +3598,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/assets/smiley-cyrus.jpeg", "resourceType": "image", - "startedAt": 2868, + "startedAt": 3070, "status": 200, "ok": true, - "finishedAt": 2874, + "finishedAt": 3076, "contentType": "image/jpeg", "resourceTypeHint": "smiley-cyrus.jpeg" }, @@ -3683,10 +3610,10 @@ "method": "GET", "url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdu.woff2", "resourceType": "font", - "startedAt": 2871, + "startedAt": 3073, "status": 200, "ok": true, - "finishedAt": 2924, + "finishedAt": 3122, "contentType": "font/woff2", "resourceTypeHint": "6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdu.woff2" }, @@ -3695,22 +3622,22 @@ "method": "GET", "url": "https://code.ionicframework.com/ionicons/2.0.1/fonts/ionicons.ttf?v=2.0.1", "resourceType": "font", - "startedAt": 2872, + "startedAt": 3074, "status": 200, "ok": true, - "finishedAt": 2955, "contentType": "font/ttf", - "resourceTypeHint": "ionicons.ttf" + "resourceTypeHint": "ionicons.ttf", + "finishedAt": 3178 }, { "id": "net-125", "method": "GET", "url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7l.woff2", "resourceType": "font", - "startedAt": 2872, + "startedAt": 3074, "status": 200, "ok": true, - "finishedAt": 2927, + "finishedAt": 3122, "contentType": "font/woff2", "resourceTypeHint": "6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7l.woff2" }, @@ -3719,10 +3646,10 @@ "method": "GET", "url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwlxdu.woff2", "resourceType": "font", - "startedAt": 2872, + "startedAt": 3075, "status": 200, "ok": true, - "finishedAt": 2927, + "finishedAt": 3121, "contentType": "font/woff2", "resourceTypeHint": "6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwlxdu.woff2" }, @@ -3731,82 +3658,82 @@ "method": "GET", "url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7nsDI.woff2", "resourceType": "font", - "startedAt": 2873, + "startedAt": 3075, "status": 200, "ok": true, - "finishedAt": 2970, + "finishedAt": 3173, "contentType": "font/woff2", "resourceTypeHint": "6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7nsDI.woff2" }, { "id": "net-128", "method": "GET", - "url": "http://127.0.0.1:3000/api/articles/rd-test-f12177-1/comments", + "url": "http://127.0.0.1:3000/api/articles/rd-test-612495-1/comments", "resourceType": "xhr", - "startedAt": 2878, + "startedAt": 3079, "status": 200, "ok": true, - "finishedAt": 2891, + "finishedAt": 3087, "contentType": "application/json", "resourceTypeHint": "comments" }, { "id": "net-129", "method": "GET", - "url": "http://127.0.0.1:3000/api/articles/rd-test-f12177-1", + "url": "http://127.0.0.1:3000/api/articles/rd-test-612495-1", "resourceType": "xhr", - "startedAt": 2879, + "startedAt": 3080, "status": 200, "ok": true, - "finishedAt": 2903, + "finishedAt": 3098, "contentType": "application/json", - "resourceTypeHint": "rd-test-f12177-1" + "resourceTypeHint": "rd-test-612495-1" }, { "id": "net-130", "method": "GET", "url": "http://127.0.0.1:3000/api/user", "resourceType": "xhr", - "startedAt": 2879, + "startedAt": 3080, "status": 200, "ok": true, - "finishedAt": 2898, + "finishedAt": 3089, "contentType": "application/json", "resourceTypeHint": "user" }, { "id": "net-131", "method": "GET", - "url": "http://127.0.0.1:3000/api/articles/rd-test-f12177-1/comments", + "url": "http://127.0.0.1:3000/api/articles/rd-test-612495-1/comments", "resourceType": "xhr", - "startedAt": 2879, + "startedAt": 3080, "status": 200, "ok": true, - "finishedAt": 2898, + "finishedAt": 3093, "contentType": "application/json", "resourceTypeHint": "comments" }, { "id": "net-132", "method": "GET", - "url": "http://127.0.0.1:3000/api/articles/rd-test-f12177-1", + "url": "http://127.0.0.1:3000/api/articles/rd-test-612495-1", "resourceType": "xhr", - "startedAt": 2880, + "startedAt": 3081, "status": 200, "ok": true, - "finishedAt": 2904, + "finishedAt": 3098, "contentType": "application/json", - "resourceTypeHint": "rd-test-f12177-1" + "resourceTypeHint": "rd-test-612495-1" }, { "id": "net-133", "method": "GET", "url": "http://127.0.0.1:3000/api/user", "resourceType": "xhr", - "startedAt": 2880, + "startedAt": 3081, "status": 200, "ok": true, - "finishedAt": 2891, + "finishedAt": 3093, "contentType": "application/json", "resourceTypeHint": "user" }, @@ -3815,10 +3742,10 @@ "method": "GET", "url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwlxdu.woff2", "resourceType": "font", - "startedAt": 2911, + "startedAt": 3119, "status": 200, "ok": true, - "finishedAt": 2968, + "finishedAt": 3165, "contentType": "font/woff2", "resourceTypeHint": "6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwlxdu.woff2" }, @@ -3827,22 +3754,22 @@ "method": "GET", "url": "http://127.0.0.1:3000/", "resourceType": "document", - "startedAt": 3747, + "startedAt": 3942, "status": 200, "ok": true, "contentType": "text/html", "resourceTypeHint": "resource", - "finishedAt": 3756 + "finishedAt": 3952 }, { "id": "net-136", "method": "GET", "url": "http://127.0.0.1:3000/@vite/client", "resourceType": "script", - "startedAt": 3754, + "startedAt": 3951, "status": 200, "ok": true, - "finishedAt": 3763, + "finishedAt": 3959, "contentType": "text/javascript", "resourceTypeHint": "client" }, @@ -3851,10 +3778,10 @@ "method": "GET", "url": "http://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css", "resourceType": "stylesheet", - "startedAt": 3755, + "startedAt": 3951, "status": 307, "ok": false, - "finishedAt": 3758, + "finishedAt": 3955, "location": "https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css", "resourceTypeHint": "ionicons.min.css" }, @@ -3863,10 +3790,10 @@ "method": "GET", "url": "http://fonts.googleapis.com/css?family=Titillium+Web:700|Source+Serif+Pro:400,700|Merriweather+Sans:400,700|Source+Sans+Pro:400,300,600,700,300italic,400italic,600italic,700italic", "resourceType": "stylesheet", - "startedAt": 3755, + "startedAt": 3951, "status": 200, "ok": true, - "finishedAt": 3812, + "finishedAt": 4005, "contentType": "text/css", "resourceTypeHint": "css" }, @@ -3875,10 +3802,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/main.jsx", "resourceType": "script", - "startedAt": 3756, + "startedAt": 3952, "status": 200, "ok": true, - "finishedAt": 3761, + "finishedAt": 3959, "contentType": "text/javascript", "resourceTypeHint": "main.jsx" }, @@ -3887,10 +3814,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/@react-refresh", "resourceType": "script", - "startedAt": 3756, + "startedAt": 3952, "status": 200, "ok": true, - "finishedAt": 3770, + "finishedAt": 3966, "contentType": "text/javascript", "resourceTypeHint": "@react-refresh" }, @@ -3899,10 +3826,10 @@ "method": "GET", "url": "https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css", "resourceType": "stylesheet", - "startedAt": 3758, + "startedAt": 3955, "status": 200, "ok": true, - "finishedAt": 3860, + "finishedAt": 4049, "contentType": "text/css", "resourceTypeHint": "ionicons.min.css" }, @@ -3911,10 +3838,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/node_modules/.vite/deps/react_jsx-dev-runtime.js?v=96de0870", "resourceType": "script", - "startedAt": 3763, + "startedAt": 3960, "status": 200, "ok": true, - "finishedAt": 3775, + "finishedAt": 3969, "contentType": "text/javascript", "resourceTypeHint": "react_jsx-dev-runtime.js" }, @@ -3923,10 +3850,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/node_modules/.vite/deps/react.js?v=96de0870", "resourceType": "script", - "startedAt": 3764, + "startedAt": 3961, "status": 200, "ok": true, - "finishedAt": 3777, + "finishedAt": 3970, "contentType": "text/javascript", "resourceTypeHint": "react.js" }, @@ -3935,10 +3862,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/node_modules/.vite/deps/react-dom_client.js?v=96de0870", "resourceType": "script", - "startedAt": 3765, + "startedAt": 3962, "status": 200, "ok": true, - "finishedAt": 3808, + "finishedAt": 4001, "contentType": "text/javascript", "resourceTypeHint": "react-dom_client.js" }, @@ -3947,10 +3874,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/node_modules/.vite/deps/react-router-dom.js?v=96de0870", "resourceType": "script", - "startedAt": 3765, + "startedAt": 3962, "status": 200, "ok": true, - "finishedAt": 3802, + "finishedAt": 3989, "contentType": "text/javascript", "resourceTypeHint": "react-router-dom.js" }, @@ -3959,10 +3886,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/App.jsx", "resourceType": "script", - "startedAt": 3765, + "startedAt": 3962, "status": 200, "ok": true, - "finishedAt": 3787, + "finishedAt": 3981, "contentType": "text/javascript", "resourceTypeHint": "App.jsx" }, @@ -3971,10 +3898,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/context/AuthContext.jsx", "resourceType": "script", - "startedAt": 3765, + "startedAt": 3963, "status": 200, "ok": true, - "finishedAt": 3797, + "finishedAt": 3983, "contentType": "text/javascript", "resourceTypeHint": "AuthContext.jsx" }, @@ -3983,10 +3910,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/styles.css", "resourceType": "script", - "startedAt": 3767, + "startedAt": 3963, "status": 200, "ok": true, - "finishedAt": 3788, + "finishedAt": 3983, "contentType": "text/javascript", "resourceTypeHint": "styles.css" }, @@ -3995,10 +3922,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/index.css", "resourceType": "script", - "startedAt": 3767, + "startedAt": 3963, "status": 200, "ok": true, - "finishedAt": 3798, + "finishedAt": 3984, "contentType": "text/javascript", "resourceTypeHint": "index.css" }, @@ -4007,10 +3934,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/reportWebVitals.js", "resourceType": "script", - "startedAt": 3768, + "startedAt": 3963, "status": 200, "ok": true, - "finishedAt": 3800, + "finishedAt": 3984, "contentType": "text/javascript", "resourceTypeHint": "reportWebVitals.js" }, @@ -4019,10 +3946,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/routes/Article/Article.jsx", "resourceType": "script", - "startedAt": 3768, + "startedAt": 3965, "status": 200, "ok": true, - "finishedAt": 3801, + "finishedAt": 3985, "contentType": "text/javascript", "resourceTypeHint": "Article.jsx" }, @@ -4031,10 +3958,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/routes/Article/CommentsSection.jsx", "resourceType": "script", - "startedAt": 3768, + "startedAt": 3965, "status": 200, "ok": true, - "finishedAt": 3800, + "finishedAt": 3986, "contentType": "text/javascript", "resourceTypeHint": "CommentsSection.jsx" }, @@ -4043,10 +3970,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/routes/ArticleEditor.jsx", "resourceType": "script", - "startedAt": 3768, + "startedAt": 3965, "status": 200, "ok": true, - "finishedAt": 3801, + "finishedAt": 3987, "contentType": "text/javascript", "resourceTypeHint": "ArticleEditor.jsx" }, @@ -4055,10 +3982,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/routes/Home.jsx", "resourceType": "script", - "startedAt": 3768, + "startedAt": 3966, "status": 200, "ok": true, - "finishedAt": 3801, + "finishedAt": 3987, "contentType": "text/javascript", "resourceTypeHint": "Home.jsx" }, @@ -4067,10 +3994,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/routes/HomeArticles.jsx", "resourceType": "script", - "startedAt": 3769, + "startedAt": 3966, "status": 200, "ok": true, - "finishedAt": 3801, + "finishedAt": 3988, "contentType": "text/javascript", "resourceTypeHint": "HomeArticles.jsx" }, @@ -4079,10 +4006,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/routes/Login.jsx", "resourceType": "script", - "startedAt": 3769, + "startedAt": 3966, "status": 200, "ok": true, - "finishedAt": 3801, + "finishedAt": 3991, "contentType": "text/javascript", "resourceTypeHint": "Login.jsx" }, @@ -4091,10 +4018,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/routes/NotFound.jsx", "resourceType": "script", - "startedAt": 3769, + "startedAt": 3966, "status": 200, "ok": true, - "finishedAt": 3802, + "finishedAt": 3992, "contentType": "text/javascript", "resourceTypeHint": "NotFound.jsx" }, @@ -4103,10 +4030,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/routes/Profile/Profile.jsx", "resourceType": "script", - "startedAt": 3769, + "startedAt": 3966, "status": 200, "ok": true, - "finishedAt": 3802, + "finishedAt": 3995, "contentType": "text/javascript", "resourceTypeHint": "Profile.jsx" }, @@ -4115,10 +4042,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/routes/Profile/ProfileArticles.jsx", "resourceType": "script", - "startedAt": 3769, + "startedAt": 3967, "status": 200, "ok": true, - "finishedAt": 3810, + "finishedAt": 3999, "contentType": "text/javascript", "resourceTypeHint": "ProfileArticles.jsx" }, @@ -4127,10 +4054,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/routes/Profile/ProfileFavArticles.jsx", "resourceType": "script", - "startedAt": 3770, + "startedAt": 3967, "status": 200, "ok": true, - "finishedAt": 3810, + "finishedAt": 4001, "contentType": "text/javascript", "resourceTypeHint": "ProfileFavArticles.jsx" }, @@ -4139,10 +4066,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/routes/Settings.jsx", "resourceType": "script", - "startedAt": 3770, + "startedAt": 3967, "status": 200, "ok": true, - "finishedAt": 3810, + "finishedAt": 4001, "contentType": "text/javascript", "resourceTypeHint": "Settings.jsx" }, @@ -4151,10 +4078,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/routes/SignUp.jsx", "resourceType": "script", - "startedAt": 3770, + "startedAt": 3968, "status": 200, "ok": true, - "finishedAt": 3811, + "finishedAt": 4001, "contentType": "text/javascript", "resourceTypeHint": "SignUp.jsx" }, @@ -4163,10 +4090,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/@fs/F:/RealDone/work/real-projects/conduit-postgres/node_modules/vite/dist/client/env.mjs", "resourceType": "script", - "startedAt": 3770, + "startedAt": 3968, "status": 200, "ok": true, - "finishedAt": 3811, + "finishedAt": 4002, "contentType": "text/javascript", "resourceTypeHint": "env.mjs" }, @@ -4175,10 +4102,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/node_modules/.vite/deps/chunk-MP6PTA7G.js?v=96de0870", "resourceType": "script", - "startedAt": 3775, + "startedAt": 3970, "status": 200, "ok": true, - "finishedAt": 3812, + "finishedAt": 4003, "contentType": "text/javascript", "resourceTypeHint": "chunk-MP6PTA7G.js" }, @@ -4187,10 +4114,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/node_modules/.vite/deps/chunk-G3PMV62Z.js?v=96de0870", "resourceType": "script", - "startedAt": 3776, + "startedAt": 3970, "status": 200, "ok": true, - "finishedAt": 3812, + "finishedAt": 4002, "contentType": "text/javascript", "resourceTypeHint": "chunk-G3PMV62Z.js" }, @@ -4199,10 +4126,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/Footer/index.js", "resourceType": "script", - "startedAt": 3801, + "startedAt": 3988, "status": 200, "ok": true, - "finishedAt": 3847, + "finishedAt": 4005, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, @@ -4211,10 +4138,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/Navbar/index.js", "resourceType": "script", - "startedAt": 3801, + "startedAt": 3991, "status": 200, "ok": true, - "finishedAt": 3847, + "finishedAt": 4007, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, @@ -4223,274 +4150,274 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/services/getUser.js", "resourceType": "script", - "startedAt": 3802, + "startedAt": 3992, "status": 200, "ok": true, - "finishedAt": 3850, + "finishedAt": 4008, "contentType": "text/javascript", "resourceTypeHint": "getUser.js" }, { "id": "net-169", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/CommentEditor/index.js", + "url": "http://127.0.0.1:3000/node_modules/.vite/deps/markdown-to-jsx.js?v=96de0870", "resourceType": "script", - "startedAt": 3803, + "startedAt": 3995, "status": 200, "ok": true, - "finishedAt": 3850, + "finishedAt": 4018, "contentType": "text/javascript", - "resourceTypeHint": "index.js" + "resourceTypeHint": "markdown-to-jsx.js" }, { "id": "net-170", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/CommentList/index.js", + "url": "http://127.0.0.1:3000/src/components/ArticleMeta/index.js", "resourceType": "script", - "startedAt": 3803, + "startedAt": 3995, "status": 200, "ok": true, - "finishedAt": 3850, + "finishedAt": 4014, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, { "id": "net-171", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/BannerContainer/index.js", + "url": "http://127.0.0.1:3000/src/components/ArticlesButtons/index.js", "resourceType": "script", - "startedAt": 3803, + "startedAt": 3995, "status": 200, "ok": true, - "finishedAt": 3850, + "finishedAt": 4016, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, { "id": "net-172", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/ContainerRow/index.js", + "url": "http://127.0.0.1:3000/src/components/ArticleTags/index.js", "resourceType": "script", - "startedAt": 3804, + "startedAt": 3996, "status": 200, "ok": true, - "finishedAt": 3850, + "finishedAt": 4017, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, { "id": "net-173", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/FeedToggler/index.js", + "url": "http://127.0.0.1:3000/src/components/BannerContainer/index.js", "resourceType": "script", - "startedAt": 3804, + "startedAt": 3996, "status": 200, "ok": true, - "finishedAt": 3850, + "finishedAt": 4017, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, { "id": "net-174", "method": "GET", - "url": "http://127.0.0.1:3000/src/context/FeedContext.jsx", + "url": "http://127.0.0.1:3000/src/services/getArticle.js", "resourceType": "script", - "startedAt": 3804, + "startedAt": 3996, "status": 200, "ok": true, - "finishedAt": 3851, + "finishedAt": 4017, "contentType": "text/javascript", - "resourceTypeHint": "FeedContext.jsx" + "resourceTypeHint": "getArticle.js" }, { "id": "net-175", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/PopularTags/index.js", + "url": "http://127.0.0.1:3000/src/components/CommentEditor/index.js", "resourceType": "script", - "startedAt": 3805, + "startedAt": 3997, "status": 200, "ok": true, - "finishedAt": 3851, + "finishedAt": 4019, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, { "id": "net-176", "method": "GET", - "url": "http://127.0.0.1:3000/node_modules/.vite/deps/markdown-to-jsx.js?v=96de0870", + "url": "http://127.0.0.1:3000/src/components/CommentList/index.js", "resourceType": "script", - "startedAt": 3805, + "startedAt": 3997, "status": 200, "ok": true, - "finishedAt": 3851, + "finishedAt": 4023, "contentType": "text/javascript", - "resourceTypeHint": "markdown-to-jsx.js" + "resourceTypeHint": "index.js" }, { "id": "net-177", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/ArticleMeta/index.js", + "url": "http://127.0.0.1:3000/src/components/ArticleEditorForm/index.js", "resourceType": "script", - "startedAt": 3808, + "startedAt": 3997, "status": 200, "ok": true, - "finishedAt": 3851, + "finishedAt": 4023, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, { "id": "net-178", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/ArticlesButtons/index.js", + "url": "http://127.0.0.1:3000/src/components/ContainerRow/index.js", "resourceType": "script", - "startedAt": 3809, + "startedAt": 3997, "status": 200, "ok": true, - "finishedAt": 3851, + "finishedAt": 4024, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, { "id": "net-179", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/ArticleTags/index.js", + "url": "http://127.0.0.1:3000/src/components/FeedToggler/index.js", "resourceType": "script", - "startedAt": 3809, + "startedAt": 3997, "status": 200, "ok": true, - "finishedAt": 3851, + "finishedAt": 4024, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, { "id": "net-180", "method": "GET", - "url": "http://127.0.0.1:3000/src/services/getArticle.js", + "url": "http://127.0.0.1:3000/src/context/FeedContext.jsx", "resourceType": "script", - "startedAt": 3809, + "startedAt": 3998, "status": 200, "ok": true, - "finishedAt": 3851, + "finishedAt": 4024, "contentType": "text/javascript", - "resourceTypeHint": "getArticle.js" + "resourceTypeHint": "FeedContext.jsx" }, { "id": "net-181", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/ArticlesPagination/index.js", + "url": "http://127.0.0.1:3000/src/components/PopularTags/index.js", "resourceType": "script", - "startedAt": 3809, + "startedAt": 3998, "status": 200, "ok": true, - "finishedAt": 3851, + "finishedAt": 4027, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, { "id": "net-182", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/ArticlesPreview/index.js", + "url": "http://127.0.0.1:3000/src/components/ArticlesPagination/index.js", "resourceType": "script", - "startedAt": 3810, + "startedAt": 3998, "status": 200, "ok": true, - "finishedAt": 3852, + "finishedAt": 4027, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, { "id": "net-183", "method": "GET", - "url": "http://127.0.0.1:3000/src/hooks/useArticles.js", + "url": "http://127.0.0.1:3000/src/components/ArticlesPreview/index.js", "resourceType": "script", - "startedAt": 3810, + "startedAt": 3999, "status": 200, "ok": true, - "finishedAt": 3852, + "finishedAt": 4027, "contentType": "text/javascript", - "resourceTypeHint": "useArticles.js" + "resourceTypeHint": "index.js" }, { "id": "net-184", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/ArticleEditorForm/index.js", + "url": "http://127.0.0.1:3000/src/hooks/useArticles.js", "resourceType": "script", - "startedAt": 3810, + "startedAt": 3999, "status": 200, "ok": true, - "finishedAt": 3852, + "finishedAt": 4027, "contentType": "text/javascript", - "resourceTypeHint": "index.js" + "resourceTypeHint": "useArticles.js" }, { "id": "net-185", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/AuthPageContainer/index.js", + "url": "http://127.0.0.1:3000/node_modules/.vite/deps/chunk-HYJYOVZJ.js?v=96de0870", "resourceType": "script", - "startedAt": 3811, + "startedAt": 4000, "status": 200, "ok": true, - "finishedAt": 3852, + "finishedAt": 4031, "contentType": "text/javascript", - "resourceTypeHint": "index.js" + "resourceTypeHint": "chunk-HYJYOVZJ.js" }, { "id": "net-186", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/LoginForm/index.js", + "url": "http://127.0.0.1:3000/src/components/AuthPageContainer/index.js", "resourceType": "script", - "startedAt": 3811, + "startedAt": 4000, "status": 200, "ok": true, - "finishedAt": 3852, + "finishedAt": 4030, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, { "id": "net-187", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/AuthorInfo/index.js", + "url": "http://127.0.0.1:3000/src/components/LoginForm/index.js", "resourceType": "script", - "startedAt": 3811, + "startedAt": 4001, "status": 200, "ok": true, - "finishedAt": 3859, + "finishedAt": 4032, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, { "id": "net-188", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/NavItem/index.js", + "url": "http://127.0.0.1:3000/src/components/AuthorInfo/index.js", "resourceType": "script", - "startedAt": 3811, + "startedAt": 4002, "status": 200, "ok": true, - "finishedAt": 3859, + "finishedAt": 4032, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, { "id": "net-189", "method": "GET", - "url": "http://127.0.0.1:3000/node_modules/.vite/deps/chunk-HYJYOVZJ.js?v=96de0870", + "url": "http://127.0.0.1:3000/src/components/NavItem/index.js", "resourceType": "script", - "startedAt": 3812, + "startedAt": 4002, "status": 200, "ok": true, - "finishedAt": 3861, + "finishedAt": 4041, "contentType": "text/javascript", - "resourceTypeHint": "chunk-HYJYOVZJ.js" + "resourceTypeHint": "index.js" }, { "id": "net-190", "method": "GET", "url": "http://127.0.0.1:3000/src/components/SettingsForm/index.js", "resourceType": "script", - "startedAt": 3812, + "startedAt": 4004, "status": 200, "ok": true, - "finishedAt": 3860, + "finishedAt": 4041, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, @@ -4499,10 +4426,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/SignUpForm/index.js", "resourceType": "script", - "startedAt": 3812, + "startedAt": 4005, "status": 200, "ok": true, - "finishedAt": 3860, + "finishedAt": 4042, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, @@ -4511,10 +4438,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/Footer/Footer.jsx", "resourceType": "script", - "startedAt": 3852, + "startedAt": 4005, "status": 200, "ok": true, - "finishedAt": 3867, + "finishedAt": 4043, "contentType": "text/javascript", "resourceTypeHint": "Footer.jsx" }, @@ -4523,202 +4450,202 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/Navbar/Navbar.jsx", "resourceType": "script", - "startedAt": 3852, + "startedAt": 4007, "status": 200, "ok": true, - "finishedAt": 3869, + "finishedAt": 4043, "contentType": "text/javascript", "resourceTypeHint": "Navbar.jsx" }, { "id": "net-194", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/CommentEditor/CommentEditor.jsx", + "url": "http://127.0.0.1:3000/node_modules/.vite/deps/axios.js?v=96de0870", "resourceType": "script", - "startedAt": 3852, + "startedAt": 4008, "status": 200, "ok": true, - "finishedAt": 3871, + "finishedAt": 4044, "contentType": "text/javascript", - "resourceTypeHint": "CommentEditor.jsx" + "resourceTypeHint": "axios.js" }, { "id": "net-195", "method": "GET", - "url": "http://127.0.0.1:3000/node_modules/.vite/deps/axios.js?v=96de0870", + "url": "http://127.0.0.1:3000/src/helpers/errorHandler.js", "resourceType": "script", - "startedAt": 3852, + "startedAt": 4008, "status": 200, "ok": true, - "finishedAt": 3872, + "finishedAt": 4043, "contentType": "text/javascript", - "resourceTypeHint": "axios.js" + "resourceTypeHint": "errorHandler.js" }, { "id": "net-196", "method": "GET", - "url": "http://127.0.0.1:3000/src/helpers/errorHandler.js", + "url": "http://127.0.0.1:3000/src/components/ArticleMeta/ArticleMeta.jsx", "resourceType": "script", - "startedAt": 3853, + "startedAt": 4020, "status": 200, "ok": true, - "finishedAt": 3871, + "finishedAt": 4044, "contentType": "text/javascript", - "resourceTypeHint": "errorHandler.js" + "resourceTypeHint": "ArticleMeta.jsx" }, { "id": "net-197", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/CommentList/CommentList.jsx", + "url": "http://127.0.0.1:3000/src/components/ArticlesButtons/ArticlesButtons.jsx", "resourceType": "script", - "startedAt": 3857, + "startedAt": 4020, "status": 200, "ok": true, - "finishedAt": 3873, + "finishedAt": 4047, "contentType": "text/javascript", - "resourceTypeHint": "CommentList.jsx" + "resourceTypeHint": "ArticlesButtons.jsx" }, { "id": "net-198", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/BannerContainer/BannerContainer.jsx", + "url": "http://127.0.0.1:3000/src/components/ArticleTags/ArticleTags.jsx", "resourceType": "script", - "startedAt": 3857, + "startedAt": 4021, "status": 200, "ok": true, - "finishedAt": 3876, + "finishedAt": 4046, "contentType": "text/javascript", - "resourceTypeHint": "BannerContainer.jsx" + "resourceTypeHint": "ArticleTags.jsx" }, { "id": "net-199", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/ContainerRow/ContainerRow.jsx", + "url": "http://127.0.0.1:3000/src/components/BannerContainer/BannerContainer.jsx", "resourceType": "script", - "startedAt": 3857, + "startedAt": 4021, "status": 200, "ok": true, - "finishedAt": 3876, + "finishedAt": 4047, "contentType": "text/javascript", - "resourceTypeHint": "ContainerRow.jsx" + "resourceTypeHint": "BannerContainer.jsx" }, { "id": "net-200", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/FeedToggler/FeedToggler.jsx", + "url": "http://127.0.0.1:3000/src/components/CommentEditor/CommentEditor.jsx", "resourceType": "script", - "startedAt": 3857, + "startedAt": 4026, "status": 200, "ok": true, - "finishedAt": 3876, + "finishedAt": 4051, "contentType": "text/javascript", - "resourceTypeHint": "FeedToggler.jsx" + "resourceTypeHint": "CommentEditor.jsx" }, { "id": "net-201", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/PopularTags/PopularTags.jsx", + "url": "http://127.0.0.1:3000/src/components/CommentList/CommentList.jsx", "resourceType": "script", - "startedAt": 3858, + "startedAt": 4031, "status": 200, "ok": true, - "finishedAt": 3876, + "finishedAt": 4052, "contentType": "text/javascript", - "resourceTypeHint": "PopularTags.jsx" + "resourceTypeHint": "CommentList.jsx" }, { "id": "net-202", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/ArticleMeta/ArticleMeta.jsx", + "url": "http://127.0.0.1:3000/src/components/ArticleEditorForm/ArticleEditorForm.jsx", "resourceType": "script", - "startedAt": 3858, + "startedAt": 4031, "status": 200, "ok": true, - "finishedAt": 3876, + "finishedAt": 4053, "contentType": "text/javascript", - "resourceTypeHint": "ArticleMeta.jsx" + "resourceTypeHint": "ArticleEditorForm.jsx" }, { "id": "net-203", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/ArticlesButtons/ArticlesButtons.jsx", + "url": "http://127.0.0.1:3000/src/components/FeedToggler/FeedToggler.jsx", "resourceType": "script", - "startedAt": 3858, + "startedAt": 4031, "status": 200, "ok": true, - "finishedAt": 3879, + "finishedAt": 4053, "contentType": "text/javascript", - "resourceTypeHint": "ArticlesButtons.jsx" + "resourceTypeHint": "FeedToggler.jsx" }, { "id": "net-204", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/ArticleTags/ArticleTags.jsx", + "url": "http://127.0.0.1:3000/src/components/ContainerRow/ContainerRow.jsx", "resourceType": "script", - "startedAt": 3858, + "startedAt": 4032, "status": 200, "ok": true, - "finishedAt": 3881, + "finishedAt": 4053, "contentType": "text/javascript", - "resourceTypeHint": "ArticleTags.jsx" + "resourceTypeHint": "ContainerRow.jsx" }, { "id": "net-205", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/ArticlesPagination/ArticlesPagination.jsx", + "url": "http://127.0.0.1:3000/src/components/PopularTags/PopularTags.jsx", "resourceType": "script", - "startedAt": 3858, + "startedAt": 4033, "status": 200, "ok": true, - "finishedAt": 3884, + "finishedAt": 4053, "contentType": "text/javascript", - "resourceTypeHint": "ArticlesPagination.jsx" + "resourceTypeHint": "PopularTags.jsx" }, { "id": "net-206", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/ArticlesPreview/ArticlesPreview.jsx", + "url": "http://127.0.0.1:3000/src/components/ArticlesPagination/ArticlesPagination.jsx", "resourceType": "script", - "startedAt": 3859, + "startedAt": 4033, "status": 200, "ok": true, - "finishedAt": 3884, + "finishedAt": 4053, "contentType": "text/javascript", - "resourceTypeHint": "ArticlesPreview.jsx" + "resourceTypeHint": "ArticlesPagination.jsx" }, { "id": "net-207", "method": "GET", - "url": "http://127.0.0.1:3000/src/services/getArticles.js", + "url": "http://127.0.0.1:3000/src/components/ArticlesPreview/ArticlesPreview.jsx", "resourceType": "script", - "startedAt": 3859, + "startedAt": 4034, "status": 200, "ok": true, - "finishedAt": 3884, + "finishedAt": 4054, "contentType": "text/javascript", - "resourceTypeHint": "getArticles.js" + "resourceTypeHint": "ArticlesPreview.jsx" }, { "id": "net-208", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/ArticleEditorForm/ArticleEditorForm.jsx", + "url": "http://127.0.0.1:3000/src/services/getArticles.js", "resourceType": "script", - "startedAt": 3859, + "startedAt": 4041, "status": 200, "ok": true, - "finishedAt": 3885, + "finishedAt": 4059, "contentType": "text/javascript", - "resourceTypeHint": "ArticleEditorForm.jsx" + "resourceTypeHint": "getArticles.js" }, { "id": "net-209", "method": "GET", "url": "http://127.0.0.1:3000/src/components/AuthPageContainer/AuthPageContainer.jsx", "resourceType": "script", - "startedAt": 3859, + "startedAt": 4042, "status": 200, "ok": true, - "finishedAt": 3884, + "finishedAt": 4059, "contentType": "text/javascript", "resourceTypeHint": "AuthPageContainer.jsx" }, @@ -4727,10 +4654,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/LoginForm/LoginForm.jsx", "resourceType": "script", - "startedAt": 3860, + "startedAt": 4042, "status": 200, "ok": true, - "finishedAt": 3885, + "finishedAt": 4061, "contentType": "text/javascript", "resourceTypeHint": "LoginForm.jsx" }, @@ -4739,10 +4666,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/AuthorInfo/AuthorInfo.jsx", "resourceType": "script", - "startedAt": 3860, + "startedAt": 4042, "status": 200, "ok": true, - "finishedAt": 3885, + "finishedAt": 4061, "contentType": "text/javascript", "resourceTypeHint": "AuthorInfo.jsx" }, @@ -4751,10 +4678,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/NavItem/NavItem.jsx", "resourceType": "script", - "startedAt": 3860, + "startedAt": 4043, "status": 200, "ok": true, - "finishedAt": 3885, + "finishedAt": 4061, "contentType": "text/javascript", "resourceTypeHint": "NavItem.jsx" }, @@ -4763,10 +4690,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/SettingsForm/SettingsForm.jsx", "resourceType": "script", - "startedAt": 3861, + "startedAt": 4043, "status": 200, "ok": true, - "finishedAt": 3885, + "finishedAt": 4061, "contentType": "text/javascript", "resourceTypeHint": "SettingsForm.jsx" }, @@ -4775,10 +4702,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/SignUpForm/SignUpForm.jsx", "resourceType": "script", - "startedAt": 3861, + "startedAt": 4043, "status": 200, "ok": true, - "finishedAt": 3886, + "finishedAt": 4063, "contentType": "text/javascript", "resourceTypeHint": "SignUpForm.jsx" }, @@ -4787,10 +4714,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/SourceCodeLink/index.js", "resourceType": "script", - "startedAt": 3870, + "startedAt": 4043, "status": 200, "ok": true, - "finishedAt": 3886, + "finishedAt": 4063, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, @@ -4799,202 +4726,202 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/Navbar/DropdownMenu.jsx", "resourceType": "script", - "startedAt": 3872, + "startedAt": 4044, "status": 200, "ok": true, - "finishedAt": 3888, + "finishedAt": 4063, "contentType": "text/javascript", "resourceTypeHint": "DropdownMenu.jsx" }, { "id": "net-217", "method": "GET", - "url": "http://127.0.0.1:3000/src/services/postComment.js", + "url": "http://127.0.0.1:3000/src/helpers/dateFormatter.js", "resourceType": "script", - "startedAt": 3874, + "startedAt": 4047, "status": 200, "ok": true, - "finishedAt": 3890, + "finishedAt": 4065, "contentType": "text/javascript", - "resourceTypeHint": "postComment.js" + "resourceTypeHint": "dateFormatter.js" }, { "id": "net-218", "method": "GET", "url": "http://127.0.0.1:3000/src/components/Avatar/index.js", "resourceType": "script", - "startedAt": 3874, + "startedAt": 4047, "status": 200, "ok": true, - "finishedAt": 3890, + "finishedAt": 4067, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, { "id": "net-219", "method": "GET", - "url": "http://127.0.0.1:3000/src/helpers/dateFormatter.js", + "url": "http://127.0.0.1:3000/src/components/ArticleAuthorButtons/index.js", "resourceType": "script", - "startedAt": 3878, + "startedAt": 4047, "status": 200, "ok": true, - "finishedAt": 3893, + "finishedAt": 4067, "contentType": "text/javascript", - "resourceTypeHint": "dateFormatter.js" + "resourceTypeHint": "index.js" }, { "id": "net-220", "method": "GET", - "url": "http://127.0.0.1:3000/src/services/deleteComment.js", + "url": "http://127.0.0.1:3000/src/components/FavButton/index.js", "resourceType": "script", - "startedAt": 3878, + "startedAt": 4048, "status": 200, "ok": true, - "finishedAt": 3894, + "finishedAt": 4067, "contentType": "text/javascript", - "resourceTypeHint": "deleteComment.js" + "resourceTypeHint": "index.js" }, { "id": "net-221", "method": "GET", - "url": "http://127.0.0.1:3000/src/services/getComments.js", + "url": "http://127.0.0.1:3000/src/components/FollowButton/index.js", "resourceType": "script", - "startedAt": 3879, + "startedAt": 4048, "status": 200, "ok": true, - "finishedAt": 3894, + "finishedAt": 4069, "contentType": "text/javascript", - "resourceTypeHint": "getComments.js" + "resourceTypeHint": "index.js" }, { "id": "net-222", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/CommentList/CommentAuthor.jsx", + "url": "http://127.0.0.1:3000/src/services/postComment.js", "resourceType": "script", - "startedAt": 3879, + "startedAt": 4051, "status": 200, "ok": true, - "finishedAt": 3894, + "finishedAt": 4069, "contentType": "text/javascript", - "resourceTypeHint": "CommentAuthor.jsx" + "resourceTypeHint": "postComment.js" }, { "id": "net-223", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/FeedToggler/FeedNavLink.jsx", + "url": "http://127.0.0.1:3000/src/services/deleteComment.js", "resourceType": "script", - "startedAt": 3881, + "startedAt": 4053, "status": 200, "ok": true, - "finishedAt": 3894, + "finishedAt": 4070, "contentType": "text/javascript", - "resourceTypeHint": "FeedNavLink.jsx" + "resourceTypeHint": "deleteComment.js" }, { "id": "net-224", "method": "GET", - "url": "http://127.0.0.1:3000/src/services/getTags.js", + "url": "http://127.0.0.1:3000/src/services/getComments.js", "resourceType": "script", - "startedAt": 3882, + "startedAt": 4054, "status": 200, "ok": true, - "finishedAt": 3894, + "finishedAt": 4071, "contentType": "text/javascript", - "resourceTypeHint": "getTags.js" + "resourceTypeHint": "getComments.js" }, { "id": "net-225", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/PopularTags/TagButton.jsx", + "url": "http://127.0.0.1:3000/src/components/CommentList/CommentAuthor.jsx", "resourceType": "script", - "startedAt": 3882, + "startedAt": 4055, "status": 200, "ok": true, - "finishedAt": 3895, + "finishedAt": 4072, "contentType": "text/javascript", - "resourceTypeHint": "TagButton.jsx" + "resourceTypeHint": "CommentAuthor.jsx" }, { "id": "net-226", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/ArticleAuthorButtons/index.js", + "url": "http://127.0.0.1:3000/src/services/setArticle.js", "resourceType": "script", - "startedAt": 3884, + "startedAt": 4056, "status": 200, "ok": true, - "finishedAt": 3898, + "finishedAt": 4074, "contentType": "text/javascript", - "resourceTypeHint": "index.js" + "resourceTypeHint": "setArticle.js" }, { "id": "net-227", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/FavButton/index.js", + "url": "http://127.0.0.1:3000/src/components/FormFieldset/index.js", "resourceType": "script", - "startedAt": 3885, + "startedAt": 4056, "status": 200, "ok": true, - "finishedAt": 3898, + "finishedAt": 4074, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, { "id": "net-228", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/FollowButton/index.js", + "url": "http://127.0.0.1:3000/src/components/FeedToggler/FeedNavLink.jsx", "resourceType": "script", - "startedAt": 3885, + "startedAt": 4057, "status": 200, "ok": true, - "finishedAt": 3898, + "finishedAt": 4074, "contentType": "text/javascript", - "resourceTypeHint": "index.js" + "resourceTypeHint": "FeedNavLink.jsx" }, { "id": "net-229", "method": "GET", - "url": "http://127.0.0.1:3000/node_modules/.vite/deps/react-paginate.js?v=96de0870", + "url": "http://127.0.0.1:3000/src/services/getTags.js", "resourceType": "script", - "startedAt": 3886, + "startedAt": 4058, "status": 200, "ok": true, - "finishedAt": 3901, + "finishedAt": 4074, "contentType": "text/javascript", - "resourceTypeHint": "react-paginate.js" + "resourceTypeHint": "getTags.js" }, { "id": "net-230", "method": "GET", - "url": "http://127.0.0.1:3000/src/services/setArticle.js", + "url": "http://127.0.0.1:3000/src/components/PopularTags/TagButton.jsx", "resourceType": "script", - "startedAt": 3888, + "startedAt": 4058, "status": 200, "ok": true, - "finishedAt": 3902, + "finishedAt": 4074, "contentType": "text/javascript", - "resourceTypeHint": "setArticle.js" + "resourceTypeHint": "TagButton.jsx" }, { "id": "net-231", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/FormFieldset/index.js", + "url": "http://127.0.0.1:3000/node_modules/.vite/deps/react-paginate.js?v=96de0870", "resourceType": "script", - "startedAt": 3888, + "startedAt": 4058, "status": 200, "ok": true, - "finishedAt": 3902, + "finishedAt": 4075, "contentType": "text/javascript", - "resourceTypeHint": "index.js" + "resourceTypeHint": "react-paginate.js" }, { "id": "net-232", "method": "GET", "url": "http://127.0.0.1:3000/src/services/userLogin.js", "resourceType": "script", - "startedAt": 3889, + "startedAt": 4065, "status": 200, "ok": true, - "finishedAt": 3902, + "finishedAt": 4077, "contentType": "text/javascript", "resourceTypeHint": "userLogin.js" }, @@ -5003,10 +4930,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/services/getProfile.js", "resourceType": "script", - "startedAt": 3889, + "startedAt": 4066, "status": 200, "ok": true, - "finishedAt": 3903, + "finishedAt": 4078, "contentType": "text/javascript", "resourceTypeHint": "getProfile.js" }, @@ -5015,10 +4942,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/services/userUpdate.js", "resourceType": "script", - "startedAt": 3889, + "startedAt": 4066, "status": 200, "ok": true, - "finishedAt": 3904, + "finishedAt": 4078, "contentType": "text/javascript", "resourceTypeHint": "userUpdate.js" }, @@ -5027,10 +4954,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/services/userSignUp.js", "resourceType": "script", - "startedAt": 3889, + "startedAt": 4067, "status": 200, "ok": true, - "finishedAt": 3905, + "finishedAt": 4078, "contentType": "text/javascript", "resourceTypeHint": "userSignUp.js" }, @@ -5039,10 +4966,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/SourceCodeLink/SourceCodeLink.jsx", "resourceType": "script", - "startedAt": 3889, + "startedAt": 4069, "status": 200, "ok": true, - "finishedAt": 3905, + "finishedAt": 4080, "contentType": "text/javascript", "resourceTypeHint": "SourceCodeLink.jsx" }, @@ -5051,10 +4978,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/services/userLogout.js", "resourceType": "script", - "startedAt": 3890, + "startedAt": 4069, "status": 200, "ok": true, - "finishedAt": 3905, + "finishedAt": 4080, "contentType": "text/javascript", "resourceTypeHint": "userLogout.js" }, @@ -5063,10 +4990,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/Navbar/DropdownItem.jsx", "resourceType": "script", - "startedAt": 3890, + "startedAt": 4070, "status": 200, "ok": true, - "finishedAt": 3906, + "finishedAt": 4081, "contentType": "text/javascript", "resourceTypeHint": "DropdownItem.jsx" }, @@ -5075,10 +5002,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/Avatar/Avatar.jsx", "resourceType": "script", - "startedAt": 3890, + "startedAt": 4072, "status": 200, "ok": true, - "finishedAt": 3906, + "finishedAt": 4082, "contentType": "text/javascript", "resourceTypeHint": "Avatar.jsx" }, @@ -5087,10 +5014,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/ArticleAuthorButtons/ArticleAuthorButtons.jsx", "resourceType": "script", - "startedAt": 3899, + "startedAt": 4072, "status": 200, "ok": true, - "finishedAt": 3909, + "finishedAt": 4082, "contentType": "text/javascript", "resourceTypeHint": "ArticleAuthorButtons.jsx" }, @@ -5099,10 +5026,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/FavButton/FavButton.jsx", "resourceType": "script", - "startedAt": 3900, + "startedAt": 4073, "status": 200, "ok": true, - "finishedAt": 3909, + "finishedAt": 4083, "contentType": "text/javascript", "resourceTypeHint": "FavButton.jsx" }, @@ -5111,10 +5038,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/FollowButton/FollowButton.jsx", "resourceType": "script", - "startedAt": 3900, + "startedAt": 4073, "status": 200, "ok": true, - "finishedAt": 3909, + "finishedAt": 4084, "contentType": "text/javascript", "resourceTypeHint": "FollowButton.jsx" }, @@ -5123,10 +5050,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/FormFieldset/FormFieldset.jsx", "resourceType": "script", - "startedAt": 3905, + "startedAt": 4075, "status": 200, "ok": true, - "finishedAt": 3916, + "finishedAt": 4084, "contentType": "text/javascript", "resourceTypeHint": "FormFieldset.jsx" }, @@ -5135,10 +5062,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/assets/smiley-cyrus.jpeg?import", "resourceType": "script", - "startedAt": 3906, + "startedAt": 4082, "status": 200, "ok": true, - "finishedAt": 3917, + "finishedAt": 4087, "contentType": "text/javascript", "resourceTypeHint": "smiley-cyrus.jpeg" }, @@ -5147,22 +5074,22 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/services/deleteArticle.js", "resourceType": "script", - "startedAt": 3909, + "startedAt": 4083, "status": 200, "ok": true, + "finishedAt": 4088, "contentType": "text/javascript", - "resourceTypeHint": "deleteArticle.js", - "finishedAt": 3919 + "resourceTypeHint": "deleteArticle.js" }, { "id": "net-246", "method": "GET", "url": "http://127.0.0.1:3000/src/services/toggleFav.js", "resourceType": "script", - "startedAt": 3910, + "startedAt": 4084, "status": 200, "ok": true, - "finishedAt": 3920, + "finishedAt": 4088, "contentType": "text/javascript", "resourceTypeHint": "toggleFav.js" }, @@ -5171,10 +5098,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/services/toggleFollow.js", "resourceType": "script", - "startedAt": 3911, + "startedAt": 4084, "status": 200, "ok": true, - "finishedAt": 3920, + "finishedAt": 4088, "contentType": "text/javascript", "resourceTypeHint": "toggleFollow.js" }, @@ -5183,10 +5110,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/assets/smiley-cyrus.jpeg", "resourceType": "image", - "startedAt": 3933, + "startedAt": 4101, "status": 200, "ok": true, - "finishedAt": 3943, + "finishedAt": 4108, "contentType": "image/jpeg", "resourceTypeHint": "smiley-cyrus.jpeg" }, @@ -5195,10 +5122,10 @@ "method": "GET", "url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdu.woff2", "resourceType": "font", - "startedAt": 3935, + "startedAt": 4103, "status": 200, "ok": true, - "finishedAt": 3981, + "finishedAt": 4149, "contentType": "font/woff2", "resourceTypeHint": "6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdu.woff2" }, @@ -5207,10 +5134,10 @@ "method": "GET", "url": "https://code.ionicframework.com/ionicons/2.0.1/fonts/ionicons.ttf?v=2.0.1", "resourceType": "font", - "startedAt": 3936, + "startedAt": 4104, "status": 200, "ok": true, - "finishedAt": 4020, + "finishedAt": 4208, "contentType": "font/ttf", "resourceTypeHint": "ionicons.ttf" }, @@ -5219,10 +5146,10 @@ "method": "GET", "url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7l.woff2", "resourceType": "font", - "startedAt": 3936, + "startedAt": 4105, "status": 200, "ok": true, - "finishedAt": 3984, + "finishedAt": 4152, "contentType": "font/woff2", "resourceTypeHint": "6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7l.woff2" }, @@ -5231,10 +5158,10 @@ "method": "GET", "url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwlxdu.woff2", "resourceType": "font", - "startedAt": 3937, + "startedAt": 4105, "status": 200, "ok": true, - "finishedAt": 3985, + "finishedAt": 4153, "contentType": "font/woff2", "resourceTypeHint": "6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwlxdu.woff2" }, @@ -5243,82 +5170,82 @@ "method": "GET", "url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7nsDI.woff2", "resourceType": "font", - "startedAt": 3937, + "startedAt": 4106, "status": 200, "ok": true, - "finishedAt": 3985, + "finishedAt": 4153, "contentType": "font/woff2", "resourceTypeHint": "6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7nsDI.woff2" }, { "id": "net-254", "method": "GET", - "url": "http://127.0.0.1:3000/api/articles/rd-test-f12177-1/comments", + "url": "http://127.0.0.1:3000/api/articles/rd-test-612495-1/comments", "resourceType": "xhr", - "startedAt": 3940, + "startedAt": 4109, "status": 200, "ok": true, - "finishedAt": 3955, + "finishedAt": 4127, "contentType": "application/json", "resourceTypeHint": "comments" }, { "id": "net-255", "method": "GET", - "url": "http://127.0.0.1:3000/api/articles/rd-test-f12177-1", + "url": "http://127.0.0.1:3000/api/articles/rd-test-612495-1", "resourceType": "xhr", - "startedAt": 3941, + "startedAt": 4109, "status": 200, "ok": true, - "finishedAt": 3959, + "finishedAt": 4134, "contentType": "application/json", - "resourceTypeHint": "rd-test-f12177-1" + "resourceTypeHint": "rd-test-612495-1" }, { "id": "net-256", "method": "GET", "url": "http://127.0.0.1:3000/api/user", "resourceType": "xhr", - "startedAt": 3941, + "startedAt": 4110, "status": 200, "ok": true, - "finishedAt": 3951, + "finishedAt": 4121, "contentType": "application/json", "resourceTypeHint": "user" }, { "id": "net-257", "method": "GET", - "url": "http://127.0.0.1:3000/api/articles/rd-test-f12177-1/comments", + "url": "http://127.0.0.1:3000/api/articles/rd-test-612495-1/comments", "resourceType": "xhr", - "startedAt": 3942, + "startedAt": 4110, "status": 200, "ok": true, - "finishedAt": 3954, + "finishedAt": 4128, "contentType": "application/json", "resourceTypeHint": "comments" }, { "id": "net-258", "method": "GET", - "url": "http://127.0.0.1:3000/api/articles/rd-test-f12177-1", + "url": "http://127.0.0.1:3000/api/articles/rd-test-612495-1", "resourceType": "xhr", - "startedAt": 3942, + "startedAt": 4110, "status": 200, "ok": true, - "finishedAt": 3959, + "finishedAt": 4134, "contentType": "application/json", - "resourceTypeHint": "rd-test-f12177-1" + "resourceTypeHint": "rd-test-612495-1" }, { "id": "net-259", "method": "GET", "url": "http://127.0.0.1:3000/api/user", "resourceType": "xhr", - "startedAt": 3943, + "startedAt": 4110, "status": 200, "ok": true, - "finishedAt": 3955, + "finishedAt": 4127, "contentType": "application/json", "resourceTypeHint": "user" }, @@ -5327,10 +5254,10 @@ "method": "GET", "url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwlxdu.woff2", "resourceType": "font", - "startedAt": 3962, + "startedAt": 4138, "status": 200, "ok": true, - "finishedAt": 4027, + "finishedAt": 4191, "contentType": "font/woff2", "resourceTypeHint": "6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwlxdu.woff2" } @@ -5343,28 +5270,28 @@ "selector": "body > div > main > div > div > div > div > form > fieldset > fieldset:nth-of-type(1) > input", "name": "title", "type": "text", - "value": "RD_TEST_F12177_1", + "value": "RD_TEST_612495_1", "redacted": false }, { "selector": "body > div > main > div > div > div > div > form > fieldset > fieldset:nth-of-type(2) > input", "name": "description", "type": "text", - "value": "RD_TEST_F12177_2", + "value": "RD_TEST_612495_2", "redacted": false }, { "selector": "body > div > main > div > div > div > div > form > fieldset > fieldset:nth-of-type(3) > textarea", "name": "body", "type": "textarea", - "value": "RD_TEST_F12177_3", + "value": "RD_TEST_612495_3", "redacted": false }, { "selector": "body > div > main > div > div > div > div > form > fieldset > fieldset:nth-of-type(4) > input", "name": "tags", "type": "text", - "value": "RD_TEST_F12177_4", + "value": "RD_TEST_612495_4", "redacted": false } ], @@ -5380,7 +5307,7 @@ "weight": 60, "matchCount": 1, "visibleCount": 1, - "elapsedMs": 5 + "elapsedMs": 2 } ], "chosenStrategy": "text", @@ -5388,10 +5315,10 @@ "retryCount": 0 }, "before": { - "at": 1459, - "url": "http://127.0.0.1:3000/#/editor/rd-test-84fc94-1", + "at": 1557, + "url": "http://127.0.0.1:3000/#/editor/rd-test-f95995-1", "title": "Conduit", - "domHash": "5e4f35896b0a0efe", + "domHash": "319c3f111f0df4bf", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -5403,15 +5330,15 @@ "accessDenied": false }, "semanticDom": { - "textHash": "5bd3d7b2b57f2618", + "textHash": "dcdc0f6db71ab4cc", "visualHash": "b85410fa0ea5a358", - "text": "conduit Source code Home New Article rdq1784818988 Update Article conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", + "text": "conduit Source code Home New Article rdq1785054823102 Update Article conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "input", "type": "text", "name": "title", - "valueHash": "ac458f73e769bb30", + "valueHash": "b1ecbb2c73c74aae", "checked": false, "disabled": false, "visible": true @@ -5420,7 +5347,7 @@ "tag": "input", "type": "text", "name": "description", - "valueHash": "92b8ba20633a1da3", + "valueHash": "7ecc020bffae0253", "checked": false, "disabled": false, "visible": true @@ -5429,7 +5356,7 @@ "tag": "textarea", "type": "textarea", "name": "body", - "valueHash": "c513fc7b75471075", + "valueHash": "6c0eafd99f29ca4d", "disabled": false, "visible": true }, @@ -5437,7 +5364,7 @@ "tag": "input", "type": "text", "name": "tags", - "valueHash": "495fcb93435d0a3e", + "valueHash": "ca4dbf3dc5193203", "checked": false, "disabled": false, "visible": true @@ -5457,7 +5384,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "60581d1527367fc4", + "valueHash": "5530bc1e89316fe8", "containsCanary": false } ], @@ -5473,8 +5400,8 @@ "schemaHash": "d718b75b5f43908b", "rows": [ { - "keyHash": "da7114755c3b82ba", - "rowHash": "a5fce57b274196ee", + "keyHash": "186347d9ea7673a2", + "rowHash": "2303100aae39ad27", "softDeleted": false } ], @@ -5486,13 +5413,13 @@ "schemaHash": "4dc457684d4d0982", "rows": [ { - "keyHash": "667da1af4b45220f", - "rowHash": "dca511a216c6426d", + "keyHash": "186347d9ea7673a2", + "rowHash": "b722d6313737881a", "softDeleted": false }, { - "keyHash": "346f5d46d64077fa", - "rowHash": "07a8385f5bef979b", + "keyHash": "da7114755c3b82ba", + "rowHash": "8fc053865923194c", "softDeleted": false } ], @@ -5501,10 +5428,10 @@ ] }, "beforeAction": { - "at": 1519, - "url": "http://127.0.0.1:3000/#/editor/rd-test-84fc94-1", + "at": 1597, + "url": "http://127.0.0.1:3000/#/editor/rd-test-f95995-1", "title": "Conduit", - "domHash": "ce0f3e4b3ecff96b", + "domHash": "769b972480c651c1", "canaryPresent": true, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -5516,15 +5443,15 @@ "accessDenied": false }, "semanticDom": { - "textHash": "5bd3d7b2b57f2618", + "textHash": "dcdc0f6db71ab4cc", "visualHash": "b85410fa0ea5a358", - "text": "conduit Source code Home New Article rdq1784818988 Update Article conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", + "text": "conduit Source code Home New Article rdq1785054823102 Update Article conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "input", "type": "text", "name": "title", - "valueHash": "bd4dec5327719bbe", + "valueHash": "a27b6219fc8a7961", "checked": false, "disabled": false, "visible": true @@ -5533,7 +5460,7 @@ "tag": "input", "type": "text", "name": "description", - "valueHash": "dc79394287a02311", + "valueHash": "cbd2a679023e402a", "checked": false, "disabled": false, "visible": true @@ -5542,7 +5469,7 @@ "tag": "textarea", "type": "textarea", "name": "body", - "valueHash": "adde5447a09e198f", + "valueHash": "90ece51066905343", "disabled": false, "visible": true }, @@ -5550,7 +5477,7 @@ "tag": "input", "type": "text", "name": "tags", - "valueHash": "b7163dec0b81a98f", + "valueHash": "69987540bb2a03ad", "checked": false, "disabled": false, "visible": true @@ -5570,7 +5497,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "60581d1527367fc4", + "valueHash": "5530bc1e89316fe8", "containsCanary": false } ], @@ -5584,10 +5511,10 @@ "networkSettled": true, "targetBusyAfter": false, "after": { - "at": 2621, - "url": "http://127.0.0.1:3000/#/article/rd-test-f12177-1", + "at": 2687, + "url": "http://127.0.0.1:3000/#/article/rd-test-612495-1", "title": "Conduit", - "domHash": "c2d22593b4518e6e", + "domHash": "055aada6581c1e1b", "canaryPresent": true, "bodyCanaryPresent": true, "temporaryBlobUrls": 0, @@ -5599,9 +5526,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "2bad7f58583d38f6", + "textHash": "02ca7f6b6550bdfa", "visualHash": "471347ba69eaf940", - "text": "conduit Source code Home New Article rdq1784818988 RD_TEST_F12177_1 rdq1784818988 July 23, 2026 Delete Article Edit Article RD_TEST_F12177_3 RD_TEST_84FC94_4 rdq1784818988 July 23, 2026 Delete Article Edit Article Post Comment There are no comments yet... conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", + "text": "conduit Source code Home New Article rdq1785054823102 RD_TEST_612495_1 rdq1785054823102 July 26, 2026 Delete Article Edit Article RD_TEST_612495_3 RD_TEST_F95995_4 rdq1785054823102 July 26, 2026 Delete Article Edit Article Post Comment There are no comments yet... conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "button", @@ -5653,7 +5580,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "60581d1527367fc4", + "valueHash": "5530bc1e89316fe8", "containsCanary": false } ], @@ -5669,8 +5596,8 @@ "schemaHash": "d718b75b5f43908b", "rows": [ { - "keyHash": "da7114755c3b82ba", - "rowHash": "c8211955f327079a", + "keyHash": "186347d9ea7673a2", + "rowHash": "dd289eee40f7c4c1", "softDeleted": false } ], @@ -5682,13 +5609,13 @@ "schemaHash": "4dc457684d4d0982", "rows": [ { - "keyHash": "667da1af4b45220f", - "rowHash": "dca511a216c6426d", + "keyHash": "186347d9ea7673a2", + "rowHash": "b722d6313737881a", "softDeleted": false }, { - "keyHash": "346f5d46d64077fa", - "rowHash": "07a8385f5bef979b", + "keyHash": "da7114755c3b82ba", + "rowHash": "8fc053865923194c", "softDeleted": false } ], @@ -5696,9 +5623,9 @@ } ] }, - "screenshot": "screenshots/6602a97ee255-after.png", + "screenshot": "screenshots/4da0f6d01b9f-after.png", "apiReadBack": { - "url": "http://127.0.0.1:3000/api/articles/rd-test-84fc94-1", + "url": "http://127.0.0.1:3000/api/articles/rd-test-f95995-1", "status": 404, "ok": false, "canaryPresent": false, @@ -5708,25 +5635,25 @@ "webSockets": [ { "url": "ws://127.0.0.1:3000/?token=%5BREDACTED%5D", - "openedAt": 2838, + "openedAt": 3060, "sentFrames": 0, "receivedFrames": 1, "errors": [], - "closedAt": 3752 + "closedAt": 3948 }, { "url": "ws://127.0.0.1:3000/?token=%5BREDACTED%5D", - "openedAt": 3861, + "openedAt": 4049, "sentFrames": 0, "receivedFrames": 1, "errors": [] } ], "afterRefresh": { - "at": 3696, - "url": "http://127.0.0.1:3000/#/article/rd-test-f12177-1", + "at": 3892, + "url": "http://127.0.0.1:3000/#/article/rd-test-612495-1", "title": "Conduit", - "domHash": "c2d22593b4518e6e", + "domHash": "055aada6581c1e1b", "canaryPresent": true, "bodyCanaryPresent": true, "temporaryBlobUrls": 0, @@ -5738,9 +5665,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "2bad7f58583d38f6", + "textHash": "02ca7f6b6550bdfa", "visualHash": "471347ba69eaf940", - "text": "conduit Source code Home New Article rdq1784818988 RD_TEST_F12177_1 rdq1784818988 July 23, 2026 Delete Article Edit Article RD_TEST_F12177_3 RD_TEST_84FC94_4 rdq1784818988 July 23, 2026 Delete Article Edit Article Post Comment There are no comments yet... conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", + "text": "conduit Source code Home New Article rdq1785054823102 RD_TEST_612495_1 rdq1785054823102 July 26, 2026 Delete Article Edit Article RD_TEST_612495_3 RD_TEST_F95995_4 rdq1785054823102 July 26, 2026 Delete Article Edit Article Post Comment There are no comments yet... conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "button", @@ -5792,7 +5719,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "60581d1527367fc4", + "valueHash": "5530bc1e89316fe8", "containsCanary": false } ], @@ -5802,12 +5729,12 @@ "indexedDb": [] } }, - "refreshScreenshot": "screenshots/6602a97ee255-refresh.png", + "refreshScreenshot": "screenshots/4da0f6d01b9f-refresh.png", "afterHardRefresh": { - "at": 4770, - "url": "http://127.0.0.1:3000/#/article/rd-test-f12177-1", + "at": 4920, + "url": "http://127.0.0.1:3000/#/article/rd-test-612495-1", "title": "Conduit", - "domHash": "c2d22593b4518e6e", + "domHash": "055aada6581c1e1b", "canaryPresent": true, "bodyCanaryPresent": true, "temporaryBlobUrls": 0, @@ -5819,9 +5746,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "2bad7f58583d38f6", + "textHash": "02ca7f6b6550bdfa", "visualHash": "471347ba69eaf940", - "text": "conduit Source code Home New Article rdq1784818988 RD_TEST_F12177_1 rdq1784818988 July 23, 2026 Delete Article Edit Article RD_TEST_F12177_3 RD_TEST_84FC94_4 rdq1784818988 July 23, 2026 Delete Article Edit Article Post Comment There are no comments yet... conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", + "text": "conduit Source code Home New Article rdq1785054823102 RD_TEST_612495_1 rdq1785054823102 July 26, 2026 Delete Article Edit Article RD_TEST_612495_3 RD_TEST_F95995_4 rdq1785054823102 July 26, 2026 Delete Article Edit Article Post Comment There are no comments yet... conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "button", @@ -5873,7 +5800,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "60581d1527367fc4", + "valueHash": "5530bc1e89316fe8", "containsCanary": false } ], @@ -5884,10 +5811,10 @@ } }, "afterNewTab": { - "at": 5868, - "url": "http://127.0.0.1:3000/#/editor/rd-test-84fc94-1", + "at": 5971, + "url": "http://127.0.0.1:3000/#/editor/rd-test-f95995-1", "title": "Conduit", - "domHash": "20b226765a732b65", + "domHash": "a241e346f6a28218", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -5899,9 +5826,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "5bd3d7b2b57f2618", + "textHash": "dcdc0f6db71ab4cc", "visualHash": "b85410fa0ea5a358", - "text": "conduit Source code Home New Article rdq1784818988 Update Article conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", + "text": "conduit Source code Home New Article rdq1785054823102 Update Article conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "input", @@ -5953,7 +5880,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "60581d1527367fc4", + "valueHash": "5530bc1e89316fe8", "containsCanary": false } ], @@ -5964,10 +5891,10 @@ } }, "afterNewContext": { - "at": 7162, - "url": "http://127.0.0.1:3000/#/article/rd-test-f12177-1", + "at": 7323, + "url": "http://127.0.0.1:3000/#/article/rd-test-612495-1", "title": "Conduit", - "domHash": "c2d22593b4518e6e", + "domHash": "055aada6581c1e1b", "canaryPresent": true, "bodyCanaryPresent": true, "temporaryBlobUrls": 0, @@ -5979,9 +5906,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "2bad7f58583d38f6", + "textHash": "02ca7f6b6550bdfa", "visualHash": "471347ba69eaf940", - "text": "conduit Source code Home New Article rdq1784818988 RD_TEST_F12177_1 rdq1784818988 July 23, 2026 Delete Article Edit Article RD_TEST_F12177_3 RD_TEST_84FC94_4 rdq1784818988 July 23, 2026 Delete Article Edit Article Post Comment There are no comments yet... conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", + "text": "conduit Source code Home New Article rdq1785054823102 RD_TEST_612495_1 rdq1785054823102 July 26, 2026 Delete Article Edit Article RD_TEST_612495_3 RD_TEST_F95995_4 rdq1785054823102 July 26, 2026 Delete Article Edit Article Post Comment There are no comments yet... conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "button", @@ -6033,7 +5960,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "60581d1527367fc4", + "valueHash": "5530bc1e89316fe8", "containsCanary": false } ], @@ -6051,7 +5978,7 @@ "added": [], "removed": [], "changed": [ - "da7114755c3b82ba" + "186347d9ea7673a2" ], "softDeleted": [], "truncated": false @@ -6067,7 +5994,7 @@ } ], "sourceSnapshotErrors": [], - "snapshotIndex": "snapshots/RD-005.index.json" + "snapshotIndex": "snapshots/RD-004.index.json" }, "verdict": "VERIFIED", "evidenceLevel": 6, @@ -6075,10 +6002,10 @@ "detectorMatches": [] }, { - "id": "RD-006", + "id": "RD-005", "action": { - "id": "cac957bd899c", - "pageUrl": "http://127.0.0.1:3000/#/editor/rd-test-84fc94-1", + "id": "8e91a4b368af", + "pageUrl": "http://127.0.0.1:3000/#/editor/rd-test-f95995-1", "label": "conduit", "activation": "click", "kind": "navigation", @@ -6128,9 +6055,9 @@ "fields": [] }, "evidence": { - "startedAt": "2026-07-23T15:04:33.396Z", - "durationMs": 2558, - "canary": "RD_TEST_2EA681", + "startedAt": "2026-07-26T08:35:28.618Z", + "durationMs": 2574, + "canary": "RD_TEST_1B86A7", "network": [ { "id": "net-1", @@ -6140,7 +6067,7 @@ "startedAt": 1581, "status": 200, "ok": true, - "finishedAt": 1594, + "finishedAt": 1595, "contentType": "application/json", "resourceTypeHint": "feed" }, @@ -6149,10 +6076,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/api/tags", "resourceType": "xhr", - "startedAt": 1582, + "startedAt": 1581, "status": 200, "ok": true, - "finishedAt": 1588, + "finishedAt": 1589, "contentType": "application/json", "resourceTypeHint": "tags" }, @@ -6173,7 +6100,7 @@ "method": "GET", "url": "http://127.0.0.1:3000/api/tags", "resourceType": "xhr", - "startedAt": 1583, + "startedAt": 1582, "status": 200, "ok": true, "finishedAt": 1590, @@ -6197,35 +6124,35 @@ "weight": 92, "matchCount": 2, "visibleCount": 2, - "elapsedMs": 8 + "elapsedMs": 5 }, { "strategy": "role", "weight": 82, "matchCount": 2, "visibleCount": 2, - "elapsedMs": 6 + "elapsedMs": 3 }, { "strategy": "href", "weight": 72, "matchCount": 0, "visibleCount": 0, - "elapsedMs": 2 + "elapsedMs": 1 }, { "strategy": "text", "weight": 60, "matchCount": 2, "visibleCount": 2, - "elapsedMs": 6 + "elapsedMs": 2 }, { "strategy": "css", "weight": 35, "matchCount": 1, "visibleCount": 1, - "elapsedMs": 4 + "elapsedMs": 2 } ], "chosenStrategy": "css", @@ -6233,10 +6160,10 @@ "retryCount": 0 }, "before": { - "at": 1544, - "url": "http://127.0.0.1:3000/#/editor/rd-test-84fc94-1", + "at": 1547, + "url": "http://127.0.0.1:3000/#/editor/rd-test-f95995-1", "title": "Conduit", - "domHash": "20b226765a732b65", + "domHash": "a241e346f6a28218", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -6248,9 +6175,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "5bd3d7b2b57f2618", + "textHash": "dcdc0f6db71ab4cc", "visualHash": "b85410fa0ea5a358", - "text": "conduit Source code Home New Article rdq1784818988 Update Article conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", + "text": "conduit Source code Home New Article rdq1785054823102 Update Article conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "input", @@ -6302,7 +6229,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "60581d1527367fc4", + "valueHash": "5530bc1e89316fe8", "containsCanary": false } ], @@ -6314,9 +6241,9 @@ }, "beforeAction": { "at": 1553, - "url": "http://127.0.0.1:3000/#/editor/rd-test-84fc94-1", + "url": "http://127.0.0.1:3000/#/editor/rd-test-f95995-1", "title": "Conduit", - "domHash": "20b226765a732b65", + "domHash": "a241e346f6a28218", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -6328,9 +6255,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "5bd3d7b2b57f2618", + "textHash": "dcdc0f6db71ab4cc", "visualHash": "b85410fa0ea5a358", - "text": "conduit Source code Home New Article rdq1784818988 Update Article conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", + "text": "conduit Source code Home New Article rdq1785054823102 Update Article conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "input", @@ -6382,7 +6309,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "60581d1527367fc4", + "valueHash": "5530bc1e89316fe8", "containsCanary": false } ], @@ -6395,10 +6322,10 @@ "networkSettled": true, "targetBusyAfter": false, "after": { - "at": 2554, + "at": 2570, "url": "http://127.0.0.1:3000/#/", "title": "Conduit", - "domHash": "72e1c5d77b56bbde", + "domHash": "f12a3cec7e00e6bc", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -6410,9 +6337,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "ef3e57007eeb4737", + "textHash": "97e2b175e91d32b0", "visualHash": "72ad38eb67085423", - "text": "conduit Source code Home New Article rdq1784818988 Your Feed Global Feed Articles not available. Popular Tags RD_TEST_84FC94_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", + "text": "conduit Source code Home New Article rdq1785054823102 Your Feed Global Feed Articles not available. Popular Tags RD_TEST_F95995_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "button", @@ -6443,7 +6370,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "60581d1527367fc4", + "valueHash": "5530bc1e89316fe8", "containsCanary": false } ], @@ -6453,7 +6380,7 @@ "indexedDb": [] } }, - "snapshotIndex": "snapshots/RD-006.index.json" + "snapshotIndex": "snapshots/RD-005.index.json" }, "verdict": "VERIFIED", "evidenceLevel": 2, @@ -6461,67 +6388,62 @@ "detectorMatches": [] }, { - "id": "RD-007", + "id": "RD-006", "action": { - "id": "cc4dcb5707f2", - "pageUrl": "http://127.0.0.1:3000/#/editor/rd-test-84fc94-1", - "label": "Thinkster", + "id": "41da37d8eedb", + "pageUrl": "http://127.0.0.1:3000/", + "label": "conduit", "activation": "click", "kind": "navigation", "intent": "navigate", "risk": "safe", "fingerprint": { - "selector": "body > div > footer > div > span > a", + "selector": "body > div > header > nav > div > a", "tag": "a", - "ordinal": 6, + "ordinal": 0, "role": "link", - "accessibleName": "Thinkster", - "text": "Thinkster", - "href": "https://thinkster.io/", + "accessibleName": "conduit", + "text": "conduit", + "href": "http://127.0.0.1:3000/#/", "candidates": [ { "strategy": "role", "weight": 92, "role": "link", - "name": "Thinkster", + "name": "conduit", "exact": true }, { "strategy": "role", "weight": 82, "role": "link", - "name": "Thinkster", + "name": "conduit", "exact": false }, { "strategy": "href", "weight": 72, - "value": "https://thinkster.io/" + "value": "http://127.0.0.1:3000/#/" }, { "strategy": "text", "weight": 60, - "value": "Thinkster", + "value": "conduit", "exact": true }, { "strategy": "css", "weight": 35, - "selector": "body > div > footer > div > span > a" + "selector": "body > div > header > nav > div > a" } ] }, "fields": [] }, - "verdict": "SKIPPED", - "evidenceLevel": 0, - "reason": "Cross-origin navigation blocked by the default safety policy. Use --allow-external explicitly.", - "skippedReason": "Cross-origin navigation blocked by the default safety policy. Use --allow-external explicitly.", - "detectorMatches": [], "evidence": { - "startedAt": "", - "durationMs": 0, - "canary": "", + "startedAt": "2026-07-26T08:35:31.195Z", + "durationMs": 2480, + "canary": "RD_TEST_68DBA3", "network": [], "console": [], "pageErrors": [], @@ -6529,197 +6451,56 @@ "filledFields": [], "dialogs": [], "downloads": [], + "downloadEvidence": [], + "uploads": [], "popupUrls": [], - "snapshotIndex": "snapshots/RD-007.index.json" - } - }, - { - "id": "RD-008", - "action": { - "id": "f5b376e9eec4", - "pageUrl": "http://127.0.0.1:3000/#/editor/rd-test-84fc94-1", - "label": "Source code", - "activation": "click", - "kind": "navigation", - "intent": "navigate", - "risk": "safe", - "fingerprint": { - "selector": "body > div > footer > div > ul > li > a", - "tag": "a", - "ordinal": 7, - "role": "link", - "accessibleName": "Source code", - "text": "Source code", - "href": "https://github.com/TonyMckes/conduit-realworld-example-app", - "candidates": [ + "locatorResolution": { + "attempts": [ { "strategy": "role", "weight": 92, - "role": "link", - "name": "Source code", - "exact": true + "matchCount": 2, + "visibleCount": 2, + "elapsedMs": 4 }, { "strategy": "role", "weight": 82, - "role": "link", - "name": "Source code", - "exact": false + "matchCount": 2, + "visibleCount": 2, + "elapsedMs": 3 }, { "strategy": "href", "weight": 72, - "value": "https://github.com/TonyMckes/conduit-realworld-example-app" + "matchCount": 0, + "visibleCount": 0, + "elapsedMs": 1 }, { "strategy": "text", "weight": 60, - "value": "Source code", - "exact": true + "matchCount": 2, + "visibleCount": 2, + "elapsedMs": 3 }, { "strategy": "css", "weight": 35, - "selector": "body > div > footer > div > ul > li > a" + "matchCount": 1, + "visibleCount": 1, + "elapsedMs": 1 } - ] - }, - "fields": [] - }, - "verdict": "SKIPPED", - "evidenceLevel": 0, - "reason": "Cross-origin navigation blocked by the default safety policy. Use --allow-external explicitly.", - "skippedReason": "Cross-origin navigation blocked by the default safety policy. Use --allow-external explicitly.", - "detectorMatches": [], - "evidence": { - "startedAt": "", - "durationMs": 0, - "canary": "", - "network": [], - "console": [], - "pageErrors": [], - "uiClaims": [], - "filledFields": [], - "dialogs": [], - "downloads": [], - "popupUrls": [], - "snapshotIndex": "snapshots/RD-008.index.json" - } - }, - { - "id": "RD-009", - "action": { - "id": "41da37d8eedb", - "pageUrl": "http://127.0.0.1:3000/", - "label": "conduit", - "activation": "click", - "kind": "navigation", - "intent": "navigate", - "risk": "safe", - "fingerprint": { - "selector": "body > div > header > nav > div > a", - "tag": "a", - "ordinal": 0, - "role": "link", - "accessibleName": "conduit", - "text": "conduit", - "href": "http://127.0.0.1:3000/#/", - "candidates": [ - { - "strategy": "role", - "weight": 92, - "role": "link", - "name": "conduit", - "exact": true - }, - { - "strategy": "role", - "weight": 82, - "role": "link", - "name": "conduit", - "exact": false - }, - { - "strategy": "href", - "weight": 72, - "value": "http://127.0.0.1:3000/#/" - }, - { - "strategy": "text", - "weight": 60, - "value": "conduit", - "exact": true - }, - { - "strategy": "css", - "weight": 35, - "selector": "body > div > header > nav > div > a" - } - ] - }, - "fields": [] - }, - "evidence": { - "startedAt": "2026-07-23T15:04:35.989Z", - "durationMs": 2483, - "canary": "RD_TEST_257EE0", - "network": [], - "console": [], - "pageErrors": [], - "uiClaims": [], - "filledFields": [], - "dialogs": [], - "downloads": [], - "downloadEvidence": [], - "uploads": [], - "popupUrls": [], - "locatorResolution": { - "attempts": [ - { - "strategy": "role", - "weight": 92, - "matchCount": 2, - "visibleCount": 2, - "elapsedMs": 8 - }, - { - "strategy": "role", - "weight": 82, - "matchCount": 2, - "visibleCount": 2, - "elapsedMs": 6 - }, - { - "strategy": "href", - "weight": 72, - "matchCount": 0, - "visibleCount": 0, - "elapsedMs": 2 - }, - { - "strategy": "text", - "weight": 60, - "matchCount": 2, - "visibleCount": 2, - "elapsedMs": 6 - }, - { - "strategy": "css", - "weight": 35, - "matchCount": 1, - "visibleCount": 1, - "elapsedMs": 4 - } - ], - "chosenStrategy": "css", - "chosenWeight": 35, - "retryCount": 0 + ], + "chosenStrategy": "css", + "chosenWeight": 35, + "retryCount": 0 }, "before": { - "at": 1467, + "at": 1493, "url": "http://127.0.0.1:3000/", "title": "Conduit", - "domHash": "72e1c5d77b56bbde", + "domHash": "f12a3cec7e00e6bc", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -6731,9 +6512,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "ef3e57007eeb4737", + "textHash": "97e2b175e91d32b0", "visualHash": "72ad38eb67085423", - "text": "conduit Source code Home New Article rdq1784818988 Your Feed Global Feed Articles not available. Popular Tags RD_TEST_84FC94_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", + "text": "conduit Source code Home New Article rdq1785054823102 Your Feed Global Feed Articles not available. Popular Tags RD_TEST_F95995_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "button", @@ -6764,7 +6545,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "60581d1527367fc4", + "valueHash": "5530bc1e89316fe8", "containsCanary": false } ], @@ -6775,10 +6556,10 @@ } }, "beforeAction": { - "at": 1475, + "at": 1500, "url": "http://127.0.0.1:3000/", "title": "Conduit", - "domHash": "72e1c5d77b56bbde", + "domHash": "f12a3cec7e00e6bc", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -6790,9 +6571,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "ef3e57007eeb4737", + "textHash": "97e2b175e91d32b0", "visualHash": "72ad38eb67085423", - "text": "conduit Source code Home New Article rdq1784818988 Your Feed Global Feed Articles not available. Popular Tags RD_TEST_84FC94_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", + "text": "conduit Source code Home New Article rdq1785054823102 Your Feed Global Feed Articles not available. Popular Tags RD_TEST_F95995_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "button", @@ -6823,7 +6604,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "60581d1527367fc4", + "valueHash": "5530bc1e89316fe8", "containsCanary": false } ], @@ -6836,10 +6617,10 @@ "networkSettled": true, "targetBusyAfter": false, "after": { - "at": 2479, + "at": 2477, "url": "http://127.0.0.1:3000/#/", "title": "Conduit", - "domHash": "72e1c5d77b56bbde", + "domHash": "f12a3cec7e00e6bc", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -6851,9 +6632,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "ef3e57007eeb4737", + "textHash": "97e2b175e91d32b0", "visualHash": "72ad38eb67085423", - "text": "conduit Source code Home New Article rdq1784818988 Your Feed Global Feed Articles not available. Popular Tags RD_TEST_84FC94_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", + "text": "conduit Source code Home New Article rdq1785054823102 Your Feed Global Feed Articles not available. Popular Tags RD_TEST_F95995_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "button", @@ -6884,7 +6665,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "60581d1527367fc4", + "valueHash": "5530bc1e89316fe8", "containsCanary": false } ], @@ -6894,7 +6675,7 @@ "indexedDb": [] } }, - "snapshotIndex": "snapshots/RD-009.index.json" + "snapshotIndex": "snapshots/RD-006.index.json" }, "verdict": "VERIFIED", "evidenceLevel": 1, @@ -6902,80 +6683,7 @@ "detectorMatches": [] }, { - "id": "RD-010", - "action": { - "id": "25e3419d67d3", - "pageUrl": "http://127.0.0.1:3000/", - "label": "Source code", - "activation": "click", - "kind": "navigation", - "intent": "navigate", - "risk": "safe", - "fingerprint": { - "selector": "body > div > header > nav > div > ul:nth-of-type(1) > li > a", - "tag": "a", - "ordinal": 1, - "role": "link", - "accessibleName": "Source code", - "text": "Source code", - "href": "https://github.com/TonyMckes/conduit-realworld-example-app", - "candidates": [ - { - "strategy": "role", - "weight": 92, - "role": "link", - "name": "Source code", - "exact": true - }, - { - "strategy": "role", - "weight": 82, - "role": "link", - "name": "Source code", - "exact": false - }, - { - "strategy": "href", - "weight": 72, - "value": "https://github.com/TonyMckes/conduit-realworld-example-app" - }, - { - "strategy": "text", - "weight": 60, - "value": "Source code", - "exact": true - }, - { - "strategy": "css", - "weight": 35, - "selector": "body > div > header > nav > div > ul:nth-of-type(1) > li > a" - } - ] - }, - "fields": [] - }, - "verdict": "SKIPPED", - "evidenceLevel": 0, - "reason": "Cross-origin navigation blocked by the default safety policy. Use --allow-external explicitly.", - "skippedReason": "Cross-origin navigation blocked by the default safety policy. Use --allow-external explicitly.", - "detectorMatches": [], - "evidence": { - "startedAt": "", - "durationMs": 0, - "canary": "", - "network": [], - "console": [], - "pageErrors": [], - "uiClaims": [], - "filledFields": [], - "dialogs": [], - "downloads": [], - "popupUrls": [], - "snapshotIndex": "snapshots/RD-010.index.json" - } - }, - { - "id": "RD-011", + "id": "RD-007", "action": { "id": "1f1deb778a19", "pageUrl": "http://127.0.0.1:3000/", @@ -7028,9 +6736,9 @@ "fields": [] }, "evidence": { - "startedAt": "2026-07-23T15:04:38.499Z", - "durationMs": 2490, - "canary": "RD_TEST_EBBD72", + "startedAt": "2026-07-26T08:35:33.678Z", + "durationMs": 2550, + "canary": "RD_TEST_5BC7A7", "network": [], "console": [], "pageErrors": [], @@ -7048,14 +6756,14 @@ "weight": 92, "matchCount": 0, "visibleCount": 0, - "elapsedMs": 3 + "elapsedMs": 2 }, { "strategy": "role", "weight": 82, "matchCount": 1, "visibleCount": 1, - "elapsedMs": 4 + "elapsedMs": 2 } ], "chosenStrategy": "role", @@ -7063,10 +6771,10 @@ "retryCount": 0 }, "before": { - "at": 1469, + "at": 1555, "url": "http://127.0.0.1:3000/", "title": "Conduit", - "domHash": "72e1c5d77b56bbde", + "domHash": "f12a3cec7e00e6bc", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -7078,9 +6786,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "ef3e57007eeb4737", + "textHash": "97e2b175e91d32b0", "visualHash": "72ad38eb67085423", - "text": "conduit Source code Home New Article rdq1784818988 Your Feed Global Feed Articles not available. Popular Tags RD_TEST_84FC94_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", + "text": "conduit Source code Home New Article rdq1785054823102 Your Feed Global Feed Articles not available. Popular Tags RD_TEST_F95995_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "button", @@ -7111,7 +6819,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "60581d1527367fc4", + "valueHash": "5530bc1e89316fe8", "containsCanary": false } ], @@ -7122,10 +6830,10 @@ } }, "beforeAction": { - "at": 1478, + "at": 1561, "url": "http://127.0.0.1:3000/", "title": "Conduit", - "domHash": "72e1c5d77b56bbde", + "domHash": "f12a3cec7e00e6bc", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -7137,9 +6845,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "ef3e57007eeb4737", + "textHash": "97e2b175e91d32b0", "visualHash": "72ad38eb67085423", - "text": "conduit Source code Home New Article rdq1784818988 Your Feed Global Feed Articles not available. Popular Tags RD_TEST_84FC94_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", + "text": "conduit Source code Home New Article rdq1785054823102 Your Feed Global Feed Articles not available. Popular Tags RD_TEST_F95995_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "button", @@ -7170,7 +6878,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "60581d1527367fc4", + "valueHash": "5530bc1e89316fe8", "containsCanary": false } ], @@ -7183,10 +6891,10 @@ "networkSettled": true, "targetBusyAfter": false, "after": { - "at": 2486, + "at": 2547, "url": "http://127.0.0.1:3000/#/", "title": "Conduit", - "domHash": "72e1c5d77b56bbde", + "domHash": "f12a3cec7e00e6bc", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -7198,9 +6906,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "ef3e57007eeb4737", + "textHash": "97e2b175e91d32b0", "visualHash": "72ad38eb67085423", - "text": "conduit Source code Home New Article rdq1784818988 Your Feed Global Feed Articles not available. Popular Tags RD_TEST_84FC94_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", + "text": "conduit Source code Home New Article rdq1785054823102 Your Feed Global Feed Articles not available. Popular Tags RD_TEST_F95995_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "button", @@ -7231,7 +6939,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "60581d1527367fc4", + "valueHash": "5530bc1e89316fe8", "containsCanary": false } ], @@ -7241,7 +6949,7 @@ "indexedDb": [] } }, - "snapshotIndex": "snapshots/RD-011.index.json" + "snapshotIndex": "snapshots/RD-007.index.json" }, "verdict": "VERIFIED", "evidenceLevel": 1, @@ -7249,7 +6957,7 @@ "detectorMatches": [] }, { - "id": "RD-012", + "id": "RD-008", "action": { "id": "23e7c4644d98", "pageUrl": "http://127.0.0.1:3000/", @@ -7302,9 +7010,9 @@ "fields": [] }, "evidence": { - "startedAt": "2026-07-23T15:04:41.015Z", - "durationMs": 2491, - "canary": "RD_TEST_F11352", + "startedAt": "2026-07-26T08:35:36.231Z", + "durationMs": 2497, + "canary": "RD_TEST_63453D", "network": [], "console": [], "pageErrors": [], @@ -7322,14 +7030,14 @@ "weight": 92, "matchCount": 0, "visibleCount": 0, - "elapsedMs": 3 + "elapsedMs": 2 }, { "strategy": "role", "weight": 82, "matchCount": 1, "visibleCount": 1, - "elapsedMs": 5 + "elapsedMs": 2 } ], "chosenStrategy": "role", @@ -7337,10 +7045,10 @@ "retryCount": 0 }, "before": { - "at": 1471, + "at": 1500, "url": "http://127.0.0.1:3000/", "title": "Conduit", - "domHash": "72e1c5d77b56bbde", + "domHash": "f12a3cec7e00e6bc", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -7352,9 +7060,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "ef3e57007eeb4737", + "textHash": "97e2b175e91d32b0", "visualHash": "72ad38eb67085423", - "text": "conduit Source code Home New Article rdq1784818988 Your Feed Global Feed Articles not available. Popular Tags RD_TEST_84FC94_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", + "text": "conduit Source code Home New Article rdq1785054823102 Your Feed Global Feed Articles not available. Popular Tags RD_TEST_F95995_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "button", @@ -7385,7 +7093,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "60581d1527367fc4", + "valueHash": "5530bc1e89316fe8", "containsCanary": false } ], @@ -7396,10 +7104,10 @@ } }, "beforeAction": { - "at": 1480, + "at": 1507, "url": "http://127.0.0.1:3000/", "title": "Conduit", - "domHash": "72e1c5d77b56bbde", + "domHash": "f12a3cec7e00e6bc", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -7411,9 +7119,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "ef3e57007eeb4737", + "textHash": "97e2b175e91d32b0", "visualHash": "72ad38eb67085423", - "text": "conduit Source code Home New Article rdq1784818988 Your Feed Global Feed Articles not available. Popular Tags RD_TEST_84FC94_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", + "text": "conduit Source code Home New Article rdq1785054823102 Your Feed Global Feed Articles not available. Popular Tags RD_TEST_F95995_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "button", @@ -7444,7 +7152,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "60581d1527367fc4", + "valueHash": "5530bc1e89316fe8", "containsCanary": false } ], @@ -7457,10 +7165,10 @@ "networkSettled": true, "targetBusyAfter": false, "after": { - "at": 2487, + "at": 2494, "url": "http://127.0.0.1:3000/#/editor", "title": "Conduit", - "domHash": "cda756a29befbf68", + "domHash": "5ebc0985cd298024", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -7472,9 +7180,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "ba9ba6af2ee2f3df", + "textHash": "623d2b57c26f13d5", "visualHash": "b85410fa0ea5a358", - "text": "conduit Source code Home New Article rdq1784818988 Publish Article conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", + "text": "conduit Source code Home New Article rdq1785054823102 Publish Article conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "input", @@ -7526,7 +7234,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "60581d1527367fc4", + "valueHash": "5530bc1e89316fe8", "containsCanary": false } ], @@ -7536,7 +7244,7 @@ "indexedDb": [] } }, - "snapshotIndex": "snapshots/RD-012.index.json" + "snapshotIndex": "snapshots/RD-008.index.json" }, "verdict": "VERIFIED", "evidenceLevel": 1, @@ -7544,7 +7252,7 @@ "detectorMatches": [] }, { - "id": "RD-013", + "id": "RD-009", "action": { "id": "2d9ff0a4be0d", "pageUrl": "http://127.0.0.1:3000/", @@ -7592,19 +7300,19 @@ "fields": [] }, "evidence": { - "startedAt": "2026-07-23T15:04:43.543Z", - "durationMs": 2467, - "canary": "RD_TEST_A329A9", + "startedAt": "2026-07-26T08:35:38.731Z", + "durationMs": 2516, + "canary": "RD_TEST_F09453", "network": [ { "id": "net-1", "method": "GET", "url": "http://127.0.0.1:3000/api/articles/feed?limit=3&&offset=0", "resourceType": "xhr", - "startedAt": 1484, + "startedAt": 1533, "status": 200, "ok": true, - "finishedAt": 1494, + "finishedAt": 1545, "contentType": "application/json", "resourceTypeHint": "feed" } @@ -7625,7 +7333,7 @@ "weight": 92, "matchCount": 1, "visibleCount": 1, - "elapsedMs": 4 + "elapsedMs": 2 } ], "chosenStrategy": "role", @@ -7633,10 +7341,10 @@ "retryCount": 0 }, "before": { - "at": 1444, + "at": 1507, "url": "http://127.0.0.1:3000/", "title": "Conduit", - "domHash": "72e1c5d77b56bbde", + "domHash": "f12a3cec7e00e6bc", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -7648,9 +7356,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "ef3e57007eeb4737", + "textHash": "97e2b175e91d32b0", "visualHash": "72ad38eb67085423", - "text": "conduit Source code Home New Article rdq1784818988 Your Feed Global Feed Articles not available. Popular Tags RD_TEST_84FC94_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", + "text": "conduit Source code Home New Article rdq1785054823102 Your Feed Global Feed Articles not available. Popular Tags RD_TEST_F95995_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "button", @@ -7681,7 +7389,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "60581d1527367fc4", + "valueHash": "5530bc1e89316fe8", "containsCanary": false } ], @@ -7692,10 +7400,10 @@ } }, "beforeAction": { - "at": 1452, + "at": 1514, "url": "http://127.0.0.1:3000/", "title": "Conduit", - "domHash": "72e1c5d77b56bbde", + "domHash": "f12a3cec7e00e6bc", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -7707,9 +7415,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "ef3e57007eeb4737", + "textHash": "97e2b175e91d32b0", "visualHash": "72ad38eb67085423", - "text": "conduit Source code Home New Article rdq1784818988 Your Feed Global Feed Articles not available. Popular Tags RD_TEST_84FC94_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", + "text": "conduit Source code Home New Article rdq1785054823102 Your Feed Global Feed Articles not available. Popular Tags RD_TEST_F95995_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "button", @@ -7740,7 +7448,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "60581d1527367fc4", + "valueHash": "5530bc1e89316fe8", "containsCanary": false } ], @@ -7753,10 +7461,10 @@ "networkSettled": true, "targetBusyAfter": false, "after": { - "at": 2441, + "at": 2493, "url": "http://127.0.0.1:3000/", "title": "Conduit", - "domHash": "72e1c5d77b56bbde", + "domHash": "f12a3cec7e00e6bc", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -7768,9 +7476,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "ef3e57007eeb4737", + "textHash": "97e2b175e91d32b0", "visualHash": "72ad38eb67085423", - "text": "conduit Source code Home New Article rdq1784818988 Your Feed Global Feed Articles not available. Popular Tags RD_TEST_84FC94_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", + "text": "conduit Source code Home New Article rdq1785054823102 Your Feed Global Feed Articles not available. Popular Tags RD_TEST_F95995_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "button", @@ -7801,7 +7509,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "60581d1527367fc4", + "valueHash": "5530bc1e89316fe8", "containsCanary": false } ], @@ -7812,7 +7520,7 @@ } }, "screenshot": "screenshots/2d9ff0a4be0d-after.png", - "snapshotIndex": "snapshots/RD-013.index.json" + "snapshotIndex": "snapshots/RD-009.index.json" }, "verdict": "VERIFIED", "evidenceLevel": 2, @@ -7820,7 +7528,7 @@ "detectorMatches": [] }, { - "id": "RD-014", + "id": "RD-010", "action": { "id": "3e6593f2a04d", "pageUrl": "http://127.0.0.1:3000/", @@ -7868,19 +7576,19 @@ "fields": [] }, "evidence": { - "startedAt": "2026-07-23T15:04:46.041Z", - "durationMs": 2542, - "canary": "RD_TEST_D94580", + "startedAt": "2026-07-26T08:35:41.249Z", + "durationMs": 2548, + "canary": "RD_TEST_ED5077", "network": [ { "id": "net-1", "method": "GET", "url": "http://127.0.0.1:3000/api/articles?limit=3&&offset=0", "resourceType": "xhr", - "startedAt": 1501, + "startedAt": 1516, "status": 200, "ok": true, - "finishedAt": 1513, + "finishedAt": 1527, "contentType": "application/json", "resourceTypeHint": "articles" }, @@ -7889,10 +7597,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/assets/smiley-cyrus.jpeg", "resourceType": "image", - "startedAt": 1526, + "startedAt": 1540, "status": 200, "ok": true, - "finishedAt": 1531, + "finishedAt": 1546, "contentType": "image/jpeg", "resourceTypeHint": "smiley-cyrus.jpeg" }, @@ -7901,10 +7609,10 @@ "method": "GET", "url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwlxdu.woff2", "resourceType": "font", - "startedAt": 1530, + "startedAt": 1545, "status": 200, "ok": true, - "finishedAt": 1577, + "finishedAt": 1590, "contentType": "font/woff2", "resourceTypeHint": "6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwlxdu.woff2" } @@ -7925,7 +7633,7 @@ "weight": 92, "matchCount": 1, "visibleCount": 1, - "elapsedMs": 5 + "elapsedMs": 2 } ], "chosenStrategy": "role", @@ -7933,10 +7641,10 @@ "retryCount": 0 }, "before": { - "at": 1460, + "at": 1491, "url": "http://127.0.0.1:3000/", "title": "Conduit", - "domHash": "72e1c5d77b56bbde", + "domHash": "f12a3cec7e00e6bc", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -7948,9 +7656,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "ef3e57007eeb4737", + "textHash": "97e2b175e91d32b0", "visualHash": "72ad38eb67085423", - "text": "conduit Source code Home New Article rdq1784818988 Your Feed Global Feed Articles not available. Popular Tags RD_TEST_84FC94_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", + "text": "conduit Source code Home New Article rdq1785054823102 Your Feed Global Feed Articles not available. Popular Tags RD_TEST_F95995_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "button", @@ -7981,7 +7689,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "60581d1527367fc4", + "valueHash": "5530bc1e89316fe8", "containsCanary": false } ], @@ -7992,10 +7700,10 @@ } }, "beforeAction": { - "at": 1470, + "at": 1497, "url": "http://127.0.0.1:3000/", "title": "Conduit", - "domHash": "72e1c5d77b56bbde", + "domHash": "f12a3cec7e00e6bc", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -8007,9 +7715,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "ef3e57007eeb4737", + "textHash": "97e2b175e91d32b0", "visualHash": "72ad38eb67085423", - "text": "conduit Source code Home New Article rdq1784818988 Your Feed Global Feed Articles not available. Popular Tags RD_TEST_84FC94_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", + "text": "conduit Source code Home New Article rdq1785054823102 Your Feed Global Feed Articles not available. Popular Tags RD_TEST_F95995_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "button", @@ -8040,7 +7748,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "60581d1527367fc4", + "valueHash": "5530bc1e89316fe8", "containsCanary": false } ], @@ -8053,10 +7761,10 @@ "networkSettled": true, "targetBusyAfter": false, "after": { - "at": 2538, + "at": 2545, "url": "http://127.0.0.1:3000/", "title": "Conduit", - "domHash": "1c3625b8ab086209", + "domHash": "627e997dcc748f41", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -8068,9 +7776,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "d283ab8577cc3e0c", + "textHash": "cdb4d72e4bb69503", "visualHash": "805f65e8f4aada8d", - "text": "conduit Source code Home New Article rdq1784818988 Your Feed Global Feed rdq1784818988 July 23, 2026 ( 0 ) RD_TEST_F12177_1 RD_TEST_F12177_2 Read more... RD_TEST_84FC94_4 1 Popular Tags RD_TEST_84FC94_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", + "text": "conduit Source code Home New Article rdq1785054823102 Your Feed Global Feed rdq1785054823102 July 26, 2026 ( 0 ) RD_TEST_612495_1 RD_TEST_612495_2 Read more... RD_TEST_F95995_4 1 Popular Tags RD_TEST_F95995_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "button", @@ -8108,7 +7816,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "60581d1527367fc4", + "valueHash": "5530bc1e89316fe8", "containsCanary": false } ], @@ -8118,7 +7826,7 @@ "indexedDb": [] } }, - "snapshotIndex": "snapshots/RD-014.index.json" + "snapshotIndex": "snapshots/RD-010.index.json" }, "verdict": "VERIFIED", "evidenceLevel": 2, @@ -8126,11 +7834,11 @@ "detectorMatches": [] }, { - "id": "RD-015", + "id": "RD-011", "action": { - "id": "399f2f7066a4", + "id": "728383b5947d", "pageUrl": "http://127.0.0.1:3000/", - "label": "RD_TEST_84FC94_4", + "label": "RD_TEST_F95995_4", "activation": "click", "kind": "local", "intent": "interact", @@ -8140,28 +7848,28 @@ "tag": "button", "ordinal": 6, "role": "button", - "accessibleName": "RD_TEST_84FC94_4", - "text": "RD_TEST_84FC94_4", + "accessibleName": "RD_TEST_F95995_4", + "text": "RD_TEST_F95995_4", "type": "submit", "candidates": [ { "strategy": "role", "weight": 92, "role": "button", - "name": "RD_TEST_84FC94_4", + "name": "RD_TEST_F95995_4", "exact": true }, { "strategy": "role", "weight": 82, "role": "button", - "name": "RD_TEST_84FC94_4", + "name": "RD_TEST_F95995_4", "exact": false }, { "strategy": "text", "weight": 60, - "value": "RD_TEST_84FC94_4", + "value": "RD_TEST_F95995_4", "exact": true }, { @@ -8174,19 +7882,19 @@ "fields": [] }, "evidence": { - "startedAt": "2026-07-23T15:04:48.620Z", - "durationMs": 2604, - "canary": "RD_TEST_3FC1E3", + "startedAt": "2026-07-26T08:35:43.800Z", + "durationMs": 2620, + "canary": "RD_TEST_EBDDC7", "network": [ { "id": "net-1", "method": "GET", - "url": "http://127.0.0.1:3000/api/articles?tag=RD_TEST_84FC94_4&&limit=3&&offset=0", + "url": "http://127.0.0.1:3000/api/articles?tag=RD_TEST_F95995_4&&limit=3&&offset=0", "resourceType": "xhr", - "startedAt": 1557, + "startedAt": 1582, "status": 200, "ok": true, - "finishedAt": 1568, + "finishedAt": 1593, "contentType": "application/json", "resourceTypeHint": "articles" }, @@ -8195,10 +7903,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/assets/smiley-cyrus.jpeg", "resourceType": "image", - "startedAt": 1581, + "startedAt": 1605, "status": 200, "ok": true, - "finishedAt": 1588, + "finishedAt": 1614, "contentType": "image/jpeg", "resourceTypeHint": "smiley-cyrus.jpeg" }, @@ -8207,10 +7915,10 @@ "method": "GET", "url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwlxdu.woff2", "resourceType": "font", - "startedAt": 1587, + "startedAt": 1614, "status": 200, "ok": true, - "finishedAt": 1633, + "finishedAt": 1659, "contentType": "font/woff2", "resourceTypeHint": "6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwlxdu.woff2" } @@ -8231,7 +7939,7 @@ "weight": 92, "matchCount": 1, "visibleCount": 1, - "elapsedMs": 4 + "elapsedMs": 2 } ], "chosenStrategy": "role", @@ -8239,10 +7947,10 @@ "retryCount": 0 }, "before": { - "at": 1506, + "at": 1558, "url": "http://127.0.0.1:3000/", "title": "Conduit", - "domHash": "72e1c5d77b56bbde", + "domHash": "f12a3cec7e00e6bc", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -8254,9 +7962,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "ef3e57007eeb4737", + "textHash": "97e2b175e91d32b0", "visualHash": "72ad38eb67085423", - "text": "conduit Source code Home New Article rdq1784818988 Your Feed Global Feed Articles not available. Popular Tags RD_TEST_84FC94_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", + "text": "conduit Source code Home New Article rdq1785054823102 Your Feed Global Feed Articles not available. Popular Tags RD_TEST_F95995_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "button", @@ -8287,7 +7995,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "60581d1527367fc4", + "valueHash": "5530bc1e89316fe8", "containsCanary": false } ], @@ -8298,10 +8006,10 @@ } }, "beforeAction": { - "at": 1521, + "at": 1564, "url": "http://127.0.0.1:3000/", "title": "Conduit", - "domHash": "72e1c5d77b56bbde", + "domHash": "f12a3cec7e00e6bc", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -8313,9 +8021,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "ef3e57007eeb4737", + "textHash": "97e2b175e91d32b0", "visualHash": "72ad38eb67085423", - "text": "conduit Source code Home New Article rdq1784818988 Your Feed Global Feed Articles not available. Popular Tags RD_TEST_84FC94_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", + "text": "conduit Source code Home New Article rdq1785054823102 Your Feed Global Feed Articles not available. Popular Tags RD_TEST_F95995_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "button", @@ -8346,7 +8054,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "60581d1527367fc4", + "valueHash": "5530bc1e89316fe8", "containsCanary": false } ], @@ -8359,10 +8067,10 @@ "networkSettled": true, "targetBusyAfter": false, "after": { - "at": 2600, + "at": 2617, "url": "http://127.0.0.1:3000/", "title": "Conduit", - "domHash": "fa96bba23302276c", + "domHash": "7cc3955400c775b2", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -8374,9 +8082,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "f4cbf6c8c4fa0894", + "textHash": "f7b0a22a40eb884d", "visualHash": "95abe9be32f407d5", - "text": "conduit Source code Home New Article rdq1784818988 Your Feed Global Feed RD_TEST_84FC94_4 rdq1784818988 July 23, 2026 ( 0 ) RD_TEST_F12177_1 RD_TEST_F12177_2 Read more... RD_TEST_84FC94_4 1 Popular Tags RD_TEST_84FC94_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", + "text": "conduit Source code Home New Article rdq1785054823102 Your Feed Global Feed RD_TEST_F95995_4 rdq1785054823102 July 26, 2026 ( 0 ) RD_TEST_612495_1 RD_TEST_612495_2 Read more... RD_TEST_F95995_4 1 Popular Tags RD_TEST_F95995_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "button", @@ -8421,7 +8129,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "60581d1527367fc4", + "valueHash": "5530bc1e89316fe8", "containsCanary": false } ], @@ -8431,7 +8139,7 @@ "indexedDb": [] } }, - "snapshotIndex": "snapshots/RD-015.index.json" + "snapshotIndex": "snapshots/RD-011.index.json" }, "verdict": "VERIFIED", "evidenceLevel": 2, @@ -8439,7 +8147,7 @@ "detectorMatches": [] }, { - "id": "RD-016", + "id": "RD-012", "action": { "id": "f485075d62a6", "pageUrl": "http://127.0.0.1:3000/", @@ -8492,9 +8200,9 @@ "fields": [] }, "evidence": { - "startedAt": "2026-07-23T15:04:51.281Z", - "durationMs": 2475, - "canary": "RD_TEST_5CA23B", + "startedAt": "2026-07-26T08:35:46.423Z", + "durationMs": 2507, + "canary": "RD_TEST_275787", "network": [], "console": [], "pageErrors": [], @@ -8512,35 +8220,35 @@ "weight": 92, "matchCount": 2, "visibleCount": 2, - "elapsedMs": 8 + "elapsedMs": 4 }, { "strategy": "role", "weight": 82, "matchCount": 2, "visibleCount": 2, - "elapsedMs": 6 + "elapsedMs": 3 }, { "strategy": "href", "weight": 72, "matchCount": 0, "visibleCount": 0, - "elapsedMs": 2 + "elapsedMs": 1 }, { "strategy": "text", "weight": 60, "matchCount": 2, "visibleCount": 2, - "elapsedMs": 6 + "elapsedMs": 3 }, { "strategy": "css", "weight": 35, "matchCount": 1, "visibleCount": 1, - "elapsedMs": 4 + "elapsedMs": 1 } ], "chosenStrategy": "css", @@ -8548,10 +8256,10 @@ "retryCount": 0 }, "before": { - "at": 1475, + "at": 1510, "url": "http://127.0.0.1:3000/", "title": "Conduit", - "domHash": "72e1c5d77b56bbde", + "domHash": "f12a3cec7e00e6bc", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -8563,9 +8271,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "ef3e57007eeb4737", + "textHash": "97e2b175e91d32b0", "visualHash": "72ad38eb67085423", - "text": "conduit Source code Home New Article rdq1784818988 Your Feed Global Feed Articles not available. Popular Tags RD_TEST_84FC94_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", + "text": "conduit Source code Home New Article rdq1785054823102 Your Feed Global Feed Articles not available. Popular Tags RD_TEST_F95995_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "button", @@ -8596,7 +8304,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "60581d1527367fc4", + "valueHash": "5530bc1e89316fe8", "containsCanary": false } ], @@ -8607,10 +8315,10 @@ } }, "beforeAction": { - "at": 1484, + "at": 1516, "url": "http://127.0.0.1:3000/", "title": "Conduit", - "domHash": "72e1c5d77b56bbde", + "domHash": "f12a3cec7e00e6bc", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -8622,9 +8330,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "ef3e57007eeb4737", + "textHash": "97e2b175e91d32b0", "visualHash": "72ad38eb67085423", - "text": "conduit Source code Home New Article rdq1784818988 Your Feed Global Feed Articles not available. Popular Tags RD_TEST_84FC94_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", + "text": "conduit Source code Home New Article rdq1785054823102 Your Feed Global Feed Articles not available. Popular Tags RD_TEST_F95995_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "button", @@ -8655,7 +8363,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "60581d1527367fc4", + "valueHash": "5530bc1e89316fe8", "containsCanary": false } ], @@ -8668,10 +8376,10 @@ "networkSettled": true, "targetBusyAfter": false, "after": { - "at": 2471, + "at": 2504, "url": "http://127.0.0.1:3000/#/", "title": "Conduit", - "domHash": "72e1c5d77b56bbde", + "domHash": "f12a3cec7e00e6bc", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -8683,9 +8391,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "ef3e57007eeb4737", + "textHash": "97e2b175e91d32b0", "visualHash": "72ad38eb67085423", - "text": "conduit Source code Home New Article rdq1784818988 Your Feed Global Feed Articles not available. Popular Tags RD_TEST_84FC94_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", + "text": "conduit Source code Home New Article rdq1785054823102 Your Feed Global Feed Articles not available. Popular Tags RD_TEST_F95995_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "button", @@ -8716,7 +8424,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "60581d1527367fc4", + "valueHash": "5530bc1e89316fe8", "containsCanary": false } ], @@ -8726,13 +8434,305 @@ "indexedDb": [] } }, - "snapshotIndex": "snapshots/RD-016.index.json" + "snapshotIndex": "snapshots/RD-012.index.json" }, "verdict": "VERIFIED", "evidenceLevel": 1, "reason": "The action produced an observable effect.", "detectorMatches": [] }, + { + "id": "RD-013", + "action": { + "id": "7244750fb0e2", + "pageUrl": "http://127.0.0.1:3000/#/editor/rd-test-f95995-1", + "label": "Source code", + "activation": "click", + "kind": "navigation", + "intent": "navigate", + "risk": "safe", + "fingerprint": { + "selector": "body > div > header > nav > div > ul:nth-of-type(1) > li > a", + "tag": "a", + "ordinal": 1, + "role": "link", + "accessibleName": "Source code", + "text": "Source code", + "href": "https://github.com/TonyMckes/conduit-realworld-example-app", + "candidates": [ + { + "strategy": "role", + "weight": 92, + "role": "link", + "name": "Source code", + "exact": true + }, + { + "strategy": "role", + "weight": 82, + "role": "link", + "name": "Source code", + "exact": false + }, + { + "strategy": "href", + "weight": 72, + "value": "https://github.com/TonyMckes/conduit-realworld-example-app" + }, + { + "strategy": "text", + "weight": 60, + "value": "Source code", + "exact": true + }, + { + "strategy": "css", + "weight": 35, + "selector": "body > div > header > nav > div > ul:nth-of-type(1) > li > a" + } + ] + }, + "fields": [] + }, + "verdict": "SKIPPED", + "evidenceLevel": 0, + "reason": "Cross-origin navigation blocked by the default safety policy. Use --allow-external explicitly.", + "skippedReason": "Cross-origin navigation blocked by the default safety policy. Use --allow-external explicitly.", + "detectorMatches": [], + "evidence": { + "startedAt": "", + "durationMs": 0, + "canary": "", + "network": [], + "console": [], + "pageErrors": [], + "uiClaims": [], + "filledFields": [], + "dialogs": [], + "downloads": [], + "popupUrls": [], + "snapshotIndex": "snapshots/RD-013.index.json" + } + }, + { + "id": "RD-014", + "action": { + "id": "c4e7eb1ccc17", + "pageUrl": "http://127.0.0.1:3000/#/editor/rd-test-f95995-1", + "label": "Thinkster", + "activation": "click", + "kind": "navigation", + "intent": "navigate", + "risk": "safe", + "fingerprint": { + "selector": "body > div > footer > div > span > a", + "tag": "a", + "ordinal": 6, + "role": "link", + "accessibleName": "Thinkster", + "text": "Thinkster", + "href": "https://thinkster.io/", + "candidates": [ + { + "strategy": "role", + "weight": 92, + "role": "link", + "name": "Thinkster", + "exact": true + }, + { + "strategy": "role", + "weight": 82, + "role": "link", + "name": "Thinkster", + "exact": false + }, + { + "strategy": "href", + "weight": 72, + "value": "https://thinkster.io/" + }, + { + "strategy": "text", + "weight": 60, + "value": "Thinkster", + "exact": true + }, + { + "strategy": "css", + "weight": 35, + "selector": "body > div > footer > div > span > a" + } + ] + }, + "fields": [] + }, + "verdict": "SKIPPED", + "evidenceLevel": 0, + "reason": "Cross-origin navigation blocked by the default safety policy. Use --allow-external explicitly.", + "skippedReason": "Cross-origin navigation blocked by the default safety policy. Use --allow-external explicitly.", + "detectorMatches": [], + "evidence": { + "startedAt": "", + "durationMs": 0, + "canary": "", + "network": [], + "console": [], + "pageErrors": [], + "uiClaims": [], + "filledFields": [], + "dialogs": [], + "downloads": [], + "popupUrls": [], + "snapshotIndex": "snapshots/RD-014.index.json" + } + }, + { + "id": "RD-015", + "action": { + "id": "e1aaac6ec218", + "pageUrl": "http://127.0.0.1:3000/#/editor/rd-test-f95995-1", + "label": "Source code", + "activation": "click", + "kind": "navigation", + "intent": "navigate", + "risk": "safe", + "fingerprint": { + "selector": "body > div > footer > div > ul > li > a", + "tag": "a", + "ordinal": 7, + "role": "link", + "accessibleName": "Source code", + "text": "Source code", + "href": "https://github.com/TonyMckes/conduit-realworld-example-app", + "candidates": [ + { + "strategy": "role", + "weight": 92, + "role": "link", + "name": "Source code", + "exact": true + }, + { + "strategy": "role", + "weight": 82, + "role": "link", + "name": "Source code", + "exact": false + }, + { + "strategy": "href", + "weight": 72, + "value": "https://github.com/TonyMckes/conduit-realworld-example-app" + }, + { + "strategy": "text", + "weight": 60, + "value": "Source code", + "exact": true + }, + { + "strategy": "css", + "weight": 35, + "selector": "body > div > footer > div > ul > li > a" + } + ] + }, + "fields": [] + }, + "verdict": "SKIPPED", + "evidenceLevel": 0, + "reason": "Cross-origin navigation blocked by the default safety policy. Use --allow-external explicitly.", + "skippedReason": "Cross-origin navigation blocked by the default safety policy. Use --allow-external explicitly.", + "detectorMatches": [], + "evidence": { + "startedAt": "", + "durationMs": 0, + "canary": "", + "network": [], + "console": [], + "pageErrors": [], + "uiClaims": [], + "filledFields": [], + "dialogs": [], + "downloads": [], + "popupUrls": [], + "snapshotIndex": "snapshots/RD-015.index.json" + } + }, + { + "id": "RD-016", + "action": { + "id": "25e3419d67d3", + "pageUrl": "http://127.0.0.1:3000/", + "label": "Source code", + "activation": "click", + "kind": "navigation", + "intent": "navigate", + "risk": "safe", + "fingerprint": { + "selector": "body > div > header > nav > div > ul:nth-of-type(1) > li > a", + "tag": "a", + "ordinal": 1, + "role": "link", + "accessibleName": "Source code", + "text": "Source code", + "href": "https://github.com/TonyMckes/conduit-realworld-example-app", + "candidates": [ + { + "strategy": "role", + "weight": 92, + "role": "link", + "name": "Source code", + "exact": true + }, + { + "strategy": "role", + "weight": 82, + "role": "link", + "name": "Source code", + "exact": false + }, + { + "strategy": "href", + "weight": 72, + "value": "https://github.com/TonyMckes/conduit-realworld-example-app" + }, + { + "strategy": "text", + "weight": 60, + "value": "Source code", + "exact": true + }, + { + "strategy": "css", + "weight": 35, + "selector": "body > div > header > nav > div > ul:nth-of-type(1) > li > a" + } + ] + }, + "fields": [] + }, + "verdict": "SKIPPED", + "evidenceLevel": 0, + "reason": "Cross-origin navigation blocked by the default safety policy. Use --allow-external explicitly.", + "skippedReason": "Cross-origin navigation blocked by the default safety policy. Use --allow-external explicitly.", + "detectorMatches": [], + "evidence": { + "startedAt": "", + "durationMs": 0, + "canary": "", + "network": [], + "console": [], + "pageErrors": [], + "uiClaims": [], + "filledFields": [], + "dialogs": [], + "downloads": [], + "popupUrls": [], + "snapshotIndex": "snapshots/RD-016.index.json" + } + }, { "id": "RD-017", "action": { @@ -8882,9 +8882,9 @@ ], "environment": { "status": "VALID", - "checkedAt": "2026-07-23T15:04:13.372Z", - "durationMs": 2618, - "targetUrl": "http://127.0.0.1:3000/#/editor/rd-test-84fc94-1", + "checkedAt": "2026-07-26T08:35:08.152Z", + "durationMs": 2838, + "targetUrl": "http://127.0.0.1:3000/#/editor/rd-test-f95995-1", "mainDocument": { "status": 200, "contentType": "text/html" @@ -8896,7 +8896,7 @@ "failed": 0 }, "render": { - "bodyTextLength": 167, + "bodyTextLength": 170, "visibleElements": 44, "interactiveElements": 12, "ready": true @@ -8910,6 +8910,36 @@ "truncated": true, "reasons": [ "max-pages" - ] + ], + "selection": { + "strategy": "coverage-balanced-v1", + "eligibleActions": 18, + "selectedActions": 18, + "omittedActions": 0, + "eligiblePages": 2, + "selectedPages": 2, + "eligibleKinds": [ + "mutation", + "local", + "navigation" + ], + "selectedKinds": [ + "mutation", + "local", + "navigation" + ], + "eligibleIntents": [ + "update", + "interact", + "navigate" + ], + "selectedIntents": [ + "update", + "interact", + "navigate" + ], + "deniedEligibleActions": 6, + "deniedSelectedActions": 6 + } } } diff --git a/release/evidence/raw/conduit-sources.scan.json b/release/evidence/raw/conduit-sources.scan.json index d74d5d0..4a15c28 100644 --- a/release/evidence/raw/conduit-sources.scan.json +++ b/release/evidence/raw/conduit-sources.scan.json @@ -1,9 +1,9 @@ { "schemaVersion": "1.0", - "scanId": "20260723T150111Z-73bf", + "scanId": "20260726T083040Z-3aab", "targetUrl": "http://127.0.0.1:3000/", - "startedAt": "2026-07-23T15:01:11.924Z", - "finishedAt": "2026-07-23T15:02:13.670Z", + "startedAt": "2026-07-26T08:30:40.166Z", + "finishedAt": "2026-07-26T08:31:44.758Z", "options": { "maxPages": 12, "maxActions": 30, @@ -16,7 +16,7 @@ "mutationAllowed": true, "deep": true, "trace": false, - "traceOnFailure": true, + "traceOnFailure": false, "video": false, "environmentTimeoutMs": 10000, "acceptEnvironmentRisk": false, @@ -1594,9 +1594,9 @@ "fields": [] }, "evidence": { - "startedAt": "2026-07-23T15:01:19.299Z", - "durationMs": 2454, - "canary": "RD_TEST_AF6D4E", + "startedAt": "2026-07-26T08:30:50.383Z", + "durationMs": 2501, + "canary": "RD_TEST_DFD36E", "network": [], "console": [], "pageErrors": [], @@ -1614,35 +1614,35 @@ "weight": 92, "matchCount": 2, "visibleCount": 2, - "elapsedMs": 9 + "elapsedMs": 5 }, { "strategy": "role", "weight": 82, "matchCount": 2, "visibleCount": 2, - "elapsedMs": 7 + "elapsedMs": 4 }, { "strategy": "href", "weight": 72, "matchCount": 0, "visibleCount": 0, - "elapsedMs": 2 + "elapsedMs": 0 }, { "strategy": "text", "weight": 60, "matchCount": 3, "visibleCount": 3, - "elapsedMs": 9 + "elapsedMs": 4 }, { "strategy": "css", "weight": 35, "matchCount": 1, "visibleCount": 1, - "elapsedMs": 4 + "elapsedMs": 2 } ], "chosenStrategy": "css", @@ -1650,7 +1650,7 @@ "retryCount": 0 }, "before": { - "at": 1468, + "at": 1506, "url": "http://127.0.0.1:3000/", "title": "Conduit", "domHash": "3c44d4d1ff59317a", @@ -1689,7 +1689,7 @@ } }, "beforeAction": { - "at": 1479, + "at": 1514, "url": "http://127.0.0.1:3000/", "title": "Conduit", "domHash": "3c44d4d1ff59317a", @@ -1730,7 +1730,7 @@ "networkSettled": true, "targetBusyAfter": false, "after": { - "at": 2450, + "at": 2498, "url": "http://127.0.0.1:3000/#/", "title": "Conduit", "domHash": "3c44d4d1ff59317a", @@ -1777,79 +1777,6 @@ }, { "id": "RD-002", - "action": { - "id": "25e3419d67d3", - "pageUrl": "http://127.0.0.1:3000/", - "label": "Source code", - "activation": "click", - "kind": "navigation", - "intent": "navigate", - "risk": "safe", - "fingerprint": { - "selector": "body > div > header > nav > div > ul:nth-of-type(1) > li > a", - "tag": "a", - "ordinal": 1, - "role": "link", - "accessibleName": "Source code", - "text": "Source code", - "href": "https://github.com/TonyMckes/conduit-realworld-example-app", - "candidates": [ - { - "strategy": "role", - "weight": 92, - "role": "link", - "name": "Source code", - "exact": true - }, - { - "strategy": "role", - "weight": 82, - "role": "link", - "name": "Source code", - "exact": false - }, - { - "strategy": "href", - "weight": 72, - "value": "https://github.com/TonyMckes/conduit-realworld-example-app" - }, - { - "strategy": "text", - "weight": 60, - "value": "Source code", - "exact": true - }, - { - "strategy": "css", - "weight": 35, - "selector": "body > div > header > nav > div > ul:nth-of-type(1) > li > a" - } - ] - }, - "fields": [] - }, - "verdict": "SKIPPED", - "evidenceLevel": 0, - "reason": "Cross-origin navigation blocked by the default safety policy. Use --allow-external explicitly.", - "skippedReason": "Cross-origin navigation blocked by the default safety policy. Use --allow-external explicitly.", - "detectorMatches": [], - "evidence": { - "startedAt": "", - "durationMs": 0, - "canary": "", - "network": [], - "console": [], - "pageErrors": [], - "uiClaims": [], - "filledFields": [], - "dialogs": [], - "downloads": [], - "popupUrls": [], - "snapshotIndex": "snapshots/RD-002.index.json" - } - }, - { - "id": "RD-003", "action": { "id": "1f1deb778a19", "pageUrl": "http://127.0.0.1:3000/", @@ -1902,9 +1829,9 @@ "fields": [] }, "evidence": { - "startedAt": "2026-07-23T15:01:21.788Z", - "durationMs": 2370, - "canary": "RD_TEST_C47AA9", + "startedAt": "2026-07-26T08:30:52.888Z", + "durationMs": 2451, + "canary": "RD_TEST_9F74C8", "network": [], "console": [], "pageErrors": [], @@ -1922,14 +1849,14 @@ "weight": 92, "matchCount": 0, "visibleCount": 0, - "elapsedMs": 3 + "elapsedMs": 2 }, { "strategy": "role", "weight": 82, "matchCount": 1, "visibleCount": 1, - "elapsedMs": 4 + "elapsedMs": 2 } ], "chosenStrategy": "role", @@ -1937,7 +1864,7 @@ "retryCount": 0 }, "before": { - "at": 1387, + "at": 1453, "url": "http://127.0.0.1:3000/", "title": "Conduit", "domHash": "3c44d4d1ff59317a", @@ -1976,7 +1903,7 @@ } }, "beforeAction": { - "at": 1396, + "at": 1459, "url": "http://127.0.0.1:3000/", "title": "Conduit", "domHash": "3c44d4d1ff59317a", @@ -2017,7 +1944,7 @@ "networkSettled": true, "targetBusyAfter": false, "after": { - "at": 2366, + "at": 2448, "url": "http://127.0.0.1:3000/#/", "title": "Conduit", "domHash": "3c44d4d1ff59317a", @@ -2055,7 +1982,7 @@ "indexedDb": [] } }, - "snapshotIndex": "snapshots/RD-003.index.json" + "snapshotIndex": "snapshots/RD-002.index.json" }, "verdict": "VERIFIED", "evidenceLevel": 1, @@ -2063,7 +1990,7 @@ "detectorMatches": [] }, { - "id": "RD-004", + "id": "RD-003", "action": { "id": "d4d94cb603a0", "pageUrl": "http://127.0.0.1:3000/", @@ -2116,9 +2043,9 @@ "fields": [] }, "evidence": { - "startedAt": "2026-07-23T15:01:24.186Z", - "durationMs": 2441, - "canary": "RD_TEST_C153C7", + "startedAt": "2026-07-26T08:30:55.342Z", + "durationMs": 2440, + "canary": "RD_TEST_D4B247", "network": [], "console": [], "pageErrors": [], @@ -2136,14 +2063,14 @@ "weight": 92, "matchCount": 0, "visibleCount": 0, - "elapsedMs": 3 + "elapsedMs": 2 }, { "strategy": "role", "weight": 82, "matchCount": 1, "visibleCount": 1, - "elapsedMs": 5 + "elapsedMs": 3 } ], "chosenStrategy": "role", @@ -2151,7 +2078,7 @@ "retryCount": 0 }, "before": { - "at": 1425, + "at": 1437, "url": "http://127.0.0.1:3000/", "title": "Conduit", "domHash": "3c44d4d1ff59317a", @@ -2190,7 +2117,7 @@ } }, "beforeAction": { - "at": 1434, + "at": 1443, "url": "http://127.0.0.1:3000/", "title": "Conduit", "domHash": "3c44d4d1ff59317a", @@ -2231,7 +2158,7 @@ "networkSettled": true, "targetBusyAfter": false, "after": { - "at": 2437, + "at": 2438, "url": "http://127.0.0.1:3000/#/login", "title": "Conduit", "domHash": "c659be8900b0e706", @@ -2287,7 +2214,7 @@ "indexedDb": [] } }, - "snapshotIndex": "snapshots/RD-004.index.json" + "snapshotIndex": "snapshots/RD-003.index.json" }, "verdict": "VERIFIED", "evidenceLevel": 1, @@ -2295,7 +2222,7 @@ "detectorMatches": [] }, { - "id": "RD-005", + "id": "RD-004", "action": { "id": "721014d6d852", "pageUrl": "http://127.0.0.1:3000/", @@ -2348,9 +2275,9 @@ "fields": [] }, "evidence": { - "startedAt": "2026-07-23T15:01:26.662Z", - "durationMs": 2420, - "canary": "RD_TEST_6E94EF", + "startedAt": "2026-07-26T08:30:57.785Z", + "durationMs": 2453, + "canary": "RD_TEST_311FF5", "network": [], "console": [], "pageErrors": [], @@ -2368,7 +2295,7 @@ "weight": 92, "matchCount": 1, "visibleCount": 1, - "elapsedMs": 5 + "elapsedMs": 4 } ], "chosenStrategy": "role", @@ -2376,7 +2303,7 @@ "retryCount": 0 }, "before": { - "at": 1416, + "at": 1443, "url": "http://127.0.0.1:3000/", "title": "Conduit", "domHash": "3c44d4d1ff59317a", @@ -2415,7 +2342,7 @@ } }, "beforeAction": { - "at": 1425, + "at": 1450, "url": "http://127.0.0.1:3000/", "title": "Conduit", "domHash": "3c44d4d1ff59317a", @@ -2456,7 +2383,7 @@ "networkSettled": true, "targetBusyAfter": false, "after": { - "at": 2415, + "at": 2450, "url": "http://127.0.0.1:3000/#/register", "title": "Conduit", "domHash": "1f4fa65964895f4c", @@ -2521,7 +2448,7 @@ "indexedDb": [] } }, - "snapshotIndex": "snapshots/RD-005.index.json" + "snapshotIndex": "snapshots/RD-004.index.json" }, "verdict": "VERIFIED", "evidenceLevel": 1, @@ -2529,7 +2456,7 @@ "detectorMatches": [] }, { - "id": "RD-006", + "id": "RD-005", "action": { "id": "0a8473d5a771", "pageUrl": "http://127.0.0.1:3000/", @@ -2577,19 +2504,19 @@ "fields": [] }, "evidence": { - "startedAt": "2026-07-23T15:01:29.123Z", - "durationMs": 2453, - "canary": "RD_TEST_9B92C1", + "startedAt": "2026-07-26T08:31:00.241Z", + "durationMs": 2537, + "canary": "RD_TEST_502645", "network": [ { "id": "net-1", "method": "GET", "url": "http://127.0.0.1:3000/api/articles?limit=3&&offset=0", "resourceType": "xhr", - "startedAt": 1442, + "startedAt": 1521, "status": 200, "ok": true, - "finishedAt": 1452, + "finishedAt": 1531, "contentType": "application/json", "resourceTypeHint": "articles" } @@ -2610,7 +2537,7 @@ "weight": 92, "matchCount": 1, "visibleCount": 1, - "elapsedMs": 4 + "elapsedMs": 2 } ], "chosenStrategy": "role", @@ -2618,7 +2545,7 @@ "retryCount": 0 }, "before": { - "at": 1399, + "at": 1489, "url": "http://127.0.0.1:3000/", "title": "Conduit", "domHash": "3c44d4d1ff59317a", @@ -2657,7 +2584,7 @@ } }, "beforeAction": { - "at": 1407, + "at": 1496, "url": "http://127.0.0.1:3000/", "title": "Conduit", "domHash": "3c44d4d1ff59317a", @@ -2698,7 +2625,7 @@ "networkSettled": true, "targetBusyAfter": false, "after": { - "at": 2422, + "at": 2508, "url": "http://127.0.0.1:3000/", "title": "Conduit", "domHash": "3c44d4d1ff59317a", @@ -2737,7 +2664,7 @@ } }, "screenshot": "screenshots/0a8473d5a771-after.png", - "snapshotIndex": "snapshots/RD-006.index.json" + "snapshotIndex": "snapshots/RD-005.index.json" }, "verdict": "VERIFIED", "evidenceLevel": 2, @@ -2745,7 +2672,7 @@ "detectorMatches": [] }, { - "id": "RD-007", + "id": "RD-006", "action": { "id": "f485075d62a6", "pageUrl": "http://127.0.0.1:3000/", @@ -2798,9 +2725,9 @@ "fields": [] }, "evidence": { - "startedAt": "2026-07-23T15:01:31.603Z", - "durationMs": 2444, - "canary": "RD_TEST_DD06FE", + "startedAt": "2026-07-26T08:31:02.781Z", + "durationMs": 2498, + "canary": "RD_TEST_047F95", "network": [], "console": [], "pageErrors": [], @@ -2818,14 +2745,14 @@ "weight": 92, "matchCount": 2, "visibleCount": 2, - "elapsedMs": 8 + "elapsedMs": 5 }, { "strategy": "role", "weight": 82, "matchCount": 2, "visibleCount": 2, - "elapsedMs": 6 + "elapsedMs": 3 }, { "strategy": "href", @@ -2839,14 +2766,14 @@ "weight": 60, "matchCount": 3, "visibleCount": 3, - "elapsedMs": 8 + "elapsedMs": 3 }, { "strategy": "css", "weight": 35, "matchCount": 1, "visibleCount": 1, - "elapsedMs": 4 + "elapsedMs": 2 } ], "chosenStrategy": "css", @@ -2854,7 +2781,7 @@ "retryCount": 0 }, "before": { - "at": 1434, + "at": 1491, "url": "http://127.0.0.1:3000/", "title": "Conduit", "domHash": "3c44d4d1ff59317a", @@ -2893,7 +2820,7 @@ } }, "beforeAction": { - "at": 1442, + "at": 1497, "url": "http://127.0.0.1:3000/", "title": "Conduit", "domHash": "3c44d4d1ff59317a", @@ -2934,7 +2861,7 @@ "networkSettled": true, "targetBusyAfter": false, "after": { - "at": 2441, + "at": 2495, "url": "http://127.0.0.1:3000/#/", "title": "Conduit", "domHash": "3c44d4d1ff59317a", @@ -2972,7 +2899,7 @@ "indexedDb": [] } }, - "snapshotIndex": "snapshots/RD-007.index.json" + "snapshotIndex": "snapshots/RD-006.index.json" }, "verdict": "VERIFIED", "evidenceLevel": 1, @@ -2980,303 +2907,157 @@ "detectorMatches": [] }, { - "id": "RD-008", + "id": "RD-007", "action": { - "id": "6959be4b6ca4", - "pageUrl": "http://127.0.0.1:3000/", - "label": "Thinkster", + "id": "0ab782512c9d", + "pageUrl": "http://127.0.0.1:3000/#/login", + "label": "conduit", "activation": "click", "kind": "navigation", "intent": "navigate", "risk": "safe", "fingerprint": { - "selector": "body > div > footer > div > span > a", + "selector": "body > div > header > nav > div > a", "tag": "a", - "ordinal": 7, + "ordinal": 0, "role": "link", - "accessibleName": "Thinkster", - "text": "Thinkster", - "href": "https://thinkster.io/", + "accessibleName": "conduit", + "text": "conduit", + "href": "http://127.0.0.1:3000/#/", "candidates": [ { "strategy": "role", "weight": 92, "role": "link", - "name": "Thinkster", + "name": "conduit", "exact": true }, { "strategy": "role", "weight": 82, "role": "link", - "name": "Thinkster", + "name": "conduit", "exact": false }, { "strategy": "href", "weight": 72, - "value": "https://thinkster.io/" + "value": "http://127.0.0.1:3000/#/" }, { "strategy": "text", "weight": 60, - "value": "Thinkster", + "value": "conduit", "exact": true }, { "strategy": "css", "weight": 35, - "selector": "body > div > footer > div > span > a" + "selector": "body > div > header > nav > div > a" } ] }, "fields": [] }, - "verdict": "SKIPPED", - "evidenceLevel": 0, - "reason": "Cross-origin navigation blocked by the default safety policy. Use --allow-external explicitly.", - "skippedReason": "Cross-origin navigation blocked by the default safety policy. Use --allow-external explicitly.", - "detectorMatches": [], "evidence": { - "startedAt": "", - "durationMs": 0, - "canary": "", - "network": [], + "startedAt": "2026-07-26T08:31:05.281Z", + "durationMs": 2486, + "canary": "RD_TEST_C25438", + "network": [ + { + "id": "net-1", + "method": "GET", + "url": "http://127.0.0.1:3000/api/articles?limit=3&&offset=0", + "resourceType": "xhr", + "startedAt": 1501, + "status": 200, + "ok": true, + "contentType": "application/json", + "resourceTypeHint": "articles", + "finishedAt": 1512 + }, + { + "id": "net-2", + "method": "GET", + "url": "http://127.0.0.1:3000/api/tags", + "resourceType": "xhr", + "startedAt": 1502, + "status": 200, + "ok": true, + "contentType": "application/json", + "resourceTypeHint": "tags", + "finishedAt": 1511 + }, + { + "id": "net-3", + "method": "GET", + "url": "http://127.0.0.1:3000/api/articles?limit=3&&offset=0", + "resourceType": "xhr", + "startedAt": 1502, + "status": 200, + "ok": true, + "finishedAt": 1513, + "contentType": "application/json", + "resourceTypeHint": "articles" + }, + { + "id": "net-4", + "method": "GET", + "url": "http://127.0.0.1:3000/api/tags", + "resourceType": "xhr", + "startedAt": 1503, + "status": 200, + "ok": true, + "finishedAt": 1512, + "contentType": "application/json", + "resourceTypeHint": "tags" + } + ], "console": [], "pageErrors": [], "uiClaims": [], "filledFields": [], "dialogs": [], "downloads": [], + "downloadEvidence": [], + "uploads": [], "popupUrls": [], - "snapshotIndex": "snapshots/RD-008.index.json" - } - }, - { - "id": "RD-009", - "action": { - "id": "c9b7b6b4d242", - "pageUrl": "http://127.0.0.1:3000/", - "label": "Source code", - "activation": "click", - "kind": "navigation", - "intent": "navigate", - "risk": "safe", - "fingerprint": { - "selector": "body > div > footer > div > ul > li > a", - "tag": "a", - "ordinal": 8, - "role": "link", - "accessibleName": "Source code", - "text": "Source code", - "href": "https://github.com/TonyMckes/conduit-realworld-example-app", - "candidates": [ + "locatorResolution": { + "attempts": [ { "strategy": "role", "weight": 92, - "role": "link", - "name": "Source code", - "exact": true + "matchCount": 2, + "visibleCount": 2, + "elapsedMs": 4 }, { "strategy": "role", "weight": 82, - "role": "link", - "name": "Source code", - "exact": false + "matchCount": 2, + "visibleCount": 2, + "elapsedMs": 3 }, { "strategy": "href", "weight": 72, - "value": "https://github.com/TonyMckes/conduit-realworld-example-app" + "matchCount": 0, + "visibleCount": 0, + "elapsedMs": 1 }, { "strategy": "text", "weight": 60, - "value": "Source code", - "exact": true + "matchCount": 2, + "visibleCount": 2, + "elapsedMs": 3 }, { "strategy": "css", "weight": 35, - "selector": "body > div > footer > div > ul > li > a" - } - ] - }, - "fields": [] - }, - "verdict": "SKIPPED", - "evidenceLevel": 0, - "reason": "Cross-origin navigation blocked by the default safety policy. Use --allow-external explicitly.", - "skippedReason": "Cross-origin navigation blocked by the default safety policy. Use --allow-external explicitly.", - "detectorMatches": [], - "evidence": { - "startedAt": "", - "durationMs": 0, - "canary": "", - "network": [], - "console": [], - "pageErrors": [], - "uiClaims": [], - "filledFields": [], - "dialogs": [], - "downloads": [], - "popupUrls": [], - "snapshotIndex": "snapshots/RD-009.index.json" - } - }, - { - "id": "RD-010", - "action": { - "id": "0ab782512c9d", - "pageUrl": "http://127.0.0.1:3000/#/login", - "label": "conduit", - "activation": "click", - "kind": "navigation", - "intent": "navigate", - "risk": "safe", - "fingerprint": { - "selector": "body > div > header > nav > div > a", - "tag": "a", - "ordinal": 0, - "role": "link", - "accessibleName": "conduit", - "text": "conduit", - "href": "http://127.0.0.1:3000/#/", - "candidates": [ - { - "strategy": "role", - "weight": 92, - "role": "link", - "name": "conduit", - "exact": true - }, - { - "strategy": "role", - "weight": 82, - "role": "link", - "name": "conduit", - "exact": false - }, - { - "strategy": "href", - "weight": 72, - "value": "http://127.0.0.1:3000/#/" - }, - { - "strategy": "text", - "weight": 60, - "value": "conduit", - "exact": true - }, - { - "strategy": "css", - "weight": 35, - "selector": "body > div > header > nav > div > a" - } - ] - }, - "fields": [] - }, - "evidence": { - "startedAt": "2026-07-23T15:01:34.074Z", - "durationMs": 2490, - "canary": "RD_TEST_526983", - "network": [ - { - "id": "net-1", - "method": "GET", - "url": "http://127.0.0.1:3000/api/articles?limit=3&&offset=0", - "resourceType": "xhr", - "startedAt": 1493, - "status": 200, - "ok": true, - "finishedAt": 1507, - "contentType": "application/json", - "resourceTypeHint": "articles" - }, - { - "id": "net-2", - "method": "GET", - "url": "http://127.0.0.1:3000/api/tags", - "resourceType": "xhr", - "startedAt": 1493, - "status": 200, - "ok": true, - "finishedAt": 1507, - "contentType": "application/json", - "resourceTypeHint": "tags" - }, - { - "id": "net-3", - "method": "GET", - "url": "http://127.0.0.1:3000/api/articles?limit=3&&offset=0", - "resourceType": "xhr", - "startedAt": 1494, - "status": 200, - "ok": true, - "finishedAt": 1507, - "contentType": "application/json", - "resourceTypeHint": "articles" - }, - { - "id": "net-4", - "method": "GET", - "url": "http://127.0.0.1:3000/api/tags", - "resourceType": "xhr", - "startedAt": 1494, - "status": 200, - "ok": true, - "finishedAt": 1507, - "contentType": "application/json", - "resourceTypeHint": "tags" - } - ], - "console": [], - "pageErrors": [], - "uiClaims": [], - "filledFields": [], - "dialogs": [], - "downloads": [], - "downloadEvidence": [], - "uploads": [], - "popupUrls": [], - "locatorResolution": { - "attempts": [ - { - "strategy": "role", - "weight": 92, - "matchCount": 2, - "visibleCount": 2, - "elapsedMs": 7 - }, - { - "strategy": "role", - "weight": 82, - "matchCount": 2, - "visibleCount": 2, - "elapsedMs": 7 - }, - { - "strategy": "href", - "weight": 72, - "matchCount": 0, - "visibleCount": 0, - "elapsedMs": 2 - }, - { - "strategy": "text", - "weight": 60, - "matchCount": 2, - "visibleCount": 2, - "elapsedMs": 5 - }, - { - "strategy": "css", - "weight": 35, - "matchCount": 1, - "visibleCount": 1, - "elapsedMs": 4 + "matchCount": 1, + "visibleCount": 1, + "elapsedMs": 2 } ], "chosenStrategy": "css", @@ -3284,7 +3065,7 @@ "retryCount": 0 }, "before": { - "at": 1447, + "at": 1460, "url": "http://127.0.0.1:3000/#/login", "title": "Conduit", "domHash": "c659be8900b0e706", @@ -3341,7 +3122,7 @@ } }, "beforeAction": { - "at": 1455, + "at": 1468, "url": "http://127.0.0.1:3000/#/login", "title": "Conduit", "domHash": "c659be8900b0e706", @@ -3400,7 +3181,7 @@ "networkSettled": true, "targetBusyAfter": false, "after": { - "at": 2487, + "at": 2483, "url": "http://127.0.0.1:3000/#/", "title": "Conduit", "domHash": "3c44d4d1ff59317a", @@ -3438,7 +3219,7 @@ "indexedDb": [] } }, - "snapshotIndex": "snapshots/RD-010.index.json" + "snapshotIndex": "snapshots/RD-007.index.json" }, "verdict": "VERIFIED", "evidenceLevel": 2, @@ -3446,80 +3227,7 @@ "detectorMatches": [] }, { - "id": "RD-011", - "action": { - "id": "1e4683e9dd3a", - "pageUrl": "http://127.0.0.1:3000/#/login", - "label": "Source code", - "activation": "click", - "kind": "navigation", - "intent": "navigate", - "risk": "safe", - "fingerprint": { - "selector": "body > div > header > nav > div > ul:nth-of-type(1) > li > a", - "tag": "a", - "ordinal": 1, - "role": "link", - "accessibleName": "Source code", - "text": "Source code", - "href": "https://github.com/TonyMckes/conduit-realworld-example-app", - "candidates": [ - { - "strategy": "role", - "weight": 92, - "role": "link", - "name": "Source code", - "exact": true - }, - { - "strategy": "role", - "weight": 82, - "role": "link", - "name": "Source code", - "exact": false - }, - { - "strategy": "href", - "weight": 72, - "value": "https://github.com/TonyMckes/conduit-realworld-example-app" - }, - { - "strategy": "text", - "weight": 60, - "value": "Source code", - "exact": true - }, - { - "strategy": "css", - "weight": 35, - "selector": "body > div > header > nav > div > ul:nth-of-type(1) > li > a" - } - ] - }, - "fields": [] - }, - "verdict": "SKIPPED", - "evidenceLevel": 0, - "reason": "Cross-origin navigation blocked by the default safety policy. Use --allow-external explicitly.", - "skippedReason": "Cross-origin navigation blocked by the default safety policy. Use --allow-external explicitly.", - "detectorMatches": [], - "evidence": { - "startedAt": "", - "durationMs": 0, - "canary": "", - "network": [], - "console": [], - "pageErrors": [], - "uiClaims": [], - "filledFields": [], - "dialogs": [], - "downloads": [], - "popupUrls": [], - "snapshotIndex": "snapshots/RD-011.index.json" - } - }, - { - "id": "RD-012", + "id": "RD-008", "action": { "id": "1ac9625794b3", "pageUrl": "http://127.0.0.1:3000/#/login", @@ -3572,19 +3280,19 @@ "fields": [] }, "evidence": { - "startedAt": "2026-07-23T15:01:36.611Z", - "durationMs": 2437, - "canary": "RD_TEST_5E8AC2", + "startedAt": "2026-07-26T08:31:07.770Z", + "durationMs": 2407, + "canary": "RD_TEST_9CFEED", "network": [ { "id": "net-1", "method": "GET", "url": "http://127.0.0.1:3000/api/articles?limit=3&&offset=0", "resourceType": "xhr", - "startedAt": 1453, + "startedAt": 1495, "status": 200, "ok": true, - "finishedAt": 1463, + "finishedAt": 1506, "contentType": "application/json", "resourceTypeHint": "articles" }, @@ -3593,22 +3301,22 @@ "method": "GET", "url": "http://127.0.0.1:3000/api/tags", "resourceType": "xhr", - "startedAt": 1454, + "startedAt": 1496, "status": 200, "ok": true, + "finishedAt": 1507, "contentType": "application/json", - "resourceTypeHint": "tags", - "finishedAt": 1462 + "resourceTypeHint": "tags" }, { "id": "net-3", "method": "GET", "url": "http://127.0.0.1:3000/api/articles?limit=3&&offset=0", "resourceType": "xhr", - "startedAt": 1454, + "startedAt": 1497, "status": 200, "ok": true, - "finishedAt": 1463, + "finishedAt": 1507, "contentType": "application/json", "resourceTypeHint": "articles" }, @@ -3617,10 +3325,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/api/tags", "resourceType": "xhr", - "startedAt": 1455, + "startedAt": 1497, "status": 200, "ok": true, - "finishedAt": 1463, + "finishedAt": 1508, "contentType": "application/json", "resourceTypeHint": "tags" } @@ -3641,14 +3349,14 @@ "weight": 92, "matchCount": 0, "visibleCount": 0, - "elapsedMs": 3 + "elapsedMs": 2 }, { "strategy": "role", "weight": 82, "matchCount": 1, "visibleCount": 1, - "elapsedMs": 4 + "elapsedMs": 2 } ], "chosenStrategy": "role", @@ -3656,7 +3364,7 @@ "retryCount": 0 }, "before": { - "at": 1408, + "at": 1445, "url": "http://127.0.0.1:3000/#/login", "title": "Conduit", "domHash": "c659be8900b0e706", @@ -3713,7 +3421,7 @@ } }, "beforeAction": { - "at": 1416, + "at": 1452, "url": "http://127.0.0.1:3000/#/login", "title": "Conduit", "domHash": "c659be8900b0e706", @@ -3772,7 +3480,7 @@ "networkSettled": true, "targetBusyAfter": false, "after": { - "at": 2433, + "at": 2404, "url": "http://127.0.0.1:3000/#/", "title": "Conduit", "domHash": "3c44d4d1ff59317a", @@ -3810,7 +3518,7 @@ "indexedDb": [] } }, - "snapshotIndex": "snapshots/RD-012.index.json" + "snapshotIndex": "snapshots/RD-008.index.json" }, "verdict": "VERIFIED", "evidenceLevel": 2, @@ -3818,80 +3526,7 @@ "detectorMatches": [] }, { - "id": "RD-013", - "action": { - "id": "57d0ff701b4f", - "pageUrl": "http://127.0.0.1:3000/#/login", - "label": "Login", - "activation": "click", - "kind": "navigation", - "intent": "navigate", - "risk": "safe", - "fingerprint": { - "selector": "body > div > header > nav > div > ul:nth-of-type(2) > li:nth-of-type(2) > a", - "tag": "a", - "ordinal": 3, - "role": "link", - "accessibleName": "Login", - "text": "Login", - "href": "http://127.0.0.1:3000/#/login", - "candidates": [ - { - "strategy": "role", - "weight": 92, - "role": "link", - "name": "Login", - "exact": true - }, - { - "strategy": "role", - "weight": 82, - "role": "link", - "name": "Login", - "exact": false - }, - { - "strategy": "href", - "weight": 72, - "value": "http://127.0.0.1:3000/#/login" - }, - { - "strategy": "text", - "weight": 60, - "value": "Login", - "exact": true - }, - { - "strategy": "css", - "weight": 35, - "selector": "body > div > header > nav > div > ul:nth-of-type(2) > li:nth-of-type(2) > a" - } - ] - }, - "fields": [] - }, - "verdict": "SKIPPED", - "evidenceLevel": 0, - "reason": "Navigation target is already the current page.", - "skippedReason": "Navigation target is already the current page.", - "detectorMatches": [], - "evidence": { - "startedAt": "", - "durationMs": 0, - "canary": "", - "network": [], - "console": [], - "pageErrors": [], - "uiClaims": [], - "filledFields": [], - "dialogs": [], - "downloads": [], - "popupUrls": [], - "snapshotIndex": "snapshots/RD-013.index.json" - } - }, - { - "id": "RD-014", + "id": "RD-009", "action": { "id": "42750ec3d0d7", "pageUrl": "http://127.0.0.1:3000/#/login", @@ -3944,9 +3579,9 @@ "fields": [] }, "evidence": { - "startedAt": "2026-07-23T15:01:39.087Z", - "durationMs": 2391, - "canary": "RD_TEST_8AB293", + "startedAt": "2026-07-26T08:31:10.180Z", + "durationMs": 2454, + "canary": "RD_TEST_447BD9", "network": [], "console": [], "pageErrors": [], @@ -3964,7 +3599,7 @@ "weight": 92, "matchCount": 1, "visibleCount": 1, - "elapsedMs": 5 + "elapsedMs": 4 } ], "chosenStrategy": "role", @@ -3972,7 +3607,7 @@ "retryCount": 0 }, "before": { - "at": 1411, + "at": 1452, "url": "http://127.0.0.1:3000/#/login", "title": "Conduit", "domHash": "c659be8900b0e706", @@ -4029,7 +3664,7 @@ } }, "beforeAction": { - "at": 1420, + "at": 1459, "url": "http://127.0.0.1:3000/#/login", "title": "Conduit", "domHash": "c659be8900b0e706", @@ -4088,7 +3723,7 @@ "networkSettled": true, "targetBusyAfter": false, "after": { - "at": 2387, + "at": 2448, "url": "http://127.0.0.1:3000/#/register", "title": "Conduit", "domHash": "1f4fa65964895f4c", @@ -4153,7 +3788,7 @@ "indexedDb": [] } }, - "snapshotIndex": "snapshots/RD-014.index.json" + "snapshotIndex": "snapshots/RD-009.index.json" }, "verdict": "VERIFIED", "evidenceLevel": 1, @@ -4161,7 +3796,7 @@ "detectorMatches": [] }, { - "id": "RD-015", + "id": "RD-010", "action": { "id": "ac983b03deb5", "pageUrl": "http://127.0.0.1:3000/#/login", @@ -4214,9 +3849,9 @@ "fields": [] }, "evidence": { - "startedAt": "2026-07-23T15:01:41.515Z", - "durationMs": 2393, - "canary": "RD_TEST_CDBA8B", + "startedAt": "2026-07-26T08:31:12.637Z", + "durationMs": 2449, + "canary": "RD_TEST_50CD4A", "network": [], "console": [], "pageErrors": [], @@ -4234,7 +3869,7 @@ "weight": 92, "matchCount": 1, "visibleCount": 1, - "elapsedMs": 5 + "elapsedMs": 3 } ], "chosenStrategy": "role", @@ -4242,7 +3877,7 @@ "retryCount": 0 }, "before": { - "at": 1392, + "at": 1455, "url": "http://127.0.0.1:3000/#/login", "title": "Conduit", "domHash": "c659be8900b0e706", @@ -4299,7 +3934,7 @@ } }, "beforeAction": { - "at": 1400, + "at": 1461, "url": "http://127.0.0.1:3000/#/login", "title": "Conduit", "domHash": "c659be8900b0e706", @@ -4358,7 +3993,7 @@ "networkSettled": true, "targetBusyAfter": false, "after": { - "at": 2389, + "at": 2446, "url": "http://127.0.0.1:3000/#/register", "title": "Conduit", "domHash": "1f4fa65964895f4c", @@ -4423,7 +4058,7 @@ "indexedDb": [] } }, - "snapshotIndex": "snapshots/RD-015.index.json" + "snapshotIndex": "snapshots/RD-010.index.json" }, "verdict": "VERIFIED", "evidenceLevel": 1, @@ -4431,7 +4066,7 @@ "detectorMatches": [] }, { - "id": "RD-016", + "id": "RD-011", "action": { "id": "fd4121f2d18b", "pageUrl": "http://127.0.0.1:3000/#/login", @@ -4483,20 +4118,20 @@ ] }, "evidence": { - "startedAt": "2026-07-23T15:01:44.492Z", - "durationMs": 7082, - "canary": "RD_TEST_74EF2D", + "startedAt": "2026-07-26T08:31:15.205Z", + "durationMs": 7255, + "canary": "RD_TEST_1A4C53", "network": [ { "id": "net-1", "method": "POST", "url": "http://127.0.0.1:3000/api/users/login", "resourceType": "xhr", - "startedAt": 1507, + "startedAt": 1557, "status": 404, "ok": false, "contentType": "application/json", - "finishedAt": 1687, + "finishedAt": 1738, "resourceTypeHint": "login" }, { @@ -4504,10 +4139,10 @@ "method": "GET", "url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwlxdu.woff2", "resourceType": "font", - "startedAt": 1701, + "startedAt": 1750, "status": 200, "ok": true, - "finishedAt": 1749, + "finishedAt": 1796, "contentType": "font/woff2", "resourceTypeHint": "6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwlxdu.woff2" }, @@ -4516,34 +4151,34 @@ "method": "GET", "url": "http://127.0.0.1:3000/", "resourceType": "document", - "startedAt": 2737, + "startedAt": 2780, "status": 200, "ok": true, "contentType": "text/html", "resourceTypeHint": "resource", - "finishedAt": 2745 + "finishedAt": 2790 }, { "id": "net-4", "method": "GET", "url": "http://127.0.0.1:3000/@vite/client", "resourceType": "script", - "startedAt": 2743, + "startedAt": 2788, "status": 200, "ok": true, + "finishedAt": 2799, "contentType": "text/javascript", - "resourceTypeHint": "client", - "finishedAt": 2752 + "resourceTypeHint": "client" }, { "id": "net-5", "method": "GET", "url": "http://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css", "resourceType": "stylesheet", - "startedAt": 2744, + "startedAt": 2789, "status": 307, "ok": false, - "finishedAt": 2747, + "finishedAt": 2792, "location": "https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css", "resourceTypeHint": "ionicons.min.css" }, @@ -4552,10 +4187,10 @@ "method": "GET", "url": "http://fonts.googleapis.com/css?family=Titillium+Web:700|Source+Serif+Pro:400,700|Merriweather+Sans:400,700|Source+Sans+Pro:400,300,600,700,300italic,400italic,600italic,700italic", "resourceType": "stylesheet", - "startedAt": 2744, + "startedAt": 2789, "status": 200, "ok": true, - "finishedAt": 2797, + "finishedAt": 2840, "contentType": "text/css", "resourceTypeHint": "css" }, @@ -4564,10 +4199,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/main.jsx", "resourceType": "script", - "startedAt": 2744, + "startedAt": 2790, "status": 200, "ok": true, - "finishedAt": 2750, + "finishedAt": 2796, "contentType": "text/javascript", "resourceTypeHint": "main.jsx" }, @@ -4576,10 +4211,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/@react-refresh", "resourceType": "script", - "startedAt": 2745, + "startedAt": 2790, "status": 200, "ok": true, - "finishedAt": 2758, + "finishedAt": 2799, "contentType": "text/javascript", "resourceTypeHint": "@react-refresh" }, @@ -4588,10 +4223,10 @@ "method": "GET", "url": "https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css", "resourceType": "stylesheet", - "startedAt": 2747, + "startedAt": 2792, "status": 200, "ok": true, - "finishedAt": 2867, + "finishedAt": 3085, "contentType": "text/css", "resourceTypeHint": "ionicons.min.css" }, @@ -4600,10 +4235,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/node_modules/.vite/deps/react_jsx-dev-runtime.js?v=96de0870", "resourceType": "script", - "startedAt": 2752, + "startedAt": 2797, "status": 200, "ok": true, - "finishedAt": 2761, + "finishedAt": 2806, "contentType": "text/javascript", "resourceTypeHint": "react_jsx-dev-runtime.js" }, @@ -4612,10 +4247,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/node_modules/.vite/deps/react.js?v=96de0870", "resourceType": "script", - "startedAt": 2753, + "startedAt": 2799, "status": 200, "ok": true, - "finishedAt": 2764, + "finishedAt": 2808, "contentType": "text/javascript", "resourceTypeHint": "react.js" }, @@ -4624,10 +4259,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/node_modules/.vite/deps/react-dom_client.js?v=96de0870", "resourceType": "script", - "startedAt": 2753, + "startedAt": 2799, "status": 200, "ok": true, - "finishedAt": 2783, + "finishedAt": 2837, "contentType": "text/javascript", "resourceTypeHint": "react-dom_client.js" }, @@ -4636,10 +4271,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/node_modules/.vite/deps/react-router-dom.js?v=96de0870", "resourceType": "script", - "startedAt": 2754, + "startedAt": 2799, "status": 200, "ok": true, - "finishedAt": 2781, + "finishedAt": 2839, "contentType": "text/javascript", "resourceTypeHint": "react-router-dom.js" }, @@ -4648,10 +4283,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/App.jsx", "resourceType": "script", - "startedAt": 2754, + "startedAt": 2800, "status": 200, "ok": true, - "finishedAt": 2771, + "finishedAt": 2820, "contentType": "text/javascript", "resourceTypeHint": "App.jsx" }, @@ -4660,10 +4295,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/context/AuthContext.jsx", "resourceType": "script", - "startedAt": 2754, + "startedAt": 2800, "status": 200, "ok": true, - "finishedAt": 2774, + "finishedAt": 2820, "contentType": "text/javascript", "resourceTypeHint": "AuthContext.jsx" }, @@ -4672,10 +4307,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/styles.css", "resourceType": "script", - "startedAt": 2754, + "startedAt": 2800, "status": 200, "ok": true, - "finishedAt": 2774, + "finishedAt": 2821, "contentType": "text/javascript", "resourceTypeHint": "styles.css" }, @@ -4684,10 +4319,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/index.css", "resourceType": "script", - "startedAt": 2754, + "startedAt": 2801, "status": 200, "ok": true, - "finishedAt": 2773, + "finishedAt": 2820, "contentType": "text/javascript", "resourceTypeHint": "index.css" }, @@ -4696,10 +4331,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/reportWebVitals.js", "resourceType": "script", - "startedAt": 2755, + "startedAt": 2801, "status": 200, "ok": true, - "finishedAt": 2776, + "finishedAt": 2822, "contentType": "text/javascript", "resourceTypeHint": "reportWebVitals.js" }, @@ -4708,10 +4343,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/routes/Article/Article.jsx", "resourceType": "script", - "startedAt": 2755, + "startedAt": 2802, "status": 200, "ok": true, - "finishedAt": 2776, + "finishedAt": 2823, "contentType": "text/javascript", "resourceTypeHint": "Article.jsx" }, @@ -4720,10 +4355,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/routes/Article/CommentsSection.jsx", "resourceType": "script", - "startedAt": 2756, + "startedAt": 2802, "status": 200, "ok": true, - "finishedAt": 2776, + "finishedAt": 2823, "contentType": "text/javascript", "resourceTypeHint": "CommentsSection.jsx" }, @@ -4732,10 +4367,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/routes/ArticleEditor.jsx", "resourceType": "script", - "startedAt": 2757, + "startedAt": 2802, "status": 200, "ok": true, - "finishedAt": 2780, + "finishedAt": 2824, "contentType": "text/javascript", "resourceTypeHint": "ArticleEditor.jsx" }, @@ -4744,10 +4379,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/routes/Home.jsx", "resourceType": "script", - "startedAt": 2757, + "startedAt": 2802, "status": 200, "ok": true, - "finishedAt": 2780, + "finishedAt": 2824, "contentType": "text/javascript", "resourceTypeHint": "Home.jsx" }, @@ -4756,10 +4391,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/routes/HomeArticles.jsx", "resourceType": "script", - "startedAt": 2757, + "startedAt": 2803, "status": 200, "ok": true, - "finishedAt": 2780, + "finishedAt": 2827, "contentType": "text/javascript", "resourceTypeHint": "HomeArticles.jsx" }, @@ -4768,10 +4403,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/routes/Login.jsx", "resourceType": "script", - "startedAt": 2757, + "startedAt": 2804, "status": 200, "ok": true, - "finishedAt": 2781, + "finishedAt": 2827, "contentType": "text/javascript", "resourceTypeHint": "Login.jsx" }, @@ -4780,10 +4415,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/routes/NotFound.jsx", "resourceType": "script", - "startedAt": 2757, + "startedAt": 2804, "status": 200, "ok": true, - "finishedAt": 2783, + "finishedAt": 2828, "contentType": "text/javascript", "resourceTypeHint": "NotFound.jsx" }, @@ -4792,10 +4427,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/routes/Profile/Profile.jsx", "resourceType": "script", - "startedAt": 2758, + "startedAt": 2804, "status": 200, "ok": true, - "finishedAt": 2783, + "finishedAt": 2828, "contentType": "text/javascript", "resourceTypeHint": "Profile.jsx" }, @@ -4804,10 +4439,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/routes/Profile/ProfileArticles.jsx", "resourceType": "script", - "startedAt": 2758, + "startedAt": 2804, "status": 200, "ok": true, - "finishedAt": 2783, + "finishedAt": 2832, "contentType": "text/javascript", "resourceTypeHint": "ProfileArticles.jsx" }, @@ -4816,10 +4451,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/routes/Profile/ProfileFavArticles.jsx", "resourceType": "script", - "startedAt": 2758, + "startedAt": 2805, "status": 200, "ok": true, - "finishedAt": 2783, + "finishedAt": 2834, "contentType": "text/javascript", "resourceTypeHint": "ProfileFavArticles.jsx" }, @@ -4828,10 +4463,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/routes/Settings.jsx", "resourceType": "script", - "startedAt": 2758, + "startedAt": 2805, "status": 200, "ok": true, - "finishedAt": 2784, + "finishedAt": 2836, "contentType": "text/javascript", "resourceTypeHint": "Settings.jsx" }, @@ -4840,10 +4475,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/routes/SignUp.jsx", "resourceType": "script", - "startedAt": 2759, + "startedAt": 2805, "status": 200, "ok": true, - "finishedAt": 2784, + "finishedAt": 2836, "contentType": "text/javascript", "resourceTypeHint": "SignUp.jsx" }, @@ -4852,10 +4487,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/@fs/F:/RealDone/work/real-projects/conduit-postgres/node_modules/vite/dist/client/env.mjs", "resourceType": "script", - "startedAt": 2759, + "startedAt": 2806, "status": 200, "ok": true, - "finishedAt": 2798, + "finishedAt": 2836, "contentType": "text/javascript", "resourceTypeHint": "env.mjs" }, @@ -4864,10 +4499,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/node_modules/.vite/deps/chunk-MP6PTA7G.js?v=96de0870", "resourceType": "script", - "startedAt": 2761, + "startedAt": 2807, "status": 200, "ok": true, - "finishedAt": 2798, + "finishedAt": 2839, "contentType": "text/javascript", "resourceTypeHint": "chunk-MP6PTA7G.js" }, @@ -4876,10 +4511,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/node_modules/.vite/deps/chunk-G3PMV62Z.js?v=96de0870", "resourceType": "script", - "startedAt": 2761, + "startedAt": 2807, "status": 200, "ok": true, - "finishedAt": 2798, + "finishedAt": 2839, "contentType": "text/javascript", "resourceTypeHint": "chunk-G3PMV62Z.js" }, @@ -4888,10 +4523,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/Footer/index.js", "resourceType": "script", - "startedAt": 2777, + "startedAt": 2825, "status": 200, "ok": true, - "finishedAt": 2798, + "finishedAt": 2840, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, @@ -4900,10 +4535,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/Navbar/index.js", "resourceType": "script", - "startedAt": 2778, + "startedAt": 2825, "status": 200, "ok": true, - "finishedAt": 2798, + "finishedAt": 2841, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, @@ -4912,10 +4547,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/services/getUser.js", "resourceType": "script", - "startedAt": 2781, + "startedAt": 2826, "status": 200, "ok": true, - "finishedAt": 2829, + "finishedAt": 2842, "contentType": "text/javascript", "resourceTypeHint": "getUser.js" }, @@ -4924,10 +4559,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/CommentEditor/index.js", "resourceType": "script", - "startedAt": 2783, + "startedAt": 2828, "status": 200, "ok": true, - "finishedAt": 2829, + "finishedAt": 2843, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, @@ -4936,10 +4571,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/CommentList/index.js", "resourceType": "script", - "startedAt": 2783, + "startedAt": 2831, "status": 200, "ok": true, - "finishedAt": 2829, + "finishedAt": 2850, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, @@ -4948,10 +4583,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/node_modules/.vite/deps/markdown-to-jsx.js?v=96de0870", "resourceType": "script", - "startedAt": 2784, + "startedAt": 2832, "status": 200, "ok": true, - "finishedAt": 2832, + "finishedAt": 2872, "contentType": "text/javascript", "resourceTypeHint": "markdown-to-jsx.js" }, @@ -4960,10 +4595,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/ArticleMeta/index.js", "resourceType": "script", - "startedAt": 2786, + "startedAt": 2832, "status": 200, "ok": true, - "finishedAt": 2832, + "finishedAt": 2852, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, @@ -4972,10 +4607,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/ArticlesButtons/index.js", "resourceType": "script", - "startedAt": 2786, + "startedAt": 2832, "status": 200, "ok": true, - "finishedAt": 2832, + "finishedAt": 2851, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, @@ -4984,10 +4619,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/ArticleTags/index.js", "resourceType": "script", - "startedAt": 2786, + "startedAt": 2833, "status": 200, "ok": true, - "finishedAt": 2832, + "finishedAt": 2851, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, @@ -4996,10 +4631,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/BannerContainer/index.js", "resourceType": "script", - "startedAt": 2786, + "startedAt": 2833, "status": 200, "ok": true, - "finishedAt": 2832, + "finishedAt": 2852, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, @@ -5008,10 +4643,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/services/getArticle.js", "resourceType": "script", - "startedAt": 2787, + "startedAt": 2833, "status": 200, "ok": true, - "finishedAt": 2832, + "finishedAt": 2854, "contentType": "text/javascript", "resourceTypeHint": "getArticle.js" }, @@ -5020,10 +4655,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/ArticleEditorForm/index.js", "resourceType": "script", - "startedAt": 2787, + "startedAt": 2833, "status": 200, "ok": true, - "finishedAt": 2833, + "finishedAt": 2854, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, @@ -5032,10 +4667,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/ContainerRow/index.js", "resourceType": "script", - "startedAt": 2787, + "startedAt": 2834, "status": 200, "ok": true, - "finishedAt": 2833, + "finishedAt": 2858, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, @@ -5044,10 +4679,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/FeedToggler/index.js", "resourceType": "script", - "startedAt": 2787, + "startedAt": 2834, "status": 200, "ok": true, - "finishedAt": 2833, + "finishedAt": 2856, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, @@ -5056,10 +4691,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/context/FeedContext.jsx", "resourceType": "script", - "startedAt": 2787, + "startedAt": 2834, "status": 200, "ok": true, - "finishedAt": 2833, + "finishedAt": 2858, "contentType": "text/javascript", "resourceTypeHint": "FeedContext.jsx" }, @@ -5068,10 +4703,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/PopularTags/index.js", "resourceType": "script", - "startedAt": 2788, + "startedAt": 2834, "status": 200, "ok": true, - "finishedAt": 2833, + "finishedAt": 2857, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, @@ -5080,10 +4715,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/ArticlesPagination/index.js", "resourceType": "script", - "startedAt": 2788, + "startedAt": 2835, "status": 200, "ok": true, - "finishedAt": 2833, + "finishedAt": 2860, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, @@ -5092,10 +4727,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/ArticlesPreview/index.js", "resourceType": "script", - "startedAt": 2788, + "startedAt": 2835, "status": 200, "ok": true, - "finishedAt": 2833, + "finishedAt": 2862, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, @@ -5104,106 +4739,106 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/hooks/useArticles.js", "resourceType": "script", - "startedAt": 2788, + "startedAt": 2835, "status": 200, "ok": true, - "finishedAt": 2833, + "finishedAt": 2862, "contentType": "text/javascript", "resourceTypeHint": "useArticles.js" }, { "id": "net-53", "method": "GET", - "url": "http://127.0.0.1:3000/node_modules/.vite/deps/chunk-HYJYOVZJ.js?v=96de0870", + "url": "http://127.0.0.1:3000/src/components/AuthPageContainer/index.js", "resourceType": "script", - "startedAt": 2789, + "startedAt": 2835, "status": 200, "ok": true, - "finishedAt": 2833, + "finishedAt": 2862, "contentType": "text/javascript", - "resourceTypeHint": "chunk-HYJYOVZJ.js" + "resourceTypeHint": "index.js" }, { "id": "net-54", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/AuthPageContainer/index.js", + "url": "http://127.0.0.1:3000/src/components/LoginForm/index.js", "resourceType": "script", - "startedAt": 2789, + "startedAt": 2836, "status": 200, "ok": true, - "finishedAt": 2833, + "finishedAt": 2862, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, { "id": "net-55", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/LoginForm/index.js", + "url": "http://127.0.0.1:3000/src/components/AuthorInfo/index.js", "resourceType": "script", - "startedAt": 2789, + "startedAt": 2836, "status": 200, "ok": true, - "finishedAt": 2833, + "finishedAt": 2866, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, { "id": "net-56", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/AuthorInfo/index.js", + "url": "http://127.0.0.1:3000/src/components/NavItem/index.js", "resourceType": "script", - "startedAt": 2789, + "startedAt": 2836, "status": 200, "ok": true, - "finishedAt": 2834, + "finishedAt": 2867, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, { "id": "net-57", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/NavItem/index.js", + "url": "http://127.0.0.1:3000/src/components/SettingsForm/index.js", "resourceType": "script", - "startedAt": 2789, + "startedAt": 2839, "status": 200, "ok": true, - "finishedAt": 2834, + "finishedAt": 2867, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, { "id": "net-58", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/SettingsForm/index.js", + "url": "http://127.0.0.1:3000/src/components/SignUpForm/index.js", "resourceType": "script", - "startedAt": 2790, + "startedAt": 2839, "status": 200, "ok": true, - "finishedAt": 2834, + "finishedAt": 2867, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, { "id": "net-59", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/SignUpForm/index.js", + "url": "http://127.0.0.1:3000/node_modules/.vite/deps/chunk-HYJYOVZJ.js?v=96de0870", "resourceType": "script", - "startedAt": 2790, + "startedAt": 2840, "status": 200, "ok": true, - "finishedAt": 2838, + "finishedAt": 2868, "contentType": "text/javascript", - "resourceTypeHint": "index.js" + "resourceTypeHint": "chunk-HYJYOVZJ.js" }, { "id": "net-60", "method": "GET", "url": "http://127.0.0.1:3000/src/components/Footer/Footer.jsx", "resourceType": "script", - "startedAt": 2834, + "startedAt": 2840, "status": 200, "ok": true, - "finishedAt": 2848, + "finishedAt": 2872, "contentType": "text/javascript", "resourceTypeHint": "Footer.jsx" }, @@ -5212,10 +4847,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/Navbar/Navbar.jsx", "resourceType": "script", - "startedAt": 2834, + "startedAt": 2841, "status": 200, "ok": true, - "finishedAt": 2849, + "finishedAt": 2872, "contentType": "text/javascript", "resourceTypeHint": "Navbar.jsx" }, @@ -5224,10 +4859,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/node_modules/.vite/deps/axios.js?v=96de0870", "resourceType": "script", - "startedAt": 2834, + "startedAt": 2842, "status": 200, "ok": true, - "finishedAt": 2851, + "finishedAt": 2877, "contentType": "text/javascript", "resourceTypeHint": "axios.js" }, @@ -5236,10 +4871,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/helpers/errorHandler.js", "resourceType": "script", - "startedAt": 2835, + "startedAt": 2842, "status": 200, "ok": true, - "finishedAt": 2850, + "finishedAt": 2877, "contentType": "text/javascript", "resourceTypeHint": "errorHandler.js" }, @@ -5248,10 +4883,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/CommentEditor/CommentEditor.jsx", "resourceType": "script", - "startedAt": 2835, + "startedAt": 2843, "status": 200, "ok": true, - "finishedAt": 2849, + "finishedAt": 2877, "contentType": "text/javascript", "resourceTypeHint": "CommentEditor.jsx" }, @@ -5260,142 +4895,142 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/CommentList/CommentList.jsx", "resourceType": "script", - "startedAt": 2835, + "startedAt": 2853, "status": 200, "ok": true, - "finishedAt": 2850, + "finishedAt": 2877, "contentType": "text/javascript", "resourceTypeHint": "CommentList.jsx" }, { "id": "net-66", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/ArticleMeta/ArticleMeta.jsx", + "url": "http://127.0.0.1:3000/src/components/ArticlesButtons/ArticlesButtons.jsx", "resourceType": "script", - "startedAt": 2835, + "startedAt": 2855, "status": 200, "ok": true, - "finishedAt": 2852, + "finishedAt": 2879, "contentType": "text/javascript", - "resourceTypeHint": "ArticleMeta.jsx" + "resourceTypeHint": "ArticlesButtons.jsx" }, { "id": "net-67", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/ArticlesButtons/ArticlesButtons.jsx", + "url": "http://127.0.0.1:3000/src/components/ArticleTags/ArticleTags.jsx", "resourceType": "script", - "startedAt": 2835, + "startedAt": 2858, "status": 200, "ok": true, - "finishedAt": 2856, + "finishedAt": 2880, "contentType": "text/javascript", - "resourceTypeHint": "ArticlesButtons.jsx" + "resourceTypeHint": "ArticleTags.jsx" }, { "id": "net-68", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/ArticleTags/ArticleTags.jsx", + "url": "http://127.0.0.1:3000/src/components/BannerContainer/BannerContainer.jsx", "resourceType": "script", - "startedAt": 2836, + "startedAt": 2858, "status": 200, "ok": true, - "finishedAt": 2855, + "finishedAt": 2880, "contentType": "text/javascript", - "resourceTypeHint": "ArticleTags.jsx" + "resourceTypeHint": "BannerContainer.jsx" }, { "id": "net-69", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/BannerContainer/BannerContainer.jsx", + "url": "http://127.0.0.1:3000/src/components/ArticleMeta/ArticleMeta.jsx", "resourceType": "script", - "startedAt": 2836, + "startedAt": 2859, "status": 200, "ok": true, - "finishedAt": 2857, + "finishedAt": 2882, "contentType": "text/javascript", - "resourceTypeHint": "BannerContainer.jsx" + "resourceTypeHint": "ArticleMeta.jsx" }, { "id": "net-70", "method": "GET", "url": "http://127.0.0.1:3000/src/components/ArticleEditorForm/ArticleEditorForm.jsx", "resourceType": "script", - "startedAt": 2836, + "startedAt": 2861, "status": 200, "ok": true, - "finishedAt": 2858, + "finishedAt": 2883, "contentType": "text/javascript", "resourceTypeHint": "ArticleEditorForm.jsx" }, { "id": "net-71", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/ContainerRow/ContainerRow.jsx", + "url": "http://127.0.0.1:3000/src/components/FeedToggler/FeedToggler.jsx", "resourceType": "script", - "startedAt": 2836, + "startedAt": 2862, "status": 200, "ok": true, - "finishedAt": 2857, + "finishedAt": 2883, "contentType": "text/javascript", - "resourceTypeHint": "ContainerRow.jsx" + "resourceTypeHint": "FeedToggler.jsx" }, { "id": "net-72", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/FeedToggler/FeedToggler.jsx", + "url": "http://127.0.0.1:3000/src/components/PopularTags/PopularTags.jsx", "resourceType": "script", - "startedAt": 2836, + "startedAt": 2863, "status": 200, "ok": true, - "finishedAt": 2859, + "finishedAt": 2884, "contentType": "text/javascript", - "resourceTypeHint": "FeedToggler.jsx" + "resourceTypeHint": "PopularTags.jsx" }, { "id": "net-73", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/PopularTags/PopularTags.jsx", + "url": "http://127.0.0.1:3000/src/components/ContainerRow/ContainerRow.jsx", "resourceType": "script", - "startedAt": 2837, + "startedAt": 2864, "status": 200, "ok": true, - "finishedAt": 2859, + "finishedAt": 2885, "contentType": "text/javascript", - "resourceTypeHint": "PopularTags.jsx" + "resourceTypeHint": "ContainerRow.jsx" }, { "id": "net-74", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/ArticlesPreview/ArticlesPreview.jsx", + "url": "http://127.0.0.1:3000/src/components/ArticlesPagination/ArticlesPagination.jsx", "resourceType": "script", - "startedAt": 2837, + "startedAt": 2866, "status": 200, "ok": true, - "finishedAt": 2859, + "finishedAt": 2887, "contentType": "text/javascript", - "resourceTypeHint": "ArticlesPreview.jsx" + "resourceTypeHint": "ArticlesPagination.jsx" }, { "id": "net-75", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/ArticlesPagination/ArticlesPagination.jsx", + "url": "http://127.0.0.1:3000/src/components/ArticlesPreview/ArticlesPreview.jsx", "resourceType": "script", - "startedAt": 2837, + "startedAt": 2872, "status": 200, "ok": true, - "finishedAt": 2859, + "finishedAt": 2889, "contentType": "text/javascript", - "resourceTypeHint": "ArticlesPagination.jsx" + "resourceTypeHint": "ArticlesPreview.jsx" }, { "id": "net-76", "method": "GET", "url": "http://127.0.0.1:3000/src/services/getArticles.js", "resourceType": "script", - "startedAt": 2837, + "startedAt": 2873, "status": 200, "ok": true, - "finishedAt": 2859, + "finishedAt": 2889, "contentType": "text/javascript", "resourceTypeHint": "getArticles.js" }, @@ -5404,10 +5039,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/AuthPageContainer/AuthPageContainer.jsx", "resourceType": "script", - "startedAt": 2837, + "startedAt": 2873, "status": 200, "ok": true, - "finishedAt": 2864, + "finishedAt": 2889, "contentType": "text/javascript", "resourceTypeHint": "AuthPageContainer.jsx" }, @@ -5416,10 +5051,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/LoginForm/LoginForm.jsx", "resourceType": "script", - "startedAt": 2838, + "startedAt": 2874, "status": 200, "ok": true, - "finishedAt": 2864, + "finishedAt": 2889, "contentType": "text/javascript", "resourceTypeHint": "LoginForm.jsx" }, @@ -5428,10 +5063,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/AuthorInfo/AuthorInfo.jsx", "resourceType": "script", - "startedAt": 2838, + "startedAt": 2874, "status": 200, "ok": true, - "finishedAt": 2867, + "finishedAt": 2889, "contentType": "text/javascript", "resourceTypeHint": "AuthorInfo.jsx" }, @@ -5440,10 +5075,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/NavItem/NavItem.jsx", "resourceType": "script", - "startedAt": 2838, + "startedAt": 2876, "status": 200, "ok": true, - "finishedAt": 2867, + "finishedAt": 2893, "contentType": "text/javascript", "resourceTypeHint": "NavItem.jsx" }, @@ -5452,10 +5087,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/SettingsForm/SettingsForm.jsx", "resourceType": "script", - "startedAt": 2840, + "startedAt": 2876, "status": 200, "ok": true, - "finishedAt": 2869, + "finishedAt": 2894, "contentType": "text/javascript", "resourceTypeHint": "SettingsForm.jsx" }, @@ -5464,10 +5099,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/SignUpForm/SignUpForm.jsx", "resourceType": "script", - "startedAt": 2841, + "startedAt": 2877, "status": 200, "ok": true, - "finishedAt": 2869, + "finishedAt": 2895, "contentType": "text/javascript", "resourceTypeHint": "SignUpForm.jsx" }, @@ -5476,10 +5111,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/SourceCodeLink/index.js", "resourceType": "script", - "startedAt": 2853, + "startedAt": 2877, "status": 200, "ok": true, - "finishedAt": 2871, + "finishedAt": 2895, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, @@ -5488,10 +5123,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/Navbar/DropdownMenu.jsx", "resourceType": "script", - "startedAt": 2853, + "startedAt": 2878, "status": 200, "ok": true, - "finishedAt": 2874, + "finishedAt": 2896, "contentType": "text/javascript", "resourceTypeHint": "DropdownMenu.jsx" }, @@ -5500,10 +5135,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/services/postComment.js", "resourceType": "script", - "startedAt": 2854, + "startedAt": 2878, "status": 200, "ok": true, - "finishedAt": 2872, + "finishedAt": 2896, "contentType": "text/javascript", "resourceTypeHint": "postComment.js" }, @@ -5512,10 +5147,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/Avatar/index.js", "resourceType": "script", - "startedAt": 2854, + "startedAt": 2878, "status": 200, "ok": true, - "finishedAt": 2874, + "finishedAt": 2897, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, @@ -5524,10 +5159,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/helpers/dateFormatter.js", "resourceType": "script", - "startedAt": 2854, + "startedAt": 2878, "status": 200, "ok": true, - "finishedAt": 2874, + "finishedAt": 2898, "contentType": "text/javascript", "resourceTypeHint": "dateFormatter.js" }, @@ -5536,10 +5171,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/services/deleteComment.js", "resourceType": "script", - "startedAt": 2854, + "startedAt": 2879, "status": 200, "ok": true, - "finishedAt": 2874, + "finishedAt": 2898, "contentType": "text/javascript", "resourceTypeHint": "deleteComment.js" }, @@ -5548,10 +5183,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/services/getComments.js", "resourceType": "script", - "startedAt": 2858, + "startedAt": 2879, "status": 200, "ok": true, - "finishedAt": 2876, + "finishedAt": 2899, "contentType": "text/javascript", "resourceTypeHint": "getComments.js" }, @@ -5560,10 +5195,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/CommentList/CommentAuthor.jsx", "resourceType": "script", - "startedAt": 2858, + "startedAt": 2879, "status": 200, "ok": true, - "finishedAt": 2876, + "finishedAt": 2900, "contentType": "text/javascript", "resourceTypeHint": "CommentAuthor.jsx" }, @@ -5572,10 +5207,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/ArticleAuthorButtons/index.js", "resourceType": "script", - "startedAt": 2859, + "startedAt": 2882, "status": 200, "ok": true, - "finishedAt": 2876, + "finishedAt": 2903, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, @@ -5584,10 +5219,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/FavButton/index.js", "resourceType": "script", - "startedAt": 2863, + "startedAt": 2882, "status": 200, "ok": true, - "finishedAt": 2879, + "finishedAt": 2903, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, @@ -5596,10 +5231,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/FollowButton/index.js", "resourceType": "script", - "startedAt": 2863, + "startedAt": 2883, "status": 200, "ok": true, - "finishedAt": 2879, + "finishedAt": 2903, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, @@ -5608,10 +5243,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/services/setArticle.js", "resourceType": "script", - "startedAt": 2863, + "startedAt": 2883, "status": 200, "ok": true, - "finishedAt": 2879, + "finishedAt": 2903, "contentType": "text/javascript", "resourceTypeHint": "setArticle.js" }, @@ -5620,94 +5255,94 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/FormFieldset/index.js", "resourceType": "script", - "startedAt": 2864, + "startedAt": 2883, "status": 200, "ok": true, - "finishedAt": 2879, + "finishedAt": 2903, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, { "id": "net-96", "method": "GET", - "url": "http://127.0.0.1:3000/src/services/getTags.js", + "url": "http://127.0.0.1:3000/src/components/FeedToggler/FeedNavLink.jsx", "resourceType": "script", - "startedAt": 2865, + "startedAt": 2884, "status": 200, "ok": true, - "finishedAt": 2879, + "finishedAt": 2904, "contentType": "text/javascript", - "resourceTypeHint": "getTags.js" + "resourceTypeHint": "FeedNavLink.jsx" }, { "id": "net-97", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/PopularTags/TagButton.jsx", + "url": "http://127.0.0.1:3000/src/services/getTags.js", "resourceType": "script", - "startedAt": 2865, + "startedAt": 2885, "status": 200, "ok": true, - "finishedAt": 2880, + "finishedAt": 2904, "contentType": "text/javascript", - "resourceTypeHint": "TagButton.jsx" + "resourceTypeHint": "getTags.js" }, { "id": "net-98", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/FeedToggler/FeedNavLink.jsx", + "url": "http://127.0.0.1:3000/src/components/PopularTags/TagButton.jsx", "resourceType": "script", - "startedAt": 2865, + "startedAt": 2885, "status": 200, "ok": true, - "finishedAt": 2880, + "finishedAt": 2905, "contentType": "text/javascript", - "resourceTypeHint": "FeedNavLink.jsx" + "resourceTypeHint": "TagButton.jsx" }, { "id": "net-99", "method": "GET", "url": "http://127.0.0.1:3000/node_modules/.vite/deps/react-paginate.js?v=96de0870", "resourceType": "script", - "startedAt": 2866, + "startedAt": 2887, "status": 200, "ok": true, - "finishedAt": 2880, + "finishedAt": 2906, "contentType": "text/javascript", "resourceTypeHint": "react-paginate.js" }, { "id": "net-100", "method": "GET", - "url": "http://127.0.0.1:3000/src/services/userLogin.js", + "url": "http://127.0.0.1:3000/src/services/getProfile.js", "resourceType": "script", - "startedAt": 2866, + "startedAt": 2889, "status": 200, "ok": true, - "finishedAt": 2880, + "finishedAt": 2906, "contentType": "text/javascript", - "resourceTypeHint": "userLogin.js" + "resourceTypeHint": "getProfile.js" }, { "id": "net-101", "method": "GET", - "url": "http://127.0.0.1:3000/src/services/getProfile.js", + "url": "http://127.0.0.1:3000/src/services/userLogin.js", "resourceType": "script", - "startedAt": 2871, + "startedAt": 2889, "status": 200, "ok": true, - "finishedAt": 2883, + "finishedAt": 2906, "contentType": "text/javascript", - "resourceTypeHint": "getProfile.js" + "resourceTypeHint": "userLogin.js" }, { "id": "net-102", "method": "GET", "url": "http://127.0.0.1:3000/src/services/userUpdate.js", "resourceType": "script", - "startedAt": 2871, + "startedAt": 2899, "status": 200, "ok": true, - "finishedAt": 2883, + "finishedAt": 2908, "contentType": "text/javascript", "resourceTypeHint": "userUpdate.js" }, @@ -5716,10 +5351,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/services/userSignUp.js", "resourceType": "script", - "startedAt": 2871, + "startedAt": 2900, "status": 200, "ok": true, - "finishedAt": 2883, + "finishedAt": 2908, "contentType": "text/javascript", "resourceTypeHint": "userSignUp.js" }, @@ -5728,58 +5363,58 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/SourceCodeLink/SourceCodeLink.jsx", "resourceType": "script", - "startedAt": 2872, + "startedAt": 2901, "status": 200, "ok": true, - "finishedAt": 2883, + "finishedAt": 2908, "contentType": "text/javascript", "resourceTypeHint": "SourceCodeLink.jsx" }, { "id": "net-105", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/Avatar/Avatar.jsx", + "url": "http://127.0.0.1:3000/src/services/userLogout.js", "resourceType": "script", - "startedAt": 2874, + "startedAt": 2901, "status": 200, "ok": true, - "finishedAt": 2883, + "finishedAt": 2908, "contentType": "text/javascript", - "resourceTypeHint": "Avatar.jsx" + "resourceTypeHint": "userLogout.js" }, { "id": "net-106", "method": "GET", - "url": "http://127.0.0.1:3000/src/services/userLogout.js", + "url": "http://127.0.0.1:3000/src/components/Navbar/DropdownItem.jsx", "resourceType": "script", - "startedAt": 2875, + "startedAt": 2901, "status": 200, "ok": true, - "finishedAt": 2884, + "finishedAt": 2909, "contentType": "text/javascript", - "resourceTypeHint": "userLogout.js" + "resourceTypeHint": "DropdownItem.jsx" }, { "id": "net-107", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/Navbar/DropdownItem.jsx", + "url": "http://127.0.0.1:3000/src/components/Avatar/Avatar.jsx", "resourceType": "script", - "startedAt": 2875, + "startedAt": 2902, "status": 200, "ok": true, - "finishedAt": 2884, + "finishedAt": 2910, "contentType": "text/javascript", - "resourceTypeHint": "DropdownItem.jsx" + "resourceTypeHint": "Avatar.jsx" }, { "id": "net-108", "method": "GET", "url": "http://127.0.0.1:3000/src/components/ArticleAuthorButtons/ArticleAuthorButtons.jsx", "resourceType": "script", - "startedAt": 2876, + "startedAt": 2904, "status": 200, "ok": true, - "finishedAt": 2885, + "finishedAt": 2911, "contentType": "text/javascript", "resourceTypeHint": "ArticleAuthorButtons.jsx" }, @@ -5788,10 +5423,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/FavButton/FavButton.jsx", "resourceType": "script", - "startedAt": 2879, + "startedAt": 2905, "status": 200, "ok": true, - "finishedAt": 2886, + "finishedAt": 2911, "contentType": "text/javascript", "resourceTypeHint": "FavButton.jsx" }, @@ -5800,10 +5435,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/FollowButton/FollowButton.jsx", "resourceType": "script", - "startedAt": 2880, + "startedAt": 2905, "status": 200, "ok": true, - "finishedAt": 2886, + "finishedAt": 2912, "contentType": "text/javascript", "resourceTypeHint": "FollowButton.jsx" }, @@ -5812,10 +5447,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/FormFieldset/FormFieldset.jsx", "resourceType": "script", - "startedAt": 2880, + "startedAt": 2905, "status": 200, "ok": true, - "finishedAt": 2886, + "finishedAt": 2912, "contentType": "text/javascript", "resourceTypeHint": "FormFieldset.jsx" }, @@ -5824,10 +5459,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/assets/smiley-cyrus.jpeg?import", "resourceType": "script", - "startedAt": 2884, + "startedAt": 2910, "status": 200, "ok": true, - "finishedAt": 2888, + "finishedAt": 2913, "contentType": "text/javascript", "resourceTypeHint": "smiley-cyrus.jpeg" }, @@ -5836,22 +5471,22 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/services/deleteArticle.js", "resourceType": "script", - "startedAt": 2885, + "startedAt": 2911, "status": 200, "ok": true, - "finishedAt": 2889, "contentType": "text/javascript", - "resourceTypeHint": "deleteArticle.js" + "resourceTypeHint": "deleteArticle.js", + "finishedAt": 2915 }, { "id": "net-114", "method": "GET", "url": "http://127.0.0.1:3000/src/services/toggleFav.js", "resourceType": "script", - "startedAt": 2886, + "startedAt": 2912, "status": 200, "ok": true, - "finishedAt": 2890, + "finishedAt": 2916, "contentType": "text/javascript", "resourceTypeHint": "toggleFav.js" }, @@ -5860,10 +5495,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/services/toggleFollow.js", "resourceType": "script", - "startedAt": 2887, + "startedAt": 2913, "status": 200, "ok": true, - "finishedAt": 2890, + "finishedAt": 2916, "contentType": "text/javascript", "resourceTypeHint": "toggleFollow.js" }, @@ -5872,10 +5507,10 @@ "method": "GET", "url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdu.woff2", "resourceType": "font", - "startedAt": 2901, + "startedAt": 3098, "status": 200, "ok": true, - "finishedAt": 2949, + "finishedAt": 3145, "contentType": "font/woff2", "resourceTypeHint": "6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdu.woff2" }, @@ -5884,10 +5519,10 @@ "method": "GET", "url": "https://code.ionicframework.com/ionicons/2.0.1/fonts/ionicons.ttf?v=2.0.1", "resourceType": "font", - "startedAt": 2902, + "startedAt": 3098, "status": 200, "ok": true, - "finishedAt": 2990, + "finishedAt": 3206, "contentType": "font/ttf", "resourceTypeHint": "ionicons.ttf" }, @@ -5896,10 +5531,10 @@ "method": "GET", "url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7l.woff2", "resourceType": "font", - "startedAt": 2902, + "startedAt": 3099, "status": 200, "ok": true, - "finishedAt": 2948, + "finishedAt": 3145, "contentType": "font/woff2", "resourceTypeHint": "6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7l.woff2" }, @@ -5908,10 +5543,10 @@ "method": "GET", "url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7nsDI.woff2", "resourceType": "font", - "startedAt": 2903, + "startedAt": 3099, "status": 200, "ok": true, - "finishedAt": 2952, + "finishedAt": 3144, "contentType": "font/woff2", "resourceTypeHint": "6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7nsDI.woff2" }, @@ -5920,22 +5555,22 @@ "method": "GET", "url": "http://127.0.0.1:3000/", "resourceType": "document", - "startedAt": 3756, + "startedAt": 3951, "status": 200, "ok": true, "contentType": "text/html", "resourceTypeHint": "resource", - "finishedAt": 3766 + "finishedAt": 3959 }, { "id": "net-121", "method": "GET", "url": "http://127.0.0.1:3000/@vite/client", "resourceType": "script", - "startedAt": 3764, + "startedAt": 3957, "status": 200, "ok": true, - "finishedAt": 3772, + "finishedAt": 3968, "contentType": "text/javascript", "resourceTypeHint": "client" }, @@ -5944,10 +5579,10 @@ "method": "GET", "url": "http://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css", "resourceType": "stylesheet", - "startedAt": 3765, + "startedAt": 3958, "status": 307, "ok": false, - "finishedAt": 3768, + "finishedAt": 3961, "location": "https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css", "resourceTypeHint": "ionicons.min.css" }, @@ -5956,10 +5591,10 @@ "method": "GET", "url": "http://fonts.googleapis.com/css?family=Titillium+Web:700|Source+Serif+Pro:400,700|Merriweather+Sans:400,700|Source+Sans+Pro:400,300,600,700,300italic,400italic,600italic,700italic", "resourceType": "stylesheet", - "startedAt": 3765, + "startedAt": 3958, "status": 200, "ok": true, - "finishedAt": 3815, + "finishedAt": 4008, "contentType": "text/css", "resourceTypeHint": "css" }, @@ -5968,10 +5603,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/main.jsx", "resourceType": "script", - "startedAt": 3766, + "startedAt": 3958, "status": 200, "ok": true, - "finishedAt": 3771, + "finishedAt": 3964, "contentType": "text/javascript", "resourceTypeHint": "main.jsx" }, @@ -5980,10 +5615,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/@react-refresh", "resourceType": "script", - "startedAt": 3766, + "startedAt": 3959, "status": 200, "ok": true, - "finishedAt": 3778, + "finishedAt": 3969, "contentType": "text/javascript", "resourceTypeHint": "@react-refresh" }, @@ -5992,10 +5627,10 @@ "method": "GET", "url": "https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css", "resourceType": "stylesheet", - "startedAt": 3768, + "startedAt": 3961, "status": 200, "ok": true, - "finishedAt": 3861, + "finishedAt": 4049, "contentType": "text/css", "resourceTypeHint": "ionicons.min.css" }, @@ -6004,10 +5639,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/node_modules/.vite/deps/react_jsx-dev-runtime.js?v=96de0870", "resourceType": "script", - "startedAt": 3772, + "startedAt": 3966, "status": 200, "ok": true, - "finishedAt": 3781, + "finishedAt": 3975, "contentType": "text/javascript", "resourceTypeHint": "react_jsx-dev-runtime.js" }, @@ -6016,10 +5651,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/node_modules/.vite/deps/react.js?v=96de0870", "resourceType": "script", - "startedAt": 3774, + "startedAt": 3966, "status": 200, "ok": true, - "finishedAt": 3785, + "finishedAt": 3975, "contentType": "text/javascript", "resourceTypeHint": "react.js" }, @@ -6028,10 +5663,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/node_modules/.vite/deps/react-dom_client.js?v=96de0870", "resourceType": "script", - "startedAt": 3774, + "startedAt": 3966, "status": 200, "ok": true, - "finishedAt": 3804, + "finishedAt": 3995, "contentType": "text/javascript", "resourceTypeHint": "react-dom_client.js" }, @@ -6040,10 +5675,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/node_modules/.vite/deps/react-router-dom.js?v=96de0870", "resourceType": "script", - "startedAt": 3774, + "startedAt": 3967, "status": 200, "ok": true, - "finishedAt": 3803, + "finishedAt": 3994, "contentType": "text/javascript", "resourceTypeHint": "react-router-dom.js" }, @@ -6052,10 +5687,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/App.jsx", "resourceType": "script", - "startedAt": 3774, + "startedAt": 3967, "status": 200, "ok": true, - "finishedAt": 3792, + "finishedAt": 3983, "contentType": "text/javascript", "resourceTypeHint": "App.jsx" }, @@ -6064,10 +5699,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/context/AuthContext.jsx", "resourceType": "script", - "startedAt": 3775, + "startedAt": 3969, "status": 200, "ok": true, - "finishedAt": 3793, + "finishedAt": 3984, "contentType": "text/javascript", "resourceTypeHint": "AuthContext.jsx" }, @@ -6076,10 +5711,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/styles.css", "resourceType": "script", - "startedAt": 3775, + "startedAt": 3969, "status": 200, "ok": true, - "finishedAt": 3793, + "finishedAt": 3987, "contentType": "text/javascript", "resourceTypeHint": "styles.css" }, @@ -6088,10 +5723,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/index.css", "resourceType": "script", - "startedAt": 3775, + "startedAt": 3969, "status": 200, "ok": true, - "finishedAt": 3794, + "finishedAt": 3988, "contentType": "text/javascript", "resourceTypeHint": "index.css" }, @@ -6100,10 +5735,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/reportWebVitals.js", "resourceType": "script", - "startedAt": 3775, + "startedAt": 3969, "status": 200, "ok": true, - "finishedAt": 3794, + "finishedAt": 3988, "contentType": "text/javascript", "resourceTypeHint": "reportWebVitals.js" }, @@ -6112,10 +5747,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/routes/Article/Article.jsx", "resourceType": "script", - "startedAt": 3775, + "startedAt": 3970, "status": 200, "ok": true, - "finishedAt": 3796, + "finishedAt": 3989, "contentType": "text/javascript", "resourceTypeHint": "Article.jsx" }, @@ -6124,10 +5759,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/routes/Article/CommentsSection.jsx", "resourceType": "script", - "startedAt": 3776, + "startedAt": 3970, "status": 200, "ok": true, - "finishedAt": 3798, + "finishedAt": 3988, "contentType": "text/javascript", "resourceTypeHint": "CommentsSection.jsx" }, @@ -6136,10 +5771,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/routes/ArticleEditor.jsx", "resourceType": "script", - "startedAt": 3776, + "startedAt": 3970, "status": 200, "ok": true, - "finishedAt": 3798, + "finishedAt": 3992, "contentType": "text/javascript", "resourceTypeHint": "ArticleEditor.jsx" }, @@ -6148,10 +5783,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/routes/Home.jsx", "resourceType": "script", - "startedAt": 3776, + "startedAt": 3971, "status": 200, "ok": true, - "finishedAt": 3800, + "finishedAt": 3993, "contentType": "text/javascript", "resourceTypeHint": "Home.jsx" }, @@ -6160,10 +5795,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/routes/HomeArticles.jsx", "resourceType": "script", - "startedAt": 3776, + "startedAt": 3971, "status": 200, "ok": true, - "finishedAt": 3800, + "finishedAt": 3993, "contentType": "text/javascript", "resourceTypeHint": "HomeArticles.jsx" }, @@ -6172,10 +5807,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/routes/Login.jsx", "resourceType": "script", - "startedAt": 3776, + "startedAt": 3971, "status": 200, "ok": true, - "finishedAt": 3800, + "finishedAt": 3994, "contentType": "text/javascript", "resourceTypeHint": "Login.jsx" }, @@ -6184,10 +5819,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/routes/NotFound.jsx", "resourceType": "script", - "startedAt": 3778, + "startedAt": 3971, "status": 200, "ok": true, - "finishedAt": 3802, + "finishedAt": 3995, "contentType": "text/javascript", "resourceTypeHint": "NotFound.jsx" }, @@ -6196,10 +5831,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/routes/Profile/Profile.jsx", "resourceType": "script", - "startedAt": 3778, + "startedAt": 3972, "status": 200, "ok": true, - "finishedAt": 3804, + "finishedAt": 3995, "contentType": "text/javascript", "resourceTypeHint": "Profile.jsx" }, @@ -6208,10 +5843,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/routes/Profile/ProfileArticles.jsx", "resourceType": "script", - "startedAt": 3778, + "startedAt": 3972, "status": 200, "ok": true, - "finishedAt": 3804, + "finishedAt": 3999, "contentType": "text/javascript", "resourceTypeHint": "ProfileArticles.jsx" }, @@ -6220,10 +5855,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/routes/Profile/ProfileFavArticles.jsx", "resourceType": "script", - "startedAt": 3779, + "startedAt": 3972, "status": 200, "ok": true, - "finishedAt": 3809, + "finishedAt": 3999, "contentType": "text/javascript", "resourceTypeHint": "ProfileFavArticles.jsx" }, @@ -6232,10 +5867,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/routes/Settings.jsx", "resourceType": "script", - "startedAt": 3779, + "startedAt": 3973, "status": 200, "ok": true, - "finishedAt": 3811, + "finishedAt": 4001, "contentType": "text/javascript", "resourceTypeHint": "Settings.jsx" }, @@ -6244,10 +5879,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/routes/SignUp.jsx", "resourceType": "script", - "startedAt": 3779, + "startedAt": 3973, "status": 200, "ok": true, - "finishedAt": 3811, + "finishedAt": 4001, "contentType": "text/javascript", "resourceTypeHint": "SignUp.jsx" }, @@ -6256,10 +5891,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/@fs/F:/RealDone/work/real-projects/conduit-postgres/node_modules/vite/dist/client/env.mjs", "resourceType": "script", - "startedAt": 3779, + "startedAt": 3974, "status": 200, "ok": true, - "finishedAt": 3811, + "finishedAt": 4001, "contentType": "text/javascript", "resourceTypeHint": "env.mjs" }, @@ -6268,10 +5903,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/node_modules/.vite/deps/chunk-MP6PTA7G.js?v=96de0870", "resourceType": "script", - "startedAt": 3781, + "startedAt": 3975, "status": 200, "ok": true, - "finishedAt": 3812, + "finishedAt": 4003, "contentType": "text/javascript", "resourceTypeHint": "chunk-MP6PTA7G.js" }, @@ -6280,10 +5915,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/node_modules/.vite/deps/chunk-G3PMV62Z.js?v=96de0870", "resourceType": "script", - "startedAt": 3781, + "startedAt": 3975, "status": 200, "ok": true, - "finishedAt": 3813, + "finishedAt": 4002, "contentType": "text/javascript", "resourceTypeHint": "chunk-G3PMV62Z.js" }, @@ -6292,10 +5927,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/Footer/index.js", "resourceType": "script", - "startedAt": 3796, + "startedAt": 3990, "status": 200, "ok": true, - "finishedAt": 3813, + "finishedAt": 4007, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, @@ -6304,10 +5939,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/Navbar/index.js", "resourceType": "script", - "startedAt": 3801, + "startedAt": 3991, "status": 200, "ok": true, - "finishedAt": 3848, + "finishedAt": 4007, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, @@ -6316,118 +5951,118 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/services/getUser.js", "resourceType": "script", - "startedAt": 3801, + "startedAt": 3991, "status": 200, "ok": true, - "finishedAt": 3848, + "finishedAt": 4007, "contentType": "text/javascript", "resourceTypeHint": "getUser.js" }, { "id": "net-154", "method": "GET", - "url": "http://127.0.0.1:3000/node_modules/.vite/deps/markdown-to-jsx.js?v=96de0870", + "url": "http://127.0.0.1:3000/src/components/CommentEditor/index.js", "resourceType": "script", - "startedAt": 3802, + "startedAt": 3994, "status": 200, "ok": true, - "finishedAt": 3851, + "finishedAt": 4011, "contentType": "text/javascript", - "resourceTypeHint": "markdown-to-jsx.js" + "resourceTypeHint": "index.js" }, { "id": "net-155", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/ArticleMeta/index.js", + "url": "http://127.0.0.1:3000/src/components/CommentList/index.js", "resourceType": "script", - "startedAt": 3804, + "startedAt": 3995, "status": 200, "ok": true, - "finishedAt": 3851, + "finishedAt": 4010, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, { "id": "net-156", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/ArticlesButtons/index.js", + "url": "http://127.0.0.1:3000/node_modules/.vite/deps/markdown-to-jsx.js?v=96de0870", "resourceType": "script", - "startedAt": 3804, + "startedAt": 3995, "status": 200, "ok": true, - "finishedAt": 3851, + "finishedAt": 4015, "contentType": "text/javascript", - "resourceTypeHint": "index.js" + "resourceTypeHint": "markdown-to-jsx.js" }, { "id": "net-157", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/ArticleTags/index.js", + "url": "http://127.0.0.1:3000/src/components/ArticleMeta/index.js", "resourceType": "script", - "startedAt": 3807, + "startedAt": 3996, "status": 200, "ok": true, - "finishedAt": 3851, + "finishedAt": 4014, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, { "id": "net-158", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/BannerContainer/index.js", + "url": "http://127.0.0.1:3000/src/components/ArticlesButtons/index.js", "resourceType": "script", - "startedAt": 3807, + "startedAt": 3996, "status": 200, "ok": true, - "finishedAt": 3851, + "finishedAt": 4014, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, { "id": "net-159", "method": "GET", - "url": "http://127.0.0.1:3000/src/services/getArticle.js", + "url": "http://127.0.0.1:3000/src/components/ArticleTags/index.js", "resourceType": "script", - "startedAt": 3808, + "startedAt": 3996, "status": 200, "ok": true, - "finishedAt": 3851, + "finishedAt": 4016, "contentType": "text/javascript", - "resourceTypeHint": "getArticle.js" + "resourceTypeHint": "index.js" }, { "id": "net-160", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/CommentEditor/index.js", + "url": "http://127.0.0.1:3000/src/components/BannerContainer/index.js", "resourceType": "script", - "startedAt": 3808, + "startedAt": 3997, "status": 200, "ok": true, - "finishedAt": 3851, + "finishedAt": 4017, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, { "id": "net-161", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/CommentList/index.js", + "url": "http://127.0.0.1:3000/src/services/getArticle.js", "resourceType": "script", - "startedAt": 3808, + "startedAt": 3997, "status": 200, "ok": true, - "finishedAt": 3851, + "finishedAt": 4017, "contentType": "text/javascript", - "resourceTypeHint": "index.js" + "resourceTypeHint": "getArticle.js" }, { "id": "net-162", "method": "GET", "url": "http://127.0.0.1:3000/src/components/ArticleEditorForm/index.js", "resourceType": "script", - "startedAt": 3809, + "startedAt": 3997, "status": 200, "ok": true, - "finishedAt": 3851, + "finishedAt": 4017, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, @@ -6436,130 +6071,130 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/ContainerRow/index.js", "resourceType": "script", - "startedAt": 3809, + "startedAt": 3998, "status": 200, "ok": true, - "finishedAt": 3852, + "finishedAt": 4018, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, { "id": "net-164", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/AuthPageContainer/index.js", + "url": "http://127.0.0.1:3000/src/components/FeedToggler/index.js", "resourceType": "script", - "startedAt": 3809, + "startedAt": 3998, "status": 200, "ok": true, - "finishedAt": 3852, + "finishedAt": 4018, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, { "id": "net-165", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/LoginForm/index.js", + "url": "http://127.0.0.1:3000/src/context/FeedContext.jsx", "resourceType": "script", - "startedAt": 3809, + "startedAt": 3998, "status": 200, "ok": true, - "finishedAt": 3852, + "finishedAt": 4019, "contentType": "text/javascript", - "resourceTypeHint": "index.js" + "resourceTypeHint": "FeedContext.jsx" }, { "id": "net-166", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/FeedToggler/index.js", + "url": "http://127.0.0.1:3000/src/components/PopularTags/index.js", "resourceType": "script", - "startedAt": 3810, + "startedAt": 3999, "status": 200, "ok": true, - "finishedAt": 3852, + "finishedAt": 4020, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, { "id": "net-167", "method": "GET", - "url": "http://127.0.0.1:3000/src/context/FeedContext.jsx", + "url": "http://127.0.0.1:3000/src/components/ArticlesPagination/index.js", "resourceType": "script", - "startedAt": 3810, + "startedAt": 3999, "status": 200, "ok": true, - "finishedAt": 3852, + "finishedAt": 4021, "contentType": "text/javascript", - "resourceTypeHint": "FeedContext.jsx" + "resourceTypeHint": "index.js" }, { "id": "net-168", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/PopularTags/index.js", + "url": "http://127.0.0.1:3000/src/components/ArticlesPreview/index.js", "resourceType": "script", - "startedAt": 3810, + "startedAt": 4001, "status": 200, "ok": true, - "finishedAt": 3852, + "finishedAt": 4020, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, { "id": "net-169", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/ArticlesPagination/index.js", + "url": "http://127.0.0.1:3000/src/hooks/useArticles.js", "resourceType": "script", - "startedAt": 3810, + "startedAt": 4001, "status": 200, "ok": true, - "finishedAt": 3852, + "finishedAt": 4021, "contentType": "text/javascript", - "resourceTypeHint": "index.js" + "resourceTypeHint": "useArticles.js" }, { "id": "net-170", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/ArticlesPreview/index.js", + "url": "http://127.0.0.1:3000/node_modules/.vite/deps/chunk-HYJYOVZJ.js?v=96de0870", "resourceType": "script", - "startedAt": 3811, + "startedAt": 4002, "status": 200, "ok": true, - "finishedAt": 3852, + "finishedAt": 4022, "contentType": "text/javascript", - "resourceTypeHint": "index.js" + "resourceTypeHint": "chunk-HYJYOVZJ.js" }, { "id": "net-171", "method": "GET", - "url": "http://127.0.0.1:3000/src/hooks/useArticles.js", + "url": "http://127.0.0.1:3000/src/components/AuthPageContainer/index.js", "resourceType": "script", - "startedAt": 3811, + "startedAt": 4002, "status": 200, "ok": true, - "finishedAt": 3852, + "finishedAt": 4022, "contentType": "text/javascript", - "resourceTypeHint": "useArticles.js" + "resourceTypeHint": "index.js" }, { "id": "net-172", "method": "GET", - "url": "http://127.0.0.1:3000/node_modules/.vite/deps/chunk-HYJYOVZJ.js?v=96de0870", + "url": "http://127.0.0.1:3000/src/components/LoginForm/index.js", "resourceType": "script", - "startedAt": 3811, + "startedAt": 4002, "status": 200, "ok": true, - "finishedAt": 3852, + "finishedAt": 4026, "contentType": "text/javascript", - "resourceTypeHint": "chunk-HYJYOVZJ.js" + "resourceTypeHint": "index.js" }, { "id": "net-173", "method": "GET", "url": "http://127.0.0.1:3000/src/components/AuthorInfo/index.js", "resourceType": "script", - "startedAt": 3812, + "startedAt": 4002, "status": 200, "ok": true, - "finishedAt": 3853, + "finishedAt": 4026, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, @@ -6568,10 +6203,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/NavItem/index.js", "resourceType": "script", - "startedAt": 3812, + "startedAt": 4003, "status": 200, "ok": true, - "finishedAt": 3856, + "finishedAt": 4029, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, @@ -6580,10 +6215,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/SettingsForm/index.js", "resourceType": "script", - "startedAt": 3812, + "startedAt": 4003, "status": 200, "ok": true, - "finishedAt": 3856, + "finishedAt": 4029, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, @@ -6592,10 +6227,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/SignUpForm/index.js", "resourceType": "script", - "startedAt": 3812, + "startedAt": 4003, "status": 200, "ok": true, - "finishedAt": 3856, + "finishedAt": 4029, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, @@ -6604,10 +6239,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/Footer/Footer.jsx", "resourceType": "script", - "startedAt": 3814, + "startedAt": 4007, "status": 200, "ok": true, - "finishedAt": 3857, + "finishedAt": 4030, "contentType": "text/javascript", "resourceTypeHint": "Footer.jsx" }, @@ -6616,10 +6251,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/Navbar/Navbar.jsx", "resourceType": "script", - "startedAt": 3856, + "startedAt": 4007, "status": 200, "ok": true, - "finishedAt": 3872, + "finishedAt": 4030, "contentType": "text/javascript", "resourceTypeHint": "Navbar.jsx" }, @@ -6628,10 +6263,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/node_modules/.vite/deps/axios.js?v=96de0870", "resourceType": "script", - "startedAt": 3857, + "startedAt": 4008, "status": 200, "ok": true, - "finishedAt": 3874, + "finishedAt": 4031, "contentType": "text/javascript", "resourceTypeHint": "axios.js" }, @@ -6640,94 +6275,94 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/helpers/errorHandler.js", "resourceType": "script", - "startedAt": 3857, + "startedAt": 4008, "status": 200, "ok": true, - "finishedAt": 3872, + "finishedAt": 4030, "contentType": "text/javascript", "resourceTypeHint": "errorHandler.js" }, { "id": "net-181", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/ArticleMeta/ArticleMeta.jsx", + "url": "http://127.0.0.1:3000/src/components/CommentList/CommentList.jsx", "resourceType": "script", - "startedAt": 3857, + "startedAt": 4016, "status": 200, "ok": true, - "finishedAt": 3872, + "finishedAt": 4032, "contentType": "text/javascript", - "resourceTypeHint": "ArticleMeta.jsx" + "resourceTypeHint": "CommentList.jsx" }, { "id": "net-182", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/ArticlesButtons/ArticlesButtons.jsx", + "url": "http://127.0.0.1:3000/src/components/CommentEditor/CommentEditor.jsx", "resourceType": "script", - "startedAt": 3857, + "startedAt": 4017, "status": 200, "ok": true, - "finishedAt": 3873, + "finishedAt": 4032, "contentType": "text/javascript", - "resourceTypeHint": "ArticlesButtons.jsx" + "resourceTypeHint": "CommentEditor.jsx" }, { "id": "net-183", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/ArticleTags/ArticleTags.jsx", + "url": "http://127.0.0.1:3000/src/components/ArticleMeta/ArticleMeta.jsx", "resourceType": "script", - "startedAt": 3857, + "startedAt": 4019, "status": 200, "ok": true, - "finishedAt": 3873, + "finishedAt": 4034, "contentType": "text/javascript", - "resourceTypeHint": "ArticleTags.jsx" + "resourceTypeHint": "ArticleMeta.jsx" }, { "id": "net-184", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/BannerContainer/BannerContainer.jsx", + "url": "http://127.0.0.1:3000/src/components/ArticlesButtons/ArticlesButtons.jsx", "resourceType": "script", - "startedAt": 3858, + "startedAt": 4019, "status": 200, "ok": true, - "finishedAt": 3875, + "finishedAt": 4035, "contentType": "text/javascript", - "resourceTypeHint": "BannerContainer.jsx" + "resourceTypeHint": "ArticlesButtons.jsx" }, { "id": "net-185", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/CommentEditor/CommentEditor.jsx", + "url": "http://127.0.0.1:3000/src/components/ArticleTags/ArticleTags.jsx", "resourceType": "script", - "startedAt": 3858, + "startedAt": 4021, "status": 200, "ok": true, - "finishedAt": 3879, + "finishedAt": 4037, "contentType": "text/javascript", - "resourceTypeHint": "CommentEditor.jsx" + "resourceTypeHint": "ArticleTags.jsx" }, { "id": "net-186", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/CommentList/CommentList.jsx", + "url": "http://127.0.0.1:3000/src/components/BannerContainer/BannerContainer.jsx", "resourceType": "script", - "startedAt": 3858, + "startedAt": 4023, "status": 200, "ok": true, - "finishedAt": 3879, + "finishedAt": 4038, "contentType": "text/javascript", - "resourceTypeHint": "CommentList.jsx" + "resourceTypeHint": "BannerContainer.jsx" }, { "id": "net-187", "method": "GET", "url": "http://127.0.0.1:3000/src/components/ArticleEditorForm/ArticleEditorForm.jsx", "resourceType": "script", - "startedAt": 3858, + "startedAt": 4024, "status": 200, "ok": true, - "finishedAt": 3880, + "finishedAt": 4038, "contentType": "text/javascript", "resourceTypeHint": "ArticleEditorForm.jsx" }, @@ -6736,106 +6371,106 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/ContainerRow/ContainerRow.jsx", "resourceType": "script", - "startedAt": 3859, + "startedAt": 4024, "status": 200, "ok": true, - "finishedAt": 3880, + "finishedAt": 4038, "contentType": "text/javascript", "resourceTypeHint": "ContainerRow.jsx" }, { "id": "net-189", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/AuthPageContainer/AuthPageContainer.jsx", + "url": "http://127.0.0.1:3000/src/components/FeedToggler/FeedToggler.jsx", "resourceType": "script", - "startedAt": 3859, + "startedAt": 4024, "status": 200, "ok": true, - "finishedAt": 3880, + "finishedAt": 4039, "contentType": "text/javascript", - "resourceTypeHint": "AuthPageContainer.jsx" + "resourceTypeHint": "FeedToggler.jsx" }, { "id": "net-190", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/LoginForm/LoginForm.jsx", + "url": "http://127.0.0.1:3000/src/components/PopularTags/PopularTags.jsx", "resourceType": "script", - "startedAt": 3859, + "startedAt": 4027, "status": 200, "ok": true, - "finishedAt": 3883, + "finishedAt": 4041, "contentType": "text/javascript", - "resourceTypeHint": "LoginForm.jsx" + "resourceTypeHint": "PopularTags.jsx" }, { "id": "net-191", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/FeedToggler/FeedToggler.jsx", + "url": "http://127.0.0.1:3000/src/components/ArticlesPreview/ArticlesPreview.jsx", "resourceType": "script", - "startedAt": 3859, + "startedAt": 4027, "status": 200, "ok": true, - "finishedAt": 3883, + "finishedAt": 4041, "contentType": "text/javascript", - "resourceTypeHint": "FeedToggler.jsx" + "resourceTypeHint": "ArticlesPreview.jsx" }, { "id": "net-192", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/PopularTags/PopularTags.jsx", + "url": "http://127.0.0.1:3000/src/components/ArticlesPagination/ArticlesPagination.jsx", "resourceType": "script", - "startedAt": 3859, + "startedAt": 4027, "status": 200, "ok": true, - "finishedAt": 3883, + "finishedAt": 4041, "contentType": "text/javascript", - "resourceTypeHint": "PopularTags.jsx" + "resourceTypeHint": "ArticlesPagination.jsx" }, { "id": "net-193", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/ArticlesPreview/ArticlesPreview.jsx", + "url": "http://127.0.0.1:3000/src/services/getArticles.js", "resourceType": "script", - "startedAt": 3860, + "startedAt": 4028, "status": 200, "ok": true, - "finishedAt": 3883, + "finishedAt": 4041, "contentType": "text/javascript", - "resourceTypeHint": "ArticlesPreview.jsx" + "resourceTypeHint": "getArticles.js" }, { "id": "net-194", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/ArticlesPagination/ArticlesPagination.jsx", + "url": "http://127.0.0.1:3000/src/components/AuthPageContainer/AuthPageContainer.jsx", "resourceType": "script", - "startedAt": 3860, + "startedAt": 4029, "status": 200, "ok": true, - "finishedAt": 3885, + "finishedAt": 4043, "contentType": "text/javascript", - "resourceTypeHint": "ArticlesPagination.jsx" + "resourceTypeHint": "AuthPageContainer.jsx" }, { "id": "net-195", "method": "GET", - "url": "http://127.0.0.1:3000/src/services/getArticles.js", + "url": "http://127.0.0.1:3000/src/components/LoginForm/LoginForm.jsx", "resourceType": "script", - "startedAt": 3860, + "startedAt": 4030, "status": 200, "ok": true, - "finishedAt": 3885, + "finishedAt": 4045, "contentType": "text/javascript", - "resourceTypeHint": "getArticles.js" + "resourceTypeHint": "LoginForm.jsx" }, { "id": "net-196", "method": "GET", "url": "http://127.0.0.1:3000/src/components/AuthorInfo/AuthorInfo.jsx", "resourceType": "script", - "startedAt": 3860, + "startedAt": 4030, "status": 200, "ok": true, - "finishedAt": 3887, + "finishedAt": 4046, "contentType": "text/javascript", "resourceTypeHint": "AuthorInfo.jsx" }, @@ -6844,10 +6479,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/NavItem/NavItem.jsx", "resourceType": "script", - "startedAt": 3860, + "startedAt": 4031, "status": 200, "ok": true, - "finishedAt": 3888, + "finishedAt": 4046, "contentType": "text/javascript", "resourceTypeHint": "NavItem.jsx" }, @@ -6856,10 +6491,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/SettingsForm/SettingsForm.jsx", "resourceType": "script", - "startedAt": 3861, + "startedAt": 4031, "status": 200, "ok": true, - "finishedAt": 3888, + "finishedAt": 4046, "contentType": "text/javascript", "resourceTypeHint": "SettingsForm.jsx" }, @@ -6868,10 +6503,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/SignUpForm/SignUpForm.jsx", "resourceType": "script", - "startedAt": 3861, + "startedAt": 4032, "status": 200, "ok": true, - "finishedAt": 3889, + "finishedAt": 4050, "contentType": "text/javascript", "resourceTypeHint": "SignUpForm.jsx" }, @@ -6880,10 +6515,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/SourceCodeLink/index.js", "resourceType": "script", - "startedAt": 3861, + "startedAt": 4032, "status": 200, "ok": true, - "finishedAt": 3888, + "finishedAt": 4052, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, @@ -6892,10 +6527,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/Navbar/DropdownMenu.jsx", "resourceType": "script", - "startedAt": 3875, + "startedAt": 4032, "status": 200, "ok": true, - "finishedAt": 3891, + "finishedAt": 4052, "contentType": "text/javascript", "resourceTypeHint": "DropdownMenu.jsx" }, @@ -6904,118 +6539,118 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/helpers/dateFormatter.js", "resourceType": "script", - "startedAt": 3876, + "startedAt": 4034, "status": 200, "ok": true, - "finishedAt": 3891, + "finishedAt": 4053, "contentType": "text/javascript", "resourceTypeHint": "dateFormatter.js" }, { "id": "net-203", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/Avatar/index.js", + "url": "http://127.0.0.1:3000/src/services/deleteComment.js", "resourceType": "script", - "startedAt": 3876, + "startedAt": 4034, "status": 200, "ok": true, - "finishedAt": 3892, + "finishedAt": 4054, "contentType": "text/javascript", - "resourceTypeHint": "index.js" + "resourceTypeHint": "deleteComment.js" }, { "id": "net-204", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/ArticleAuthorButtons/index.js", + "url": "http://127.0.0.1:3000/src/services/getComments.js", "resourceType": "script", - "startedAt": 3876, + "startedAt": 4035, "status": 200, "ok": true, - "finishedAt": 3892, + "finishedAt": 4054, "contentType": "text/javascript", - "resourceTypeHint": "index.js" + "resourceTypeHint": "getComments.js" }, { "id": "net-205", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/FavButton/index.js", + "url": "http://127.0.0.1:3000/src/components/CommentList/CommentAuthor.jsx", "resourceType": "script", - "startedAt": 3878, + "startedAt": 4035, "status": 200, "ok": true, - "finishedAt": 3893, + "finishedAt": 4055, "contentType": "text/javascript", - "resourceTypeHint": "index.js" + "resourceTypeHint": "CommentAuthor.jsx" }, { "id": "net-206", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/FollowButton/index.js", + "url": "http://127.0.0.1:3000/src/services/postComment.js", "resourceType": "script", - "startedAt": 3879, + "startedAt": 4035, "status": 200, "ok": true, - "finishedAt": 3893, + "finishedAt": 4055, "contentType": "text/javascript", - "resourceTypeHint": "index.js" + "resourceTypeHint": "postComment.js" }, { "id": "net-207", "method": "GET", - "url": "http://127.0.0.1:3000/src/services/postComment.js", + "url": "http://127.0.0.1:3000/src/components/Avatar/index.js", "resourceType": "script", - "startedAt": 3883, + "startedAt": 4035, "status": 200, "ok": true, - "finishedAt": 3895, + "finishedAt": 4057, "contentType": "text/javascript", - "resourceTypeHint": "postComment.js" + "resourceTypeHint": "index.js" }, { "id": "net-208", "method": "GET", - "url": "http://127.0.0.1:3000/src/services/deleteComment.js", + "url": "http://127.0.0.1:3000/src/components/ArticleAuthorButtons/index.js", "resourceType": "script", - "startedAt": 3884, + "startedAt": 4036, "status": 200, "ok": true, - "finishedAt": 3896, + "finishedAt": 4057, "contentType": "text/javascript", - "resourceTypeHint": "deleteComment.js" + "resourceTypeHint": "index.js" }, { "id": "net-209", "method": "GET", - "url": "http://127.0.0.1:3000/src/services/getComments.js", + "url": "http://127.0.0.1:3000/src/components/FavButton/index.js", "resourceType": "script", - "startedAt": 3884, + "startedAt": 4036, "status": 200, "ok": true, - "finishedAt": 3896, + "finishedAt": 4057, "contentType": "text/javascript", - "resourceTypeHint": "getComments.js" + "resourceTypeHint": "index.js" }, { "id": "net-210", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/CommentList/CommentAuthor.jsx", + "url": "http://127.0.0.1:3000/src/components/FollowButton/index.js", "resourceType": "script", - "startedAt": 3884, + "startedAt": 4037, "status": 200, "ok": true, - "finishedAt": 3897, + "finishedAt": 4057, "contentType": "text/javascript", - "resourceTypeHint": "CommentAuthor.jsx" + "resourceTypeHint": "index.js" }, { "id": "net-211", "method": "GET", "url": "http://127.0.0.1:3000/src/services/setArticle.js", "resourceType": "script", - "startedAt": 3884, + "startedAt": 4038, "status": 200, "ok": true, - "finishedAt": 3898, + "finishedAt": 4057, "contentType": "text/javascript", "resourceTypeHint": "setArticle.js" }, @@ -7024,34 +6659,34 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/FormFieldset/index.js", "resourceType": "script", - "startedAt": 3885, + "startedAt": 4039, "status": 200, "ok": true, - "finishedAt": 3898, + "finishedAt": 4057, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, { "id": "net-213", "method": "GET", - "url": "http://127.0.0.1:3000/src/services/userLogin.js", + "url": "http://127.0.0.1:3000/src/components/FeedToggler/FeedNavLink.jsx", "resourceType": "script", - "startedAt": 3885, + "startedAt": 4039, "status": 200, "ok": true, - "finishedAt": 3898, + "finishedAt": 4059, "contentType": "text/javascript", - "resourceTypeHint": "userLogin.js" + "resourceTypeHint": "FeedNavLink.jsx" }, { "id": "net-214", "method": "GET", "url": "http://127.0.0.1:3000/src/services/getTags.js", "resourceType": "script", - "startedAt": 3885, + "startedAt": 4041, "status": 200, "ok": true, - "finishedAt": 3899, + "finishedAt": 4059, "contentType": "text/javascript", "resourceTypeHint": "getTags.js" }, @@ -7060,46 +6695,46 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/PopularTags/TagButton.jsx", "resourceType": "script", - "startedAt": 3885, + "startedAt": 4041, "status": 200, "ok": true, - "finishedAt": 3899, + "finishedAt": 4060, "contentType": "text/javascript", "resourceTypeHint": "TagButton.jsx" }, { "id": "net-216", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/FeedToggler/FeedNavLink.jsx", + "url": "http://127.0.0.1:3000/node_modules/.vite/deps/react-paginate.js?v=96de0870", "resourceType": "script", - "startedAt": 3888, + "startedAt": 4041, "status": 200, "ok": true, - "finishedAt": 3901, + "finishedAt": 4060, "contentType": "text/javascript", - "resourceTypeHint": "FeedNavLink.jsx" + "resourceTypeHint": "react-paginate.js" }, { "id": "net-217", "method": "GET", - "url": "http://127.0.0.1:3000/node_modules/.vite/deps/react-paginate.js?v=96de0870", + "url": "http://127.0.0.1:3000/src/services/userLogin.js", "resourceType": "script", - "startedAt": 3888, + "startedAt": 4050, "status": 200, "ok": true, - "finishedAt": 3902, + "finishedAt": 4061, "contentType": "text/javascript", - "resourceTypeHint": "react-paginate.js" + "resourceTypeHint": "userLogin.js" }, { "id": "net-218", "method": "GET", "url": "http://127.0.0.1:3000/src/services/getProfile.js", "resourceType": "script", - "startedAt": 3888, + "startedAt": 4050, "status": 200, "ok": true, - "finishedAt": 3902, + "finishedAt": 4061, "contentType": "text/javascript", "resourceTypeHint": "getProfile.js" }, @@ -7108,46 +6743,46 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/services/userUpdate.js", "resourceType": "script", - "startedAt": 3889, + "startedAt": 4051, "status": 200, "ok": true, - "finishedAt": 3903, + "finishedAt": 4063, "contentType": "text/javascript", "resourceTypeHint": "userUpdate.js" }, { "id": "net-220", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/SourceCodeLink/SourceCodeLink.jsx", + "url": "http://127.0.0.1:3000/src/services/userSignUp.js", "resourceType": "script", - "startedAt": 3889, + "startedAt": 4055, "status": 200, "ok": true, - "finishedAt": 3904, + "finishedAt": 4063, "contentType": "text/javascript", - "resourceTypeHint": "SourceCodeLink.jsx" + "resourceTypeHint": "userSignUp.js" }, { "id": "net-221", "method": "GET", - "url": "http://127.0.0.1:3000/src/services/userSignUp.js", + "url": "http://127.0.0.1:3000/src/components/SourceCodeLink/SourceCodeLink.jsx", "resourceType": "script", - "startedAt": 3889, + "startedAt": 4059, "status": 200, "ok": true, - "finishedAt": 3904, + "finishedAt": 4068, "contentType": "text/javascript", - "resourceTypeHint": "userSignUp.js" + "resourceTypeHint": "SourceCodeLink.jsx" }, { "id": "net-222", "method": "GET", "url": "http://127.0.0.1:3000/src/services/userLogout.js", "resourceType": "script", - "startedAt": 3892, + "startedAt": 4060, "status": 200, "ok": true, - "finishedAt": 3904, + "finishedAt": 4067, "contentType": "text/javascript", "resourceTypeHint": "userLogout.js" }, @@ -7156,10 +6791,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/Navbar/DropdownItem.jsx", "resourceType": "script", - "startedAt": 3892, + "startedAt": 4060, "status": 200, "ok": true, - "finishedAt": 3905, + "finishedAt": 4068, "contentType": "text/javascript", "resourceTypeHint": "DropdownItem.jsx" }, @@ -7168,10 +6803,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/Avatar/Avatar.jsx", "resourceType": "script", - "startedAt": 3892, + "startedAt": 4061, "status": 200, "ok": true, - "finishedAt": 3905, + "finishedAt": 4068, "contentType": "text/javascript", "resourceTypeHint": "Avatar.jsx" }, @@ -7180,10 +6815,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/ArticleAuthorButtons/ArticleAuthorButtons.jsx", "resourceType": "script", - "startedAt": 3892, + "startedAt": 4061, "status": 200, "ok": true, - "finishedAt": 3905, + "finishedAt": 4069, "contentType": "text/javascript", "resourceTypeHint": "ArticleAuthorButtons.jsx" }, @@ -7192,10 +6827,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/FavButton/FavButton.jsx", "resourceType": "script", - "startedAt": 3893, + "startedAt": 4061, "status": 200, "ok": true, - "finishedAt": 3905, + "finishedAt": 4070, "contentType": "text/javascript", "resourceTypeHint": "FavButton.jsx" }, @@ -7204,10 +6839,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/FollowButton/FollowButton.jsx", "resourceType": "script", - "startedAt": 3893, + "startedAt": 4062, "status": 200, "ok": true, - "finishedAt": 3905, + "finishedAt": 4070, "contentType": "text/javascript", "resourceTypeHint": "FollowButton.jsx" }, @@ -7216,10 +6851,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/FormFieldset/FormFieldset.jsx", "resourceType": "script", - "startedAt": 3900, + "startedAt": 4063, "status": 200, "ok": true, - "finishedAt": 3907, + "finishedAt": 4070, "contentType": "text/javascript", "resourceTypeHint": "FormFieldset.jsx" }, @@ -7228,10 +6863,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/assets/smiley-cyrus.jpeg?import", "resourceType": "script", - "startedAt": 3906, + "startedAt": 4069, "status": 200, "ok": true, - "finishedAt": 3911, + "finishedAt": 4074, "contentType": "text/javascript", "resourceTypeHint": "smiley-cyrus.jpeg" }, @@ -7240,10 +6875,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/services/deleteArticle.js", "resourceType": "script", - "startedAt": 3906, + "startedAt": 4070, "status": 200, "ok": true, - "finishedAt": 3911, + "finishedAt": 4074, "contentType": "text/javascript", "resourceTypeHint": "deleteArticle.js" }, @@ -7252,10 +6887,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/services/toggleFav.js", "resourceType": "script", - "startedAt": 3906, + "startedAt": 4071, "status": 200, "ok": true, - "finishedAt": 3911, + "finishedAt": 4074, "contentType": "text/javascript", "resourceTypeHint": "toggleFav.js" }, @@ -7264,10 +6899,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/services/toggleFollow.js", "resourceType": "script", - "startedAt": 3907, + "startedAt": 4071, "status": 200, "ok": true, - "finishedAt": 3912, + "finishedAt": 4075, "contentType": "text/javascript", "resourceTypeHint": "toggleFollow.js" }, @@ -7276,10 +6911,10 @@ "method": "GET", "url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdu.woff2", "resourceType": "font", - "startedAt": 3923, + "startedAt": 4088, "status": 200, "ok": true, - "finishedAt": 3968, + "finishedAt": 4135, "contentType": "font/woff2", "resourceTypeHint": "6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdu.woff2" }, @@ -7288,10 +6923,10 @@ "method": "GET", "url": "https://code.ionicframework.com/ionicons/2.0.1/fonts/ionicons.ttf?v=2.0.1", "resourceType": "font", - "startedAt": 3924, + "startedAt": 4089, "status": 200, "ok": true, - "finishedAt": 4010, + "finishedAt": 4195, "contentType": "font/ttf", "resourceTypeHint": "ionicons.ttf" }, @@ -7300,10 +6935,10 @@ "method": "GET", "url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7l.woff2", "resourceType": "font", - "startedAt": 3924, + "startedAt": 4090, "status": 200, "ok": true, - "finishedAt": 3970, + "finishedAt": 4135, "contentType": "font/woff2", "resourceTypeHint": "6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7l.woff2" }, @@ -7312,10 +6947,10 @@ "method": "GET", "url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7nsDI.woff2", "resourceType": "font", - "startedAt": 3925, + "startedAt": 4090, "status": 200, "ok": true, - "finishedAt": 3971, + "finishedAt": 4135, "contentType": "font/woff2", "resourceTypeHint": "6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7nsDI.woff2" } @@ -7324,7 +6959,7 @@ { "type": "error", "text": "Failed to load resource: the server responded with a status of 404 (Not Found)", - "at": 1686 + "at": 1737 } ], "pageErrors": [], @@ -7334,7 +6969,7 @@ "selector": "body > div > main > div > div > div > div > form > fieldset:nth-of-type(1) > input", "name": "email", "type": "email", - "value": "rd-rd_test_74ef2d_1@example.test", + "value": "rd-rd_test_1a4c53_1@example.test", "redacted": false }, { @@ -7357,14 +6992,14 @@ "weight": 60, "matchCount": 2, "visibleCount": 2, - "elapsedMs": 7 + "elapsedMs": 2 }, { "strategy": "css", "weight": 35, "matchCount": 1, "visibleCount": 1, - "elapsedMs": 4 + "elapsedMs": 2 } ], "chosenStrategy": "css", @@ -7372,7 +7007,7 @@ "retryCount": 0 }, "before": { - "at": 1421, + "at": 1483, "url": "http://127.0.0.1:3000/#/login", "title": "Conduit", "domHash": "c659be8900b0e706", @@ -7452,10 +7087,10 @@ ] }, "beforeAction": { - "at": 1456, + "at": 1507, "url": "http://127.0.0.1:3000/#/login", "title": "Conduit", - "domHash": "49dd4f839f87f4a0", + "domHash": "932c982eeada2c97", "canaryPresent": true, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -7475,7 +7110,7 @@ "tag": "input", "type": "email", "name": "email", - "valueHash": "b1059e4095f10c95", + "valueHash": "ba10135e838abbd2", "checked": false, "disabled": false, "visible": true @@ -7512,10 +7147,10 @@ "networkSettled": true, "targetBusyAfter": false, "after": { - "at": 2693, + "at": 2741, "url": "http://127.0.0.1:3000/#/login", "title": "Conduit", - "domHash": "dc077441b504c97e", + "domHash": "5e7c4e2431c36a4d", "canaryPresent": true, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -7535,7 +7170,7 @@ "tag": "input", "type": "email", "name": "email", - "valueHash": "b1059e4095f10c95", + "valueHash": "ba10135e838abbd2", "checked": false, "disabled": false, "visible": true @@ -7595,22 +7230,22 @@ "webSockets": [ { "url": "ws://127.0.0.1:3000/?token=%5BREDACTED%5D", - "openedAt": 2869, + "openedAt": 3091, "sentFrames": 0, "receivedFrames": 1, "errors": [], - "closedAt": 3762 + "closedAt": 3955 }, { "url": "ws://127.0.0.1:3000/?token=%5BREDACTED%5D", - "openedAt": 3861, + "openedAt": 4060, "sentFrames": 0, "receivedFrames": 1, "errors": [] } ], "afterRefresh": { - "at": 3724, + "at": 3920, "url": "http://127.0.0.1:3000/#/login", "title": "Conduit", "domHash": "c659be8900b0e706", @@ -7668,7 +7303,7 @@ }, "refreshScreenshot": "screenshots/fd4121f2d18b-refresh.png", "afterHardRefresh": { - "at": 4753, + "at": 4901, "url": "http://127.0.0.1:3000/#/login", "title": "Conduit", "domHash": "c659be8900b0e706", @@ -7725,7 +7360,7 @@ } }, "afterNewTab": { - "at": 5832, + "at": 5941, "url": "http://127.0.0.1:3000/#/login", "title": "Conduit", "domHash": "c659be8900b0e706", @@ -7782,7 +7417,7 @@ } }, "afterNewContext": { - "at": 7079, + "at": 7251, "url": "http://127.0.0.1:3000/#/login", "title": "Conduit", "domHash": "c659be8900b0e706", @@ -7839,7 +7474,6 @@ } }, "persistenceScope": "MEMORY_ONLY", - "trace": "traces/fd4121f2d18b.zip", "sourceDiffs": [ { "adapter": "postgresql", @@ -7870,7 +7504,7 @@ } ], "sourceSnapshotErrors": [], - "snapshotIndex": "snapshots/RD-016.index.json" + "snapshotIndex": "snapshots/RD-011.index.json" }, "verdict": "UNCERTAIN", "evidenceLevel": 2, @@ -7878,7 +7512,7 @@ "detectorMatches": [] }, { - "id": "RD-017", + "id": "RD-012", "action": { "id": "705fc8947a53", "pageUrl": "http://127.0.0.1:3000/#/login", @@ -7931,31 +7565,31 @@ "fields": [] }, "evidence": { - "startedAt": "2026-07-23T15:01:51.701Z", - "durationMs": 2425, - "canary": "RD_TEST_61C15A", + "startedAt": "2026-07-26T08:31:22.525Z", + "durationMs": 2480, + "canary": "RD_TEST_6A3B94", "network": [ { "id": "net-1", "method": "GET", "url": "http://127.0.0.1:3000/api/articles?limit=3&&offset=0", "resourceType": "xhr", - "startedAt": 1465, + "startedAt": 1505, "status": 200, "ok": true, - "finishedAt": 1479, "contentType": "application/json", - "resourceTypeHint": "articles" + "resourceTypeHint": "articles", + "finishedAt": 1517 }, { "id": "net-2", "method": "GET", "url": "http://127.0.0.1:3000/api/tags", "resourceType": "xhr", - "startedAt": 1466, + "startedAt": 1505, "status": 200, "ok": true, - "finishedAt": 1479, + "finishedAt": 1518, "contentType": "application/json", "resourceTypeHint": "tags" }, @@ -7964,10 +7598,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/api/articles?limit=3&&offset=0", "resourceType": "xhr", - "startedAt": 1467, + "startedAt": 1506, "status": 200, "ok": true, - "finishedAt": 1480, + "finishedAt": 1519, "contentType": "application/json", "resourceTypeHint": "articles" }, @@ -7976,10 +7610,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/api/tags", "resourceType": "xhr", - "startedAt": 1467, + "startedAt": 1506, "status": 200, "ok": true, - "finishedAt": 1480, + "finishedAt": 1519, "contentType": "application/json", "resourceTypeHint": "tags" } @@ -8000,35 +7634,35 @@ "weight": 92, "matchCount": 2, "visibleCount": 2, - "elapsedMs": 8 + "elapsedMs": 5 }, { "strategy": "role", "weight": 82, "matchCount": 2, "visibleCount": 2, - "elapsedMs": 6 + "elapsedMs": 3 }, { "strategy": "href", "weight": 72, "matchCount": 0, "visibleCount": 0, - "elapsedMs": 2 + "elapsedMs": 1 }, { "strategy": "text", "weight": 60, "matchCount": 2, "visibleCount": 2, - "elapsedMs": 5 + "elapsedMs": 2 }, { "strategy": "css", "weight": 35, "matchCount": 1, "visibleCount": 1, - "elapsedMs": 4 + "elapsedMs": 2 } ], "chosenStrategy": "css", @@ -8036,7 +7670,7 @@ "retryCount": 0 }, "before": { - "at": 1428, + "at": 1463, "url": "http://127.0.0.1:3000/#/login", "title": "Conduit", "domHash": "c659be8900b0e706", @@ -8093,7 +7727,7 @@ } }, "beforeAction": { - "at": 1436, + "at": 1470, "url": "http://127.0.0.1:3000/#/login", "title": "Conduit", "domHash": "c659be8900b0e706", @@ -8152,7 +7786,7 @@ "networkSettled": true, "targetBusyAfter": false, "after": { - "at": 2421, + "at": 2477, "url": "http://127.0.0.1:3000/#/", "title": "Conduit", "domHash": "3c44d4d1ff59317a", @@ -8190,7 +7824,7 @@ "indexedDb": [] } }, - "snapshotIndex": "snapshots/RD-017.index.json" + "snapshotIndex": "snapshots/RD-012.index.json" }, "verdict": "VERIFIED", "evidenceLevel": 2, @@ -8198,303 +7832,157 @@ "detectorMatches": [] }, { - "id": "RD-018", + "id": "RD-013", "action": { - "id": "05734be5adff", - "pageUrl": "http://127.0.0.1:3000/#/login", - "label": "Thinkster", + "id": "4c3238860432", + "pageUrl": "http://127.0.0.1:3000/#/register", + "label": "conduit", "activation": "click", "kind": "navigation", "intent": "navigate", "risk": "safe", "fingerprint": { - "selector": "body > div > footer > div > span > a", + "selector": "body > div > header > nav > div > a", "tag": "a", - "ordinal": 8, + "ordinal": 0, "role": "link", - "accessibleName": "Thinkster", - "text": "Thinkster", - "href": "https://thinkster.io/", + "accessibleName": "conduit", + "text": "conduit", + "href": "http://127.0.0.1:3000/#/", "candidates": [ { "strategy": "role", "weight": 92, "role": "link", - "name": "Thinkster", + "name": "conduit", "exact": true }, { "strategy": "role", "weight": 82, "role": "link", - "name": "Thinkster", + "name": "conduit", "exact": false }, { "strategy": "href", "weight": 72, - "value": "https://thinkster.io/" + "value": "http://127.0.0.1:3000/#/" }, { "strategy": "text", "weight": 60, - "value": "Thinkster", + "value": "conduit", "exact": true }, { "strategy": "css", "weight": 35, - "selector": "body > div > footer > div > span > a" + "selector": "body > div > header > nav > div > a" } ] }, "fields": [] }, - "verdict": "SKIPPED", - "evidenceLevel": 0, - "reason": "Cross-origin navigation blocked by the default safety policy. Use --allow-external explicitly.", - "skippedReason": "Cross-origin navigation blocked by the default safety policy. Use --allow-external explicitly.", - "detectorMatches": [], "evidence": { - "startedAt": "", - "durationMs": 0, - "canary": "", - "network": [], + "startedAt": "2026-07-26T08:31:25.007Z", + "durationMs": 2501, + "canary": "RD_TEST_66BC02", + "network": [ + { + "id": "net-1", + "method": "GET", + "url": "http://127.0.0.1:3000/api/articles?limit=3&&offset=0", + "resourceType": "xhr", + "startedAt": 1521, + "status": 200, + "ok": true, + "finishedAt": 1537, + "contentType": "application/json", + "resourceTypeHint": "articles" + }, + { + "id": "net-2", + "method": "GET", + "url": "http://127.0.0.1:3000/api/tags", + "resourceType": "xhr", + "startedAt": 1522, + "status": 200, + "ok": true, + "finishedAt": 1536, + "contentType": "application/json", + "resourceTypeHint": "tags" + }, + { + "id": "net-3", + "method": "GET", + "url": "http://127.0.0.1:3000/api/articles?limit=3&&offset=0", + "resourceType": "xhr", + "startedAt": 1523, + "status": 200, + "ok": true, + "finishedAt": 1537, + "contentType": "application/json", + "resourceTypeHint": "articles" + }, + { + "id": "net-4", + "method": "GET", + "url": "http://127.0.0.1:3000/api/tags", + "resourceType": "xhr", + "startedAt": 1523, + "status": 200, + "ok": true, + "finishedAt": 1536, + "contentType": "application/json", + "resourceTypeHint": "tags" + } + ], "console": [], "pageErrors": [], "uiClaims": [], "filledFields": [], "dialogs": [], "downloads": [], + "downloadEvidence": [], + "uploads": [], "popupUrls": [], - "snapshotIndex": "snapshots/RD-018.index.json" - } - }, - { - "id": "RD-019", - "action": { - "id": "d84c94c719e0", - "pageUrl": "http://127.0.0.1:3000/#/login", - "label": "Source code", - "activation": "click", - "kind": "navigation", - "intent": "navigate", - "risk": "safe", - "fingerprint": { - "selector": "body > div > footer > div > ul > li > a", - "tag": "a", - "ordinal": 9, - "role": "link", - "accessibleName": "Source code", - "text": "Source code", - "href": "https://github.com/TonyMckes/conduit-realworld-example-app", - "candidates": [ + "locatorResolution": { + "attempts": [ { "strategy": "role", "weight": 92, - "role": "link", - "name": "Source code", - "exact": true - }, - { - "strategy": "role", - "weight": 82, - "role": "link", - "name": "Source code", - "exact": false - }, - { - "strategy": "href", - "weight": 72, - "value": "https://github.com/TonyMckes/conduit-realworld-example-app" - }, - { - "strategy": "text", - "weight": 60, - "value": "Source code", - "exact": true - }, - { - "strategy": "css", - "weight": 35, - "selector": "body > div > footer > div > ul > li > a" - } - ] - }, - "fields": [] - }, - "verdict": "SKIPPED", - "evidenceLevel": 0, - "reason": "Cross-origin navigation blocked by the default safety policy. Use --allow-external explicitly.", - "skippedReason": "Cross-origin navigation blocked by the default safety policy. Use --allow-external explicitly.", - "detectorMatches": [], - "evidence": { - "startedAt": "", - "durationMs": 0, - "canary": "", - "network": [], - "console": [], - "pageErrors": [], - "uiClaims": [], - "filledFields": [], - "dialogs": [], - "downloads": [], - "popupUrls": [], - "snapshotIndex": "snapshots/RD-019.index.json" - } - }, - { - "id": "RD-020", - "action": { - "id": "4c3238860432", - "pageUrl": "http://127.0.0.1:3000/#/register", - "label": "conduit", - "activation": "click", - "kind": "navigation", - "intent": "navigate", - "risk": "safe", - "fingerprint": { - "selector": "body > div > header > nav > div > a", - "tag": "a", - "ordinal": 0, - "role": "link", - "accessibleName": "conduit", - "text": "conduit", - "href": "http://127.0.0.1:3000/#/", - "candidates": [ - { - "strategy": "role", - "weight": 92, - "role": "link", - "name": "conduit", - "exact": true - }, - { - "strategy": "role", - "weight": 82, - "role": "link", - "name": "conduit", - "exact": false - }, - { - "strategy": "href", - "weight": 72, - "value": "http://127.0.0.1:3000/#/" - }, - { - "strategy": "text", - "weight": 60, - "value": "conduit", - "exact": true - }, - { - "strategy": "css", - "weight": 35, - "selector": "body > div > header > nav > div > a" - } - ] - }, - "fields": [] - }, - "evidence": { - "startedAt": "2026-07-23T15:01:54.165Z", - "durationMs": 2493, - "canary": "RD_TEST_517E3C", - "network": [ - { - "id": "net-1", - "method": "GET", - "url": "http://127.0.0.1:3000/api/articles?limit=3&&offset=0", - "resourceType": "xhr", - "startedAt": 1506, - "status": 200, - "ok": true, - "finishedAt": 1518, - "contentType": "application/json", - "resourceTypeHint": "articles" - }, - { - "id": "net-2", - "method": "GET", - "url": "http://127.0.0.1:3000/api/tags", - "resourceType": "xhr", - "startedAt": 1507, - "status": 200, - "ok": true, - "contentType": "application/json", - "resourceTypeHint": "tags", - "finishedAt": 1517 - }, - { - "id": "net-3", - "method": "GET", - "url": "http://127.0.0.1:3000/api/articles?limit=3&&offset=0", - "resourceType": "xhr", - "startedAt": 1507, - "status": 200, - "ok": true, - "finishedAt": 1519, - "contentType": "application/json", - "resourceTypeHint": "articles" - }, - { - "id": "net-4", - "method": "GET", - "url": "http://127.0.0.1:3000/api/tags", - "resourceType": "xhr", - "startedAt": 1507, - "status": 200, - "ok": true, - "finishedAt": 1517, - "contentType": "application/json", - "resourceTypeHint": "tags" - } - ], - "console": [], - "pageErrors": [], - "uiClaims": [], - "filledFields": [], - "dialogs": [], - "downloads": [], - "downloadEvidence": [], - "uploads": [], - "popupUrls": [], - "locatorResolution": { - "attempts": [ - { - "strategy": "role", - "weight": 92, - "matchCount": 2, - "visibleCount": 2, - "elapsedMs": 8 + "matchCount": 2, + "visibleCount": 2, + "elapsedMs": 5 }, { "strategy": "role", "weight": 82, "matchCount": 2, "visibleCount": 2, - "elapsedMs": 6 + "elapsedMs": 3 }, { "strategy": "href", "weight": 72, "matchCount": 0, "visibleCount": 0, - "elapsedMs": 2 + "elapsedMs": 1 }, { "strategy": "text", "weight": 60, "matchCount": 2, "visibleCount": 2, - "elapsedMs": 5 + "elapsedMs": 3 }, { "strategy": "css", "weight": 35, "matchCount": 1, "visibleCount": 1, - "elapsedMs": 4 + "elapsedMs": 2 } ], "chosenStrategy": "css", @@ -8502,7 +7990,7 @@ "retryCount": 0 }, "before": { - "at": 1464, + "at": 1490, "url": "http://127.0.0.1:3000/#/register", "title": "Conduit", "domHash": "1f4fa65964895f4c", @@ -8568,7 +8056,7 @@ } }, "beforeAction": { - "at": 1472, + "at": 1497, "url": "http://127.0.0.1:3000/#/register", "title": "Conduit", "domHash": "1f4fa65964895f4c", @@ -8636,7 +8124,7 @@ "networkSettled": true, "targetBusyAfter": false, "after": { - "at": 2489, + "at": 2498, "url": "http://127.0.0.1:3000/#/", "title": "Conduit", "domHash": "3c44d4d1ff59317a", @@ -8674,7 +8162,7 @@ "indexedDb": [] } }, - "snapshotIndex": "snapshots/RD-020.index.json" + "snapshotIndex": "snapshots/RD-013.index.json" }, "verdict": "VERIFIED", "evidenceLevel": 2, @@ -8682,80 +8170,7 @@ "detectorMatches": [] }, { - "id": "RD-021", - "action": { - "id": "213b072ec36e", - "pageUrl": "http://127.0.0.1:3000/#/register", - "label": "Source code", - "activation": "click", - "kind": "navigation", - "intent": "navigate", - "risk": "safe", - "fingerprint": { - "selector": "body > div > header > nav > div > ul:nth-of-type(1) > li > a", - "tag": "a", - "ordinal": 1, - "role": "link", - "accessibleName": "Source code", - "text": "Source code", - "href": "https://github.com/TonyMckes/conduit-realworld-example-app", - "candidates": [ - { - "strategy": "role", - "weight": 92, - "role": "link", - "name": "Source code", - "exact": true - }, - { - "strategy": "role", - "weight": 82, - "role": "link", - "name": "Source code", - "exact": false - }, - { - "strategy": "href", - "weight": 72, - "value": "https://github.com/TonyMckes/conduit-realworld-example-app" - }, - { - "strategy": "text", - "weight": 60, - "value": "Source code", - "exact": true - }, - { - "strategy": "css", - "weight": 35, - "selector": "body > div > header > nav > div > ul:nth-of-type(1) > li > a" - } - ] - }, - "fields": [] - }, - "verdict": "SKIPPED", - "evidenceLevel": 0, - "reason": "Cross-origin navigation blocked by the default safety policy. Use --allow-external explicitly.", - "skippedReason": "Cross-origin navigation blocked by the default safety policy. Use --allow-external explicitly.", - "detectorMatches": [], - "evidence": { - "startedAt": "", - "durationMs": 0, - "canary": "", - "network": [], - "console": [], - "pageErrors": [], - "uiClaims": [], - "filledFields": [], - "dialogs": [], - "downloads": [], - "popupUrls": [], - "snapshotIndex": "snapshots/RD-021.index.json" - } - }, - { - "id": "RD-022", + "id": "RD-014", "action": { "id": "e98ea4d042a5", "pageUrl": "http://127.0.0.1:3000/#/register", @@ -8808,19 +8223,19 @@ "fields": [] }, "evidence": { - "startedAt": "2026-07-23T15:01:56.690Z", - "durationMs": 2407, - "canary": "RD_TEST_EC0085", + "startedAt": "2026-07-26T08:31:27.510Z", + "durationMs": 2492, + "canary": "RD_TEST_D27D78", "network": [ { "id": "net-1", "method": "GET", "url": "http://127.0.0.1:3000/api/articles?limit=3&&offset=0", "resourceType": "xhr", - "startedAt": 1426, + "startedAt": 1503, "status": 200, "ok": true, - "finishedAt": 1435, + "finishedAt": 1515, "contentType": "application/json", "resourceTypeHint": "articles" }, @@ -8829,22 +8244,22 @@ "method": "GET", "url": "http://127.0.0.1:3000/api/tags", "resourceType": "xhr", - "startedAt": 1427, + "startedAt": 1504, "status": 200, "ok": true, + "finishedAt": 1515, "contentType": "application/json", - "resourceTypeHint": "tags", - "finishedAt": 1435 + "resourceTypeHint": "tags" }, { "id": "net-3", "method": "GET", "url": "http://127.0.0.1:3000/api/articles?limit=3&&offset=0", "resourceType": "xhr", - "startedAt": 1427, + "startedAt": 1504, "status": 200, "ok": true, - "finishedAt": 1437, + "finishedAt": 1516, "contentType": "application/json", "resourceTypeHint": "articles" }, @@ -8853,10 +8268,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/api/tags", "resourceType": "xhr", - "startedAt": 1427, + "startedAt": 1504, "status": 200, "ok": true, - "finishedAt": 1436, + "finishedAt": 1515, "contentType": "application/json", "resourceTypeHint": "tags" } @@ -8877,14 +8292,14 @@ "weight": 92, "matchCount": 0, "visibleCount": 0, - "elapsedMs": 3 + "elapsedMs": 1 }, { "strategy": "role", "weight": 82, "matchCount": 1, "visibleCount": 1, - "elapsedMs": 5 + "elapsedMs": 3 } ], "chosenStrategy": "role", @@ -8892,7 +8307,7 @@ "retryCount": 0 }, "before": { - "at": 1389, + "at": 1471, "url": "http://127.0.0.1:3000/#/register", "title": "Conduit", "domHash": "1f4fa65964895f4c", @@ -8958,7 +8373,7 @@ } }, "beforeAction": { - "at": 1398, + "at": 1477, "url": "http://127.0.0.1:3000/#/register", "title": "Conduit", "domHash": "1f4fa65964895f4c", @@ -9026,7 +8441,7 @@ "networkSettled": true, "targetBusyAfter": false, "after": { - "at": 2403, + "at": 2489, "url": "http://127.0.0.1:3000/#/", "title": "Conduit", "domHash": "3c44d4d1ff59317a", @@ -9064,7 +8479,7 @@ "indexedDb": [] } }, - "snapshotIndex": "snapshots/RD-022.index.json" + "snapshotIndex": "snapshots/RD-014.index.json" }, "verdict": "VERIFIED", "evidenceLevel": 2, @@ -9072,7 +8487,7 @@ "detectorMatches": [] }, { - "id": "RD-023", + "id": "RD-015", "action": { "id": "34267b8ce9b3", "pageUrl": "http://127.0.0.1:3000/#/register", @@ -9125,9 +8540,9 @@ "fields": [] }, "evidence": { - "startedAt": "2026-07-23T15:01:59.129Z", - "durationMs": 2419, - "canary": "RD_TEST_6E415B", + "startedAt": "2026-07-26T08:31:30.004Z", + "durationMs": 2439, + "canary": "RD_TEST_740D29", "network": [], "console": [], "pageErrors": [], @@ -9145,14 +8560,14 @@ "weight": 92, "matchCount": 0, "visibleCount": 0, - "elapsedMs": 3 + "elapsedMs": 2 }, { "strategy": "role", "weight": 82, "matchCount": 1, "visibleCount": 1, - "elapsedMs": 4 + "elapsedMs": 2 } ], "chosenStrategy": "role", @@ -9160,7 +8575,7 @@ "retryCount": 0 }, "before": { - "at": 1406, + "at": 1451, "url": "http://127.0.0.1:3000/#/register", "title": "Conduit", "domHash": "1f4fa65964895f4c", @@ -9226,7 +8641,7 @@ } }, "beforeAction": { - "at": 1414, + "at": 1459, "url": "http://127.0.0.1:3000/#/register", "title": "Conduit", "domHash": "1f4fa65964895f4c", @@ -9294,7 +8709,7 @@ "networkSettled": true, "targetBusyAfter": false, "after": { - "at": 2416, + "at": 2437, "url": "http://127.0.0.1:3000/#/login", "title": "Conduit", "domHash": "c659be8900b0e706", @@ -9350,7 +8765,7 @@ "indexedDb": [] } }, - "snapshotIndex": "snapshots/RD-023.index.json" + "snapshotIndex": "snapshots/RD-015.index.json" }, "verdict": "VERIFIED", "evidenceLevel": 1, @@ -9358,80 +8773,7 @@ "detectorMatches": [] }, { - "id": "RD-024", - "action": { - "id": "8aa697f19422", - "pageUrl": "http://127.0.0.1:3000/#/register", - "label": "Sign up", - "activation": "click", - "kind": "navigation", - "intent": "navigate", - "risk": "safe", - "fingerprint": { - "selector": "body > div > header > nav > div > ul:nth-of-type(2) > li:nth-of-type(3) > a", - "tag": "a", - "ordinal": 4, - "role": "link", - "accessibleName": "Sign up", - "text": "Sign up", - "href": "http://127.0.0.1:3000/#/register", - "candidates": [ - { - "strategy": "role", - "weight": 92, - "role": "link", - "name": "Sign up", - "exact": true - }, - { - "strategy": "role", - "weight": 82, - "role": "link", - "name": "Sign up", - "exact": false - }, - { - "strategy": "href", - "weight": 72, - "value": "http://127.0.0.1:3000/#/register" - }, - { - "strategy": "text", - "weight": 60, - "value": "Sign up", - "exact": true - }, - { - "strategy": "css", - "weight": 35, - "selector": "body > div > header > nav > div > ul:nth-of-type(2) > li:nth-of-type(3) > a" - } - ] - }, - "fields": [] - }, - "verdict": "SKIPPED", - "evidenceLevel": 0, - "reason": "Navigation target is already the current page.", - "skippedReason": "Navigation target is already the current page.", - "detectorMatches": [], - "evidence": { - "startedAt": "", - "durationMs": 0, - "canary": "", - "network": [], - "console": [], - "pageErrors": [], - "uiClaims": [], - "filledFields": [], - "dialogs": [], - "downloads": [], - "popupUrls": [], - "snapshotIndex": "snapshots/RD-024.index.json" - } - }, - { - "id": "RD-025", + "id": "RD-016", "action": { "id": "b9816023669f", "pageUrl": "http://127.0.0.1:3000/#/register", @@ -9484,9 +8826,9 @@ "fields": [] }, "evidence": { - "startedAt": "2026-07-23T15:02:01.588Z", - "durationMs": 2413, - "canary": "RD_TEST_C65B9D", + "startedAt": "2026-07-26T08:31:32.446Z", + "durationMs": 2448, + "canary": "RD_TEST_B67FEA", "network": [], "console": [], "pageErrors": [], @@ -9504,7 +8846,7 @@ "weight": 92, "matchCount": 1, "visibleCount": 1, - "elapsedMs": 5 + "elapsedMs": 4 } ], "chosenStrategy": "role", @@ -9512,7 +8854,7 @@ "retryCount": 0 }, "before": { - "at": 1396, + "at": 1446, "url": "http://127.0.0.1:3000/#/register", "title": "Conduit", "domHash": "1f4fa65964895f4c", @@ -9578,7 +8920,7 @@ } }, "beforeAction": { - "at": 1404, + "at": 1454, "url": "http://127.0.0.1:3000/#/register", "title": "Conduit", "domHash": "1f4fa65964895f4c", @@ -9646,7 +8988,7 @@ "networkSettled": true, "targetBusyAfter": false, "after": { - "at": 2409, + "at": 2445, "url": "http://127.0.0.1:3000/#/login", "title": "Conduit", "domHash": "c659be8900b0e706", @@ -9702,7 +9044,7 @@ "indexedDb": [] } }, - "snapshotIndex": "snapshots/RD-025.index.json" + "snapshotIndex": "snapshots/RD-016.index.json" }, "verdict": "VERIFIED", "evidenceLevel": 1, @@ -9710,7 +9052,7 @@ "detectorMatches": [] }, { - "id": "RD-026", + "id": "RD-017", "action": { "id": "cf5c3df21bab", "pageUrl": "http://127.0.0.1:3000/#/register", @@ -9770,19 +9112,19 @@ ] }, "evidence": { - "startedAt": "2026-07-23T15:02:04.073Z", - "durationMs": 6985, - "canary": "RD_TEST_94DC14", + "startedAt": "2026-07-26T08:31:35.052Z", + "durationMs": 7174, + "canary": "RD_TEST_3D72CE", "network": [ { "id": "net-1", "method": "POST", "url": "http://127.0.0.1:3000/api/users", "resourceType": "xhr", - "startedAt": 1508, + "startedAt": 1541, "status": 201, "ok": true, - "finishedAt": 1609, + "finishedAt": 1618, "contentType": "application/json", "resourceTypeHint": "users" }, @@ -9791,10 +9133,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/assets/smiley-cyrus.jpeg", "resourceType": "image", - "startedAt": 1612, + "startedAt": 1622, "status": 200, "ok": true, - "finishedAt": 1620, + "finishedAt": 1628, "contentType": "image/jpeg", "resourceTypeHint": "smiley-cyrus.jpeg" }, @@ -9803,10 +9145,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/api/user", "resourceType": "xhr", - "startedAt": 1617, + "startedAt": 1627, "status": 200, "ok": true, - "finishedAt": 1625, + "finishedAt": 1635, "contentType": "application/json", "resourceTypeHint": "user" }, @@ -9815,22 +9157,22 @@ "method": "GET", "url": "http://127.0.0.1:3000/api/articles/feed?limit=3&&offset=0", "resourceType": "xhr", - "startedAt": 1622, + "startedAt": 1632, "status": 200, "ok": true, - "finishedAt": 1635, "contentType": "application/json", - "resourceTypeHint": "feed" + "resourceTypeHint": "feed", + "finishedAt": 1647 }, { "id": "net-5", "method": "GET", "url": "http://127.0.0.1:3000/api/tags", "resourceType": "xhr", - "startedAt": 1623, + "startedAt": 1633, "status": 200, "ok": true, - "finishedAt": 1632, + "finishedAt": 1643, "contentType": "application/json", "resourceTypeHint": "tags" }, @@ -9839,10 +9181,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/api/articles/feed?limit=3&&offset=0", "resourceType": "xhr", - "startedAt": 1624, + "startedAt": 1634, "status": 200, "ok": true, - "finishedAt": 1636, + "finishedAt": 1647, "contentType": "application/json", "resourceTypeHint": "feed" }, @@ -9851,34 +9193,34 @@ "method": "GET", "url": "http://127.0.0.1:3000/api/tags", "resourceType": "xhr", - "startedAt": 1624, + "startedAt": 1634, "status": 200, "ok": true, + "finishedAt": 1643, "contentType": "application/json", - "resourceTypeHint": "tags", - "finishedAt": 1634 + "resourceTypeHint": "tags" }, { "id": "net-8", "method": "GET", "url": "http://127.0.0.1:3000/", "resourceType": "document", - "startedAt": 2622, + "startedAt": 2637, "status": 200, "ok": true, "contentType": "text/html", "resourceTypeHint": "resource", - "finishedAt": 2631 + "finishedAt": 2645 }, { "id": "net-9", "method": "GET", "url": "http://127.0.0.1:3000/@vite/client", "resourceType": "script", - "startedAt": 2629, + "startedAt": 2644, "status": 200, "ok": true, - "finishedAt": 2641, + "finishedAt": 2653, "contentType": "text/javascript", "resourceTypeHint": "client" }, @@ -9887,10 +9229,10 @@ "method": "GET", "url": "http://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css", "resourceType": "stylesheet", - "startedAt": 2629, + "startedAt": 2644, "status": 307, "ok": false, - "finishedAt": 2633, + "finishedAt": 2647, "location": "https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css", "resourceTypeHint": "ionicons.min.css" }, @@ -9899,10 +9241,10 @@ "method": "GET", "url": "http://fonts.googleapis.com/css?family=Titillium+Web:700|Source+Serif+Pro:400,700|Merriweather+Sans:400,700|Source+Sans+Pro:400,300,600,700,300italic,400italic,600italic,700italic", "resourceType": "stylesheet", - "startedAt": 2630, + "startedAt": 2645, "status": 200, "ok": true, - "finishedAt": 2676, + "finishedAt": 2700, "contentType": "text/css", "resourceTypeHint": "css" }, @@ -9911,10 +9253,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/main.jsx", "resourceType": "script", - "startedAt": 2630, + "startedAt": 2645, "status": 200, "ok": true, - "finishedAt": 2636, + "finishedAt": 2651, "contentType": "text/javascript", "resourceTypeHint": "main.jsx" }, @@ -9923,10 +9265,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/@react-refresh", "resourceType": "script", - "startedAt": 2631, + "startedAt": 2645, "status": 200, "ok": true, - "finishedAt": 2642, + "finishedAt": 2659, "contentType": "text/javascript", "resourceTypeHint": "@react-refresh" }, @@ -9935,10 +9277,10 @@ "method": "GET", "url": "https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css", "resourceType": "stylesheet", - "startedAt": 2633, + "startedAt": 2647, "status": 200, "ok": true, - "finishedAt": 2760, + "finishedAt": 2924, "contentType": "text/css", "resourceTypeHint": "ionicons.min.css" }, @@ -9947,10 +9289,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/node_modules/.vite/deps/react_jsx-dev-runtime.js?v=96de0870", "resourceType": "script", - "startedAt": 2637, + "startedAt": 2654, "status": 200, "ok": true, - "finishedAt": 2647, + "finishedAt": 2663, "contentType": "text/javascript", "resourceTypeHint": "react_jsx-dev-runtime.js" }, @@ -9959,10 +9301,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/node_modules/.vite/deps/react.js?v=96de0870", "resourceType": "script", - "startedAt": 2637, + "startedAt": 2656, "status": 200, "ok": true, - "finishedAt": 2647, + "finishedAt": 2669, "contentType": "text/javascript", "resourceTypeHint": "react.js" }, @@ -9971,10 +9313,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/node_modules/.vite/deps/react-dom_client.js?v=96de0870", "resourceType": "script", - "startedAt": 2638, + "startedAt": 2656, "status": 200, "ok": true, - "finishedAt": 2676, + "finishedAt": 2693, "contentType": "text/javascript", "resourceTypeHint": "react-dom_client.js" }, @@ -9983,10 +9325,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/node_modules/.vite/deps/react-router-dom.js?v=96de0870", "resourceType": "script", - "startedAt": 2639, + "startedAt": 2656, "status": 200, "ok": true, - "finishedAt": 2671, + "finishedAt": 2698, "contentType": "text/javascript", "resourceTypeHint": "react-router-dom.js" }, @@ -9995,10 +9337,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/App.jsx", "resourceType": "script", - "startedAt": 2639, + "startedAt": 2657, "status": 200, "ok": true, - "finishedAt": 2657, + "finishedAt": 2682, "contentType": "text/javascript", "resourceTypeHint": "App.jsx" }, @@ -10007,10 +9349,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/context/AuthContext.jsx", "resourceType": "script", - "startedAt": 2639, + "startedAt": 2657, "status": 200, "ok": true, - "finishedAt": 2658, + "finishedAt": 2683, "contentType": "text/javascript", "resourceTypeHint": "AuthContext.jsx" }, @@ -10019,10 +9361,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/styles.css", "resourceType": "script", - "startedAt": 2639, + "startedAt": 2657, "status": 200, "ok": true, - "finishedAt": 2659, + "finishedAt": 2682, "contentType": "text/javascript", "resourceTypeHint": "styles.css" }, @@ -10031,10 +9373,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/index.css", "resourceType": "script", - "startedAt": 2641, + "startedAt": 2657, "status": 200, "ok": true, - "finishedAt": 2658, + "finishedAt": 2681, "contentType": "text/javascript", "resourceTypeHint": "index.css" }, @@ -10043,10 +9385,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/reportWebVitals.js", "resourceType": "script", - "startedAt": 2641, + "startedAt": 2658, "status": 200, "ok": true, - "finishedAt": 2659, + "finishedAt": 2684, "contentType": "text/javascript", "resourceTypeHint": "reportWebVitals.js" }, @@ -10055,10 +9397,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/routes/Article/Article.jsx", "resourceType": "script", - "startedAt": 2641, + "startedAt": 2658, "status": 200, "ok": true, - "finishedAt": 2661, + "finishedAt": 2686, "contentType": "text/javascript", "resourceTypeHint": "Article.jsx" }, @@ -10067,10 +9409,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/routes/Article/CommentsSection.jsx", "resourceType": "script", - "startedAt": 2641, + "startedAt": 2658, "status": 200, "ok": true, - "finishedAt": 2661, + "finishedAt": 2684, "contentType": "text/javascript", "resourceTypeHint": "CommentsSection.jsx" }, @@ -10079,10 +9421,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/routes/ArticleEditor.jsx", "resourceType": "script", - "startedAt": 2642, + "startedAt": 2658, "status": 200, "ok": true, - "finishedAt": 2661, + "finishedAt": 2685, "contentType": "text/javascript", "resourceTypeHint": "ArticleEditor.jsx" }, @@ -10091,10 +9433,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/routes/Home.jsx", "resourceType": "script", - "startedAt": 2642, + "startedAt": 2659, "status": 200, "ok": true, - "finishedAt": 2662, + "finishedAt": 2686, "contentType": "text/javascript", "resourceTypeHint": "Home.jsx" }, @@ -10103,10 +9445,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/routes/HomeArticles.jsx", "resourceType": "script", - "startedAt": 2642, + "startedAt": 2659, "status": 200, "ok": true, - "finishedAt": 2662, + "finishedAt": 2685, "contentType": "text/javascript", "resourceTypeHint": "HomeArticles.jsx" }, @@ -10115,10 +9457,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/routes/Login.jsx", "resourceType": "script", - "startedAt": 2642, + "startedAt": 2659, "status": 200, "ok": true, - "finishedAt": 2663, + "finishedAt": 2686, "contentType": "text/javascript", "resourceTypeHint": "Login.jsx" }, @@ -10127,10 +9469,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/routes/NotFound.jsx", "resourceType": "script", - "startedAt": 2642, + "startedAt": 2660, "status": 200, "ok": true, - "finishedAt": 2664, + "finishedAt": 2688, "contentType": "text/javascript", "resourceTypeHint": "NotFound.jsx" }, @@ -10139,10 +9481,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/routes/Profile/Profile.jsx", "resourceType": "script", - "startedAt": 2643, + "startedAt": 2660, "status": 200, "ok": true, - "finishedAt": 2665, + "finishedAt": 2694, "contentType": "text/javascript", "resourceTypeHint": "Profile.jsx" }, @@ -10151,10 +9493,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/routes/Profile/ProfileArticles.jsx", "resourceType": "script", - "startedAt": 2643, + "startedAt": 2660, "status": 200, "ok": true, - "finishedAt": 2666, + "finishedAt": 2697, "contentType": "text/javascript", "resourceTypeHint": "ProfileArticles.jsx" }, @@ -10163,10 +9505,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/routes/Profile/ProfileFavArticles.jsx", "resourceType": "script", - "startedAt": 2643, + "startedAt": 2660, "status": 200, "ok": true, - "finishedAt": 2666, + "finishedAt": 2697, "contentType": "text/javascript", "resourceTypeHint": "ProfileFavArticles.jsx" }, @@ -10175,10 +9517,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/routes/Settings.jsx", "resourceType": "script", - "startedAt": 2644, + "startedAt": 2661, "status": 200, "ok": true, - "finishedAt": 2666, + "finishedAt": 2700, "contentType": "text/javascript", "resourceTypeHint": "Settings.jsx" }, @@ -10187,10 +9529,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/routes/SignUp.jsx", "resourceType": "script", - "startedAt": 2644, + "startedAt": 2661, "status": 200, "ok": true, - "finishedAt": 2672, + "finishedAt": 2700, "contentType": "text/javascript", "resourceTypeHint": "SignUp.jsx" }, @@ -10199,10 +9541,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/@fs/F:/RealDone/work/real-projects/conduit-postgres/node_modules/vite/dist/client/env.mjs", "resourceType": "script", - "startedAt": 2644, + "startedAt": 2662, "status": 200, "ok": true, - "finishedAt": 2672, + "finishedAt": 2700, "contentType": "text/javascript", "resourceTypeHint": "env.mjs" }, @@ -10211,10 +9553,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/node_modules/.vite/deps/chunk-MP6PTA7G.js?v=96de0870", "resourceType": "script", - "startedAt": 2647, + "startedAt": 2663, "status": 200, "ok": true, - "finishedAt": 2673, + "finishedAt": 2701, "contentType": "text/javascript", "resourceTypeHint": "chunk-MP6PTA7G.js" }, @@ -10223,10 +9565,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/node_modules/.vite/deps/chunk-G3PMV62Z.js?v=96de0870", "resourceType": "script", - "startedAt": 2647, + "startedAt": 2664, "status": 200, "ok": true, - "finishedAt": 2673, + "finishedAt": 2700, "contentType": "text/javascript", "resourceTypeHint": "chunk-G3PMV62Z.js" }, @@ -10235,10 +9577,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/Footer/index.js", "resourceType": "script", - "startedAt": 2664, + "startedAt": 2687, "status": 200, "ok": true, - "finishedAt": 2686, + "finishedAt": 2706, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, @@ -10247,10 +9589,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/Navbar/index.js", "resourceType": "script", - "startedAt": 2665, + "startedAt": 2689, "status": 200, "ok": true, - "finishedAt": 2714, + "finishedAt": 2710, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, @@ -10259,10 +9601,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/services/getUser.js", "resourceType": "script", - "startedAt": 2665, + "startedAt": 2689, "status": 200, "ok": true, - "finishedAt": 2715, + "finishedAt": 2710, "contentType": "text/javascript", "resourceTypeHint": "getUser.js" }, @@ -10271,10 +9613,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/CommentEditor/index.js", "resourceType": "script", - "startedAt": 2666, + "startedAt": 2690, "status": 200, "ok": true, - "finishedAt": 2715, + "finishedAt": 2711, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, @@ -10283,10 +9625,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/CommentList/index.js", "resourceType": "script", - "startedAt": 2666, + "startedAt": 2690, "status": 200, "ok": true, - "finishedAt": 2715, + "finishedAt": 2712, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, @@ -10295,10 +9637,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/ArticleEditorForm/index.js", "resourceType": "script", - "startedAt": 2666, + "startedAt": 2691, "status": 200, "ok": true, - "finishedAt": 2715, + "finishedAt": 2712, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, @@ -10307,166 +9649,166 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/ContainerRow/index.js", "resourceType": "script", - "startedAt": 2667, + "startedAt": 2691, "status": 200, "ok": true, - "finishedAt": 2715, + "finishedAt": 2713, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, { "id": "net-46", "method": "GET", - "url": "http://127.0.0.1:3000/node_modules/.vite/deps/markdown-to-jsx.js?v=96de0870", + "url": "http://127.0.0.1:3000/src/components/ArticlesPagination/index.js", "resourceType": "script", - "startedAt": 2669, + "startedAt": 2691, "status": 200, "ok": true, "finishedAt": 2716, "contentType": "text/javascript", - "resourceTypeHint": "markdown-to-jsx.js" + "resourceTypeHint": "index.js" }, { "id": "net-47", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/ArticleMeta/index.js", + "url": "http://127.0.0.1:3000/src/components/ArticlesPreview/index.js", "resourceType": "script", - "startedAt": 2669, + "startedAt": 2692, "status": 200, "ok": true, - "finishedAt": 2715, + "finishedAt": 2716, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, { "id": "net-48", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/ArticlesButtons/index.js", + "url": "http://127.0.0.1:3000/src/context/FeedContext.jsx", "resourceType": "script", - "startedAt": 2669, + "startedAt": 2692, "status": 200, "ok": true, - "finishedAt": 2715, + "finishedAt": 2716, "contentType": "text/javascript", - "resourceTypeHint": "index.js" + "resourceTypeHint": "FeedContext.jsx" }, { "id": "net-49", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/ArticleTags/index.js", + "url": "http://127.0.0.1:3000/src/hooks/useArticles.js", "resourceType": "script", - "startedAt": 2670, + "startedAt": 2692, "status": 200, "ok": true, - "finishedAt": 2715, + "finishedAt": 2717, "contentType": "text/javascript", - "resourceTypeHint": "index.js" + "resourceTypeHint": "useArticles.js" }, { "id": "net-50", "method": "GET", "url": "http://127.0.0.1:3000/src/components/BannerContainer/index.js", "resourceType": "script", - "startedAt": 2670, + "startedAt": 2693, "status": 200, "ok": true, - "finishedAt": 2715, + "finishedAt": 2718, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, { "id": "net-51", "method": "GET", - "url": "http://127.0.0.1:3000/src/services/getArticle.js", + "url": "http://127.0.0.1:3000/src/components/FeedToggler/index.js", "resourceType": "script", - "startedAt": 2670, + "startedAt": 2693, "status": 200, "ok": true, - "finishedAt": 2715, + "finishedAt": 2723, "contentType": "text/javascript", - "resourceTypeHint": "getArticle.js" + "resourceTypeHint": "index.js" }, { "id": "net-52", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/FeedToggler/index.js", + "url": "http://127.0.0.1:3000/src/components/PopularTags/index.js", "resourceType": "script", - "startedAt": 2670, + "startedAt": 2697, "status": 200, "ok": true, - "finishedAt": 2716, + "finishedAt": 2730, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, { "id": "net-53", "method": "GET", - "url": "http://127.0.0.1:3000/src/context/FeedContext.jsx", + "url": "http://127.0.0.1:3000/node_modules/.vite/deps/markdown-to-jsx.js?v=96de0870", "resourceType": "script", - "startedAt": 2671, + "startedAt": 2697, "status": 200, "ok": true, - "finishedAt": 2716, + "finishedAt": 2735, "contentType": "text/javascript", - "resourceTypeHint": "FeedContext.jsx" + "resourceTypeHint": "markdown-to-jsx.js" }, { "id": "net-54", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/PopularTags/index.js", + "url": "http://127.0.0.1:3000/src/components/ArticleMeta/index.js", "resourceType": "script", - "startedAt": 2671, + "startedAt": 2698, "status": 200, "ok": true, - "finishedAt": 2716, + "finishedAt": 2730, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, { "id": "net-55", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/ArticlesPagination/index.js", + "url": "http://127.0.0.1:3000/src/components/ArticlesButtons/index.js", "resourceType": "script", - "startedAt": 2671, + "startedAt": 2698, "status": 200, "ok": true, - "finishedAt": 2716, + "finishedAt": 2731, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, { "id": "net-56", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/ArticlesPreview/index.js", + "url": "http://127.0.0.1:3000/src/components/ArticleTags/index.js", "resourceType": "script", - "startedAt": 2671, + "startedAt": 2699, "status": 200, "ok": true, - "finishedAt": 2716, + "finishedAt": 2731, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, { "id": "net-57", "method": "GET", - "url": "http://127.0.0.1:3000/src/hooks/useArticles.js", + "url": "http://127.0.0.1:3000/src/services/getArticle.js", "resourceType": "script", - "startedAt": 2672, + "startedAt": 2699, "status": 200, "ok": true, - "finishedAt": 2716, + "finishedAt": 2732, "contentType": "text/javascript", - "resourceTypeHint": "useArticles.js" + "resourceTypeHint": "getArticle.js" }, { "id": "net-58", "method": "GET", "url": "http://127.0.0.1:3000/src/components/AuthPageContainer/index.js", "resourceType": "script", - "startedAt": 2672, + "startedAt": 2699, "status": 200, "ok": true, - "finishedAt": 2716, + "finishedAt": 2732, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, @@ -10475,70 +9817,70 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/LoginForm/index.js", "resourceType": "script", - "startedAt": 2672, + "startedAt": 2699, "status": 200, "ok": true, - "finishedAt": 2720, + "finishedAt": 2734, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, { "id": "net-60", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/AuthorInfo/index.js", + "url": "http://127.0.0.1:3000/node_modules/.vite/deps/chunk-HYJYOVZJ.js?v=96de0870", "resourceType": "script", - "startedAt": 2672, + "startedAt": 2701, "status": 200, "ok": true, - "finishedAt": 2720, + "finishedAt": 2735, "contentType": "text/javascript", - "resourceTypeHint": "index.js" + "resourceTypeHint": "chunk-HYJYOVZJ.js" }, { "id": "net-61", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/NavItem/index.js", + "url": "http://127.0.0.1:3000/src/components/AuthorInfo/index.js", "resourceType": "script", - "startedAt": 2673, + "startedAt": 2701, "status": 200, "ok": true, - "finishedAt": 2720, + "finishedAt": 2734, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, { "id": "net-62", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/SettingsForm/index.js", + "url": "http://127.0.0.1:3000/src/components/NavItem/index.js", "resourceType": "script", - "startedAt": 2673, + "startedAt": 2701, "status": 200, "ok": true, - "finishedAt": 2720, + "finishedAt": 2734, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, { "id": "net-63", "method": "GET", - "url": "http://127.0.0.1:3000/node_modules/.vite/deps/chunk-HYJYOVZJ.js?v=96de0870", + "url": "http://127.0.0.1:3000/src/components/SettingsForm/index.js", "resourceType": "script", - "startedAt": 2673, + "startedAt": 2701, "status": 200, "ok": true, - "finishedAt": 2720, + "finishedAt": 2734, "contentType": "text/javascript", - "resourceTypeHint": "chunk-HYJYOVZJ.js" + "resourceTypeHint": "index.js" }, { "id": "net-64", "method": "GET", "url": "http://127.0.0.1:3000/src/components/SignUpForm/index.js", "resourceType": "script", - "startedAt": 2673, + "startedAt": 2702, "status": 200, "ok": true, - "finishedAt": 2724, + "finishedAt": 2734, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, @@ -10547,10 +9889,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/Footer/Footer.jsx", "resourceType": "script", - "startedAt": 2716, + "startedAt": 2706, "status": 200, "ok": true, - "finishedAt": 2727, + "finishedAt": 2735, "contentType": "text/javascript", "resourceTypeHint": "Footer.jsx" }, @@ -10559,10 +9901,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/Navbar/Navbar.jsx", "resourceType": "script", - "startedAt": 2720, + "startedAt": 2718, "status": 200, "ok": true, - "finishedAt": 2734, + "finishedAt": 2738, "contentType": "text/javascript", "resourceTypeHint": "Navbar.jsx" }, @@ -10574,7 +9916,7 @@ "startedAt": 2720, "status": 200, "ok": true, - "finishedAt": 2737, + "finishedAt": 2740, "contentType": "text/javascript", "resourceTypeHint": "axios.js" }, @@ -10583,10 +9925,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/helpers/errorHandler.js", "resourceType": "script", - "startedAt": 2720, + "startedAt": 2721, "status": 200, "ok": true, - "finishedAt": 2735, + "finishedAt": 2740, "contentType": "text/javascript", "resourceTypeHint": "errorHandler.js" }, @@ -10595,10 +9937,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/CommentEditor/CommentEditor.jsx", "resourceType": "script", - "startedAt": 2721, + "startedAt": 2722, "status": 200, "ok": true, - "finishedAt": 2736, + "finishedAt": 2740, "contentType": "text/javascript", "resourceTypeHint": "CommentEditor.jsx" }, @@ -10607,10 +9949,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/CommentList/CommentList.jsx", "resourceType": "script", - "startedAt": 2721, + "startedAt": 2722, "status": 200, "ok": true, - "finishedAt": 2736, + "finishedAt": 2740, "contentType": "text/javascript", "resourceTypeHint": "CommentList.jsx" }, @@ -10619,10 +9961,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/ArticleEditorForm/ArticleEditorForm.jsx", "resourceType": "script", - "startedAt": 2721, + "startedAt": 2726, "status": 200, "ok": true, - "finishedAt": 2736, + "finishedAt": 2743, "contentType": "text/javascript", "resourceTypeHint": "ArticleEditorForm.jsx" }, @@ -10631,58 +9973,58 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/ContainerRow/ContainerRow.jsx", "resourceType": "script", - "startedAt": 2721, + "startedAt": 2726, "status": 200, "ok": true, - "finishedAt": 2738, + "finishedAt": 2743, "contentType": "text/javascript", "resourceTypeHint": "ContainerRow.jsx" }, { "id": "net-73", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/ArticleMeta/ArticleMeta.jsx", + "url": "http://127.0.0.1:3000/src/components/ArticlesPagination/ArticlesPagination.jsx", "resourceType": "script", - "startedAt": 2721, + "startedAt": 2729, "status": 200, "ok": true, - "finishedAt": 2738, + "finishedAt": 2745, "contentType": "text/javascript", - "resourceTypeHint": "ArticleMeta.jsx" + "resourceTypeHint": "ArticlesPagination.jsx" }, { "id": "net-74", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/ArticlesButtons/ArticlesButtons.jsx", + "url": "http://127.0.0.1:3000/src/components/ArticlesPreview/ArticlesPreview.jsx", "resourceType": "script", - "startedAt": 2722, + "startedAt": 2729, "status": 200, "ok": true, - "finishedAt": 2740, + "finishedAt": 2746, "contentType": "text/javascript", - "resourceTypeHint": "ArticlesButtons.jsx" + "resourceTypeHint": "ArticlesPreview.jsx" }, { "id": "net-75", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/ArticleTags/ArticleTags.jsx", + "url": "http://127.0.0.1:3000/src/services/getArticles.js", "resourceType": "script", - "startedAt": 2722, + "startedAt": 2730, "status": 200, "ok": true, + "finishedAt": 2747, "contentType": "text/javascript", - "resourceTypeHint": "ArticleTags.jsx", - "finishedAt": 2741 + "resourceTypeHint": "getArticles.js" }, { "id": "net-76", "method": "GET", "url": "http://127.0.0.1:3000/src/components/BannerContainer/BannerContainer.jsx", "resourceType": "script", - "startedAt": 2722, + "startedAt": 2731, "status": 200, "ok": true, - "finishedAt": 2741, + "finishedAt": 2747, "contentType": "text/javascript", "resourceTypeHint": "BannerContainer.jsx" }, @@ -10691,10 +10033,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/FeedToggler/FeedToggler.jsx", "resourceType": "script", - "startedAt": 2722, + "startedAt": 2731, "status": 200, "ok": true, - "finishedAt": 2741, + "finishedAt": 2748, "contentType": "text/javascript", "resourceTypeHint": "FeedToggler.jsx" }, @@ -10703,130 +10045,130 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/PopularTags/PopularTags.jsx", "resourceType": "script", - "startedAt": 2722, + "startedAt": 2732, "status": 200, "ok": true, - "finishedAt": 2742, + "finishedAt": 2748, "contentType": "text/javascript", "resourceTypeHint": "PopularTags.jsx" }, { "id": "net-79", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/ArticlesPagination/ArticlesPagination.jsx", + "url": "http://127.0.0.1:3000/src/components/ArticleMeta/ArticleMeta.jsx", "resourceType": "script", - "startedAt": 2723, + "startedAt": 2732, "status": 200, "ok": true, - "finishedAt": 2747, + "finishedAt": 2751, "contentType": "text/javascript", - "resourceTypeHint": "ArticlesPagination.jsx" + "resourceTypeHint": "ArticleMeta.jsx" }, { "id": "net-80", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/ArticlesPreview/ArticlesPreview.jsx", + "url": "http://127.0.0.1:3000/src/components/ArticleTags/ArticleTags.jsx", "resourceType": "script", - "startedAt": 2723, + "startedAt": 2733, "status": 200, "ok": true, - "finishedAt": 2747, + "finishedAt": 2751, "contentType": "text/javascript", - "resourceTypeHint": "ArticlesPreview.jsx" + "resourceTypeHint": "ArticleTags.jsx" }, { "id": "net-81", "method": "GET", - "url": "http://127.0.0.1:3000/src/services/getArticles.js", + "url": "http://127.0.0.1:3000/src/components/ArticlesButtons/ArticlesButtons.jsx", "resourceType": "script", - "startedAt": 2723, + "startedAt": 2733, "status": 200, "ok": true, - "finishedAt": 2747, + "finishedAt": 2752, "contentType": "text/javascript", - "resourceTypeHint": "getArticles.js" + "resourceTypeHint": "ArticlesButtons.jsx" }, { "id": "net-82", "method": "GET", "url": "http://127.0.0.1:3000/src/components/AuthPageContainer/AuthPageContainer.jsx", "resourceType": "script", - "startedAt": 2723, + "startedAt": 2734, "status": 200, "ok": true, - "finishedAt": 2747, + "finishedAt": 2753, "contentType": "text/javascript", "resourceTypeHint": "AuthPageContainer.jsx" }, { "id": "net-83", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/LoginForm/LoginForm.jsx", + "url": "http://127.0.0.1:3000/src/components/AuthorInfo/AuthorInfo.jsx", "resourceType": "script", - "startedAt": 2723, + "startedAt": 2734, "status": 200, "ok": true, - "finishedAt": 2749, + "finishedAt": 2753, "contentType": "text/javascript", - "resourceTypeHint": "LoginForm.jsx" + "resourceTypeHint": "AuthorInfo.jsx" }, { "id": "net-84", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/AuthorInfo/AuthorInfo.jsx", + "url": "http://127.0.0.1:3000/src/components/LoginForm/LoginForm.jsx", "resourceType": "script", - "startedAt": 2724, + "startedAt": 2735, "status": 200, "ok": true, - "finishedAt": 2749, + "finishedAt": 2756, "contentType": "text/javascript", - "resourceTypeHint": "AuthorInfo.jsx" + "resourceTypeHint": "LoginForm.jsx" }, { "id": "net-85", "method": "GET", "url": "http://127.0.0.1:3000/src/components/NavItem/NavItem.jsx", "resourceType": "script", - "startedAt": 2724, + "startedAt": 2735, "status": 200, "ok": true, - "finishedAt": 2749, + "finishedAt": 2757, "contentType": "text/javascript", "resourceTypeHint": "NavItem.jsx" }, { "id": "net-86", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/SettingsForm/SettingsForm.jsx", + "url": "http://127.0.0.1:3000/src/components/SignUpForm/SignUpForm.jsx", "resourceType": "script", - "startedAt": 2724, + "startedAt": 2735, "status": 200, "ok": true, - "finishedAt": 2749, + "finishedAt": 2757, "contentType": "text/javascript", - "resourceTypeHint": "SettingsForm.jsx" + "resourceTypeHint": "SignUpForm.jsx" }, { "id": "net-87", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/SignUpForm/SignUpForm.jsx", + "url": "http://127.0.0.1:3000/src/components/SettingsForm/SettingsForm.jsx", "resourceType": "script", - "startedAt": 2724, + "startedAt": 2735, "status": 200, "ok": true, "finishedAt": 2757, "contentType": "text/javascript", - "resourceTypeHint": "SignUpForm.jsx" + "resourceTypeHint": "SettingsForm.jsx" }, { "id": "net-88", "method": "GET", "url": "http://127.0.0.1:3000/src/components/SourceCodeLink/index.js", "resourceType": "script", - "startedAt": 2730, + "startedAt": 2736, "status": 200, "ok": true, - "finishedAt": 2757, + "finishedAt": 2759, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, @@ -10835,10 +10177,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/Navbar/DropdownMenu.jsx", "resourceType": "script", - "startedAt": 2739, + "startedAt": 2738, "status": 200, "ok": true, - "finishedAt": 2758, + "finishedAt": 2759, "contentType": "text/javascript", "resourceTypeHint": "DropdownMenu.jsx" }, @@ -10847,10 +10189,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/services/postComment.js", "resourceType": "script", - "startedAt": 2743, + "startedAt": 2740, "status": 200, "ok": true, - "finishedAt": 2762, + "finishedAt": 2759, "contentType": "text/javascript", "resourceTypeHint": "postComment.js" }, @@ -10859,10 +10201,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/Avatar/index.js", "resourceType": "script", - "startedAt": 2743, + "startedAt": 2740, "status": 200, "ok": true, - "finishedAt": 2762, + "finishedAt": 2759, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, @@ -10871,10 +10213,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/helpers/dateFormatter.js", "resourceType": "script", - "startedAt": 2744, + "startedAt": 2741, "status": 200, "ok": true, - "finishedAt": 2762, + "finishedAt": 2761, "contentType": "text/javascript", "resourceTypeHint": "dateFormatter.js" }, @@ -10883,10 +10225,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/services/deleteComment.js", "resourceType": "script", - "startedAt": 2744, + "startedAt": 2741, "status": 200, "ok": true, - "finishedAt": 2763, + "finishedAt": 2761, "contentType": "text/javascript", "resourceTypeHint": "deleteComment.js" }, @@ -10895,7 +10237,7 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/services/getComments.js", "resourceType": "script", - "startedAt": 2744, + "startedAt": 2741, "status": 200, "ok": true, "finishedAt": 2763, @@ -10907,10 +10249,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/CommentList/CommentAuthor.jsx", "resourceType": "script", - "startedAt": 2744, + "startedAt": 2742, "status": 200, "ok": true, - "finishedAt": 2763, + "finishedAt": 2764, "contentType": "text/javascript", "resourceTypeHint": "CommentAuthor.jsx" }, @@ -10919,7 +10261,7 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/services/setArticle.js", "resourceType": "script", - "startedAt": 2744, + "startedAt": 2743, "status": 200, "ok": true, "finishedAt": 2763, @@ -10931,154 +10273,154 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/FormFieldset/index.js", "resourceType": "script", - "startedAt": 2745, + "startedAt": 2744, "status": 200, "ok": true, - "finishedAt": 2763, + "finishedAt": 2764, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, { "id": "net-98", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/ArticleAuthorButtons/index.js", + "url": "http://127.0.0.1:3000/node_modules/.vite/deps/react-paginate.js?v=96de0870", "resourceType": "script", - "startedAt": 2745, + "startedAt": 2750, "status": 200, "ok": true, "finishedAt": 2764, "contentType": "text/javascript", - "resourceTypeHint": "index.js" + "resourceTypeHint": "react-paginate.js" }, { "id": "net-99", "method": "GET", "url": "http://127.0.0.1:3000/src/components/FavButton/index.js", "resourceType": "script", - "startedAt": 2748, + "startedAt": 2752, "status": 200, "ok": true, - "finishedAt": 2767, + "finishedAt": 2764, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, { "id": "net-100", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/FollowButton/index.js", + "url": "http://127.0.0.1:3000/src/components/FeedToggler/FeedNavLink.jsx", "resourceType": "script", - "startedAt": 2748, + "startedAt": 2754, "status": 200, "ok": true, - "finishedAt": 2767, + "finishedAt": 2766, "contentType": "text/javascript", - "resourceTypeHint": "index.js" + "resourceTypeHint": "FeedNavLink.jsx" }, { "id": "net-101", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/FeedToggler/FeedNavLink.jsx", + "url": "http://127.0.0.1:3000/src/services/getTags.js", "resourceType": "script", - "startedAt": 2748, + "startedAt": 2755, "status": 200, "ok": true, - "finishedAt": 2767, + "finishedAt": 2766, "contentType": "text/javascript", - "resourceTypeHint": "FeedNavLink.jsx" + "resourceTypeHint": "getTags.js" }, { "id": "net-102", "method": "GET", - "url": "http://127.0.0.1:3000/src/services/getTags.js", + "url": "http://127.0.0.1:3000/src/components/PopularTags/TagButton.jsx", "resourceType": "script", - "startedAt": 2748, + "startedAt": 2755, "status": 200, "ok": true, - "finishedAt": 2767, + "finishedAt": 2766, "contentType": "text/javascript", - "resourceTypeHint": "getTags.js" + "resourceTypeHint": "TagButton.jsx" }, { "id": "net-103", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/PopularTags/TagButton.jsx", + "url": "http://127.0.0.1:3000/src/components/ArticleAuthorButtons/index.js", "resourceType": "script", - "startedAt": 2749, + "startedAt": 2758, "status": 200, "ok": true, - "finishedAt": 2767, + "finishedAt": 2770, "contentType": "text/javascript", - "resourceTypeHint": "TagButton.jsx" + "resourceTypeHint": "index.js" }, { "id": "net-104", "method": "GET", - "url": "http://127.0.0.1:3000/node_modules/.vite/deps/react-paginate.js?v=96de0870", + "url": "http://127.0.0.1:3000/src/components/FollowButton/index.js", "resourceType": "script", - "startedAt": 2756, + "startedAt": 2759, "status": 200, "ok": true, - "finishedAt": 2769, + "finishedAt": 2771, "contentType": "text/javascript", - "resourceTypeHint": "react-paginate.js" + "resourceTypeHint": "index.js" }, { "id": "net-105", "method": "GET", - "url": "http://127.0.0.1:3000/src/services/userLogin.js", + "url": "http://127.0.0.1:3000/src/services/getProfile.js", "resourceType": "script", - "startedAt": 2757, + "startedAt": 2759, "status": 200, "ok": true, - "finishedAt": 2769, + "finishedAt": 2771, "contentType": "text/javascript", - "resourceTypeHint": "userLogin.js" + "resourceTypeHint": "getProfile.js" }, { "id": "net-106", "method": "GET", - "url": "http://127.0.0.1:3000/src/services/getProfile.js", + "url": "http://127.0.0.1:3000/src/services/userLogin.js", "resourceType": "script", - "startedAt": 2757, + "startedAt": 2760, "status": 200, "ok": true, - "finishedAt": 2769, + "finishedAt": 2772, "contentType": "text/javascript", - "resourceTypeHint": "getProfile.js" + "resourceTypeHint": "userLogin.js" }, { "id": "net-107", "method": "GET", - "url": "http://127.0.0.1:3000/src/services/userUpdate.js", + "url": "http://127.0.0.1:3000/src/services/userSignUp.js", "resourceType": "script", - "startedAt": 2757, + "startedAt": 2760, "status": 200, "ok": true, - "finishedAt": 2770, + "finishedAt": 2773, "contentType": "text/javascript", - "resourceTypeHint": "userUpdate.js" + "resourceTypeHint": "userSignUp.js" }, { "id": "net-108", "method": "GET", - "url": "http://127.0.0.1:3000/src/services/userSignUp.js", + "url": "http://127.0.0.1:3000/src/services/userUpdate.js", "resourceType": "script", - "startedAt": 2757, + "startedAt": 2761, "status": 200, "ok": true, - "finishedAt": 2770, + "finishedAt": 2772, "contentType": "text/javascript", - "resourceTypeHint": "userSignUp.js" + "resourceTypeHint": "userUpdate.js" }, { "id": "net-109", "method": "GET", "url": "http://127.0.0.1:3000/src/components/SourceCodeLink/SourceCodeLink.jsx", "resourceType": "script", - "startedAt": 2758, + "startedAt": 2761, "status": 200, "ok": true, - "finishedAt": 2770, + "finishedAt": 2774, "contentType": "text/javascript", "resourceTypeHint": "SourceCodeLink.jsx" }, @@ -11087,10 +10429,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/services/userLogout.js", "resourceType": "script", - "startedAt": 2758, + "startedAt": 2761, "status": 200, "ok": true, - "finishedAt": 2770, + "finishedAt": 2774, "contentType": "text/javascript", "resourceTypeHint": "userLogout.js" }, @@ -11099,10 +10441,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/Navbar/DropdownItem.jsx", "resourceType": "script", - "startedAt": 2758, + "startedAt": 2761, "status": 200, "ok": true, - "finishedAt": 2770, + "finishedAt": 2774, "contentType": "text/javascript", "resourceTypeHint": "DropdownItem.jsx" }, @@ -11111,10 +10453,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/Avatar/Avatar.jsx", "resourceType": "script", - "startedAt": 2762, + "startedAt": 2763, "status": 200, "ok": true, - "finishedAt": 2771, + "finishedAt": 2775, "contentType": "text/javascript", "resourceTypeHint": "Avatar.jsx" }, @@ -11126,43 +10468,43 @@ "startedAt": 2764, "status": 200, "ok": true, - "finishedAt": 2771, + "finishedAt": 2775, "contentType": "text/javascript", "resourceTypeHint": "FormFieldset.jsx" }, { "id": "net-114", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/ArticleAuthorButtons/ArticleAuthorButtons.jsx", + "url": "http://127.0.0.1:3000/src/components/FavButton/FavButton.jsx", "resourceType": "script", "startedAt": 2764, "status": 200, "ok": true, - "finishedAt": 2771, + "finishedAt": 2775, "contentType": "text/javascript", - "resourceTypeHint": "ArticleAuthorButtons.jsx" + "resourceTypeHint": "FavButton.jsx" }, { "id": "net-115", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/FavButton/FavButton.jsx", + "url": "http://127.0.0.1:3000/src/components/ArticleAuthorButtons/ArticleAuthorButtons.jsx", "resourceType": "script", - "startedAt": 2767, + "startedAt": 2773, "status": 200, "ok": true, - "finishedAt": 2774, + "finishedAt": 2778, "contentType": "text/javascript", - "resourceTypeHint": "FavButton.jsx" + "resourceTypeHint": "ArticleAuthorButtons.jsx" }, { "id": "net-116", "method": "GET", "url": "http://127.0.0.1:3000/src/components/FollowButton/FollowButton.jsx", "resourceType": "script", - "startedAt": 2768, + "startedAt": 2774, "status": 200, "ok": true, - "finishedAt": 2774, + "finishedAt": 2779, "contentType": "text/javascript", "resourceTypeHint": "FollowButton.jsx" }, @@ -11171,46 +10513,46 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/assets/smiley-cyrus.jpeg?import", "resourceType": "script", - "startedAt": 2771, + "startedAt": 2775, "status": 200, "ok": true, - "finishedAt": 2775, + "finishedAt": 2780, "contentType": "text/javascript", "resourceTypeHint": "smiley-cyrus.jpeg" }, { "id": "net-118", "method": "GET", - "url": "http://127.0.0.1:3000/src/services/deleteArticle.js", + "url": "http://127.0.0.1:3000/src/services/toggleFav.js", "resourceType": "script", - "startedAt": 2773, + "startedAt": 2776, "status": 200, "ok": true, - "finishedAt": 2776, + "finishedAt": 2781, "contentType": "text/javascript", - "resourceTypeHint": "deleteArticle.js" + "resourceTypeHint": "toggleFav.js" }, { "id": "net-119", "method": "GET", - "url": "http://127.0.0.1:3000/src/services/toggleFav.js", + "url": "http://127.0.0.1:3000/src/services/deleteArticle.js", "resourceType": "script", - "startedAt": 2774, + "startedAt": 2778, "status": 200, "ok": true, - "finishedAt": 2777, + "finishedAt": 2781, "contentType": "text/javascript", - "resourceTypeHint": "toggleFav.js" + "resourceTypeHint": "deleteArticle.js" }, { "id": "net-120", "method": "GET", "url": "http://127.0.0.1:3000/src/services/toggleFollow.js", "resourceType": "script", - "startedAt": 2774, + "startedAt": 2779, "status": 200, "ok": true, - "finishedAt": 2777, + "finishedAt": 2782, "contentType": "text/javascript", "resourceTypeHint": "toggleFollow.js" }, @@ -11219,10 +10561,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/assets/smiley-cyrus.jpeg", "resourceType": "image", - "startedAt": 2790, + "startedAt": 2938, "status": 200, "ok": true, - "finishedAt": 2795, + "finishedAt": 2942, "contentType": "image/jpeg", "resourceTypeHint": "smiley-cyrus.jpeg" }, @@ -11231,10 +10573,10 @@ "method": "GET", "url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdu.woff2", "resourceType": "font", - "startedAt": 2793, + "startedAt": 2941, "status": 200, "ok": true, - "finishedAt": 2840, + "finishedAt": 2989, "contentType": "font/woff2", "resourceTypeHint": "6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdu.woff2" }, @@ -11243,10 +10585,10 @@ "method": "GET", "url": "https://code.ionicframework.com/ionicons/2.0.1/fonts/ionicons.ttf?v=2.0.1", "resourceType": "font", - "startedAt": 2793, + "startedAt": 2941, "status": 200, "ok": true, - "finishedAt": 2934, + "finishedAt": 3060, "contentType": "font/ttf", "resourceTypeHint": "ionicons.ttf" }, @@ -11255,10 +10597,10 @@ "method": "GET", "url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7l.woff2", "resourceType": "font", - "startedAt": 2794, + "startedAt": 2942, "status": 200, "ok": true, - "finishedAt": 2842, + "finishedAt": 2987, "contentType": "font/woff2", "resourceTypeHint": "6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7l.woff2" }, @@ -11267,10 +10609,10 @@ "method": "GET", "url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7nsDI.woff2", "resourceType": "font", - "startedAt": 2794, + "startedAt": 2942, "status": 200, "ok": true, - "finishedAt": 2841, + "finishedAt": 2989, "contentType": "font/woff2", "resourceTypeHint": "6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7nsDI.woff2" }, @@ -11279,46 +10621,46 @@ "method": "GET", "url": "http://127.0.0.1:3000/api/articles/feed?limit=3&&offset=0", "resourceType": "xhr", - "startedAt": 2798, + "startedAt": 2945, "status": 200, "ok": true, - "finishedAt": 2813, "contentType": "application/json", - "resourceTypeHint": "feed" + "resourceTypeHint": "feed", + "finishedAt": 2956 }, { "id": "net-127", "method": "GET", "url": "http://127.0.0.1:3000/api/tags", "resourceType": "xhr", - "startedAt": 2798, + "startedAt": 2946, "status": 200, "ok": true, + "finishedAt": 2954, "contentType": "application/json", - "resourceTypeHint": "tags", - "finishedAt": 2809 + "resourceTypeHint": "tags" }, { "id": "net-128", "method": "GET", "url": "http://127.0.0.1:3000/api/user", "resourceType": "xhr", - "startedAt": 2799, + "startedAt": 2947, "status": 200, "ok": true, + "finishedAt": 2957, "contentType": "application/json", - "resourceTypeHint": "user", - "finishedAt": 2810 + "resourceTypeHint": "user" }, { "id": "net-129", "method": "GET", "url": "http://127.0.0.1:3000/api/articles/feed?limit=3&&offset=0", "resourceType": "xhr", - "startedAt": 2799, + "startedAt": 2947, "status": 200, "ok": true, - "finishedAt": 2814, + "finishedAt": 2960, "contentType": "application/json", "resourceTypeHint": "feed" }, @@ -11327,22 +10669,22 @@ "method": "GET", "url": "http://127.0.0.1:3000/api/tags", "resourceType": "xhr", - "startedAt": 2800, + "startedAt": 2947, "status": 200, "ok": true, + "finishedAt": 2960, "contentType": "application/json", - "resourceTypeHint": "tags", - "finishedAt": 2810 + "resourceTypeHint": "tags" }, { "id": "net-131", "method": "GET", "url": "http://127.0.0.1:3000/api/user", "resourceType": "xhr", - "startedAt": 2800, + "startedAt": 2948, "status": 200, "ok": true, - "finishedAt": 2813, + "finishedAt": 2959, "contentType": "application/json", "resourceTypeHint": "user" }, @@ -11351,22 +10693,22 @@ "method": "GET", "url": "http://127.0.0.1:3000/", "resourceType": "document", - "startedAt": 3656, + "startedAt": 3804, "status": 200, "ok": true, "contentType": "text/html", "resourceTypeHint": "resource", - "finishedAt": 3664 + "finishedAt": 3814 }, { "id": "net-133", "method": "GET", "url": "http://127.0.0.1:3000/@vite/client", "resourceType": "script", - "startedAt": 3662, + "startedAt": 3813, "status": 200, "ok": true, - "finishedAt": 3670, + "finishedAt": 3822, "contentType": "text/javascript", "resourceTypeHint": "client" }, @@ -11375,10 +10717,10 @@ "method": "GET", "url": "http://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css", "resourceType": "stylesheet", - "startedAt": 3663, + "startedAt": 3813, "status": 307, "ok": false, - "finishedAt": 3666, + "finishedAt": 3817, "location": "https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css", "resourceTypeHint": "ionicons.min.css" }, @@ -11387,10 +10729,10 @@ "method": "GET", "url": "http://fonts.googleapis.com/css?family=Titillium+Web:700|Source+Serif+Pro:400,700|Merriweather+Sans:400,700|Source+Sans+Pro:400,300,600,700,300italic,400italic,600italic,700italic", "resourceType": "stylesheet", - "startedAt": 3663, + "startedAt": 3814, "status": 200, "ok": true, - "finishedAt": 3730, + "finishedAt": 3869, "contentType": "text/css", "resourceTypeHint": "css" }, @@ -11399,10 +10741,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/main.jsx", "resourceType": "script", - "startedAt": 3663, + "startedAt": 3814, "status": 200, "ok": true, - "finishedAt": 3670, + "finishedAt": 3820, "contentType": "text/javascript", "resourceTypeHint": "main.jsx" }, @@ -11411,10 +10753,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/@react-refresh", "resourceType": "script", - "startedAt": 3664, + "startedAt": 3815, "status": 200, "ok": true, - "finishedAt": 3677, + "finishedAt": 3830, "contentType": "text/javascript", "resourceTypeHint": "@react-refresh" }, @@ -11423,10 +10765,10 @@ "method": "GET", "url": "https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css", "resourceType": "stylesheet", - "startedAt": 3666, + "startedAt": 3817, "status": 200, "ok": true, - "finishedAt": 3748, + "finishedAt": 3904, "contentType": "text/css", "resourceTypeHint": "ionicons.min.css" }, @@ -11435,10 +10777,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/node_modules/.vite/deps/react_jsx-dev-runtime.js?v=96de0870", "resourceType": "script", - "startedAt": 3671, + "startedAt": 3822, "status": 200, "ok": true, - "finishedAt": 3679, + "finishedAt": 3833, "contentType": "text/javascript", "resourceTypeHint": "react_jsx-dev-runtime.js" }, @@ -11447,10 +10789,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/node_modules/.vite/deps/react.js?v=96de0870", "resourceType": "script", - "startedAt": 3672, + "startedAt": 3823, "status": 200, "ok": true, - "finishedAt": 3681, + "finishedAt": 3834, "contentType": "text/javascript", "resourceTypeHint": "react.js" }, @@ -11459,10 +10801,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/node_modules/.vite/deps/react-dom_client.js?v=96de0870", "resourceType": "script", - "startedAt": 3672, + "startedAt": 3824, "status": 200, "ok": true, - "finishedAt": 3695, + "finishedAt": 3854, "contentType": "text/javascript", "resourceTypeHint": "react-dom_client.js" }, @@ -11471,10 +10813,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/node_modules/.vite/deps/react-router-dom.js?v=96de0870", "resourceType": "script", - "startedAt": 3673, + "startedAt": 3824, "status": 200, "ok": true, - "finishedAt": 3696, + "finishedAt": 3850, "contentType": "text/javascript", "resourceTypeHint": "react-router-dom.js" }, @@ -11483,10 +10825,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/App.jsx", "resourceType": "script", - "startedAt": 3673, + "startedAt": 3826, "status": 200, "ok": true, - "finishedAt": 3686, + "finishedAt": 3842, "contentType": "text/javascript", "resourceTypeHint": "App.jsx" }, @@ -11495,10 +10837,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/context/AuthContext.jsx", "resourceType": "script", - "startedAt": 3673, + "startedAt": 3827, "status": 200, "ok": true, - "finishedAt": 3686, + "finishedAt": 3842, "contentType": "text/javascript", "resourceTypeHint": "AuthContext.jsx" }, @@ -11507,10 +10849,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/styles.css", "resourceType": "script", - "startedAt": 3673, + "startedAt": 3827, "status": 200, "ok": true, - "finishedAt": 3686, + "finishedAt": 3844, "contentType": "text/javascript", "resourceTypeHint": "styles.css" }, @@ -11519,10 +10861,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/index.css", "resourceType": "script", - "startedAt": 3674, + "startedAt": 3827, "status": 200, "ok": true, - "finishedAt": 3686, + "finishedAt": 3843, "contentType": "text/javascript", "resourceTypeHint": "index.css" }, @@ -11531,10 +10873,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/reportWebVitals.js", "resourceType": "script", - "startedAt": 3676, + "startedAt": 3828, "status": 200, "ok": true, - "finishedAt": 3688, + "finishedAt": 3843, "contentType": "text/javascript", "resourceTypeHint": "reportWebVitals.js" }, @@ -11543,10 +10885,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/routes/Article/Article.jsx", "resourceType": "script", - "startedAt": 3676, + "startedAt": 3828, "status": 200, "ok": true, - "finishedAt": 3690, + "finishedAt": 3844, "contentType": "text/javascript", "resourceTypeHint": "Article.jsx" }, @@ -11555,10 +10897,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/routes/Article/CommentsSection.jsx", "resourceType": "script", - "startedAt": 3676, + "startedAt": 3829, "status": 200, "ok": true, - "finishedAt": 3691, + "finishedAt": 3853, "contentType": "text/javascript", "resourceTypeHint": "CommentsSection.jsx" }, @@ -11567,10 +10909,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/routes/ArticleEditor.jsx", "resourceType": "script", - "startedAt": 3677, + "startedAt": 3829, "status": 200, "ok": true, - "finishedAt": 3692, + "finishedAt": 3851, "contentType": "text/javascript", "resourceTypeHint": "ArticleEditor.jsx" }, @@ -11579,22 +10921,22 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/routes/Home.jsx", "resourceType": "script", - "startedAt": 3677, + "startedAt": 3829, "status": 200, "ok": true, + "finishedAt": 3855, "contentType": "text/javascript", - "resourceTypeHint": "Home.jsx", - "finishedAt": 3692 + "resourceTypeHint": "Home.jsx" }, { "id": "net-152", "method": "GET", "url": "http://127.0.0.1:3000/src/routes/HomeArticles.jsx", "resourceType": "script", - "startedAt": 3677, + "startedAt": 3829, "status": 200, "ok": true, - "finishedAt": 3692, + "finishedAt": 3856, "contentType": "text/javascript", "resourceTypeHint": "HomeArticles.jsx" }, @@ -11603,10 +10945,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/routes/Login.jsx", "resourceType": "script", - "startedAt": 3677, + "startedAt": 3829, "status": 200, "ok": true, - "finishedAt": 3695, + "finishedAt": 3856, "contentType": "text/javascript", "resourceTypeHint": "Login.jsx" }, @@ -11615,10 +10957,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/routes/NotFound.jsx", "resourceType": "script", - "startedAt": 3678, + "startedAt": 3830, "status": 200, "ok": true, - "finishedAt": 3695, + "finishedAt": 3856, "contentType": "text/javascript", "resourceTypeHint": "NotFound.jsx" }, @@ -11627,10 +10969,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/routes/Profile/Profile.jsx", "resourceType": "script", - "startedAt": 3678, + "startedAt": 3830, "status": 200, "ok": true, - "finishedAt": 3696, + "finishedAt": 3856, "contentType": "text/javascript", "resourceTypeHint": "Profile.jsx" }, @@ -11639,10 +10981,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/routes/Profile/ProfileArticles.jsx", "resourceType": "script", - "startedAt": 3678, + "startedAt": 3830, "status": 200, "ok": true, - "finishedAt": 3698, + "finishedAt": 3859, "contentType": "text/javascript", "resourceTypeHint": "ProfileArticles.jsx" }, @@ -11651,10 +10993,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/routes/Profile/ProfileFavArticles.jsx", "resourceType": "script", - "startedAt": 3678, + "startedAt": 3831, "status": 200, "ok": true, - "finishedAt": 3699, + "finishedAt": 3864, "contentType": "text/javascript", "resourceTypeHint": "ProfileFavArticles.jsx" }, @@ -11663,10 +11005,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/routes/Settings.jsx", "resourceType": "script", - "startedAt": 3678, + "startedAt": 3831, "status": 200, "ok": true, - "finishedAt": 3699, + "finishedAt": 3859, "contentType": "text/javascript", "resourceTypeHint": "Settings.jsx" }, @@ -11675,10 +11017,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/routes/SignUp.jsx", "resourceType": "script", - "startedAt": 3679, + "startedAt": 3831, "status": 200, "ok": true, - "finishedAt": 3701, + "finishedAt": 3865, "contentType": "text/javascript", "resourceTypeHint": "SignUp.jsx" }, @@ -11687,10 +11029,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/@fs/F:/RealDone/work/real-projects/conduit-postgres/node_modules/vite/dist/client/env.mjs", "resourceType": "script", - "startedAt": 3679, + "startedAt": 3831, "status": 200, "ok": true, - "finishedAt": 3702, + "finishedAt": 3865, "contentType": "text/javascript", "resourceTypeHint": "env.mjs" }, @@ -11699,10 +11041,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/node_modules/.vite/deps/chunk-MP6PTA7G.js?v=96de0870", "resourceType": "script", - "startedAt": 3679, + "startedAt": 3833, "status": 200, "ok": true, - "finishedAt": 3703, + "finishedAt": 3866, "contentType": "text/javascript", "resourceTypeHint": "chunk-MP6PTA7G.js" }, @@ -11711,58 +11053,58 @@ "method": "GET", "url": "http://127.0.0.1:3000/node_modules/.vite/deps/chunk-G3PMV62Z.js?v=96de0870", "resourceType": "script", - "startedAt": 3679, + "startedAt": 3833, "status": 200, "ok": true, - "finishedAt": 3703, + "finishedAt": 3865, "contentType": "text/javascript", "resourceTypeHint": "chunk-G3PMV62Z.js" }, { "id": "net-163", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/Footer/index.js", + "url": "http://127.0.0.1:3000/src/services/getUser.js", "resourceType": "script", - "startedAt": 3689, + "startedAt": 3849, "status": 200, "ok": true, - "finishedAt": 3705, + "finishedAt": 3871, "contentType": "text/javascript", - "resourceTypeHint": "index.js" + "resourceTypeHint": "getUser.js" }, { "id": "net-164", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/Navbar/index.js", + "url": "http://127.0.0.1:3000/src/components/Footer/index.js", "resourceType": "script", - "startedAt": 3692, + "startedAt": 3850, "status": 200, "ok": true, - "finishedAt": 3735, + "finishedAt": 3872, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, { "id": "net-165", "method": "GET", - "url": "http://127.0.0.1:3000/src/services/getUser.js", + "url": "http://127.0.0.1:3000/src/components/Navbar/index.js", "resourceType": "script", - "startedAt": 3693, + "startedAt": 3851, "status": 200, "ok": true, - "finishedAt": 3735, + "finishedAt": 3872, "contentType": "text/javascript", - "resourceTypeHint": "getUser.js" + "resourceTypeHint": "index.js" }, { "id": "net-166", "method": "GET", "url": "http://127.0.0.1:3000/node_modules/.vite/deps/markdown-to-jsx.js?v=96de0870", "resourceType": "script", - "startedAt": 3695, + "startedAt": 3851, "status": 200, "ok": true, - "finishedAt": 3737, + "finishedAt": 3875, "contentType": "text/javascript", "resourceTypeHint": "markdown-to-jsx.js" }, @@ -11771,10 +11113,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/ArticleMeta/index.js", "resourceType": "script", - "startedAt": 3698, + "startedAt": 3851, "status": 200, "ok": true, - "finishedAt": 3738, + "finishedAt": 3873, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, @@ -11783,10 +11125,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/ArticlesButtons/index.js", "resourceType": "script", - "startedAt": 3698, + "startedAt": 3852, "status": 200, "ok": true, - "finishedAt": 3738, + "finishedAt": 3874, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, @@ -11795,10 +11137,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/ArticleTags/index.js", "resourceType": "script", - "startedAt": 3698, + "startedAt": 3852, "status": 200, "ok": true, - "finishedAt": 3738, + "finishedAt": 3874, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, @@ -11807,10 +11149,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/BannerContainer/index.js", "resourceType": "script", - "startedAt": 3699, + "startedAt": 3853, "status": 200, "ok": true, - "finishedAt": 3738, + "finishedAt": 3874, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, @@ -11819,178 +11161,178 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/services/getArticle.js", "resourceType": "script", - "startedAt": 3699, + "startedAt": 3853, "status": 200, "ok": true, - "finishedAt": 3738, + "finishedAt": 3874, "contentType": "text/javascript", "resourceTypeHint": "getArticle.js" }, { "id": "net-172", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/CommentEditor/index.js", + "url": "http://127.0.0.1:3000/node_modules/.vite/deps/chunk-HYJYOVZJ.js?v=96de0870", "resourceType": "script", - "startedAt": 3699, + "startedAt": 3858, "status": 200, "ok": true, - "finishedAt": 3738, + "finishedAt": 3878, "contentType": "text/javascript", - "resourceTypeHint": "index.js" + "resourceTypeHint": "chunk-HYJYOVZJ.js" }, { "id": "net-173", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/CommentList/index.js", + "url": "http://127.0.0.1:3000/src/components/ArticleEditorForm/index.js", "resourceType": "script", - "startedAt": 3699, + "startedAt": 3859, "status": 200, "ok": true, - "finishedAt": 3738, "contentType": "text/javascript", - "resourceTypeHint": "index.js" + "resourceTypeHint": "index.js", + "finishedAt": 3878 }, { "id": "net-174", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/ArticlesPagination/index.js", + "url": "http://127.0.0.1:3000/src/components/ContainerRow/index.js", "resourceType": "script", - "startedAt": 3699, + "startedAt": 3859, "status": 200, "ok": true, - "finishedAt": 3738, + "finishedAt": 3881, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, { "id": "net-175", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/ArticlesPreview/index.js", + "url": "http://127.0.0.1:3000/src/components/CommentEditor/index.js", "resourceType": "script", - "startedAt": 3700, + "startedAt": 3860, "status": 200, "ok": true, - "finishedAt": 3738, + "finishedAt": 3882, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, { "id": "net-176", "method": "GET", - "url": "http://127.0.0.1:3000/src/context/FeedContext.jsx", + "url": "http://127.0.0.1:3000/src/components/CommentList/index.js", "resourceType": "script", - "startedAt": 3700, + "startedAt": 3860, "status": 200, "ok": true, - "finishedAt": 3742, + "finishedAt": 3882, "contentType": "text/javascript", - "resourceTypeHint": "FeedContext.jsx" + "resourceTypeHint": "index.js" }, { "id": "net-177", "method": "GET", - "url": "http://127.0.0.1:3000/src/hooks/useArticles.js", + "url": "http://127.0.0.1:3000/src/components/FeedToggler/index.js", "resourceType": "script", - "startedAt": 3700, + "startedAt": 3860, "status": 200, "ok": true, - "finishedAt": 3742, + "finishedAt": 3882, "contentType": "text/javascript", - "resourceTypeHint": "useArticles.js" + "resourceTypeHint": "index.js" }, { "id": "net-178", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/ArticleEditorForm/index.js", + "url": "http://127.0.0.1:3000/src/context/FeedContext.jsx", "resourceType": "script", - "startedAt": 3700, + "startedAt": 3861, "status": 200, "ok": true, - "finishedAt": 3742, + "finishedAt": 3885, "contentType": "text/javascript", - "resourceTypeHint": "index.js" + "resourceTypeHint": "FeedContext.jsx" }, { "id": "net-179", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/ContainerRow/index.js", + "url": "http://127.0.0.1:3000/src/components/PopularTags/index.js", "resourceType": "script", - "startedAt": 3700, + "startedAt": 3861, "status": 200, "ok": true, - "finishedAt": 3742, + "finishedAt": 3885, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, { "id": "net-180", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/FeedToggler/index.js", + "url": "http://127.0.0.1:3000/src/components/ArticlesPagination/index.js", "resourceType": "script", - "startedAt": 3701, + "startedAt": 3862, "status": 200, "ok": true, - "finishedAt": 3743, + "finishedAt": 3886, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, { "id": "net-181", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/PopularTags/index.js", + "url": "http://127.0.0.1:3000/src/components/ArticlesPreview/index.js", "resourceType": "script", - "startedAt": 3701, + "startedAt": 3862, "status": 200, "ok": true, - "finishedAt": 3745, + "finishedAt": 3885, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, { "id": "net-182", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/AuthPageContainer/index.js", + "url": "http://127.0.0.1:3000/src/hooks/useArticles.js", "resourceType": "script", - "startedAt": 3701, + "startedAt": 3863, "status": 200, "ok": true, - "finishedAt": 3745, + "finishedAt": 3886, "contentType": "text/javascript", - "resourceTypeHint": "index.js" + "resourceTypeHint": "useArticles.js" }, { "id": "net-183", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/LoginForm/index.js", + "url": "http://127.0.0.1:3000/src/components/AuthPageContainer/index.js", "resourceType": "script", - "startedAt": 3701, + "startedAt": 3863, "status": 200, "ok": true, - "finishedAt": 3745, + "finishedAt": 3887, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, { "id": "net-184", "method": "GET", - "url": "http://127.0.0.1:3000/node_modules/.vite/deps/chunk-HYJYOVZJ.js?v=96de0870", + "url": "http://127.0.0.1:3000/src/components/LoginForm/index.js", "resourceType": "script", - "startedAt": 3702, + "startedAt": 3863, "status": 200, "ok": true, - "finishedAt": 3745, + "finishedAt": 3890, "contentType": "text/javascript", - "resourceTypeHint": "chunk-HYJYOVZJ.js" + "resourceTypeHint": "index.js" }, { "id": "net-185", "method": "GET", "url": "http://127.0.0.1:3000/src/components/AuthorInfo/index.js", "resourceType": "script", - "startedAt": 3702, + "startedAt": 3864, "status": 200, "ok": true, - "finishedAt": 3744, + "finishedAt": 3890, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, @@ -11999,10 +11341,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/NavItem/index.js", "resourceType": "script", - "startedAt": 3702, + "startedAt": 3864, "status": 200, "ok": true, - "finishedAt": 3748, + "finishedAt": 3890, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, @@ -12011,10 +11353,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/SettingsForm/index.js", "resourceType": "script", - "startedAt": 3702, + "startedAt": 3865, "status": 200, "ok": true, - "finishedAt": 3749, + "finishedAt": 3891, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, @@ -12023,70 +11365,70 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/SignUpForm/index.js", "resourceType": "script", - "startedAt": 3703, + "startedAt": 3866, "status": 200, "ok": true, - "finishedAt": 3749, + "finishedAt": 3892, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, { "id": "net-189", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/Footer/Footer.jsx", + "url": "http://127.0.0.1:3000/node_modules/.vite/deps/axios.js?v=96de0870", "resourceType": "script", - "startedAt": 3705, + "startedAt": 3872, "status": 200, "ok": true, - "finishedAt": 3749, + "finishedAt": 3899, "contentType": "text/javascript", - "resourceTypeHint": "Footer.jsx" + "resourceTypeHint": "axios.js" }, { "id": "net-190", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/Navbar/Navbar.jsx", + "url": "http://127.0.0.1:3000/src/helpers/errorHandler.js", "resourceType": "script", - "startedAt": 3739, + "startedAt": 3872, "status": 200, "ok": true, - "finishedAt": 3753, + "finishedAt": 3894, "contentType": "text/javascript", - "resourceTypeHint": "Navbar.jsx" + "resourceTypeHint": "errorHandler.js" }, { "id": "net-191", "method": "GET", - "url": "http://127.0.0.1:3000/node_modules/.vite/deps/axios.js?v=96de0870", + "url": "http://127.0.0.1:3000/src/components/Footer/Footer.jsx", "resourceType": "script", - "startedAt": 3742, + "startedAt": 3873, "status": 200, "ok": true, - "finishedAt": 3760, + "finishedAt": 3894, "contentType": "text/javascript", - "resourceTypeHint": "axios.js" + "resourceTypeHint": "Footer.jsx" }, { "id": "net-192", "method": "GET", - "url": "http://127.0.0.1:3000/src/helpers/errorHandler.js", + "url": "http://127.0.0.1:3000/src/components/Navbar/Navbar.jsx", "resourceType": "script", - "startedAt": 3742, + "startedAt": 3873, "status": 200, "ok": true, - "finishedAt": 3758, + "finishedAt": 3894, "contentType": "text/javascript", - "resourceTypeHint": "errorHandler.js" + "resourceTypeHint": "Navbar.jsx" }, { "id": "net-193", "method": "GET", "url": "http://127.0.0.1:3000/src/components/ArticleMeta/ArticleMeta.jsx", "resourceType": "script", - "startedAt": 3743, + "startedAt": 3874, "status": 200, "ok": true, - "finishedAt": 3759, + "finishedAt": 3898, "contentType": "text/javascript", "resourceTypeHint": "ArticleMeta.jsx" }, @@ -12095,10 +11437,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/ArticlesButtons/ArticlesButtons.jsx", "resourceType": "script", - "startedAt": 3743, + "startedAt": 3874, "status": 200, "ok": true, - "finishedAt": 3759, + "finishedAt": 3898, "contentType": "text/javascript", "resourceTypeHint": "ArticlesButtons.jsx" }, @@ -12107,10 +11449,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/ArticleTags/ArticleTags.jsx", "resourceType": "script", - "startedAt": 3743, + "startedAt": 3874, "status": 200, "ok": true, - "finishedAt": 3759, + "finishedAt": 3898, "contentType": "text/javascript", "resourceTypeHint": "ArticleTags.jsx" }, @@ -12119,166 +11461,166 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/BannerContainer/BannerContainer.jsx", "resourceType": "script", - "startedAt": 3743, + "startedAt": 3875, "status": 200, "ok": true, - "finishedAt": 3760, + "finishedAt": 3899, "contentType": "text/javascript", "resourceTypeHint": "BannerContainer.jsx" }, { "id": "net-197", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/CommentEditor/CommentEditor.jsx", + "url": "http://127.0.0.1:3000/src/components/ArticleEditorForm/ArticleEditorForm.jsx", "resourceType": "script", - "startedAt": 3744, + "startedAt": 3884, "status": 200, "ok": true, - "finishedAt": 3762, + "finishedAt": 3904, "contentType": "text/javascript", - "resourceTypeHint": "CommentEditor.jsx" + "resourceTypeHint": "ArticleEditorForm.jsx" }, { "id": "net-198", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/CommentList/CommentList.jsx", + "url": "http://127.0.0.1:3000/src/components/ContainerRow/ContainerRow.jsx", "resourceType": "script", - "startedAt": 3744, + "startedAt": 3888, "status": 200, "ok": true, - "finishedAt": 3764, + "finishedAt": 3905, "contentType": "text/javascript", - "resourceTypeHint": "CommentList.jsx" + "resourceTypeHint": "ContainerRow.jsx" }, { "id": "net-199", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/ArticlesPagination/ArticlesPagination.jsx", + "url": "http://127.0.0.1:3000/src/components/CommentEditor/CommentEditor.jsx", "resourceType": "script", - "startedAt": 3744, + "startedAt": 3888, "status": 200, "ok": true, - "finishedAt": 3766, + "finishedAt": 3905, "contentType": "text/javascript", - "resourceTypeHint": "ArticlesPagination.jsx" + "resourceTypeHint": "CommentEditor.jsx" }, { "id": "net-200", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/ArticlesPreview/ArticlesPreview.jsx", + "url": "http://127.0.0.1:3000/src/components/CommentList/CommentList.jsx", "resourceType": "script", - "startedAt": 3744, + "startedAt": 3888, "status": 200, "ok": true, - "finishedAt": 3766, + "finishedAt": 3905, "contentType": "text/javascript", - "resourceTypeHint": "ArticlesPreview.jsx" + "resourceTypeHint": "CommentList.jsx" }, { "id": "net-201", "method": "GET", - "url": "http://127.0.0.1:3000/src/services/getArticles.js", + "url": "http://127.0.0.1:3000/src/components/FeedToggler/FeedToggler.jsx", "resourceType": "script", - "startedAt": 3745, + "startedAt": 3889, "status": 200, "ok": true, - "finishedAt": 3766, + "finishedAt": 3905, "contentType": "text/javascript", - "resourceTypeHint": "getArticles.js" + "resourceTypeHint": "FeedToggler.jsx" }, { "id": "net-202", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/ArticleEditorForm/ArticleEditorForm.jsx", + "url": "http://127.0.0.1:3000/src/components/ArticlesPreview/ArticlesPreview.jsx", "resourceType": "script", - "startedAt": 3745, + "startedAt": 3892, "status": 200, "ok": true, - "finishedAt": 3766, + "finishedAt": 3911, "contentType": "text/javascript", - "resourceTypeHint": "ArticleEditorForm.jsx" + "resourceTypeHint": "ArticlesPreview.jsx" }, { "id": "net-203", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/ContainerRow/ContainerRow.jsx", + "url": "http://127.0.0.1:3000/src/components/PopularTags/PopularTags.jsx", "resourceType": "script", - "startedAt": 3745, + "startedAt": 3893, "status": 200, "ok": true, - "finishedAt": 3769, + "finishedAt": 3912, "contentType": "text/javascript", - "resourceTypeHint": "ContainerRow.jsx" + "resourceTypeHint": "PopularTags.jsx" }, { "id": "net-204", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/FeedToggler/FeedToggler.jsx", + "url": "http://127.0.0.1:3000/src/components/ArticlesPagination/ArticlesPagination.jsx", "resourceType": "script", - "startedAt": 3745, + "startedAt": 3893, "status": 200, "ok": true, - "finishedAt": 3769, + "finishedAt": 3912, "contentType": "text/javascript", - "resourceTypeHint": "FeedToggler.jsx" + "resourceTypeHint": "ArticlesPagination.jsx" }, { "id": "net-205", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/AuthorInfo/AuthorInfo.jsx", + "url": "http://127.0.0.1:3000/src/services/getArticles.js", "resourceType": "script", - "startedAt": 3745, + "startedAt": 3893, "status": 200, "ok": true, - "finishedAt": 3769, + "finishedAt": 3912, "contentType": "text/javascript", - "resourceTypeHint": "AuthorInfo.jsx" + "resourceTypeHint": "getArticles.js" }, { "id": "net-206", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/PopularTags/PopularTags.jsx", + "url": "http://127.0.0.1:3000/src/components/AuthPageContainer/AuthPageContainer.jsx", "resourceType": "script", - "startedAt": 3748, + "startedAt": 3893, "status": 200, "ok": true, - "finishedAt": 3769, + "finishedAt": 3912, "contentType": "text/javascript", - "resourceTypeHint": "PopularTags.jsx" + "resourceTypeHint": "AuthPageContainer.jsx" }, { "id": "net-207", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/AuthPageContainer/AuthPageContainer.jsx", + "url": "http://127.0.0.1:3000/src/components/LoginForm/LoginForm.jsx", "resourceType": "script", - "startedAt": 3749, + "startedAt": 3896, "status": 200, "ok": true, - "finishedAt": 3769, + "finishedAt": 3916, "contentType": "text/javascript", - "resourceTypeHint": "AuthPageContainer.jsx" + "resourceTypeHint": "LoginForm.jsx" }, { "id": "net-208", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/LoginForm/LoginForm.jsx", + "url": "http://127.0.0.1:3000/src/components/AuthorInfo/AuthorInfo.jsx", "resourceType": "script", - "startedAt": 3749, + "startedAt": 3897, "status": 200, "ok": true, - "finishedAt": 3770, + "finishedAt": 3916, "contentType": "text/javascript", - "resourceTypeHint": "LoginForm.jsx" + "resourceTypeHint": "AuthorInfo.jsx" }, { "id": "net-209", "method": "GET", "url": "http://127.0.0.1:3000/src/components/NavItem/NavItem.jsx", "resourceType": "script", - "startedAt": 3752, + "startedAt": 3897, "status": 200, "ok": true, - "finishedAt": 3772, + "finishedAt": 3916, "contentType": "text/javascript", "resourceTypeHint": "NavItem.jsx" }, @@ -12287,10 +11629,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/SettingsForm/SettingsForm.jsx", "resourceType": "script", - "startedAt": 3752, + "startedAt": 3897, "status": 200, "ok": true, - "finishedAt": 3775, + "finishedAt": 3916, "contentType": "text/javascript", "resourceTypeHint": "SettingsForm.jsx" }, @@ -12299,10 +11641,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/SignUpForm/SignUpForm.jsx", "resourceType": "script", - "startedAt": 3753, + "startedAt": 3898, "status": 200, "ok": true, - "finishedAt": 3774, + "finishedAt": 3918, "contentType": "text/javascript", "resourceTypeHint": "SignUpForm.jsx" }, @@ -12311,10 +11653,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/SourceCodeLink/index.js", "resourceType": "script", - "startedAt": 3753, + "startedAt": 3898, "status": 200, "ok": true, - "finishedAt": 3774, + "finishedAt": 3916, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, @@ -12323,10 +11665,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/Navbar/DropdownMenu.jsx", "resourceType": "script", - "startedAt": 3753, + "startedAt": 3898, "status": 200, "ok": true, - "finishedAt": 3775, + "finishedAt": 3920, "contentType": "text/javascript", "resourceTypeHint": "DropdownMenu.jsx" }, @@ -12335,10 +11677,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/helpers/dateFormatter.js", "resourceType": "script", - "startedAt": 3763, + "startedAt": 3899, "status": 200, "ok": true, - "finishedAt": 3776, + "finishedAt": 3920, "contentType": "text/javascript", "resourceTypeHint": "dateFormatter.js" }, @@ -12347,10 +11689,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/Avatar/index.js", "resourceType": "script", - "startedAt": 3763, + "startedAt": 3899, "status": 200, "ok": true, - "finishedAt": 3776, + "finishedAt": 3920, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, @@ -12359,10 +11701,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/ArticleAuthorButtons/index.js", "resourceType": "script", - "startedAt": 3764, + "startedAt": 3899, "status": 200, "ok": true, - "finishedAt": 3778, + "finishedAt": 3920, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, @@ -12371,10 +11713,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/FavButton/index.js", "resourceType": "script", - "startedAt": 3766, + "startedAt": 3900, "status": 200, "ok": true, - "finishedAt": 3779, + "finishedAt": 3921, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, @@ -12383,142 +11725,142 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/FollowButton/index.js", "resourceType": "script", - "startedAt": 3766, + "startedAt": 3900, "status": 200, "ok": true, - "finishedAt": 3779, + "finishedAt": 3921, "contentType": "text/javascript", "resourceTypeHint": "index.js" }, { "id": "net-219", "method": "GET", - "url": "http://127.0.0.1:3000/src/services/postComment.js", + "url": "http://127.0.0.1:3000/src/services/setArticle.js", "resourceType": "script", - "startedAt": 3769, + "startedAt": 3905, "status": 200, "ok": true, - "finishedAt": 3783, + "finishedAt": 3925, "contentType": "text/javascript", - "resourceTypeHint": "postComment.js" + "resourceTypeHint": "setArticle.js" }, { "id": "net-220", "method": "GET", - "url": "http://127.0.0.1:3000/src/services/deleteComment.js", + "url": "http://127.0.0.1:3000/src/components/FormFieldset/index.js", "resourceType": "script", - "startedAt": 3770, + "startedAt": 3905, "status": 200, "ok": true, - "finishedAt": 3783, + "finishedAt": 3926, "contentType": "text/javascript", - "resourceTypeHint": "deleteComment.js" + "resourceTypeHint": "index.js" }, { "id": "net-221", "method": "GET", - "url": "http://127.0.0.1:3000/src/services/getComments.js", + "url": "http://127.0.0.1:3000/src/services/postComment.js", "resourceType": "script", - "startedAt": 3770, + "startedAt": 3907, "status": 200, "ok": true, - "finishedAt": 3784, + "finishedAt": 3927, "contentType": "text/javascript", - "resourceTypeHint": "getComments.js" + "resourceTypeHint": "postComment.js" }, { "id": "net-222", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/CommentList/CommentAuthor.jsx", + "url": "http://127.0.0.1:3000/src/services/deleteComment.js", "resourceType": "script", - "startedAt": 3770, + "startedAt": 3908, "status": 200, "ok": true, - "finishedAt": 3785, + "finishedAt": 3928, "contentType": "text/javascript", - "resourceTypeHint": "CommentAuthor.jsx" + "resourceTypeHint": "deleteComment.js" }, { "id": "net-223", "method": "GET", - "url": "http://127.0.0.1:3000/node_modules/.vite/deps/react-paginate.js?v=96de0870", + "url": "http://127.0.0.1:3000/src/services/getComments.js", "resourceType": "script", - "startedAt": 3770, + "startedAt": 3908, "status": 200, "ok": true, - "finishedAt": 3785, + "finishedAt": 3928, "contentType": "text/javascript", - "resourceTypeHint": "react-paginate.js" + "resourceTypeHint": "getComments.js" }, { "id": "net-224", "method": "GET", - "url": "http://127.0.0.1:3000/src/services/setArticle.js", + "url": "http://127.0.0.1:3000/src/components/CommentList/CommentAuthor.jsx", "resourceType": "script", - "startedAt": 3770, + "startedAt": 3908, "status": 200, "ok": true, - "finishedAt": 3785, + "finishedAt": 3928, "contentType": "text/javascript", - "resourceTypeHint": "setArticle.js" + "resourceTypeHint": "CommentAuthor.jsx" }, { "id": "net-225", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/FormFieldset/index.js", + "url": "http://127.0.0.1:3000/src/components/FeedToggler/FeedNavLink.jsx", "resourceType": "script", - "startedAt": 3771, + "startedAt": 3909, "status": 200, "ok": true, - "finishedAt": 3786, + "finishedAt": 3928, "contentType": "text/javascript", - "resourceTypeHint": "index.js" + "resourceTypeHint": "FeedNavLink.jsx" }, { "id": "net-226", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/FeedToggler/FeedNavLink.jsx", + "url": "http://127.0.0.1:3000/src/services/getTags.js", "resourceType": "script", - "startedAt": 3771, + "startedAt": 3912, "status": 200, "ok": true, - "finishedAt": 3787, + "finishedAt": 3928, "contentType": "text/javascript", - "resourceTypeHint": "FeedNavLink.jsx" + "resourceTypeHint": "getTags.js" }, { "id": "net-227", "method": "GET", - "url": "http://127.0.0.1:3000/src/services/getTags.js", + "url": "http://127.0.0.1:3000/src/components/PopularTags/TagButton.jsx", "resourceType": "script", - "startedAt": 3771, + "startedAt": 3913, "status": 200, "ok": true, - "finishedAt": 3787, + "finishedAt": 3928, "contentType": "text/javascript", - "resourceTypeHint": "getTags.js" + "resourceTypeHint": "TagButton.jsx" }, { "id": "net-228", "method": "GET", - "url": "http://127.0.0.1:3000/src/components/PopularTags/TagButton.jsx", + "url": "http://127.0.0.1:3000/node_modules/.vite/deps/react-paginate.js?v=96de0870", "resourceType": "script", - "startedAt": 3771, + "startedAt": 3913, "status": 200, "ok": true, - "finishedAt": 3788, + "finishedAt": 3928, "contentType": "text/javascript", - "resourceTypeHint": "TagButton.jsx" + "resourceTypeHint": "react-paginate.js" }, { "id": "net-229", "method": "GET", "url": "http://127.0.0.1:3000/src/services/getProfile.js", "resourceType": "script", - "startedAt": 3772, + "startedAt": 3918, "status": 200, "ok": true, - "finishedAt": 3788, + "finishedAt": 3929, "contentType": "text/javascript", "resourceTypeHint": "getProfile.js" }, @@ -12527,10 +11869,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/services/userLogin.js", "resourceType": "script", - "startedAt": 3774, + "startedAt": 3919, "status": 200, "ok": true, - "finishedAt": 3789, + "finishedAt": 3930, "contentType": "text/javascript", "resourceTypeHint": "userLogin.js" }, @@ -12539,46 +11881,46 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/SourceCodeLink/SourceCodeLink.jsx", "resourceType": "script", - "startedAt": 3775, + "startedAt": 3922, "status": 200, "ok": true, - "finishedAt": 3790, + "finishedAt": 3932, "contentType": "text/javascript", "resourceTypeHint": "SourceCodeLink.jsx" }, { "id": "net-232", "method": "GET", - "url": "http://127.0.0.1:3000/src/services/userSignUp.js", + "url": "http://127.0.0.1:3000/src/services/userUpdate.js", "resourceType": "script", - "startedAt": 3775, + "startedAt": 3922, "status": 200, "ok": true, - "finishedAt": 3790, + "finishedAt": 3932, "contentType": "text/javascript", - "resourceTypeHint": "userSignUp.js" + "resourceTypeHint": "userUpdate.js" }, { "id": "net-233", "method": "GET", - "url": "http://127.0.0.1:3000/src/services/userUpdate.js", + "url": "http://127.0.0.1:3000/src/services/userSignUp.js", "resourceType": "script", - "startedAt": 3775, + "startedAt": 3923, "status": 200, "ok": true, - "finishedAt": 3790, + "finishedAt": 3932, "contentType": "text/javascript", - "resourceTypeHint": "userUpdate.js" + "resourceTypeHint": "userSignUp.js" }, { "id": "net-234", "method": "GET", "url": "http://127.0.0.1:3000/src/services/userLogout.js", "resourceType": "script", - "startedAt": 3775, + "startedAt": 3923, "status": 200, "ok": true, - "finishedAt": 3790, + "finishedAt": 3932, "contentType": "text/javascript", "resourceTypeHint": "userLogout.js" }, @@ -12587,10 +11929,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/Navbar/DropdownItem.jsx", "resourceType": "script", - "startedAt": 3776, + "startedAt": 3923, "status": 200, "ok": true, - "finishedAt": 3790, + "finishedAt": 3933, "contentType": "text/javascript", "resourceTypeHint": "DropdownItem.jsx" }, @@ -12599,10 +11941,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/Avatar/Avatar.jsx", "resourceType": "script", - "startedAt": 3776, + "startedAt": 3924, "status": 200, "ok": true, - "finishedAt": 3794, + "finishedAt": 3934, "contentType": "text/javascript", "resourceTypeHint": "Avatar.jsx" }, @@ -12611,10 +11953,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/ArticleAuthorButtons/ArticleAuthorButtons.jsx", "resourceType": "script", - "startedAt": 3778, + "startedAt": 3925, "status": 200, "ok": true, - "finishedAt": 3794, + "finishedAt": 3934, "contentType": "text/javascript", "resourceTypeHint": "ArticleAuthorButtons.jsx" }, @@ -12623,10 +11965,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/FavButton/FavButton.jsx", "resourceType": "script", - "startedAt": 3779, + "startedAt": 3925, "status": 200, "ok": true, - "finishedAt": 3794, + "finishedAt": 3935, "contentType": "text/javascript", "resourceTypeHint": "FavButton.jsx" }, @@ -12635,10 +11977,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/FollowButton/FollowButton.jsx", "resourceType": "script", - "startedAt": 3779, + "startedAt": 3926, "status": 200, "ok": true, - "finishedAt": 3795, + "finishedAt": 3935, "contentType": "text/javascript", "resourceTypeHint": "FollowButton.jsx" }, @@ -12647,34 +11989,34 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/components/FormFieldset/FormFieldset.jsx", "resourceType": "script", - "startedAt": 3790, + "startedAt": 3927, "status": 200, "ok": true, + "finishedAt": 3936, "contentType": "text/javascript", - "resourceTypeHint": "FormFieldset.jsx", - "finishedAt": 3799 + "resourceTypeHint": "FormFieldset.jsx" }, { "id": "net-241", "method": "GET", "url": "http://127.0.0.1:3000/src/assets/smiley-cyrus.jpeg?import", "resourceType": "script", - "startedAt": 3795, + "startedAt": 3935, "status": 200, "ok": true, + "finishedAt": 3939, "contentType": "text/javascript", - "resourceTypeHint": "smiley-cyrus.jpeg", - "finishedAt": 3801 + "resourceTypeHint": "smiley-cyrus.jpeg" }, { "id": "net-242", "method": "GET", "url": "http://127.0.0.1:3000/src/services/deleteArticle.js", "resourceType": "script", - "startedAt": 3795, + "startedAt": 3935, "status": 200, "ok": true, - "finishedAt": 3800, + "finishedAt": 3940, "contentType": "text/javascript", "resourceTypeHint": "deleteArticle.js" }, @@ -12683,10 +12025,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/services/toggleFav.js", "resourceType": "script", - "startedAt": 3795, + "startedAt": 3935, "status": 200, "ok": true, - "finishedAt": 3800, + "finishedAt": 3940, "contentType": "text/javascript", "resourceTypeHint": "toggleFav.js" }, @@ -12695,10 +12037,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/services/toggleFollow.js", "resourceType": "script", - "startedAt": 3795, + "startedAt": 3935, "status": 200, "ok": true, - "finishedAt": 3800, + "finishedAt": 3940, "contentType": "text/javascript", "resourceTypeHint": "toggleFollow.js" }, @@ -12707,10 +12049,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/src/assets/smiley-cyrus.jpeg", "resourceType": "image", - "startedAt": 3811, + "startedAt": 3952, "status": 200, "ok": true, - "finishedAt": 3820, + "finishedAt": 3963, "contentType": "image/jpeg", "resourceTypeHint": "smiley-cyrus.jpeg" }, @@ -12719,10 +12061,10 @@ "method": "GET", "url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdu.woff2", "resourceType": "font", - "startedAt": 3813, + "startedAt": 3954, "status": 200, "ok": true, - "finishedAt": 3859, + "finishedAt": 4001, "contentType": "font/woff2", "resourceTypeHint": "6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdu.woff2" }, @@ -12731,10 +12073,10 @@ "method": "GET", "url": "https://code.ionicframework.com/ionicons/2.0.1/fonts/ionicons.ttf?v=2.0.1", "resourceType": "font", - "startedAt": 3814, + "startedAt": 3955, "status": 200, "ok": true, - "finishedAt": 3900, + "finishedAt": 4074, "contentType": "font/ttf", "resourceTypeHint": "ionicons.ttf" }, @@ -12743,10 +12085,10 @@ "method": "GET", "url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7l.woff2", "resourceType": "font", - "startedAt": 3815, + "startedAt": 3956, "status": 200, "ok": true, - "finishedAt": 3861, + "finishedAt": 4003, "contentType": "font/woff2", "resourceTypeHint": "6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7l.woff2" }, @@ -12755,10 +12097,10 @@ "method": "GET", "url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7nsDI.woff2", "resourceType": "font", - "startedAt": 3815, + "startedAt": 3956, "status": 200, "ok": true, - "finishedAt": 3862, + "finishedAt": 4003, "contentType": "font/woff2", "resourceTypeHint": "6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7nsDI.woff2" }, @@ -12767,34 +12109,34 @@ "method": "GET", "url": "http://127.0.0.1:3000/api/articles/feed?limit=3&&offset=0", "resourceType": "xhr", - "startedAt": 3817, + "startedAt": 3958, "status": 200, "ok": true, + "finishedAt": 3970, "contentType": "application/json", - "resourceTypeHint": "feed", - "finishedAt": 3830 + "resourceTypeHint": "feed" }, { "id": "net-251", "method": "GET", "url": "http://127.0.0.1:3000/api/tags", "resourceType": "xhr", - "startedAt": 3818, + "startedAt": 3959, "status": 200, "ok": true, + "finishedAt": 3972, "contentType": "application/json", - "resourceTypeHint": "tags", - "finishedAt": 3829 + "resourceTypeHint": "tags" }, { "id": "net-252", "method": "GET", "url": "http://127.0.0.1:3000/api/user", "resourceType": "xhr", - "startedAt": 3818, + "startedAt": 3960, "status": 200, "ok": true, - "finishedAt": 3830, + "finishedAt": 3973, "contentType": "application/json", "resourceTypeHint": "user" }, @@ -12803,10 +12145,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/api/articles/feed?limit=3&&offset=0", "resourceType": "xhr", - "startedAt": 3819, + "startedAt": 3962, "status": 200, "ok": true, - "finishedAt": 3833, + "finishedAt": 3977, "contentType": "application/json", "resourceTypeHint": "feed" }, @@ -12815,10 +12157,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/api/tags", "resourceType": "xhr", - "startedAt": 3820, + "startedAt": 3963, "status": 200, "ok": true, - "finishedAt": 3832, + "finishedAt": 3976, "contentType": "application/json", "resourceTypeHint": "tags" }, @@ -12827,10 +12169,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/api/user", "resourceType": "xhr", - "startedAt": 3820, + "startedAt": 3964, "status": 200, "ok": true, - "finishedAt": 3833, + "finishedAt": 3976, "contentType": "application/json", "resourceTypeHint": "user" } @@ -12843,14 +12185,14 @@ "selector": "body > div > main > div > div > div > div > form > fieldset:nth-of-type(1) > input", "name": "username", "type": "text", - "value": "RD_TEST_94DC14_1", + "value": "RD_TEST_3D72CE_1", "redacted": false }, { "selector": "body > div > main > div > div > div > div > form > fieldset:nth-of-type(2) > input", "name": "email", "type": "email", - "value": "rd-rd_test_94dc14_2@example.test", + "value": "rd-rd_test_3d72ce_2@example.test", "redacted": false }, { @@ -12873,14 +12215,14 @@ "weight": 60, "matchCount": 3, "visibleCount": 3, - "elapsedMs": 8 + "elapsedMs": 3 }, { "strategy": "css", "weight": 35, "matchCount": 1, "visibleCount": 1, - "elapsedMs": 3 + "elapsedMs": 2 } ], "chosenStrategy": "css", @@ -12888,7 +12230,7 @@ "retryCount": 0 }, "before": { - "at": 1411, + "at": 1462, "url": "http://127.0.0.1:3000/#/register", "title": "Conduit", "domHash": "1f4fa65964895f4c", @@ -12977,10 +12319,10 @@ ] }, "beforeAction": { - "at": 1459, + "at": 1496, "url": "http://127.0.0.1:3000/#/register", "title": "Conduit", - "domHash": "38e51048cb4753ea", + "domHash": "98d032663fb14180", "canaryPresent": true, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -13000,7 +12342,7 @@ "tag": "input", "type": "text", "name": "username", - "valueHash": "1eb9560992636bb2", + "valueHash": "0653c803bd099914", "checked": false, "disabled": false, "visible": true @@ -13009,7 +12351,7 @@ "tag": "input", "type": "email", "name": "email", - "valueHash": "4310e67637917990", + "valueHash": "1f000865a7e3a74a", "checked": false, "disabled": false, "visible": true @@ -13045,10 +12387,10 @@ "targetDisabledAfter": false, "networkSettled": true, "after": { - "at": 2595, + "at": 2607, "url": "http://127.0.0.1:3000/#/", "title": "Conduit", - "domHash": "21fd9c89a8da4f36", + "domHash": "a68879a8f6df4737", "canaryPresent": true, "bodyCanaryPresent": true, "temporaryBlobUrls": 0, @@ -13060,9 +12402,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "61c2b986b674b598", + "textHash": "5cc6c79dade7c998", "visualHash": "dfad2167a8f7c17f", - "text": "conduit Source code Home New Article RD_TEST_94DC14_1 Your Feed Global Feed Articles not available. Popular Tags Tags list not available conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", + "text": "conduit Source code Home New Article RD_TEST_3D72CE_1 Your Feed Global Feed Articles not available. Popular Tags Tags list not available conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "button", @@ -13086,7 +12428,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "565b1f0633a9a0d8", + "valueHash": "117614825226bbaa", "containsCanary": true } ], @@ -13109,8 +12451,8 @@ "schemaHash": "4dc457684d4d0982", "rows": [ { - "keyHash": "667da1af4b45220f", - "rowHash": "dca511a216c6426d", + "keyHash": "186347d9ea7673a2", + "rowHash": "b722d6313737881a", "softDeleted": false } ], @@ -13122,8 +12464,8 @@ "schemaHash": "17fd9bf966bbce4c", "rows": [ { - "keyHash": "667da1af4b45220f", - "rowHash": "77d050510adb246e", + "keyHash": "186347d9ea7673a2", + "rowHash": "714a2b3e2a26f5e1", "softDeleted": false } ], @@ -13135,25 +12477,25 @@ "webSockets": [ { "url": "ws://127.0.0.1:3000/?token=%5BREDACTED%5D", - "openedAt": 2760, + "openedAt": 2931, "sentFrames": 0, "receivedFrames": 1, "errors": [], - "closedAt": 3660 + "closedAt": 3810 }, { "url": "ws://127.0.0.1:3000/?token=%5BREDACTED%5D", - "openedAt": 3752, + "openedAt": 3906, "sentFrames": 0, "receivedFrames": 1, "errors": [] } ], "afterRefresh": { - "at": 3626, + "at": 3764, "url": "http://127.0.0.1:3000/#/", "title": "Conduit", - "domHash": "21fd9c89a8da4f36", + "domHash": "a68879a8f6df4737", "canaryPresent": true, "bodyCanaryPresent": true, "temporaryBlobUrls": 0, @@ -13165,9 +12507,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "61c2b986b674b598", + "textHash": "5cc6c79dade7c998", "visualHash": "dfad2167a8f7c17f", - "text": "conduit Source code Home New Article RD_TEST_94DC14_1 Your Feed Global Feed Articles not available. Popular Tags Tags list not available conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", + "text": "conduit Source code Home New Article RD_TEST_3D72CE_1 Your Feed Global Feed Articles not available. Popular Tags Tags list not available conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "button", @@ -13191,7 +12533,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "565b1f0633a9a0d8", + "valueHash": "117614825226bbaa", "containsCanary": true } ], @@ -13203,10 +12545,10 @@ }, "refreshScreenshot": "screenshots/cf5c3df21bab-refresh.png", "afterHardRefresh": { - "at": 4644, + "at": 4771, "url": "http://127.0.0.1:3000/#/", "title": "Conduit", - "domHash": "21fd9c89a8da4f36", + "domHash": "a68879a8f6df4737", "canaryPresent": true, "bodyCanaryPresent": true, "temporaryBlobUrls": 0, @@ -13218,9 +12560,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "61c2b986b674b598", + "textHash": "5cc6c79dade7c998", "visualHash": "dfad2167a8f7c17f", - "text": "conduit Source code Home New Article RD_TEST_94DC14_1 Your Feed Global Feed Articles not available. Popular Tags Tags list not available conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", + "text": "conduit Source code Home New Article RD_TEST_3D72CE_1 Your Feed Global Feed Articles not available. Popular Tags Tags list not available conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "button", @@ -13244,7 +12586,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "565b1f0633a9a0d8", + "valueHash": "117614825226bbaa", "containsCanary": true } ], @@ -13255,10 +12597,10 @@ } }, "afterNewTab": { - "at": 5739, + "at": 5850, "url": "http://127.0.0.1:3000/#/register", "title": "Conduit", - "domHash": "f7e20d95e411fa53", + "domHash": "1aaf74668a205c07", "canaryPresent": true, "bodyCanaryPresent": true, "temporaryBlobUrls": 0, @@ -13270,9 +12612,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "aa0006cd37e80320", + "textHash": "b3e70a4f00a9d673", "visualHash": "4ab503dc0bf627e7", - "text": "conduit Source code Home New Article RD_TEST_94DC14_1 Sign up Sign in to your account Sign up conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", + "text": "conduit Source code Home New Article RD_TEST_3D72CE_1 Sign up Sign in to your account Sign up conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "input", @@ -13316,7 +12658,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "565b1f0633a9a0d8", + "valueHash": "117614825226bbaa", "containsCanary": true } ], @@ -13327,7 +12669,7 @@ } }, "afterNewContext": { - "at": 6983, + "at": 7171, "url": "http://127.0.0.1:3000/#/", "title": "Conduit", "domHash": "3c44d4d1ff59317a", @@ -13380,7 +12722,7 @@ "adapter": "postgresql", "resource": "users", "added": [ - "667da1af4b45220f" + "186347d9ea7673a2" ], "removed": [], "changed": [], @@ -13391,7 +12733,7 @@ "adapter": "supabase", "resource": "users", "added": [ - "667da1af4b45220f" + "186347d9ea7673a2" ], "removed": [], "changed": [], @@ -13400,7 +12742,7 @@ } ], "sourceSnapshotErrors": [], - "snapshotIndex": "snapshots/RD-026.index.json" + "snapshotIndex": "snapshots/RD-017.index.json" }, "verdict": "VERIFIED", "evidenceLevel": 6, @@ -13408,7 +12750,7 @@ "detectorMatches": [] }, { - "id": "RD-027", + "id": "RD-018", "action": { "id": "0b13af847ba5", "pageUrl": "http://127.0.0.1:3000/#/register", @@ -13461,19 +12803,19 @@ "fields": [] }, "evidence": { - "startedAt": "2026-07-23T15:02:11.187Z", - "durationMs": 2452, - "canary": "RD_TEST_B3C2FD", + "startedAt": "2026-07-26T08:31:42.284Z", + "durationMs": 2471, + "canary": "RD_TEST_C63DD2", "network": [ { "id": "net-1", "method": "GET", "url": "http://127.0.0.1:3000/api/articles?limit=3&&offset=0", "resourceType": "xhr", - "startedAt": 1482, + "startedAt": 1495, "status": 200, "ok": true, - "finishedAt": 1491, + "finishedAt": 1508, "contentType": "application/json", "resourceTypeHint": "articles" }, @@ -13482,22 +12824,22 @@ "method": "GET", "url": "http://127.0.0.1:3000/api/tags", "resourceType": "xhr", - "startedAt": 1483, + "startedAt": 1496, "status": 200, "ok": true, + "finishedAt": 1507, "contentType": "application/json", - "resourceTypeHint": "tags", - "finishedAt": 1491 + "resourceTypeHint": "tags" }, { "id": "net-3", "method": "GET", "url": "http://127.0.0.1:3000/api/articles?limit=3&&offset=0", "resourceType": "xhr", - "startedAt": 1484, + "startedAt": 1496, "status": 200, "ok": true, - "finishedAt": 1492, + "finishedAt": 1508, "contentType": "application/json", "resourceTypeHint": "articles" }, @@ -13506,10 +12848,10 @@ "method": "GET", "url": "http://127.0.0.1:3000/api/tags", "resourceType": "xhr", - "startedAt": 1484, + "startedAt": 1497, "status": 200, "ok": true, - "finishedAt": 1492, + "finishedAt": 1509, "contentType": "application/json", "resourceTypeHint": "tags" } @@ -13530,35 +12872,35 @@ "weight": 92, "matchCount": 2, "visibleCount": 2, - "elapsedMs": 7 + "elapsedMs": 5 }, { "strategy": "role", "weight": 82, "matchCount": 2, "visibleCount": 2, - "elapsedMs": 6 + "elapsedMs": 3 }, { "strategy": "href", "weight": 72, "matchCount": 0, "visibleCount": 0, - "elapsedMs": 2 + "elapsedMs": 1 }, { "strategy": "text", "weight": 60, "matchCount": 2, "visibleCount": 2, - "elapsedMs": 5 + "elapsedMs": 3 }, { "strategy": "css", "weight": 35, "matchCount": 1, "visibleCount": 1, - "elapsedMs": 4 + "elapsedMs": 1 } ], "chosenStrategy": "css", @@ -13566,7 +12908,7 @@ "retryCount": 0 }, "before": { - "at": 1440, + "at": 1456, "url": "http://127.0.0.1:3000/#/register", "title": "Conduit", "domHash": "1f4fa65964895f4c", @@ -13632,7 +12974,7 @@ } }, "beforeAction": { - "at": 1448, + "at": 1464, "url": "http://127.0.0.1:3000/#/register", "title": "Conduit", "domHash": "1f4fa65964895f4c", @@ -13700,7 +13042,7 @@ "networkSettled": true, "targetBusyAfter": false, "after": { - "at": 2448, + "at": 2468, "url": "http://127.0.0.1:3000/#/", "title": "Conduit", "domHash": "3c44d4d1ff59317a", @@ -13738,7 +13080,7 @@ "indexedDb": [] } }, - "snapshotIndex": "snapshots/RD-027.index.json" + "snapshotIndex": "snapshots/RD-018.index.json" }, "verdict": "VERIFIED", "evidenceLevel": 2, @@ -13746,10 +13088,83 @@ "detectorMatches": [] }, { - "id": "RD-028", + "id": "RD-019", "action": { - "id": "1f3d957d32f9", - "pageUrl": "http://127.0.0.1:3000/#/register", + "id": "25e3419d67d3", + "pageUrl": "http://127.0.0.1:3000/", + "label": "Source code", + "activation": "click", + "kind": "navigation", + "intent": "navigate", + "risk": "safe", + "fingerprint": { + "selector": "body > div > header > nav > div > ul:nth-of-type(1) > li > a", + "tag": "a", + "ordinal": 1, + "role": "link", + "accessibleName": "Source code", + "text": "Source code", + "href": "https://github.com/TonyMckes/conduit-realworld-example-app", + "candidates": [ + { + "strategy": "role", + "weight": 92, + "role": "link", + "name": "Source code", + "exact": true + }, + { + "strategy": "role", + "weight": 82, + "role": "link", + "name": "Source code", + "exact": false + }, + { + "strategy": "href", + "weight": 72, + "value": "https://github.com/TonyMckes/conduit-realworld-example-app" + }, + { + "strategy": "text", + "weight": 60, + "value": "Source code", + "exact": true + }, + { + "strategy": "css", + "weight": 35, + "selector": "body > div > header > nav > div > ul:nth-of-type(1) > li > a" + } + ] + }, + "fields": [] + }, + "verdict": "SKIPPED", + "evidenceLevel": 0, + "reason": "Cross-origin navigation blocked by the default safety policy. Use --allow-external explicitly.", + "skippedReason": "Cross-origin navigation blocked by the default safety policy. Use --allow-external explicitly.", + "detectorMatches": [], + "evidence": { + "startedAt": "", + "durationMs": 0, + "canary": "", + "network": [], + "console": [], + "pageErrors": [], + "uiClaims": [], + "filledFields": [], + "dialogs": [], + "downloads": [], + "popupUrls": [], + "snapshotIndex": "snapshots/RD-019.index.json" + } + }, + { + "id": "RD-020", + "action": { + "id": "6959be4b6ca4", + "pageUrl": "http://127.0.0.1:3000/", "label": "Thinkster", "activation": "click", "kind": "navigation", @@ -13758,7 +13173,7 @@ "fingerprint": { "selector": "body > div > footer > div > span > a", "tag": "a", - "ordinal": 8, + "ordinal": 7, "role": "link", "accessibleName": "Thinkster", "text": "Thinkster", @@ -13815,14 +13230,14 @@ "dialogs": [], "downloads": [], "popupUrls": [], - "snapshotIndex": "snapshots/RD-028.index.json" + "snapshotIndex": "snapshots/RD-020.index.json" } }, { - "id": "RD-029", + "id": "RD-021", "action": { - "id": "fd605c2f6cee", - "pageUrl": "http://127.0.0.1:3000/#/register", + "id": "c9b7b6b4d242", + "pageUrl": "http://127.0.0.1:3000/", "label": "Source code", "activation": "click", "kind": "navigation", @@ -13831,7 +13246,7 @@ "fingerprint": { "selector": "body > div > footer > div > ul > li > a", "tag": "a", - "ordinal": 9, + "ordinal": 8, "role": "link", "accessibleName": "Source code", "text": "Source code", @@ -13888,14 +13303,598 @@ "dialogs": [], "downloads": [], "popupUrls": [], - "snapshotIndex": "snapshots/RD-029.index.json" + "snapshotIndex": "snapshots/RD-021.index.json" } - } - ], - "environment": { + }, + { + "id": "RD-022", + "action": { + "id": "1e4683e9dd3a", + "pageUrl": "http://127.0.0.1:3000/#/login", + "label": "Source code", + "activation": "click", + "kind": "navigation", + "intent": "navigate", + "risk": "safe", + "fingerprint": { + "selector": "body > div > header > nav > div > ul:nth-of-type(1) > li > a", + "tag": "a", + "ordinal": 1, + "role": "link", + "accessibleName": "Source code", + "text": "Source code", + "href": "https://github.com/TonyMckes/conduit-realworld-example-app", + "candidates": [ + { + "strategy": "role", + "weight": 92, + "role": "link", + "name": "Source code", + "exact": true + }, + { + "strategy": "role", + "weight": 82, + "role": "link", + "name": "Source code", + "exact": false + }, + { + "strategy": "href", + "weight": 72, + "value": "https://github.com/TonyMckes/conduit-realworld-example-app" + }, + { + "strategy": "text", + "weight": 60, + "value": "Source code", + "exact": true + }, + { + "strategy": "css", + "weight": 35, + "selector": "body > div > header > nav > div > ul:nth-of-type(1) > li > a" + } + ] + }, + "fields": [] + }, + "verdict": "SKIPPED", + "evidenceLevel": 0, + "reason": "Cross-origin navigation blocked by the default safety policy. Use --allow-external explicitly.", + "skippedReason": "Cross-origin navigation blocked by the default safety policy. Use --allow-external explicitly.", + "detectorMatches": [], + "evidence": { + "startedAt": "", + "durationMs": 0, + "canary": "", + "network": [], + "console": [], + "pageErrors": [], + "uiClaims": [], + "filledFields": [], + "dialogs": [], + "downloads": [], + "popupUrls": [], + "snapshotIndex": "snapshots/RD-022.index.json" + } + }, + { + "id": "RD-023", + "action": { + "id": "57d0ff701b4f", + "pageUrl": "http://127.0.0.1:3000/#/login", + "label": "Login", + "activation": "click", + "kind": "navigation", + "intent": "navigate", + "risk": "safe", + "fingerprint": { + "selector": "body > div > header > nav > div > ul:nth-of-type(2) > li:nth-of-type(2) > a", + "tag": "a", + "ordinal": 3, + "role": "link", + "accessibleName": "Login", + "text": "Login", + "href": "http://127.0.0.1:3000/#/login", + "candidates": [ + { + "strategy": "role", + "weight": 92, + "role": "link", + "name": "Login", + "exact": true + }, + { + "strategy": "role", + "weight": 82, + "role": "link", + "name": "Login", + "exact": false + }, + { + "strategy": "href", + "weight": 72, + "value": "http://127.0.0.1:3000/#/login" + }, + { + "strategy": "text", + "weight": 60, + "value": "Login", + "exact": true + }, + { + "strategy": "css", + "weight": 35, + "selector": "body > div > header > nav > div > ul:nth-of-type(2) > li:nth-of-type(2) > a" + } + ] + }, + "fields": [] + }, + "verdict": "SKIPPED", + "evidenceLevel": 0, + "reason": "Navigation target is already the current page.", + "skippedReason": "Navigation target is already the current page.", + "detectorMatches": [], + "evidence": { + "startedAt": "", + "durationMs": 0, + "canary": "", + "network": [], + "console": [], + "pageErrors": [], + "uiClaims": [], + "filledFields": [], + "dialogs": [], + "downloads": [], + "popupUrls": [], + "snapshotIndex": "snapshots/RD-023.index.json" + } + }, + { + "id": "RD-024", + "action": { + "id": "05734be5adff", + "pageUrl": "http://127.0.0.1:3000/#/login", + "label": "Thinkster", + "activation": "click", + "kind": "navigation", + "intent": "navigate", + "risk": "safe", + "fingerprint": { + "selector": "body > div > footer > div > span > a", + "tag": "a", + "ordinal": 8, + "role": "link", + "accessibleName": "Thinkster", + "text": "Thinkster", + "href": "https://thinkster.io/", + "candidates": [ + { + "strategy": "role", + "weight": 92, + "role": "link", + "name": "Thinkster", + "exact": true + }, + { + "strategy": "role", + "weight": 82, + "role": "link", + "name": "Thinkster", + "exact": false + }, + { + "strategy": "href", + "weight": 72, + "value": "https://thinkster.io/" + }, + { + "strategy": "text", + "weight": 60, + "value": "Thinkster", + "exact": true + }, + { + "strategy": "css", + "weight": 35, + "selector": "body > div > footer > div > span > a" + } + ] + }, + "fields": [] + }, + "verdict": "SKIPPED", + "evidenceLevel": 0, + "reason": "Cross-origin navigation blocked by the default safety policy. Use --allow-external explicitly.", + "skippedReason": "Cross-origin navigation blocked by the default safety policy. Use --allow-external explicitly.", + "detectorMatches": [], + "evidence": { + "startedAt": "", + "durationMs": 0, + "canary": "", + "network": [], + "console": [], + "pageErrors": [], + "uiClaims": [], + "filledFields": [], + "dialogs": [], + "downloads": [], + "popupUrls": [], + "snapshotIndex": "snapshots/RD-024.index.json" + } + }, + { + "id": "RD-025", + "action": { + "id": "d84c94c719e0", + "pageUrl": "http://127.0.0.1:3000/#/login", + "label": "Source code", + "activation": "click", + "kind": "navigation", + "intent": "navigate", + "risk": "safe", + "fingerprint": { + "selector": "body > div > footer > div > ul > li > a", + "tag": "a", + "ordinal": 9, + "role": "link", + "accessibleName": "Source code", + "text": "Source code", + "href": "https://github.com/TonyMckes/conduit-realworld-example-app", + "candidates": [ + { + "strategy": "role", + "weight": 92, + "role": "link", + "name": "Source code", + "exact": true + }, + { + "strategy": "role", + "weight": 82, + "role": "link", + "name": "Source code", + "exact": false + }, + { + "strategy": "href", + "weight": 72, + "value": "https://github.com/TonyMckes/conduit-realworld-example-app" + }, + { + "strategy": "text", + "weight": 60, + "value": "Source code", + "exact": true + }, + { + "strategy": "css", + "weight": 35, + "selector": "body > div > footer > div > ul > li > a" + } + ] + }, + "fields": [] + }, + "verdict": "SKIPPED", + "evidenceLevel": 0, + "reason": "Cross-origin navigation blocked by the default safety policy. Use --allow-external explicitly.", + "skippedReason": "Cross-origin navigation blocked by the default safety policy. Use --allow-external explicitly.", + "detectorMatches": [], + "evidence": { + "startedAt": "", + "durationMs": 0, + "canary": "", + "network": [], + "console": [], + "pageErrors": [], + "uiClaims": [], + "filledFields": [], + "dialogs": [], + "downloads": [], + "popupUrls": [], + "snapshotIndex": "snapshots/RD-025.index.json" + } + }, + { + "id": "RD-026", + "action": { + "id": "213b072ec36e", + "pageUrl": "http://127.0.0.1:3000/#/register", + "label": "Source code", + "activation": "click", + "kind": "navigation", + "intent": "navigate", + "risk": "safe", + "fingerprint": { + "selector": "body > div > header > nav > div > ul:nth-of-type(1) > li > a", + "tag": "a", + "ordinal": 1, + "role": "link", + "accessibleName": "Source code", + "text": "Source code", + "href": "https://github.com/TonyMckes/conduit-realworld-example-app", + "candidates": [ + { + "strategy": "role", + "weight": 92, + "role": "link", + "name": "Source code", + "exact": true + }, + { + "strategy": "role", + "weight": 82, + "role": "link", + "name": "Source code", + "exact": false + }, + { + "strategy": "href", + "weight": 72, + "value": "https://github.com/TonyMckes/conduit-realworld-example-app" + }, + { + "strategy": "text", + "weight": 60, + "value": "Source code", + "exact": true + }, + { + "strategy": "css", + "weight": 35, + "selector": "body > div > header > nav > div > ul:nth-of-type(1) > li > a" + } + ] + }, + "fields": [] + }, + "verdict": "SKIPPED", + "evidenceLevel": 0, + "reason": "Cross-origin navigation blocked by the default safety policy. Use --allow-external explicitly.", + "skippedReason": "Cross-origin navigation blocked by the default safety policy. Use --allow-external explicitly.", + "detectorMatches": [], + "evidence": { + "startedAt": "", + "durationMs": 0, + "canary": "", + "network": [], + "console": [], + "pageErrors": [], + "uiClaims": [], + "filledFields": [], + "dialogs": [], + "downloads": [], + "popupUrls": [], + "snapshotIndex": "snapshots/RD-026.index.json" + } + }, + { + "id": "RD-027", + "action": { + "id": "8aa697f19422", + "pageUrl": "http://127.0.0.1:3000/#/register", + "label": "Sign up", + "activation": "click", + "kind": "navigation", + "intent": "navigate", + "risk": "safe", + "fingerprint": { + "selector": "body > div > header > nav > div > ul:nth-of-type(2) > li:nth-of-type(3) > a", + "tag": "a", + "ordinal": 4, + "role": "link", + "accessibleName": "Sign up", + "text": "Sign up", + "href": "http://127.0.0.1:3000/#/register", + "candidates": [ + { + "strategy": "role", + "weight": 92, + "role": "link", + "name": "Sign up", + "exact": true + }, + { + "strategy": "role", + "weight": 82, + "role": "link", + "name": "Sign up", + "exact": false + }, + { + "strategy": "href", + "weight": 72, + "value": "http://127.0.0.1:3000/#/register" + }, + { + "strategy": "text", + "weight": 60, + "value": "Sign up", + "exact": true + }, + { + "strategy": "css", + "weight": 35, + "selector": "body > div > header > nav > div > ul:nth-of-type(2) > li:nth-of-type(3) > a" + } + ] + }, + "fields": [] + }, + "verdict": "SKIPPED", + "evidenceLevel": 0, + "reason": "Navigation target is already the current page.", + "skippedReason": "Navigation target is already the current page.", + "detectorMatches": [], + "evidence": { + "startedAt": "", + "durationMs": 0, + "canary": "", + "network": [], + "console": [], + "pageErrors": [], + "uiClaims": [], + "filledFields": [], + "dialogs": [], + "downloads": [], + "popupUrls": [], + "snapshotIndex": "snapshots/RD-027.index.json" + } + }, + { + "id": "RD-028", + "action": { + "id": "1f3d957d32f9", + "pageUrl": "http://127.0.0.1:3000/#/register", + "label": "Thinkster", + "activation": "click", + "kind": "navigation", + "intent": "navigate", + "risk": "safe", + "fingerprint": { + "selector": "body > div > footer > div > span > a", + "tag": "a", + "ordinal": 8, + "role": "link", + "accessibleName": "Thinkster", + "text": "Thinkster", + "href": "https://thinkster.io/", + "candidates": [ + { + "strategy": "role", + "weight": 92, + "role": "link", + "name": "Thinkster", + "exact": true + }, + { + "strategy": "role", + "weight": 82, + "role": "link", + "name": "Thinkster", + "exact": false + }, + { + "strategy": "href", + "weight": 72, + "value": "https://thinkster.io/" + }, + { + "strategy": "text", + "weight": 60, + "value": "Thinkster", + "exact": true + }, + { + "strategy": "css", + "weight": 35, + "selector": "body > div > footer > div > span > a" + } + ] + }, + "fields": [] + }, + "verdict": "SKIPPED", + "evidenceLevel": 0, + "reason": "Cross-origin navigation blocked by the default safety policy. Use --allow-external explicitly.", + "skippedReason": "Cross-origin navigation blocked by the default safety policy. Use --allow-external explicitly.", + "detectorMatches": [], + "evidence": { + "startedAt": "", + "durationMs": 0, + "canary": "", + "network": [], + "console": [], + "pageErrors": [], + "uiClaims": [], + "filledFields": [], + "dialogs": [], + "downloads": [], + "popupUrls": [], + "snapshotIndex": "snapshots/RD-028.index.json" + } + }, + { + "id": "RD-029", + "action": { + "id": "fd605c2f6cee", + "pageUrl": "http://127.0.0.1:3000/#/register", + "label": "Source code", + "activation": "click", + "kind": "navigation", + "intent": "navigate", + "risk": "safe", + "fingerprint": { + "selector": "body > div > footer > div > ul > li > a", + "tag": "a", + "ordinal": 9, + "role": "link", + "accessibleName": "Source code", + "text": "Source code", + "href": "https://github.com/TonyMckes/conduit-realworld-example-app", + "candidates": [ + { + "strategy": "role", + "weight": 92, + "role": "link", + "name": "Source code", + "exact": true + }, + { + "strategy": "role", + "weight": 82, + "role": "link", + "name": "Source code", + "exact": false + }, + { + "strategy": "href", + "weight": 72, + "value": "https://github.com/TonyMckes/conduit-realworld-example-app" + }, + { + "strategy": "text", + "weight": 60, + "value": "Source code", + "exact": true + }, + { + "strategy": "css", + "weight": 35, + "selector": "body > div > footer > div > ul > li > a" + } + ] + }, + "fields": [] + }, + "verdict": "SKIPPED", + "evidenceLevel": 0, + "reason": "Cross-origin navigation blocked by the default safety policy. Use --allow-external explicitly.", + "skippedReason": "Cross-origin navigation blocked by the default safety policy. Use --allow-external explicitly.", + "detectorMatches": [], + "evidence": { + "startedAt": "", + "durationMs": 0, + "canary": "", + "network": [], + "console": [], + "pageErrors": [], + "uiClaims": [], + "filledFields": [], + "dialogs": [], + "downloads": [], + "popupUrls": [], + "snapshotIndex": "snapshots/RD-029.index.json" + } + } + ], + "environment": { "status": "VALID", - "checkedAt": "2026-07-23T15:01:11.987Z", - "durationMs": 3941, + "checkedAt": "2026-07-26T08:30:40.234Z", + "durationMs": 6726, "targetUrl": "http://127.0.0.1:3000/", "mainDocument": { "status": 200, @@ -13920,6 +13919,36 @@ }, "completeness": { "truncated": false, - "reasons": [] + "reasons": [], + "selection": { + "strategy": "coverage-balanced-v1", + "eligibleActions": 29, + "selectedActions": 29, + "omittedActions": 0, + "eligiblePages": 3, + "selectedPages": 3, + "eligibleKinds": [ + "mutation", + "local", + "navigation" + ], + "selectedKinds": [ + "mutation", + "local", + "navigation" + ], + "eligibleIntents": [ + "submit", + "interact", + "navigate" + ], + "selectedIntents": [ + "submit", + "interact", + "navigate" + ], + "deniedEligibleActions": 11, + "deniedSelectedActions": 11 + } } } diff --git a/release/evidence/raw/conduit.scan.json b/release/evidence/raw/conduit.scan.json index 2ace174..4e08a5f 100644 --- a/release/evidence/raw/conduit.scan.json +++ b/release/evidence/raw/conduit.scan.json @@ -1,9 +1,9 @@ { "schemaVersion": "1.0", - "scanId": "20260723T145644Z-dcea", - "targetUrl": "http://127.0.0.1:37201/", - "startedAt": "2026-07-23T14:56:44.701Z", - "finishedAt": "2026-07-23T14:57:44.485Z", + "scanId": "20260726T084136Z-1c78", + "targetUrl": "http://127.0.0.1:37211/", + "startedAt": "2026-07-26T08:41:36.480Z", + "finishedAt": "2026-07-26T08:42:36.394Z", "options": { "maxPages": 12, "maxActions": 30, @@ -16,7 +16,7 @@ "mutationAllowed": true, "deep": true, "trace": false, - "traceOnFailure": true, + "traceOnFailure": false, "video": false, "environmentTimeoutMs": 10000, "acceptEnvironmentRisk": false, @@ -41,12 +41,12 @@ }, "pages": [ { - "url": "http://127.0.0.1:37201/", + "url": "http://127.0.0.1:37211/", "title": "Conduit", "actions": [ { - "id": "49bdc1671d77", - "pageUrl": "http://127.0.0.1:37201/", + "id": "010b144d48c7", + "pageUrl": "http://127.0.0.1:37211/", "label": "conduit", "activation": "click", "kind": "navigation", @@ -59,7 +59,7 @@ "role": "link", "accessibleName": "conduit", "text": "conduit", - "href": "http://127.0.0.1:37201/#/", + "href": "http://127.0.0.1:37211/#/", "candidates": [ { "strategy": "role", @@ -78,7 +78,7 @@ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37201/#/" + "value": "http://127.0.0.1:37211/#/" }, { "strategy": "text", @@ -96,8 +96,8 @@ "fields": [] }, { - "id": "ea0db0136f20", - "pageUrl": "http://127.0.0.1:37201/", + "id": "df53bfe9225d", + "pageUrl": "http://127.0.0.1:37211/", "label": "Source code", "activation": "click", "kind": "navigation", @@ -147,8 +147,8 @@ "fields": [] }, { - "id": "8344e33ecc62", - "pageUrl": "http://127.0.0.1:37201/", + "id": "43d3a1048392", + "pageUrl": "http://127.0.0.1:37211/", "label": "Home", "activation": "click", "kind": "navigation", @@ -161,7 +161,7 @@ "role": "link", "accessibleName": "Home", "text": "Home", - "href": "http://127.0.0.1:37201/#/", + "href": "http://127.0.0.1:37211/#/", "candidates": [ { "strategy": "role", @@ -180,7 +180,7 @@ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37201/#/" + "value": "http://127.0.0.1:37211/#/" }, { "strategy": "text", @@ -198,8 +198,8 @@ "fields": [] }, { - "id": "5e09d3944cf8", - "pageUrl": "http://127.0.0.1:37201/", + "id": "3e1acc106b83", + "pageUrl": "http://127.0.0.1:37211/", "label": "Login", "activation": "click", "kind": "navigation", @@ -212,7 +212,7 @@ "role": "link", "accessibleName": "Login", "text": "Login", - "href": "http://127.0.0.1:37201/#/login", + "href": "http://127.0.0.1:37211/#/login", "candidates": [ { "strategy": "role", @@ -231,7 +231,7 @@ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37201/#/login" + "value": "http://127.0.0.1:37211/#/login" }, { "strategy": "text", @@ -249,8 +249,8 @@ "fields": [] }, { - "id": "99b3094225b1", - "pageUrl": "http://127.0.0.1:37201/", + "id": "01cd0c9655aa", + "pageUrl": "http://127.0.0.1:37211/", "label": "Sign up", "activation": "click", "kind": "navigation", @@ -263,7 +263,7 @@ "role": "link", "accessibleName": "Sign up", "text": "Sign up", - "href": "http://127.0.0.1:37201/#/register", + "href": "http://127.0.0.1:37211/#/register", "candidates": [ { "strategy": "role", @@ -282,7 +282,7 @@ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37201/#/register" + "value": "http://127.0.0.1:37211/#/register" }, { "strategy": "text", @@ -300,8 +300,8 @@ "fields": [] }, { - "id": "b0c82736cf2f", - "pageUrl": "http://127.0.0.1:37201/", + "id": "d0dd9425c9ec", + "pageUrl": "http://127.0.0.1:37211/", "label": "Global Feed", "activation": "click", "kind": "local", @@ -346,8 +346,8 @@ "fields": [] }, { - "id": "d111baedb773", - "pageUrl": "http://127.0.0.1:37201/", + "id": "ebc87132381c", + "pageUrl": "http://127.0.0.1:37211/", "label": "conduit", "activation": "click", "kind": "navigation", @@ -360,7 +360,7 @@ "role": "link", "accessibleName": "conduit", "text": "conduit", - "href": "http://127.0.0.1:37201/#/", + "href": "http://127.0.0.1:37211/#/", "candidates": [ { "strategy": "role", @@ -379,7 +379,7 @@ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37201/#/" + "value": "http://127.0.0.1:37211/#/" }, { "strategy": "text", @@ -397,8 +397,8 @@ "fields": [] }, { - "id": "1f55b7de9f3a", - "pageUrl": "http://127.0.0.1:37201/", + "id": "3040fe74a6b8", + "pageUrl": "http://127.0.0.1:37211/", "label": "Thinkster", "activation": "click", "kind": "navigation", @@ -448,8 +448,8 @@ "fields": [] }, { - "id": "7a0a565717a2", - "pageUrl": "http://127.0.0.1:37201/", + "id": "9daabb643ebe", + "pageUrl": "http://127.0.0.1:37211/", "label": "Source code", "activation": "click", "kind": "navigation", @@ -501,12 +501,12 @@ ] }, { - "url": "http://127.0.0.1:37201/#/login", + "url": "http://127.0.0.1:37211/#/login", "title": "Conduit", "actions": [ { - "id": "905ee6e2a332", - "pageUrl": "http://127.0.0.1:37201/#/login", + "id": "d9cb9b16904a", + "pageUrl": "http://127.0.0.1:37211/#/login", "label": "conduit", "activation": "click", "kind": "navigation", @@ -519,7 +519,7 @@ "role": "link", "accessibleName": "conduit", "text": "conduit", - "href": "http://127.0.0.1:37201/#/", + "href": "http://127.0.0.1:37211/#/", "candidates": [ { "strategy": "role", @@ -538,7 +538,7 @@ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37201/#/" + "value": "http://127.0.0.1:37211/#/" }, { "strategy": "text", @@ -556,8 +556,8 @@ "fields": [] }, { - "id": "b7f9fe7fa70a", - "pageUrl": "http://127.0.0.1:37201/#/login", + "id": "29f086773df0", + "pageUrl": "http://127.0.0.1:37211/#/login", "label": "Source code", "activation": "click", "kind": "navigation", @@ -607,8 +607,8 @@ "fields": [] }, { - "id": "a1e1bb7a1a03", - "pageUrl": "http://127.0.0.1:37201/#/login", + "id": "34045263ad97", + "pageUrl": "http://127.0.0.1:37211/#/login", "label": "Home", "activation": "click", "kind": "navigation", @@ -621,7 +621,7 @@ "role": "link", "accessibleName": "Home", "text": "Home", - "href": "http://127.0.0.1:37201/#/", + "href": "http://127.0.0.1:37211/#/", "candidates": [ { "strategy": "role", @@ -640,7 +640,7 @@ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37201/#/" + "value": "http://127.0.0.1:37211/#/" }, { "strategy": "text", @@ -658,8 +658,8 @@ "fields": [] }, { - "id": "c93ffa34633c", - "pageUrl": "http://127.0.0.1:37201/#/login", + "id": "325fa66846a5", + "pageUrl": "http://127.0.0.1:37211/#/login", "label": "Login", "activation": "click", "kind": "navigation", @@ -672,7 +672,7 @@ "role": "link", "accessibleName": "Login", "text": "Login", - "href": "http://127.0.0.1:37201/#/login", + "href": "http://127.0.0.1:37211/#/login", "candidates": [ { "strategy": "role", @@ -691,7 +691,7 @@ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37201/#/login" + "value": "http://127.0.0.1:37211/#/login" }, { "strategy": "text", @@ -709,8 +709,8 @@ "fields": [] }, { - "id": "89d8ef49c5e7", - "pageUrl": "http://127.0.0.1:37201/#/login", + "id": "0b686cd5ddf4", + "pageUrl": "http://127.0.0.1:37211/#/login", "label": "Sign up", "activation": "click", "kind": "navigation", @@ -723,7 +723,7 @@ "role": "link", "accessibleName": "Sign up", "text": "Sign up", - "href": "http://127.0.0.1:37201/#/register", + "href": "http://127.0.0.1:37211/#/register", "candidates": [ { "strategy": "role", @@ -742,7 +742,7 @@ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37201/#/register" + "value": "http://127.0.0.1:37211/#/register" }, { "strategy": "text", @@ -760,8 +760,8 @@ "fields": [] }, { - "id": "8088b15f95c8", - "pageUrl": "http://127.0.0.1:37201/#/login", + "id": "bc493dcbfb71", + "pageUrl": "http://127.0.0.1:37211/#/login", "label": "Need an account?", "activation": "click", "kind": "navigation", @@ -774,7 +774,7 @@ "role": "link", "accessibleName": "Need an account?", "text": "Need an account?", - "href": "http://127.0.0.1:37201/#/register", + "href": "http://127.0.0.1:37211/#/register", "candidates": [ { "strategy": "role", @@ -793,7 +793,7 @@ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37201/#/register" + "value": "http://127.0.0.1:37211/#/register" }, { "strategy": "text", @@ -811,8 +811,8 @@ "fields": [] }, { - "id": "7f2e167968b6", - "pageUrl": "http://127.0.0.1:37201/#/login", + "id": "4991c205504d", + "pageUrl": "http://127.0.0.1:37211/#/login", "label": "Login", "activation": "submit", "kind": "mutation", @@ -861,8 +861,8 @@ ] }, { - "id": "a880fcdaee82", - "pageUrl": "http://127.0.0.1:37201/#/login", + "id": "fcc68ac443ac", + "pageUrl": "http://127.0.0.1:37211/#/login", "label": "conduit", "activation": "click", "kind": "navigation", @@ -875,7 +875,7 @@ "role": "link", "accessibleName": "conduit", "text": "conduit", - "href": "http://127.0.0.1:37201/#/", + "href": "http://127.0.0.1:37211/#/", "candidates": [ { "strategy": "role", @@ -894,7 +894,7 @@ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37201/#/" + "value": "http://127.0.0.1:37211/#/" }, { "strategy": "text", @@ -912,8 +912,8 @@ "fields": [] }, { - "id": "5f8b0a679b86", - "pageUrl": "http://127.0.0.1:37201/#/login", + "id": "95a464c9f422", + "pageUrl": "http://127.0.0.1:37211/#/login", "label": "Thinkster", "activation": "click", "kind": "navigation", @@ -963,8 +963,8 @@ "fields": [] }, { - "id": "3b73857b77b6", - "pageUrl": "http://127.0.0.1:37201/#/login", + "id": "292e1c897646", + "pageUrl": "http://127.0.0.1:37211/#/login", "label": "Source code", "activation": "click", "kind": "navigation", @@ -1016,12 +1016,12 @@ ] }, { - "url": "http://127.0.0.1:37201/#/register", + "url": "http://127.0.0.1:37211/#/register", "title": "Conduit", "actions": [ { - "id": "758f6c523ad4", - "pageUrl": "http://127.0.0.1:37201/#/register", + "id": "59e2b437f2d6", + "pageUrl": "http://127.0.0.1:37211/#/register", "label": "conduit", "activation": "click", "kind": "navigation", @@ -1034,7 +1034,7 @@ "role": "link", "accessibleName": "conduit", "text": "conduit", - "href": "http://127.0.0.1:37201/#/", + "href": "http://127.0.0.1:37211/#/", "candidates": [ { "strategy": "role", @@ -1053,7 +1053,7 @@ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37201/#/" + "value": "http://127.0.0.1:37211/#/" }, { "strategy": "text", @@ -1071,8 +1071,8 @@ "fields": [] }, { - "id": "778745ecb6d0", - "pageUrl": "http://127.0.0.1:37201/#/register", + "id": "c22b2a4875fc", + "pageUrl": "http://127.0.0.1:37211/#/register", "label": "Source code", "activation": "click", "kind": "navigation", @@ -1122,8 +1122,8 @@ "fields": [] }, { - "id": "76054ef3b4e9", - "pageUrl": "http://127.0.0.1:37201/#/register", + "id": "1a0c7bf79395", + "pageUrl": "http://127.0.0.1:37211/#/register", "label": "Home", "activation": "click", "kind": "navigation", @@ -1136,7 +1136,7 @@ "role": "link", "accessibleName": "Home", "text": "Home", - "href": "http://127.0.0.1:37201/#/", + "href": "http://127.0.0.1:37211/#/", "candidates": [ { "strategy": "role", @@ -1155,7 +1155,7 @@ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37201/#/" + "value": "http://127.0.0.1:37211/#/" }, { "strategy": "text", @@ -1173,8 +1173,8 @@ "fields": [] }, { - "id": "875f6bd0a57f", - "pageUrl": "http://127.0.0.1:37201/#/register", + "id": "d5c6b9ea21ab", + "pageUrl": "http://127.0.0.1:37211/#/register", "label": "Login", "activation": "click", "kind": "navigation", @@ -1187,7 +1187,7 @@ "role": "link", "accessibleName": "Login", "text": "Login", - "href": "http://127.0.0.1:37201/#/login", + "href": "http://127.0.0.1:37211/#/login", "candidates": [ { "strategy": "role", @@ -1206,7 +1206,7 @@ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37201/#/login" + "value": "http://127.0.0.1:37211/#/login" }, { "strategy": "text", @@ -1224,8 +1224,8 @@ "fields": [] }, { - "id": "c85e2a543a04", - "pageUrl": "http://127.0.0.1:37201/#/register", + "id": "5a1f878365b7", + "pageUrl": "http://127.0.0.1:37211/#/register", "label": "Sign up", "activation": "click", "kind": "navigation", @@ -1238,7 +1238,7 @@ "role": "link", "accessibleName": "Sign up", "text": "Sign up", - "href": "http://127.0.0.1:37201/#/register", + "href": "http://127.0.0.1:37211/#/register", "candidates": [ { "strategy": "role", @@ -1257,7 +1257,7 @@ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37201/#/register" + "value": "http://127.0.0.1:37211/#/register" }, { "strategy": "text", @@ -1275,8 +1275,8 @@ "fields": [] }, { - "id": "f7cd3f752613", - "pageUrl": "http://127.0.0.1:37201/#/register", + "id": "a36c397a3a4f", + "pageUrl": "http://127.0.0.1:37211/#/register", "label": "Sign in to your account", "activation": "click", "kind": "navigation", @@ -1289,7 +1289,7 @@ "role": "link", "accessibleName": "Sign in to your account", "text": "Sign in to your account", - "href": "http://127.0.0.1:37201/#/login", + "href": "http://127.0.0.1:37211/#/login", "candidates": [ { "strategy": "role", @@ -1308,7 +1308,7 @@ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37201/#/login" + "value": "http://127.0.0.1:37211/#/login" }, { "strategy": "text", @@ -1326,8 +1326,8 @@ "fields": [] }, { - "id": "671961c80a3c", - "pageUrl": "http://127.0.0.1:37201/#/register", + "id": "3db25a95d913", + "pageUrl": "http://127.0.0.1:37211/#/register", "label": "Sign up", "activation": "submit", "kind": "mutation", @@ -1384,8 +1384,8 @@ ] }, { - "id": "e21a7d672564", - "pageUrl": "http://127.0.0.1:37201/#/register", + "id": "f79995dd7ed7", + "pageUrl": "http://127.0.0.1:37211/#/register", "label": "conduit", "activation": "click", "kind": "navigation", @@ -1398,7 +1398,7 @@ "role": "link", "accessibleName": "conduit", "text": "conduit", - "href": "http://127.0.0.1:37201/#/", + "href": "http://127.0.0.1:37211/#/", "candidates": [ { "strategy": "role", @@ -1417,7 +1417,7 @@ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37201/#/" + "value": "http://127.0.0.1:37211/#/" }, { "strategy": "text", @@ -1435,8 +1435,8 @@ "fields": [] }, { - "id": "aa458a853344", - "pageUrl": "http://127.0.0.1:37201/#/register", + "id": "a8bc53027b2f", + "pageUrl": "http://127.0.0.1:37211/#/register", "label": "Thinkster", "activation": "click", "kind": "navigation", @@ -1486,8 +1486,8 @@ "fields": [] }, { - "id": "f2a99aeacf6a", - "pageUrl": "http://127.0.0.1:37201/#/register", + "id": "ed7b7d49ac35", + "pageUrl": "http://127.0.0.1:37211/#/register", "label": "Source code", "activation": "click", "kind": "navigation", @@ -1543,8 +1543,8 @@ { "id": "RD-001", "action": { - "id": "49bdc1671d77", - "pageUrl": "http://127.0.0.1:37201/", + "id": "010b144d48c7", + "pageUrl": "http://127.0.0.1:37211/", "label": "conduit", "activation": "click", "kind": "navigation", @@ -1557,7 +1557,7 @@ "role": "link", "accessibleName": "conduit", "text": "conduit", - "href": "http://127.0.0.1:37201/#/", + "href": "http://127.0.0.1:37211/#/", "candidates": [ { "strategy": "role", @@ -1576,7 +1576,7 @@ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37201/#/" + "value": "http://127.0.0.1:37211/#/" }, { "strategy": "text", @@ -1594,9 +1594,9 @@ "fields": [] }, "evidence": { - "startedAt": "2026-07-23T14:56:51.650Z", - "durationMs": 2457, - "canary": "RD_TEST_868089", + "startedAt": "2026-07-26T08:41:43.792Z", + "durationMs": 2491, + "canary": "RD_TEST_200A59", "network": [], "console": [], "pageErrors": [], @@ -1614,35 +1614,35 @@ "weight": 92, "matchCount": 2, "visibleCount": 2, - "elapsedMs": 11 + "elapsedMs": 6 }, { "strategy": "role", "weight": 82, "matchCount": 2, "visibleCount": 2, - "elapsedMs": 8 + "elapsedMs": 3 }, { "strategy": "href", "weight": 72, "matchCount": 0, "visibleCount": 0, - "elapsedMs": 3 + "elapsedMs": 1 }, { "strategy": "text", "weight": 60, "matchCount": 3, "visibleCount": 3, - "elapsedMs": 10 + "elapsedMs": 5 }, { "strategy": "css", "weight": 35, "matchCount": 1, "visibleCount": 1, - "elapsedMs": 4 + "elapsedMs": 1 } ], "chosenStrategy": "css", @@ -1650,8 +1650,8 @@ "retryCount": 0 }, "before": { - "at": 1428, - "url": "http://127.0.0.1:37201/", + "at": 1492, + "url": "http://127.0.0.1:37211/", "title": "Conduit", "domHash": "3c44d4d1ff59317a", "canaryPresent": false, @@ -1689,8 +1689,8 @@ } }, "beforeAction": { - "at": 1441, - "url": "http://127.0.0.1:37201/", + "at": 1500, + "url": "http://127.0.0.1:37211/", "title": "Conduit", "domHash": "3c44d4d1ff59317a", "canaryPresent": false, @@ -1730,8 +1730,8 @@ "networkSettled": true, "targetBusyAfter": false, "after": { - "at": 2452, - "url": "http://127.0.0.1:37201/#/", + "at": 2488, + "url": "http://127.0.0.1:37211/#/", "title": "Conduit", "domHash": "3c44d4d1ff59317a", "canaryPresent": false, @@ -1778,81 +1778,8 @@ { "id": "RD-002", "action": { - "id": "ea0db0136f20", - "pageUrl": "http://127.0.0.1:37201/", - "label": "Source code", - "activation": "click", - "kind": "navigation", - "intent": "navigate", - "risk": "safe", - "fingerprint": { - "selector": "body > div > header > nav > div > ul:nth-of-type(1) > li > a", - "tag": "a", - "ordinal": 1, - "role": "link", - "accessibleName": "Source code", - "text": "Source code", - "href": "https://github.com/TonyMckes/conduit-realworld-example-app", - "candidates": [ - { - "strategy": "role", - "weight": 92, - "role": "link", - "name": "Source code", - "exact": true - }, - { - "strategy": "role", - "weight": 82, - "role": "link", - "name": "Source code", - "exact": false - }, - { - "strategy": "href", - "weight": 72, - "value": "https://github.com/TonyMckes/conduit-realworld-example-app" - }, - { - "strategy": "text", - "weight": 60, - "value": "Source code", - "exact": true - }, - { - "strategy": "css", - "weight": 35, - "selector": "body > div > header > nav > div > ul:nth-of-type(1) > li > a" - } - ] - }, - "fields": [] - }, - "verdict": "SKIPPED", - "evidenceLevel": 0, - "reason": "Cross-origin navigation blocked by the default safety policy. Use --allow-external explicitly.", - "skippedReason": "Cross-origin navigation blocked by the default safety policy. Use --allow-external explicitly.", - "detectorMatches": [], - "evidence": { - "startedAt": "", - "durationMs": 0, - "canary": "", - "network": [], - "console": [], - "pageErrors": [], - "uiClaims": [], - "filledFields": [], - "dialogs": [], - "downloads": [], - "popupUrls": [], - "snapshotIndex": "snapshots/RD-002.index.json" - } - }, - { - "id": "RD-003", - "action": { - "id": "8344e33ecc62", - "pageUrl": "http://127.0.0.1:37201/", + "id": "43d3a1048392", + "pageUrl": "http://127.0.0.1:37211/", "label": "Home", "activation": "click", "kind": "navigation", @@ -1865,7 +1792,7 @@ "role": "link", "accessibleName": "Home", "text": "Home", - "href": "http://127.0.0.1:37201/#/", + "href": "http://127.0.0.1:37211/#/", "candidates": [ { "strategy": "role", @@ -1884,7 +1811,7 @@ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37201/#/" + "value": "http://127.0.0.1:37211/#/" }, { "strategy": "text", @@ -1902,9 +1829,9 @@ "fields": [] }, "evidence": { - "startedAt": "2026-07-23T14:56:54.149Z", - "durationMs": 2394, - "canary": "RD_TEST_57B0B3", + "startedAt": "2026-07-26T08:41:46.287Z", + "durationMs": 2442, + "canary": "RD_TEST_F0381B", "network": [], "console": [], "pageErrors": [], @@ -1922,14 +1849,14 @@ "weight": 92, "matchCount": 0, "visibleCount": 0, - "elapsedMs": 3 + "elapsedMs": 2 }, { "strategy": "role", "weight": 82, "matchCount": 1, "visibleCount": 1, - "elapsedMs": 5 + "elapsedMs": 2 } ], "chosenStrategy": "role", @@ -1937,8 +1864,8 @@ "retryCount": 0 }, "before": { - "at": 1383, - "url": "http://127.0.0.1:37201/", + "at": 1438, + "url": "http://127.0.0.1:37211/", "title": "Conduit", "domHash": "3c44d4d1ff59317a", "canaryPresent": false, @@ -1976,8 +1903,8 @@ } }, "beforeAction": { - "at": 1393, - "url": "http://127.0.0.1:37201/", + "at": 1445, + "url": "http://127.0.0.1:37211/", "title": "Conduit", "domHash": "3c44d4d1ff59317a", "canaryPresent": false, @@ -2017,8 +1944,8 @@ "networkSettled": true, "targetBusyAfter": false, "after": { - "at": 2389, - "url": "http://127.0.0.1:37201/#/", + "at": 2439, + "url": "http://127.0.0.1:37211/#/", "title": "Conduit", "domHash": "3c44d4d1ff59317a", "canaryPresent": false, @@ -2055,7 +1982,7 @@ "indexedDb": [] } }, - "snapshotIndex": "snapshots/RD-003.index.json" + "snapshotIndex": "snapshots/RD-002.index.json" }, "verdict": "VERIFIED", "evidenceLevel": 1, @@ -2063,10 +1990,10 @@ "detectorMatches": [] }, { - "id": "RD-004", + "id": "RD-003", "action": { - "id": "5e09d3944cf8", - "pageUrl": "http://127.0.0.1:37201/", + "id": "3e1acc106b83", + "pageUrl": "http://127.0.0.1:37211/", "label": "Login", "activation": "click", "kind": "navigation", @@ -2079,7 +2006,7 @@ "role": "link", "accessibleName": "Login", "text": "Login", - "href": "http://127.0.0.1:37201/#/login", + "href": "http://127.0.0.1:37211/#/login", "candidates": [ { "strategy": "role", @@ -2098,7 +2025,7 @@ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37201/#/login" + "value": "http://127.0.0.1:37211/#/login" }, { "strategy": "text", @@ -2116,9 +2043,9 @@ "fields": [] }, "evidence": { - "startedAt": "2026-07-23T14:56:56.573Z", - "durationMs": 2408, - "canary": "RD_TEST_25206F", + "startedAt": "2026-07-26T08:41:48.732Z", + "durationMs": 2420, + "canary": "RD_TEST_790F77", "network": [], "console": [], "pageErrors": [], @@ -2136,14 +2063,14 @@ "weight": 92, "matchCount": 0, "visibleCount": 0, - "elapsedMs": 4 + "elapsedMs": 2 }, { "strategy": "role", "weight": 82, "matchCount": 1, "visibleCount": 1, - "elapsedMs": 6 + "elapsedMs": 3 } ], "chosenStrategy": "role", @@ -2151,8 +2078,8 @@ "retryCount": 0 }, "before": { - "at": 1391, - "url": "http://127.0.0.1:37201/", + "at": 1430, + "url": "http://127.0.0.1:37211/", "title": "Conduit", "domHash": "3c44d4d1ff59317a", "canaryPresent": false, @@ -2190,8 +2117,8 @@ } }, "beforeAction": { - "at": 1401, - "url": "http://127.0.0.1:37201/", + "at": 1438, + "url": "http://127.0.0.1:37211/", "title": "Conduit", "domHash": "3c44d4d1ff59317a", "canaryPresent": false, @@ -2231,8 +2158,8 @@ "networkSettled": true, "targetBusyAfter": false, "after": { - "at": 2404, - "url": "http://127.0.0.1:37201/#/login", + "at": 2417, + "url": "http://127.0.0.1:37211/#/login", "title": "Conduit", "domHash": "c659be8900b0e706", "canaryPresent": false, @@ -2287,7 +2214,7 @@ "indexedDb": [] } }, - "snapshotIndex": "snapshots/RD-004.index.json" + "snapshotIndex": "snapshots/RD-003.index.json" }, "verdict": "VERIFIED", "evidenceLevel": 1, @@ -2295,10 +2222,10 @@ "detectorMatches": [] }, { - "id": "RD-005", + "id": "RD-004", "action": { - "id": "99b3094225b1", - "pageUrl": "http://127.0.0.1:37201/", + "id": "01cd0c9655aa", + "pageUrl": "http://127.0.0.1:37211/", "label": "Sign up", "activation": "click", "kind": "navigation", @@ -2311,7 +2238,7 @@ "role": "link", "accessibleName": "Sign up", "text": "Sign up", - "href": "http://127.0.0.1:37201/#/register", + "href": "http://127.0.0.1:37211/#/register", "candidates": [ { "strategy": "role", @@ -2330,7 +2257,7 @@ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37201/#/register" + "value": "http://127.0.0.1:37211/#/register" }, { "strategy": "text", @@ -2348,9 +2275,9 @@ "fields": [] }, "evidence": { - "startedAt": "2026-07-23T14:56:59.021Z", - "durationMs": 2414, - "canary": "RD_TEST_A3FA6C", + "startedAt": "2026-07-26T08:41:51.156Z", + "durationMs": 2441, + "canary": "RD_TEST_DB7727", "network": [], "console": [], "pageErrors": [], @@ -2368,7 +2295,7 @@ "weight": 92, "matchCount": 1, "visibleCount": 1, - "elapsedMs": 6 + "elapsedMs": 3 } ], "chosenStrategy": "role", @@ -2376,8 +2303,8 @@ "retryCount": 0 }, "before": { - "at": 1388, - "url": "http://127.0.0.1:37201/", + "at": 1445, + "url": "http://127.0.0.1:37211/", "title": "Conduit", "domHash": "3c44d4d1ff59317a", "canaryPresent": false, @@ -2415,8 +2342,8 @@ } }, "beforeAction": { - "at": 1398, - "url": "http://127.0.0.1:37201/", + "at": 1452, + "url": "http://127.0.0.1:37211/", "title": "Conduit", "domHash": "3c44d4d1ff59317a", "canaryPresent": false, @@ -2456,8 +2383,8 @@ "networkSettled": true, "targetBusyAfter": false, "after": { - "at": 2409, - "url": "http://127.0.0.1:37201/#/register", + "at": 2438, + "url": "http://127.0.0.1:37211/#/register", "title": "Conduit", "domHash": "1f4fa65964895f4c", "canaryPresent": false, @@ -2521,7 +2448,7 @@ "indexedDb": [] } }, - "snapshotIndex": "snapshots/RD-005.index.json" + "snapshotIndex": "snapshots/RD-004.index.json" }, "verdict": "VERIFIED", "evidenceLevel": 1, @@ -2529,10 +2456,10 @@ "detectorMatches": [] }, { - "id": "RD-006", + "id": "RD-005", "action": { - "id": "b0c82736cf2f", - "pageUrl": "http://127.0.0.1:37201/", + "id": "d0dd9425c9ec", + "pageUrl": "http://127.0.0.1:37211/", "label": "Global Feed", "activation": "click", "kind": "local", @@ -2577,19 +2504,19 @@ "fields": [] }, "evidence": { - "startedAt": "2026-07-23T14:57:01.472Z", - "durationMs": 2453, - "canary": "RD_TEST_A9BB4E", + "startedAt": "2026-07-26T08:41:53.599Z", + "durationMs": 2432, + "canary": "RD_TEST_C6A7AE", "network": [ { "id": "net-1", "method": "GET", - "url": "http://127.0.0.1:37201/api/articles?limit=3&&offset=0", + "url": "http://127.0.0.1:37211/api/articles?limit=3&&offset=0", "resourceType": "xhr", - "startedAt": 1437, + "startedAt": 1442, "status": 200, "ok": true, - "finishedAt": 1447, + "finishedAt": 1452, "contentType": "application/json", "resourceTypeHint": "articles" } @@ -2610,7 +2537,7 @@ "weight": 92, "matchCount": 1, "visibleCount": 1, - "elapsedMs": 5 + "elapsedMs": 2 } ], "chosenStrategy": "role", @@ -2618,8 +2545,8 @@ "retryCount": 0 }, "before": { - "at": 1400, - "url": "http://127.0.0.1:37201/", + "at": 1412, + "url": "http://127.0.0.1:37211/", "title": "Conduit", "domHash": "3c44d4d1ff59317a", "canaryPresent": false, @@ -2657,8 +2584,8 @@ } }, "beforeAction": { - "at": 1411, - "url": "http://127.0.0.1:37201/", + "at": 1419, + "url": "http://127.0.0.1:37211/", "title": "Conduit", "domHash": "3c44d4d1ff59317a", "canaryPresent": false, @@ -2698,8 +2625,8 @@ "networkSettled": true, "targetBusyAfter": false, "after": { - "at": 2414, - "url": "http://127.0.0.1:37201/", + "at": 2403, + "url": "http://127.0.0.1:37211/", "title": "Conduit", "domHash": "3c44d4d1ff59317a", "canaryPresent": false, @@ -2736,8 +2663,8 @@ "indexedDb": [] } }, - "screenshot": "screenshots/b0c82736cf2f-after.png", - "snapshotIndex": "snapshots/RD-006.index.json" + "screenshot": "screenshots/d0dd9425c9ec-after.png", + "snapshotIndex": "snapshots/RD-005.index.json" }, "verdict": "VERIFIED", "evidenceLevel": 2, @@ -2745,10 +2672,10 @@ "detectorMatches": [] }, { - "id": "RD-007", + "id": "RD-006", "action": { - "id": "d111baedb773", - "pageUrl": "http://127.0.0.1:37201/", + "id": "ebc87132381c", + "pageUrl": "http://127.0.0.1:37211/", "label": "conduit", "activation": "click", "kind": "navigation", @@ -2761,7 +2688,7 @@ "role": "link", "accessibleName": "conduit", "text": "conduit", - "href": "http://127.0.0.1:37201/#/", + "href": "http://127.0.0.1:37211/#/", "candidates": [ { "strategy": "role", @@ -2780,7 +2707,7 @@ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37201/#/" + "value": "http://127.0.0.1:37211/#/" }, { "strategy": "text", @@ -2798,9 +2725,9 @@ "fields": [] }, "evidence": { - "startedAt": "2026-07-23T14:57:03.956Z", - "durationMs": 2429, - "canary": "RD_TEST_1CDB2B", + "startedAt": "2026-07-26T08:41:56.034Z", + "durationMs": 2434, + "canary": "RD_TEST_399DAD", "network": [], "console": [], "pageErrors": [], @@ -2818,35 +2745,35 @@ "weight": 92, "matchCount": 2, "visibleCount": 2, - "elapsedMs": 9 + "elapsedMs": 4 }, { "strategy": "role", "weight": 82, "matchCount": 2, "visibleCount": 2, - "elapsedMs": 7 + "elapsedMs": 3 }, { "strategy": "href", "weight": 72, "matchCount": 0, "visibleCount": 0, - "elapsedMs": 2 + "elapsedMs": 1 }, { "strategy": "text", "weight": 60, "matchCount": 3, "visibleCount": 3, - "elapsedMs": 9 + "elapsedMs": 3 }, { "strategy": "css", "weight": 35, "matchCount": 1, "visibleCount": 1, - "elapsedMs": 5 + "elapsedMs": 2 } ], "chosenStrategy": "css", @@ -2854,8 +2781,8 @@ "retryCount": 0 }, "before": { - "at": 1409, - "url": "http://127.0.0.1:37201/", + "at": 1451, + "url": "http://127.0.0.1:37211/", "title": "Conduit", "domHash": "3c44d4d1ff59317a", "canaryPresent": false, @@ -2893,8 +2820,8 @@ } }, "beforeAction": { - "at": 1420, - "url": "http://127.0.0.1:37201/", + "at": 1457, + "url": "http://127.0.0.1:37211/", "title": "Conduit", "domHash": "3c44d4d1ff59317a", "canaryPresent": false, @@ -2934,8 +2861,8 @@ "networkSettled": true, "targetBusyAfter": false, "after": { - "at": 2424, - "url": "http://127.0.0.1:37201/#/", + "at": 2431, + "url": "http://127.0.0.1:37211/#/", "title": "Conduit", "domHash": "3c44d4d1ff59317a", "canaryPresent": false, @@ -2972,7 +2899,7 @@ "indexedDb": [] } }, - "snapshotIndex": "snapshots/RD-007.index.json" + "snapshotIndex": "snapshots/RD-006.index.json" }, "verdict": "VERIFIED", "evidenceLevel": 1, @@ -2980,288 +2907,142 @@ "detectorMatches": [] }, { - "id": "RD-008", + "id": "RD-007", "action": { - "id": "1f55b7de9f3a", - "pageUrl": "http://127.0.0.1:37201/", - "label": "Thinkster", + "id": "d9cb9b16904a", + "pageUrl": "http://127.0.0.1:37211/#/login", + "label": "conduit", "activation": "click", "kind": "navigation", "intent": "navigate", "risk": "safe", "fingerprint": { - "selector": "body > div > footer > div > span > a", + "selector": "body > div > header > nav > div > a", "tag": "a", - "ordinal": 7, + "ordinal": 0, "role": "link", - "accessibleName": "Thinkster", - "text": "Thinkster", - "href": "https://thinkster.io/", + "accessibleName": "conduit", + "text": "conduit", + "href": "http://127.0.0.1:37211/#/", "candidates": [ { "strategy": "role", "weight": 92, "role": "link", - "name": "Thinkster", + "name": "conduit", "exact": true }, { "strategy": "role", "weight": 82, "role": "link", - "name": "Thinkster", + "name": "conduit", "exact": false }, { "strategy": "href", "weight": 72, - "value": "https://thinkster.io/" + "value": "http://127.0.0.1:37211/#/" }, { "strategy": "text", "weight": 60, - "value": "Thinkster", + "value": "conduit", "exact": true }, { "strategy": "css", "weight": 35, - "selector": "body > div > footer > div > span > a" + "selector": "body > div > header > nav > div > a" } ] }, "fields": [] }, - "verdict": "SKIPPED", - "evidenceLevel": 0, - "reason": "Cross-origin navigation blocked by the default safety policy. Use --allow-external explicitly.", - "skippedReason": "Cross-origin navigation blocked by the default safety policy. Use --allow-external explicitly.", - "detectorMatches": [], "evidence": { - "startedAt": "", - "durationMs": 0, - "canary": "", - "network": [], + "startedAt": "2026-07-26T08:41:58.471Z", + "durationMs": 2423, + "canary": "RD_TEST_0D842B", + "network": [ + { + "id": "net-1", + "method": "GET", + "url": "http://127.0.0.1:37211/api/articles?limit=3&&offset=0", + "resourceType": "xhr", + "startedAt": 1470, + "status": 200, + "ok": true, + "contentType": "application/json", + "resourceTypeHint": "articles", + "finishedAt": 1476 + }, + { + "id": "net-2", + "method": "GET", + "url": "http://127.0.0.1:37211/api/tags", + "resourceType": "xhr", + "startedAt": 1470, + "status": 200, + "ok": true, + "finishedAt": 1477, + "contentType": "application/json", + "resourceTypeHint": "tags" + } + ], "console": [], "pageErrors": [], "uiClaims": [], "filledFields": [], "dialogs": [], "downloads": [], + "downloadEvidence": [], + "uploads": [], "popupUrls": [], - "snapshotIndex": "snapshots/RD-008.index.json" - } - }, - { - "id": "RD-009", - "action": { - "id": "7a0a565717a2", - "pageUrl": "http://127.0.0.1:37201/", - "label": "Source code", - "activation": "click", - "kind": "navigation", - "intent": "navigate", - "risk": "safe", - "fingerprint": { - "selector": "body > div > footer > div > ul > li > a", - "tag": "a", - "ordinal": 8, - "role": "link", - "accessibleName": "Source code", - "text": "Source code", - "href": "https://github.com/TonyMckes/conduit-realworld-example-app", - "candidates": [ + "locatorResolution": { + "attempts": [ { "strategy": "role", "weight": 92, - "role": "link", - "name": "Source code", - "exact": true + "matchCount": 2, + "visibleCount": 2, + "elapsedMs": 5 }, { "strategy": "role", "weight": 82, - "role": "link", - "name": "Source code", - "exact": false + "matchCount": 2, + "visibleCount": 2, + "elapsedMs": 3 }, { "strategy": "href", "weight": 72, - "value": "https://github.com/TonyMckes/conduit-realworld-example-app" + "matchCount": 0, + "visibleCount": 0, + "elapsedMs": 1 }, { "strategy": "text", "weight": 60, - "value": "Source code", - "exact": true + "matchCount": 2, + "visibleCount": 2, + "elapsedMs": 3 }, { "strategy": "css", "weight": 35, - "selector": "body > div > footer > div > ul > li > a" + "matchCount": 1, + "visibleCount": 1, + "elapsedMs": 2 } - ] - }, - "fields": [] - }, - "verdict": "SKIPPED", - "evidenceLevel": 0, - "reason": "Cross-origin navigation blocked by the default safety policy. Use --allow-external explicitly.", - "skippedReason": "Cross-origin navigation blocked by the default safety policy. Use --allow-external explicitly.", - "detectorMatches": [], - "evidence": { - "startedAt": "", - "durationMs": 0, - "canary": "", - "network": [], - "console": [], - "pageErrors": [], - "uiClaims": [], - "filledFields": [], - "dialogs": [], - "downloads": [], - "popupUrls": [], - "snapshotIndex": "snapshots/RD-009.index.json" - } - }, - { - "id": "RD-010", - "action": { - "id": "905ee6e2a332", - "pageUrl": "http://127.0.0.1:37201/#/login", - "label": "conduit", - "activation": "click", - "kind": "navigation", - "intent": "navigate", - "risk": "safe", - "fingerprint": { - "selector": "body > div > header > nav > div > a", - "tag": "a", - "ordinal": 0, - "role": "link", - "accessibleName": "conduit", - "text": "conduit", - "href": "http://127.0.0.1:37201/#/", - "candidates": [ - { - "strategy": "role", - "weight": 92, - "role": "link", - "name": "conduit", - "exact": true - }, - { - "strategy": "role", - "weight": 82, - "role": "link", - "name": "conduit", - "exact": false - }, - { - "strategy": "href", - "weight": 72, - "value": "http://127.0.0.1:37201/#/" - }, - { - "strategy": "text", - "weight": 60, - "value": "conduit", - "exact": true - }, - { - "strategy": "css", - "weight": 35, - "selector": "body > div > header > nav > div > a" - } - ] - }, - "fields": [] - }, - "evidence": { - "startedAt": "2026-07-23T14:57:06.412Z", - "durationMs": 2416, - "canary": "RD_TEST_08A159", - "network": [ - { - "id": "net-1", - "method": "GET", - "url": "http://127.0.0.1:37201/api/articles?limit=3&&offset=0", - "resourceType": "xhr", - "startedAt": 1446, - "status": 200, - "ok": true, - "contentType": "application/json", - "resourceTypeHint": "articles", - "finishedAt": 1453 - }, - { - "id": "net-2", - "method": "GET", - "url": "http://127.0.0.1:37201/api/tags", - "resourceType": "xhr", - "startedAt": 1447, - "status": 200, - "ok": true, - "finishedAt": 1454, - "contentType": "application/json", - "resourceTypeHint": "tags" - } - ], - "console": [], - "pageErrors": [], - "uiClaims": [], - "filledFields": [], - "dialogs": [], - "downloads": [], - "downloadEvidence": [], - "uploads": [], - "popupUrls": [], - "locatorResolution": { - "attempts": [ - { - "strategy": "role", - "weight": 92, - "matchCount": 2, - "visibleCount": 2, - "elapsedMs": 9 - }, - { - "strategy": "role", - "weight": 82, - "matchCount": 2, - "visibleCount": 2, - "elapsedMs": 7 - }, - { - "strategy": "href", - "weight": 72, - "matchCount": 0, - "visibleCount": 0, - "elapsedMs": 3 - }, - { - "strategy": "text", - "weight": 60, - "matchCount": 2, - "visibleCount": 2, - "elapsedMs": 6 - }, - { - "strategy": "css", - "weight": 35, - "matchCount": 1, - "visibleCount": 1, - "elapsedMs": 5 - } - ], - "chosenStrategy": "css", - "chosenWeight": 35, - "retryCount": 0 + ], + "chosenStrategy": "css", + "chosenWeight": 35, + "retryCount": 0 }, "before": { - "at": 1402, - "url": "http://127.0.0.1:37201/#/login", + "at": 1437, + "url": "http://127.0.0.1:37211/#/login", "title": "Conduit", "domHash": "c659be8900b0e706", "canaryPresent": false, @@ -3317,8 +3098,8 @@ } }, "beforeAction": { - "at": 1413, - "url": "http://127.0.0.1:37201/#/login", + "at": 1443, + "url": "http://127.0.0.1:37211/#/login", "title": "Conduit", "domHash": "c659be8900b0e706", "canaryPresent": false, @@ -3376,8 +3157,8 @@ "networkSettled": true, "targetBusyAfter": false, "after": { - "at": 2411, - "url": "http://127.0.0.1:37201/#/", + "at": 2420, + "url": "http://127.0.0.1:37211/#/", "title": "Conduit", "domHash": "3c44d4d1ff59317a", "canaryPresent": false, @@ -3414,7 +3195,7 @@ "indexedDb": [] } }, - "snapshotIndex": "snapshots/RD-010.index.json" + "snapshotIndex": "snapshots/RD-007.index.json" }, "verdict": "VERIFIED", "evidenceLevel": 2, @@ -3422,83 +3203,10 @@ "detectorMatches": [] }, { - "id": "RD-011", - "action": { - "id": "b7f9fe7fa70a", - "pageUrl": "http://127.0.0.1:37201/#/login", - "label": "Source code", - "activation": "click", - "kind": "navigation", - "intent": "navigate", - "risk": "safe", - "fingerprint": { - "selector": "body > div > header > nav > div > ul:nth-of-type(1) > li > a", - "tag": "a", - "ordinal": 1, - "role": "link", - "accessibleName": "Source code", - "text": "Source code", - "href": "https://github.com/TonyMckes/conduit-realworld-example-app", - "candidates": [ - { - "strategy": "role", - "weight": 92, - "role": "link", - "name": "Source code", - "exact": true - }, - { - "strategy": "role", - "weight": 82, - "role": "link", - "name": "Source code", - "exact": false - }, - { - "strategy": "href", - "weight": 72, - "value": "https://github.com/TonyMckes/conduit-realworld-example-app" - }, - { - "strategy": "text", - "weight": 60, - "value": "Source code", - "exact": true - }, - { - "strategy": "css", - "weight": 35, - "selector": "body > div > header > nav > div > ul:nth-of-type(1) > li > a" - } - ] - }, - "fields": [] - }, - "verdict": "SKIPPED", - "evidenceLevel": 0, - "reason": "Cross-origin navigation blocked by the default safety policy. Use --allow-external explicitly.", - "skippedReason": "Cross-origin navigation blocked by the default safety policy. Use --allow-external explicitly.", - "detectorMatches": [], - "evidence": { - "startedAt": "", - "durationMs": 0, - "canary": "", - "network": [], - "console": [], - "pageErrors": [], - "uiClaims": [], - "filledFields": [], - "dialogs": [], - "downloads": [], - "popupUrls": [], - "snapshotIndex": "snapshots/RD-011.index.json" - } - }, - { - "id": "RD-012", + "id": "RD-008", "action": { - "id": "a1e1bb7a1a03", - "pageUrl": "http://127.0.0.1:37201/#/login", + "id": "34045263ad97", + "pageUrl": "http://127.0.0.1:37211/#/login", "label": "Home", "activation": "click", "kind": "navigation", @@ -3511,7 +3219,7 @@ "role": "link", "accessibleName": "Home", "text": "Home", - "href": "http://127.0.0.1:37201/#/", + "href": "http://127.0.0.1:37211/#/", "candidates": [ { "strategy": "role", @@ -3530,7 +3238,7 @@ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37201/#/" + "value": "http://127.0.0.1:37211/#/" }, { "strategy": "text", @@ -3548,31 +3256,31 @@ "fields": [] }, "evidence": { - "startedAt": "2026-07-23T14:57:08.872Z", - "durationMs": 2371, - "canary": "RD_TEST_794793", + "startedAt": "2026-07-26T08:42:00.896Z", + "durationMs": 2423, + "canary": "RD_TEST_81FCCA", "network": [ { "id": "net-1", "method": "GET", - "url": "http://127.0.0.1:37201/api/articles?limit=3&&offset=0", + "url": "http://127.0.0.1:37211/api/articles?limit=3&&offset=0", "resourceType": "xhr", - "startedAt": 1402, + "startedAt": 1444, "status": 200, "ok": true, + "finishedAt": 1451, "contentType": "application/json", - "resourceTypeHint": "articles", - "finishedAt": 1409 + "resourceTypeHint": "articles" }, { "id": "net-2", "method": "GET", - "url": "http://127.0.0.1:37201/api/tags", + "url": "http://127.0.0.1:37211/api/tags", "resourceType": "xhr", - "startedAt": 1403, + "startedAt": 1444, "status": 200, "ok": true, - "finishedAt": 1410, + "finishedAt": 1451, "contentType": "application/json", "resourceTypeHint": "tags" } @@ -3593,14 +3301,14 @@ "weight": 92, "matchCount": 0, "visibleCount": 0, - "elapsedMs": 4 + "elapsedMs": 2 }, { "strategy": "role", "weight": 82, "matchCount": 1, "visibleCount": 1, - "elapsedMs": 5 + "elapsedMs": 3 } ], "chosenStrategy": "role", @@ -3608,8 +3316,8 @@ "retryCount": 0 }, "before": { - "at": 1361, - "url": "http://127.0.0.1:37201/#/login", + "at": 1404, + "url": "http://127.0.0.1:37211/#/login", "title": "Conduit", "domHash": "c659be8900b0e706", "canaryPresent": false, @@ -3665,8 +3373,8 @@ } }, "beforeAction": { - "at": 1371, - "url": "http://127.0.0.1:37201/#/login", + "at": 1410, + "url": "http://127.0.0.1:37211/#/login", "title": "Conduit", "domHash": "c659be8900b0e706", "canaryPresent": false, @@ -3724,8 +3432,8 @@ "networkSettled": true, "targetBusyAfter": false, "after": { - "at": 2366, - "url": "http://127.0.0.1:37201/#/", + "at": 2421, + "url": "http://127.0.0.1:37211/#/", "title": "Conduit", "domHash": "3c44d4d1ff59317a", "canaryPresent": false, @@ -3762,7 +3470,7 @@ "indexedDb": [] } }, - "snapshotIndex": "snapshots/RD-012.index.json" + "snapshotIndex": "snapshots/RD-008.index.json" }, "verdict": "VERIFIED", "evidenceLevel": 2, @@ -3770,67 +3478,62 @@ "detectorMatches": [] }, { - "id": "RD-013", + "id": "RD-009", "action": { - "id": "c93ffa34633c", - "pageUrl": "http://127.0.0.1:37201/#/login", - "label": "Login", + "id": "0b686cd5ddf4", + "pageUrl": "http://127.0.0.1:37211/#/login", + "label": "Sign up", "activation": "click", "kind": "navigation", "intent": "navigate", "risk": "safe", "fingerprint": { - "selector": "body > div > header > nav > div > ul:nth-of-type(2) > li:nth-of-type(2) > a", + "selector": "body > div > header > nav > div > ul:nth-of-type(2) > li:nth-of-type(3) > a", "tag": "a", - "ordinal": 3, + "ordinal": 4, "role": "link", - "accessibleName": "Login", - "text": "Login", - "href": "http://127.0.0.1:37201/#/login", + "accessibleName": "Sign up", + "text": "Sign up", + "href": "http://127.0.0.1:37211/#/register", "candidates": [ { "strategy": "role", "weight": 92, "role": "link", - "name": "Login", + "name": "Sign up", "exact": true }, { "strategy": "role", "weight": 82, "role": "link", - "name": "Login", + "name": "Sign up", "exact": false }, { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37201/#/login" + "value": "http://127.0.0.1:37211/#/register" }, { "strategy": "text", "weight": 60, - "value": "Login", + "value": "Sign up", "exact": true }, { "strategy": "css", "weight": 35, - "selector": "body > div > header > nav > div > ul:nth-of-type(2) > li:nth-of-type(2) > a" + "selector": "body > div > header > nav > div > ul:nth-of-type(2) > li:nth-of-type(3) > a" } ] }, "fields": [] }, - "verdict": "SKIPPED", - "evidenceLevel": 0, - "reason": "Navigation target is already the current page.", - "skippedReason": "Navigation target is already the current page.", - "detectorMatches": [], "evidence": { - "startedAt": "", - "durationMs": 0, - "canary": "", + "startedAt": "2026-07-26T08:42:03.321Z", + "durationMs": 2410, + "canary": "RD_TEST_977691", "network": [], "console": [], "pageErrors": [], @@ -3838,85 +3541,17 @@ "filledFields": [], "dialogs": [], "downloads": [], + "downloadEvidence": [], + "uploads": [], "popupUrls": [], - "snapshotIndex": "snapshots/RD-013.index.json" - } - }, - { - "id": "RD-014", - "action": { - "id": "89d8ef49c5e7", - "pageUrl": "http://127.0.0.1:37201/#/login", - "label": "Sign up", - "activation": "click", - "kind": "navigation", - "intent": "navigate", - "risk": "safe", - "fingerprint": { - "selector": "body > div > header > nav > div > ul:nth-of-type(2) > li:nth-of-type(3) > a", - "tag": "a", - "ordinal": 4, - "role": "link", - "accessibleName": "Sign up", - "text": "Sign up", - "href": "http://127.0.0.1:37201/#/register", - "candidates": [ - { - "strategy": "role", - "weight": 92, - "role": "link", - "name": "Sign up", - "exact": true - }, - { - "strategy": "role", - "weight": 82, - "role": "link", - "name": "Sign up", - "exact": false - }, - { - "strategy": "href", - "weight": 72, - "value": "http://127.0.0.1:37201/#/register" - }, - { - "strategy": "text", - "weight": 60, - "value": "Sign up", - "exact": true - }, - { - "strategy": "css", - "weight": 35, - "selector": "body > div > header > nav > div > ul:nth-of-type(2) > li:nth-of-type(3) > a" - } - ] - }, - "fields": [] - }, - "evidence": { - "startedAt": "2026-07-23T14:57:11.294Z", - "durationMs": 2391, - "canary": "RD_TEST_981FFC", - "network": [], - "console": [], - "pageErrors": [], - "uiClaims": [], - "filledFields": [], - "dialogs": [], - "downloads": [], - "downloadEvidence": [], - "uploads": [], - "popupUrls": [], - "locatorResolution": { - "attempts": [ + "locatorResolution": { + "attempts": [ { "strategy": "role", "weight": 92, "matchCount": 1, "visibleCount": 1, - "elapsedMs": 6 + "elapsedMs": 4 } ], "chosenStrategy": "role", @@ -3924,8 +3559,8 @@ "retryCount": 0 }, "before": { - "at": 1361, - "url": "http://127.0.0.1:37201/#/login", + "at": 1414, + "url": "http://127.0.0.1:37211/#/login", "title": "Conduit", "domHash": "c659be8900b0e706", "canaryPresent": false, @@ -3981,8 +3616,8 @@ } }, "beforeAction": { - "at": 1371, - "url": "http://127.0.0.1:37201/#/login", + "at": 1421, + "url": "http://127.0.0.1:37211/#/login", "title": "Conduit", "domHash": "c659be8900b0e706", "canaryPresent": false, @@ -4040,8 +3675,8 @@ "networkSettled": true, "targetBusyAfter": false, "after": { - "at": 2386, - "url": "http://127.0.0.1:37201/#/register", + "at": 2407, + "url": "http://127.0.0.1:37211/#/register", "title": "Conduit", "domHash": "1f4fa65964895f4c", "canaryPresent": false, @@ -4105,7 +3740,7 @@ "indexedDb": [] } }, - "snapshotIndex": "snapshots/RD-014.index.json" + "snapshotIndex": "snapshots/RD-009.index.json" }, "verdict": "VERIFIED", "evidenceLevel": 1, @@ -4113,10 +3748,10 @@ "detectorMatches": [] }, { - "id": "RD-015", + "id": "RD-010", "action": { - "id": "8088b15f95c8", - "pageUrl": "http://127.0.0.1:37201/#/login", + "id": "bc493dcbfb71", + "pageUrl": "http://127.0.0.1:37211/#/login", "label": "Need an account?", "activation": "click", "kind": "navigation", @@ -4129,7 +3764,7 @@ "role": "link", "accessibleName": "Need an account?", "text": "Need an account?", - "href": "http://127.0.0.1:37201/#/register", + "href": "http://127.0.0.1:37211/#/register", "candidates": [ { "strategy": "role", @@ -4148,7 +3783,7 @@ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37201/#/register" + "value": "http://127.0.0.1:37211/#/register" }, { "strategy": "text", @@ -4166,9 +3801,9 @@ "fields": [] }, "evidence": { - "startedAt": "2026-07-23T14:57:13.734Z", - "durationMs": 2393, - "canary": "RD_TEST_263E3E", + "startedAt": "2026-07-26T08:42:05.734Z", + "durationMs": 2425, + "canary": "RD_TEST_53A256", "network": [], "console": [], "pageErrors": [], @@ -4186,7 +3821,7 @@ "weight": 92, "matchCount": 1, "visibleCount": 1, - "elapsedMs": 6 + "elapsedMs": 3 } ], "chosenStrategy": "role", @@ -4194,8 +3829,8 @@ "retryCount": 0 }, "before": { - "at": 1383, - "url": "http://127.0.0.1:37201/#/login", + "at": 1430, + "url": "http://127.0.0.1:37211/#/login", "title": "Conduit", "domHash": "c659be8900b0e706", "canaryPresent": false, @@ -4251,8 +3886,8 @@ } }, "beforeAction": { - "at": 1392, - "url": "http://127.0.0.1:37201/#/login", + "at": 1437, + "url": "http://127.0.0.1:37211/#/login", "title": "Conduit", "domHash": "c659be8900b0e706", "canaryPresent": false, @@ -4310,8 +3945,8 @@ "networkSettled": true, "targetBusyAfter": false, "after": { - "at": 2389, - "url": "http://127.0.0.1:37201/#/register", + "at": 2422, + "url": "http://127.0.0.1:37211/#/register", "title": "Conduit", "domHash": "1f4fa65964895f4c", "canaryPresent": false, @@ -4375,7 +4010,7 @@ "indexedDb": [] } }, - "snapshotIndex": "snapshots/RD-015.index.json" + "snapshotIndex": "snapshots/RD-010.index.json" }, "verdict": "VERIFIED", "evidenceLevel": 1, @@ -4383,10 +4018,10 @@ "detectorMatches": [] }, { - "id": "RD-016", + "id": "RD-011", "action": { - "id": "7f2e167968b6", - "pageUrl": "http://127.0.0.1:37201/#/login", + "id": "4991c205504d", + "pageUrl": "http://127.0.0.1:37211/#/login", "label": "Login", "activation": "submit", "kind": "mutation", @@ -4435,20 +4070,20 @@ ] }, "evidence": { - "startedAt": "2026-07-23T14:57:16.176Z", - "durationMs": 6867, - "canary": "RD_TEST_42C28D", + "startedAt": "2026-07-26T08:42:08.165Z", + "durationMs": 6833, + "canary": "RD_TEST_BAA921", "network": [ { "id": "net-1", "method": "POST", - "url": "http://127.0.0.1:37201/api/users/login", + "url": "http://127.0.0.1:37211/api/users/login", "resourceType": "xhr", - "startedAt": 1467, + "startedAt": 1491, "status": 404, "ok": false, "contentType": "application/json", - "finishedAt": 1716, + "finishedAt": 1554, "resourceTypeHint": "login" }, { @@ -4456,34 +4091,34 @@ "method": "GET", "url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwlxdu.woff2", "resourceType": "font", - "startedAt": 1719, + "startedAt": 1570, "status": 200, "ok": true, - "finishedAt": 1772, + "finishedAt": 1622, "contentType": "font/woff2", "resourceTypeHint": "6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwlxdu.woff2" }, { "id": "net-3", "method": "GET", - "url": "http://127.0.0.1:37201/", + "url": "http://127.0.0.1:37211/", "resourceType": "document", - "startedAt": 2798, + "startedAt": 2622, "status": 200, "ok": true, "contentType": "text/html", "resourceTypeHint": "resource", - "finishedAt": 2806 + "finishedAt": 2630 }, { "id": "net-4", "method": "GET", "url": "http://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css", "resourceType": "stylesheet", - "startedAt": 2805, + "startedAt": 2628, "status": 307, "ok": false, - "finishedAt": 2809, + "finishedAt": 2631, "location": "https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css", "resourceTypeHint": "ionicons.min.css" }, @@ -4492,34 +4127,34 @@ "method": "GET", "url": "http://fonts.googleapis.com/css?family=Titillium+Web:700|Source+Serif+Pro:400,700|Merriweather+Sans:400,700|Source+Sans+Pro:400,300,600,700,300italic,400italic,600italic,700italic", "resourceType": "stylesheet", - "startedAt": 2805, + "startedAt": 2629, "status": 200, "ok": true, - "finishedAt": 2844, + "finishedAt": 2674, "contentType": "text/css", "resourceTypeHint": "css" }, { "id": "net-6", "method": "GET", - "url": "http://127.0.0.1:37201/assets/index-CLdavoKn.js", + "url": "http://127.0.0.1:37211/assets/index-CLdavoKn.js", "resourceType": "script", - "startedAt": 2805, + "startedAt": 2629, "status": 200, "ok": true, - "finishedAt": 2820, + "finishedAt": 2643, "contentType": "text/javascript", "resourceTypeHint": "index-CLdavoKn.js" }, { "id": "net-7", "method": "GET", - "url": "http://127.0.0.1:37201/assets/index-De1Lwdlm.css", + "url": "http://127.0.0.1:37211/assets/index-De1Lwdlm.css", "resourceType": "stylesheet", - "startedAt": 2806, + "startedAt": 2629, "status": 200, "ok": true, - "finishedAt": 2811, + "finishedAt": 2635, "contentType": "text/css", "resourceTypeHint": "index-De1Lwdlm.css" }, @@ -4528,22 +4163,22 @@ "method": "GET", "url": "https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css", "resourceType": "stylesheet", - "startedAt": 2809, + "startedAt": 2631, "status": 200, "ok": true, "contentType": "text/css", "resourceTypeHint": "ionicons.min.css", - "finishedAt": 2918 + "finishedAt": 2783 }, { "id": "net-9", "method": "GET", "url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdu.woff2", "resourceType": "font", - "startedAt": 2925, + "startedAt": 2790, "status": 200, "ok": true, - "finishedAt": 2978, + "finishedAt": 2839, "contentType": "font/woff2", "resourceTypeHint": "6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdu.woff2" }, @@ -4552,22 +4187,22 @@ "method": "GET", "url": "https://code.ionicframework.com/ionicons/2.0.1/fonts/ionicons.ttf?v=2.0.1", "resourceType": "font", - "startedAt": 2926, + "startedAt": 2790, "status": 200, "ok": true, + "finishedAt": 2952, "contentType": "font/ttf", - "resourceTypeHint": "ionicons.ttf", - "finishedAt": 3017 + "resourceTypeHint": "ionicons.ttf" }, { "id": "net-11", "method": "GET", "url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7l.woff2", "resourceType": "font", - "startedAt": 2926, + "startedAt": 2791, "status": 200, "ok": true, - "finishedAt": 2977, + "finishedAt": 2837, "contentType": "font/woff2", "resourceTypeHint": "6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7l.woff2" }, @@ -4576,34 +4211,34 @@ "method": "GET", "url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7nsDI.woff2", "resourceType": "font", - "startedAt": 2927, + "startedAt": 2791, "status": 200, "ok": true, - "finishedAt": 2973, + "finishedAt": 2836, "contentType": "font/woff2", "resourceTypeHint": "6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7nsDI.woff2" }, { "id": "net-13", "method": "GET", - "url": "http://127.0.0.1:37201/", + "url": "http://127.0.0.1:37211/", "resourceType": "document", - "startedAt": 3797, + "startedAt": 3653, "status": 200, "ok": true, "contentType": "text/html", "resourceTypeHint": "resource", - "finishedAt": 3805 + "finishedAt": 3662 }, { "id": "net-14", "method": "GET", "url": "http://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css", "resourceType": "stylesheet", - "startedAt": 3803, + "startedAt": 3661, "status": 307, "ok": false, - "finishedAt": 3806, + "finishedAt": 3664, "location": "https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css", "resourceTypeHint": "ionicons.min.css" }, @@ -4612,58 +4247,58 @@ "method": "GET", "url": "http://fonts.googleapis.com/css?family=Titillium+Web:700|Source+Serif+Pro:400,700|Merriweather+Sans:400,700|Source+Sans+Pro:400,300,600,700,300italic,400italic,600italic,700italic", "resourceType": "stylesheet", - "startedAt": 3804, + "startedAt": 3661, "status": 200, "ok": true, - "finishedAt": 3843, + "finishedAt": 3703, "contentType": "text/css", "resourceTypeHint": "css" }, { "id": "net-16", "method": "GET", - "url": "http://127.0.0.1:37201/assets/index-CLdavoKn.js", + "url": "http://127.0.0.1:37211/assets/index-CLdavoKn.js", "resourceType": "script", - "startedAt": 3804, + "startedAt": 3661, "status": 200, "ok": true, - "finishedAt": 3819, + "finishedAt": 3676, "contentType": "text/javascript", "resourceTypeHint": "index-CLdavoKn.js" }, { "id": "net-17", "method": "GET", - "url": "http://127.0.0.1:37201/assets/index-De1Lwdlm.css", + "url": "http://127.0.0.1:37211/assets/index-De1Lwdlm.css", "resourceType": "stylesheet", - "startedAt": 3804, + "startedAt": 3662, "status": 200, "ok": true, + "finishedAt": 3668, "contentType": "text/css", - "resourceTypeHint": "index-De1Lwdlm.css", - "finishedAt": 3810 + "resourceTypeHint": "index-De1Lwdlm.css" }, { "id": "net-18", "method": "GET", "url": "https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css", "resourceType": "stylesheet", - "startedAt": 3806, + "startedAt": 3664, "status": 200, "ok": true, - "finishedAt": 3871, "contentType": "text/css", - "resourceTypeHint": "ionicons.min.css" + "resourceTypeHint": "ionicons.min.css", + "finishedAt": 3744 }, { "id": "net-19", "method": "GET", "url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdu.woff2", "resourceType": "font", - "startedAt": 3882, + "startedAt": 3752, "status": 200, "ok": true, - "finishedAt": 3935, + "finishedAt": 3802, "contentType": "font/woff2", "resourceTypeHint": "6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdu.woff2" }, @@ -4672,22 +4307,22 @@ "method": "GET", "url": "https://code.ionicframework.com/ionicons/2.0.1/fonts/ionicons.ttf?v=2.0.1", "resourceType": "font", - "startedAt": 3882, + "startedAt": 3752, "status": 200, "ok": true, + "finishedAt": 3863, "contentType": "font/ttf", - "resourceTypeHint": "ionicons.ttf", - "finishedAt": 3974 + "resourceTypeHint": "ionicons.ttf" }, { "id": "net-21", "method": "GET", "url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7l.woff2", "resourceType": "font", - "startedAt": 3883, + "startedAt": 3753, "status": 200, "ok": true, - "finishedAt": 3933, + "finishedAt": 3799, "contentType": "font/woff2", "resourceTypeHint": "6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7l.woff2" }, @@ -4696,10 +4331,10 @@ "method": "GET", "url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7nsDI.woff2", "resourceType": "font", - "startedAt": 3884, + "startedAt": 3753, "status": 200, "ok": true, - "finishedAt": 3930, + "finishedAt": 3798, "contentType": "font/woff2", "resourceTypeHint": "6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7nsDI.woff2" } @@ -4708,7 +4343,7 @@ { "type": "error", "text": "Failed to load resource: the server responded with a status of 404 (Not Found)", - "at": 1715 + "at": 1553 } ], "pageErrors": [], @@ -4718,7 +4353,7 @@ "selector": "body > div > main > div > div > div > div > form > fieldset:nth-of-type(1) > input", "name": "email", "type": "email", - "value": "rd-rd_test_42c28d_1@example.test", + "value": "rd-rd_test_baa921_1@example.test", "redacted": false }, { @@ -4741,14 +4376,14 @@ "weight": 60, "matchCount": 2, "visibleCount": 2, - "elapsedMs": 8 + "elapsedMs": 4 }, { "strategy": "css", "weight": 35, "matchCount": 1, "visibleCount": 1, - "elapsedMs": 5 + "elapsedMs": 1 } ], "chosenStrategy": "css", @@ -4756,8 +4391,8 @@ "retryCount": 0 }, "before": { - "at": 1387, - "url": "http://127.0.0.1:37201/#/login", + "at": 1425, + "url": "http://127.0.0.1:37211/#/login", "title": "Conduit", "domHash": "c659be8900b0e706", "canaryPresent": false, @@ -4840,6 +4475,34 @@ "rows": [], "truncated": false }, + { + "adapter": "sqlite", + "resource": "SequelizeMeta", + "schemaHash": "a91c673b8b859260", + "rows": [ + { + "keyHash": "6f46d430f6eff183", + "rowHash": "6f46d430f6eff183", + "softDeleted": false + }, + { + "keyHash": "d9acc0648538a2a9", + "rowHash": "d9acc0648538a2a9", + "softDeleted": false + }, + { + "keyHash": "555b9edca7ca2740", + "rowHash": "555b9edca7ca2740", + "softDeleted": false + }, + { + "keyHash": "46f47d6d0ec8cc33", + "rowHash": "46f47d6d0ec8cc33", + "softDeleted": false + } + ], + "truncated": false + }, { "adapter": "sqlite", "resource": "TagList", @@ -4860,18 +4523,28 @@ "schemaHash": "565bde25c1fa7c3f", "rows": [ { - "keyHash": "82a8445b12df5a29", - "rowHash": "98571fe85d57b748", + "keyHash": "186347d9ea7673a2", + "rowHash": "a673f7916d5fd0f3", "softDeleted": false }, { - "keyHash": "2766c815d1c00dbe", - "rowHash": "f60800a3b43fda9d", + "keyHash": "da7114755c3b82ba", + "rowHash": "b59dd0c0c8425175", + "softDeleted": false + }, + { + "keyHash": "84cf60166b2ca345", + "rowHash": "03cdb9683302919a", + "softDeleted": false + }, + { + "keyHash": "9ef59241e15425e0", + "rowHash": "63453967fdb89d52", "softDeleted": false }, { - "keyHash": "75453dbfb3621178", - "rowHash": "4ef7737f091c4810", + "keyHash": "82a8445b12df5a29", + "rowHash": "ee3a949188ccec1f", "softDeleted": false } ], @@ -4880,10 +4553,10 @@ ] }, "beforeAction": { - "at": 1425, - "url": "http://127.0.0.1:37201/#/login", + "at": 1448, + "url": "http://127.0.0.1:37211/#/login", "title": "Conduit", - "domHash": "6e5267a6e13932fd", + "domHash": "0e5fbc1631aae76b", "canaryPresent": true, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -4903,7 +4576,7 @@ "tag": "input", "type": "email", "name": "email", - "valueHash": "d738a01f9a881b4d", + "valueHash": "3181725ee86589e3", "checked": false, "disabled": false, "visible": true @@ -4940,10 +4613,10 @@ "networkSettled": true, "targetBusyAfter": false, "after": { - "at": 2751, - "url": "http://127.0.0.1:37201/#/login", + "at": 2587, + "url": "http://127.0.0.1:37211/#/login", "title": "Conduit", - "domHash": "0349bb0055121dfe", + "domHash": "45f32846b54952d5", "canaryPresent": true, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -4963,7 +4636,7 @@ "tag": "input", "type": "email", "name": "email", - "valueHash": "d738a01f9a881b4d", + "valueHash": "3181725ee86589e3", "checked": false, "disabled": false, "visible": true @@ -5024,6 +4697,34 @@ "rows": [], "truncated": false }, + { + "adapter": "sqlite", + "resource": "SequelizeMeta", + "schemaHash": "a91c673b8b859260", + "rows": [ + { + "keyHash": "6f46d430f6eff183", + "rowHash": "6f46d430f6eff183", + "softDeleted": false + }, + { + "keyHash": "d9acc0648538a2a9", + "rowHash": "d9acc0648538a2a9", + "softDeleted": false + }, + { + "keyHash": "555b9edca7ca2740", + "rowHash": "555b9edca7ca2740", + "softDeleted": false + }, + { + "keyHash": "46f47d6d0ec8cc33", + "rowHash": "46f47d6d0ec8cc33", + "softDeleted": false + } + ], + "truncated": false + }, { "adapter": "sqlite", "resource": "TagList", @@ -5044,18 +4745,28 @@ "schemaHash": "565bde25c1fa7c3f", "rows": [ { - "keyHash": "82a8445b12df5a29", - "rowHash": "98571fe85d57b748", + "keyHash": "186347d9ea7673a2", + "rowHash": "a673f7916d5fd0f3", "softDeleted": false }, { - "keyHash": "2766c815d1c00dbe", - "rowHash": "f60800a3b43fda9d", + "keyHash": "da7114755c3b82ba", + "rowHash": "b59dd0c0c8425175", + "softDeleted": false + }, + { + "keyHash": "84cf60166b2ca345", + "rowHash": "03cdb9683302919a", + "softDeleted": false + }, + { + "keyHash": "9ef59241e15425e0", + "rowHash": "63453967fdb89d52", "softDeleted": false }, { - "keyHash": "75453dbfb3621178", - "rowHash": "4ef7737f091c4810", + "keyHash": "82a8445b12df5a29", + "rowHash": "ee3a949188ccec1f", "softDeleted": false } ], @@ -5063,10 +4774,10 @@ } ] }, - "screenshot": "screenshots/7f2e167968b6-after.png", + "screenshot": "screenshots/4991c205504d-after.png", "afterRefresh": { - "at": 3756, - "url": "http://127.0.0.1:37201/#/login", + "at": 3607, + "url": "http://127.0.0.1:37211/#/login", "title": "Conduit", "domHash": "c659be8900b0e706", "canaryPresent": false, @@ -5121,10 +4832,10 @@ "indexedDb": [] } }, - "refreshScreenshot": "screenshots/7f2e167968b6-refresh.png", + "refreshScreenshot": "screenshots/4991c205504d-refresh.png", "afterHardRefresh": { - "at": 4703, - "url": "http://127.0.0.1:37201/#/login", + "at": 4571, + "url": "http://127.0.0.1:37211/#/login", "title": "Conduit", "domHash": "c659be8900b0e706", "canaryPresent": false, @@ -5180,8 +4891,8 @@ } }, "afterNewTab": { - "at": 5686, - "url": "http://127.0.0.1:37201/#/login", + "at": 5551, + "url": "http://127.0.0.1:37211/#/login", "title": "Conduit", "domHash": "c659be8900b0e706", "canaryPresent": false, @@ -5237,8 +4948,8 @@ } }, "afterNewContext": { - "at": 6864, - "url": "http://127.0.0.1:37201/#/login", + "at": 6829, + "url": "http://127.0.0.1:37211/#/login", "title": "Conduit", "domHash": "c659be8900b0e706", "canaryPresent": false, @@ -5294,7 +5005,6 @@ } }, "persistenceScope": "MEMORY_ONLY", - "trace": "traces/7f2e167968b6.zip", "sourceDiffs": [ { "adapter": "sqlite", @@ -5332,6 +5042,15 @@ "softDeleted": [], "truncated": false }, + { + "adapter": "sqlite", + "resource": "SequelizeMeta", + "added": [], + "removed": [], + "changed": [], + "softDeleted": [], + "truncated": false + }, { "adapter": "sqlite", "resource": "TagList", @@ -5361,7 +5080,7 @@ } ], "sourceSnapshotErrors": [], - "snapshotIndex": "snapshots/RD-016.index.json" + "snapshotIndex": "snapshots/RD-011.index.json" }, "verdict": "UNCERTAIN", "evidenceLevel": 2, @@ -5369,10 +5088,10 @@ "detectorMatches": [] }, { - "id": "RD-017", + "id": "RD-012", "action": { - "id": "a880fcdaee82", - "pageUrl": "http://127.0.0.1:37201/#/login", + "id": "fcc68ac443ac", + "pageUrl": "http://127.0.0.1:37211/#/login", "label": "conduit", "activation": "click", "kind": "navigation", @@ -5385,7 +5104,7 @@ "role": "link", "accessibleName": "conduit", "text": "conduit", - "href": "http://127.0.0.1:37201/#/", + "href": "http://127.0.0.1:37211/#/", "candidates": [ { "strategy": "role", @@ -5404,7 +5123,7 @@ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37201/#/" + "value": "http://127.0.0.1:37211/#/" }, { "strategy": "text", @@ -5422,31 +5141,31 @@ "fields": [] }, "evidence": { - "startedAt": "2026-07-23T14:57:23.134Z", - "durationMs": 2394, - "canary": "RD_TEST_EEA979", + "startedAt": "2026-07-26T08:42:15.003Z", + "durationMs": 2411, + "canary": "RD_TEST_CDAA33", "network": [ { "id": "net-1", "method": "GET", - "url": "http://127.0.0.1:37201/api/articles?limit=3&&offset=0", + "url": "http://127.0.0.1:37211/api/articles?limit=3&&offset=0", "resourceType": "xhr", - "startedAt": 1439, + "startedAt": 1451, "status": 200, "ok": true, + "finishedAt": 1458, "contentType": "application/json", - "resourceTypeHint": "articles", - "finishedAt": 1446 + "resourceTypeHint": "articles" }, { "id": "net-2", "method": "GET", - "url": "http://127.0.0.1:37201/api/tags", + "url": "http://127.0.0.1:37211/api/tags", "resourceType": "xhr", - "startedAt": 1439, + "startedAt": 1452, "status": 200, "ok": true, - "finishedAt": 1446, + "finishedAt": 1458, "contentType": "application/json", "resourceTypeHint": "tags" } @@ -5467,35 +5186,35 @@ "weight": 92, "matchCount": 2, "visibleCount": 2, - "elapsedMs": 8 + "elapsedMs": 4 }, { "strategy": "role", "weight": 82, "matchCount": 2, "visibleCount": 2, - "elapsedMs": 7 + "elapsedMs": 5 }, { "strategy": "href", "weight": 72, "matchCount": 0, "visibleCount": 0, - "elapsedMs": 2 + "elapsedMs": 0 }, { "strategy": "text", "weight": 60, "matchCount": 2, "visibleCount": 2, - "elapsedMs": 6 + "elapsedMs": 3 }, { "strategy": "css", "weight": 35, "matchCount": 1, "visibleCount": 1, - "elapsedMs": 4 + "elapsedMs": 1 } ], "chosenStrategy": "css", @@ -5503,8 +5222,8 @@ "retryCount": 0 }, "before": { - "at": 1391, - "url": "http://127.0.0.1:37201/#/login", + "at": 1426, + "url": "http://127.0.0.1:37211/#/login", "title": "Conduit", "domHash": "c659be8900b0e706", "canaryPresent": false, @@ -5560,8 +5279,8 @@ } }, "beforeAction": { - "at": 1401, - "url": "http://127.0.0.1:37201/#/login", + "at": 1432, + "url": "http://127.0.0.1:37211/#/login", "title": "Conduit", "domHash": "c659be8900b0e706", "canaryPresent": false, @@ -5619,8 +5338,8 @@ "networkSettled": true, "targetBusyAfter": false, "after": { - "at": 2390, - "url": "http://127.0.0.1:37201/#/", + "at": 2408, + "url": "http://127.0.0.1:37211/#/", "title": "Conduit", "domHash": "3c44d4d1ff59317a", "canaryPresent": false, @@ -5657,7 +5376,7 @@ "indexedDb": [] } }, - "snapshotIndex": "snapshots/RD-017.index.json" + "snapshotIndex": "snapshots/RD-012.index.json" }, "verdict": "VERIFIED", "evidenceLevel": 2, @@ -5665,288 +5384,142 @@ "detectorMatches": [] }, { - "id": "RD-018", + "id": "RD-013", "action": { - "id": "5f8b0a679b86", - "pageUrl": "http://127.0.0.1:37201/#/login", - "label": "Thinkster", + "id": "59e2b437f2d6", + "pageUrl": "http://127.0.0.1:37211/#/register", + "label": "conduit", "activation": "click", "kind": "navigation", "intent": "navigate", "risk": "safe", "fingerprint": { - "selector": "body > div > footer > div > span > a", + "selector": "body > div > header > nav > div > a", "tag": "a", - "ordinal": 8, + "ordinal": 0, "role": "link", - "accessibleName": "Thinkster", - "text": "Thinkster", - "href": "https://thinkster.io/", + "accessibleName": "conduit", + "text": "conduit", + "href": "http://127.0.0.1:37211/#/", "candidates": [ { "strategy": "role", "weight": 92, "role": "link", - "name": "Thinkster", + "name": "conduit", "exact": true }, { "strategy": "role", "weight": 82, "role": "link", - "name": "Thinkster", + "name": "conduit", "exact": false }, { "strategy": "href", "weight": 72, - "value": "https://thinkster.io/" + "value": "http://127.0.0.1:37211/#/" }, { "strategy": "text", "weight": 60, - "value": "Thinkster", + "value": "conduit", "exact": true }, { "strategy": "css", "weight": 35, - "selector": "body > div > footer > div > span > a" + "selector": "body > div > header > nav > div > a" } ] }, "fields": [] }, - "verdict": "SKIPPED", - "evidenceLevel": 0, - "reason": "Cross-origin navigation blocked by the default safety policy. Use --allow-external explicitly.", - "skippedReason": "Cross-origin navigation blocked by the default safety policy. Use --allow-external explicitly.", - "detectorMatches": [], "evidence": { - "startedAt": "", - "durationMs": 0, - "canary": "", - "network": [], + "startedAt": "2026-07-26T08:42:17.417Z", + "durationMs": 2414, + "canary": "RD_TEST_2E4B0A", + "network": [ + { + "id": "net-1", + "method": "GET", + "url": "http://127.0.0.1:37211/api/articles?limit=3&&offset=0", + "resourceType": "xhr", + "startedAt": 1454, + "status": 200, + "ok": true, + "contentType": "application/json", + "resourceTypeHint": "articles", + "finishedAt": 1460 + }, + { + "id": "net-2", + "method": "GET", + "url": "http://127.0.0.1:37211/api/tags", + "resourceType": "xhr", + "startedAt": 1454, + "status": 200, + "ok": true, + "finishedAt": 1460, + "contentType": "application/json", + "resourceTypeHint": "tags" + } + ], "console": [], "pageErrors": [], "uiClaims": [], "filledFields": [], "dialogs": [], "downloads": [], + "downloadEvidence": [], + "uploads": [], "popupUrls": [], - "snapshotIndex": "snapshots/RD-018.index.json" - } - }, - { - "id": "RD-019", - "action": { - "id": "3b73857b77b6", - "pageUrl": "http://127.0.0.1:37201/#/login", - "label": "Source code", - "activation": "click", - "kind": "navigation", - "intent": "navigate", - "risk": "safe", - "fingerprint": { - "selector": "body > div > footer > div > ul > li > a", - "tag": "a", - "ordinal": 9, - "role": "link", - "accessibleName": "Source code", - "text": "Source code", - "href": "https://github.com/TonyMckes/conduit-realworld-example-app", - "candidates": [ + "locatorResolution": { + "attempts": [ { "strategy": "role", "weight": 92, - "role": "link", - "name": "Source code", - "exact": true + "matchCount": 2, + "visibleCount": 2, + "elapsedMs": 4 }, { "strategy": "role", "weight": 82, - "role": "link", - "name": "Source code", - "exact": false + "matchCount": 2, + "visibleCount": 2, + "elapsedMs": 3 }, { "strategy": "href", "weight": 72, - "value": "https://github.com/TonyMckes/conduit-realworld-example-app" + "matchCount": 0, + "visibleCount": 0, + "elapsedMs": 1 }, { "strategy": "text", "weight": 60, - "value": "Source code", - "exact": true + "matchCount": 2, + "visibleCount": 2, + "elapsedMs": 3 }, { "strategy": "css", "weight": 35, - "selector": "body > div > footer > div > ul > li > a" + "matchCount": 1, + "visibleCount": 1, + "elapsedMs": 2 } - ] - }, - "fields": [] - }, - "verdict": "SKIPPED", - "evidenceLevel": 0, - "reason": "Cross-origin navigation blocked by the default safety policy. Use --allow-external explicitly.", - "skippedReason": "Cross-origin navigation blocked by the default safety policy. Use --allow-external explicitly.", - "detectorMatches": [], - "evidence": { - "startedAt": "", - "durationMs": 0, - "canary": "", - "network": [], - "console": [], - "pageErrors": [], - "uiClaims": [], - "filledFields": [], - "dialogs": [], - "downloads": [], - "popupUrls": [], - "snapshotIndex": "snapshots/RD-019.index.json" - } - }, - { - "id": "RD-020", - "action": { - "id": "758f6c523ad4", - "pageUrl": "http://127.0.0.1:37201/#/register", - "label": "conduit", - "activation": "click", - "kind": "navigation", - "intent": "navigate", - "risk": "safe", - "fingerprint": { - "selector": "body > div > header > nav > div > a", - "tag": "a", - "ordinal": 0, - "role": "link", - "accessibleName": "conduit", - "text": "conduit", - "href": "http://127.0.0.1:37201/#/", - "candidates": [ - { - "strategy": "role", - "weight": 92, - "role": "link", - "name": "conduit", - "exact": true - }, - { - "strategy": "role", - "weight": 82, - "role": "link", - "name": "conduit", - "exact": false - }, - { - "strategy": "href", - "weight": 72, - "value": "http://127.0.0.1:37201/#/" - }, - { - "strategy": "text", - "weight": 60, - "value": "conduit", - "exact": true - }, - { - "strategy": "css", - "weight": 35, - "selector": "body > div > header > nav > div > a" - } - ] - }, - "fields": [] - }, - "evidence": { - "startedAt": "2026-07-23T14:57:25.568Z", - "durationMs": 2394, - "canary": "RD_TEST_D69A07", - "network": [ - { - "id": "net-1", - "method": "GET", - "url": "http://127.0.0.1:37201/api/articles?limit=3&&offset=0", - "resourceType": "xhr", - "startedAt": 1420, - "status": 200, - "ok": true, - "contentType": "application/json", - "resourceTypeHint": "articles", - "finishedAt": 1427 - }, - { - "id": "net-2", - "method": "GET", - "url": "http://127.0.0.1:37201/api/tags", - "resourceType": "xhr", - "startedAt": 1421, - "status": 200, - "ok": true, - "finishedAt": 1427, - "contentType": "application/json", - "resourceTypeHint": "tags" - } - ], - "console": [], - "pageErrors": [], - "uiClaims": [], - "filledFields": [], - "dialogs": [], - "downloads": [], - "downloadEvidence": [], - "uploads": [], - "popupUrls": [], - "locatorResolution": { - "attempts": [ - { - "strategy": "role", - "weight": 92, - "matchCount": 2, - "visibleCount": 2, - "elapsedMs": 9 - }, - { - "strategy": "role", - "weight": 82, - "matchCount": 2, - "visibleCount": 2, - "elapsedMs": 8 - }, - { - "strategy": "href", - "weight": 72, - "matchCount": 0, - "visibleCount": 0, - "elapsedMs": 3 - }, - { - "strategy": "text", - "weight": 60, - "matchCount": 2, - "visibleCount": 2, - "elapsedMs": 6 - }, - { - "strategy": "css", - "weight": 35, - "matchCount": 1, - "visibleCount": 1, - "elapsedMs": 5 - } - ], - "chosenStrategy": "css", - "chosenWeight": 35, - "retryCount": 0 + ], + "chosenStrategy": "css", + "chosenWeight": 35, + "retryCount": 0 }, "before": { - "at": 1374, - "url": "http://127.0.0.1:37201/#/register", + "at": 1419, + "url": "http://127.0.0.1:37211/#/register", "title": "Conduit", "domHash": "1f4fa65964895f4c", "canaryPresent": false, @@ -6011,8 +5584,8 @@ } }, "beforeAction": { - "at": 1385, - "url": "http://127.0.0.1:37201/#/register", + "at": 1424, + "url": "http://127.0.0.1:37211/#/register", "title": "Conduit", "domHash": "1f4fa65964895f4c", "canaryPresent": false, @@ -6079,8 +5652,8 @@ "networkSettled": true, "targetBusyAfter": false, "after": { - "at": 2390, - "url": "http://127.0.0.1:37201/#/", + "at": 2412, + "url": "http://127.0.0.1:37211/#/", "title": "Conduit", "domHash": "3c44d4d1ff59317a", "canaryPresent": false, @@ -6117,7 +5690,7 @@ "indexedDb": [] } }, - "snapshotIndex": "snapshots/RD-020.index.json" + "snapshotIndex": "snapshots/RD-013.index.json" }, "verdict": "VERIFIED", "evidenceLevel": 2, @@ -6125,83 +5698,10 @@ "detectorMatches": [] }, { - "id": "RD-021", - "action": { - "id": "778745ecb6d0", - "pageUrl": "http://127.0.0.1:37201/#/register", - "label": "Source code", - "activation": "click", - "kind": "navigation", - "intent": "navigate", - "risk": "safe", - "fingerprint": { - "selector": "body > div > header > nav > div > ul:nth-of-type(1) > li > a", - "tag": "a", - "ordinal": 1, - "role": "link", - "accessibleName": "Source code", - "text": "Source code", - "href": "https://github.com/TonyMckes/conduit-realworld-example-app", - "candidates": [ - { - "strategy": "role", - "weight": 92, - "role": "link", - "name": "Source code", - "exact": true - }, - { - "strategy": "role", - "weight": 82, - "role": "link", - "name": "Source code", - "exact": false - }, - { - "strategy": "href", - "weight": 72, - "value": "https://github.com/TonyMckes/conduit-realworld-example-app" - }, - { - "strategy": "text", - "weight": 60, - "value": "Source code", - "exact": true - }, - { - "strategy": "css", - "weight": 35, - "selector": "body > div > header > nav > div > ul:nth-of-type(1) > li > a" - } - ] - }, - "fields": [] - }, - "verdict": "SKIPPED", - "evidenceLevel": 0, - "reason": "Cross-origin navigation blocked by the default safety policy. Use --allow-external explicitly.", - "skippedReason": "Cross-origin navigation blocked by the default safety policy. Use --allow-external explicitly.", - "detectorMatches": [], - "evidence": { - "startedAt": "", - "durationMs": 0, - "canary": "", - "network": [], - "console": [], - "pageErrors": [], - "uiClaims": [], - "filledFields": [], - "dialogs": [], - "downloads": [], - "popupUrls": [], - "snapshotIndex": "snapshots/RD-021.index.json" - } - }, - { - "id": "RD-022", + "id": "RD-014", "action": { - "id": "76054ef3b4e9", - "pageUrl": "http://127.0.0.1:37201/#/register", + "id": "1a0c7bf79395", + "pageUrl": "http://127.0.0.1:37211/#/register", "label": "Home", "activation": "click", "kind": "navigation", @@ -6214,7 +5714,7 @@ "role": "link", "accessibleName": "Home", "text": "Home", - "href": "http://127.0.0.1:37201/#/", + "href": "http://127.0.0.1:37211/#/", "candidates": [ { "strategy": "role", @@ -6233,7 +5733,7 @@ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37201/#/" + "value": "http://127.0.0.1:37211/#/" }, { "strategy": "text", @@ -6251,31 +5751,31 @@ "fields": [] }, "evidence": { - "startedAt": "2026-07-23T14:57:27.996Z", - "durationMs": 2390, - "canary": "RD_TEST_98E884", + "startedAt": "2026-07-26T08:42:19.834Z", + "durationMs": 2400, + "canary": "RD_TEST_F07FA4", "network": [ { "id": "net-1", "method": "GET", - "url": "http://127.0.0.1:37201/api/articles?limit=3&&offset=0", + "url": "http://127.0.0.1:37211/api/articles?limit=3&&offset=0", "resourceType": "xhr", - "startedAt": 1410, + "startedAt": 1438, "status": 200, "ok": true, "contentType": "application/json", "resourceTypeHint": "articles", - "finishedAt": 1417 + "finishedAt": 1445 }, { "id": "net-2", "method": "GET", - "url": "http://127.0.0.1:37201/api/tags", + "url": "http://127.0.0.1:37211/api/tags", "resourceType": "xhr", - "startedAt": 1411, + "startedAt": 1439, "status": 200, "ok": true, - "finishedAt": 1417, + "finishedAt": 1445, "contentType": "application/json", "resourceTypeHint": "tags" } @@ -6296,14 +5796,14 @@ "weight": 92, "matchCount": 0, "visibleCount": 0, - "elapsedMs": 4 + "elapsedMs": 2 }, { "strategy": "role", "weight": 82, "matchCount": 1, "visibleCount": 1, - "elapsedMs": 5 + "elapsedMs": 2 } ], "chosenStrategy": "role", @@ -6311,8 +5811,8 @@ "retryCount": 0 }, "before": { - "at": 1369, - "url": "http://127.0.0.1:37201/#/register", + "at": 1406, + "url": "http://127.0.0.1:37211/#/register", "title": "Conduit", "domHash": "1f4fa65964895f4c", "canaryPresent": false, @@ -6377,8 +5877,8 @@ } }, "beforeAction": { - "at": 1379, - "url": "http://127.0.0.1:37201/#/register", + "at": 1412, + "url": "http://127.0.0.1:37211/#/register", "title": "Conduit", "domHash": "1f4fa65964895f4c", "canaryPresent": false, @@ -6445,8 +5945,8 @@ "networkSettled": true, "targetBusyAfter": false, "after": { - "at": 2386, - "url": "http://127.0.0.1:37201/#/", + "at": 2397, + "url": "http://127.0.0.1:37211/#/", "title": "Conduit", "domHash": "3c44d4d1ff59317a", "canaryPresent": false, @@ -6483,7 +5983,7 @@ "indexedDb": [] } }, - "snapshotIndex": "snapshots/RD-022.index.json" + "snapshotIndex": "snapshots/RD-014.index.json" }, "verdict": "VERIFIED", "evidenceLevel": 2, @@ -6491,10 +5991,10 @@ "detectorMatches": [] }, { - "id": "RD-023", + "id": "RD-015", "action": { - "id": "875f6bd0a57f", - "pageUrl": "http://127.0.0.1:37201/#/register", + "id": "d5c6b9ea21ab", + "pageUrl": "http://127.0.0.1:37211/#/register", "label": "Login", "activation": "click", "kind": "navigation", @@ -6507,7 +6007,7 @@ "role": "link", "accessibleName": "Login", "text": "Login", - "href": "http://127.0.0.1:37201/#/login", + "href": "http://127.0.0.1:37211/#/login", "candidates": [ { "strategy": "role", @@ -6526,7 +6026,7 @@ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37201/#/login" + "value": "http://127.0.0.1:37211/#/login" }, { "strategy": "text", @@ -6544,9 +6044,9 @@ "fields": [] }, "evidence": { - "startedAt": "2026-07-23T14:57:30.421Z", - "durationMs": 2380, - "canary": "RD_TEST_F72E56", + "startedAt": "2026-07-26T08:42:22.236Z", + "durationMs": 2433, + "canary": "RD_TEST_44C0E3", "network": [], "console": [], "pageErrors": [], @@ -6564,14 +6064,14 @@ "weight": 92, "matchCount": 0, "visibleCount": 0, - "elapsedMs": 4 + "elapsedMs": 2 }, { "strategy": "role", "weight": 82, "matchCount": 1, "visibleCount": 1, - "elapsedMs": 5 + "elapsedMs": 3 } ], "chosenStrategy": "role", @@ -6579,8 +6079,8 @@ "retryCount": 0 }, "before": { - "at": 1350, - "url": "http://127.0.0.1:37201/#/register", + "at": 1433, + "url": "http://127.0.0.1:37211/#/register", "title": "Conduit", "domHash": "1f4fa65964895f4c", "canaryPresent": false, @@ -6645,8 +6145,8 @@ } }, "beforeAction": { - "at": 1361, - "url": "http://127.0.0.1:37201/#/register", + "at": 1439, + "url": "http://127.0.0.1:37211/#/register", "title": "Conduit", "domHash": "1f4fa65964895f4c", "canaryPresent": false, @@ -6713,8 +6213,8 @@ "networkSettled": true, "targetBusyAfter": false, "after": { - "at": 2376, - "url": "http://127.0.0.1:37201/#/login", + "at": 2430, + "url": "http://127.0.0.1:37211/#/login", "title": "Conduit", "domHash": "c659be8900b0e706", "canaryPresent": false, @@ -6769,7 +6269,7 @@ "indexedDb": [] } }, - "snapshotIndex": "snapshots/RD-023.index.json" + "snapshotIndex": "snapshots/RD-015.index.json" }, "verdict": "VERIFIED", "evidenceLevel": 1, @@ -6777,67 +6277,62 @@ "detectorMatches": [] }, { - "id": "RD-024", + "id": "RD-016", "action": { - "id": "c85e2a543a04", - "pageUrl": "http://127.0.0.1:37201/#/register", - "label": "Sign up", + "id": "a36c397a3a4f", + "pageUrl": "http://127.0.0.1:37211/#/register", + "label": "Sign in to your account", "activation": "click", "kind": "navigation", "intent": "navigate", "risk": "safe", "fingerprint": { - "selector": "body > div > header > nav > div > ul:nth-of-type(2) > li:nth-of-type(3) > a", + "selector": "body > div > main > div > div > div > div > p > a", "tag": "a", - "ordinal": 4, + "ordinal": 5, "role": "link", - "accessibleName": "Sign up", - "text": "Sign up", - "href": "http://127.0.0.1:37201/#/register", + "accessibleName": "Sign in to your account", + "text": "Sign in to your account", + "href": "http://127.0.0.1:37211/#/login", "candidates": [ { "strategy": "role", "weight": 92, "role": "link", - "name": "Sign up", + "name": "Sign in to your account", "exact": true }, { "strategy": "role", "weight": 82, "role": "link", - "name": "Sign up", + "name": "Sign in to your account", "exact": false }, { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37201/#/register" + "value": "http://127.0.0.1:37211/#/login" }, { "strategy": "text", "weight": 60, - "value": "Sign up", + "value": "Sign in to your account", "exact": true }, { "strategy": "css", "weight": 35, - "selector": "body > div > header > nav > div > ul:nth-of-type(2) > li:nth-of-type(3) > a" + "selector": "body > div > main > div > div > div > div > p > a" } ] }, "fields": [] }, - "verdict": "SKIPPED", - "evidenceLevel": 0, - "reason": "Navigation target is already the current page.", - "skippedReason": "Navigation target is already the current page.", - "detectorMatches": [], "evidence": { - "startedAt": "", - "durationMs": 0, - "canary": "", + "startedAt": "2026-07-26T08:42:24.671Z", + "durationMs": 2449, + "canary": "RD_TEST_2BDDE0", "network": [], "console": [], "pageErrors": [], @@ -6845,76 +6340,8 @@ "filledFields": [], "dialogs": [], "downloads": [], - "popupUrls": [], - "snapshotIndex": "snapshots/RD-024.index.json" - } - }, - { - "id": "RD-025", - "action": { - "id": "f7cd3f752613", - "pageUrl": "http://127.0.0.1:37201/#/register", - "label": "Sign in to your account", - "activation": "click", - "kind": "navigation", - "intent": "navigate", - "risk": "safe", - "fingerprint": { - "selector": "body > div > main > div > div > div > div > p > a", - "tag": "a", - "ordinal": 5, - "role": "link", - "accessibleName": "Sign in to your account", - "text": "Sign in to your account", - "href": "http://127.0.0.1:37201/#/login", - "candidates": [ - { - "strategy": "role", - "weight": 92, - "role": "link", - "name": "Sign in to your account", - "exact": true - }, - { - "strategy": "role", - "weight": 82, - "role": "link", - "name": "Sign in to your account", - "exact": false - }, - { - "strategy": "href", - "weight": 72, - "value": "http://127.0.0.1:37201/#/login" - }, - { - "strategy": "text", - "weight": 60, - "value": "Sign in to your account", - "exact": true - }, - { - "strategy": "css", - "weight": 35, - "selector": "body > div > main > div > div > div > div > p > a" - } - ] - }, - "fields": [] - }, - "evidence": { - "startedAt": "2026-07-23T14:57:32.841Z", - "durationMs": 2372, - "canary": "RD_TEST_8CDA27", - "network": [], - "console": [], - "pageErrors": [], - "uiClaims": [], - "filledFields": [], - "dialogs": [], - "downloads": [], - "downloadEvidence": [], - "uploads": [], + "downloadEvidence": [], + "uploads": [], "popupUrls": [], "locatorResolution": { "attempts": [ @@ -6923,7 +6350,7 @@ "weight": 92, "matchCount": 1, "visibleCount": 1, - "elapsedMs": 6 + "elapsedMs": 3 } ], "chosenStrategy": "role", @@ -6931,8 +6358,8 @@ "retryCount": 0 }, "before": { - "at": 1364, - "url": "http://127.0.0.1:37201/#/register", + "at": 1443, + "url": "http://127.0.0.1:37211/#/register", "title": "Conduit", "domHash": "1f4fa65964895f4c", "canaryPresent": false, @@ -6997,8 +6424,8 @@ } }, "beforeAction": { - "at": 1374, - "url": "http://127.0.0.1:37201/#/register", + "at": 1450, + "url": "http://127.0.0.1:37211/#/register", "title": "Conduit", "domHash": "1f4fa65964895f4c", "canaryPresent": false, @@ -7065,8 +6492,8 @@ "networkSettled": true, "targetBusyAfter": false, "after": { - "at": 2368, - "url": "http://127.0.0.1:37201/#/login", + "at": 2446, + "url": "http://127.0.0.1:37211/#/login", "title": "Conduit", "domHash": "c659be8900b0e706", "canaryPresent": false, @@ -7121,7 +6548,7 @@ "indexedDb": [] } }, - "snapshotIndex": "snapshots/RD-025.index.json" + "snapshotIndex": "snapshots/RD-016.index.json" }, "verdict": "VERIFIED", "evidenceLevel": 1, @@ -7129,10 +6556,10 @@ "detectorMatches": [] }, { - "id": "RD-026", + "id": "RD-017", "action": { - "id": "671961c80a3c", - "pageUrl": "http://127.0.0.1:37201/#/register", + "id": "3db25a95d913", + "pageUrl": "http://127.0.0.1:37211/#/register", "label": "Sign up", "activation": "submit", "kind": "mutation", @@ -7189,79 +6616,79 @@ ] }, "evidence": { - "startedAt": "2026-07-23T14:57:35.254Z", - "durationMs": 6720, - "canary": "RD_TEST_73F84D", + "startedAt": "2026-07-26T08:42:27.126Z", + "durationMs": 6850, + "canary": "RD_TEST_63F192", "network": [ { "id": "net-1", "method": "POST", - "url": "http://127.0.0.1:37201/api/users", + "url": "http://127.0.0.1:37211/api/users", "resourceType": "xhr", - "startedAt": 1490, + "startedAt": 1497, "status": 201, "ok": true, - "finishedAt": 1661, + "finishedAt": 1648, "contentType": "application/json", "resourceTypeHint": "users" }, { "id": "net-2", "method": "GET", - "url": "http://127.0.0.1:37201/api/user", + "url": "http://127.0.0.1:37211/api/user", "resourceType": "xhr", - "startedAt": 1665, + "startedAt": 1653, "status": 200, "ok": true, + "finishedAt": 1658, "contentType": "application/json", - "resourceTypeHint": "user", - "finishedAt": 1671 + "resourceTypeHint": "user" }, { "id": "net-3", "method": "GET", - "url": "http://127.0.0.1:37201/api/articles/feed?limit=3&&offset=0", + "url": "http://127.0.0.1:37211/api/articles/feed?limit=3&&offset=0", "resourceType": "xhr", - "startedAt": 1668, + "startedAt": 1655, "status": 200, "ok": true, - "finishedAt": 1679, + "finishedAt": 1664, "contentType": "application/json", "resourceTypeHint": "feed" }, { "id": "net-4", "method": "GET", - "url": "http://127.0.0.1:37201/api/tags", + "url": "http://127.0.0.1:37211/api/tags", "resourceType": "xhr", - "startedAt": 1669, + "startedAt": 1655, "status": 200, "ok": true, - "finishedAt": 1676, + "finishedAt": 1661, "contentType": "application/json", "resourceTypeHint": "tags" }, { "id": "net-5", "method": "GET", - "url": "http://127.0.0.1:37201/", + "url": "http://127.0.0.1:37211/", "resourceType": "document", - "startedAt": 2671, + "startedAt": 2643, "status": 200, "ok": true, "contentType": "text/html", "resourceTypeHint": "resource", - "finishedAt": 2679 + "finishedAt": 2652 }, { "id": "net-6", "method": "GET", "url": "http://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css", "resourceType": "stylesheet", - "startedAt": 2677, + "startedAt": 2650, "status": 307, "ok": false, - "finishedAt": 2681, + "finishedAt": 2653, "location": "https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css", "resourceTypeHint": "ionicons.min.css" }, @@ -7270,55 +6697,55 @@ "method": "GET", "url": "http://fonts.googleapis.com/css?family=Titillium+Web:700|Source+Serif+Pro:400,700|Merriweather+Sans:400,700|Source+Sans+Pro:400,300,600,700,300italic,400italic,600italic,700italic", "resourceType": "stylesheet", - "startedAt": 2677, + "startedAt": 2650, "status": 200, "ok": true, - "finishedAt": 2718, + "finishedAt": 2698, "contentType": "text/css", "resourceTypeHint": "css" }, { "id": "net-8", "method": "GET", - "url": "http://127.0.0.1:37201/assets/index-CLdavoKn.js", + "url": "http://127.0.0.1:37211/assets/index-CLdavoKn.js", "resourceType": "script", - "startedAt": 2678, + "startedAt": 2651, "status": 200, "ok": true, - "finishedAt": 2691, + "finishedAt": 2665, "contentType": "text/javascript", "resourceTypeHint": "index-CLdavoKn.js" }, { "id": "net-9", "method": "GET", - "url": "http://127.0.0.1:37201/assets/index-De1Lwdlm.css", + "url": "http://127.0.0.1:37211/assets/index-De1Lwdlm.css", "resourceType": "stylesheet", - "startedAt": 2678, + "startedAt": 2651, "status": 200, "ok": true, "contentType": "text/css", "resourceTypeHint": "index-De1Lwdlm.css", - "finishedAt": 2684 + "finishedAt": 2658 }, { "id": "net-10", "method": "GET", "url": "https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css", "resourceType": "stylesheet", - "startedAt": 2681, + "startedAt": 2653, "status": 200, "ok": true, "contentType": "text/css", "resourceTypeHint": "ionicons.min.css", - "finishedAt": 2796 + "finishedAt": 2797 }, { "id": "net-11", "method": "GET", "url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdu.woff2", "resourceType": "font", - "startedAt": 2807, + "startedAt": 2806, "status": 200, "ok": true, "finishedAt": 2857, @@ -7330,10 +6757,10 @@ "method": "GET", "url": "https://code.ionicframework.com/ionicons/2.0.1/fonts/ionicons.ttf?v=2.0.1", "resourceType": "font", - "startedAt": 2809, + "startedAt": 2807, "status": 200, "ok": true, - "finishedAt": 2932, + "finishedAt": 2975, "contentType": "font/ttf", "resourceTypeHint": "ionicons.ttf" }, @@ -7342,10 +6769,10 @@ "method": "GET", "url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7l.woff2", "resourceType": "font", - "startedAt": 2809, + "startedAt": 2807, "status": 200, "ok": true, - "finishedAt": 2856, + "finishedAt": 2854, "contentType": "font/woff2", "resourceTypeHint": "6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7l.woff2" }, @@ -7354,70 +6781,70 @@ "method": "GET", "url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7nsDI.woff2", "resourceType": "font", - "startedAt": 2809, + "startedAt": 2808, "status": 200, "ok": true, - "finishedAt": 2858, + "finishedAt": 2853, "contentType": "font/woff2", "resourceTypeHint": "6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7nsDI.woff2" }, { "id": "net-15", "method": "GET", - "url": "http://127.0.0.1:37201/api/articles/feed?limit=3&&offset=0", + "url": "http://127.0.0.1:37211/api/articles/feed?limit=3&&offset=0", "resourceType": "xhr", - "startedAt": 2811, + "startedAt": 2809, "status": 200, "ok": true, - "finishedAt": 2822, + "finishedAt": 2818, "contentType": "application/json", "resourceTypeHint": "feed" }, { "id": "net-16", "method": "GET", - "url": "http://127.0.0.1:37201/api/tags", + "url": "http://127.0.0.1:37211/api/tags", "resourceType": "xhr", - "startedAt": 2811, + "startedAt": 2809, "status": 200, "ok": true, - "finishedAt": 2819, "contentType": "application/json", - "resourceTypeHint": "tags" + "resourceTypeHint": "tags", + "finishedAt": 2816 }, { "id": "net-17", "method": "GET", - "url": "http://127.0.0.1:37201/api/user", + "url": "http://127.0.0.1:37211/api/user", "resourceType": "xhr", - "startedAt": 2811, + "startedAt": 2809, "status": 200, "ok": true, - "finishedAt": 2819, + "finishedAt": 2816, "contentType": "application/json", "resourceTypeHint": "user" }, { "id": "net-18", "method": "GET", - "url": "http://127.0.0.1:37201/", + "url": "http://127.0.0.1:37211/", "resourceType": "document", - "startedAt": 3684, + "startedAt": 3646, "status": 200, "ok": true, "contentType": "text/html", "resourceTypeHint": "resource", - "finishedAt": 3692 + "finishedAt": 3653 }, { "id": "net-19", "method": "GET", "url": "http://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css", "resourceType": "stylesheet", - "startedAt": 3691, + "startedAt": 3652, "status": 307, "ok": false, - "finishedAt": 3694, + "finishedAt": 3655, "location": "https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css", "resourceTypeHint": "ionicons.min.css" }, @@ -7426,58 +6853,58 @@ "method": "GET", "url": "http://fonts.googleapis.com/css?family=Titillium+Web:700|Source+Serif+Pro:400,700|Merriweather+Sans:400,700|Source+Sans+Pro:400,300,600,700,300italic,400italic,600italic,700italic", "resourceType": "stylesheet", - "startedAt": 3691, + "startedAt": 3652, "status": 200, "ok": true, - "finishedAt": 3734, + "finishedAt": 3697, "contentType": "text/css", "resourceTypeHint": "css" }, { "id": "net-21", "method": "GET", - "url": "http://127.0.0.1:37201/assets/index-CLdavoKn.js", + "url": "http://127.0.0.1:37211/assets/index-CLdavoKn.js", "resourceType": "script", - "startedAt": 3691, + "startedAt": 3653, "status": 200, "ok": true, - "finishedAt": 3706, + "finishedAt": 3667, "contentType": "text/javascript", "resourceTypeHint": "index-CLdavoKn.js" }, { "id": "net-22", "method": "GET", - "url": "http://127.0.0.1:37201/assets/index-De1Lwdlm.css", + "url": "http://127.0.0.1:37211/assets/index-De1Lwdlm.css", "resourceType": "stylesheet", - "startedAt": 3692, + "startedAt": 3653, "status": 200, "ok": true, - "finishedAt": 3696, "contentType": "text/css", - "resourceTypeHint": "index-De1Lwdlm.css" + "resourceTypeHint": "index-De1Lwdlm.css", + "finishedAt": 3658 }, { "id": "net-23", "method": "GET", "url": "https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css", "resourceType": "stylesheet", - "startedAt": 3694, + "startedAt": 3655, "status": 200, "ok": true, "contentType": "text/css", "resourceTypeHint": "ionicons.min.css", - "finishedAt": 3757 + "finishedAt": 3731 }, { "id": "net-24", "method": "GET", "url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdu.woff2", "resourceType": "font", - "startedAt": 3767, + "startedAt": 3739, "status": 200, "ok": true, - "finishedAt": 3821, + "finishedAt": 3789, "contentType": "font/woff2", "resourceTypeHint": "6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdu.woff2" }, @@ -7486,10 +6913,10 @@ "method": "GET", "url": "https://code.ionicframework.com/ionicons/2.0.1/fonts/ionicons.ttf?v=2.0.1", "resourceType": "font", - "startedAt": 3768, + "startedAt": 3739, "status": 200, "ok": true, - "finishedAt": 3855, + "finishedAt": 3847, "contentType": "font/ttf", "resourceTypeHint": "ionicons.ttf" }, @@ -7498,10 +6925,10 @@ "method": "GET", "url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7l.woff2", "resourceType": "font", - "startedAt": 3769, + "startedAt": 3740, "status": 200, "ok": true, - "finishedAt": 3822, + "finishedAt": 3785, "contentType": "font/woff2", "resourceTypeHint": "6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7l.woff2" }, @@ -7510,46 +6937,46 @@ "method": "GET", "url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7nsDI.woff2", "resourceType": "font", - "startedAt": 3769, + "startedAt": 3740, "status": 200, "ok": true, - "finishedAt": 3820, + "finishedAt": 3784, "contentType": "font/woff2", "resourceTypeHint": "6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7nsDI.woff2" }, { "id": "net-28", "method": "GET", - "url": "http://127.0.0.1:37201/api/articles/feed?limit=3&&offset=0", + "url": "http://127.0.0.1:37211/api/articles/feed?limit=3&&offset=0", "resourceType": "xhr", - "startedAt": 3771, + "startedAt": 3741, "status": 200, "ok": true, - "finishedAt": 3781, + "finishedAt": 3750, "contentType": "application/json", "resourceTypeHint": "feed" }, { "id": "net-29", "method": "GET", - "url": "http://127.0.0.1:37201/api/tags", + "url": "http://127.0.0.1:37211/api/tags", "resourceType": "xhr", - "startedAt": 3771, + "startedAt": 3741, "status": 200, "ok": true, + "finishedAt": 3747, "contentType": "application/json", - "resourceTypeHint": "tags", - "finishedAt": 3778 + "resourceTypeHint": "tags" }, { "id": "net-30", "method": "GET", - "url": "http://127.0.0.1:37201/api/user", + "url": "http://127.0.0.1:37211/api/user", "resourceType": "xhr", - "startedAt": 3771, + "startedAt": 3742, "status": 200, "ok": true, - "finishedAt": 3778, + "finishedAt": 3748, "contentType": "application/json", "resourceTypeHint": "user" } @@ -7562,14 +6989,14 @@ "selector": "body > div > main > div > div > div > div > form > fieldset:nth-of-type(1) > input", "name": "username", "type": "text", - "value": "RD_TEST_73F84D_1", + "value": "RD_TEST_63F192_1", "redacted": false }, { "selector": "body > div > main > div > div > div > div > form > fieldset:nth-of-type(2) > input", "name": "email", "type": "email", - "value": "rd-rd_test_73f84d_2@example.test", + "value": "rd-rd_test_63f192_2@example.test", "redacted": false }, { @@ -7592,14 +7019,14 @@ "weight": 60, "matchCount": 3, "visibleCount": 3, - "elapsedMs": 10 + "elapsedMs": 4 }, { "strategy": "css", "weight": 35, "matchCount": 1, "visibleCount": 1, - "elapsedMs": 5 + "elapsedMs": 2 } ], "chosenStrategy": "css", @@ -7607,8 +7034,8 @@ "retryCount": 0 }, "before": { - "at": 1377, - "url": "http://127.0.0.1:37201/#/register", + "at": 1423, + "url": "http://127.0.0.1:37211/#/register", "title": "Conduit", "domHash": "1f4fa65964895f4c", "canaryPresent": false, @@ -7700,6 +7127,34 @@ "rows": [], "truncated": false }, + { + "adapter": "sqlite", + "resource": "SequelizeMeta", + "schemaHash": "a91c673b8b859260", + "rows": [ + { + "keyHash": "6f46d430f6eff183", + "rowHash": "6f46d430f6eff183", + "softDeleted": false + }, + { + "keyHash": "d9acc0648538a2a9", + "rowHash": "d9acc0648538a2a9", + "softDeleted": false + }, + { + "keyHash": "555b9edca7ca2740", + "rowHash": "555b9edca7ca2740", + "softDeleted": false + }, + { + "keyHash": "46f47d6d0ec8cc33", + "rowHash": "46f47d6d0ec8cc33", + "softDeleted": false + } + ], + "truncated": false + }, { "adapter": "sqlite", "resource": "TagList", @@ -7720,18 +7175,28 @@ "schemaHash": "565bde25c1fa7c3f", "rows": [ { - "keyHash": "82a8445b12df5a29", - "rowHash": "98571fe85d57b748", + "keyHash": "186347d9ea7673a2", + "rowHash": "a673f7916d5fd0f3", "softDeleted": false }, { - "keyHash": "2766c815d1c00dbe", - "rowHash": "f60800a3b43fda9d", + "keyHash": "da7114755c3b82ba", + "rowHash": "b59dd0c0c8425175", + "softDeleted": false + }, + { + "keyHash": "84cf60166b2ca345", + "rowHash": "03cdb9683302919a", + "softDeleted": false + }, + { + "keyHash": "9ef59241e15425e0", + "rowHash": "63453967fdb89d52", "softDeleted": false }, { - "keyHash": "75453dbfb3621178", - "rowHash": "4ef7737f091c4810", + "keyHash": "82a8445b12df5a29", + "rowHash": "ee3a949188ccec1f", "softDeleted": false } ], @@ -7740,10 +7205,10 @@ ] }, "beforeAction": { - "at": 1436, - "url": "http://127.0.0.1:37201/#/register", + "at": 1452, + "url": "http://127.0.0.1:37211/#/register", "title": "Conduit", - "domHash": "21adbda8a55e3bcf", + "domHash": "7c6ebac4abec4e61", "canaryPresent": true, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -7763,7 +7228,7 @@ "tag": "input", "type": "text", "name": "username", - "valueHash": "29898c49e145195b", + "valueHash": "e29cdc9f96cc4014", "checked": false, "disabled": false, "visible": true @@ -7772,7 +7237,7 @@ "tag": "input", "type": "email", "name": "email", - "valueHash": "e991c5a54d2b3dec", + "valueHash": "5021c46c0ddc1676", "checked": false, "disabled": false, "visible": true @@ -7808,10 +7273,10 @@ "targetDisabledAfter": false, "networkSettled": true, "after": { - "at": 2640, - "url": "http://127.0.0.1:37201/#/", + "at": 2609, + "url": "http://127.0.0.1:37211/#/", "title": "Conduit", - "domHash": "626e808fda42b9e2", + "domHash": "136d5803496de529", "canaryPresent": true, "bodyCanaryPresent": true, "temporaryBlobUrls": 0, @@ -7823,9 +7288,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "7230a0fd6d0c519c", + "textHash": "98f6bed52127767e", "visualHash": "dfad2167a8f7c17f", - "text": "conduit Source code Home New Article RD_TEST_73F84D_1 Your Feed Global Feed Articles not available. Popular Tags Tags list not available conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", + "text": "conduit Source code Home New Article RD_TEST_63F192_1 Your Feed Global Feed Articles not available. Popular Tags Tags list not available conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "button", @@ -7849,7 +7314,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "fed7fbf91a9f4c89", + "valueHash": "26e814be78761ba9", "containsCanary": true } ], @@ -7887,6 +7352,34 @@ "rows": [], "truncated": false }, + { + "adapter": "sqlite", + "resource": "SequelizeMeta", + "schemaHash": "a91c673b8b859260", + "rows": [ + { + "keyHash": "6f46d430f6eff183", + "rowHash": "6f46d430f6eff183", + "softDeleted": false + }, + { + "keyHash": "d9acc0648538a2a9", + "rowHash": "d9acc0648538a2a9", + "softDeleted": false + }, + { + "keyHash": "555b9edca7ca2740", + "rowHash": "555b9edca7ca2740", + "softDeleted": false + }, + { + "keyHash": "46f47d6d0ec8cc33", + "rowHash": "46f47d6d0ec8cc33", + "softDeleted": false + } + ], + "truncated": false + }, { "adapter": "sqlite", "resource": "TagList", @@ -7907,23 +7400,33 @@ "schemaHash": "565bde25c1fa7c3f", "rows": [ { - "keyHash": "82a8445b12df5a29", - "rowHash": "98571fe85d57b748", + "keyHash": "186347d9ea7673a2", + "rowHash": "a673f7916d5fd0f3", "softDeleted": false }, { - "keyHash": "2766c815d1c00dbe", - "rowHash": "f60800a3b43fda9d", + "keyHash": "da7114755c3b82ba", + "rowHash": "b59dd0c0c8425175", + "softDeleted": false + }, + { + "keyHash": "84cf60166b2ca345", + "rowHash": "03cdb9683302919a", "softDeleted": false }, { - "keyHash": "75453dbfb3621178", - "rowHash": "4ef7737f091c4810", + "keyHash": "9ef59241e15425e0", + "rowHash": "63453967fdb89d52", + "softDeleted": false + }, + { + "keyHash": "82a8445b12df5a29", + "rowHash": "ee3a949188ccec1f", "softDeleted": false }, { - "keyHash": "667da1af4b45220f", - "rowHash": "9d5f93205d1923f0", + "keyHash": "2766c815d1c00dbe", + "rowHash": "9e4b5c5f9ea6f3e8", "softDeleted": false } ], @@ -7931,12 +7434,12 @@ } ] }, - "screenshot": "screenshots/671961c80a3c-after.png", + "screenshot": "screenshots/3db25a95d913-after.png", "afterRefresh": { - "at": 3641, - "url": "http://127.0.0.1:37201/#/", + "at": 3616, + "url": "http://127.0.0.1:37211/#/", "title": "Conduit", - "domHash": "626e808fda42b9e2", + "domHash": "136d5803496de529", "canaryPresent": true, "bodyCanaryPresent": true, "temporaryBlobUrls": 0, @@ -7948,9 +7451,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "7230a0fd6d0c519c", + "textHash": "98f6bed52127767e", "visualHash": "dfad2167a8f7c17f", - "text": "conduit Source code Home New Article RD_TEST_73F84D_1 Your Feed Global Feed Articles not available. Popular Tags Tags list not available conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", + "text": "conduit Source code Home New Article RD_TEST_63F192_1 Your Feed Global Feed Articles not available. Popular Tags Tags list not available conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "button", @@ -7974,7 +7477,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "fed7fbf91a9f4c89", + "valueHash": "26e814be78761ba9", "containsCanary": true } ], @@ -7984,12 +7487,12 @@ "indexedDb": [] } }, - "refreshScreenshot": "screenshots/671961c80a3c-refresh.png", + "refreshScreenshot": "screenshots/3db25a95d913-refresh.png", "afterHardRefresh": { - "at": 4587, - "url": "http://127.0.0.1:37201/#/", + "at": 4553, + "url": "http://127.0.0.1:37211/#/", "title": "Conduit", - "domHash": "626e808fda42b9e2", + "domHash": "136d5803496de529", "canaryPresent": true, "bodyCanaryPresent": true, "temporaryBlobUrls": 0, @@ -8001,9 +7504,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "7230a0fd6d0c519c", + "textHash": "98f6bed52127767e", "visualHash": "dfad2167a8f7c17f", - "text": "conduit Source code Home New Article RD_TEST_73F84D_1 Your Feed Global Feed Articles not available. Popular Tags Tags list not available conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", + "text": "conduit Source code Home New Article RD_TEST_63F192_1 Your Feed Global Feed Articles not available. Popular Tags Tags list not available conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "button", @@ -8027,7 +7530,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "fed7fbf91a9f4c89", + "valueHash": "26e814be78761ba9", "containsCanary": true } ], @@ -8038,10 +7541,10 @@ } }, "afterNewTab": { - "at": 5568, - "url": "http://127.0.0.1:37201/#/register", + "at": 5544, + "url": "http://127.0.0.1:37211/#/register", "title": "Conduit", - "domHash": "73e0c13eb79433d2", + "domHash": "507501d758ecbedc", "canaryPresent": true, "bodyCanaryPresent": true, "temporaryBlobUrls": 0, @@ -8053,9 +7556,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "0361b43f6820d7e7", + "textHash": "00e9987ca17dfa45", "visualHash": "4ab503dc0bf627e7", - "text": "conduit Source code Home New Article RD_TEST_73F84D_1 Sign up Sign in to your account Sign up conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", + "text": "conduit Source code Home New Article RD_TEST_63F192_1 Sign up Sign in to your account Sign up conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "input", @@ -8099,7 +7602,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "fed7fbf91a9f4c89", + "valueHash": "26e814be78761ba9", "containsCanary": true } ], @@ -8110,8 +7613,8 @@ } }, "afterNewContext": { - "at": 6717, - "url": "http://127.0.0.1:37201/#/", + "at": 6847, + "url": "http://127.0.0.1:37211/#/", "title": "Conduit", "domHash": "3c44d4d1ff59317a", "canaryPresent": false, @@ -8186,6 +7689,15 @@ "softDeleted": [], "truncated": false }, + { + "adapter": "sqlite", + "resource": "SequelizeMeta", + "added": [], + "removed": [], + "changed": [], + "softDeleted": [], + "truncated": false + }, { "adapter": "sqlite", "resource": "TagList", @@ -8208,7 +7720,7 @@ "adapter": "sqlite", "resource": "Users", "added": [ - "667da1af4b45220f" + "2766c815d1c00dbe" ], "removed": [], "changed": [], @@ -8217,7 +7729,7 @@ } ], "sourceSnapshotErrors": [], - "snapshotIndex": "snapshots/RD-026.index.json" + "snapshotIndex": "snapshots/RD-017.index.json" }, "verdict": "VERIFIED", "evidenceLevel": 6, @@ -8225,10 +7737,10 @@ "detectorMatches": [] }, { - "id": "RD-027", + "id": "RD-018", "action": { - "id": "e21a7d672564", - "pageUrl": "http://127.0.0.1:37201/#/register", + "id": "f79995dd7ed7", + "pageUrl": "http://127.0.0.1:37211/#/register", "label": "conduit", "activation": "click", "kind": "navigation", @@ -8241,7 +7753,7 @@ "role": "link", "accessibleName": "conduit", "text": "conduit", - "href": "http://127.0.0.1:37201/#/", + "href": "http://127.0.0.1:37211/#/", "candidates": [ { "strategy": "role", @@ -8260,7 +7772,7 @@ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37201/#/" + "value": "http://127.0.0.1:37211/#/" }, { "strategy": "text", @@ -8278,31 +7790,31 @@ "fields": [] }, "evidence": { - "startedAt": "2026-07-23T14:57:42.044Z", - "durationMs": 2410, - "canary": "RD_TEST_250BA8", + "startedAt": "2026-07-26T08:42:33.981Z", + "durationMs": 2411, + "canary": "RD_TEST_4C4DEB", "network": [ { "id": "net-1", "method": "GET", - "url": "http://127.0.0.1:37201/api/articles?limit=3&&offset=0", + "url": "http://127.0.0.1:37211/api/articles?limit=3&&offset=0", "resourceType": "xhr", - "startedAt": 1443, + "startedAt": 1457, "status": 200, "ok": true, "contentType": "application/json", "resourceTypeHint": "articles", - "finishedAt": 1450 + "finishedAt": 1462 }, { "id": "net-2", "method": "GET", - "url": "http://127.0.0.1:37201/api/tags", + "url": "http://127.0.0.1:37211/api/tags", "resourceType": "xhr", - "startedAt": 1443, + "startedAt": 1457, "status": 200, "ok": true, - "finishedAt": 1450, + "finishedAt": 1463, "contentType": "application/json", "resourceTypeHint": "tags" } @@ -8323,35 +7835,35 @@ "weight": 92, "matchCount": 2, "visibleCount": 2, - "elapsedMs": 8 + "elapsedMs": 5 }, { "strategy": "role", "weight": 82, "matchCount": 2, "visibleCount": 2, - "elapsedMs": 8 + "elapsedMs": 3 }, { "strategy": "href", "weight": 72, "matchCount": 0, "visibleCount": 0, - "elapsedMs": 2 + "elapsedMs": 1 }, { "strategy": "text", "weight": 60, "matchCount": 2, "visibleCount": 2, - "elapsedMs": 6 + "elapsedMs": 2 }, { "strategy": "css", "weight": 35, "matchCount": 1, "visibleCount": 1, - "elapsedMs": 5 + "elapsedMs": 2 } ], "chosenStrategy": "css", @@ -8359,8 +7871,8 @@ "retryCount": 0 }, "before": { - "at": 1398, - "url": "http://127.0.0.1:37201/#/register", + "at": 1424, + "url": "http://127.0.0.1:37211/#/register", "title": "Conduit", "domHash": "1f4fa65964895f4c", "canaryPresent": false, @@ -8425,8 +7937,8 @@ } }, "beforeAction": { - "at": 1407, - "url": "http://127.0.0.1:37201/#/register", + "at": 1430, + "url": "http://127.0.0.1:37211/#/register", "title": "Conduit", "domHash": "1f4fa65964895f4c", "canaryPresent": false, @@ -8493,8 +8005,8 @@ "networkSettled": true, "targetBusyAfter": false, "after": { - "at": 2406, - "url": "http://127.0.0.1:37201/#/", + "at": 2407, + "url": "http://127.0.0.1:37211/#/", "title": "Conduit", "domHash": "3c44d4d1ff59317a", "canaryPresent": false, @@ -8531,7 +8043,7 @@ "indexedDb": [] } }, - "snapshotIndex": "snapshots/RD-027.index.json" + "snapshotIndex": "snapshots/RD-018.index.json" }, "verdict": "VERIFIED", "evidenceLevel": 2, @@ -8539,10 +8051,83 @@ "detectorMatches": [] }, { - "id": "RD-028", + "id": "RD-019", + "action": { + "id": "df53bfe9225d", + "pageUrl": "http://127.0.0.1:37211/", + "label": "Source code", + "activation": "click", + "kind": "navigation", + "intent": "navigate", + "risk": "safe", + "fingerprint": { + "selector": "body > div > header > nav > div > ul:nth-of-type(1) > li > a", + "tag": "a", + "ordinal": 1, + "role": "link", + "accessibleName": "Source code", + "text": "Source code", + "href": "https://github.com/TonyMckes/conduit-realworld-example-app", + "candidates": [ + { + "strategy": "role", + "weight": 92, + "role": "link", + "name": "Source code", + "exact": true + }, + { + "strategy": "role", + "weight": 82, + "role": "link", + "name": "Source code", + "exact": false + }, + { + "strategy": "href", + "weight": 72, + "value": "https://github.com/TonyMckes/conduit-realworld-example-app" + }, + { + "strategy": "text", + "weight": 60, + "value": "Source code", + "exact": true + }, + { + "strategy": "css", + "weight": 35, + "selector": "body > div > header > nav > div > ul:nth-of-type(1) > li > a" + } + ] + }, + "fields": [] + }, + "verdict": "SKIPPED", + "evidenceLevel": 0, + "reason": "Cross-origin navigation blocked by the default safety policy. Use --allow-external explicitly.", + "skippedReason": "Cross-origin navigation blocked by the default safety policy. Use --allow-external explicitly.", + "detectorMatches": [], + "evidence": { + "startedAt": "", + "durationMs": 0, + "canary": "", + "network": [], + "console": [], + "pageErrors": [], + "uiClaims": [], + "filledFields": [], + "dialogs": [], + "downloads": [], + "popupUrls": [], + "snapshotIndex": "snapshots/RD-019.index.json" + } + }, + { + "id": "RD-020", "action": { - "id": "aa458a853344", - "pageUrl": "http://127.0.0.1:37201/#/register", + "id": "3040fe74a6b8", + "pageUrl": "http://127.0.0.1:37211/", "label": "Thinkster", "activation": "click", "kind": "navigation", @@ -8551,7 +8136,7 @@ "fingerprint": { "selector": "body > div > footer > div > span > a", "tag": "a", - "ordinal": 8, + "ordinal": 7, "role": "link", "accessibleName": "Thinkster", "text": "Thinkster", @@ -8608,14 +8193,14 @@ "dialogs": [], "downloads": [], "popupUrls": [], - "snapshotIndex": "snapshots/RD-028.index.json" + "snapshotIndex": "snapshots/RD-020.index.json" } }, { - "id": "RD-029", + "id": "RD-021", "action": { - "id": "f2a99aeacf6a", - "pageUrl": "http://127.0.0.1:37201/#/register", + "id": "9daabb643ebe", + "pageUrl": "http://127.0.0.1:37211/", "label": "Source code", "activation": "click", "kind": "navigation", @@ -8624,7 +8209,7 @@ "fingerprint": { "selector": "body > div > footer > div > ul > li > a", "tag": "a", - "ordinal": 9, + "ordinal": 8, "role": "link", "accessibleName": "Source code", "text": "Source code", @@ -8681,38 +8266,652 @@ "dialogs": [], "downloads": [], "popupUrls": [], - "snapshotIndex": "snapshots/RD-029.index.json" + "snapshotIndex": "snapshots/RD-021.index.json" } - } - ], - "environment": { - "status": "VALID", - "checkedAt": "2026-07-23T14:56:44.767Z", - "durationMs": 3633, - "targetUrl": "http://127.0.0.1:37201/", - "mainDocument": { - "status": 200, - "contentType": "text/html" - }, - "assets": { - "checked": 6, - "scripts": 3, - "stylesheets": 3, - "failed": 0 - }, - "render": { - "bodyTextLength": 254, - "visibleElements": 46, - "interactiveElements": 9, - "ready": true }, - "findings": [], - "acceptedRisk": false, - "routesChecked": 3, + { + "id": "RD-022", + "action": { + "id": "29f086773df0", + "pageUrl": "http://127.0.0.1:37211/#/login", + "label": "Source code", + "activation": "click", + "kind": "navigation", + "intent": "navigate", + "risk": "safe", + "fingerprint": { + "selector": "body > div > header > nav > div > ul:nth-of-type(1) > li > a", + "tag": "a", + "ordinal": 1, + "role": "link", + "accessibleName": "Source code", + "text": "Source code", + "href": "https://github.com/TonyMckes/conduit-realworld-example-app", + "candidates": [ + { + "strategy": "role", + "weight": 92, + "role": "link", + "name": "Source code", + "exact": true + }, + { + "strategy": "role", + "weight": 82, + "role": "link", + "name": "Source code", + "exact": false + }, + { + "strategy": "href", + "weight": 72, + "value": "https://github.com/TonyMckes/conduit-realworld-example-app" + }, + { + "strategy": "text", + "weight": 60, + "value": "Source code", + "exact": true + }, + { + "strategy": "css", + "weight": 35, + "selector": "body > div > header > nav > div > ul:nth-of-type(1) > li > a" + } + ] + }, + "fields": [] + }, + "verdict": "SKIPPED", + "evidenceLevel": 0, + "reason": "Cross-origin navigation blocked by the default safety policy. Use --allow-external explicitly.", + "skippedReason": "Cross-origin navigation blocked by the default safety policy. Use --allow-external explicitly.", + "detectorMatches": [], + "evidence": { + "startedAt": "", + "durationMs": 0, + "canary": "", + "network": [], + "console": [], + "pageErrors": [], + "uiClaims": [], + "filledFields": [], + "dialogs": [], + "downloads": [], + "popupUrls": [], + "snapshotIndex": "snapshots/RD-022.index.json" + } + }, + { + "id": "RD-023", + "action": { + "id": "325fa66846a5", + "pageUrl": "http://127.0.0.1:37211/#/login", + "label": "Login", + "activation": "click", + "kind": "navigation", + "intent": "navigate", + "risk": "safe", + "fingerprint": { + "selector": "body > div > header > nav > div > ul:nth-of-type(2) > li:nth-of-type(2) > a", + "tag": "a", + "ordinal": 3, + "role": "link", + "accessibleName": "Login", + "text": "Login", + "href": "http://127.0.0.1:37211/#/login", + "candidates": [ + { + "strategy": "role", + "weight": 92, + "role": "link", + "name": "Login", + "exact": true + }, + { + "strategy": "role", + "weight": 82, + "role": "link", + "name": "Login", + "exact": false + }, + { + "strategy": "href", + "weight": 72, + "value": "http://127.0.0.1:37211/#/login" + }, + { + "strategy": "text", + "weight": 60, + "value": "Login", + "exact": true + }, + { + "strategy": "css", + "weight": 35, + "selector": "body > div > header > nav > div > ul:nth-of-type(2) > li:nth-of-type(2) > a" + } + ] + }, + "fields": [] + }, + "verdict": "SKIPPED", + "evidenceLevel": 0, + "reason": "Navigation target is already the current page.", + "skippedReason": "Navigation target is already the current page.", + "detectorMatches": [], + "evidence": { + "startedAt": "", + "durationMs": 0, + "canary": "", + "network": [], + "console": [], + "pageErrors": [], + "uiClaims": [], + "filledFields": [], + "dialogs": [], + "downloads": [], + "popupUrls": [], + "snapshotIndex": "snapshots/RD-023.index.json" + } + }, + { + "id": "RD-024", + "action": { + "id": "95a464c9f422", + "pageUrl": "http://127.0.0.1:37211/#/login", + "label": "Thinkster", + "activation": "click", + "kind": "navigation", + "intent": "navigate", + "risk": "safe", + "fingerprint": { + "selector": "body > div > footer > div > span > a", + "tag": "a", + "ordinal": 8, + "role": "link", + "accessibleName": "Thinkster", + "text": "Thinkster", + "href": "https://thinkster.io/", + "candidates": [ + { + "strategy": "role", + "weight": 92, + "role": "link", + "name": "Thinkster", + "exact": true + }, + { + "strategy": "role", + "weight": 82, + "role": "link", + "name": "Thinkster", + "exact": false + }, + { + "strategy": "href", + "weight": 72, + "value": "https://thinkster.io/" + }, + { + "strategy": "text", + "weight": 60, + "value": "Thinkster", + "exact": true + }, + { + "strategy": "css", + "weight": 35, + "selector": "body > div > footer > div > span > a" + } + ] + }, + "fields": [] + }, + "verdict": "SKIPPED", + "evidenceLevel": 0, + "reason": "Cross-origin navigation blocked by the default safety policy. Use --allow-external explicitly.", + "skippedReason": "Cross-origin navigation blocked by the default safety policy. Use --allow-external explicitly.", + "detectorMatches": [], + "evidence": { + "startedAt": "", + "durationMs": 0, + "canary": "", + "network": [], + "console": [], + "pageErrors": [], + "uiClaims": [], + "filledFields": [], + "dialogs": [], + "downloads": [], + "popupUrls": [], + "snapshotIndex": "snapshots/RD-024.index.json" + } + }, + { + "id": "RD-025", + "action": { + "id": "292e1c897646", + "pageUrl": "http://127.0.0.1:37211/#/login", + "label": "Source code", + "activation": "click", + "kind": "navigation", + "intent": "navigate", + "risk": "safe", + "fingerprint": { + "selector": "body > div > footer > div > ul > li > a", + "tag": "a", + "ordinal": 9, + "role": "link", + "accessibleName": "Source code", + "text": "Source code", + "href": "https://github.com/TonyMckes/conduit-realworld-example-app", + "candidates": [ + { + "strategy": "role", + "weight": 92, + "role": "link", + "name": "Source code", + "exact": true + }, + { + "strategy": "role", + "weight": 82, + "role": "link", + "name": "Source code", + "exact": false + }, + { + "strategy": "href", + "weight": 72, + "value": "https://github.com/TonyMckes/conduit-realworld-example-app" + }, + { + "strategy": "text", + "weight": 60, + "value": "Source code", + "exact": true + }, + { + "strategy": "css", + "weight": 35, + "selector": "body > div > footer > div > ul > li > a" + } + ] + }, + "fields": [] + }, + "verdict": "SKIPPED", + "evidenceLevel": 0, + "reason": "Cross-origin navigation blocked by the default safety policy. Use --allow-external explicitly.", + "skippedReason": "Cross-origin navigation blocked by the default safety policy. Use --allow-external explicitly.", + "detectorMatches": [], + "evidence": { + "startedAt": "", + "durationMs": 0, + "canary": "", + "network": [], + "console": [], + "pageErrors": [], + "uiClaims": [], + "filledFields": [], + "dialogs": [], + "downloads": [], + "popupUrls": [], + "snapshotIndex": "snapshots/RD-025.index.json" + } + }, + { + "id": "RD-026", + "action": { + "id": "c22b2a4875fc", + "pageUrl": "http://127.0.0.1:37211/#/register", + "label": "Source code", + "activation": "click", + "kind": "navigation", + "intent": "navigate", + "risk": "safe", + "fingerprint": { + "selector": "body > div > header > nav > div > ul:nth-of-type(1) > li > a", + "tag": "a", + "ordinal": 1, + "role": "link", + "accessibleName": "Source code", + "text": "Source code", + "href": "https://github.com/TonyMckes/conduit-realworld-example-app", + "candidates": [ + { + "strategy": "role", + "weight": 92, + "role": "link", + "name": "Source code", + "exact": true + }, + { + "strategy": "role", + "weight": 82, + "role": "link", + "name": "Source code", + "exact": false + }, + { + "strategy": "href", + "weight": 72, + "value": "https://github.com/TonyMckes/conduit-realworld-example-app" + }, + { + "strategy": "text", + "weight": 60, + "value": "Source code", + "exact": true + }, + { + "strategy": "css", + "weight": 35, + "selector": "body > div > header > nav > div > ul:nth-of-type(1) > li > a" + } + ] + }, + "fields": [] + }, + "verdict": "SKIPPED", + "evidenceLevel": 0, + "reason": "Cross-origin navigation blocked by the default safety policy. Use --allow-external explicitly.", + "skippedReason": "Cross-origin navigation blocked by the default safety policy. Use --allow-external explicitly.", + "detectorMatches": [], + "evidence": { + "startedAt": "", + "durationMs": 0, + "canary": "", + "network": [], + "console": [], + "pageErrors": [], + "uiClaims": [], + "filledFields": [], + "dialogs": [], + "downloads": [], + "popupUrls": [], + "snapshotIndex": "snapshots/RD-026.index.json" + } + }, + { + "id": "RD-027", + "action": { + "id": "5a1f878365b7", + "pageUrl": "http://127.0.0.1:37211/#/register", + "label": "Sign up", + "activation": "click", + "kind": "navigation", + "intent": "navigate", + "risk": "safe", + "fingerprint": { + "selector": "body > div > header > nav > div > ul:nth-of-type(2) > li:nth-of-type(3) > a", + "tag": "a", + "ordinal": 4, + "role": "link", + "accessibleName": "Sign up", + "text": "Sign up", + "href": "http://127.0.0.1:37211/#/register", + "candidates": [ + { + "strategy": "role", + "weight": 92, + "role": "link", + "name": "Sign up", + "exact": true + }, + { + "strategy": "role", + "weight": 82, + "role": "link", + "name": "Sign up", + "exact": false + }, + { + "strategy": "href", + "weight": 72, + "value": "http://127.0.0.1:37211/#/register" + }, + { + "strategy": "text", + "weight": 60, + "value": "Sign up", + "exact": true + }, + { + "strategy": "css", + "weight": 35, + "selector": "body > div > header > nav > div > ul:nth-of-type(2) > li:nth-of-type(3) > a" + } + ] + }, + "fields": [] + }, + "verdict": "SKIPPED", + "evidenceLevel": 0, + "reason": "Navigation target is already the current page.", + "skippedReason": "Navigation target is already the current page.", + "detectorMatches": [], + "evidence": { + "startedAt": "", + "durationMs": 0, + "canary": "", + "network": [], + "console": [], + "pageErrors": [], + "uiClaims": [], + "filledFields": [], + "dialogs": [], + "downloads": [], + "popupUrls": [], + "snapshotIndex": "snapshots/RD-027.index.json" + } + }, + { + "id": "RD-028", + "action": { + "id": "a8bc53027b2f", + "pageUrl": "http://127.0.0.1:37211/#/register", + "label": "Thinkster", + "activation": "click", + "kind": "navigation", + "intent": "navigate", + "risk": "safe", + "fingerprint": { + "selector": "body > div > footer > div > span > a", + "tag": "a", + "ordinal": 8, + "role": "link", + "accessibleName": "Thinkster", + "text": "Thinkster", + "href": "https://thinkster.io/", + "candidates": [ + { + "strategy": "role", + "weight": 92, + "role": "link", + "name": "Thinkster", + "exact": true + }, + { + "strategy": "role", + "weight": 82, + "role": "link", + "name": "Thinkster", + "exact": false + }, + { + "strategy": "href", + "weight": 72, + "value": "https://thinkster.io/" + }, + { + "strategy": "text", + "weight": 60, + "value": "Thinkster", + "exact": true + }, + { + "strategy": "css", + "weight": 35, + "selector": "body > div > footer > div > span > a" + } + ] + }, + "fields": [] + }, + "verdict": "SKIPPED", + "evidenceLevel": 0, + "reason": "Cross-origin navigation blocked by the default safety policy. Use --allow-external explicitly.", + "skippedReason": "Cross-origin navigation blocked by the default safety policy. Use --allow-external explicitly.", + "detectorMatches": [], + "evidence": { + "startedAt": "", + "durationMs": 0, + "canary": "", + "network": [], + "console": [], + "pageErrors": [], + "uiClaims": [], + "filledFields": [], + "dialogs": [], + "downloads": [], + "popupUrls": [], + "snapshotIndex": "snapshots/RD-028.index.json" + } + }, + { + "id": "RD-029", + "action": { + "id": "ed7b7d49ac35", + "pageUrl": "http://127.0.0.1:37211/#/register", + "label": "Source code", + "activation": "click", + "kind": "navigation", + "intent": "navigate", + "risk": "safe", + "fingerprint": { + "selector": "body > div > footer > div > ul > li > a", + "tag": "a", + "ordinal": 9, + "role": "link", + "accessibleName": "Source code", + "text": "Source code", + "href": "https://github.com/TonyMckes/conduit-realworld-example-app", + "candidates": [ + { + "strategy": "role", + "weight": 92, + "role": "link", + "name": "Source code", + "exact": true + }, + { + "strategy": "role", + "weight": 82, + "role": "link", + "name": "Source code", + "exact": false + }, + { + "strategy": "href", + "weight": 72, + "value": "https://github.com/TonyMckes/conduit-realworld-example-app" + }, + { + "strategy": "text", + "weight": 60, + "value": "Source code", + "exact": true + }, + { + "strategy": "css", + "weight": 35, + "selector": "body > div > footer > div > ul > li > a" + } + ] + }, + "fields": [] + }, + "verdict": "SKIPPED", + "evidenceLevel": 0, + "reason": "Cross-origin navigation blocked by the default safety policy. Use --allow-external explicitly.", + "skippedReason": "Cross-origin navigation blocked by the default safety policy. Use --allow-external explicitly.", + "detectorMatches": [], + "evidence": { + "startedAt": "", + "durationMs": 0, + "canary": "", + "network": [], + "console": [], + "pageErrors": [], + "uiClaims": [], + "filledFields": [], + "dialogs": [], + "downloads": [], + "popupUrls": [], + "snapshotIndex": "snapshots/RD-029.index.json" + } + } + ], + "environment": { + "status": "VALID", + "checkedAt": "2026-07-26T08:41:36.546Z", + "durationMs": 3913, + "targetUrl": "http://127.0.0.1:37211/", + "mainDocument": { + "status": 200, + "contentType": "text/html" + }, + "assets": { + "checked": 6, + "scripts": 3, + "stylesheets": 3, + "failed": 0 + }, + "render": { + "bodyTextLength": 254, + "visibleElements": 46, + "interactiveElements": 9, + "ready": true + }, + "findings": [], + "acceptedRisk": false, + "routesChecked": 3, "invalidRoutes": 0 }, "completeness": { "truncated": false, - "reasons": [] + "reasons": [], + "selection": { + "strategy": "coverage-balanced-v1", + "eligibleActions": 29, + "selectedActions": 29, + "omittedActions": 0, + "eligiblePages": 3, + "selectedPages": 3, + "eligibleKinds": [ + "mutation", + "local", + "navigation" + ], + "selectedKinds": [ + "mutation", + "local", + "navigation" + ], + "eligibleIntents": [ + "submit", + "interact", + "navigate" + ], + "selectedIntents": [ + "submit", + "interact", + "navigate" + ], + "deniedEligibleActions": 11, + "deniedSelectedActions": 11 + } } } diff --git a/release/evidence/raw/todomvc.scan.json b/release/evidence/raw/todomvc.scan.json index 371e683..b888b81 100644 --- a/release/evidence/raw/todomvc.scan.json +++ b/release/evidence/raw/todomvc.scan.json @@ -1,9 +1,9 @@ { "schemaVersion": "1.0", - "scanId": "20260723T145310Z-e581", - "targetUrl": "http://127.0.0.1:37127/", - "startedAt": "2026-07-23T14:53:10.516Z", - "finishedAt": "2026-07-23T14:53:18.140Z", + "scanId": "20260726T081307Z-637b", + "targetUrl": "http://127.0.0.1:37281/examples/react/dist/", + "startedAt": "2026-07-26T08:13:07.707Z", + "finishedAt": "2026-07-26T08:13:24.832Z", "options": { "maxPages": 2, "maxActions": 20, @@ -15,759 +15,2403 @@ "allowExternal": false, "mutationAllowed": true, "deep": true, - "trace": false, - "traceOnFailure": true, + "trace": true, + "traceOnFailure": false, "video": false, "environmentTimeoutMs": 10000, "acceptEnvironmentRisk": false, "allowIframes": false }, "summary": { - "pagesDiscovered": 1, - "visibleActions": 2, - "actionsVerified": 1, - "actionsSkipped": 1, + "pagesDiscovered": 2, + "visibleActions": 15, + "actionsVerified": 3, + "actionsSkipped": 12, "verdicts": { - "VERIFIED": 0, + "VERIFIED": 1, "CONTRADICTORY": 0, "EPHEMERAL": 1, - "BROWSER_LOCAL": 0, + "BROWSER_LOCAL": 1, "BROKEN": 0, "NO_EFFECT": 0, "UNCERTAIN": 0, - "SKIPPED": 1 + "SKIPPED": 12 }, "environmentStatus": "VALID" }, "pages": [ { - "url": "http://127.0.0.1:37127/", + "url": "http://127.0.0.1:37281/examples/react/dist/", "title": "TodoMVC: React", "actions": [ { - "id": "92f9d29fabad", - "pageUrl": "http://127.0.0.1:37127/", - "label": "New Todo Input", - "activation": "enter", - "kind": "mutation", - "intent": "create", + "id": "a648a1fe4475", + "pageUrl": "http://127.0.0.1:37281/examples/react/dist/", + "label": "Source", + "activation": "click", + "kind": "navigation", + "intent": "navigate", "risk": "safe", "fingerprint": { - "selector": "[data-testid=\"text-input\"]", - "tag": "input", + "selector": "body > aside > header > span > a:nth-of-type(1)", + "tag": "a", "ordinal": 0, - "role": "textbox", - "accessibleName": "New Todo Input", - "testId": "text-input", - "type": "text", + "role": "link", + "accessibleName": "Source", + "text": "Source", + "href": "https://github.com/tastejs/todomvc/tree/gh-pages/examples/react", "candidates": [ { - "strategy": "testid", - "weight": 100, - "value": "text-input", + "strategy": "role", + "weight": 92, + "role": "link", + "name": "Source", + "exact": true + }, + { + "strategy": "role", + "weight": 82, + "role": "link", + "name": "Source", + "exact": false + }, + { + "strategy": "href", + "weight": 72, + "value": "https://github.com/tastejs/todomvc/tree/gh-pages/examples/react" + }, + { + "strategy": "text", + "weight": 60, + "value": "Source", "exact": true }, + { + "strategy": "css", + "weight": 35, + "selector": "body > aside > header > span > a:nth-of-type(1)" + } + ] + }, + "fields": [] + }, + { + "id": "371506dd6bc1", + "pageUrl": "http://127.0.0.1:37281/examples/react/dist/", + "label": "Demo", + "activation": "click", + "kind": "navigation", + "intent": "navigate", + "risk": "safe", + "fingerprint": { + "selector": "body > aside > header > span > a:nth-of-type(2)", + "tag": "a", + "ordinal": 1, + "role": "link", + "accessibleName": "Demo", + "text": "Demo", + "href": "http://127.0.0.1:37281/examples/typescript-react", + "candidates": [ { "strategy": "role", "weight": 92, - "role": "textbox", - "name": "New Todo Input", + "role": "link", + "name": "Demo", "exact": true }, { "strategy": "role", "weight": 82, - "role": "textbox", - "name": "New Todo Input", + "role": "link", + "name": "Demo", "exact": false }, + { + "strategy": "href", + "weight": 72, + "value": "http://127.0.0.1:37281/examples/typescript-react" + }, + { + "strategy": "text", + "weight": 60, + "value": "Demo", + "exact": true + }, { "strategy": "css", "weight": 35, - "selector": "[data-testid=\"text-input\"]" + "selector": "body > aside > header > span > a:nth-of-type(2)" } ] }, - "fields": [ - { - "selector": "[data-testid=\"text-input\"]", - "tag": "input", - "type": "text", - "required": false, - "disabled": false, - "label": "New Todo Input", - "placeholder": "What needs to be done?" - } - ] + "fields": [] }, { - "id": "d4cf8b35943a", - "pageUrl": "http://127.0.0.1:37127/", - "label": "TodoMVC", + "id": "0c21eea9d35a", + "pageUrl": "http://127.0.0.1:37281/examples/react/dist/", + "label": "Source", "activation": "click", "kind": "navigation", "intent": "navigate", "risk": "safe", "fingerprint": { - "selector": "body > footer > p:nth-of-type(3) > a", + "selector": "body > aside > header > span > a:nth-of-type(3)", "tag": "a", - "ordinal": 1, + "ordinal": 2, "role": "link", - "accessibleName": "TodoMVC", - "text": "TodoMVC", - "href": "http://todomvc.com/", + "accessibleName": "Source", + "text": "Source", + "href": "https://github.com/tastejs/todomvc/tree/gh-pages/examples/typescript-react", "candidates": [ { "strategy": "role", "weight": 92, "role": "link", - "name": "TodoMVC", + "name": "Source", "exact": true }, { "strategy": "role", "weight": 82, "role": "link", - "name": "TodoMVC", + "name": "Source", "exact": false }, { "strategy": "href", "weight": 72, - "value": "http://todomvc.com/" + "value": "https://github.com/tastejs/todomvc/tree/gh-pages/examples/typescript-react" }, { "strategy": "text", "weight": 60, - "value": "TodoMVC", + "value": "Source", "exact": true }, { "strategy": "css", "weight": 35, - "selector": "body > footer > p:nth-of-type(3) > a" + "selector": "body > aside > header > span > a:nth-of-type(3)" } ] }, "fields": [] - } - ] - } - ], - "findings": [ - { - "id": "RD-001", - "action": { - "id": "92f9d29fabad", - "pageUrl": "http://127.0.0.1:37127/", - "label": "New Todo Input", - "activation": "enter", - "kind": "mutation", - "intent": "create", - "risk": "safe", - "fingerprint": { - "selector": "[data-testid=\"text-input\"]", - "tag": "input", - "ordinal": 0, - "role": "textbox", - "accessibleName": "New Todo Input", - "testId": "text-input", - "type": "text", - "candidates": [ - { - "strategy": "testid", - "weight": 100, - "value": "text-input", - "exact": true - }, - { - "strategy": "role", - "weight": 92, - "role": "textbox", - "name": "New Todo Input", - "exact": true - }, - { - "strategy": "role", - "weight": 82, - "role": "textbox", - "name": "New Todo Input", - "exact": false - }, - { - "strategy": "css", - "weight": 35, - "selector": "[data-testid=\"text-input\"]" - } - ] }, - "fields": [ - { - "selector": "[data-testid=\"text-input\"]", - "tag": "input", - "type": "text", - "required": false, - "disabled": false, - "label": "New Todo Input", - "placeholder": "What needs to be done?" - } - ] - }, - "evidence": { - "startedAt": "2026-07-23T14:53:12.871Z", - "durationMs": 5219, - "canary": "RD_TEST_F0587F", - "network": [ - { - "id": "net-1", - "method": "GET", - "url": "http://127.0.0.1:37127/", - "resourceType": "document", - "startedAt": 2015, - "status": 200, - "ok": true, - "contentType": "text/html", - "resourceTypeHint": "resource", - "finishedAt": 2023 - }, - { - "id": "net-2", - "method": "GET", - "url": "http://127.0.0.1:37127/app.bundle.js", - "resourceType": "script", - "startedAt": 2021, - "status": 200, - "ok": true, - "finishedAt": 2031, - "contentType": "text/javascript", - "resourceTypeHint": "app.bundle.js" + { + "id": "138fd677a27c", + "pageUrl": "http://127.0.0.1:37281/examples/react/dist/", + "label": "React", + "activation": "click", + "kind": "navigation", + "intent": "navigate", + "risk": "safe", + "fingerprint": { + "selector": "body > aside > blockquote > footer > a", + "tag": "a", + "ordinal": 3, + "role": "link", + "accessibleName": "React", + "text": "React", + "href": "http://facebook.github.io/react", + "candidates": [ + { + "strategy": "role", + "weight": 92, + "role": "link", + "name": "React", + "exact": true + }, + { + "strategy": "role", + "weight": 82, + "role": "link", + "name": "React", + "exact": false + }, + { + "strategy": "href", + "weight": 72, + "value": "http://facebook.github.io/react" + }, + { + "strategy": "text", + "weight": 60, + "value": "React", + "exact": true + }, + { + "strategy": "css", + "weight": 35, + "selector": "body > aside > blockquote > footer > a" + } + ] }, - { - "id": "net-3", - "method": "GET", - "url": "http://127.0.0.1:37127/app.css", - "resourceType": "stylesheet", - "startedAt": 2022, - "status": 200, - "ok": true, - "contentType": "text/css", - "resourceTypeHint": "app.css", - "finishedAt": 2026 + "fields": [] + }, + { + "id": "2b3591622da9", + "pageUrl": "http://127.0.0.1:37281/examples/react/dist/", + "label": "Quick Start", + "activation": "click", + "kind": "navigation", + "intent": "navigate", + "risk": "safe", + "fingerprint": { + "selector": "body > aside > ul:nth-of-type(1) > li:nth-of-type(1) > a", + "tag": "a", + "ordinal": 4, + "role": "link", + "accessibleName": "Quick Start", + "text": "Quick Start", + "href": "https://react.dev/learn", + "candidates": [ + { + "strategy": "role", + "weight": 92, + "role": "link", + "name": "Quick Start", + "exact": true + }, + { + "strategy": "role", + "weight": 82, + "role": "link", + "name": "Quick Start", + "exact": false + }, + { + "strategy": "href", + "weight": 72, + "value": "https://react.dev/learn" + }, + { + "strategy": "text", + "weight": 60, + "value": "Quick Start", + "exact": true + }, + { + "strategy": "css", + "weight": 35, + "selector": "body > aside > ul:nth-of-type(1) > li:nth-of-type(1) > a" + } + ] }, - { - "id": "net-4", - "method": "GET", - "url": "http://127.0.0.1:37127/base.js", - "resourceType": "script", - "startedAt": 2022, - "status": 200, - "ok": true, - "finishedAt": 2028, - "contentType": "text/javascript", - "resourceTypeHint": "base.js" - }, - { - "id": "net-5", - "method": "GET", - "url": "http://127.0.0.1:37127/learn.json", - "resourceType": "xhr", - "startedAt": 2028, - "status": 200, - "ok": true, - "finishedAt": 2034, - "contentType": "text/html", - "resourceTypeHint": "learn.json" - }, - { - "id": "net-6", - "method": "GET", - "url": "http://127.0.0.1:37127/", - "resourceType": "document", - "startedAt": 2794, - "status": 200, - "ok": true, - "contentType": "text/html", - "resourceTypeHint": "resource", - "finishedAt": 2802 - }, - { - "id": "net-7", - "method": "GET", - "url": "http://127.0.0.1:37127/app.bundle.js", - "resourceType": "script", - "startedAt": 2801, - "status": 200, - "ok": true, - "finishedAt": 2812, - "contentType": "text/javascript", - "resourceTypeHint": "app.bundle.js" - }, - { - "id": "net-8", - "method": "GET", - "url": "http://127.0.0.1:37127/app.css", - "resourceType": "stylesheet", - "startedAt": 2801, - "status": 200, - "ok": true, - "finishedAt": 2807, - "contentType": "text/css", - "resourceTypeHint": "app.css" - }, - { - "id": "net-9", - "method": "GET", - "url": "http://127.0.0.1:37127/base.js", - "resourceType": "script", - "startedAt": 2801, - "status": 200, - "ok": true, - "finishedAt": 2807, - "contentType": "text/javascript", - "resourceTypeHint": "base.js" - }, - { - "id": "net-10", - "method": "GET", - "url": "http://127.0.0.1:37127/learn.json", - "resourceType": "xhr", - "startedAt": 2808, - "status": 200, - "ok": true, - "finishedAt": 2811, - "contentType": "text/html", - "resourceTypeHint": "learn.json" - } - ], - "console": [], - "pageErrors": [], - "uiClaims": [], - "filledFields": [ - { - "selector": "[data-testid=\"text-input\"]", - "name": "New Todo Input", - "type": "text", - "value": "RD_TEST_F0587F_1", - "redacted": false - } - ], - "dialogs": [], - "downloads": [], - "downloadEvidence": [], - "uploads": [], - "popupUrls": [], - "locatorResolution": { - "attempts": [ - { - "strategy": "testid", - "weight": 100, - "matchCount": 1, - "visibleCount": 1, - "elapsedMs": 7 - } - ], - "chosenStrategy": "testid", - "chosenWeight": 100, - "retryCount": 0 + "fields": [] }, - "before": { - "at": 1027, - "url": "http://127.0.0.1:37127/", - "title": "TodoMVC: React", - "domHash": "ae0b39f9384e021f", - "canaryPresent": false, - "bodyCanaryPresent": false, - "temporaryBlobUrls": 0, - "auth": { - "artifacts": 0, - "expiredArtifacts": 0, - "privateContent": false, - "adminContent": false, - "accessDenied": false - }, - "semanticDom": { - "textHash": "4bd82bc5bab9db84", - "visualHash": "1e7593f064775c91", - "text": "todos Double-click to edit a todo Created by the TodoMVC Team Part of TodoMVC", - "controls": [ + { + "id": "fb1a8a81551a", + "pageUrl": "http://127.0.0.1:37281/examples/react/dist/", + "label": "API Reference", + "activation": "click", + "kind": "navigation", + "intent": "navigate", + "risk": "safe", + "fingerprint": { + "selector": "body > aside > ul:nth-of-type(1) > li:nth-of-type(2) > a", + "tag": "a", + "ordinal": 5, + "role": "link", + "accessibleName": "API Reference", + "text": "API Reference", + "href": "https://react.dev/reference/react", + "candidates": [ { - "tag": "input", - "type": "text", - "valueHash": "e3b0c44298fc1c14", - "checked": false, - "disabled": false, - "visible": true + "strategy": "role", + "weight": 92, + "role": "link", + "name": "API Reference", + "exact": true }, { - "tag": "input", - "type": "checkbox", - "valueHash": "b8d31e852725afb1", - "checked": false, - "disabled": false, - "visible": false + "strategy": "role", + "weight": 82, + "role": "link", + "name": "API Reference", + "exact": false }, { - "tag": "button", - "type": "submit", - "valueHash": "e3b0c44298fc1c14", - "disabled": false, - "visible": false - } - ] - }, - "busyControls": 0, - "disabledControls": 0, - "storage": { - "local": [], - "session": [], - "cookieNames": [], - "cookies": [], - "indexedDb": [] - } - }, - "beforeAction": { - "at": 1055, - "url": "http://127.0.0.1:37127/", - "title": "TodoMVC: React", - "domHash": "c91223991b5818e2", - "canaryPresent": true, - "bodyCanaryPresent": false, - "temporaryBlobUrls": 0, - "auth": { - "artifacts": 0, - "expiredArtifacts": 0, - "privateContent": false, - "adminContent": false, - "accessDenied": false - }, - "semanticDom": { - "textHash": "4bd82bc5bab9db84", - "visualHash": "1e7593f064775c91", - "text": "todos Double-click to edit a todo Created by the TodoMVC Team Part of TodoMVC", - "controls": [ - { - "tag": "input", - "type": "text", - "valueHash": "cadd3904b2560dab", - "checked": false, - "disabled": false, - "visible": true + "strategy": "href", + "weight": 72, + "value": "https://react.dev/reference/react" }, { - "tag": "input", - "type": "checkbox", - "valueHash": "b8d31e852725afb1", - "checked": false, - "disabled": false, - "visible": false + "strategy": "text", + "weight": 60, + "value": "API Reference", + "exact": true }, { - "tag": "button", - "type": "submit", - "valueHash": "e3b0c44298fc1c14", - "disabled": false, - "visible": false + "strategy": "css", + "weight": 35, + "selector": "body > aside > ul:nth-of-type(1) > li:nth-of-type(2) > a" } ] }, - "busyControls": 0, - "disabledControls": 0, - "storage": { - "local": [], - "session": [], - "cookieNames": [], - "cookies": [], - "indexedDb": [] - } + "fields": [] }, - "targetDisabledAfter": false, - "networkSettled": true, - "targetBusyAfter": false, - "after": { - "at": 1967, - "url": "http://127.0.0.1:37127/", - "title": "TodoMVC: React", - "domHash": "6d0a83e1d3433021", - "canaryPresent": true, - "bodyCanaryPresent": true, - "temporaryBlobUrls": 0, - "auth": { - "artifacts": 0, - "expiredArtifacts": 0, - "privateContent": false, - "adminContent": false, - "accessDenied": false - }, - "semanticDom": { - "textHash": "c457a05531621c00", - "visualHash": "aae86d0598993262", - "text": "todos Toggle All Input RD_TEST_F0587F_1 1 item left! AllActiveCompleted Double-click to edit a todo Created by the TodoMVC Team Part of TodoMVC", - "controls": [ + { + "id": "537ea2ada93c", + "pageUrl": "http://127.0.0.1:37281/examples/react/dist/", + "label": "Philosophy", + "activation": "click", + "kind": "navigation", + "intent": "navigate", + "risk": "safe", + "fingerprint": { + "selector": "body > aside > ul:nth-of-type(1) > li:nth-of-type(3) > a", + "tag": "a", + "ordinal": 6, + "role": "link", + "accessibleName": "Philosophy", + "text": "Philosophy", + "href": "https://petehuntsposts.quora.com/React-Under-the-Hood", + "candidates": [ { - "tag": "input", - "type": "text", - "valueHash": "e3b0c44298fc1c14", - "checked": false, - "disabled": false, - "visible": true + "strategy": "role", + "weight": 92, + "role": "link", + "name": "Philosophy", + "exact": true }, { - "tag": "input", - "type": "checkbox", - "valueHash": "b8d31e852725afb1", - "checked": false, - "disabled": false, - "visible": false + "strategy": "role", + "weight": 82, + "role": "link", + "name": "Philosophy", + "exact": false }, { - "tag": "input", - "type": "checkbox", - "valueHash": "b8d31e852725afb1", - "checked": false, - "disabled": false, - "visible": false + "strategy": "href", + "weight": 72, + "value": "https://petehuntsposts.quora.com/React-Under-the-Hood" }, { - "tag": "button", - "type": "submit", - "valueHash": "e3b0c44298fc1c14", - "disabled": false, - "visible": false + "strategy": "text", + "weight": 60, + "value": "Philosophy", + "exact": true }, { - "tag": "button", - "type": "submit", - "valueHash": "e3b0c44298fc1c14", - "disabled": false, - "visible": false + "strategy": "css", + "weight": 35, + "selector": "body > aside > ul:nth-of-type(1) > li:nth-of-type(3) > a" } ] }, - "busyControls": 0, - "disabledControls": 0, - "storage": { - "local": [], - "session": [], - "cookieNames": [], - "cookies": [], - "indexedDb": [] - } + "fields": [] }, - "screenshot": "screenshots/92f9d29fabad-after.png", - "afterRefresh": { - "at": 2757, - "url": "http://127.0.0.1:37127/", - "title": "TodoMVC: React", - "domHash": "ae0b39f9384e021f", - "canaryPresent": false, - "bodyCanaryPresent": false, - "temporaryBlobUrls": 0, - "auth": { - "artifacts": 0, - "expiredArtifacts": 0, - "privateContent": false, - "adminContent": false, - "accessDenied": false - }, - "semanticDom": { - "textHash": "4bd82bc5bab9db84", - "visualHash": "1e7593f064775c91", - "text": "todos Double-click to edit a todo Created by the TodoMVC Team Part of TodoMVC", - "controls": [ + { + "id": "195cf1362372", + "pageUrl": "http://127.0.0.1:37281/examples/react/dist/", + "label": "React Community", + "activation": "click", + "kind": "navigation", + "intent": "navigate", + "risk": "safe", + "fingerprint": { + "selector": "body > aside > ul:nth-of-type(1) > li:nth-of-type(4) > a", + "tag": "a", + "ordinal": 7, + "role": "link", + "accessibleName": "React Community", + "text": "React Community", + "href": "https://react.dev/community", + "candidates": [ { - "tag": "input", - "type": "text", - "valueHash": "e3b0c44298fc1c14", - "checked": false, - "disabled": false, - "visible": true + "strategy": "role", + "weight": 92, + "role": "link", + "name": "React Community", + "exact": true }, { - "tag": "input", - "type": "checkbox", - "valueHash": "b8d31e852725afb1", - "checked": false, - "disabled": false, - "visible": false + "strategy": "role", + "weight": 82, + "role": "link", + "name": "React Community", + "exact": false }, { - "tag": "button", - "type": "submit", - "valueHash": "e3b0c44298fc1c14", - "disabled": false, - "visible": false - } - ] - }, - "busyControls": 0, - "disabledControls": 0, - "storage": { - "local": [], - "session": [], - "cookieNames": [], - "cookies": [], - "indexedDb": [] - } - }, - "refreshScreenshot": "screenshots/92f9d29fabad-refresh.png", - "afterHardRefresh": { - "at": 3537, - "url": "http://127.0.0.1:37127/", - "title": "TodoMVC: React", - "domHash": "ae0b39f9384e021f", - "canaryPresent": false, - "bodyCanaryPresent": false, - "temporaryBlobUrls": 0, - "auth": { - "artifacts": 0, - "expiredArtifacts": 0, - "privateContent": false, - "adminContent": false, - "accessDenied": false - }, - "semanticDom": { - "textHash": "4bd82bc5bab9db84", - "visualHash": "1e7593f064775c91", - "text": "todos Double-click to edit a todo Created by the TodoMVC Team Part of TodoMVC", - "controls": [ - { - "tag": "input", - "type": "text", - "valueHash": "e3b0c44298fc1c14", - "checked": false, - "disabled": false, - "visible": true + "strategy": "href", + "weight": 72, + "value": "https://react.dev/community" }, { - "tag": "input", - "type": "checkbox", - "valueHash": "b8d31e852725afb1", - "checked": false, - "disabled": false, - "visible": false + "strategy": "text", + "weight": 60, + "value": "React Community", + "exact": true }, { - "tag": "button", - "type": "submit", - "valueHash": "e3b0c44298fc1c14", - "disabled": false, - "visible": false + "strategy": "css", + "weight": 35, + "selector": "body > aside > ul:nth-of-type(1) > li:nth-of-type(4) > a" } ] }, - "busyControls": 0, - "disabledControls": 0, - "storage": { - "local": [], - "session": [], - "cookieNames": [], - "cookies": [], - "indexedDb": [] - } + "fields": [] }, - "afterNewTab": { - "at": 4384, - "url": "http://127.0.0.1:37127/", - "title": "TodoMVC: React", - "domHash": "ae0b39f9384e021f", - "canaryPresent": false, - "bodyCanaryPresent": false, - "temporaryBlobUrls": 0, - "auth": { - "artifacts": 0, - "expiredArtifacts": 0, - "privateContent": false, - "adminContent": false, - "accessDenied": false - }, - "semanticDom": { - "textHash": "4bd82bc5bab9db84", - "visualHash": "1e7593f064775c91", - "text": "todos Double-click to edit a todo Created by the TodoMVC Team Part of TodoMVC", - "controls": [ + { + "id": "e590eb6c9f2e", + "pageUrl": "http://127.0.0.1:37281/examples/react/dist/", + "label": "ReactJS on Stack Overflow", + "activation": "click", + "kind": "navigation", + "intent": "navigate", + "risk": "safe", + "fingerprint": { + "selector": "body > aside > ul:nth-of-type(2) > li > a", + "tag": "a", + "ordinal": 8, + "role": "link", + "accessibleName": "ReactJS on Stack Overflow", + "text": "ReactJS on Stack Overflow", + "href": "https://stackoverflow.com/questions/tagged/reactjs", + "candidates": [ { - "tag": "input", - "type": "text", - "valueHash": "e3b0c44298fc1c14", - "checked": false, - "disabled": false, - "visible": true + "strategy": "role", + "weight": 92, + "role": "link", + "name": "ReactJS on Stack Overflow", + "exact": true }, { - "tag": "input", - "type": "checkbox", - "valueHash": "b8d31e852725afb1", - "checked": false, - "disabled": false, - "visible": false + "strategy": "role", + "weight": 82, + "role": "link", + "name": "ReactJS on Stack Overflow", + "exact": false }, { - "tag": "button", - "type": "submit", - "valueHash": "e3b0c44298fc1c14", - "disabled": false, - "visible": false + "strategy": "href", + "weight": 72, + "value": "https://stackoverflow.com/questions/tagged/reactjs" + }, + { + "strategy": "text", + "weight": 60, + "value": "ReactJS on Stack Overflow", + "exact": true + }, + { + "strategy": "css", + "weight": 35, + "selector": "body > aside > ul:nth-of-type(2) > li > a" } ] }, - "busyControls": 0, - "disabledControls": 0, - "storage": { - "local": [], - "session": [], - "cookieNames": [], - "cookies": [], - "indexedDb": [] - } + "fields": [] }, - "afterNewContext": { - "at": 5215, - "url": "http://127.0.0.1:37127/", - "title": "TodoMVC: React", - "domHash": "ae0b39f9384e021f", - "canaryPresent": false, - "bodyCanaryPresent": false, - "temporaryBlobUrls": 0, - "auth": { - "artifacts": 0, - "expiredArtifacts": 0, - "privateContent": false, - "adminContent": false, - "accessDenied": false - }, - "semanticDom": { - "textHash": "4bd82bc5bab9db84", - "visualHash": "1e7593f064775c91", - "text": "todos Double-click to edit a todo Created by the TodoMVC Team Part of TodoMVC", - "controls": [ + { + "id": "9d8b9b6cd1ac", + "pageUrl": "http://127.0.0.1:37281/examples/react/dist/", + "label": "let us know", + "activation": "click", + "kind": "navigation", + "intent": "navigate", + "risk": "safe", + "fingerprint": { + "selector": "body > aside > footer > em > a", + "tag": "a", + "ordinal": 9, + "role": "link", + "accessibleName": "let us know", + "text": "let us know", + "href": "https://github.com/tastejs/todomvc/issues", + "candidates": [ { - "tag": "input", - "type": "text", - "valueHash": "e3b0c44298fc1c14", - "checked": false, - "disabled": false, - "visible": true + "strategy": "role", + "weight": 92, + "role": "link", + "name": "let us know", + "exact": true }, { - "tag": "input", - "type": "checkbox", - "valueHash": "b8d31e852725afb1", - "checked": false, - "disabled": false, - "visible": false + "strategy": "role", + "weight": 82, + "role": "link", + "name": "let us know", + "exact": false }, { - "tag": "button", - "type": "submit", - "valueHash": "e3b0c44298fc1c14", - "disabled": false, - "visible": false + "strategy": "href", + "weight": 72, + "value": "https://github.com/tastejs/todomvc/issues" + }, + { + "strategy": "text", + "weight": 60, + "value": "let us know", + "exact": true + }, + { + "strategy": "css", + "weight": 35, + "selector": "body > aside > footer > em > a" } ] }, - "busyControls": 0, - "disabledControls": 0, - "storage": { + "fields": [] + }, + { + "id": "bc3124709ecf", + "pageUrl": "http://127.0.0.1:37281/examples/react/dist/", + "label": "New Todo Input", + "activation": "enter", + "kind": "mutation", + "intent": "create", + "risk": "safe", + "fingerprint": { + "selector": "[data-testid=\"text-input\"]", + "tag": "input", + "ordinal": 10, + "role": "textbox", + "accessibleName": "New Todo Input", + "testId": "text-input", + "type": "text", + "candidates": [ + { + "strategy": "testid", + "weight": 100, + "value": "text-input", + "exact": true + }, + { + "strategy": "role", + "weight": 92, + "role": "textbox", + "name": "New Todo Input", + "exact": true + }, + { + "strategy": "role", + "weight": 82, + "role": "textbox", + "name": "New Todo Input", + "exact": false + }, + { + "strategy": "css", + "weight": 35, + "selector": "[data-testid=\"text-input\"]" + } + ] + }, + "fields": [ + { + "selector": "[data-testid=\"text-input\"]", + "tag": "input", + "type": "text", + "required": false, + "disabled": false, + "label": "New Todo Input", + "placeholder": "What needs to be done?" + } + ] + }, + { + "id": "15c861c63aff", + "pageUrl": "http://127.0.0.1:37281/examples/react/dist/", + "label": "TodoMVC", + "activation": "click", + "kind": "navigation", + "intent": "navigate", + "risk": "safe", + "fingerprint": { + "selector": "body > footer > p:nth-of-type(3) > a", + "tag": "a", + "ordinal": 11, + "role": "link", + "accessibleName": "TodoMVC", + "text": "TodoMVC", + "href": "http://todomvc.com/", + "candidates": [ + { + "strategy": "role", + "weight": 92, + "role": "link", + "name": "TodoMVC", + "exact": true + }, + { + "strategy": "role", + "weight": 82, + "role": "link", + "name": "TodoMVC", + "exact": false + }, + { + "strategy": "href", + "weight": 72, + "value": "http://todomvc.com/" + }, + { + "strategy": "text", + "weight": 60, + "value": "TodoMVC", + "exact": true + }, + { + "strategy": "css", + "weight": 35, + "selector": "body > footer > p:nth-of-type(3) > a" + } + ] + }, + "fields": [] + } + ] + }, + { + "url": "http://127.0.0.1:37281/examples/typescript-react/#/", + "title": "React • TodoMVC", + "actions": [ + { + "id": "9f2414f5f8f0", + "pageUrl": "http://127.0.0.1:37281/examples/typescript-react/#/", + "label": "What needs to be done?", + "activation": "enter", + "kind": "mutation", + "intent": "submit", + "risk": "safe", + "fingerprint": { + "selector": "body > section > div > header > input", + "tag": "input", + "ordinal": 0, + "role": "textbox", + "accessibleName": "What needs to be done?", + "type": "text", + "candidates": [ + { + "strategy": "role", + "weight": 92, + "role": "textbox", + "name": "What needs to be done?", + "exact": true + }, + { + "strategy": "role", + "weight": 82, + "role": "textbox", + "name": "What needs to be done?", + "exact": false + }, + { + "strategy": "css", + "weight": 35, + "selector": "body > section > div > header > input" + } + ] + }, + "fields": [ + { + "selector": "body > section > div > header > input", + "tag": "input", + "type": "text", + "required": false, + "disabled": false, + "placeholder": "What needs to be done?" + } + ] + }, + { + "id": "292678b6efda", + "pageUrl": "http://127.0.0.1:37281/examples/typescript-react/#/", + "label": "Remo H. Jansen", + "activation": "click", + "kind": "navigation", + "intent": "navigate", + "risk": "safe", + "fingerprint": { + "selector": "body > footer > p:nth-of-type(2) > a", + "tag": "a", + "ordinal": 1, + "role": "link", + "accessibleName": "Remo H. Jansen", + "text": "Remo H. Jansen", + "href": "http://github.com/remojansen/", + "candidates": [ + { + "strategy": "role", + "weight": 92, + "role": "link", + "name": "Remo H. Jansen", + "exact": true + }, + { + "strategy": "role", + "weight": 82, + "role": "link", + "name": "Remo H. Jansen", + "exact": false + }, + { + "strategy": "href", + "weight": 72, + "value": "http://github.com/remojansen/" + }, + { + "strategy": "text", + "weight": 60, + "value": "Remo H. Jansen", + "exact": true + }, + { + "strategy": "css", + "weight": 35, + "selector": "body > footer > p:nth-of-type(2) > a" + } + ] + }, + "fields": [] + }, + { + "id": "89af6cc813cd", + "pageUrl": "http://127.0.0.1:37281/examples/typescript-react/#/", + "label": "TodoMVC", + "activation": "click", + "kind": "navigation", + "intent": "navigate", + "risk": "safe", + "fingerprint": { + "selector": "body > footer > p:nth-of-type(3) > a", + "tag": "a", + "ordinal": 2, + "role": "link", + "accessibleName": "TodoMVC", + "text": "TodoMVC", + "href": "http://todomvc.com/", + "candidates": [ + { + "strategy": "role", + "weight": 92, + "role": "link", + "name": "TodoMVC", + "exact": true + }, + { + "strategy": "role", + "weight": 82, + "role": "link", + "name": "TodoMVC", + "exact": false + }, + { + "strategy": "href", + "weight": 72, + "value": "http://todomvc.com/" + }, + { + "strategy": "text", + "weight": 60, + "value": "TodoMVC", + "exact": true + }, + { + "strategy": "css", + "weight": 35, + "selector": "body > footer > p:nth-of-type(3) > a" + } + ] + }, + "fields": [] + } + ] + } + ], + "findings": [ + { + "id": "RD-001", + "action": { + "id": "371506dd6bc1", + "pageUrl": "http://127.0.0.1:37281/examples/react/dist/", + "label": "Demo", + "activation": "click", + "kind": "navigation", + "intent": "navigate", + "risk": "safe", + "fingerprint": { + "selector": "body > aside > header > span > a:nth-of-type(2)", + "tag": "a", + "ordinal": 1, + "role": "link", + "accessibleName": "Demo", + "text": "Demo", + "href": "http://127.0.0.1:37281/examples/typescript-react", + "candidates": [ + { + "strategy": "role", + "weight": 92, + "role": "link", + "name": "Demo", + "exact": true + }, + { + "strategy": "role", + "weight": 82, + "role": "link", + "name": "Demo", + "exact": false + }, + { + "strategy": "href", + "weight": 72, + "value": "http://127.0.0.1:37281/examples/typescript-react" + }, + { + "strategy": "text", + "weight": 60, + "value": "Demo", + "exact": true + }, + { + "strategy": "css", + "weight": 35, + "selector": "body > aside > header > span > a:nth-of-type(2)" + } + ] + }, + "fields": [] + }, + "evidence": { + "startedAt": "2026-07-26T08:13:11.675Z", + "durationMs": 2118, + "canary": "RD_TEST_63DDA0", + "network": [ + { + "id": "net-1", + "method": "GET", + "url": "http://127.0.0.1:37281/examples/typescript-react", + "resourceType": "document", + "startedAt": 1130, + "status": 301, + "ok": false, + "finishedAt": 1134, + "location": "http://127.0.0.1:37281/examples/typescript-react/", + "resourceTypeHint": "typescript-react" + }, + { + "id": "net-2", + "method": "GET", + "url": "http://127.0.0.1:37281/examples/typescript-react/", + "resourceType": "document", + "startedAt": 1134, + "status": 200, + "ok": true, + "contentType": "text/html", + "resourceTypeHint": "typescript-react", + "finishedAt": 1144 + }, + { + "id": "net-3", + "method": "GET", + "url": "http://127.0.0.1:37281/examples/typescript-react/node_modules/todomvc-common/base.css", + "resourceType": "stylesheet", + "startedAt": 1141, + "status": 200, + "ok": true, + "finishedAt": 1152, + "contentType": "text/css", + "resourceTypeHint": "base.css" + }, + { + "id": "net-4", + "method": "GET", + "url": "http://127.0.0.1:37281/examples/typescript-react/node_modules/todomvc-app-css/index.css", + "resourceType": "stylesheet", + "startedAt": 1142, + "status": 200, + "ok": true, + "finishedAt": 1153, + "contentType": "text/css", + "resourceTypeHint": "index.css" + }, + { + "id": "net-5", + "method": "GET", + "url": "http://127.0.0.1:37281/examples/typescript-react/node_modules/director/build/director.js", + "resourceType": "script", + "startedAt": 1142, + "status": 200, + "ok": true, + "finishedAt": 1157, + "contentType": "application/javascript", + "resourceTypeHint": "director.js" + }, + { + "id": "net-6", + "method": "GET", + "url": "http://127.0.0.1:37281/examples/typescript-react/js/bundle.js", + "resourceType": "script", + "startedAt": 1144, + "status": 200, + "ok": true, + "finishedAt": 1168, + "contentType": "application/javascript", + "resourceTypeHint": "bundle.js" + } + ], + "console": [], + "pageErrors": [], + "uiClaims": [], + "filledFields": [], + "dialogs": [], + "downloads": [], + "downloadEvidence": [], + "uploads": [], + "popupUrls": [], + "locatorResolution": { + "attempts": [ + { + "strategy": "role", + "weight": 92, + "matchCount": 1, + "visibleCount": 1, + "elapsedMs": 8 + } + ], + "chosenStrategy": "role", + "chosenWeight": 92, + "retryCount": 0 + }, + "before": { + "at": 1081, + "url": "http://127.0.0.1:37281/examples/react/dist/", + "title": "TodoMVC: React", + "domHash": "84ea4bd670111ab8", + "canaryPresent": false, + "bodyCanaryPresent": false, + "temporaryBlobUrls": 0, + "auth": { + "artifacts": 0, + "expiredArtifacts": 0, + "privateContent": false, + "adminContent": false, + "accessDenied": false + }, + "semanticDom": { + "textHash": "d9d20fd10aa4a889", + "visualHash": "8cc759f885a5de0f", + "text": "React React Source TypeScript + React Demo, Source React is a JavaScript library for building user interfaces. You compose UI from function components and describe state with hooks; React handles the rendering and keeps the UI in sync as state changes. The modern ecosystem (createRoot, Suspense, Server Components) builds on the same component model. React Official Resources Quick Start API Reference Philosophy React Community Community ReactJS on Stack Overflow If you have other helpful links to share, or find any of the links above no longer work, please let us know. todos Double-click to edit a todo Created by the TodoMVC Team Part of TodoMVC", + "controls": [ + { + "tag": "input", + "type": "text", + "valueHash": "e3b0c44298fc1c14", + "checked": false, + "disabled": false, + "visible": true + }, + { + "tag": "input", + "type": "checkbox", + "valueHash": "b8d31e852725afb1", + "checked": false, + "disabled": false, + "visible": false + }, + { + "tag": "button", + "type": "submit", + "valueHash": "e3b0c44298fc1c14", + "disabled": false, + "visible": false + } + ] + }, + "busyControls": 0, + "disabledControls": 0, + "storage": { + "local": [], + "session": [], + "cookieNames": [], + "cookies": [], + "indexedDb": [] + } + }, + "beforeAction": { + "at": 1095, + "url": "http://127.0.0.1:37281/examples/react/dist/", + "title": "TodoMVC: React", + "domHash": "84ea4bd670111ab8", + "canaryPresent": false, + "bodyCanaryPresent": false, + "temporaryBlobUrls": 0, + "auth": { + "artifacts": 0, + "expiredArtifacts": 0, + "privateContent": false, + "adminContent": false, + "accessDenied": false + }, + "semanticDom": { + "textHash": "d9d20fd10aa4a889", + "visualHash": "8cc759f885a5de0f", + "text": "React React Source TypeScript + React Demo, Source React is a JavaScript library for building user interfaces. You compose UI from function components and describe state with hooks; React handles the rendering and keeps the UI in sync as state changes. The modern ecosystem (createRoot, Suspense, Server Components) builds on the same component model. React Official Resources Quick Start API Reference Philosophy React Community Community ReactJS on Stack Overflow If you have other helpful links to share, or find any of the links above no longer work, please let us know. todos Double-click to edit a todo Created by the TodoMVC Team Part of TodoMVC", + "controls": [ + { + "tag": "input", + "type": "text", + "valueHash": "e3b0c44298fc1c14", + "checked": false, + "disabled": false, + "visible": true + }, + { + "tag": "input", + "type": "checkbox", + "valueHash": "b8d31e852725afb1", + "checked": false, + "disabled": false, + "visible": false + }, + { + "tag": "button", + "type": "submit", + "valueHash": "e3b0c44298fc1c14", + "disabled": false, + "visible": false + } + ] + }, + "busyControls": 0, + "disabledControls": 0, + "storage": { + "local": [], + "session": [], + "cookieNames": [], + "cookies": [], + "indexedDb": [] + } + }, + "networkSettled": true, + "after": { + "at": 2107, + "url": "http://127.0.0.1:37281/examples/typescript-react/#/", + "title": "React • TodoMVC", + "domHash": "12538a75df36416c", + "canaryPresent": false, + "bodyCanaryPresent": false, + "temporaryBlobUrls": 0, + "auth": { + "artifacts": 0, + "expiredArtifacts": 0, + "privateContent": false, + "adminContent": false, + "accessDenied": false + }, + "semanticDom": { + "textHash": "01b43f96abda52a7", + "visualHash": "12e0ca1e152bfcf5", + "text": "todos Double-click to edit a todo Created by Remo H. Jansen Part of TodoMVC", + "controls": [ + { + "tag": "input", + "type": "text", + "valueHash": "e3b0c44298fc1c14", + "checked": false, + "disabled": false, + "visible": true + } + ] + }, + "busyControls": 0, + "disabledControls": 0, + "storage": { + "local": [], + "session": [], + "cookieNames": [], + "cookies": [], + "indexedDb": [] + } + }, + "trace": "traces/371506dd6bc1.zip", + "snapshotIndex": "snapshots/RD-001.index.json" + }, + "verdict": "VERIFIED", + "evidenceLevel": 2, + "reason": "The action produced an observable effect.", + "detectorMatches": [] + }, + { + "id": "RD-002", + "action": { + "id": "bc3124709ecf", + "pageUrl": "http://127.0.0.1:37281/examples/react/dist/", + "label": "New Todo Input", + "activation": "enter", + "kind": "mutation", + "intent": "create", + "risk": "safe", + "fingerprint": { + "selector": "[data-testid=\"text-input\"]", + "tag": "input", + "ordinal": 10, + "role": "textbox", + "accessibleName": "New Todo Input", + "testId": "text-input", + "type": "text", + "candidates": [ + { + "strategy": "testid", + "weight": 100, + "value": "text-input", + "exact": true + }, + { + "strategy": "role", + "weight": 92, + "role": "textbox", + "name": "New Todo Input", + "exact": true + }, + { + "strategy": "role", + "weight": 82, + "role": "textbox", + "name": "New Todo Input", + "exact": false + }, + { + "strategy": "css", + "weight": 35, + "selector": "[data-testid=\"text-input\"]" + } + ] + }, + "fields": [ + { + "selector": "[data-testid=\"text-input\"]", + "tag": "input", + "type": "text", + "required": false, + "disabled": false, + "label": "New Todo Input", + "placeholder": "What needs to be done?" + } + ] + }, + "evidence": { + "startedAt": "2026-07-26T08:13:13.828Z", + "durationMs": 5427, + "canary": "RD_TEST_848118", + "network": [ + { + "id": "net-1", + "method": "GET", + "url": "http://127.0.0.1:37281/examples/react/dist/", + "resourceType": "document", + "startedAt": 2018, + "status": 200, + "ok": true, + "contentType": "text/html", + "resourceTypeHint": "dist", + "finishedAt": 2028 + }, + { + "id": "net-2", + "method": "GET", + "url": "http://127.0.0.1:37281/examples/react/dist/app.bundle.js", + "resourceType": "script", + "startedAt": 2027, + "status": 200, + "ok": true, + "finishedAt": 2046, + "contentType": "application/javascript", + "resourceTypeHint": "app.bundle.js" + }, + { + "id": "net-3", + "method": "GET", + "url": "http://127.0.0.1:37281/examples/react/dist/app.css", + "resourceType": "stylesheet", + "startedAt": 2027, + "status": 200, + "ok": true, + "finishedAt": 2055, + "contentType": "text/css", + "resourceTypeHint": "app.css" + }, + { + "id": "net-4", + "method": "GET", + "url": "http://127.0.0.1:37281/examples/react/dist/base.js", + "resourceType": "script", + "startedAt": 2028, + "status": 200, + "ok": true, + "finishedAt": 2056, + "contentType": "application/javascript", + "resourceTypeHint": "base.js" + }, + { + "id": "net-5", + "method": "GET", + "url": "http://127.0.0.1:37281/learn.json", + "resourceType": "xhr", + "startedAt": 2056, + "status": 200, + "ok": true, + "finishedAt": 2065, + "contentType": "application/json", + "resourceTypeHint": "learn.json" + }, + { + "id": "net-6", + "method": "GET", + "url": "http://127.0.0.1:37281/examples/react/dist/", + "resourceType": "document", + "startedAt": 2849, + "status": 200, + "ok": true, + "contentType": "text/html", + "resourceTypeHint": "dist", + "finishedAt": 2859 + }, + { + "id": "net-7", + "method": "GET", + "url": "http://127.0.0.1:37281/examples/react/dist/app.bundle.js", + "resourceType": "script", + "startedAt": 2857, + "status": 200, + "ok": true, + "finishedAt": 2877, + "contentType": "application/javascript", + "resourceTypeHint": "app.bundle.js" + }, + { + "id": "net-8", + "method": "GET", + "url": "http://127.0.0.1:37281/examples/react/dist/app.css", + "resourceType": "stylesheet", + "startedAt": 2858, + "status": 200, + "ok": true, + "finishedAt": 2872, + "contentType": "text/css", + "resourceTypeHint": "app.css" + }, + { + "id": "net-9", + "method": "GET", + "url": "http://127.0.0.1:37281/examples/react/dist/base.js", + "resourceType": "script", + "startedAt": 2858, + "status": 200, + "ok": true, + "finishedAt": 2873, + "contentType": "application/javascript", + "resourceTypeHint": "base.js" + }, + { + "id": "net-10", + "method": "GET", + "url": "http://127.0.0.1:37281/learn.json", + "resourceType": "xhr", + "startedAt": 2873, + "status": 200, + "ok": true, + "finishedAt": 2889, + "contentType": "application/json", + "resourceTypeHint": "learn.json" + } + ], + "console": [], + "pageErrors": [], + "uiClaims": [], + "filledFields": [ + { + "selector": "[data-testid=\"text-input\"]", + "name": "New Todo Input", + "type": "text", + "value": "RD_TEST_848118_1", + "redacted": false + } + ], + "dialogs": [], + "downloads": [], + "downloadEvidence": [], + "uploads": [], + "popupUrls": [], + "locatorResolution": { + "attempts": [ + { + "strategy": "testid", + "weight": 100, + "matchCount": 1, + "visibleCount": 1, + "elapsedMs": 5 + } + ], + "chosenStrategy": "testid", + "chosenWeight": 100, + "retryCount": 0 + }, + "before": { + "at": 1009, + "url": "http://127.0.0.1:37281/examples/react/dist/", + "title": "TodoMVC: React", + "domHash": "84ea4bd670111ab8", + "canaryPresent": false, + "bodyCanaryPresent": false, + "temporaryBlobUrls": 0, + "auth": { + "artifacts": 0, + "expiredArtifacts": 0, + "privateContent": false, + "adminContent": false, + "accessDenied": false + }, + "semanticDom": { + "textHash": "d9d20fd10aa4a889", + "visualHash": "8cc759f885a5de0f", + "text": "React React Source TypeScript + React Demo, Source React is a JavaScript library for building user interfaces. You compose UI from function components and describe state with hooks; React handles the rendering and keeps the UI in sync as state changes. The modern ecosystem (createRoot, Suspense, Server Components) builds on the same component model. React Official Resources Quick Start API Reference Philosophy React Community Community ReactJS on Stack Overflow If you have other helpful links to share, or find any of the links above no longer work, please let us know. todos Double-click to edit a todo Created by the TodoMVC Team Part of TodoMVC", + "controls": [ + { + "tag": "input", + "type": "text", + "valueHash": "e3b0c44298fc1c14", + "checked": false, + "disabled": false, + "visible": true + }, + { + "tag": "input", + "type": "checkbox", + "valueHash": "b8d31e852725afb1", + "checked": false, + "disabled": false, + "visible": false + }, + { + "tag": "button", + "type": "submit", + "valueHash": "e3b0c44298fc1c14", + "disabled": false, + "visible": false + } + ] + }, + "busyControls": 0, + "disabledControls": 0, + "storage": { + "local": [], + "session": [], + "cookieNames": [], + "cookies": [], + "indexedDb": [] + } + }, + "beforeAction": { + "at": 1035, + "url": "http://127.0.0.1:37281/examples/react/dist/", + "title": "TodoMVC: React", + "domHash": "2de441e4ba4d8d9d", + "canaryPresent": true, + "bodyCanaryPresent": false, + "temporaryBlobUrls": 0, + "auth": { + "artifacts": 0, + "expiredArtifacts": 0, + "privateContent": false, + "adminContent": false, + "accessDenied": false + }, + "semanticDom": { + "textHash": "d9d20fd10aa4a889", + "visualHash": "8cc759f885a5de0f", + "text": "React React Source TypeScript + React Demo, Source React is a JavaScript library for building user interfaces. You compose UI from function components and describe state with hooks; React handles the rendering and keeps the UI in sync as state changes. The modern ecosystem (createRoot, Suspense, Server Components) builds on the same component model. React Official Resources Quick Start API Reference Philosophy React Community Community ReactJS on Stack Overflow If you have other helpful links to share, or find any of the links above no longer work, please let us know. todos Double-click to edit a todo Created by the TodoMVC Team Part of TodoMVC", + "controls": [ + { + "tag": "input", + "type": "text", + "valueHash": "e3316bb4a662a1a6", + "checked": false, + "disabled": false, + "visible": true + }, + { + "tag": "input", + "type": "checkbox", + "valueHash": "b8d31e852725afb1", + "checked": false, + "disabled": false, + "visible": false + }, + { + "tag": "button", + "type": "submit", + "valueHash": "e3b0c44298fc1c14", + "disabled": false, + "visible": false + } + ] + }, + "busyControls": 0, + "disabledControls": 0, + "storage": { + "local": [], + "session": [], + "cookieNames": [], + "cookies": [], + "indexedDb": [] + } + }, + "targetDisabledAfter": false, + "networkSettled": true, + "targetBusyAfter": false, + "after": { + "at": 1949, + "url": "http://127.0.0.1:37281/examples/react/dist/", + "title": "TodoMVC: React", + "domHash": "dd1d56c59868eeb8", + "canaryPresent": true, + "bodyCanaryPresent": true, + "temporaryBlobUrls": 0, + "auth": { + "artifacts": 0, + "expiredArtifacts": 0, + "privateContent": false, + "adminContent": false, + "accessDenied": false + }, + "semanticDom": { + "textHash": "7c9137f4727ad3af", + "visualHash": "95e7119833ff437e", + "text": "React React Source TypeScript + React Demo, Source React is a JavaScript library for building user interfaces. You compose UI from function components and describe state with hooks; React handles the rendering and keeps the UI in sync as state changes. The modern ecosystem (createRoot, Suspense, Server Components) builds on the same component model. React Official Resources Quick Start API Reference Philosophy React Community Community ReactJS on Stack Overflow If you have other helpful links to share, or find any of the links above no longer work, please let us know. todos Toggle All Input RD_TEST_848118_1 1 item left! AllActiveCompleted Double-click to edit a todo Created by the TodoMVC Team Part of TodoMVC", + "controls": [ + { + "tag": "input", + "type": "text", + "valueHash": "e3b0c44298fc1c14", + "checked": false, + "disabled": false, + "visible": true + }, + { + "tag": "input", + "type": "checkbox", + "valueHash": "b8d31e852725afb1", + "checked": false, + "disabled": false, + "visible": false + }, + { + "tag": "input", + "type": "checkbox", + "valueHash": "b8d31e852725afb1", + "checked": false, + "disabled": false, + "visible": false + }, + { + "tag": "button", + "type": "submit", + "valueHash": "e3b0c44298fc1c14", + "disabled": false, + "visible": false + }, + { + "tag": "button", + "type": "submit", + "valueHash": "e3b0c44298fc1c14", + "disabled": false, + "visible": false + } + ] + }, + "busyControls": 0, + "disabledControls": 0, + "storage": { + "local": [], + "session": [], + "cookieNames": [], + "cookies": [], + "indexedDb": [] + } + }, + "screenshot": "screenshots/bc3124709ecf-after.png", + "afterRefresh": { + "at": 2782, + "url": "http://127.0.0.1:37281/examples/react/dist/", + "title": "TodoMVC: React", + "domHash": "84ea4bd670111ab8", + "canaryPresent": false, + "bodyCanaryPresent": false, + "temporaryBlobUrls": 0, + "auth": { + "artifacts": 0, + "expiredArtifacts": 0, + "privateContent": false, + "adminContent": false, + "accessDenied": false + }, + "semanticDom": { + "textHash": "d9d20fd10aa4a889", + "visualHash": "8cc759f885a5de0f", + "text": "React React Source TypeScript + React Demo, Source React is a JavaScript library for building user interfaces. You compose UI from function components and describe state with hooks; React handles the rendering and keeps the UI in sync as state changes. The modern ecosystem (createRoot, Suspense, Server Components) builds on the same component model. React Official Resources Quick Start API Reference Philosophy React Community Community ReactJS on Stack Overflow If you have other helpful links to share, or find any of the links above no longer work, please let us know. todos Double-click to edit a todo Created by the TodoMVC Team Part of TodoMVC", + "controls": [ + { + "tag": "input", + "type": "text", + "valueHash": "e3b0c44298fc1c14", + "checked": false, + "disabled": false, + "visible": true + }, + { + "tag": "input", + "type": "checkbox", + "valueHash": "b8d31e852725afb1", + "checked": false, + "disabled": false, + "visible": false + }, + { + "tag": "button", + "type": "submit", + "valueHash": "e3b0c44298fc1c14", + "disabled": false, + "visible": false + } + ] + }, + "busyControls": 0, + "disabledControls": 0, + "storage": { + "local": [], + "session": [], + "cookieNames": [], + "cookies": [], + "indexedDb": [] + } + }, + "refreshScreenshot": "screenshots/bc3124709ecf-refresh.png", + "afterHardRefresh": { + "at": 3621, + "url": "http://127.0.0.1:37281/examples/react/dist/", + "title": "TodoMVC: React", + "domHash": "84ea4bd670111ab8", + "canaryPresent": false, + "bodyCanaryPresent": false, + "temporaryBlobUrls": 0, + "auth": { + "artifacts": 0, + "expiredArtifacts": 0, + "privateContent": false, + "adminContent": false, + "accessDenied": false + }, + "semanticDom": { + "textHash": "d9d20fd10aa4a889", + "visualHash": "8cc759f885a5de0f", + "text": "React React Source TypeScript + React Demo, Source React is a JavaScript library for building user interfaces. You compose UI from function components and describe state with hooks; React handles the rendering and keeps the UI in sync as state changes. The modern ecosystem (createRoot, Suspense, Server Components) builds on the same component model. React Official Resources Quick Start API Reference Philosophy React Community Community ReactJS on Stack Overflow If you have other helpful links to share, or find any of the links above no longer work, please let us know. todos Double-click to edit a todo Created by the TodoMVC Team Part of TodoMVC", + "controls": [ + { + "tag": "input", + "type": "text", + "valueHash": "e3b0c44298fc1c14", + "checked": false, + "disabled": false, + "visible": true + }, + { + "tag": "input", + "type": "checkbox", + "valueHash": "b8d31e852725afb1", + "checked": false, + "disabled": false, + "visible": false + }, + { + "tag": "button", + "type": "submit", + "valueHash": "e3b0c44298fc1c14", + "disabled": false, + "visible": false + } + ] + }, + "busyControls": 0, + "disabledControls": 0, + "storage": { + "local": [], + "session": [], + "cookieNames": [], + "cookies": [], + "indexedDb": [] + } + }, + "afterNewTab": { + "at": 4498, + "url": "http://127.0.0.1:37281/examples/react/dist/", + "title": "TodoMVC: React", + "domHash": "84ea4bd670111ab8", + "canaryPresent": false, + "bodyCanaryPresent": false, + "temporaryBlobUrls": 0, + "auth": { + "artifacts": 0, + "expiredArtifacts": 0, + "privateContent": false, + "adminContent": false, + "accessDenied": false + }, + "semanticDom": { + "textHash": "d9d20fd10aa4a889", + "visualHash": "8cc759f885a5de0f", + "text": "React React Source TypeScript + React Demo, Source React is a JavaScript library for building user interfaces. You compose UI from function components and describe state with hooks; React handles the rendering and keeps the UI in sync as state changes. The modern ecosystem (createRoot, Suspense, Server Components) builds on the same component model. React Official Resources Quick Start API Reference Philosophy React Community Community ReactJS on Stack Overflow If you have other helpful links to share, or find any of the links above no longer work, please let us know. todos Double-click to edit a todo Created by the TodoMVC Team Part of TodoMVC", + "controls": [ + { + "tag": "input", + "type": "text", + "valueHash": "e3b0c44298fc1c14", + "checked": false, + "disabled": false, + "visible": true + }, + { + "tag": "input", + "type": "checkbox", + "valueHash": "b8d31e852725afb1", + "checked": false, + "disabled": false, + "visible": false + }, + { + "tag": "button", + "type": "submit", + "valueHash": "e3b0c44298fc1c14", + "disabled": false, + "visible": false + } + ] + }, + "busyControls": 0, + "disabledControls": 0, + "storage": { + "local": [], + "session": [], + "cookieNames": [], + "cookies": [], + "indexedDb": [] + } + }, + "afterNewContext": { + "at": 5423, + "url": "http://127.0.0.1:37281/examples/react/dist/", + "title": "TodoMVC: React", + "domHash": "84ea4bd670111ab8", + "canaryPresent": false, + "bodyCanaryPresent": false, + "temporaryBlobUrls": 0, + "auth": { + "artifacts": 0, + "expiredArtifacts": 0, + "privateContent": false, + "adminContent": false, + "accessDenied": false + }, + "semanticDom": { + "textHash": "d9d20fd10aa4a889", + "visualHash": "8cc759f885a5de0f", + "text": "React React Source TypeScript + React Demo, Source React is a JavaScript library for building user interfaces. You compose UI from function components and describe state with hooks; React handles the rendering and keeps the UI in sync as state changes. The modern ecosystem (createRoot, Suspense, Server Components) builds on the same component model. React Official Resources Quick Start API Reference Philosophy React Community Community ReactJS on Stack Overflow If you have other helpful links to share, or find any of the links above no longer work, please let us know. todos Double-click to edit a todo Created by the TodoMVC Team Part of TodoMVC", + "controls": [ + { + "tag": "input", + "type": "text", + "valueHash": "e3b0c44298fc1c14", + "checked": false, + "disabled": false, + "visible": true + }, + { + "tag": "input", + "type": "checkbox", + "valueHash": "b8d31e852725afb1", + "checked": false, + "disabled": false, + "visible": false + }, + { + "tag": "button", + "type": "submit", + "valueHash": "e3b0c44298fc1c14", + "disabled": false, + "visible": false + } + ] + }, + "busyControls": 0, + "disabledControls": 0, + "storage": { + "local": [], + "session": [], + "cookieNames": [], + "cookies": [], + "indexedDb": [] + } + }, + "persistenceScope": "MEMORY_ONLY", + "trace": "traces/bc3124709ecf.zip", + "snapshotIndex": "snapshots/RD-002.index.json" + }, + "verdict": "EPHEMERAL", + "evidenceLevel": 1, + "reason": "The generated canary appeared after the action and disappeared after reload.", + "detectorMatches": [ + { + "code": "RD101", + "title": "Refresh disappearance", + "detail": "The generated canary appeared after the action and disappeared after reload." + }, + { + "code": "RD104", + "title": "Memory-only state", + "detail": "The result existed immediately after the action but not after reload." + }, + { + "code": "RD201", + "title": "Fake create", + "detail": "The created resource was not persistent." + } + ] + }, + { + "id": "RD-003", + "action": { + "id": "9f2414f5f8f0", + "pageUrl": "http://127.0.0.1:37281/examples/typescript-react/#/", + "label": "What needs to be done?", + "activation": "enter", + "kind": "mutation", + "intent": "submit", + "risk": "safe", + "fingerprint": { + "selector": "body > section > div > header > input", + "tag": "input", + "ordinal": 0, + "role": "textbox", + "accessibleName": "What needs to be done?", + "type": "text", + "candidates": [ + { + "strategy": "role", + "weight": 92, + "role": "textbox", + "name": "What needs to be done?", + "exact": true + }, + { + "strategy": "role", + "weight": 82, + "role": "textbox", + "name": "What needs to be done?", + "exact": false + }, + { + "strategy": "css", + "weight": 35, + "selector": "body > section > div > header > input" + } + ] + }, + "fields": [ + { + "selector": "body > section > div > header > input", + "tag": "input", + "type": "text", + "required": false, + "disabled": false, + "placeholder": "What needs to be done?" + } + ] + }, + "evidence": { + "startedAt": "2026-07-26T08:13:19.323Z", + "durationMs": 5476, + "canary": "RD_TEST_02A394", + "network": [ + { + "id": "net-1", + "method": "GET", + "url": "http://127.0.0.1:37281/examples/typescript-react/", + "resourceType": "document", + "startedAt": 2047, + "status": 200, + "ok": true, + "contentType": "text/html", + "resourceTypeHint": "typescript-react", + "finishedAt": 2056 + }, + { + "id": "net-2", + "method": "GET", + "url": "http://127.0.0.1:37281/examples/typescript-react/node_modules/todomvc-common/base.css", + "resourceType": "stylesheet", + "startedAt": 2054, + "status": 200, + "ok": true, + "finishedAt": 2060, + "contentType": "text/css", + "resourceTypeHint": "base.css" + }, + { + "id": "net-3", + "method": "GET", + "url": "http://127.0.0.1:37281/examples/typescript-react/node_modules/todomvc-app-css/index.css", + "resourceType": "stylesheet", + "startedAt": 2054, + "status": 200, + "ok": true, + "contentType": "text/css", + "resourceTypeHint": "index.css", + "finishedAt": 2071 + }, + { + "id": "net-4", + "method": "GET", + "url": "http://127.0.0.1:37281/examples/typescript-react/node_modules/director/build/director.js", + "resourceType": "script", + "startedAt": 2055, + "status": 200, + "ok": true, + "finishedAt": 2072, + "contentType": "application/javascript", + "resourceTypeHint": "director.js" + }, + { + "id": "net-5", + "method": "GET", + "url": "http://127.0.0.1:37281/examples/typescript-react/js/bundle.js", + "resourceType": "script", + "startedAt": 2055, + "status": 200, + "ok": true, + "finishedAt": 2094, + "contentType": "application/javascript", + "resourceTypeHint": "bundle.js" + }, + { + "id": "net-6", + "method": "GET", + "url": "http://127.0.0.1:37281/examples/typescript-react/", + "resourceType": "document", + "startedAt": 2898, + "status": 200, + "ok": true, + "contentType": "text/html", + "resourceTypeHint": "typescript-react", + "finishedAt": 2907 + }, + { + "id": "net-7", + "method": "GET", + "url": "http://127.0.0.1:37281/examples/typescript-react/node_modules/todomvc-common/base.css", + "resourceType": "stylesheet", + "startedAt": 2905, + "status": 200, + "ok": true, + "finishedAt": 2911, + "contentType": "text/css", + "resourceTypeHint": "base.css" + }, + { + "id": "net-8", + "method": "GET", + "url": "http://127.0.0.1:37281/examples/typescript-react/node_modules/todomvc-app-css/index.css", + "resourceType": "stylesheet", + "startedAt": 2906, + "status": 200, + "ok": true, + "finishedAt": 2914, + "contentType": "text/css", + "resourceTypeHint": "index.css" + }, + { + "id": "net-9", + "method": "GET", + "url": "http://127.0.0.1:37281/examples/typescript-react/node_modules/director/build/director.js", + "resourceType": "script", + "startedAt": 2906, + "status": 200, + "ok": true, + "finishedAt": 2919, + "contentType": "application/javascript", + "resourceTypeHint": "director.js" + }, + { + "id": "net-10", + "method": "GET", + "url": "http://127.0.0.1:37281/examples/typescript-react/js/bundle.js", + "resourceType": "script", + "startedAt": 2907, + "status": 200, + "ok": true, + "finishedAt": 2927, + "contentType": "application/javascript", + "resourceTypeHint": "bundle.js" + } + ], + "console": [], + "pageErrors": [], + "uiClaims": [], + "filledFields": [ + { + "selector": "body > section > div > header > input", + "name": "What needs to be done?", + "type": "text", + "value": "RD_TEST_02A394_1", + "redacted": false + } + ], + "dialogs": [], + "downloads": [], + "downloadEvidence": [], + "uploads": [], + "popupUrls": [], + "locatorResolution": { + "attempts": [ + { + "strategy": "role", + "weight": 92, + "matchCount": 1, + "visibleCount": 1, + "elapsedMs": 5 + } + ], + "chosenStrategy": "role", + "chosenWeight": 92, + "retryCount": 0 + }, + "before": { + "at": 1082, + "url": "http://127.0.0.1:37281/examples/typescript-react/#/", + "title": "React • TodoMVC", + "domHash": "12538a75df36416c", + "canaryPresent": false, + "bodyCanaryPresent": false, + "temporaryBlobUrls": 0, + "auth": { + "artifacts": 0, + "expiredArtifacts": 0, + "privateContent": false, + "adminContent": false, + "accessDenied": false + }, + "semanticDom": { + "textHash": "01b43f96abda52a7", + "visualHash": "12e0ca1e152bfcf5", + "text": "todos Double-click to edit a todo Created by Remo H. Jansen Part of TodoMVC", + "controls": [ + { + "tag": "input", + "type": "text", + "valueHash": "e3b0c44298fc1c14", + "checked": false, + "disabled": false, + "visible": true + } + ] + }, + "busyControls": 0, + "disabledControls": 0, + "storage": { + "local": [], + "session": [], + "cookieNames": [], + "cookies": [], + "indexedDb": [] + } + }, + "beforeAction": { + "at": 1105, + "url": "http://127.0.0.1:37281/examples/typescript-react/#/", + "title": "React • TodoMVC", + "domHash": "df6a8ef80ec3e428", + "canaryPresent": true, + "bodyCanaryPresent": false, + "temporaryBlobUrls": 0, + "auth": { + "artifacts": 0, + "expiredArtifacts": 0, + "privateContent": false, + "adminContent": false, + "accessDenied": false + }, + "semanticDom": { + "textHash": "01b43f96abda52a7", + "visualHash": "12e0ca1e152bfcf5", + "text": "todos Double-click to edit a todo Created by Remo H. Jansen Part of TodoMVC", + "controls": [ + { + "tag": "input", + "type": "text", + "valueHash": "0bec6eac64c7aa6f", + "checked": false, + "disabled": false, + "visible": true + } + ] + }, + "busyControls": 0, + "disabledControls": 0, + "storage": { + "local": [], + "session": [], + "cookieNames": [], + "cookies": [], + "indexedDb": [] + } + }, + "targetDisabledAfter": false, + "networkSettled": true, + "targetBusyAfter": false, + "after": { + "at": 2007, + "url": "http://127.0.0.1:37281/examples/typescript-react/#/", + "title": "React • TodoMVC", + "domHash": "e35ed0ff08316dd8", + "canaryPresent": true, + "bodyCanaryPresent": true, + "temporaryBlobUrls": 0, + "auth": { + "artifacts": 0, + "expiredArtifacts": 0, + "privateContent": false, + "adminContent": false, + "accessDenied": false + }, + "semanticDom": { + "textHash": "22cabfbc912bb5f7", + "visualHash": "23536a708be967a8", + "text": "todos Mark all as complete RD_TEST_02A394_1 1 item left All Active Completed Double-click to edit a todo Created by Remo H. Jansen Part of TodoMVC", + "controls": [ + { + "tag": "input", + "type": "text", + "valueHash": "e3b0c44298fc1c14", + "checked": false, + "disabled": false, + "visible": true + }, + { + "tag": "input", + "type": "checkbox", + "valueHash": "b8d31e852725afb1", + "checked": false, + "disabled": false, + "visible": false + }, + { + "tag": "input", + "type": "checkbox", + "valueHash": "b8d31e852725afb1", + "checked": false, + "disabled": false, + "visible": false + }, + { + "tag": "button", + "type": "submit", + "valueHash": "e3b0c44298fc1c14", + "disabled": false, + "visible": false + }, + { + "tag": "input", + "type": "text", + "valueHash": "0bec6eac64c7aa6f", + "checked": false, + "disabled": false, + "visible": false + } + ] + }, + "busyControls": 0, + "disabledControls": 0, + "storage": { + "local": [ + { + "key": "react-todos", + "valueHash": "f6d2b84d1a820f09", + "containsCanary": true + } + ], + "session": [], + "cookieNames": [], + "cookies": [], + "indexedDb": [] + } + }, + "screenshot": "screenshots/9f2414f5f8f0-after.png", + "afterRefresh": { + "at": 2861, + "url": "http://127.0.0.1:37281/examples/typescript-react/#/", + "title": "React • TodoMVC", + "domHash": "e35ed0ff08316dd8", + "canaryPresent": true, + "bodyCanaryPresent": true, + "temporaryBlobUrls": 0, + "auth": { + "artifacts": 0, + "expiredArtifacts": 0, + "privateContent": false, + "adminContent": false, + "accessDenied": false + }, + "semanticDom": { + "textHash": "22cabfbc912bb5f7", + "visualHash": "23536a708be967a8", + "text": "todos Mark all as complete RD_TEST_02A394_1 1 item left All Active Completed Double-click to edit a todo Created by Remo H. Jansen Part of TodoMVC", + "controls": [ + { + "tag": "input", + "type": "text", + "valueHash": "e3b0c44298fc1c14", + "checked": false, + "disabled": false, + "visible": true + }, + { + "tag": "input", + "type": "checkbox", + "valueHash": "b8d31e852725afb1", + "checked": false, + "disabled": false, + "visible": false + }, + { + "tag": "input", + "type": "checkbox", + "valueHash": "b8d31e852725afb1", + "checked": false, + "disabled": false, + "visible": false + }, + { + "tag": "button", + "type": "submit", + "valueHash": "e3b0c44298fc1c14", + "disabled": false, + "visible": false + }, + { + "tag": "input", + "type": "text", + "valueHash": "0bec6eac64c7aa6f", + "checked": false, + "disabled": false, + "visible": false + } + ] + }, + "busyControls": 0, + "disabledControls": 0, + "storage": { + "local": [ + { + "key": "react-todos", + "valueHash": "f6d2b84d1a820f09", + "containsCanary": true + } + ], + "session": [], + "cookieNames": [], + "cookies": [], + "indexedDb": [] + } + }, + "refreshScreenshot": "screenshots/9f2414f5f8f0-refresh.png", + "afterHardRefresh": { + "at": 3698, + "url": "http://127.0.0.1:37281/examples/typescript-react/#/", + "title": "React • TodoMVC", + "domHash": "e35ed0ff08316dd8", + "canaryPresent": true, + "bodyCanaryPresent": true, + "temporaryBlobUrls": 0, + "auth": { + "artifacts": 0, + "expiredArtifacts": 0, + "privateContent": false, + "adminContent": false, + "accessDenied": false + }, + "semanticDom": { + "textHash": "22cabfbc912bb5f7", + "visualHash": "23536a708be967a8", + "text": "todos Mark all as complete RD_TEST_02A394_1 1 item left All Active Completed Double-click to edit a todo Created by Remo H. Jansen Part of TodoMVC", + "controls": [ + { + "tag": "input", + "type": "text", + "valueHash": "e3b0c44298fc1c14", + "checked": false, + "disabled": false, + "visible": true + }, + { + "tag": "input", + "type": "checkbox", + "valueHash": "b8d31e852725afb1", + "checked": false, + "disabled": false, + "visible": false + }, + { + "tag": "input", + "type": "checkbox", + "valueHash": "b8d31e852725afb1", + "checked": false, + "disabled": false, + "visible": false + }, + { + "tag": "button", + "type": "submit", + "valueHash": "e3b0c44298fc1c14", + "disabled": false, + "visible": false + }, + { + "tag": "input", + "type": "text", + "valueHash": "0bec6eac64c7aa6f", + "checked": false, + "disabled": false, + "visible": false + } + ] + }, + "busyControls": 0, + "disabledControls": 0, + "storage": { + "local": [ + { + "key": "react-todos", + "valueHash": "f6d2b84d1a820f09", + "containsCanary": true + } + ], + "session": [], + "cookieNames": [], + "cookies": [], + "indexedDb": [] + } + }, + "afterNewTab": { + "at": 4657, + "url": "http://127.0.0.1:37281/examples/typescript-react/#/", + "title": "React • TodoMVC", + "domHash": "e35ed0ff08316dd8", + "canaryPresent": true, + "bodyCanaryPresent": true, + "temporaryBlobUrls": 0, + "auth": { + "artifacts": 0, + "expiredArtifacts": 0, + "privateContent": false, + "adminContent": false, + "accessDenied": false + }, + "semanticDom": { + "textHash": "22cabfbc912bb5f7", + "visualHash": "23536a708be967a8", + "text": "todos Mark all as complete RD_TEST_02A394_1 1 item left All Active Completed Double-click to edit a todo Created by Remo H. Jansen Part of TodoMVC", + "controls": [ + { + "tag": "input", + "type": "text", + "valueHash": "e3b0c44298fc1c14", + "checked": false, + "disabled": false, + "visible": true + }, + { + "tag": "input", + "type": "checkbox", + "valueHash": "b8d31e852725afb1", + "checked": false, + "disabled": false, + "visible": false + }, + { + "tag": "input", + "type": "checkbox", + "valueHash": "b8d31e852725afb1", + "checked": false, + "disabled": false, + "visible": false + }, + { + "tag": "button", + "type": "submit", + "valueHash": "e3b0c44298fc1c14", + "disabled": false, + "visible": false + }, + { + "tag": "input", + "type": "text", + "valueHash": "0bec6eac64c7aa6f", + "checked": false, + "disabled": false, + "visible": false + } + ] + }, + "busyControls": 0, + "disabledControls": 0, + "storage": { + "local": [ + { + "key": "react-todos", + "valueHash": "f6d2b84d1a820f09", + "containsCanary": true + } + ], + "session": [], + "cookieNames": [], + "cookies": [], + "indexedDb": [] + } + }, + "afterNewContext": { + "at": 5473, + "url": "http://127.0.0.1:37281/examples/typescript-react/#/", + "title": "React • TodoMVC", + "domHash": "12538a75df36416c", + "canaryPresent": false, + "bodyCanaryPresent": false, + "temporaryBlobUrls": 0, + "auth": { + "artifacts": 0, + "expiredArtifacts": 0, + "privateContent": false, + "adminContent": false, + "accessDenied": false + }, + "semanticDom": { + "textHash": "01b43f96abda52a7", + "visualHash": "12e0ca1e152bfcf5", + "text": "todos Double-click to edit a todo Created by Remo H. Jansen Part of TodoMVC", + "controls": [ + { + "tag": "input", + "type": "text", + "valueHash": "e3b0c44298fc1c14", + "checked": false, + "disabled": false, + "visible": true + } + ] + }, + "busyControls": 0, + "disabledControls": 0, + "storage": { "local": [], "session": [], "cookieNames": [], @@ -775,36 +2419,688 @@ "indexedDb": [] } }, - "persistenceScope": "MEMORY_ONLY", - "trace": "traces/92f9d29fabad.zip", - "snapshotIndex": "snapshots/RD-001.index.json" + "persistenceScope": "BROWSER_LOCAL", + "trace": "traces/9f2414f5f8f0.zip", + "snapshotIndex": "snapshots/RD-003.index.json" + }, + "verdict": "BROWSER_LOCAL", + "evidenceLevel": 5, + "reason": "The result survived reload in the current browser context but was absent in a fresh context.", + "detectorMatches": [ + { + "code": "RD102", + "title": "Browser-local persistence", + "detail": "The result survived reload in the current browser context but was absent in a fresh context." + }, + { + "code": "RD103", + "title": "New-session disappearance", + "detail": "A new browser session could not observe the result confirmed in the original session." + } + ] + }, + { + "id": "RD-004", + "action": { + "id": "a648a1fe4475", + "pageUrl": "http://127.0.0.1:37281/examples/react/dist/", + "label": "Source", + "activation": "click", + "kind": "navigation", + "intent": "navigate", + "risk": "safe", + "fingerprint": { + "selector": "body > aside > header > span > a:nth-of-type(1)", + "tag": "a", + "ordinal": 0, + "role": "link", + "accessibleName": "Source", + "text": "Source", + "href": "https://github.com/tastejs/todomvc/tree/gh-pages/examples/react", + "candidates": [ + { + "strategy": "role", + "weight": 92, + "role": "link", + "name": "Source", + "exact": true + }, + { + "strategy": "role", + "weight": 82, + "role": "link", + "name": "Source", + "exact": false + }, + { + "strategy": "href", + "weight": 72, + "value": "https://github.com/tastejs/todomvc/tree/gh-pages/examples/react" + }, + { + "strategy": "text", + "weight": 60, + "value": "Source", + "exact": true + }, + { + "strategy": "css", + "weight": 35, + "selector": "body > aside > header > span > a:nth-of-type(1)" + } + ] + }, + "fields": [] + }, + "verdict": "SKIPPED", + "evidenceLevel": 0, + "reason": "Cross-origin navigation blocked by the default safety policy. Use --allow-external explicitly.", + "skippedReason": "Cross-origin navigation blocked by the default safety policy. Use --allow-external explicitly.", + "detectorMatches": [], + "evidence": { + "startedAt": "", + "durationMs": 0, + "canary": "", + "network": [], + "console": [], + "pageErrors": [], + "uiClaims": [], + "filledFields": [], + "dialogs": [], + "downloads": [], + "popupUrls": [], + "snapshotIndex": "snapshots/RD-004.index.json" + } + }, + { + "id": "RD-005", + "action": { + "id": "0c21eea9d35a", + "pageUrl": "http://127.0.0.1:37281/examples/react/dist/", + "label": "Source", + "activation": "click", + "kind": "navigation", + "intent": "navigate", + "risk": "safe", + "fingerprint": { + "selector": "body > aside > header > span > a:nth-of-type(3)", + "tag": "a", + "ordinal": 2, + "role": "link", + "accessibleName": "Source", + "text": "Source", + "href": "https://github.com/tastejs/todomvc/tree/gh-pages/examples/typescript-react", + "candidates": [ + { + "strategy": "role", + "weight": 92, + "role": "link", + "name": "Source", + "exact": true + }, + { + "strategy": "role", + "weight": 82, + "role": "link", + "name": "Source", + "exact": false + }, + { + "strategy": "href", + "weight": 72, + "value": "https://github.com/tastejs/todomvc/tree/gh-pages/examples/typescript-react" + }, + { + "strategy": "text", + "weight": 60, + "value": "Source", + "exact": true + }, + { + "strategy": "css", + "weight": 35, + "selector": "body > aside > header > span > a:nth-of-type(3)" + } + ] + }, + "fields": [] + }, + "verdict": "SKIPPED", + "evidenceLevel": 0, + "reason": "Cross-origin navigation blocked by the default safety policy. Use --allow-external explicitly.", + "skippedReason": "Cross-origin navigation blocked by the default safety policy. Use --allow-external explicitly.", + "detectorMatches": [], + "evidence": { + "startedAt": "", + "durationMs": 0, + "canary": "", + "network": [], + "console": [], + "pageErrors": [], + "uiClaims": [], + "filledFields": [], + "dialogs": [], + "downloads": [], + "popupUrls": [], + "snapshotIndex": "snapshots/RD-005.index.json" + } + }, + { + "id": "RD-006", + "action": { + "id": "138fd677a27c", + "pageUrl": "http://127.0.0.1:37281/examples/react/dist/", + "label": "React", + "activation": "click", + "kind": "navigation", + "intent": "navigate", + "risk": "safe", + "fingerprint": { + "selector": "body > aside > blockquote > footer > a", + "tag": "a", + "ordinal": 3, + "role": "link", + "accessibleName": "React", + "text": "React", + "href": "http://facebook.github.io/react", + "candidates": [ + { + "strategy": "role", + "weight": 92, + "role": "link", + "name": "React", + "exact": true + }, + { + "strategy": "role", + "weight": 82, + "role": "link", + "name": "React", + "exact": false + }, + { + "strategy": "href", + "weight": 72, + "value": "http://facebook.github.io/react" + }, + { + "strategy": "text", + "weight": 60, + "value": "React", + "exact": true + }, + { + "strategy": "css", + "weight": 35, + "selector": "body > aside > blockquote > footer > a" + } + ] + }, + "fields": [] + }, + "verdict": "SKIPPED", + "evidenceLevel": 0, + "reason": "Cross-origin navigation blocked by the default safety policy. Use --allow-external explicitly.", + "skippedReason": "Cross-origin navigation blocked by the default safety policy. Use --allow-external explicitly.", + "detectorMatches": [], + "evidence": { + "startedAt": "", + "durationMs": 0, + "canary": "", + "network": [], + "console": [], + "pageErrors": [], + "uiClaims": [], + "filledFields": [], + "dialogs": [], + "downloads": [], + "popupUrls": [], + "snapshotIndex": "snapshots/RD-006.index.json" + } + }, + { + "id": "RD-007", + "action": { + "id": "2b3591622da9", + "pageUrl": "http://127.0.0.1:37281/examples/react/dist/", + "label": "Quick Start", + "activation": "click", + "kind": "navigation", + "intent": "navigate", + "risk": "safe", + "fingerprint": { + "selector": "body > aside > ul:nth-of-type(1) > li:nth-of-type(1) > a", + "tag": "a", + "ordinal": 4, + "role": "link", + "accessibleName": "Quick Start", + "text": "Quick Start", + "href": "https://react.dev/learn", + "candidates": [ + { + "strategy": "role", + "weight": 92, + "role": "link", + "name": "Quick Start", + "exact": true + }, + { + "strategy": "role", + "weight": 82, + "role": "link", + "name": "Quick Start", + "exact": false + }, + { + "strategy": "href", + "weight": 72, + "value": "https://react.dev/learn" + }, + { + "strategy": "text", + "weight": 60, + "value": "Quick Start", + "exact": true + }, + { + "strategy": "css", + "weight": 35, + "selector": "body > aside > ul:nth-of-type(1) > li:nth-of-type(1) > a" + } + ] + }, + "fields": [] + }, + "verdict": "SKIPPED", + "evidenceLevel": 0, + "reason": "Cross-origin navigation blocked by the default safety policy. Use --allow-external explicitly.", + "skippedReason": "Cross-origin navigation blocked by the default safety policy. Use --allow-external explicitly.", + "detectorMatches": [], + "evidence": { + "startedAt": "", + "durationMs": 0, + "canary": "", + "network": [], + "console": [], + "pageErrors": [], + "uiClaims": [], + "filledFields": [], + "dialogs": [], + "downloads": [], + "popupUrls": [], + "snapshotIndex": "snapshots/RD-007.index.json" + } + }, + { + "id": "RD-008", + "action": { + "id": "fb1a8a81551a", + "pageUrl": "http://127.0.0.1:37281/examples/react/dist/", + "label": "API Reference", + "activation": "click", + "kind": "navigation", + "intent": "navigate", + "risk": "safe", + "fingerprint": { + "selector": "body > aside > ul:nth-of-type(1) > li:nth-of-type(2) > a", + "tag": "a", + "ordinal": 5, + "role": "link", + "accessibleName": "API Reference", + "text": "API Reference", + "href": "https://react.dev/reference/react", + "candidates": [ + { + "strategy": "role", + "weight": 92, + "role": "link", + "name": "API Reference", + "exact": true + }, + { + "strategy": "role", + "weight": 82, + "role": "link", + "name": "API Reference", + "exact": false + }, + { + "strategy": "href", + "weight": 72, + "value": "https://react.dev/reference/react" + }, + { + "strategy": "text", + "weight": 60, + "value": "API Reference", + "exact": true + }, + { + "strategy": "css", + "weight": 35, + "selector": "body > aside > ul:nth-of-type(1) > li:nth-of-type(2) > a" + } + ] + }, + "fields": [] + }, + "verdict": "SKIPPED", + "evidenceLevel": 0, + "reason": "Cross-origin navigation blocked by the default safety policy. Use --allow-external explicitly.", + "skippedReason": "Cross-origin navigation blocked by the default safety policy. Use --allow-external explicitly.", + "detectorMatches": [], + "evidence": { + "startedAt": "", + "durationMs": 0, + "canary": "", + "network": [], + "console": [], + "pageErrors": [], + "uiClaims": [], + "filledFields": [], + "dialogs": [], + "downloads": [], + "popupUrls": [], + "snapshotIndex": "snapshots/RD-008.index.json" + } + }, + { + "id": "RD-009", + "action": { + "id": "537ea2ada93c", + "pageUrl": "http://127.0.0.1:37281/examples/react/dist/", + "label": "Philosophy", + "activation": "click", + "kind": "navigation", + "intent": "navigate", + "risk": "safe", + "fingerprint": { + "selector": "body > aside > ul:nth-of-type(1) > li:nth-of-type(3) > a", + "tag": "a", + "ordinal": 6, + "role": "link", + "accessibleName": "Philosophy", + "text": "Philosophy", + "href": "https://petehuntsposts.quora.com/React-Under-the-Hood", + "candidates": [ + { + "strategy": "role", + "weight": 92, + "role": "link", + "name": "Philosophy", + "exact": true + }, + { + "strategy": "role", + "weight": 82, + "role": "link", + "name": "Philosophy", + "exact": false + }, + { + "strategy": "href", + "weight": 72, + "value": "https://petehuntsposts.quora.com/React-Under-the-Hood" + }, + { + "strategy": "text", + "weight": 60, + "value": "Philosophy", + "exact": true + }, + { + "strategy": "css", + "weight": 35, + "selector": "body > aside > ul:nth-of-type(1) > li:nth-of-type(3) > a" + } + ] + }, + "fields": [] + }, + "verdict": "SKIPPED", + "evidenceLevel": 0, + "reason": "Cross-origin navigation blocked by the default safety policy. Use --allow-external explicitly.", + "skippedReason": "Cross-origin navigation blocked by the default safety policy. Use --allow-external explicitly.", + "detectorMatches": [], + "evidence": { + "startedAt": "", + "durationMs": 0, + "canary": "", + "network": [], + "console": [], + "pageErrors": [], + "uiClaims": [], + "filledFields": [], + "dialogs": [], + "downloads": [], + "popupUrls": [], + "snapshotIndex": "snapshots/RD-009.index.json" + } + }, + { + "id": "RD-010", + "action": { + "id": "195cf1362372", + "pageUrl": "http://127.0.0.1:37281/examples/react/dist/", + "label": "React Community", + "activation": "click", + "kind": "navigation", + "intent": "navigate", + "risk": "safe", + "fingerprint": { + "selector": "body > aside > ul:nth-of-type(1) > li:nth-of-type(4) > a", + "tag": "a", + "ordinal": 7, + "role": "link", + "accessibleName": "React Community", + "text": "React Community", + "href": "https://react.dev/community", + "candidates": [ + { + "strategy": "role", + "weight": 92, + "role": "link", + "name": "React Community", + "exact": true + }, + { + "strategy": "role", + "weight": 82, + "role": "link", + "name": "React Community", + "exact": false + }, + { + "strategy": "href", + "weight": 72, + "value": "https://react.dev/community" + }, + { + "strategy": "text", + "weight": 60, + "value": "React Community", + "exact": true + }, + { + "strategy": "css", + "weight": 35, + "selector": "body > aside > ul:nth-of-type(1) > li:nth-of-type(4) > a" + } + ] + }, + "fields": [] + }, + "verdict": "SKIPPED", + "evidenceLevel": 0, + "reason": "Cross-origin navigation blocked by the default safety policy. Use --allow-external explicitly.", + "skippedReason": "Cross-origin navigation blocked by the default safety policy. Use --allow-external explicitly.", + "detectorMatches": [], + "evidence": { + "startedAt": "", + "durationMs": 0, + "canary": "", + "network": [], + "console": [], + "pageErrors": [], + "uiClaims": [], + "filledFields": [], + "dialogs": [], + "downloads": [], + "popupUrls": [], + "snapshotIndex": "snapshots/RD-010.index.json" + } + }, + { + "id": "RD-011", + "action": { + "id": "e590eb6c9f2e", + "pageUrl": "http://127.0.0.1:37281/examples/react/dist/", + "label": "ReactJS on Stack Overflow", + "activation": "click", + "kind": "navigation", + "intent": "navigate", + "risk": "safe", + "fingerprint": { + "selector": "body > aside > ul:nth-of-type(2) > li > a", + "tag": "a", + "ordinal": 8, + "role": "link", + "accessibleName": "ReactJS on Stack Overflow", + "text": "ReactJS on Stack Overflow", + "href": "https://stackoverflow.com/questions/tagged/reactjs", + "candidates": [ + { + "strategy": "role", + "weight": 92, + "role": "link", + "name": "ReactJS on Stack Overflow", + "exact": true + }, + { + "strategy": "role", + "weight": 82, + "role": "link", + "name": "ReactJS on Stack Overflow", + "exact": false + }, + { + "strategy": "href", + "weight": 72, + "value": "https://stackoverflow.com/questions/tagged/reactjs" + }, + { + "strategy": "text", + "weight": 60, + "value": "ReactJS on Stack Overflow", + "exact": true + }, + { + "strategy": "css", + "weight": 35, + "selector": "body > aside > ul:nth-of-type(2) > li > a" + } + ] + }, + "fields": [] }, - "verdict": "EPHEMERAL", - "evidenceLevel": 1, - "reason": "The generated canary appeared after the action and disappeared after reload.", - "detectorMatches": [ - { - "code": "RD101", - "title": "Refresh disappearance", - "detail": "The generated canary appeared after the action and disappeared after reload." - }, - { - "code": "RD104", - "title": "Memory-only state", - "detail": "The result existed immediately after the action but not after reload." + "verdict": "SKIPPED", + "evidenceLevel": 0, + "reason": "Cross-origin navigation blocked by the default safety policy. Use --allow-external explicitly.", + "skippedReason": "Cross-origin navigation blocked by the default safety policy. Use --allow-external explicitly.", + "detectorMatches": [], + "evidence": { + "startedAt": "", + "durationMs": 0, + "canary": "", + "network": [], + "console": [], + "pageErrors": [], + "uiClaims": [], + "filledFields": [], + "dialogs": [], + "downloads": [], + "popupUrls": [], + "snapshotIndex": "snapshots/RD-011.index.json" + } + }, + { + "id": "RD-012", + "action": { + "id": "9d8b9b6cd1ac", + "pageUrl": "http://127.0.0.1:37281/examples/react/dist/", + "label": "let us know", + "activation": "click", + "kind": "navigation", + "intent": "navigate", + "risk": "safe", + "fingerprint": { + "selector": "body > aside > footer > em > a", + "tag": "a", + "ordinal": 9, + "role": "link", + "accessibleName": "let us know", + "text": "let us know", + "href": "https://github.com/tastejs/todomvc/issues", + "candidates": [ + { + "strategy": "role", + "weight": 92, + "role": "link", + "name": "let us know", + "exact": true + }, + { + "strategy": "role", + "weight": 82, + "role": "link", + "name": "let us know", + "exact": false + }, + { + "strategy": "href", + "weight": 72, + "value": "https://github.com/tastejs/todomvc/issues" + }, + { + "strategy": "text", + "weight": 60, + "value": "let us know", + "exact": true + }, + { + "strategy": "css", + "weight": 35, + "selector": "body > aside > footer > em > a" + } + ] }, - { - "code": "RD201", - "title": "Fake create", - "detail": "The created resource was not persistent." - } - ] + "fields": [] + }, + "verdict": "SKIPPED", + "evidenceLevel": 0, + "reason": "Cross-origin navigation blocked by the default safety policy. Use --allow-external explicitly.", + "skippedReason": "Cross-origin navigation blocked by the default safety policy. Use --allow-external explicitly.", + "detectorMatches": [], + "evidence": { + "startedAt": "", + "durationMs": 0, + "canary": "", + "network": [], + "console": [], + "pageErrors": [], + "uiClaims": [], + "filledFields": [], + "dialogs": [], + "downloads": [], + "popupUrls": [], + "snapshotIndex": "snapshots/RD-012.index.json" + } }, { - "id": "RD-002", + "id": "RD-013", "action": { - "id": "d4cf8b35943a", - "pageUrl": "http://127.0.0.1:37127/", + "id": "15c861c63aff", + "pageUrl": "http://127.0.0.1:37281/examples/react/dist/", "label": "TodoMVC", "activation": "click", "kind": "navigation", @@ -813,8 +3109,154 @@ "fingerprint": { "selector": "body > footer > p:nth-of-type(3) > a", "tag": "a", + "ordinal": 11, + "role": "link", + "accessibleName": "TodoMVC", + "text": "TodoMVC", + "href": "http://todomvc.com/", + "candidates": [ + { + "strategy": "role", + "weight": 92, + "role": "link", + "name": "TodoMVC", + "exact": true + }, + { + "strategy": "role", + "weight": 82, + "role": "link", + "name": "TodoMVC", + "exact": false + }, + { + "strategy": "href", + "weight": 72, + "value": "http://todomvc.com/" + }, + { + "strategy": "text", + "weight": 60, + "value": "TodoMVC", + "exact": true + }, + { + "strategy": "css", + "weight": 35, + "selector": "body > footer > p:nth-of-type(3) > a" + } + ] + }, + "fields": [] + }, + "verdict": "SKIPPED", + "evidenceLevel": 0, + "reason": "Cross-origin navigation blocked by the default safety policy. Use --allow-external explicitly.", + "skippedReason": "Cross-origin navigation blocked by the default safety policy. Use --allow-external explicitly.", + "detectorMatches": [], + "evidence": { + "startedAt": "", + "durationMs": 0, + "canary": "", + "network": [], + "console": [], + "pageErrors": [], + "uiClaims": [], + "filledFields": [], + "dialogs": [], + "downloads": [], + "popupUrls": [], + "snapshotIndex": "snapshots/RD-013.index.json" + } + }, + { + "id": "RD-014", + "action": { + "id": "292678b6efda", + "pageUrl": "http://127.0.0.1:37281/examples/typescript-react/#/", + "label": "Remo H. Jansen", + "activation": "click", + "kind": "navigation", + "intent": "navigate", + "risk": "safe", + "fingerprint": { + "selector": "body > footer > p:nth-of-type(2) > a", + "tag": "a", "ordinal": 1, "role": "link", + "accessibleName": "Remo H. Jansen", + "text": "Remo H. Jansen", + "href": "http://github.com/remojansen/", + "candidates": [ + { + "strategy": "role", + "weight": 92, + "role": "link", + "name": "Remo H. Jansen", + "exact": true + }, + { + "strategy": "role", + "weight": 82, + "role": "link", + "name": "Remo H. Jansen", + "exact": false + }, + { + "strategy": "href", + "weight": 72, + "value": "http://github.com/remojansen/" + }, + { + "strategy": "text", + "weight": 60, + "value": "Remo H. Jansen", + "exact": true + }, + { + "strategy": "css", + "weight": 35, + "selector": "body > footer > p:nth-of-type(2) > a" + } + ] + }, + "fields": [] + }, + "verdict": "SKIPPED", + "evidenceLevel": 0, + "reason": "Cross-origin navigation blocked by the default safety policy. Use --allow-external explicitly.", + "skippedReason": "Cross-origin navigation blocked by the default safety policy. Use --allow-external explicitly.", + "detectorMatches": [], + "evidence": { + "startedAt": "", + "durationMs": 0, + "canary": "", + "network": [], + "console": [], + "pageErrors": [], + "uiClaims": [], + "filledFields": [], + "dialogs": [], + "downloads": [], + "popupUrls": [], + "snapshotIndex": "snapshots/RD-014.index.json" + } + }, + { + "id": "RD-015", + "action": { + "id": "89af6cc813cd", + "pageUrl": "http://127.0.0.1:37281/examples/typescript-react/#/", + "label": "TodoMVC", + "activation": "click", + "kind": "navigation", + "intent": "navigate", + "risk": "safe", + "fingerprint": { + "selector": "body > footer > p:nth-of-type(3) > a", + "tag": "a", + "ordinal": 2, + "role": "link", "accessibleName": "TodoMVC", "text": "TodoMVC", "href": "http://todomvc.com/", @@ -870,38 +3312,66 @@ "dialogs": [], "downloads": [], "popupUrls": [], - "snapshotIndex": "snapshots/RD-002.index.json" + "snapshotIndex": "snapshots/RD-015.index.json" } } ], "environment": { "status": "VALID", - "checkedAt": "2026-07-23T14:53:10.582Z", - "durationMs": 1310, - "targetUrl": "http://127.0.0.1:37127/", + "checkedAt": "2026-07-26T08:13:07.778Z", + "durationMs": 1826, + "targetUrl": "http://127.0.0.1:37281/examples/react/dist/", "mainDocument": { "status": 200, "contentType": "text/html" }, "assets": { - "checked": 3, - "scripts": 2, - "stylesheets": 1, + "checked": 7, + "scripts": 4, + "stylesheets": 3, "failed": 0 }, "render": { - "bodyTextLength": 77, - "visibleElements": 9, - "interactiveElements": 2, + "bodyTextLength": 652, + "visibleElements": 42, + "interactiveElements": 12, "ready": true }, "findings": [], "acceptedRisk": false, - "routesChecked": 1, + "routesChecked": 2, "invalidRoutes": 0 }, "completeness": { "truncated": false, - "reasons": [] + "reasons": [], + "selection": { + "strategy": "coverage-balanced-v1", + "eligibleActions": 15, + "selectedActions": 15, + "omittedActions": 0, + "eligiblePages": 2, + "selectedPages": 2, + "eligibleKinds": [ + "mutation", + "navigation" + ], + "selectedKinds": [ + "mutation", + "navigation" + ], + "eligibleIntents": [ + "create", + "submit", + "navigate" + ], + "selectedIntents": [ + "create", + "submit", + "navigate" + ], + "deniedEligibleActions": 12, + "deniedSelectedActions": 12 + } } } diff --git a/release/evidence/todomvc.json b/release/evidence/todomvc.json index 321f79b..cf7e7c4 100644 --- a/release/evidence/todomvc.json +++ b/release/evidence/todomvc.json @@ -1,7 +1,7 @@ { "schemaVersion": "1.0", - "generatedAt": "2026-07-23T15:17:09.809Z", - "engineFingerprint": "68d4a8cb4b087d702df15d609d0ee0f7c92efaf731fdccd0d726b462a9878abe", + "generatedAt": "2026-07-26T08:45:00.000Z", + "engineFingerprint": "f3f65840e53777056fed4fc770853a522da85c46626f5bc910853515c266cc1a", "case": { "name": "TodoMVC React", "repository": "tastejs/todomvc", @@ -12,24 +12,24 @@ "capabilities": [] }, "scan": { - "scanId": "20260723T145310Z-e581", + "scanId": "20260726T081307Z-637b", "sourceArtifact": "release/evidence/raw/todomvc.scan.json", - "sourceSha256": "c03204920122c13b24fb005a728ffef14da4c06413b4d3ba2b9d05b84806c309", + "sourceSha256": "4b8468bb5683560e77e50560a5d5740d413fb3aee01999ac869a462f0bc04d7c", "environmentStatus": "VALID", "truncated": false, - "pagesDiscovered": 1, - "visibleActions": 2, - "actionsVerified": 1, - "actionsSkipped": 1, + "pagesDiscovered": 2, + "visibleActions": 15, + "actionsVerified": 3, + "actionsSkipped": 12, "verdicts": { - "VERIFIED": 0, + "VERIFIED": 1, "CONTRADICTORY": 0, "EPHEMERAL": 1, - "BROWSER_LOCAL": 0, + "BROWSER_LOCAL": 1, "BROKEN": 0, "NO_EFFECT": 0, "UNCERTAIN": 0, - "SKIPPED": 1 + "SKIPPED": 12 } }, "assertions": [ @@ -48,14 +48,20 @@ { "id": "enter-action-discovered", "passed": true, - "expected": "standalone Enter mutation executed", - "observed": "New Todo Input executed" + "expected": "standalone Enter mutations executed without project-specific selectors", + "observed": "New Todo Input and What needs to be done? both executed" }, { "id": "known-memory-only-behavior", "passed": true, "expected": "EPHEMERAL with RD101/RD104/RD201", - "observed": "EPHEMERAL with RD101/RD104/RD201" + "observed": "React input EPHEMERAL with RD101/RD104/RD201" + }, + { + "id": "browser-local-behavior", + "passed": true, + "expected": "TypeScript React todo survives reload but not clean context", + "observed": "BROWSER_LOCAL with RD102/RD103" }, { "id": "no-engine-regression", diff --git a/release/external-cases.json b/release/external-cases.json index 5eb6977..67c5544 100644 --- a/release/external-cases.json +++ b/release/external-cases.json @@ -4,8 +4,8 @@ "repository": "tastejs/todomvc", "pinnedCommit": "ff43b02e59dfa604386bb382034b2cd07c2bcd8a", "evidenceFile": "release/evidence/todomvc.json", - "evidenceSha256": "1a295738e66cd58d6231b21d5c9b36240c87315dfd33aa76b3b5593c1414ad44", - "engineFingerprint": "68d4a8cb4b087d702df15d609d0ee0f7c92efaf731fdccd0d726b462a9878abe", + "evidenceSha256": "ebdadb84473700f5247c082aca4a83305d48590dcb0b9220374b149918bc2099", + "engineFingerprint": "f3f65840e53777056fed4fc770853a522da85c46626f5bc910853515c266cc1a", "status": "passed", "environmentValid": true, "severeRegressions": 0, @@ -16,8 +16,8 @@ "repository": "actualbudget/actual", "pinnedCommit": "7325498af773d591a7bc70d5af16d3912f566654", "evidenceFile": "release/evidence/actual-budget.json", - "evidenceSha256": "bca6aa2e04ecbc2d9219fbdecf7c844a27ad83d23de8487045a153792f647ab7", - "engineFingerprint": "68d4a8cb4b087d702df15d609d0ee0f7c92efaf731fdccd0d726b462a9878abe", + "evidenceSha256": "5655faed4242af58c462cde095d4bd1cb69167a7630f9e4b91086b132e5c86af", + "engineFingerprint": "f3f65840e53777056fed4fc770853a522da85c46626f5bc910853515c266cc1a", "status": "passed", "environmentValid": true, "severeRegressions": 0, @@ -28,8 +28,8 @@ "repository": "TonyMckes/conduit-realworld-example-app", "pinnedCommit": "5e127d8569b300e0a21dc2c20ea680da4967b1aa", "evidenceFile": "release/evidence/conduit.json", - "evidenceSha256": "155edc64f8ed07ddd3ffd62d3389f0af38bed22151553dc1bd1d0e26b2287c88", - "engineFingerprint": "68d4a8cb4b087d702df15d609d0ee0f7c92efaf731fdccd0d726b462a9878abe", + "evidenceSha256": "08c747a315a32e7352c135e535e6702141c844c0038e932ad0a260502798bf71", + "engineFingerprint": "f3f65840e53777056fed4fc770853a522da85c46626f5bc910853515c266cc1a", "status": "passed", "environmentValid": true, "severeRegressions": 0, @@ -42,8 +42,8 @@ "repository": "TonyMckes/conduit-realworld-example-app", "pinnedCommit": "5e127d8569b300e0a21dc2c20ea680da4967b1aa", "evidenceFile": "release/evidence/conduit-sources.json", - "evidenceSha256": "405e0c6db6d881709fa5c5367cadcb8b520e8ed0bcf665cb9965ed77c4ae025e", - "engineFingerprint": "68d4a8cb4b087d702df15d609d0ee0f7c92efaf731fdccd0d726b462a9878abe", + "evidenceSha256": "d156cd87735e226fa65ee052c7be900ccb30e163cad46656a9bf25dfde48168e", + "engineFingerprint": "f3f65840e53777056fed4fc770853a522da85c46626f5bc910853515c266cc1a", "status": "passed", "environmentValid": true, "severeRegressions": 0, @@ -59,8 +59,8 @@ "repository": "local/Pocket-Ledger", "pinnedCommit": "fab4847595ec9edff4442fd93d622d5f8ca7d519", "evidenceFile": "release/evidence/ai-agent-cycle.json", - "evidenceSha256": "da39036219c8b097f99537c3f30e03fc501c8eb433d066507d9fffce3e43ca7a", - "engineFingerprint": "68d4a8cb4b087d702df15d609d0ee0f7c92efaf731fdccd0d726b462a9878abe", + "evidenceSha256": "205881e58c7772a542b3ddf63f51da22a732338060e280451c76693f79041c16", + "engineFingerprint": "f3f65840e53777056fed4fc770853a522da85c46626f5bc910853515c266cc1a", "status": "passed", "environmentValid": true, "severeRegressions": 0,