From 2443696f840b962a16d8123f6df3c972886b6eed Mon Sep 17 00:00:00 2001
From: datzle123
Date: Sun, 26 Jul 2026 19:41:00 +0700
Subject: [PATCH 1/3] Protect private browser visual artifacts
---
SECURITY.md | 2 +-
docs/PRODUCT_SPECIFICATION.md | 7 +++-
docs/THREAT_MODEL.md | 5 ++-
src/browser/executor.ts | 76 +++++++++++++++++++++++++++++------
src/contracts/report.ts | 1 +
src/contracts/schema.ts | 9 ++++-
src/contracts/verifier.ts | 70 ++++++++++++++++++++++++++++----
src/index.ts | 1 +
src/release/artifacts.ts | 5 +++
src/report/html.ts | 6 +++
src/types.ts | 3 +-
test/smoke.mjs | 28 ++++++++++++-
12 files changed, 184 insertions(+), 29 deletions(-)
diff --git a/SECURITY.md b/SECURITY.md
index 0b0a5d5..18d7fa7 100644
--- a/SECURITY.md
+++ b/SECURITY.md
@@ -16,7 +16,7 @@ RealDone drives a real browser. The default policy limits mutations to local/tes
Recorded password-like inputs are replaced by environment-variable references and rrweb runs with all input masking enabled. Playwright auth-state files contain sensitive cookies and may grant account access; keep them under the ignored `.realdone/` directory, never commit them, and rotate staging credentials after suspected exposure.
-Playwright traces and browser videos can contain visible application content, URLs, and interaction state that generic secret redaction cannot remove. They are opt-in, remain in the ignored local report tree, and must be reviewed before sharing or attaching to a public issue.
+Playwright traces and browser videos can contain visible application content, URLs, and interaction state that generic secret redaction cannot remove. Retained traces pass bounded secret inspection, while known-sensitive and auth-state contexts disable standalone/trace screenshots and video before capture. Remaining visual artifacts are opt-in, stay in the ignored local report tree, and must be reviewed before sharing or attaching to a public issue.
PostgreSQL credentials and CA material must be provided through the environment names referenced by the adapter config. Prefer a dedicated least-privilege read-only role. Source verification also opens a read-only transaction. Database cleanup is a separate opt-in path requiring CLI confirmation, config permission, exact allowlisted key fields, and a maximum-row rollback guard; use it only against disposable local or staging data.
diff --git a/docs/PRODUCT_SPECIFICATION.md b/docs/PRODUCT_SPECIFICATION.md
index 6497511..a56aab1 100644
--- a/docs/PRODUCT_SPECIFICATION.md
+++ b/docs/PRODUCT_SPECIFICATION.md
@@ -660,6 +660,8 @@ Baseline
Mỗi Playwright trace chỉ được liên kết vào evidence sau khi ZIP vừa tạo đã qua kiểm tra secret có giới hạn. Phép kiểm tra phải gồm cả sensitive field được điền, `secretEnv`, opaque cookie/token trong Playwright `storageState` đã được cấp, và các pattern credential tổng quát. Nếu phát hiện secret, ZIP không đọc được, hoặc vượt giới hạn kiểm tra, RealDone phải xóa trace theo hướng fail-closed, không công bố đường dẫn đã bị loại, và chỉ ghi metadata lý do không chứa giá trị hay fingerprint của secret. Quy tắc này áp dụng giống nhau cho scan tự động, contract verification, browser matrix, CI và MCP.
+PNG screenshot và WebM video là binary artifact nên text secret scanner không thể chứng minh nội dung render bên trong là an toàn. Khi automatic action có field nhạy cảm đã biết, hoặc browser context dùng `storageState`/auth state, RealDone không được tạo standalone screenshot, trace-embedded screenshot hay video cho context đó. Contract context có `secretEnv` hoặc auth state cũng phải chặn trace screenshot và video trước khi recording bắt đầu. Report chỉ được ghi additive suppression metadata gồm loại artifact và lý do hữu hạn, không chứa giá trị, fingerprint, selector hay đường dẫn artifact đã bị chặn. Automatic scan và contract không nhạy cảm phải giữ screenshot/video control để tránh biến privacy gate thành việc vô hiệu hóa toàn bộ visual evidence.
+
---
# 13. State Snapshot Engine
@@ -1112,6 +1114,7 @@ Report phải phân biệt:
* regression;
* expected change.
* trace đã bị loại bởi kiểm tra secret, tách biệt với việc không bật trace hoặc xóa passing trace theo `--trace-on-failure`.
+* screenshot/video đã bị chặn bởi visual-privacy policy, tách biệt với việc người dùng không bật video hoặc action không cần screenshot.
---
@@ -1218,6 +1221,8 @@ Cleanup ledger phải ghi mọi resource được tạo.
Trace là artifact nhạy cảm: redaction trong JSON/DOM không đủ để chứng minh ZIP Playwright an toàn. Mọi trace được giữ lại phải qua kiểm tra bounded ngay sau khi đóng trace; trace không kiểm tra được hoặc có secret phải bị xóa trước khi report được ghi.
+Screenshot/video cũng là artifact nhạy cảm nhưng không có text-inspection gate đáng tin cậy. RealDone phải fail closed trước capture đối với known-sensitive input, `secretEnv` và authenticated context; không được tạo binary rồi chỉ dựa vào aggregate scanner vốn bỏ qua định dạng binary.
+
---
# 26. Benchmark System
@@ -1359,7 +1364,7 @@ Một release chỉ được phát hành khi:
11. Environment health gate pass.
12. Cross-platform smoke pass.
13. Report schema backward-compatible.
-14. Không có secret trong artifact; trace bị phát hiện không an toàn hoặc không kiểm tra được phải bị xóa và không được liên kết trong report.
+14. Không có secret trong artifact; trace bị phát hiện không an toàn hoặc không kiểm tra được phải bị xóa và không được liên kết trong report; screenshot/video của known-sensitive hoặc authenticated context phải bị chặn trước capture và chỉ để lại value-free suppression metadata.
15. Case study bên ngoài không regression nghiêm trọng.
Không được release chỉ vì:
diff --git a/docs/THREAT_MODEL.md b/docs/THREAT_MODEL.md
index 2e3f3e3..9250ee3 100644
--- a/docs/THREAT_MODEL.md
+++ b/docs/THREAT_MODEL.md
@@ -20,7 +20,7 @@ RealDone executes browsers, test actions, database reads, optional cleanup, prov
| Database cleanup | Destructive by design | CLI and database confirmation, adapter opt-in, exact primary keys, maximum-row guards, dedicated write path |
| Coding agent/build | Can edit and execute repository code | clean-worktree gate, shell-free spawn, time/output bounds, sealed baseline, contract hashes, independent verification |
| Plugin/provider | Trusted executable code or remote credential | read-only maintained adapters; explicit plugin manifest/permissions; relative entry; schema validation; one-call worker; timeout/memory limits; output redaction |
-| Reports/logs | May contain application content | known/environment-secret redaction, per-trace bounded ZIP inspection with fail-closed deletion, ignored local output tree, no credential values by design |
+| Reports/logs | May contain application content | known/environment-secret redaction, per-trace bounded ZIP inspection with fail-closed deletion, pre-capture screenshot/video suppression for sensitive/authenticated contexts, ignored local output tree, no credential values by design |
## Evidence-integrity threats
@@ -31,13 +31,14 @@ RealDone executes browsers, test actions, database reads, optional cleanup, prov
- **UI false success:** browser/network/refresh/source/provider/cross-role evidence remains separate from UI claims.
- **Release summary detached from its run:** external-case evidence is accepted only when its repository-confined raw `scan.json` exists, matches the recorded SHA-256, and agrees exactly with the published scan counters and verdict map.
- **Browser trace retains a credential:** every newly closed trace is inspected before linkage against generic secret forms and the exact sensitive values known to that scan/contract, including opaque cookies/tokens read from the granted Playwright storage state; unsafe, invalid, oversized, or over-expanded ZIPs are deleted and only value-free suppression metadata remains.
+- **Screenshot/video renders private content:** binary visual artifacts cannot be proven safe by the text gate, so contexts with known-sensitive input, `secretEnv` or auth state do not start standalone/trace screenshot or video capture; reports retain only bounded value-free suppression metadata.
## Residual risks
- Worker threads are resource/fault isolation, not OS sandboxes. The worker process environment is reduced to declared/referenced names and global `fetch` is host-allowlisted, but malicious plugin code can still read files (including credential files) or use other Node network APIs.
- A coding agent or build command can execute code with its configured process authority. Use a disposable branch/worktree and external sandbox when the repository is untrusted.
- Opaque JavaScript/server handlers without observable form, URL, endpoint, provider, or DOM semantics cannot be classified precisely before execution. CLI/MCP therefore require project-level consent that explicitly warns about hidden provider effects; use a recorded flow or project-specific deny/set policy for narrower authority.
-- Redaction and trace inspection cannot recognize every domain-specific secret or private data format. Treat local reports and logs as sensitive even when the automatic gate passes.
+- Redaction, trace inspection and visual pre-capture classification cannot recognize every domain-specific secret or private data format. Treat local reports and logs as sensitive even when the automatic gate passes.
- Cross-role checks demonstrate one configured observation, not exhaustive authorization or tenant isolation.
- Provider adapters demonstrate what the provider API or trusted custom plugin observed, not real-world delivery beyond that provider's boundary.
diff --git a/src/browser/executor.ts b/src/browser/executor.ts
index 4e549eb..351cfdd 100644
--- a/src/browser/executor.ts
+++ b/src/browser/executor.ts
@@ -6,7 +6,12 @@ import { classifyAction } from "../core/classify.js";
import { hashText, isSensitiveKey, safeUrl } from "../core/redact.js";
import { isTransientBrowserError, withRetry } from "../core/retry.js";
import { actionSkipReason, isSafetyEscalation } from "../core/safety.js";
-import { retainSecretSafeTrace, storageStateArtifactSecrets, type ArtifactSecret } from "../release/artifacts.js";
+import {
+ retainSecretSafeTrace,
+ storageStateArtifactSecrets,
+ type ArtifactSecret,
+ type VisualArtifactSuppression,
+} from "../release/artifacts.js";
import type { ActionSpec, ExecutionEvidence, FilledField, ScanOptions, UploadEvidence } from "../types.js";
import { attachEvidence, captureState, collectUiClaims } from "./evidence.js";
import { resolveSemanticLocator, SemanticTargetNotFoundError } from "./locator.js";
@@ -225,6 +230,29 @@ function screenshotName(action: ActionSpec, suffix: string): string {
return `${action.id}-${suffix}.png`;
}
+function visualPrivacyReason(
+ action: ActionSpec,
+ storageStatePath?: string,
+): VisualArtifactSuppression["reason"] | undefined {
+ if (storageStatePath) return "authenticated-context";
+ const sensitiveInput = action.fields.some((field) => {
+ const hint = `${field.name ?? ""} ${field.label ?? ""} ${field.placeholder ?? ""}`;
+ return field.type.toLowerCase() === "password" || isSensitiveKey(hint);
+ });
+ return sensitiveInput ? "sensitive-input" : undefined;
+}
+
+function suppressVisualArtifact(
+ evidence: ExecutionEvidence,
+ artifact: VisualArtifactSuppression["artifact"],
+ reason: VisualArtifactSuppression["reason"],
+): void {
+ evidence.visualSuppressions ??= [];
+ if (!evidence.visualSuppressions.some((suppression) => suppression.artifact === artifact && suppression.reason === reason)) {
+ evidence.visualSuppressions.push({ artifact, reason });
+ }
+}
+
function readBackUrl(evidence: ExecutionEvidence): string | undefined {
const write = evidence.network.find((request) =>
["POST", "PUT", "PATCH"].includes(request.method) && request.ok &&
@@ -315,10 +343,18 @@ export async function executeAction(
const reportDirectory = path.dirname(screenshotDirectory);
const traceDirectory = path.join(reportDirectory, "traces");
const videoDirectory = path.join(reportDirectory, "videos");
+ const visualSuppressionReason = visualPrivacyReason(action, options.storageStatePath);
+ const recordVideo = Boolean(options.video && !visualSuppressionReason);
+ if (options.video && visualSuppressionReason) {
+ suppressVisualArtifact(evidence, "video", visualSuppressionReason);
+ }
+ if ((options.trace || options.traceOnFailure) && visualSuppressionReason) {
+ suppressVisualArtifact(evidence, "screenshot", visualSuppressionReason);
+ }
await Promise.all([
mkdir(screenshotDirectory, { recursive: true }),
...(options.trace || options.traceOnFailure ? [mkdir(traceDirectory, { recursive: true })] : []),
- ...(options.video ? [mkdir(videoDirectory, { recursive: true })] : []),
+ ...(recordVideo ? [mkdir(videoDirectory, { recursive: true })] : []),
]);
const traceSecrets = options.storageStatePath
? await storageStateArtifactSecrets(options.storageStatePath)
@@ -326,7 +362,7 @@ export async function executeAction(
const context = await browser.newContext(
{
...(options.storageStatePath ? { storageState: options.storageStatePath } : {}),
- ...(options.video ? { recordVideo: { dir: videoDirectory } } : {}),
+ ...(recordVideo ? { recordVideo: { dir: videoDirectory } } : {}),
},
);
await context.grantPermissions(["clipboard-write"], { origin: new URL(options.targetUrl).origin }).catch(() => undefined);
@@ -355,7 +391,9 @@ export async function executeAction(
}
const page = await context.newPage();
const video = page.video();
- if (options.trace || options.traceOnFailure) await context.tracing.start({ screenshots: true, snapshots: true, sources: false });
+ if (options.trace || options.traceOnFailure) {
+ await context.tracing.start({ screenshots: !visualSuppressionReason, snapshots: true, sources: false });
+ }
let attached: ReturnType | undefined;
try {
@@ -471,9 +509,13 @@ export async function executeAction(
const actionBaseline = evidence.beforeAction ?? evidence.before;
const noVisibleChange = actionBaseline.domHash === evidence.after.domHash && actionBaseline.url === evidence.after.url;
if (action.kind === "mutation" || hasWrite || hasFailure || noVisibleChange || evidence.pageErrors.length > 0) {
- const screenshotPath = path.join(screenshotDirectory, screenshotName(action, "after"));
- await page.screenshot({ path: screenshotPath, fullPage: true });
- evidence.screenshot = screenshotPath;
+ if (visualSuppressionReason) {
+ suppressVisualArtifact(evidence, "screenshot", visualSuppressionReason);
+ } else {
+ const screenshotPath = path.join(screenshotDirectory, screenshotName(action, "after"));
+ await page.screenshot({ path: screenshotPath, fullPage: true });
+ evidence.screenshot = screenshotPath;
+ }
}
if (action.kind === "mutation") {
@@ -485,9 +527,13 @@ export async function executeAction(
evidence.afterRefresh = await captureState(refreshedScope, canary, startedAt);
const targetVisibleAfterRefresh = await targetIsVisible(refreshedScope, evidence.targetText);
if (targetVisibleAfterRefresh !== undefined) evidence.targetVisibleAfterRefresh = targetVisibleAfterRefresh;
- const refreshPath = path.join(screenshotDirectory, screenshotName(action, "refresh"));
- await page.screenshot({ path: refreshPath, fullPage: true });
- evidence.refreshScreenshot = refreshPath;
+ if (visualSuppressionReason) {
+ suppressVisualArtifact(evidence, "screenshot", visualSuppressionReason);
+ } else {
+ const refreshPath = path.join(screenshotDirectory, screenshotName(action, "refresh"));
+ await page.screenshot({ path: refreshPath, fullPage: true });
+ evidence.refreshScreenshot = refreshPath;
+ }
await context.setExtraHTTPHeaders({ "cache-control": "no-cache", pragma: "no-cache" });
await page.reload({ waitUntil: "domcontentloaded", timeout: options.timeoutMs });
@@ -543,9 +589,13 @@ export async function executeAction(
evidence.locatorResolution = error.diagnostics;
}
evidence.executionError = error instanceof Error ? error.message : String(error);
- const screenshotPath = path.join(screenshotDirectory, screenshotName(action, "error"));
- await page.screenshot({ path: screenshotPath, fullPage: true }).catch(() => undefined);
- evidence.screenshot = screenshotPath;
+ if (visualSuppressionReason) {
+ suppressVisualArtifact(evidence, "screenshot", visualSuppressionReason);
+ } else {
+ const screenshotPath = path.join(screenshotDirectory, screenshotName(action, "error"));
+ const saved = await page.screenshot({ path: screenshotPath, fullPage: true }).then(() => true).catch(() => false);
+ if (saved) evidence.screenshot = screenshotPath;
+ }
} finally {
await attached?.flush();
attached?.detach();
diff --git a/src/contracts/report.ts b/src/contracts/report.ts
index 5737a78..9f58263 100644
--- a/src/contracts/report.ts
+++ b/src/contracts/report.ts
@@ -27,6 +27,7 @@ export function renderContractVerification(result: ContractVerification): string
...result.artifacts.traces.map((file) => `Trace`),
...result.artifacts.videos.map((file) => `Video`),
...(result.artifacts.traceSuppressions ?? []).map((suppression) => `Trace suppressed by secret-safety inspection (${escapeHtml(suppression.reason)}; ${escapeHtml(suppression.findingKinds.join(", "))})`),
+ ...(result.artifacts.visualSuppressions ?? []).map((suppression) => `${suppression.artifact === "screenshot" ? "Screenshot" : "Video"} suppressed by visual-privacy policy (${escapeHtml(suppression.reason)})`),
].join(" · ")}
`
: "";
return `RealDone verify · ${escapeHtml(result.contractName)}REALDONE / RECORDED VERIFICATION
${escapeHtml(result.contractName)}
${result.passed ? "PASSED" : "FAILED"}${escapeHtml(result.verificationId)} · ${escapeHtml(result.browser)} · ${result.deep ? "deep fresh-context" : "standard"} · roles ${escapeHtml(result.roles.join(", "))} · ${result.steps.length} steps
${performance}${artifacts}${rows}`;
diff --git a/src/contracts/schema.ts b/src/contracts/schema.ts
index e669574..6348df6 100644
--- a/src/contracts/schema.ts
+++ b/src/contracts/schema.ts
@@ -4,7 +4,7 @@ import type { SourceCleanupTarget, SourceEvidence, SourceExpectation } from "../
import type { BrowserName } from "../browser/runtime.js";
import type { ProviderEvidence, ProviderExpectation } from "../providers/types.js";
import type { PerformanceEvaluation } from "../performance/budget.js";
-import type { TraceSuppression } from "../release/artifacts.js";
+import type { TraceSuppression, VisualArtifactSuppression } from "../release/artifacts.js";
import type { EvidenceLevel, LocatorResolution, PersistenceScope, SemanticFingerprint } from "../types.js";
export type ContractStepType = "navigate" | "click" | "fill" | "check" | "select" | "press" | "upload" | "richtext" | "drag";
@@ -120,7 +120,12 @@ export interface ContractVerification {
finishedAt: string;
passed: boolean;
performance?: PerformanceEvaluation;
- artifacts?: { traces: string[]; videos: string[]; traceSuppressions?: TraceSuppression[] };
+ artifacts?: {
+ traces: string[];
+ videos: string[];
+ traceSuppressions?: TraceSuppression[];
+ visualSuppressions?: VisualArtifactSuppression[];
+ };
steps: StepVerification[];
}
diff --git a/src/contracts/verifier.ts b/src/contracts/verifier.ts
index a94d3ac..13309e9 100644
--- a/src/contracts/verifier.ts
+++ b/src/contracts/verifier.ts
@@ -16,7 +16,13 @@ import { PluginHost } from "../plugins/host.js";
import { BuiltinProviderHost } from "../providers/builtin.js";
import { evaluatePerformance, loadPerformanceBudget } from "../performance/budget.js";
import { actionSkipReason } from "../core/safety.js";
-import { retainSecretSafeTrace, storageStateArtifactSecrets, type ArtifactSecret, type TraceSuppression } from "../release/artifacts.js";
+import {
+ retainSecretSafeTrace,
+ storageStateArtifactSecrets,
+ type ArtifactSecret,
+ type TraceSuppression,
+ type VisualArtifactSuppression,
+} from "../release/artifacts.js";
import type { NetworkEvidence } from "../types.js";
import { loadBehaviorContract, type BehaviorStep, type ContractExpectation, type ContractVerification, type StepVerification } from "./schema.js";
import { renderContractVerification } from "./report.js";
@@ -435,7 +441,12 @@ async function verifyExpectation(
interface RolePages {
page(role?: string): Promise;
freshPage(role?: string): Promise;
- close(): Promise<{ traces: string[]; videos: string[]; traceSuppressions: TraceSuppression[] }>;
+ close(): Promise<{
+ traces: string[];
+ videos: string[];
+ traceSuppressions: TraceSuppression[];
+ visualSuppressions: VisualArtifactSuppression[];
+ }>;
}
function createRolePages(
@@ -451,6 +462,7 @@ function createRolePages(
name: string;
video: Video | null;
traceSecrets: ArtifactSecret[];
+ visualSuppressions: VisualArtifactSuppression[];
}
const opened = new Map();
const contexts: ContextEntry[] = [];
@@ -477,14 +489,37 @@ function createRolePages(
if (role !== "default" && !contract.roles?.[role]) throw new Error(`Unknown behavior role: ${role}`);
const storageState = storageFor(role);
const storageStateSecrets = storageState ? await storageStateArtifactSecrets(storageState) : [];
+ const sensitiveInput = contract.steps.some((step) => Boolean(step.secretEnv) && (step.role ?? "default") === role);
+ const visualReason: VisualArtifactSuppression["reason"] | undefined = storageState
+ ? "authenticated-context"
+ : sensitiveInput
+ ? "sensitive-input"
+ : undefined;
+ const recordVideo = Boolean(options.video && !visualReason);
const context = await browser.newContext({
...(storageState ? { storageState } : {}),
- ...(options.video ? { recordVideo: { dir: path.join(outputDirectory, "videos") } } : {}),
+ ...(recordVideo ? { recordVideo: { dir: path.join(outputDirectory, "videos") } } : {}),
});
const page = await context.newPage();
const name = fresh ? `${role}-fresh-${++freshSequence}` : role;
- if (options.trace || options.traceOnFailure) await context.tracing.start({ screenshots: true, snapshots: true, sources: false });
- const entry = { context, page, name, video: page.video(), traceSecrets: [...contractTraceSecrets, ...storageStateSecrets] };
+ if (options.trace || options.traceOnFailure) {
+ await context.tracing.start({ screenshots: !visualReason, snapshots: true, sources: false });
+ }
+ const entry = {
+ context,
+ page,
+ name,
+ video: page.video(),
+ traceSecrets: [...contractTraceSecrets, ...storageStateSecrets],
+ visualSuppressions: visualReason
+ ? [
+ ...(options.trace || options.traceOnFailure
+ ? [{ artifact: "screenshot" as const, reason: visualReason }]
+ : []),
+ ...(options.video ? [{ artifact: "video" as const, reason: visualReason }] : []),
+ ]
+ : [],
+ };
contexts.push(entry);
return entry;
};
@@ -504,6 +539,7 @@ function createRolePages(
const traces: string[] = [];
const videos: string[] = [];
const traceSuppressions: TraceSuppression[] = [];
+ const visualSuppressions: VisualArtifactSuppression[] = [];
let traceRetentionError: unknown;
for (const entry of contexts) {
if (options.trace || options.traceOnFailure) {
@@ -524,11 +560,19 @@ function createRolePages(
const videoPath = await entry.video.path().catch(() => undefined);
if (videoPath) videos.push(portable(videoPath));
}
+ for (const visualSuppression of entry.visualSuppressions) {
+ if (!visualSuppressions.some((suppression) =>
+ suppression.artifact === visualSuppression.artifact
+ && suppression.reason === visualSuppression.reason
+ )) {
+ visualSuppressions.push(visualSuppression);
+ }
+ }
}
opened.clear();
contexts.length = 0;
if (traceRetentionError) throw traceRetentionError;
- return { traces, videos, traceSuppressions };
+ return { traces, videos, traceSuppressions, visualSuppressions };
},
};
}
@@ -585,7 +629,12 @@ export async function verifyContract(
const rolePages = createRolePages(browser, absoluteContract, contract, options, outputDirectory);
const startedAt = new Date();
const results: StepVerification[] = [];
- let artifacts: { traces: string[]; videos: string[]; traceSuppressions: TraceSuppression[] } = { traces: [], videos: [], traceSuppressions: [] };
+ let artifacts: {
+ traces: string[];
+ videos: string[];
+ traceSuppressions: TraceSuppression[];
+ visualSuppressions: VisualArtifactSuppression[];
+ } = { traces: [], videos: [], traceSuppressions: [], visualSuppressions: [] };
let blocked = false;
try {
for (const step of contract.steps) {
@@ -722,7 +771,12 @@ export async function verifyContract(
artifacts.traces = [];
}
if (performance) verification.performance = performance;
- if (artifacts.traces.length > 0 || artifacts.videos.length > 0 || artifacts.traceSuppressions.length > 0) verification.artifacts = artifacts;
+ if (
+ artifacts.traces.length > 0
+ || artifacts.videos.length > 0
+ || artifacts.traceSuppressions.length > 0
+ || artifacts.visualSuppressions.length > 0
+ ) verification.artifacts = artifacts;
await Promise.all([
writeFile(path.join(outputDirectory, "verification.json"), `${JSON.stringify(verification, null, 2)}\n`),
writeFile(path.join(outputDirectory, "report.html"), renderContractVerification(verification)),
diff --git a/src/index.ts b/src/index.ts
index f2180bc..94b4289 100644
--- a/src/index.ts
+++ b/src/index.ts
@@ -145,6 +145,7 @@ export {
type ArtifactSecretScanOptions,
type SecretSafeTraceRetention,
type TraceSuppression,
+ type VisualArtifactSuppression,
} from "./release/artifacts.js";
export {
checkArtifactSchemaCompatibility,
diff --git a/src/release/artifacts.ts b/src/release/artifacts.ts
index 614106b..2630739 100644
--- a/src/release/artifacts.ts
+++ b/src/release/artifacts.ts
@@ -49,6 +49,11 @@ export interface TraceSuppression {
findingKinds: ArtifactSecretFindingKind[];
}
+export interface VisualArtifactSuppression {
+ artifact: "screenshot" | "video";
+ reason: "sensitive-input" | "authenticated-context";
+}
+
export type SecretSafeTraceRetention =
| { retained: true }
| { retained: false; suppression: TraceSuppression };
diff --git a/src/report/html.ts b/src/report/html.ts
index 17b71cc..1bf3fc0 100644
--- a/src/report/html.ts
+++ b/src/report/html.ts
@@ -63,6 +63,12 @@ function findingTimeline(finding: Finding): string {
text: `Trace suppressed by secret-safety inspection (${evidence.traceSuppression.reason}; ${evidence.traceSuppression.findingKinds.join(", ")}).`,
});
}
+ for (const suppression of evidence.visualSuppressions ?? []) {
+ items.push({
+ at: evidence.durationMs,
+ text: `${suppression.artifact === "screenshot" ? "Screenshot" : "Video"} suppressed by visual-privacy policy (${suppression.reason}).`,
+ });
+ }
for (const interaction of evidence.preparedInteractions ?? []) items.push({ at: 0, text: `Prepared interaction: ${interaction}` });
return items
.sort((a, b) => a.at - b.at)
diff --git a/src/types.ts b/src/types.ts
index e498984..fd6ad55 100644
--- a/src/types.ts
+++ b/src/types.ts
@@ -1,4 +1,4 @@
-import type { TraceSuppression } from "./release/artifacts.js";
+import type { TraceSuppression, VisualArtifactSuppression } from "./release/artifacts.js";
export type ActionKind = "navigation" | "local" | "mutation" | "external";
export type ActionIntent =
@@ -400,6 +400,7 @@ export interface ExecutionEvidence {
refreshScreenshot?: string;
trace?: string;
traceSuppression?: TraceSuppression;
+ visualSuppressions?: VisualArtifactSuppression[];
video?: string;
snapshotIndex?: string;
executionError?: string;
diff --git a/test/smoke.mjs b/test/smoke.mjs
index 3bc44c5..d3b93b5 100644
--- a/test/smoke.mjs
+++ b/test/smoke.mjs
@@ -452,8 +452,10 @@ try {
assert.equal(cliSummary.verdicts.BROWSER_LOCAL, 1);
const cliReportNames = await readdir(path.join(outputRoot, "cli-scan"), { withFileTypes: true });
const cliReportDirectory = path.join(outputRoot, "cli-scan", cliReportNames.find((entry) => entry.isDirectory()).name);
+ const cliReport = JSON.parse(await readFile(path.join(cliReportDirectory, "scan.json"), "utf8"));
assert.ok((await readdir(path.join(cliReportDirectory, "traces"))).length > 0);
assert.ok((await readdir(path.join(cliReportDirectory, "videos"))).length > 0);
+ assert.ok(cliReport.findings.some((finding) => finding.evidence.screenshot));
const failureTrace = await runScan({
...scan,
targetUrl: `${fixture.url}/fake-create`,
@@ -488,14 +490,23 @@ try {
deep: false,
trace: true,
traceOnFailure: false,
+ video: true,
});
const secretTraceFinding = secretTrace.report.findings.find((finding) => finding.action.label.includes("Login"));
assert.equal(secretTraceFinding?.verdict, "CONTRADICTORY");
assert.equal(secretTraceFinding?.evidence.trace, undefined);
assert.equal(secretTraceFinding?.evidence.traceSuppression?.reason, "secret-detected");
assert.ok(secretTraceFinding?.evidence.traceSuppression?.findingKinds.includes("exact-secret"));
+ assert.equal(secretTraceFinding?.evidence.screenshot, undefined);
+ assert.equal(secretTraceFinding?.evidence.refreshScreenshot, undefined);
+ assert.equal(secretTraceFinding?.evidence.video, undefined);
+ assert.ok(secretTraceFinding?.evidence.visualSuppressions?.some((item) => item.artifact === "screenshot" && item.reason === "sensitive-input"));
+ assert.ok(secretTraceFinding?.evidence.visualSuppressions?.some((item) => item.artifact === "video" && item.reason === "sensitive-input"));
assert.equal((await readdir(path.join(secretTrace.reportDirectory, "traces"))).length, 0);
+ assert.equal((await readdir(path.join(secretTrace.reportDirectory, "screenshots"))).length, 0);
+ assert.equal((await readdir(path.join(secretTrace.reportDirectory, "videos"))).length, 0);
assert.match(await readFile(path.join(secretTrace.reportDirectory, "report.html"), "utf8"), /Trace suppressed by secret-safety inspection/);
+ assert.match(await readFile(path.join(secretTrace.reportDirectory, "report.html"), "utf8"), /visual-privacy policy/);
const selectorFinding = result.report.findings.find((finding) => finding.action.label.includes("Toggle resilient"));
assert.equal(selectorFinding?.evidence.locatorResolution?.chosenStrategy, "role");
const cleanupDryRun = await runCleanup(result.reportDirectory, { confirm: false, allowHosts: [], retries: 1 });
@@ -549,10 +560,14 @@ try {
deep: false,
trace: true,
traceOnFailure: false,
+ video: true,
});
assert.equal(authenticatedTraceScan.report.findings[0]?.evidence.trace, undefined);
assert.equal(authenticatedTraceScan.report.findings[0]?.evidence.traceSuppression?.reason, "secret-detected");
assert.ok(authenticatedTraceScan.report.findings[0]?.evidence.traceSuppression?.findingKinds.includes("exact-secret"));
+ assert.equal(authenticatedTraceScan.report.findings[0]?.evidence.video, undefined);
+ assert.ok(authenticatedTraceScan.report.findings[0]?.evidence.visualSuppressions?.some((item) => item.artifact === "screenshot" && item.reason === "authenticated-context"));
+ assert.ok(authenticatedTraceScan.report.findings[0]?.evidence.visualSuppressions?.some((item) => item.artifact === "video" && item.reason === "authenticated-context"));
const recorderSecret = "RD-RECORDER-SECRET-42";
const secretRecording = await recordFlow(
{
@@ -592,6 +607,7 @@ try {
allowExternal: false,
allowHosts: [],
trace: true,
+ video: true,
...(process.env.REALDONE_BROWSER_PATH ? { executablePath: process.env.REALDONE_BROWSER_PATH } : {}),
});
} finally {
@@ -602,8 +618,13 @@ try {
assert.equal(secretTraceVerification.verification.artifacts?.traces.length ?? 0, 0);
assert.ok((secretTraceVerification.verification.artifacts?.traceSuppressions?.length ?? 0) > 0);
assert.ok(secretTraceVerification.verification.artifacts.traceSuppressions.some((item) => item.reason === "secret-detected"));
+ assert.equal(secretTraceVerification.verification.artifacts?.videos.length ?? 0, 0);
+ assert.ok(secretTraceVerification.verification.artifacts?.visualSuppressions?.some((item) => item.artifact === "screenshot" && item.reason === "sensitive-input"));
+ assert.ok(secretTraceVerification.verification.artifacts?.visualSuppressions?.some((item) => item.artifact === "video" && item.reason === "sensitive-input"));
assert.equal((await readdir(path.join(secretTraceVerification.outputDirectory, "traces"))).length, 0);
+ assert.equal((await readdir(path.join(secretTraceVerification.outputDirectory, "videos"))).length, 0);
assert.match(await readFile(path.join(secretTraceVerification.outputDirectory, "report.html"), "utf8"), /Trace suppressed by secret-safety inspection/);
+ assert.match(await readFile(path.join(secretTraceVerification.outputDirectory, "report.html"), "utf8"), /visual-privacy policy/);
const cspRecording = await recordFlow(
{
targetUrl: `${fixture.url}/recorder-csp`,
@@ -665,11 +686,14 @@ try {
allowExternal: true,
allowHosts: [],
trace: true,
+ video: true,
...(process.env.REALDONE_BROWSER_PATH ? { executablePath: process.env.REALDONE_BROWSER_PATH } : {}),
});
delete process.env.REALDONE_UPLOAD_RECEIPT_FILE;
assert.equal(complexVerification.verification.passed, true);
assert.ok((complexVerification.verification.artifacts?.traces.length ?? 0) > 0);
+ assert.ok((complexVerification.verification.artifacts?.videos.length ?? 0) > 0);
+ assert.equal(complexVerification.verification.artifacts?.visualSuppressions?.length ?? 0, 0);
recording.contract.roles = {
observer: { description: "Independent observer", authState: { path: "auth.json" } },
};
@@ -883,7 +907,9 @@ try {
assert.equal(verification.verification.deep, true);
assert.equal(verification.verification.artifacts?.traces.length ?? 0, 0);
assert.ok((verification.verification.artifacts?.traceSuppressions?.length ?? 0) > 0);
- assert.ok((verification.verification.artifacts?.videos.length ?? 0) > 0);
+ assert.equal(verification.verification.artifacts?.videos.length ?? 0, 0);
+ assert.ok(verification.verification.artifacts?.visualSuppressions?.some((item) => item.artifact === "screenshot" && item.reason === "authenticated-context"));
+ assert.ok(verification.verification.artifacts?.visualSuppressions?.some((item) => item.artifact === "video" && item.reason === "authenticated-context"));
for (const artifact of [
...(verification.verification.artifacts?.traces ?? []),
...(verification.verification.artifacts?.videos ?? []),
From ec2cbc8e432349fea307db1f591f8fb57156af0c Mon Sep 17 00:00:00 2001
From: datzle123
Date: Sun, 26 Jul 2026 19:41:07 +0700
Subject: [PATCH 2/3] Refresh Phase K real-project evidence
---
release/evidence/actual-budget.json | 8 +-
release/evidence/ai-agent-cycle.json | 39 +-
release/evidence/conduit-sources.json | 16 +-
release/evidence/conduit.json | 8 +-
release/evidence/raw/actual-budget.scan.json | 446 +--
release/evidence/raw/ai-agent-cycle.scan.json | 665 +++-
.../evidence/raw/ai-agent-cycle/baseline.json | 4 +-
.../raw/ai-agent-cycle/codex-session.json | 4 +-
.../ai-agent-cycle/failed-verification.json | 15 +-
.../raw/ai-agent-cycle/regression.json | 10 +-
.../evidence/raw/ai-agent-cycle/repair.json | 10 +-
.../raw/ai-agent-cycle/role-verification.json | 20 +-
.../raw/conduit-postgres-cleanup.json | 22 +-
.../raw/conduit-postgres-create.scan.json | 1191 ++++---
.../raw/conduit-postgres-delete.scan.json | 3141 +++++++++++------
.../raw/conduit-postgres-update.scan.json | 2202 +++++++-----
.../evidence/raw/conduit-sources.scan.json | 1464 ++++----
release/evidence/raw/conduit.scan.json | 1467 ++++----
release/evidence/raw/todomvc.scan.json | 466 +--
release/evidence/todomvc.json | 8 +-
release/external-cases.json | 20 +-
21 files changed, 6680 insertions(+), 4546 deletions(-)
diff --git a/release/evidence/actual-budget.json b/release/evidence/actual-budget.json
index 19c60f3..74200ec 100644
--- a/release/evidence/actual-budget.json
+++ b/release/evidence/actual-budget.json
@@ -1,7 +1,7 @@
{
"schemaVersion": "1.0",
- "generatedAt": "2026-07-26T11:10:00.000Z",
- "engineFingerprint": "0b39d54299d3c50d0f002382e04d569591d56c10c1fca5623d331b374221d047",
+ "generatedAt": "2026-07-26T12:05:00.000Z",
+ "engineFingerprint": "4625a9ccdcec3484a0251ad00253a719fb04a81c8ce552b1d77763f3deccef94",
"case": {
"name": "Actual Budget",
"repository": "actualbudget/actual",
@@ -12,9 +12,9 @@
"capabilities": []
},
"scan": {
- "scanId": "20260726T103152Z-84f6",
+ "scanId": "20260726T115602Z-0e1b",
"sourceArtifact": "release/evidence/raw/actual-budget.scan.json",
- "sourceSha256": "b7c9204c33ba52f25d302ae436aa6faa98fabaca1f0221980d2fd0252e8640a3",
+ "sourceSha256": "23754a1894853339d8c6242d892443f30d681780af96714bfa7f055a3fd38756",
"environmentStatus": "VALID",
"truncated": false,
"pagesDiscovered": 2,
diff --git a/release/evidence/ai-agent-cycle.json b/release/evidence/ai-agent-cycle.json
index 753501d..8f21e28 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-26T11:10:00.000Z",
- "engineFingerprint": "0b39d54299d3c50d0f002382e04d569591d56c10c1fca5623d331b374221d047",
+ "generatedAt": "2026-07-26T12:05:00.000Z",
+ "engineFingerprint": "4625a9ccdcec3484a0251ad00253a719fb04a81c8ce552b1d77763f3deccef94",
"case": {
"name": "Pocket Ledger (Codex-generated)",
"repository": "local/Pocket-Ledger",
@@ -18,17 +18,17 @@
]
},
"scan": {
- "scanId": "20260726T105210Z-98d7",
+ "scanId": "20260726T115844Z-3380",
"sourceArtifact": "release/evidence/raw/ai-agent-cycle.scan.json",
- "sourceSha256": "62621a661b8bbe4b5f70984a802c545c1ee9728921bea6bb6229463a677d1cf8",
+ "sourceSha256": "93cbad6820fbdb1aa51f7e57b53571444cd99b18c5df5a26adbec8e0bfef3c4b",
"environmentStatus": "VALID",
"truncated": false,
"pagesDiscovered": 1,
- "visibleActions": 5,
- "actionsVerified": 5,
+ "visibleActions": 6,
+ "actionsVerified": 6,
"actionsSkipped": 0,
"verdicts": {
- "VERIFIED": 5,
+ "VERIFIED": 6,
"CONTRADICTORY": 0,
"EPHEMERAL": 0,
"BROWSER_LOCAL": 0,
@@ -43,37 +43,37 @@
"id": "codex-session",
"kind": "agent-session",
"sourceArtifact": "release/evidence/raw/ai-agent-cycle/codex-session.json",
- "sourceSha256": "1b3ca13a85509ec3fea3d1ac88918522773e01141579fd7adfd7e4acc9ff88fe"
+ "sourceSha256": "d5bf652b764f63f587a4b6fd905be88158b0230fee318b4a69c082b2d02fe2dc"
},
{
"id": "agent-baseline",
"kind": "agent-baseline",
"sourceArtifact": "release/evidence/raw/ai-agent-cycle/baseline.json",
- "sourceSha256": "93ea5475163d24b6526c52a58a7e02b2ea6f8abe16358e3837c82357b96e13af"
+ "sourceSha256": "63e23a5387605ebc007dab47863c42bca43531ddabb5a12ed447f92503f2fe1a"
},
{
"id": "agent-regression",
"kind": "agent-regression",
"sourceArtifact": "release/evidence/raw/ai-agent-cycle/regression.json",
- "sourceSha256": "f6278ceb13aad601c106c6373bd7cf9dc7f17bcbb3fa10b1a6cdeb596d061838"
+ "sourceSha256": "675fea7730b2c7c2e89d9a018d1dfba808c346f89b33f378f9d92f83a2b135bc"
},
{
"id": "failed-verification",
"kind": "contract-verification",
"sourceArtifact": "release/evidence/raw/ai-agent-cycle/failed-verification.json",
- "sourceSha256": "03ee0927c34f2070eace195fab8980dcac7b84409fbb8e3281ae930b58153e54"
+ "sourceSha256": "fe2482dbbd8a03e0a37c316da8b271371ca7755b06863dfe80c56f12f8d0a873"
},
{
"id": "agent-repair",
"kind": "agent-repair",
"sourceArtifact": "release/evidence/raw/ai-agent-cycle/repair.json",
- "sourceSha256": "37e6c4ae44ed4b0e3b2a21dfeb1059a761a272d5ee252a44fbce41f665ad22ac"
+ "sourceSha256": "8355893a729294c104295fb290e40574124ad00d73288b5384c07edb83d1d53e"
},
{
"id": "role-verification",
"kind": "contract-verification",
"sourceArtifact": "release/evidence/raw/ai-agent-cycle/role-verification.json",
- "sourceSha256": "3f6420d8d870f703479b7ff3adddcc85f57b82c4afaae571d9a5159ac5388a08"
+ "sourceSha256": "de73eea99cd7101f00c61ac6d9ab2d815ee7c50337fccb961b9810f23d527c70"
}
],
"qualification": {
@@ -118,6 +118,15 @@
"role-verification"
]
},
+ {
+ "id": "private-visual-retention",
+ "passed": true,
+ "expected": "authenticated role contexts suppress trace screenshots and video before capture",
+ "observed": "Level 7 verification retained safe snapshot-only traces, videos=0, and value-free screenshot/video authenticated-context suppressions",
+ "evidenceArtifacts": [
+ "role-verification"
+ ]
+ },
{
"id": "capability:ai-generated",
"passed": true,
@@ -145,8 +154,8 @@
{
"id": "all-visible-actions",
"passed": true,
- "expected": "all 5 visible actions verified",
- "observed": "5 VERIFIED; 0 skipped"
+ "expected": "all 6 visible actions verified",
+ "observed": "6 VERIFIED; 0 skipped"
}
]
}
diff --git a/release/evidence/conduit-sources.json b/release/evidence/conduit-sources.json
index 55d057c..23750ea 100644
--- a/release/evidence/conduit-sources.json
+++ b/release/evidence/conduit-sources.json
@@ -1,7 +1,7 @@
{
"schemaVersion": "1.0",
- "generatedAt": "2026-07-26T11:10:00.000Z",
- "engineFingerprint": "0b39d54299d3c50d0f002382e04d569591d56c10c1fca5623d331b374221d047",
+ "generatedAt": "2026-07-26T12:12:00.000Z",
+ "engineFingerprint": "4625a9ccdcec3484a0251ad00253a719fb04a81c8ce552b1d77763f3deccef94",
"case": {
"name": "Conduit RealWorld (PostgreSQL + Supabase Data API)",
"repository": "TonyMckes/conduit-realworld-example-app",
@@ -17,9 +17,9 @@
]
},
"scan": {
- "scanId": "20260726T104933Z-2a05",
+ "scanId": "20260726T121026Z-1d20",
"sourceArtifact": "release/evidence/raw/conduit-sources.scan.json",
- "sourceSha256": "58603d62965aaba18bdf3408e3254ca44cf8182102bbbb54b283f8748952e105",
+ "sourceSha256": "eb0bbc70b72b7aaa875068a1fc93433d4a59403ced61fd4b1361990156899b88",
"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": "7cd56db7487ea13e4e2909fd90473c95bc1f8ccb77d5d27612d6ee642088fd3d"
+ "sourceSha256": "227ccbb2e84fdf35b24bad1a4d364a2d8c1fdae0be6213e0b2c0acf465fb4463"
},
{
"id": "postgres-update",
"kind": "external-scan",
"sourceArtifact": "release/evidence/raw/conduit-postgres-update.scan.json",
- "sourceSha256": "f321485d1e97ec18f9dd07930f49ca2fb44321add14675d6315c3386644a02b5"
+ "sourceSha256": "441658ec3b70fcad0d64b6f09e3a95bd86a5e5b777f54239d9dde7acc98819b5"
},
{
"id": "postgres-delete",
"kind": "external-scan",
"sourceArtifact": "release/evidence/raw/conduit-postgres-delete.scan.json",
- "sourceSha256": "d4478acf38bda66100222de749a042d469ef09af6ca05bbc258334cad13bcac9"
+ "sourceSha256": "3f8a54e4aa89345be312dfcb4c15bd6a0b74849c2d037f51f716ec4e855afee2"
},
{
"id": "postgres-cleanup",
"kind": "test-result",
"sourceArtifact": "release/evidence/raw/conduit-postgres-cleanup.json",
- "sourceSha256": "89f13e2a482647e7e7dec0d4989c6b5da939cfd971b39641fb7531f8593897df"
+ "sourceSha256": "b39f20684a595d056e676d900ecd74eb18acf7a6437d7cf9a098da4dc74e8848"
}
],
"assertions": [
diff --git a/release/evidence/conduit.json b/release/evidence/conduit.json
index eee5a20..f9279b3 100644
--- a/release/evidence/conduit.json
+++ b/release/evidence/conduit.json
@@ -1,7 +1,7 @@
{
"schemaVersion": "1.0",
- "generatedAt": "2026-07-26T11:10:00.000Z",
- "engineFingerprint": "0b39d54299d3c50d0f002382e04d569591d56c10c1fca5623d331b374221d047",
+ "generatedAt": "2026-07-26T12:12:00.000Z",
+ "engineFingerprint": "4625a9ccdcec3484a0251ad00253a719fb04a81c8ce552b1d77763f3deccef94",
"case": {
"name": "Conduit RealWorld (SQLite)",
"repository": "TonyMckes/conduit-realworld-example-app",
@@ -14,9 +14,9 @@
]
},
"scan": {
- "scanId": "20260726T105114Z-0982",
+ "scanId": "20260726T120053Z-d309",
"sourceArtifact": "release/evidence/raw/conduit.scan.json",
- "sourceSha256": "cabf5e362d3e4c675ff66e419300047df606a4e19fb06c9b4a40ea086f9c3239",
+ "sourceSha256": "7dbf33f52d2de65faa6a211df57bff714c638dcce1d91538b7f030d650aa59e6",
"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 0beb9be..6d59747 100644
--- a/release/evidence/raw/actual-budget.scan.json
+++ b/release/evidence/raw/actual-budget.scan.json
@@ -1,9 +1,9 @@
{
"schemaVersion": "1.0",
- "scanId": "20260726T103152Z-84f6",
- "targetUrl": "http://127.0.0.1:37431/",
- "startedAt": "2026-07-26T10:31:52.626Z",
- "finishedAt": "2026-07-26T10:32:51.125Z",
+ "scanId": "20260726T115602Z-0e1b",
+ "targetUrl": "http://127.0.0.1:37441/",
+ "startedAt": "2026-07-26T11:56:02.689Z",
+ "finishedAt": "2026-07-26T11:57:02.119Z",
"options": {
"maxPages": 10,
"maxActions": 50,
@@ -41,25 +41,25 @@
},
"pages": [
{
- "url": "http://127.0.0.1:37431/",
+ "url": "http://127.0.0.1:37441/",
"title": "Actual",
"actions": [
{
- "id": "00dbaed4aa9a",
- "pageUrl": "http://127.0.0.1:37431/",
+ "id": "f0c54c95b0e8",
+ "pageUrl": "http://127.0.0.1:37441/",
"label": "Start budgeting",
"activation": "click",
"kind": "local",
"intent": "interact",
"risk": "safe",
"fingerprint": {
- "selector": "#react-aria1725181164-_r_0_",
+ "selector": "#react-aria9334734490-_r_0_",
"tag": "button",
"ordinal": 0,
"role": "button",
"accessibleName": "Start budgeting",
"text": "Start budgeting",
- "id": "react-aria1725181164-_r_0_",
+ "id": "react-aria9334734490-_r_0_",
"type": "button",
"candidates": [
{
@@ -79,7 +79,7 @@
{
"strategy": "id",
"weight": 80,
- "selector": "#react-aria1725181164-_r_0_"
+ "selector": "#react-aria9334734490-_r_0_"
},
{
"strategy": "text",
@@ -90,28 +90,28 @@
{
"strategy": "css",
"weight": 35,
- "selector": "#react-aria1725181164-_r_0_"
+ "selector": "#react-aria9334734490-_r_0_"
}
]
},
"fields": []
},
{
- "id": "293c31d6a5d7",
- "pageUrl": "http://127.0.0.1:37431/",
+ "id": "8250e0da22f4",
+ "pageUrl": "http://127.0.0.1:37441/",
"label": "Try the demo",
"activation": "click",
"kind": "local",
"intent": "interact",
"risk": "safe",
"fingerprint": {
- "selector": "#react-aria1725181164-_r_2_",
+ "selector": "#react-aria9334734490-_r_2_",
"tag": "button",
"ordinal": 1,
"role": "button",
"accessibleName": "Try the demo",
"text": "Try the demo",
- "id": "react-aria1725181164-_r_2_",
+ "id": "react-aria9334734490-_r_2_",
"type": "button",
"candidates": [
{
@@ -131,7 +131,7 @@
{
"strategy": "id",
"weight": 80,
- "selector": "#react-aria1725181164-_r_2_"
+ "selector": "#react-aria9334734490-_r_2_"
},
{
"strategy": "text",
@@ -142,28 +142,28 @@
{
"strategy": "css",
"weight": 35,
- "selector": "#react-aria1725181164-_r_2_"
+ "selector": "#react-aria9334734490-_r_2_"
}
]
},
"fields": []
},
{
- "id": "f6722661b67a",
- "pageUrl": "http://127.0.0.1:37431/",
+ "id": "1d55050e5c4d",
+ "pageUrl": "http://127.0.0.1:37441/",
"label": "Connect to a sync server",
"activation": "click",
"kind": "local",
"intent": "interact",
"risk": "safe",
"fingerprint": {
- "selector": "#react-aria1725181164-_r_4_",
+ "selector": "#react-aria9334734490-_r_4_",
"tag": "button",
"ordinal": 2,
"role": "button",
"accessibleName": "Connect to a sync server",
"text": "Connect to a sync server",
- "id": "react-aria1725181164-_r_4_",
+ "id": "react-aria9334734490-_r_4_",
"type": "button",
"candidates": [
{
@@ -183,7 +183,7 @@
{
"strategy": "id",
"weight": 80,
- "selector": "#react-aria1725181164-_r_4_"
+ "selector": "#react-aria9334734490-_r_4_"
},
{
"strategy": "text",
@@ -194,28 +194,28 @@
{
"strategy": "css",
"weight": 35,
- "selector": "#react-aria1725181164-_r_4_"
+ "selector": "#react-aria9334734490-_r_4_"
}
]
},
"fields": []
},
{
- "id": "64a4a9ac8aec",
- "pageUrl": "http://127.0.0.1:37431/",
+ "id": "2a88b0cb903d",
+ "pageUrl": "http://127.0.0.1:37441/",
"label": "Import my budget",
"activation": "click",
"kind": "local",
"intent": "interact",
"risk": "safe",
"fingerprint": {
- "selector": "#react-aria1725181164-_r_6_",
+ "selector": "#react-aria9334734490-_r_6_",
"tag": "button",
"ordinal": 3,
"role": "button",
"accessibleName": "Import my budget",
"text": "Import my budget",
- "id": "react-aria1725181164-_r_6_",
+ "id": "react-aria9334734490-_r_6_",
"type": "button",
"candidates": [
{
@@ -235,7 +235,7 @@
{
"strategy": "id",
"weight": 80,
- "selector": "#react-aria1725181164-_r_6_"
+ "selector": "#react-aria9334734490-_r_6_"
},
{
"strategy": "text",
@@ -246,15 +246,15 @@
{
"strategy": "css",
"weight": 35,
- "selector": "#react-aria1725181164-_r_6_"
+ "selector": "#react-aria9334734490-_r_6_"
}
]
},
"fields": []
},
{
- "id": "bb0466f5e276",
- "pageUrl": "http://127.0.0.1:37431/",
+ "id": "458802e154e4",
+ "pageUrl": "http://127.0.0.1:37441/",
"label": "guided tour",
"activation": "click",
"kind": "navigation",
@@ -305,8 +305,8 @@
"fields": []
},
{
- "id": "621ef0da6867",
- "pageUrl": "http://127.0.0.1:37431/",
+ "id": "394564881ceb",
+ "pageUrl": "http://127.0.0.1:37441/",
"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:37431/config-server",
+ "href": "http://127.0.0.1:37441/config-server",
"candidates": [
{
"strategy": "role",
@@ -338,7 +338,7 @@
{
"strategy": "href",
"weight": 72,
- "value": "http://127.0.0.1:37431/config-server"
+ "value": "http://127.0.0.1:37441/config-server"
},
{
"strategy": "text",
@@ -358,25 +358,25 @@
]
},
{
- "url": "http://127.0.0.1:37431/config-server",
+ "url": "http://127.0.0.1:37441/config-server",
"title": "Actual",
"actions": [
{
- "id": "cac102f59033",
- "pageUrl": "http://127.0.0.1:37431/config-server",
+ "id": "320261cf1079",
+ "pageUrl": "http://127.0.0.1:37441/config-server",
"label": "Back",
"activation": "click",
"kind": "navigation",
"intent": "navigate",
"risk": "safe",
"fingerprint": {
- "selector": "#react-aria1452926844-_r_0_",
+ "selector": "#react-aria6563487283-_r_0_",
"tag": "button",
"ordinal": 0,
"role": "button",
"accessibleName": "Back",
"text": "Back",
- "id": "react-aria1452926844-_r_0_",
+ "id": "react-aria6563487283-_r_0_",
"type": "button",
"candidates": [
{
@@ -396,7 +396,7 @@
{
"strategy": "id",
"weight": 80,
- "selector": "#react-aria1452926844-_r_0_"
+ "selector": "#react-aria6563487283-_r_0_"
},
{
"strategy": "text",
@@ -407,15 +407,15 @@
{
"strategy": "css",
"weight": 35,
- "selector": "#react-aria1452926844-_r_0_"
+ "selector": "#react-aria6563487283-_r_0_"
}
]
},
"fields": []
},
{
- "id": "e8d20e256031",
- "pageUrl": "http://127.0.0.1:37431/config-server",
+ "id": "0c2f149c5ab1",
+ "pageUrl": "http://127.0.0.1:37441/config-server",
"label": "learn how to set one up",
"activation": "click",
"kind": "navigation",
@@ -466,21 +466,21 @@
"fields": []
},
{
- "id": "6e589177bd64",
- "pageUrl": "http://127.0.0.1:37431/config-server",
+ "id": "83a872f40803",
+ "pageUrl": "http://127.0.0.1:37441/config-server",
"label": "Connect",
"activation": "click",
"kind": "external",
"intent": "external",
"risk": "external",
"fingerprint": {
- "selector": "#react-aria1452926844-_r_2_",
+ "selector": "#react-aria6563487283-_r_2_",
"tag": "button",
"ordinal": 2,
"role": "button",
"accessibleName": "Connect",
"text": "Connect",
- "id": "react-aria1452926844-_r_2_",
+ "id": "react-aria6563487283-_r_2_",
"type": "button",
"candidates": [
{
@@ -500,7 +500,7 @@
{
"strategy": "id",
"weight": 80,
- "selector": "#react-aria1452926844-_r_2_"
+ "selector": "#react-aria6563487283-_r_2_"
},
{
"strategy": "text",
@@ -511,7 +511,7 @@
{
"strategy": "css",
"weight": 35,
- "selector": "#react-aria1452926844-_r_2_"
+ "selector": "#react-aria6563487283-_r_2_"
}
]
},
@@ -527,21 +527,21 @@
]
},
{
- "id": "c4006271e563",
- "pageUrl": "http://127.0.0.1:37431/config-server",
+ "id": "962eef26f4be",
+ "pageUrl": "http://127.0.0.1:37441/config-server",
"label": "Use the current domain",
"activation": "click",
"kind": "local",
"intent": "interact",
"risk": "safe",
"fingerprint": {
- "selector": "#react-aria1452926844-_r_4_",
+ "selector": "#react-aria6563487283-_r_4_",
"tag": "button",
"ordinal": 3,
"role": "button",
"accessibleName": "Use the current domain",
"text": "Use the current domain",
- "id": "react-aria1452926844-_r_4_",
+ "id": "react-aria6563487283-_r_4_",
"type": "button",
"candidates": [
{
@@ -561,7 +561,7 @@
{
"strategy": "id",
"weight": 80,
- "selector": "#react-aria1452926844-_r_4_"
+ "selector": "#react-aria6563487283-_r_4_"
},
{
"strategy": "text",
@@ -572,7 +572,7 @@
{
"strategy": "css",
"weight": 35,
- "selector": "#react-aria1452926844-_r_4_"
+ "selector": "#react-aria6563487283-_r_4_"
}
]
},
@@ -585,21 +585,21 @@
{
"id": "RD-001",
"action": {
- "id": "00dbaed4aa9a",
- "pageUrl": "http://127.0.0.1:37431/",
+ "id": "f0c54c95b0e8",
+ "pageUrl": "http://127.0.0.1:37441/",
"label": "Start budgeting",
"activation": "click",
"kind": "local",
"intent": "interact",
"risk": "safe",
"fingerprint": {
- "selector": "#react-aria1725181164-_r_0_",
+ "selector": "#react-aria9334734490-_r_0_",
"tag": "button",
"ordinal": 0,
"role": "button",
"accessibleName": "Start budgeting",
"text": "Start budgeting",
- "id": "react-aria1725181164-_r_0_",
+ "id": "react-aria9334734490-_r_0_",
"type": "button",
"candidates": [
{
@@ -619,7 +619,7 @@
{
"strategy": "id",
"weight": 80,
- "selector": "#react-aria1725181164-_r_0_"
+ "selector": "#react-aria9334734490-_r_0_"
},
{
"strategy": "text",
@@ -630,26 +630,26 @@
{
"strategy": "css",
"weight": 35,
- "selector": "#react-aria1725181164-_r_0_"
+ "selector": "#react-aria9334734490-_r_0_"
}
]
},
"fields": []
},
"evidence": {
- "startedAt": "2026-07-26T10:31:59.351Z",
- "durationMs": 6683,
- "canary": "RD_TEST_3CF08D",
+ "startedAt": "2026-07-26T11:56:09.425Z",
+ "durationMs": 6725,
+ "canary": "RD_TEST_FB0E71",
"network": [
{
"id": "net-1",
"method": "GET",
- "url": "http://127.0.0.1:37431/static/js/indexeddb-main-thread-worker-e59fee74.B9D89_PE.chunk.js",
+ "url": "http://127.0.0.1:37441/static/js/indexeddb-main-thread-worker-e59fee74.B9D89_PE.chunk.js",
"resourceType": "script",
- "startedAt": 5537,
+ "startedAt": 5545,
"status": 200,
"ok": true,
- "finishedAt": 5541,
+ "finishedAt": 5551,
"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": 5876
+ "startedAt": 5923
},
{
"id": "net-3",
"method": "GET",
- "url": "http://127.0.0.1:37431/static/js/wide.BkKPUPVE.chunk.js",
+ "url": "http://127.0.0.1:37441/static/js/wide.BkKPUPVE.chunk.js",
"resourceType": "script",
- "startedAt": 5910,
+ "startedAt": 5956,
"status": 200,
"ok": true,
- "finishedAt": 5921,
+ "finishedAt": 5967,
"contentType": "text/javascript",
"resourceTypeHint": "wide.BkKPUPVE.chunk.js"
},
{
"id": "net-4",
"method": "GET",
- "url": "http://127.0.0.1:37431/static/js/AppliedFilters.Dx7PP3C8.chunk.js",
+ "url": "http://127.0.0.1:37441/static/js/AppliedFilters.Dx7PP3C8.chunk.js",
"resourceType": "script",
- "startedAt": 5910,
+ "startedAt": 5957,
"status": 200,
"ok": true,
- "finishedAt": 5919,
+ "finishedAt": 5966,
"contentType": "text/javascript",
"resourceTypeHint": "AppliedFilters.Dx7PP3C8.chunk.js"
},
{
"id": "net-5",
"method": "GET",
- "url": "http://127.0.0.1:37431/static/js/useTransactionBatchActions.CG8pn3qO.chunk.js",
+ "url": "http://127.0.0.1:37441/static/js/useTransactionBatchActions.CG8pn3qO.chunk.js",
"resourceType": "script",
- "startedAt": 5911,
+ "startedAt": 5957,
"status": 200,
"ok": true,
- "finishedAt": 5918,
+ "finishedAt": 5966,
"contentType": "text/javascript",
"resourceTypeHint": "useTransactionBatchActions.CG8pn3qO.chunk.js"
},
{
"id": "net-6",
"method": "GET",
- "url": "http://127.0.0.1:37431/static/js/PayeeRuleCountLabel.nEXX1VI1.chunk.js",
+ "url": "http://127.0.0.1:37441/static/js/PayeeRuleCountLabel.nEXX1VI1.chunk.js",
"resourceType": "script",
- "startedAt": 5911,
+ "startedAt": 5957,
"status": 200,
"ok": true,
- "finishedAt": 5918,
+ "finishedAt": 5966,
"contentType": "text/javascript",
"resourceTypeHint": "PayeeRuleCountLabel.nEXX1VI1.chunk.js"
}
@@ -725,7 +725,7 @@
"weight": 92,
"matchCount": 1,
"visibleCount": 1,
- "elapsedMs": 8
+ "elapsedMs": 9
}
],
"chosenStrategy": "role",
@@ -733,8 +733,8 @@
"retryCount": 0
},
"before": {
- "at": 5466,
- "url": "http://127.0.0.1:37431/",
+ "at": 5473,
+ "url": "http://127.0.0.1:37441/",
"title": "Actual",
"domHash": "0e5db8d3d3693839",
"canaryPresent": false,
@@ -808,8 +808,8 @@
}
},
"beforeAction": {
- "at": 5487,
- "url": "http://127.0.0.1:37431/",
+ "at": 5497,
+ "url": "http://127.0.0.1:37441/",
"title": "Actual",
"domHash": "0e5db8d3d3693839",
"canaryPresent": false,
@@ -884,8 +884,8 @@
},
"networkSettled": true,
"after": {
- "at": 6677,
- "url": "http://127.0.0.1:37431/accounts",
+ "at": 6719,
+ "url": "http://127.0.0.1:37441/accounts",
"title": "Actual",
"domHash": "823d03cf2b04dc62",
"canaryPresent": false,
@@ -1077,7 +1077,7 @@
]
},
{
- "name": "documents-Actual-My-Finances-cd53949-db.sqlite",
+ "name": "documents-Actual-My-Finances-f72112d-db.sqlite",
"version": 2,
"stores": [
{
@@ -1089,7 +1089,7 @@
]
}
},
- "trace": "traces/00dbaed4aa9a.zip",
+ "trace": "traces/f0c54c95b0e8.zip",
"snapshotIndex": "snapshots/RD-001.index.json"
},
"verdict": "VERIFIED",
@@ -1100,21 +1100,21 @@
{
"id": "RD-002",
"action": {
- "id": "293c31d6a5d7",
- "pageUrl": "http://127.0.0.1:37431/",
+ "id": "8250e0da22f4",
+ "pageUrl": "http://127.0.0.1:37441/",
"label": "Try the demo",
"activation": "click",
"kind": "local",
"intent": "interact",
"risk": "safe",
"fingerprint": {
- "selector": "#react-aria1725181164-_r_2_",
+ "selector": "#react-aria9334734490-_r_2_",
"tag": "button",
"ordinal": 1,
"role": "button",
"accessibleName": "Try the demo",
"text": "Try the demo",
- "id": "react-aria1725181164-_r_2_",
+ "id": "react-aria9334734490-_r_2_",
"type": "button",
"candidates": [
{
@@ -1134,7 +1134,7 @@
{
"strategy": "id",
"weight": 80,
- "selector": "#react-aria1725181164-_r_2_"
+ "selector": "#react-aria9334734490-_r_2_"
},
{
"strategy": "text",
@@ -1145,26 +1145,26 @@
{
"strategy": "css",
"weight": 35,
- "selector": "#react-aria1725181164-_r_2_"
+ "selector": "#react-aria9334734490-_r_2_"
}
]
},
"fields": []
},
"evidence": {
- "startedAt": "2026-07-26T10:32:06.728Z",
- "durationMs": 7865,
- "canary": "RD_TEST_6B2D91",
+ "startedAt": "2026-07-26T11:56:16.818Z",
+ "durationMs": 7911,
+ "canary": "RD_TEST_42810A",
"network": [
{
"id": "net-1",
"method": "GET",
- "url": "http://127.0.0.1:37431/static/js/indexeddb-main-thread-worker-e59fee74.B9D89_PE.chunk.js",
+ "url": "http://127.0.0.1:37441/static/js/indexeddb-main-thread-worker-e59fee74.B9D89_PE.chunk.js",
"resourceType": "script",
- "startedAt": 6643,
+ "startedAt": 6702,
"status": 200,
"ok": true,
- "finishedAt": 6647,
+ "finishedAt": 6707,
"contentType": "text/javascript",
"resourceTypeHint": "indexeddb-main-thread-worker-e59fee74.B9D89_PE.chunk.js"
},
@@ -1173,53 +1173,53 @@
"method": "GET",
"url": "https://api.github.com/repos/actualbudget/actual/releases/latest",
"resourceType": "fetch",
- "startedAt": 7762
+ "startedAt": 7803
},
{
"id": "net-3",
"method": "GET",
- "url": "http://127.0.0.1:37431/static/js/wide.BkKPUPVE.chunk.js",
+ "url": "http://127.0.0.1:37441/static/js/wide.BkKPUPVE.chunk.js",
"resourceType": "script",
- "startedAt": 7823,
+ "startedAt": 7853,
"status": 200,
"ok": true,
- "finishedAt": 7834,
+ "finishedAt": 7868,
"contentType": "text/javascript",
"resourceTypeHint": "wide.BkKPUPVE.chunk.js"
},
{
"id": "net-4",
"method": "GET",
- "url": "http://127.0.0.1:37431/static/js/AppliedFilters.Dx7PP3C8.chunk.js",
+ "url": "http://127.0.0.1:37441/static/js/AppliedFilters.Dx7PP3C8.chunk.js",
"resourceType": "script",
- "startedAt": 7823,
+ "startedAt": 7854,
"status": 200,
"ok": true,
- "finishedAt": 7833,
+ "finishedAt": 7867,
"contentType": "text/javascript",
"resourceTypeHint": "AppliedFilters.Dx7PP3C8.chunk.js"
},
{
"id": "net-5",
"method": "GET",
- "url": "http://127.0.0.1:37431/static/js/useTransactionBatchActions.CG8pn3qO.chunk.js",
+ "url": "http://127.0.0.1:37441/static/js/useTransactionBatchActions.CG8pn3qO.chunk.js",
"resourceType": "script",
- "startedAt": 7824,
+ "startedAt": 7854,
"status": 200,
"ok": true,
- "finishedAt": 7832,
+ "finishedAt": 7866,
"contentType": "text/javascript",
"resourceTypeHint": "useTransactionBatchActions.CG8pn3qO.chunk.js"
},
{
"id": "net-6",
"method": "GET",
- "url": "http://127.0.0.1:37431/static/js/PayeeRuleCountLabel.nEXX1VI1.chunk.js",
+ "url": "http://127.0.0.1:37441/static/js/PayeeRuleCountLabel.nEXX1VI1.chunk.js",
"resourceType": "script",
- "startedAt": 7824,
+ "startedAt": 7855,
"status": 200,
"ok": true,
- "finishedAt": 7834,
+ "finishedAt": 7866,
"contentType": "text/javascript",
"resourceTypeHint": "PayeeRuleCountLabel.nEXX1VI1.chunk.js"
}
@@ -1240,7 +1240,7 @@
"weight": 92,
"matchCount": 1,
"visibleCount": 1,
- "elapsedMs": 8
+ "elapsedMs": 7
}
],
"chosenStrategy": "role",
@@ -1248,8 +1248,8 @@
"retryCount": 0
},
"before": {
- "at": 6577,
- "url": "http://127.0.0.1:37431/",
+ "at": 6645,
+ "url": "http://127.0.0.1:37441/",
"title": "Actual",
"domHash": "0e5db8d3d3693839",
"canaryPresent": false,
@@ -1323,8 +1323,8 @@
}
},
"beforeAction": {
- "at": 6598,
- "url": "http://127.0.0.1:37431/",
+ "at": 6665,
+ "url": "http://127.0.0.1:37441/",
"title": "Actual",
"domHash": "0e5db8d3d3693839",
"canaryPresent": false,
@@ -1399,10 +1399,10 @@
},
"networkSettled": true,
"after": {
- "at": 7853,
- "url": "http://127.0.0.1:37431/budget",
+ "at": 7901,
+ "url": "http://127.0.0.1:37441/budget",
"title": "Actual",
- "domHash": "924df8fa0c1809d8",
+ "domHash": "71aad7ec8aafea27",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -1414,9 +1414,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "a532b6b3b2f9366b",
+ "textHash": "e8bf802bf1ea852c",
"visualHash": "6bed3bc5283d15f3",
- "text": "Test Budget Budget Reports Schedules More All accounts 66,851.95 On budget 15,562.97 Bank of America 10,974.46 Ally Savings 3,254.20 Capital One Checking 456.95 HSBC 877.36 Off budget 51,288.98 Vanguard 401k 1,908.60 Mortgage -320,852.15 House Asset 0.00 Roth IRA 0.00 Add account No server Help",
+ "text": "Test Budget Budget Reports Schedules More All accounts 81,008.37 On budget 9,485.91 Bank of America 3,061.42 Ally Savings 5,205.00 Capital One Checking -673.79 HSBC 1,893.28 Off budget 71,522.46 Vanguard 401k 2,082.26 Mortgage -300,229.68 House Asset 366,700.00 Roth IRA 2,969.88 Add account No server Help",
"controls": [
{
"tag": "button",
@@ -1497,14 +1497,14 @@
"stores": [
{
"name": "data",
- "count": 246
+ "count": 244
}
]
}
]
}
},
- "trace": "traces/293c31d6a5d7.zip",
+ "trace": "traces/8250e0da22f4.zip",
"snapshotIndex": "snapshots/RD-002.index.json"
},
"verdict": "VERIFIED",
@@ -1515,21 +1515,21 @@
{
"id": "RD-003",
"action": {
- "id": "f6722661b67a",
- "pageUrl": "http://127.0.0.1:37431/",
+ "id": "1d55050e5c4d",
+ "pageUrl": "http://127.0.0.1:37441/",
"label": "Connect to a sync server",
"activation": "click",
"kind": "local",
"intent": "interact",
"risk": "safe",
"fingerprint": {
- "selector": "#react-aria1725181164-_r_4_",
+ "selector": "#react-aria9334734490-_r_4_",
"tag": "button",
"ordinal": 2,
"role": "button",
"accessibleName": "Connect to a sync server",
"text": "Connect to a sync server",
- "id": "react-aria1725181164-_r_4_",
+ "id": "react-aria9334734490-_r_4_",
"type": "button",
"candidates": [
{
@@ -1549,7 +1549,7 @@
{
"strategy": "id",
"weight": 80,
- "selector": "#react-aria1725181164-_r_4_"
+ "selector": "#react-aria9334734490-_r_4_"
},
{
"strategy": "text",
@@ -1560,16 +1560,16 @@
{
"strategy": "css",
"weight": 35,
- "selector": "#react-aria1725181164-_r_4_"
+ "selector": "#react-aria9334734490-_r_4_"
}
]
},
"fields": []
},
"evidence": {
- "startedAt": "2026-07-26T10:32:15.243Z",
- "durationMs": 6625,
- "canary": "RD_TEST_FBB7A6",
+ "startedAt": "2026-07-26T11:56:25.392Z",
+ "durationMs": 6760,
+ "canary": "RD_TEST_489FCB",
"network": [],
"console": [],
"pageErrors": [],
@@ -1587,7 +1587,7 @@
"weight": 92,
"matchCount": 1,
"visibleCount": 1,
- "elapsedMs": 7
+ "elapsedMs": 8
}
],
"chosenStrategy": "role",
@@ -1595,8 +1595,8 @@
"retryCount": 0
},
"before": {
- "at": 5399,
- "url": "http://127.0.0.1:37431/",
+ "at": 5528,
+ "url": "http://127.0.0.1:37441/",
"title": "Actual",
"domHash": "0e5db8d3d3693839",
"canaryPresent": false,
@@ -1670,8 +1670,8 @@
}
},
"beforeAction": {
- "at": 5418,
- "url": "http://127.0.0.1:37431/",
+ "at": 5553,
+ "url": "http://127.0.0.1:37441/",
"title": "Actual",
"domHash": "0e5db8d3d3693839",
"canaryPresent": false,
@@ -1746,8 +1746,8 @@
},
"networkSettled": true,
"after": {
- "at": 6621,
- "url": "http://127.0.0.1:37431/config-server",
+ "at": 6756,
+ "url": "http://127.0.0.1:37441/config-server",
"title": "Actual",
"domHash": "97f712565aa26638",
"canaryPresent": false,
@@ -1821,7 +1821,7 @@
]
}
},
- "trace": "traces/f6722661b67a.zip",
+ "trace": "traces/1d55050e5c4d.zip",
"snapshotIndex": "snapshots/RD-003.index.json"
},
"verdict": "VERIFIED",
@@ -1832,21 +1832,21 @@
{
"id": "RD-004",
"action": {
- "id": "64a4a9ac8aec",
- "pageUrl": "http://127.0.0.1:37431/",
+ "id": "2a88b0cb903d",
+ "pageUrl": "http://127.0.0.1:37441/",
"label": "Import my budget",
"activation": "click",
"kind": "local",
"intent": "interact",
"risk": "safe",
"fingerprint": {
- "selector": "#react-aria1725181164-_r_6_",
+ "selector": "#react-aria9334734490-_r_6_",
"tag": "button",
"ordinal": 3,
"role": "button",
"accessibleName": "Import my budget",
"text": "Import my budget",
- "id": "react-aria1725181164-_r_6_",
+ "id": "react-aria9334734490-_r_6_",
"type": "button",
"candidates": [
{
@@ -1866,7 +1866,7 @@
{
"strategy": "id",
"weight": 80,
- "selector": "#react-aria1725181164-_r_6_"
+ "selector": "#react-aria9334734490-_r_6_"
},
{
"strategy": "text",
@@ -1877,16 +1877,16 @@
{
"strategy": "css",
"weight": 35,
- "selector": "#react-aria1725181164-_r_6_"
+ "selector": "#react-aria9334734490-_r_6_"
}
]
},
"fields": []
},
"evidence": {
- "startedAt": "2026-07-26T10:32:22.445Z",
- "durationMs": 6795,
- "canary": "RD_TEST_29E575",
+ "startedAt": "2026-07-26T11:56:32.735Z",
+ "durationMs": 6753,
+ "canary": "RD_TEST_AEA1F2",
"network": [],
"console": [],
"pageErrors": [],
@@ -1912,8 +1912,8 @@
"retryCount": 0
},
"before": {
- "at": 5525,
- "url": "http://127.0.0.1:37431/",
+ "at": 5507,
+ "url": "http://127.0.0.1:37441/",
"title": "Actual",
"domHash": "0e5db8d3d3693839",
"canaryPresent": false,
@@ -1987,8 +1987,8 @@
}
},
"beforeAction": {
- "at": 5544,
- "url": "http://127.0.0.1:37431/",
+ "at": 5528,
+ "url": "http://127.0.0.1:37441/",
"title": "Actual",
"domHash": "0e5db8d3d3693839",
"canaryPresent": false,
@@ -2063,8 +2063,8 @@
},
"networkSettled": true,
"after": {
- "at": 6790,
- "url": "http://127.0.0.1:37431/",
+ "at": 6748,
+ "url": "http://127.0.0.1:37441/",
"title": "Actual",
"domHash": "3948e6fc1b26ba3f",
"canaryPresent": false,
@@ -2172,7 +2172,7 @@
]
}
},
- "trace": "traces/64a4a9ac8aec.zip",
+ "trace": "traces/2a88b0cb903d.zip",
"snapshotIndex": "snapshots/RD-004.index.json"
},
"verdict": "VERIFIED",
@@ -2183,8 +2183,8 @@
{
"id": "RD-005",
"action": {
- "id": "621ef0da6867",
- "pageUrl": "http://127.0.0.1:37431/",
+ "id": "394564881ceb",
+ "pageUrl": "http://127.0.0.1:37441/",
"label": "Set up sync",
"activation": "click",
"kind": "navigation",
@@ -2197,7 +2197,7 @@
"role": "link",
"accessibleName": "Set up sync",
"text": "Set up sync",
- "href": "http://127.0.0.1:37431/config-server",
+ "href": "http://127.0.0.1:37441/config-server",
"candidates": [
{
"strategy": "role",
@@ -2216,7 +2216,7 @@
{
"strategy": "href",
"weight": 72,
- "value": "http://127.0.0.1:37431/config-server"
+ "value": "http://127.0.0.1:37441/config-server"
},
{
"strategy": "text",
@@ -2234,9 +2234,9 @@
"fields": []
},
"evidence": {
- "startedAt": "2026-07-26T10:32:29.828Z",
- "durationMs": 6803,
- "canary": "RD_TEST_FE54B4",
+ "startedAt": "2026-07-26T11:56:40.124Z",
+ "durationMs": 6685,
+ "canary": "RD_TEST_421A3D",
"network": [],
"console": [],
"pageErrors": [],
@@ -2254,7 +2254,7 @@
"weight": 92,
"matchCount": 1,
"visibleCount": 1,
- "elapsedMs": 6
+ "elapsedMs": 7
}
],
"chosenStrategy": "role",
@@ -2262,8 +2262,8 @@
"retryCount": 0
},
"before": {
- "at": 5591,
- "url": "http://127.0.0.1:37431/",
+ "at": 5458,
+ "url": "http://127.0.0.1:37441/",
"title": "Actual",
"domHash": "0e5db8d3d3693839",
"canaryPresent": false,
@@ -2337,8 +2337,8 @@
}
},
"beforeAction": {
- "at": 5601,
- "url": "http://127.0.0.1:37431/",
+ "at": 5469,
+ "url": "http://127.0.0.1:37441/",
"title": "Actual",
"domHash": "0e5db8d3d3693839",
"canaryPresent": false,
@@ -2413,8 +2413,8 @@
},
"networkSettled": true,
"after": {
- "at": 6798,
- "url": "http://127.0.0.1:37431/config-server",
+ "at": 6680,
+ "url": "http://127.0.0.1:37441/config-server",
"title": "Actual",
"domHash": "97f712565aa26638",
"canaryPresent": false,
@@ -2488,7 +2488,7 @@
]
}
},
- "trace": "traces/621ef0da6867.zip",
+ "trace": "traces/394564881ceb.zip",
"snapshotIndex": "snapshots/RD-005.index.json"
},
"verdict": "VERIFIED",
@@ -2499,21 +2499,21 @@
{
"id": "RD-006",
"action": {
- "id": "cac102f59033",
- "pageUrl": "http://127.0.0.1:37431/config-server",
+ "id": "320261cf1079",
+ "pageUrl": "http://127.0.0.1:37441/config-server",
"label": "Back",
"activation": "click",
"kind": "navigation",
"intent": "navigate",
"risk": "safe",
"fingerprint": {
- "selector": "#react-aria1452926844-_r_0_",
+ "selector": "#react-aria6563487283-_r_0_",
"tag": "button",
"ordinal": 0,
"role": "button",
"accessibleName": "Back",
"text": "Back",
- "id": "react-aria1452926844-_r_0_",
+ "id": "react-aria6563487283-_r_0_",
"type": "button",
"candidates": [
{
@@ -2533,7 +2533,7 @@
{
"strategy": "id",
"weight": 80,
- "selector": "#react-aria1452926844-_r_0_"
+ "selector": "#react-aria6563487283-_r_0_"
},
{
"strategy": "text",
@@ -2544,16 +2544,16 @@
{
"strategy": "css",
"weight": 35,
- "selector": "#react-aria1452926844-_r_0_"
+ "selector": "#react-aria6563487283-_r_0_"
}
]
},
"fields": []
},
"evidence": {
- "startedAt": "2026-07-26T10:32:37.191Z",
- "durationMs": 6109,
- "canary": "RD_TEST_E8A663",
+ "startedAt": "2026-07-26T11:56:47.781Z",
+ "durationMs": 6393,
+ "canary": "RD_TEST_AD75A4",
"network": [],
"console": [],
"pageErrors": [],
@@ -2572,21 +2572,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",
@@ -2628,7 +2628,7 @@
"weight": 60,
"matchCount": 0,
"visibleCount": 0,
- "elapsedMs": 2
+ "elapsedMs": 3
},
{
"strategy": "css",
@@ -2649,14 +2649,14 @@
"weight": 82,
"matchCount": 0,
"visibleCount": 0,
- "elapsedMs": 3
+ "elapsedMs": 2
},
{
"strategy": "id",
"weight": 80,
"matchCount": 0,
"visibleCount": 0,
- "elapsedMs": 2
+ "elapsedMs": 3
},
{
"strategy": "text",
@@ -2676,8 +2676,8 @@
"retryCount": 2
},
"executionError": "No visible element matched the semantic fingerprint. The action was not executed.",
- "screenshot": "screenshots/cac102f59033-error.png",
- "trace": "traces/cac102f59033.zip",
+ "screenshot": "screenshots/320261cf1079-error.png",
+ "trace": "traces/320261cf1079.zip",
"snapshotIndex": "snapshots/RD-006.index.json"
},
"verdict": "UNCERTAIN",
@@ -2688,21 +2688,21 @@
{
"id": "RD-007",
"action": {
- "id": "c4006271e563",
- "pageUrl": "http://127.0.0.1:37431/config-server",
+ "id": "962eef26f4be",
+ "pageUrl": "http://127.0.0.1:37441/config-server",
"label": "Use the current domain",
"activation": "click",
"kind": "local",
"intent": "interact",
"risk": "safe",
"fingerprint": {
- "selector": "#react-aria1452926844-_r_4_",
+ "selector": "#react-aria6563487283-_r_4_",
"tag": "button",
"ordinal": 3,
"role": "button",
"accessibleName": "Use the current domain",
"text": "Use the current domain",
- "id": "react-aria1452926844-_r_4_",
+ "id": "react-aria6563487283-_r_4_",
"type": "button",
"candidates": [
{
@@ -2722,7 +2722,7 @@
{
"strategy": "id",
"weight": 80,
- "selector": "#react-aria1452926844-_r_4_"
+ "selector": "#react-aria6563487283-_r_4_"
},
{
"strategy": "text",
@@ -2733,16 +2733,16 @@
{
"strategy": "css",
"weight": 35,
- "selector": "#react-aria1452926844-_r_4_"
+ "selector": "#react-aria6563487283-_r_4_"
}
]
},
"fields": []
},
"evidence": {
- "startedAt": "2026-07-26T10:32:43.902Z",
- "durationMs": 6658,
- "canary": "RD_TEST_7AF9F8",
+ "startedAt": "2026-07-26T11:56:54.871Z",
+ "durationMs": 6736,
+ "canary": "RD_TEST_3BE33D",
"network": [],
"console": [],
"pageErrors": [],
@@ -2768,8 +2768,8 @@
"retryCount": 0
},
"before": {
- "at": 5426,
- "url": "http://127.0.0.1:37431/config-server",
+ "at": 5507,
+ "url": "http://127.0.0.1:37441/config-server",
"title": "Actual",
"domHash": "0152be5d7ccd41ff",
"canaryPresent": false,
@@ -2844,8 +2844,8 @@
}
},
"beforeAction": {
- "at": 5444,
- "url": "http://127.0.0.1:37431/config-server",
+ "at": 5526,
+ "url": "http://127.0.0.1:37441/config-server",
"title": "Actual",
"domHash": "0152be5d7ccd41ff",
"canaryPresent": false,
@@ -2921,10 +2921,10 @@
},
"networkSettled": true,
"after": {
- "at": 6653,
- "url": "http://127.0.0.1:37431/config-server",
+ "at": 6732,
+ "url": "http://127.0.0.1:37441/config-server",
"title": "Actual",
- "domHash": "1f1fb3917a4de776",
+ "domHash": "33eb3efeada5497f",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -2943,7 +2943,7 @@
{
"tag": "input",
"type": "text",
- "valueHash": "70ff51ef969bdd4e",
+ "valueHash": "d4e9118720f52c01",
"checked": false,
"disabled": false,
"visible": true
@@ -2996,7 +2996,7 @@
]
}
},
- "trace": "traces/c4006271e563.zip",
+ "trace": "traces/962eef26f4be.zip",
"snapshotIndex": "snapshots/RD-007.index.json"
},
"verdict": "VERIFIED",
@@ -3007,8 +3007,8 @@
{
"id": "RD-008",
"action": {
- "id": "bb0466f5e276",
- "pageUrl": "http://127.0.0.1:37431/",
+ "id": "458802e154e4",
+ "pageUrl": "http://127.0.0.1:37441/",
"label": "guided tour",
"activation": "click",
"kind": "navigation",
@@ -3081,8 +3081,8 @@
{
"id": "RD-009",
"action": {
- "id": "e8d20e256031",
- "pageUrl": "http://127.0.0.1:37431/config-server",
+ "id": "0c2f149c5ab1",
+ "pageUrl": "http://127.0.0.1:37441/config-server",
"label": "learn how to set one up",
"activation": "click",
"kind": "navigation",
@@ -3155,21 +3155,21 @@
{
"id": "RD-010",
"action": {
- "id": "6e589177bd64",
- "pageUrl": "http://127.0.0.1:37431/config-server",
+ "id": "83a872f40803",
+ "pageUrl": "http://127.0.0.1:37441/config-server",
"label": "Connect",
"activation": "click",
"kind": "external",
"intent": "external",
"risk": "external",
"fingerprint": {
- "selector": "#react-aria1452926844-_r_2_",
+ "selector": "#react-aria6563487283-_r_2_",
"tag": "button",
"ordinal": 2,
"role": "button",
"accessibleName": "Connect",
"text": "Connect",
- "id": "react-aria1452926844-_r_2_",
+ "id": "react-aria6563487283-_r_2_",
"type": "button",
"candidates": [
{
@@ -3189,7 +3189,7 @@
{
"strategy": "id",
"weight": 80,
- "selector": "#react-aria1452926844-_r_2_"
+ "selector": "#react-aria6563487283-_r_2_"
},
{
"strategy": "text",
@@ -3200,7 +3200,7 @@
{
"strategy": "css",
"weight": 35,
- "selector": "#react-aria1452926844-_r_2_"
+ "selector": "#react-aria6563487283-_r_2_"
}
]
},
@@ -3238,9 +3238,9 @@
],
"environment": {
"status": "VALID",
- "checkedAt": "2026-07-26T10:31:52.690Z",
- "durationMs": 2733,
- "targetUrl": "http://127.0.0.1:37431/",
+ "checkedAt": "2026-07-26T11:56:02.752Z",
+ "durationMs": 2705,
+ "targetUrl": "http://127.0.0.1:37441/",
"mainDocument": {
"status": 200,
"contentType": "text/html"
diff --git a/release/evidence/raw/ai-agent-cycle.scan.json b/release/evidence/raw/ai-agent-cycle.scan.json
index c4ecd94..0e3b899 100644
--- a/release/evidence/raw/ai-agent-cycle.scan.json
+++ b/release/evidence/raw/ai-agent-cycle.scan.json
@@ -1,17 +1,17 @@
{
"schemaVersion": "1.0",
- "scanId": "20260726T105210Z-98d7",
+ "scanId": "20260726T115844Z-3380",
"targetUrl": "http://127.0.0.1:37300/",
- "startedAt": "2026-07-26T10:52:10.716Z",
- "finishedAt": "2026-07-26T10:52:23.768Z",
+ "startedAt": "2026-07-26T11:58:44.400Z",
+ "finishedAt": "2026-07-26T11:58:58.245Z",
"options": {
"maxPages": 2,
"maxActions": 20,
- "timeoutMs": 10000,
- "settleMs": 800,
- "maxDurationMs": 120000,
+ "timeoutMs": 12000,
+ "settleMs": 700,
+ "maxDurationMs": 300000,
"maxRetries": 2,
- "allowDestructive": true,
+ "allowDestructive": false,
"allowExternal": true,
"mutationAllowed": true,
"deep": true,
@@ -24,11 +24,11 @@
},
"summary": {
"pagesDiscovered": 1,
- "visibleActions": 5,
- "actionsVerified": 5,
+ "visibleActions": 6,
+ "actionsVerified": 6,
"actionsSkipped": 0,
"verdicts": {
- "VERIFIED": 5,
+ "VERIFIED": 6,
"CONTRADICTORY": 0,
"EPHEMERAL": 0,
"BROWSER_LOCAL": 0,
@@ -183,6 +183,58 @@
},
"fields": []
},
+ {
+ "id": "f187769f1589",
+ "pageUrl": "http://127.0.0.1:37300/",
+ "label": "Decrement",
+ "activation": "click",
+ "kind": "local",
+ "intent": "interact",
+ "risk": "safe",
+ "fingerprint": {
+ "selector": "#decrement",
+ "tag": "button",
+ "ordinal": 3,
+ "role": "button",
+ "accessibleName": "Decrement",
+ "text": "Decrement",
+ "id": "decrement",
+ "type": "button",
+ "candidates": [
+ {
+ "strategy": "role",
+ "weight": 92,
+ "role": "button",
+ "name": "Decrement",
+ "exact": true
+ },
+ {
+ "strategy": "role",
+ "weight": 82,
+ "role": "button",
+ "name": "Decrement",
+ "exact": false
+ },
+ {
+ "strategy": "id",
+ "weight": 80,
+ "selector": "#decrement"
+ },
+ {
+ "strategy": "text",
+ "weight": 60,
+ "value": "Decrement",
+ "exact": true
+ },
+ {
+ "strategy": "css",
+ "weight": 35,
+ "selector": "#decrement"
+ }
+ ]
+ },
+ "fields": []
+ },
{
"id": "947f43cdc520",
"pageUrl": "http://127.0.0.1:37300/",
@@ -194,7 +246,7 @@
"fingerprint": {
"selector": "#receipt-form",
"tag": "form",
- "ordinal": 3,
+ "ordinal": 4,
"accessibleName": "Text receipt Store receipt details",
"text": "Text receipt Store receipt details",
"id": "receipt-form",
@@ -240,7 +292,7 @@
"fingerprint": {
"selector": "body > main > section:nth-of-type(3) > a",
"tag": "a",
- "ordinal": 4,
+ "ordinal": 5,
"role": "link",
"accessibleName": "Download CSV",
"text": "Download CSV",
@@ -339,9 +391,9 @@
"fields": []
},
"evidence": {
- "startedAt": "2026-07-26T10:52:12.836Z",
- "durationMs": 2090,
- "canary": "RD_TEST_87A9F2",
+ "startedAt": "2026-07-26T11:58:46.319Z",
+ "durationMs": 1870,
+ "canary": "RD_TEST_A843DD",
"network": [],
"console": [],
"pageErrors": [],
@@ -367,10 +419,10 @@
"retryCount": 0
},
"before": {
- "at": 1096,
+ "at": 1007,
"url": "http://127.0.0.1:37300/",
"title": "Pocket Ledger",
- "domHash": "3c584d8b62afcfc0",
+ "domHash": "f9a40a92fafba7cb",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -382,9 +434,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "33d6fd6e94178d8a",
+ "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 4 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_98A07E_1.txt PORTABLE SNAPSHOT Export current state Download a CSV containing the current counter and receipt metadata. Download CSV",
+ "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",
"controls": [
{
"tag": "select",
@@ -405,7 +457,7 @@
"tag": "button",
"type": "button",
"valueHash": "e3b0c44298fc1c14",
- "disabled": true,
+ "disabled": false,
"visible": true
},
{
@@ -434,7 +486,7 @@
]
},
"busyControls": 0,
- "disabledControls": 1,
+ "disabledControls": 0,
"storage": {
"local": [],
"session": [],
@@ -444,10 +496,10 @@
}
},
"beforeAction": {
- "at": 1108,
+ "at": 1017,
"url": "http://127.0.0.1:37300/",
"title": "Pocket Ledger",
- "domHash": "3c584d8b62afcfc0",
+ "domHash": "f9a40a92fafba7cb",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -459,9 +511,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "33d6fd6e94178d8a",
+ "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 4 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_98A07E_1.txt PORTABLE SNAPSHOT Export current state Download a CSV containing the current counter and receipt metadata. Download CSV",
+ "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",
"controls": [
{
"tag": "select",
@@ -482,7 +534,7 @@
"tag": "button",
"type": "button",
"valueHash": "e3b0c44298fc1c14",
- "disabled": true,
+ "disabled": false,
"visible": true
},
{
@@ -511,7 +563,7 @@
]
},
"busyControls": 0,
- "disabledControls": 1,
+ "disabledControls": 0,
"storage": {
"local": [],
"session": [],
@@ -523,10 +575,10 @@
"networkSettled": true,
"targetBusyAfter": false,
"after": {
- "at": 2086,
+ "at": 1865,
"url": "http://127.0.0.1:37300/#main",
"title": "Pocket Ledger",
- "domHash": "3c584d8b62afcfc0",
+ "domHash": "f9a40a92fafba7cb",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -538,9 +590,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "33d6fd6e94178d8a",
+ "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 4 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_98A07E_1.txt PORTABLE SNAPSHOT Export current state Download a CSV containing the current counter and receipt metadata. Download CSV",
+ "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",
"controls": [
{
"tag": "select",
@@ -561,7 +613,7 @@
"tag": "button",
"type": "button",
"valueHash": "e3b0c44298fc1c14",
- "disabled": true,
+ "disabled": false,
"visible": true
},
{
@@ -590,7 +642,7 @@
]
},
"busyControls": 0,
- "disabledControls": 1,
+ "disabledControls": 0,
"storage": {
"local": [],
"session": [],
@@ -646,9 +698,9 @@
"fields": []
},
"evidence": {
- "startedAt": "2026-07-26T10:52:14.964Z",
- "durationMs": 2057,
- "canary": "RD_TEST_6B506F",
+ "startedAt": "2026-07-26T11:58:48.225Z",
+ "durationMs": 1867,
+ "canary": "RD_TEST_CFB5C6",
"network": [],
"console": [],
"pageErrors": [],
@@ -666,7 +718,7 @@
"weight": 80,
"matchCount": 1,
"visibleCount": 1,
- "elapsedMs": 6
+ "elapsedMs": 7
}
],
"chosenStrategy": "id",
@@ -674,10 +726,10 @@
"retryCount": 0
},
"before": {
- "at": 1088,
+ "at": 1002,
"url": "http://127.0.0.1:37300/",
"title": "Pocket Ledger",
- "domHash": "3c584d8b62afcfc0",
+ "domHash": "f9a40a92fafba7cb",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -689,9 +741,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "33d6fd6e94178d8a",
+ "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 4 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_98A07E_1.txt PORTABLE SNAPSHOT Export current state Download a CSV containing the current counter and receipt metadata. Download CSV",
+ "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",
"controls": [
{
"tag": "select",
@@ -712,7 +764,7 @@
"tag": "button",
"type": "button",
"valueHash": "e3b0c44298fc1c14",
- "disabled": true,
+ "disabled": false,
"visible": true
},
{
@@ -741,7 +793,7 @@
]
},
"busyControls": 0,
- "disabledControls": 1,
+ "disabledControls": 0,
"storage": {
"local": [],
"session": [],
@@ -751,10 +803,10 @@
}
},
"beforeAction": {
- "at": 1100,
+ "at": 1013,
"url": "http://127.0.0.1:37300/",
"title": "Pocket Ledger",
- "domHash": "3c584d8b62afcfc0",
+ "domHash": "f9a40a92fafba7cb",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -766,9 +818,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "33d6fd6e94178d8a",
+ "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 4 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_98A07E_1.txt PORTABLE SNAPSHOT Export current state Download a CSV containing the current counter and receipt metadata. Download CSV",
+ "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",
"controls": [
{
"tag": "select",
@@ -789,7 +841,7 @@
"tag": "button",
"type": "button",
"valueHash": "e3b0c44298fc1c14",
- "disabled": true,
+ "disabled": false,
"visible": true
},
{
@@ -818,7 +870,7 @@
]
},
"busyControls": 0,
- "disabledControls": 1,
+ "disabledControls": 0,
"storage": {
"local": [],
"session": [],
@@ -830,10 +882,10 @@
"networkSettled": true,
"targetBusyAfter": false,
"after": {
- "at": 2053,
+ "at": 1863,
"url": "http://127.0.0.1:37300/",
"title": "Pocket Ledger",
- "domHash": "bc6ea7f6db7d7320",
+ "domHash": "1295db35f098cfe6",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -845,9 +897,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "5541389139c78e6b",
+ "textHash": "3f915bda1f127a6a",
"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 4 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_98A07E_1.txt 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 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.",
"controls": [
{
"tag": "select",
@@ -868,7 +920,7 @@
"tag": "button",
"type": "button",
"valueHash": "e3b0c44298fc1c14",
- "disabled": true,
+ "disabled": false,
"visible": true
},
{
@@ -897,7 +949,7 @@
]
},
"busyControls": 0,
- "disabledControls": 1,
+ "disabledControls": 0,
"storage": {
"local": [
{
@@ -975,19 +1027,19 @@
"fields": []
},
"evidence": {
- "startedAt": "2026-07-26T10:52:17.055Z",
- "durationMs": 2229,
- "canary": "RD_TEST_2EC324",
+ "startedAt": "2026-07-26T11:58:50.127Z",
+ "durationMs": 2000,
+ "canary": "RD_TEST_0DC3BB",
"network": [
{
"id": "net-1",
"method": "POST",
"url": "http://127.0.0.1:37300/api/counter/increment",
"resourceType": "fetch",
- "startedAt": 1123,
+ "startedAt": 1041,
"status": 200,
"ok": true,
- "finishedAt": 1136,
+ "finishedAt": 1053,
"contentType": "application/json",
"resourceTypeHint": "increment"
}
@@ -1016,10 +1068,10 @@
"retryCount": 0
},
"before": {
- "at": 1088,
+ "at": 995,
"url": "http://127.0.0.1:37300/",
"title": "Pocket Ledger",
- "domHash": "3c584d8b62afcfc0",
+ "domHash": "f9a40a92fafba7cb",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -1031,9 +1083,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "33d6fd6e94178d8a",
+ "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 4 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_98A07E_1.txt PORTABLE SNAPSHOT Export current state Download a CSV containing the current counter and receipt metadata. Download CSV",
+ "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",
"controls": [
{
"tag": "select",
@@ -1054,7 +1106,7 @@
"tag": "button",
"type": "button",
"valueHash": "e3b0c44298fc1c14",
- "disabled": true,
+ "disabled": false,
"visible": true
},
{
@@ -1083,7 +1135,7 @@
]
},
"busyControls": 0,
- "disabledControls": 1,
+ "disabledControls": 0,
"storage": {
"local": [],
"session": [],
@@ -1093,10 +1145,10 @@
}
},
"beforeAction": {
- "at": 1098,
+ "at": 1005,
"url": "http://127.0.0.1:37300/",
"title": "Pocket Ledger",
- "domHash": "3c584d8b62afcfc0",
+ "domHash": "f9a40a92fafba7cb",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -1108,9 +1160,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "33d6fd6e94178d8a",
+ "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 4 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_98A07E_1.txt PORTABLE SNAPSHOT Export current state Download a CSV containing the current counter and receipt metadata. Download CSV",
+ "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",
"controls": [
{
"tag": "select",
@@ -1131,7 +1183,7 @@
"tag": "button",
"type": "button",
"valueHash": "e3b0c44298fc1c14",
- "disabled": true,
+ "disabled": false,
"visible": true
},
{
@@ -1160,7 +1212,7 @@
]
},
"busyControls": 0,
- "disabledControls": 1,
+ "disabledControls": 0,
"storage": {
"local": [],
"session": [],
@@ -1172,10 +1224,10 @@
"networkSettled": true,
"targetBusyAfter": false,
"after": {
- "at": 2108,
+ "at": 1905,
"url": "http://127.0.0.1:37300/",
"title": "Pocket Ledger",
- "domHash": "25336baf22e3e652",
+ "domHash": "488a5461c8a14b07",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -1187,9 +1239,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "fba9b9772d25349d",
+ "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 5 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_98A07E_1.txt PORTABLE SNAPSHOT Export current state Download a CSV containing the current counter and receipt metadata. Download CSV Counter incremented.",
+ "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.",
"controls": [
{
"tag": "select",
@@ -1210,7 +1262,7 @@
"tag": "button",
"type": "button",
"valueHash": "e3b0c44298fc1c14",
- "disabled": true,
+ "disabled": false,
"visible": true
},
{
@@ -1239,7 +1291,7 @@
]
},
"busyControls": 0,
- "disabledControls": 1,
+ "disabledControls": 0,
"storage": {
"local": [],
"session": [],
@@ -1259,6 +1311,343 @@
},
{
"id": "RD-004",
+ "action": {
+ "id": "f187769f1589",
+ "pageUrl": "http://127.0.0.1:37300/",
+ "label": "Decrement",
+ "activation": "click",
+ "kind": "local",
+ "intent": "interact",
+ "risk": "safe",
+ "fingerprint": {
+ "selector": "#decrement",
+ "tag": "button",
+ "ordinal": 3,
+ "role": "button",
+ "accessibleName": "Decrement",
+ "text": "Decrement",
+ "id": "decrement",
+ "type": "button",
+ "candidates": [
+ {
+ "strategy": "role",
+ "weight": 92,
+ "role": "button",
+ "name": "Decrement",
+ "exact": true
+ },
+ {
+ "strategy": "role",
+ "weight": 82,
+ "role": "button",
+ "name": "Decrement",
+ "exact": false
+ },
+ {
+ "strategy": "id",
+ "weight": 80,
+ "selector": "#decrement"
+ },
+ {
+ "strategy": "text",
+ "weight": 60,
+ "value": "Decrement",
+ "exact": true
+ },
+ {
+ "strategy": "css",
+ "weight": 35,
+ "selector": "#decrement"
+ }
+ ]
+ },
+ "fields": []
+ },
+ "evidence": {
+ "startedAt": "2026-07-26T11:58:52.163Z",
+ "durationMs": 1995,
+ "canary": "RD_TEST_91A7D3",
+ "network": [
+ {
+ "id": "net-1",
+ "method": "POST",
+ "url": "http://127.0.0.1:37300/api/counter/decrement",
+ "resourceType": "fetch",
+ "startedAt": 1019,
+ "status": 200,
+ "ok": true,
+ "finishedAt": 1033,
+ "contentType": "application/json",
+ "resourceTypeHint": "decrement"
+ }
+ ],
+ "console": [],
+ "pageErrors": [],
+ "uiClaims": [],
+ "filledFields": [],
+ "dialogs": [],
+ "downloads": [],
+ "downloadEvidence": [],
+ "uploads": [],
+ "popupUrls": [],
+ "locatorResolution": {
+ "attempts": [
+ {
+ "strategy": "role",
+ "weight": 92,
+ "matchCount": 1,
+ "visibleCount": 1,
+ "elapsedMs": 4
+ }
+ ],
+ "chosenStrategy": "role",
+ "chosenWeight": 92,
+ "retryCount": 0
+ },
+ "before": {
+ "at": 986,
+ "url": "http://127.0.0.1:37300/",
+ "title": "Pocket Ledger",
+ "domHash": "814ba71c736aa26d",
+ "canaryPresent": false,
+ "bodyCanaryPresent": false,
+ "temporaryBlobUrls": 0,
+ "auth": {
+ "artifacts": 0,
+ "expiredArtifacts": 0,
+ "privateContent": false,
+ "adminContent": false,
+ "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",
+ "controls": [
+ {
+ "tag": "select",
+ "type": "select-one",
+ "name": "role",
+ "valueHash": "e31ab643c44f7a0e",
+ "disabled": false,
+ "visible": true
+ },
+ {
+ "tag": "button",
+ "type": "button",
+ "valueHash": "e3b0c44298fc1c14",
+ "disabled": false,
+ "visible": true
+ },
+ {
+ "tag": "button",
+ "type": "button",
+ "valueHash": "e3b0c44298fc1c14",
+ "disabled": false,
+ "visible": true
+ },
+ {
+ "tag": "button",
+ "type": "button",
+ "valueHash": "e3b0c44298fc1c14",
+ "disabled": false,
+ "visible": false
+ },
+ {
+ "tag": "input",
+ "type": "file",
+ "name": "receipt",
+ "valueHash": "e3b0c44298fc1c14",
+ "checked": false,
+ "disabled": false,
+ "visible": true
+ },
+ {
+ "tag": "button",
+ "type": "submit",
+ "valueHash": "e3b0c44298fc1c14",
+ "disabled": false,
+ "visible": true
+ }
+ ]
+ },
+ "busyControls": 0,
+ "disabledControls": 0,
+ "storage": {
+ "local": [],
+ "session": [],
+ "cookieNames": [],
+ "cookies": [],
+ "indexedDb": []
+ }
+ },
+ "beforeAction": {
+ "at": 995,
+ "url": "http://127.0.0.1:37300/",
+ "title": "Pocket Ledger",
+ "domHash": "814ba71c736aa26d",
+ "canaryPresent": false,
+ "bodyCanaryPresent": false,
+ "temporaryBlobUrls": 0,
+ "auth": {
+ "artifacts": 0,
+ "expiredArtifacts": 0,
+ "privateContent": false,
+ "adminContent": false,
+ "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",
+ "controls": [
+ {
+ "tag": "select",
+ "type": "select-one",
+ "name": "role",
+ "valueHash": "e31ab643c44f7a0e",
+ "disabled": false,
+ "visible": true
+ },
+ {
+ "tag": "button",
+ "type": "button",
+ "valueHash": "e3b0c44298fc1c14",
+ "disabled": false,
+ "visible": true
+ },
+ {
+ "tag": "button",
+ "type": "button",
+ "valueHash": "e3b0c44298fc1c14",
+ "disabled": false,
+ "visible": true
+ },
+ {
+ "tag": "button",
+ "type": "button",
+ "valueHash": "e3b0c44298fc1c14",
+ "disabled": false,
+ "visible": false
+ },
+ {
+ "tag": "input",
+ "type": "file",
+ "name": "receipt",
+ "valueHash": "e3b0c44298fc1c14",
+ "checked": false,
+ "disabled": false,
+ "visible": true
+ },
+ {
+ "tag": "button",
+ "type": "submit",
+ "valueHash": "e3b0c44298fc1c14",
+ "disabled": false,
+ "visible": true
+ }
+ ]
+ },
+ "busyControls": 0,
+ "disabledControls": 0,
+ "storage": {
+ "local": [],
+ "session": [],
+ "cookieNames": [],
+ "cookies": [],
+ "indexedDb": []
+ }
+ },
+ "networkSettled": true,
+ "targetBusyAfter": false,
+ "after": {
+ "at": 1898,
+ "url": "http://127.0.0.1:37300/",
+ "title": "Pocket Ledger",
+ "domHash": "fd7f4b7d86ba989a",
+ "canaryPresent": false,
+ "bodyCanaryPresent": false,
+ "temporaryBlobUrls": 0,
+ "auth": {
+ "artifacts": 0,
+ "expiredArtifacts": 0,
+ "privateContent": false,
+ "adminContent": false,
+ "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.",
+ "controls": [
+ {
+ "tag": "select",
+ "type": "select-one",
+ "name": "role",
+ "valueHash": "e31ab643c44f7a0e",
+ "disabled": false,
+ "visible": true
+ },
+ {
+ "tag": "button",
+ "type": "button",
+ "valueHash": "e3b0c44298fc1c14",
+ "disabled": false,
+ "visible": true
+ },
+ {
+ "tag": "button",
+ "type": "button",
+ "valueHash": "e3b0c44298fc1c14",
+ "disabled": false,
+ "visible": true
+ },
+ {
+ "tag": "button",
+ "type": "button",
+ "valueHash": "e3b0c44298fc1c14",
+ "disabled": false,
+ "visible": false
+ },
+ {
+ "tag": "input",
+ "type": "file",
+ "name": "receipt",
+ "valueHash": "e3b0c44298fc1c14",
+ "checked": false,
+ "disabled": false,
+ "visible": true
+ },
+ {
+ "tag": "button",
+ "type": "submit",
+ "valueHash": "e3b0c44298fc1c14",
+ "disabled": false,
+ "visible": true
+ }
+ ]
+ },
+ "busyControls": 0,
+ "disabledControls": 0,
+ "storage": {
+ "local": [],
+ "session": [],
+ "cookieNames": [],
+ "cookies": [],
+ "indexedDb": []
+ }
+ },
+ "screenshot": "screenshots/f187769f1589-after.png",
+ "trace": "traces/f187769f1589.zip",
+ "snapshotIndex": "snapshots/RD-004.index.json"
+ },
+ "verdict": "VERIFIED",
+ "evidenceLevel": 2,
+ "reason": "The action produced an observable effect.",
+ "detectorMatches": []
+ },
+ {
+ "id": "RD-005",
"action": {
"id": "947f43cdc520",
"pageUrl": "http://127.0.0.1:37300/",
@@ -1270,7 +1659,7 @@
"fingerprint": {
"selector": "#receipt-form",
"tag": "form",
- "ordinal": 3,
+ "ordinal": 4,
"accessibleName": "Text receipt Store receipt details",
"text": "Text receipt Store receipt details",
"id": "receipt-form",
@@ -1306,19 +1695,19 @@
]
},
"evidence": {
- "startedAt": "2026-07-26T10:52:19.319Z",
- "durationMs": 2218,
- "canary": "RD_TEST_9E4048",
+ "startedAt": "2026-07-26T11:58:54.192Z",
+ "durationMs": 2019,
+ "canary": "RD_TEST_A2E7BF",
"network": [
{
"id": "net-1",
"method": "POST",
"url": "http://127.0.0.1:37300/api/receipts",
"resourceType": "fetch",
- "startedAt": 1141,
+ "startedAt": 1040,
"status": 200,
"ok": true,
- "finishedAt": 1153,
+ "finishedAt": 1053,
"contentType": "application/json",
"resourceTypeHint": "receipts"
}
@@ -1331,7 +1720,7 @@
"selector": "#receipt",
"name": "receipt",
"type": "file",
- "value": "RD_TEST_9E4048_1.txt",
+ "value": "RD_TEST_A2E7BF_1.txt",
"redacted": false
}
],
@@ -1340,10 +1729,10 @@
"downloadEvidence": [],
"uploads": [
{
- "fileName": "RD_TEST_9E4048_1.txt",
+ "fileName": "RD_TEST_A2E7BF_1.txt",
"contentType": "text/plain",
"size": 41,
- "contentHash": "3995f03410d9e067",
+ "contentHash": "ac377a08d548abcd",
"containsCanary": true
}
],
@@ -1363,10 +1752,10 @@
"retryCount": 0
},
"before": {
- "at": 1087,
+ "at": 987,
"url": "http://127.0.0.1:37300/",
"title": "Pocket Ledger",
- "domHash": "a148d06bb36e0f9c",
+ "domHash": "f9a40a92fafba7cb",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -1378,9 +1767,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "95f6762886f5d500",
+ "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 5 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_98A07E_1.txt PORTABLE SNAPSHOT Export current state Download a CSV containing the current counter and receipt metadata. Download CSV",
+ "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",
"controls": [
{
"tag": "select",
@@ -1401,7 +1790,7 @@
"tag": "button",
"type": "button",
"valueHash": "e3b0c44298fc1c14",
- "disabled": true,
+ "disabled": false,
"visible": true
},
{
@@ -1430,7 +1819,7 @@
]
},
"busyControls": 0,
- "disabledControls": 1,
+ "disabledControls": 0,
"storage": {
"local": [],
"session": [],
@@ -1440,10 +1829,10 @@
}
},
"beforeAction": {
- "at": 1112,
+ "at": 1010,
"url": "http://127.0.0.1:37300/",
"title": "Pocket Ledger",
- "domHash": "3418e5d3608689bc",
+ "domHash": "6cafb323374a04e6",
"canaryPresent": true,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -1455,9 +1844,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "95f6762886f5d500",
+ "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 5 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_98A07E_1.txt PORTABLE SNAPSHOT Export current state Download a CSV containing the current counter and receipt metadata. Download CSV",
+ "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",
"controls": [
{
"tag": "select",
@@ -1478,7 +1867,7 @@
"tag": "button",
"type": "button",
"valueHash": "e3b0c44298fc1c14",
- "disabled": true,
+ "disabled": false,
"visible": true
},
{
@@ -1492,7 +1881,7 @@
"tag": "input",
"type": "file",
"name": "receipt",
- "valueHash": "d2fe99ebf8040c94",
+ "valueHash": "e6665872a3aaf6d7",
"checked": false,
"disabled": false,
"visible": true
@@ -1507,7 +1896,7 @@
]
},
"busyControls": 0,
- "disabledControls": 1,
+ "disabledControls": 0,
"storage": {
"local": [],
"session": [],
@@ -1519,10 +1908,10 @@
"networkSettled": true,
"targetBusyAfter": false,
"after": {
- "at": 2122,
+ "at": 1924,
"url": "http://127.0.0.1:37300/",
"title": "Pocket Ledger",
- "domHash": "8ea981a860bff596",
+ "domHash": "c73026ca431bb2c9",
"canaryPresent": true,
"bodyCanaryPresent": true,
"temporaryBlobUrls": 0,
@@ -1534,9 +1923,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "04f028b3f54f8419",
+ "textHash": "53b1fb483d539da9",
"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 5 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_9E4048_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.",
+ "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_A2E7BF_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",
@@ -1557,7 +1946,7 @@
"tag": "button",
"type": "button",
"valueHash": "e3b0c44298fc1c14",
- "disabled": true,
+ "disabled": false,
"visible": true
},
{
@@ -1586,7 +1975,7 @@
]
},
"busyControls": 0,
- "disabledControls": 1,
+ "disabledControls": 0,
"storage": {
"local": [],
"session": [],
@@ -1597,7 +1986,7 @@
},
"screenshot": "screenshots/947f43cdc520-after.png",
"trace": "traces/947f43cdc520.zip",
- "snapshotIndex": "snapshots/RD-004.index.json"
+ "snapshotIndex": "snapshots/RD-005.index.json"
},
"verdict": "VERIFIED",
"evidenceLevel": 2,
@@ -1605,7 +1994,7 @@
"detectorMatches": []
},
{
- "id": "RD-005",
+ "id": "RD-006",
"action": {
"id": "837be486ade9",
"pageUrl": "http://127.0.0.1:37300/",
@@ -1617,7 +2006,7 @@
"fingerprint": {
"selector": "body > main > section:nth-of-type(3) > a",
"tag": "a",
- "ordinal": 4,
+ "ordinal": 5,
"role": "link",
"accessibleName": "Download CSV",
"text": "Download CSV",
@@ -1659,9 +2048,9 @@
"fields": []
},
"evidence": {
- "startedAt": "2026-07-26T10:52:21.575Z",
- "durationMs": 2175,
- "canary": "RD_TEST_7FEE9B",
+ "startedAt": "2026-07-26T11:58:56.249Z",
+ "durationMs": 1977,
+ "canary": "RD_TEST_7D2CEF",
"network": [],
"console": [],
"pageErrors": [],
@@ -1675,7 +2064,7 @@
{
"fileName": "pocket-ledger.csv",
"size": 117,
- "contentHash": "4d2e53dc62724a36642c9a5e06a1dcb918322507ecff7fab43780e7926bf06da",
+ "contentHash": "80d48d2d66bbaaf8d1c2fd46a3edc8161ff151f597c7b93848dde0a6d2913d91",
"containsCanary": false,
"expectedFieldValues": 0,
"matchedFieldValues": 0,
@@ -1699,10 +2088,10 @@
"retryCount": 0
},
"before": {
- "at": 1100,
+ "at": 1004,
"url": "http://127.0.0.1:37300/",
"title": "Pocket Ledger",
- "domHash": "32200925706fa31e",
+ "domHash": "7937b049ab65dfd1",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -1714,9 +2103,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "c6b32c9dc4718c5e",
+ "textHash": "cc5e71df737980b9",
"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 5 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_9E4048_1.txt PORTABLE SNAPSHOT Export current state Download a CSV containing the current counter and receipt metadata. Download CSV",
+ "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_A2E7BF_1.txt PORTABLE SNAPSHOT Export current state Download a CSV containing the current counter and receipt metadata. Download CSV",
"controls": [
{
"tag": "select",
@@ -1737,7 +2126,7 @@
"tag": "button",
"type": "button",
"valueHash": "e3b0c44298fc1c14",
- "disabled": true,
+ "disabled": false,
"visible": true
},
{
@@ -1766,7 +2155,7 @@
]
},
"busyControls": 0,
- "disabledControls": 1,
+ "disabledControls": 0,
"storage": {
"local": [],
"session": [],
@@ -1776,10 +2165,10 @@
}
},
"beforeAction": {
- "at": 1110,
+ "at": 1013,
"url": "http://127.0.0.1:37300/",
"title": "Pocket Ledger",
- "domHash": "32200925706fa31e",
+ "domHash": "7937b049ab65dfd1",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -1791,9 +2180,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "c6b32c9dc4718c5e",
+ "textHash": "cc5e71df737980b9",
"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 5 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_9E4048_1.txt PORTABLE SNAPSHOT Export current state Download a CSV containing the current counter and receipt metadata. Download CSV",
+ "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_A2E7BF_1.txt PORTABLE SNAPSHOT Export current state Download a CSV containing the current counter and receipt metadata. Download CSV",
"controls": [
{
"tag": "select",
@@ -1814,7 +2203,7 @@
"tag": "button",
"type": "button",
"valueHash": "e3b0c44298fc1c14",
- "disabled": true,
+ "disabled": false,
"visible": true
},
{
@@ -1843,7 +2232,7 @@
]
},
"busyControls": 0,
- "disabledControls": 1,
+ "disabledControls": 0,
"storage": {
"local": [],
"session": [],
@@ -1855,10 +2244,10 @@
"networkSettled": true,
"targetBusyAfter": false,
"after": {
- "at": 2084,
+ "at": 1882,
"url": "http://127.0.0.1:37300/",
"title": "Pocket Ledger",
- "domHash": "32200925706fa31e",
+ "domHash": "7937b049ab65dfd1",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -1870,9 +2259,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "c6b32c9dc4718c5e",
+ "textHash": "cc5e71df737980b9",
"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 5 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_9E4048_1.txt PORTABLE SNAPSHOT Export current state Download a CSV containing the current counter and receipt metadata. Download CSV",
+ "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_A2E7BF_1.txt PORTABLE SNAPSHOT Export current state Download a CSV containing the current counter and receipt metadata. Download CSV",
"controls": [
{
"tag": "select",
@@ -1893,7 +2282,7 @@
"tag": "button",
"type": "button",
"valueHash": "e3b0c44298fc1c14",
- "disabled": true,
+ "disabled": false,
"visible": true
},
{
@@ -1922,7 +2311,7 @@
]
},
"busyControls": 0,
- "disabledControls": 1,
+ "disabledControls": 0,
"storage": {
"local": [],
"session": [],
@@ -1933,7 +2322,7 @@
},
"screenshot": "screenshots/837be486ade9-after.png",
"trace": "traces/837be486ade9.zip",
- "snapshotIndex": "snapshots/RD-005.index.json"
+ "snapshotIndex": "snapshots/RD-006.index.json"
},
"verdict": "VERIFIED",
"evidenceLevel": 1,
@@ -1943,8 +2332,8 @@
],
"environment": {
"status": "VALID",
- "checkedAt": "2026-07-26T10:52:10.780Z",
- "durationMs": 968,
+ "checkedAt": "2026-07-26T11:58:44.466Z",
+ "durationMs": 865,
"targetUrl": "http://127.0.0.1:37300/",
"mainDocument": {
"status": 200,
@@ -1957,8 +2346,8 @@
"failed": 0
},
"render": {
- "bodyTextLength": 584,
- "visibleElements": 39,
+ "bodyTextLength": 527,
+ "visibleElements": 38,
"interactiveElements": 7,
"ready": true
},
@@ -1972,8 +2361,8 @@
"reasons": [],
"selection": {
"strategy": "coverage-balanced-v1",
- "eligibleActions": 5,
- "selectedActions": 5,
+ "eligibleActions": 6,
+ "selectedActions": 6,
"omittedActions": 0,
"eligiblePages": 1,
"selectedPages": 1,
diff --git a/release/evidence/raw/ai-agent-cycle/baseline.json b/release/evidence/raw/ai-agent-cycle/baseline.json
index 226a68a..fbc5fee 100644
--- a/release/evidence/raw/ai-agent-cycle/baseline.json
+++ b/release/evidence/raw/ai-agent-cycle/baseline.json
@@ -1,6 +1,6 @@
{
"schemaVersion": "1.0",
- "generatedAt": "2026-07-26T10:53:12.965Z",
+ "generatedAt": "2026-07-26T12:00:21.418Z",
"contracts": [
{
"id": "increment-persistent-counter-6270",
@@ -21,7 +21,7 @@
"stepCount": 2,
"baseline": {
"passed": true,
- "verificationId": "20260726T105311Z-4598",
+ "verificationId": "20260726T120020Z-284a",
"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 7acefd5..2cbe1f6 100644
--- a/release/evidence/raw/ai-agent-cycle/codex-session.json
+++ b/release/evidence/raw/ai-agent-cycle/codex-session.json
@@ -13,14 +13,14 @@
{
"tool": "verify_change",
"passed": false,
- "runId": "20260726T105538Z-d5d0",
+ "runId": "20260726T120154Z-2f1d",
"selectedContracts": 1,
"regressions": 1
},
{
"tool": "verify_change",
"passed": true,
- "runId": "20260726T105629Z-4108",
+ "runId": "20260726T120249Z-44ab",
"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 c8f1dd8..6b4f98e 100644
--- a/release/evidence/raw/ai-agent-cycle/failed-verification.json
+++ b/release/evidence/raw/ai-agent-cycle/failed-verification.json
@@ -1,6 +1,6 @@
{
"schemaVersion": "1.0",
- "verificationId": "20260726T105538Z-a11a",
+ "verificationId": "20260726T120154Z-9cb1",
"contractId": "increment-persistent-counter-6270",
"contractName": "Increment persistent counter",
"browser": "chromium",
@@ -8,8 +8,8 @@
"default"
],
"deep": false,
- "startedAt": "2026-07-26T10:55:39.096Z",
- "finishedAt": "2026-07-26T10:55:40.394Z",
+ "startedAt": "2026-07-26T12:01:54.265Z",
+ "finishedAt": "2026-07-26T12:01:55.612Z",
"passed": false,
"steps": [
{
@@ -17,7 +17,7 @@
"type": "navigate",
"role": "default",
"status": "passed",
- "durationMs": 645,
+ "durationMs": 643,
"reason": "Step and recorded expectations passed.",
"assertions": []
},
@@ -26,7 +26,7 @@
"type": "click",
"role": "default",
"status": "failed",
- "durationMs": 557,
+ "durationMs": 572,
"reason": "One or more recorded expectations failed.",
"locatorResolution": {
"attempts": [
@@ -35,7 +35,7 @@
"weight": 92,
"matchCount": 1,
"visibleCount": 1,
- "elapsedMs": 23
+ "elapsedMs": 24
}
],
"chosenStrategy": "role",
@@ -71,6 +71,7 @@
"traces/default.zip"
],
"videos": [],
- "traceSuppressions": []
+ "traceSuppressions": [],
+ "visualSuppressions": []
}
}
diff --git a/release/evidence/raw/ai-agent-cycle/regression.json b/release/evidence/raw/ai-agent-cycle/regression.json
index 353e47d..ff8212b 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": "20260726T105538Z-d5d0",
- "baselineFile": "F:\\RealDone\\work\\phase-i-qualification\\pocket-ledger\\.realdone\\phase-j-baseline.json",
- "generatedAt": "2026-07-26T10:55:40.404Z",
+ "runId": "20260726T120154Z-2f1d",
+ "baselineFile": "F:\\RealDone\\work\\phase-k-qualification\\pocket-project\\.realdone\\phase-k-baseline.json",
+ "generatedAt": "2026-07-26T12:01:55.691Z",
"passed": false,
"selectedContracts": 1,
"regressions": 1,
@@ -32,8 +32,8 @@
false
],
"verificationId": [
- "20260726T105311Z-4598",
- "20260726T105538Z-a11a"
+ "20260726T120020Z-284a",
+ "20260726T120154Z-9cb1"
],
"steps": {
"1": {
diff --git a/release/evidence/raw/ai-agent-cycle/repair.json b/release/evidence/raw/ai-agent-cycle/repair.json
index 76c3803..071fbe1 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": "20260726T105629Z-4108",
- "baselineFile": "F:\\RealDone\\work\\phase-i-qualification\\pocket-ledger\\.realdone\\phase-j-baseline.json",
- "generatedAt": "2026-07-26T10:56:31.240Z",
+ "runId": "20260726T120249Z-44ab",
+ "baselineFile": "F:\\RealDone\\work\\phase-k-qualification\\pocket-project\\.realdone\\phase-k-baseline.json",
+ "generatedAt": "2026-07-26T12:02:50.684Z",
"passed": true,
"selectedContracts": 1,
"regressions": 0,
@@ -26,8 +26,8 @@
"0": {
"baseline": {
"verificationId": [
- "20260726T105311Z-4598",
- "20260726T105629Z-bcb2"
+ "20260726T120020Z-284a",
+ "20260726T120249Z-2afe"
]
}
},
diff --git a/release/evidence/raw/ai-agent-cycle/role-verification.json b/release/evidence/raw/ai-agent-cycle/role-verification.json
index 74ab15b..5f9c09b 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": "20260726T105254Z-3c11",
+ "verificationId": "20260726T115908Z-7a8a",
"contractId": "pocket-ledger-role-authorization",
"contractName": "Member denial and admin visibility",
"browser": "chromium",
@@ -10,8 +10,8 @@
"member"
],
"deep": true,
- "startedAt": "2026-07-26T10:52:54.183Z",
- "finishedAt": "2026-07-26T10:52:55.181Z",
+ "startedAt": "2026-07-26T11:59:08.708Z",
+ "finishedAt": "2026-07-26T11:59:09.914Z",
"passed": true,
"steps": [
{
@@ -19,7 +19,7 @@
"type": "navigate",
"role": "member",
"status": "passed",
- "durationMs": 909,
+ "durationMs": 1144,
"reason": "Step and recorded expectations passed.",
"assertions": [
{
@@ -67,6 +67,16 @@
"traces/admin.zip"
],
"videos": [],
- "traceSuppressions": []
+ "traceSuppressions": [],
+ "visualSuppressions": [
+ {
+ "artifact": "screenshot",
+ "reason": "authenticated-context"
+ },
+ {
+ "artifact": "video",
+ "reason": "authenticated-context"
+ }
+ ]
}
}
diff --git a/release/evidence/raw/conduit-postgres-cleanup.json b/release/evidence/raw/conduit-postgres-cleanup.json
index 722d700..94cb1fd 100644
--- a/release/evidence/raw/conduit-postgres-cleanup.json
+++ b/release/evidence/raw/conduit-postgres-cleanup.json
@@ -1,8 +1,8 @@
{
"schemaVersion": "1.0",
- "generatedAt": "2026-07-26T11:04:00.000Z",
+ "generatedAt": "2026-07-26T12:25:00.000Z",
"adapter": "postgresql",
- "database": "conduit_phase_j",
+ "database": "conduit_phase_k",
"resources": [
{
"resource": "signup-scan-user",
@@ -13,11 +13,27 @@
"resource": "crud-qualification-articles",
"status": "cleaned",
"cleanupKey": "server-generated-primary-key"
+ },
+ {
+ "resource": "qualification-tags",
+ "status": "cleaned",
+ "cleanupKey": "canary-prefix"
}
],
- "deletedRows": 2,
+ "deletedRows": 4,
"remainingQualificationUsers": 0,
"remainingQualificationArticles": 0,
+ "remainingQualificationComments": 0,
+ "remainingQualificationTags": 0,
+ "totalUsersAfterCleanup": 5,
+ "totalRowsAfterCleanup": {
+ "articles": 0,
+ "comments": 0,
+ "tags": 0,
+ "favorites": 0,
+ "followers": 0,
+ "tagList": 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 d74bb7c..d3e1a27 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": "20260726T105841Z-a0d2",
- "targetUrl": "http://127.0.0.1:37213/#/editor",
- "startedAt": "2026-07-26T10:58:41.145Z",
- "finishedAt": "2026-07-26T10:59:16.677Z",
+ "scanId": "20260726T121518Z-1fab",
+ "targetUrl": "http://127.0.0.1:37223/#/editor",
+ "startedAt": "2026-07-26T12:15:18.227Z",
+ "finishedAt": "2026-07-26T12:15:53.728Z",
"options": {
"maxPages": 3,
"maxActions": 50,
@@ -41,12 +41,12 @@
},
"pages": [
{
- "url": "http://127.0.0.1:37213/#/editor",
+ "url": "http://127.0.0.1:37223/#/editor",
"title": "Conduit",
"actions": [
{
- "id": "4240ac8c9986",
- "pageUrl": "http://127.0.0.1:37213/#/editor",
+ "id": "1bf42ddc57a0",
+ "pageUrl": "http://127.0.0.1:37223/#/editor",
"label": "conduit",
"activation": "click",
"kind": "navigation",
@@ -59,7 +59,7 @@
"role": "link",
"accessibleName": "conduit",
"text": "conduit",
- "href": "http://127.0.0.1:37213/#/",
+ "href": "http://127.0.0.1:37223/#/",
"candidates": [
{
"strategy": "role",
@@ -78,7 +78,7 @@
{
"strategy": "href",
"weight": 72,
- "value": "http://127.0.0.1:37213/#/"
+ "value": "http://127.0.0.1:37223/#/"
},
{
"strategy": "text",
@@ -96,8 +96,8 @@
"fields": []
},
{
- "id": "cf7f7e055d50",
- "pageUrl": "http://127.0.0.1:37213/#/editor",
+ "id": "d26ff438143d",
+ "pageUrl": "http://127.0.0.1:37223/#/editor",
"label": "Source code",
"activation": "click",
"kind": "navigation",
@@ -147,8 +147,8 @@
"fields": []
},
{
- "id": "b2ce5788ac2d",
- "pageUrl": "http://127.0.0.1:37213/#/editor",
+ "id": "53cf74a707f5",
+ "pageUrl": "http://127.0.0.1:37223/#/editor",
"label": "Home",
"activation": "click",
"kind": "navigation",
@@ -161,7 +161,7 @@
"role": "link",
"accessibleName": "Home",
"text": "Home",
- "href": "http://127.0.0.1:37213/#/",
+ "href": "http://127.0.0.1:37223/#/",
"candidates": [
{
"strategy": "role",
@@ -180,7 +180,7 @@
{
"strategy": "href",
"weight": 72,
- "value": "http://127.0.0.1:37213/#/"
+ "value": "http://127.0.0.1:37223/#/"
},
{
"strategy": "text",
@@ -198,8 +198,8 @@
"fields": []
},
{
- "id": "38dd0a454d48",
- "pageUrl": "http://127.0.0.1:37213/#/editor",
+ "id": "f33e20a1aa27",
+ "pageUrl": "http://127.0.0.1:37223/#/editor",
"label": "New Article",
"activation": "click",
"kind": "navigation",
@@ -212,7 +212,7 @@
"role": "link",
"accessibleName": "New Article",
"text": "New Article",
- "href": "http://127.0.0.1:37213/#/editor",
+ "href": "http://127.0.0.1:37223/#/editor",
"candidates": [
{
"strategy": "role",
@@ -231,7 +231,7 @@
{
"strategy": "href",
"weight": 72,
- "value": "http://127.0.0.1:37213/#/editor"
+ "value": "http://127.0.0.1:37223/#/editor"
},
{
"strategy": "text",
@@ -249,8 +249,8 @@
"fields": []
},
{
- "id": "b725edd599a8",
- "pageUrl": "http://127.0.0.1:37213/#/editor",
+ "id": "a6522be0fc1d",
+ "pageUrl": "http://127.0.0.1:37223/#/editor",
"label": "Publish Article",
"activation": "submit",
"kind": "mutation",
@@ -316,8 +316,8 @@
]
},
{
- "id": "615ef8bfaf91",
- "pageUrl": "http://127.0.0.1:37213/#/editor",
+ "id": "663211a5be23",
+ "pageUrl": "http://127.0.0.1:37223/#/editor",
"label": "conduit",
"activation": "click",
"kind": "navigation",
@@ -330,7 +330,7 @@
"role": "link",
"accessibleName": "conduit",
"text": "conduit",
- "href": "http://127.0.0.1:37213/#/",
+ "href": "http://127.0.0.1:37223/#/",
"candidates": [
{
"strategy": "role",
@@ -349,7 +349,7 @@
{
"strategy": "href",
"weight": 72,
- "value": "http://127.0.0.1:37213/#/"
+ "value": "http://127.0.0.1:37223/#/"
},
{
"strategy": "text",
@@ -367,8 +367,8 @@
"fields": []
},
{
- "id": "955bb7c4ae7a",
- "pageUrl": "http://127.0.0.1:37213/#/editor",
+ "id": "7c82bc9fd8ce",
+ "pageUrl": "http://127.0.0.1:37223/#/editor",
"label": "Thinkster",
"activation": "click",
"kind": "navigation",
@@ -418,8 +418,8 @@
"fields": []
},
{
- "id": "865611a40b7e",
- "pageUrl": "http://127.0.0.1:37213/#/editor",
+ "id": "ab9bf2cd0dfb",
+ "pageUrl": "http://127.0.0.1:37223/#/editor",
"label": "Source code",
"activation": "click",
"kind": "navigation",
@@ -471,12 +471,12 @@
]
},
{
- "url": "http://127.0.0.1:37213/",
+ "url": "http://127.0.0.1:37223/",
"title": "Conduit",
"actions": [
{
- "id": "a0147c56db57",
- "pageUrl": "http://127.0.0.1:37213/",
+ "id": "92446496b665",
+ "pageUrl": "http://127.0.0.1:37223/",
"label": "conduit",
"activation": "click",
"kind": "navigation",
@@ -489,7 +489,7 @@
"role": "link",
"accessibleName": "conduit",
"text": "conduit",
- "href": "http://127.0.0.1:37213/#/",
+ "href": "http://127.0.0.1:37223/#/",
"candidates": [
{
"strategy": "role",
@@ -508,7 +508,7 @@
{
"strategy": "href",
"weight": 72,
- "value": "http://127.0.0.1:37213/#/"
+ "value": "http://127.0.0.1:37223/#/"
},
{
"strategy": "text",
@@ -526,8 +526,8 @@
"fields": []
},
{
- "id": "36a91b6a1f72",
- "pageUrl": "http://127.0.0.1:37213/",
+ "id": "dff655920243",
+ "pageUrl": "http://127.0.0.1:37223/",
"label": "Source code",
"activation": "click",
"kind": "navigation",
@@ -577,8 +577,8 @@
"fields": []
},
{
- "id": "63ad14060515",
- "pageUrl": "http://127.0.0.1:37213/",
+ "id": "3800f03bc706",
+ "pageUrl": "http://127.0.0.1:37223/",
"label": "Home",
"activation": "click",
"kind": "navigation",
@@ -591,7 +591,7 @@
"role": "link",
"accessibleName": "Home",
"text": "Home",
- "href": "http://127.0.0.1:37213/#/",
+ "href": "http://127.0.0.1:37223/#/",
"candidates": [
{
"strategy": "role",
@@ -610,7 +610,7 @@
{
"strategy": "href",
"weight": 72,
- "value": "http://127.0.0.1:37213/#/"
+ "value": "http://127.0.0.1:37223/#/"
},
{
"strategy": "text",
@@ -628,8 +628,8 @@
"fields": []
},
{
- "id": "2b6be7d79a5f",
- "pageUrl": "http://127.0.0.1:37213/",
+ "id": "c88ed7554ce5",
+ "pageUrl": "http://127.0.0.1:37223/",
"label": "New Article",
"activation": "click",
"kind": "navigation",
@@ -642,7 +642,7 @@
"role": "link",
"accessibleName": "New Article",
"text": "New Article",
- "href": "http://127.0.0.1:37213/#/editor",
+ "href": "http://127.0.0.1:37223/#/editor",
"candidates": [
{
"strategy": "role",
@@ -661,7 +661,7 @@
{
"strategy": "href",
"weight": 72,
- "value": "http://127.0.0.1:37213/#/editor"
+ "value": "http://127.0.0.1:37223/#/editor"
},
{
"strategy": "text",
@@ -679,8 +679,8 @@
"fields": []
},
{
- "id": "b6f0b8724ae3",
- "pageUrl": "http://127.0.0.1:37213/",
+ "id": "d61ab1459de8",
+ "pageUrl": "http://127.0.0.1:37223/",
"label": "Your Feed",
"activation": "click",
"kind": "local",
@@ -725,8 +725,8 @@
"fields": []
},
{
- "id": "98ade3898516",
- "pageUrl": "http://127.0.0.1:37213/",
+ "id": "a69f66f3ce86",
+ "pageUrl": "http://127.0.0.1:37223/",
"label": "Global Feed",
"activation": "click",
"kind": "local",
@@ -771,8 +771,8 @@
"fields": []
},
{
- "id": "60e12226e19d",
- "pageUrl": "http://127.0.0.1:37213/",
+ "id": "9d442a70bdcb",
+ "pageUrl": "http://127.0.0.1:37223/",
"label": "conduit",
"activation": "click",
"kind": "navigation",
@@ -785,7 +785,7 @@
"role": "link",
"accessibleName": "conduit",
"text": "conduit",
- "href": "http://127.0.0.1:37213/#/",
+ "href": "http://127.0.0.1:37223/#/",
"candidates": [
{
"strategy": "role",
@@ -804,7 +804,7 @@
{
"strategy": "href",
"weight": 72,
- "value": "http://127.0.0.1:37213/#/"
+ "value": "http://127.0.0.1:37223/#/"
},
{
"strategy": "text",
@@ -822,8 +822,8 @@
"fields": []
},
{
- "id": "731b624cc34c",
- "pageUrl": "http://127.0.0.1:37213/",
+ "id": "d0d3611360e0",
+ "pageUrl": "http://127.0.0.1:37223/",
"label": "Thinkster",
"activation": "click",
"kind": "navigation",
@@ -873,8 +873,8 @@
"fields": []
},
{
- "id": "c5063859c1ad",
- "pageUrl": "http://127.0.0.1:37213/",
+ "id": "aece598f17f5",
+ "pageUrl": "http://127.0.0.1:37223/",
"label": "Source code",
"activation": "click",
"kind": "navigation",
@@ -930,8 +930,8 @@
{
"id": "RD-001",
"action": {
- "id": "4240ac8c9986",
- "pageUrl": "http://127.0.0.1:37213/#/editor",
+ "id": "1bf42ddc57a0",
+ "pageUrl": "http://127.0.0.1:37223/#/editor",
"label": "conduit",
"activation": "click",
"kind": "navigation",
@@ -944,7 +944,7 @@
"role": "link",
"accessibleName": "conduit",
"text": "conduit",
- "href": "http://127.0.0.1:37213/#/",
+ "href": "http://127.0.0.1:37223/#/",
"candidates": [
{
"strategy": "role",
@@ -963,7 +963,7 @@
{
"strategy": "href",
"weight": 72,
- "value": "http://127.0.0.1:37213/#/"
+ "value": "http://127.0.0.1:37223/#/"
},
{
"strategy": "text",
@@ -981,31 +981,31 @@
"fields": []
},
"evidence": {
- "startedAt": "2026-07-26T10:58:46.373Z",
- "durationMs": 2551,
- "canary": "RD_TEST_96078D",
+ "startedAt": "2026-07-26T12:15:23.416Z",
+ "durationMs": 2587,
+ "canary": "RD_TEST_7E5EC1",
"network": [
{
"id": "net-1",
"method": "GET",
- "url": "http://127.0.0.1:37213/api/articles/feed?limit=3&&offset=0",
+ "url": "http://127.0.0.1:37223/api/articles/feed?limit=3&&offset=0",
"resourceType": "xhr",
- "startedAt": 1585,
+ "startedAt": 1608,
"status": 200,
"ok": true,
- "finishedAt": 1592,
+ "finishedAt": 1614,
"contentType": "application/json",
"resourceTypeHint": "feed"
},
{
"id": "net-2",
"method": "GET",
- "url": "http://127.0.0.1:37213/api/tags",
+ "url": "http://127.0.0.1:37223/api/tags",
"resourceType": "xhr",
- "startedAt": 1586,
+ "startedAt": 1609,
"status": 200,
"ok": true,
- "finishedAt": 1590,
+ "finishedAt": 1613,
"contentType": "application/json",
"resourceTypeHint": "tags"
}
@@ -1019,6 +1019,12 @@
"downloadEvidence": [],
"uploads": [],
"popupUrls": [],
+ "visualSuppressions": [
+ {
+ "artifact": "screenshot",
+ "reason": "authenticated-context"
+ }
+ ],
"locatorResolution": {
"attempts": [
{
@@ -1033,7 +1039,7 @@
"weight": 82,
"matchCount": 2,
"visibleCount": 2,
- "elapsedMs": 6
+ "elapsedMs": 7
},
{
"strategy": "href",
@@ -1054,7 +1060,7 @@
"weight": 35,
"matchCount": 1,
"visibleCount": 1,
- "elapsedMs": 4
+ "elapsedMs": 6
}
],
"chosenStrategy": "css",
@@ -1062,10 +1068,10 @@
"retryCount": 0
},
"before": {
- "at": 1543,
- "url": "http://127.0.0.1:37213/#/editor",
+ "at": 1561,
+ "url": "http://127.0.0.1:37223/#/editor",
"title": "Conduit",
- "domHash": "25121aa0be44bdb5",
+ "domHash": "c936833dbedd7df2",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -1077,9 +1083,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "e43f8008221f4f9e",
+ "textHash": "d0c4b4fdb77a11e9",
"visualHash": "b85410fa0ea5a358",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 Publish Article conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER Publish Article conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
"controls": [
{
"tag": "input",
@@ -1131,7 +1137,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -1142,10 +1148,10 @@
}
},
"beforeAction": {
- "at": 1554,
- "url": "http://127.0.0.1:37213/#/editor",
+ "at": 1577,
+ "url": "http://127.0.0.1:37223/#/editor",
"title": "Conduit",
- "domHash": "25121aa0be44bdb5",
+ "domHash": "c936833dbedd7df2",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -1157,9 +1163,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "e43f8008221f4f9e",
+ "textHash": "d0c4b4fdb77a11e9",
"visualHash": "b85410fa0ea5a358",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 Publish Article conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER Publish Article conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
"controls": [
{
"tag": "input",
@@ -1211,7 +1217,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -1224,10 +1230,10 @@
"networkSettled": true,
"targetBusyAfter": false,
"after": {
- "at": 2547,
- "url": "http://127.0.0.1:37213/#/",
+ "at": 2583,
+ "url": "http://127.0.0.1:37223/#/",
"title": "Conduit",
- "domHash": "712217d34ae7776a",
+ "domHash": "b5f3eaaec75e7b4d",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -1239,9 +1245,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "e7fb8b5727d2c916",
+ "textHash": "8f037986f2b00a1b",
"visualHash": "dfad2167a8f7c17f",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_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_PHASE_K_CRUD_OWNER 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",
@@ -1265,7 +1271,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -1293,8 +1299,8 @@
{
"id": "RD-002",
"action": {
- "id": "b2ce5788ac2d",
- "pageUrl": "http://127.0.0.1:37213/#/editor",
+ "id": "53cf74a707f5",
+ "pageUrl": "http://127.0.0.1:37223/#/editor",
"label": "Home",
"activation": "click",
"kind": "navigation",
@@ -1307,7 +1313,7 @@
"role": "link",
"accessibleName": "Home",
"text": "Home",
- "href": "http://127.0.0.1:37213/#/",
+ "href": "http://127.0.0.1:37223/#/",
"candidates": [
{
"strategy": "role",
@@ -1326,7 +1332,7 @@
{
"strategy": "href",
"weight": 72,
- "value": "http://127.0.0.1:37213/#/"
+ "value": "http://127.0.0.1:37223/#/"
},
{
"strategy": "text",
@@ -1344,31 +1350,31 @@
"fields": []
},
"evidence": {
- "startedAt": "2026-07-26T10:58:48.993Z",
- "durationMs": 2476,
- "canary": "RD_TEST_9F2EBB",
+ "startedAt": "2026-07-26T12:15:26.053Z",
+ "durationMs": 2526,
+ "canary": "RD_TEST_9C0CBB",
"network": [
{
"id": "net-1",
"method": "GET",
- "url": "http://127.0.0.1:37213/api/articles/feed?limit=3&&offset=0",
+ "url": "http://127.0.0.1:37223/api/articles/feed?limit=3&&offset=0",
"resourceType": "xhr",
- "startedAt": 1516,
+ "startedAt": 1554,
"status": 200,
"ok": true,
- "finishedAt": 1523,
+ "finishedAt": 1560,
"contentType": "application/json",
"resourceTypeHint": "feed"
},
{
"id": "net-2",
"method": "GET",
- "url": "http://127.0.0.1:37213/api/tags",
+ "url": "http://127.0.0.1:37223/api/tags",
"resourceType": "xhr",
- "startedAt": 1517,
+ "startedAt": 1555,
"status": 200,
"ok": true,
- "finishedAt": 1522,
+ "finishedAt": 1559,
"contentType": "application/json",
"resourceTypeHint": "tags"
}
@@ -1382,6 +1388,12 @@
"downloadEvidence": [],
"uploads": [],
"popupUrls": [],
+ "visualSuppressions": [
+ {
+ "artifact": "screenshot",
+ "reason": "authenticated-context"
+ }
+ ],
"locatorResolution": {
"attempts": [
{
@@ -1389,7 +1401,7 @@
"weight": 92,
"matchCount": 0,
"visibleCount": 0,
- "elapsedMs": 3
+ "elapsedMs": 4
},
{
"strategy": "role",
@@ -1404,10 +1416,10 @@
"retryCount": 0
},
"before": {
- "at": 1475,
- "url": "http://127.0.0.1:37213/#/editor",
+ "at": 1517,
+ "url": "http://127.0.0.1:37223/#/editor",
"title": "Conduit",
- "domHash": "25121aa0be44bdb5",
+ "domHash": "c936833dbedd7df2",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -1419,9 +1431,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "e43f8008221f4f9e",
+ "textHash": "d0c4b4fdb77a11e9",
"visualHash": "b85410fa0ea5a358",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 Publish Article conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER Publish Article conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
"controls": [
{
"tag": "input",
@@ -1473,7 +1485,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -1484,10 +1496,10 @@
}
},
"beforeAction": {
- "at": 1485,
- "url": "http://127.0.0.1:37213/#/editor",
+ "at": 1526,
+ "url": "http://127.0.0.1:37223/#/editor",
"title": "Conduit",
- "domHash": "25121aa0be44bdb5",
+ "domHash": "c936833dbedd7df2",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -1499,9 +1511,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "e43f8008221f4f9e",
+ "textHash": "d0c4b4fdb77a11e9",
"visualHash": "b85410fa0ea5a358",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 Publish Article conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER Publish Article conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
"controls": [
{
"tag": "input",
@@ -1553,7 +1565,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -1566,10 +1578,10 @@
"networkSettled": true,
"targetBusyAfter": false,
"after": {
- "at": 2472,
- "url": "http://127.0.0.1:37213/#/",
+ "at": 2522,
+ "url": "http://127.0.0.1:37223/#/",
"title": "Conduit",
- "domHash": "712217d34ae7776a",
+ "domHash": "b5f3eaaec75e7b4d",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -1581,9 +1593,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "e7fb8b5727d2c916",
+ "textHash": "8f037986f2b00a1b",
"visualHash": "dfad2167a8f7c17f",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_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_PHASE_K_CRUD_OWNER 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",
@@ -1607,7 +1619,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -1635,8 +1647,8 @@
{
"id": "RD-003",
"action": {
- "id": "b725edd599a8",
- "pageUrl": "http://127.0.0.1:37213/#/editor",
+ "id": "a6522be0fc1d",
+ "pageUrl": "http://127.0.0.1:37223/#/editor",
"label": "Publish Article",
"activation": "submit",
"kind": "mutation",
@@ -1702,19 +1714,19 @@
]
},
"evidence": {
- "startedAt": "2026-07-26T10:58:51.558Z",
- "durationMs": 7183,
- "canary": "RD_TEST_1DB90D",
+ "startedAt": "2026-07-26T12:15:28.705Z",
+ "durationMs": 7158,
+ "canary": "RD_TEST_F3F938",
"network": [
{
"id": "net-1",
"method": "POST",
- "url": "http://127.0.0.1:37213/api/articles",
+ "url": "http://127.0.0.1:37223/api/articles",
"resourceType": "xhr",
- "startedAt": 1624,
+ "startedAt": 1657,
"status": 201,
"ok": true,
- "finishedAt": 1641,
+ "finishedAt": 1674,
"contentType": "application/json",
"resourceTypeHint": "articles"
},
@@ -1723,70 +1735,70 @@
"method": "GET",
"url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwlxdu.woff2",
"resourceType": "font",
- "startedAt": 1649,
+ "startedAt": 1681,
"status": 200,
"ok": true,
- "finishedAt": 1695,
+ "finishedAt": 1727,
"contentType": "font/woff2",
"resourceTypeHint": "6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwlxdu.woff2"
},
{
"id": "net-3",
"method": "GET",
- "url": "http://127.0.0.1:37213/api/articles/rd-test-1db90d-1/comments",
+ "url": "http://127.0.0.1:37223/api/articles/rd-test-f3f938-1/comments",
"resourceType": "xhr",
- "startedAt": 1650,
+ "startedAt": 1683,
"status": 200,
"ok": true,
- "finishedAt": 1659,
+ "finishedAt": 1692,
"contentType": "application/json",
"resourceTypeHint": "comments"
},
{
"id": "net-4",
"method": "GET",
- "url": "http://127.0.0.1:37213/api/articles/rd-test-1db90d-1",
+ "url": "http://127.0.0.1:37223/api/articles/rd-test-f3f938-1",
"resourceType": "xhr",
- "startedAt": 1651,
+ "startedAt": 1684,
"status": 200,
"ok": true,
- "finishedAt": 1663,
+ "finishedAt": 1697,
"contentType": "application/json",
- "resourceTypeHint": "rd-test-1db90d-1"
+ "resourceTypeHint": "rd-test-f3f938-1"
},
{
"id": "net-5",
"method": "GET",
"url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwlxdu.woff2",
"resourceType": "font",
- "startedAt": 1681,
+ "startedAt": 1714,
"status": 200,
"ok": true,
- "finishedAt": 1732,
+ "finishedAt": 1760,
"contentType": "font/woff2",
"resourceTypeHint": "6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwlxdu.woff2"
},
{
"id": "net-6",
"method": "GET",
- "url": "http://127.0.0.1:37213/",
+ "url": "http://127.0.0.1:37223/",
"resourceType": "document",
- "startedAt": 2755,
+ "startedAt": 2746,
"status": 200,
"ok": true,
"contentType": "text/html",
"resourceTypeHint": "resource",
- "finishedAt": 2764
+ "finishedAt": 2755
},
{
"id": "net-7",
"method": "GET",
"url": "http://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css",
"resourceType": "stylesheet",
- "startedAt": 2762,
+ "startedAt": 2753,
"status": 307,
"ok": false,
- "finishedAt": 2765,
+ "finishedAt": 2757,
"location": "https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css",
"resourceTypeHint": "ionicons.min.css"
},
@@ -1795,34 +1807,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": 2762,
+ "startedAt": 2754,
"status": 200,
"ok": true,
- "finishedAt": 2811,
+ "finishedAt": 2794,
"contentType": "text/css",
"resourceTypeHint": "css"
},
{
"id": "net-9",
"method": "GET",
- "url": "http://127.0.0.1:37213/assets/index-CLdavoKn.js",
+ "url": "http://127.0.0.1:37223/assets/index-CLdavoKn.js",
"resourceType": "script",
- "startedAt": 2763,
+ "startedAt": 2754,
"status": 200,
"ok": true,
- "finishedAt": 2775,
+ "finishedAt": 2769,
"contentType": "text/javascript",
"resourceTypeHint": "index-CLdavoKn.js"
},
{
"id": "net-10",
"method": "GET",
- "url": "http://127.0.0.1:37213/assets/index-De1Lwdlm.css",
+ "url": "http://127.0.0.1:37223/assets/index-De1Lwdlm.css",
"resourceType": "stylesheet",
- "startedAt": 2763,
+ "startedAt": 2755,
"status": 200,
"ok": true,
- "finishedAt": 2769,
+ "finishedAt": 2761,
"contentType": "text/css",
"resourceTypeHint": "index-De1Lwdlm.css"
},
@@ -1831,10 +1843,10 @@
"method": "GET",
"url": "https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css",
"resourceType": "stylesheet",
- "startedAt": 2765,
+ "startedAt": 2757,
"status": 200,
"ok": true,
- "finishedAt": 3055,
+ "finishedAt": 3047,
"contentType": "text/css",
"resourceTypeHint": "ionicons.min.css"
},
@@ -1843,10 +1855,10 @@
"method": "GET",
"url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdu.woff2",
"resourceType": "font",
- "startedAt": 3065,
+ "startedAt": 3057,
"status": 200,
"ok": true,
- "finishedAt": 3112,
+ "finishedAt": 3102,
"contentType": "font/woff2",
"resourceTypeHint": "6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdu.woff2"
},
@@ -1855,10 +1867,10 @@
"method": "GET",
"url": "https://code.ionicframework.com/ionicons/2.0.1/fonts/ionicons.ttf?v=2.0.1",
"resourceType": "font",
- "startedAt": 3065,
+ "startedAt": 3057,
"status": 200,
"ok": true,
- "finishedAt": 3186,
+ "finishedAt": 3176,
"contentType": "font/ttf",
"resourceTypeHint": "ionicons.ttf"
},
@@ -1867,10 +1879,10 @@
"method": "GET",
"url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7l.woff2",
"resourceType": "font",
- "startedAt": 3066,
+ "startedAt": 3058,
"status": 200,
"ok": true,
- "finishedAt": 3115,
+ "finishedAt": 3105,
"contentType": "font/woff2",
"resourceTypeHint": "6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7l.woff2"
},
@@ -1879,10 +1891,10 @@
"method": "GET",
"url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwlxdu.woff2",
"resourceType": "font",
- "startedAt": 3066,
+ "startedAt": 3059,
"status": 200,
"ok": true,
- "finishedAt": 3114,
+ "finishedAt": 3104,
"contentType": "font/woff2",
"resourceTypeHint": "6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwlxdu.woff2"
},
@@ -1891,46 +1903,46 @@
"method": "GET",
"url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7nsDI.woff2",
"resourceType": "font",
- "startedAt": 3066,
+ "startedAt": 3059,
"status": 200,
"ok": true,
- "finishedAt": 3164,
+ "finishedAt": 3155,
"contentType": "font/woff2",
"resourceTypeHint": "6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7nsDI.woff2"
},
{
"id": "net-17",
"method": "GET",
- "url": "http://127.0.0.1:37213/api/articles/rd-test-1db90d-1/comments",
+ "url": "http://127.0.0.1:37223/api/articles/rd-test-f3f938-1/comments",
"resourceType": "xhr",
- "startedAt": 3068,
+ "startedAt": 3060,
"status": 200,
"ok": true,
- "finishedAt": 3075,
+ "finishedAt": 3068,
"contentType": "application/json",
"resourceTypeHint": "comments"
},
{
"id": "net-18",
"method": "GET",
- "url": "http://127.0.0.1:37213/api/articles/rd-test-1db90d-1",
+ "url": "http://127.0.0.1:37223/api/articles/rd-test-f3f938-1",
"resourceType": "xhr",
- "startedAt": 3068,
+ "startedAt": 3061,
"status": 200,
"ok": true,
- "finishedAt": 3078,
+ "finishedAt": 3071,
"contentType": "application/json",
- "resourceTypeHint": "rd-test-1db90d-1"
+ "resourceTypeHint": "rd-test-f3f938-1"
},
{
"id": "net-19",
"method": "GET",
- "url": "http://127.0.0.1:37213/api/user",
+ "url": "http://127.0.0.1:37223/api/user",
"resourceType": "xhr",
- "startedAt": 3069,
+ "startedAt": 3061,
"status": 200,
"ok": true,
- "finishedAt": 3076,
+ "finishedAt": 3069,
"contentType": "application/json",
"resourceTypeHint": "user"
},
@@ -1939,34 +1951,34 @@
"method": "GET",
"url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwlxdu.woff2",
"resourceType": "font",
- "startedAt": 3083,
+ "startedAt": 3085,
"status": 200,
"ok": true,
- "finishedAt": 3154,
+ "finishedAt": 3143,
"contentType": "font/woff2",
"resourceTypeHint": "6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwlxdu.woff2"
},
{
"id": "net-21",
"method": "GET",
- "url": "http://127.0.0.1:37213/",
+ "url": "http://127.0.0.1:37223/",
"resourceType": "document",
- "startedAt": 3941,
+ "startedAt": 3885,
"status": 200,
"ok": true,
"contentType": "text/html",
"resourceTypeHint": "resource",
- "finishedAt": 3950
+ "finishedAt": 3893
},
{
"id": "net-22",
"method": "GET",
"url": "http://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css",
"resourceType": "stylesheet",
- "startedAt": 3948,
+ "startedAt": 3892,
"status": 307,
"ok": false,
- "finishedAt": 3951,
+ "finishedAt": 3895,
"location": "https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css",
"resourceTypeHint": "ionicons.min.css"
},
@@ -1975,34 +1987,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": 3948,
+ "startedAt": 3892,
"status": 200,
"ok": true,
- "finishedAt": 3990,
+ "finishedAt": 3929,
"contentType": "text/css",
"resourceTypeHint": "css"
},
{
"id": "net-24",
"method": "GET",
- "url": "http://127.0.0.1:37213/assets/index-CLdavoKn.js",
+ "url": "http://127.0.0.1:37223/assets/index-CLdavoKn.js",
"resourceType": "script",
- "startedAt": 3949,
+ "startedAt": 3892,
"status": 200,
"ok": true,
- "finishedAt": 3961,
+ "finishedAt": 3910,
"contentType": "text/javascript",
"resourceTypeHint": "index-CLdavoKn.js"
},
{
"id": "net-25",
"method": "GET",
- "url": "http://127.0.0.1:37213/assets/index-De1Lwdlm.css",
+ "url": "http://127.0.0.1:37223/assets/index-De1Lwdlm.css",
"resourceType": "stylesheet",
- "startedAt": 3949,
+ "startedAt": 3892,
"status": 200,
"ok": true,
- "finishedAt": 3954,
+ "finishedAt": 3897,
"contentType": "text/css",
"resourceTypeHint": "index-De1Lwdlm.css"
},
@@ -2011,10 +2023,10 @@
"method": "GET",
"url": "https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css",
"resourceType": "stylesheet",
- "startedAt": 3951,
+ "startedAt": 3895,
"status": 200,
"ok": true,
- "finishedAt": 4028,
+ "finishedAt": 3974,
"contentType": "text/css",
"resourceTypeHint": "ionicons.min.css"
},
@@ -2023,10 +2035,10 @@
"method": "GET",
"url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdu.woff2",
"resourceType": "font",
- "startedAt": 4038,
+ "startedAt": 3983,
"status": 200,
"ok": true,
- "finishedAt": 4087,
+ "finishedAt": 4035,
"contentType": "font/woff2",
"resourceTypeHint": "6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdu.woff2"
},
@@ -2035,10 +2047,10 @@
"method": "GET",
"url": "https://code.ionicframework.com/ionicons/2.0.1/fonts/ionicons.ttf?v=2.0.1",
"resourceType": "font",
- "startedAt": 4038,
+ "startedAt": 3984,
"status": 200,
"ok": true,
- "finishedAt": 4157,
+ "finishedAt": 4105,
"contentType": "font/ttf",
"resourceTypeHint": "ionicons.ttf"
},
@@ -2047,10 +2059,10 @@
"method": "GET",
"url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7l.woff2",
"resourceType": "font",
- "startedAt": 4039,
+ "startedAt": 3985,
"status": 200,
"ok": true,
- "finishedAt": 4084,
+ "finishedAt": 4031,
"contentType": "font/woff2",
"resourceTypeHint": "6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7l.woff2"
},
@@ -2059,10 +2071,10 @@
"method": "GET",
"url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwlxdu.woff2",
"resourceType": "font",
- "startedAt": 4040,
+ "startedAt": 3986,
"status": 200,
"ok": true,
- "finishedAt": 4087,
+ "finishedAt": 4034,
"contentType": "font/woff2",
"resourceTypeHint": "6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwlxdu.woff2"
},
@@ -2071,58 +2083,58 @@
"method": "GET",
"url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7nsDI.woff2",
"resourceType": "font",
- "startedAt": 4040,
+ "startedAt": 3986,
"status": 200,
"ok": true,
- "finishedAt": 4088,
+ "finishedAt": 4034,
"contentType": "font/woff2",
"resourceTypeHint": "6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7nsDI.woff2"
},
{
"id": "net-32",
"method": "GET",
- "url": "http://127.0.0.1:37213/api/articles/rd-test-1db90d-1/comments",
+ "url": "http://127.0.0.1:37223/api/articles/rd-test-f3f938-1/comments",
"resourceType": "xhr",
- "startedAt": 4041,
+ "startedAt": 3988,
"status": 200,
"ok": true,
- "finishedAt": 4048,
+ "finishedAt": 3995,
"contentType": "application/json",
"resourceTypeHint": "comments"
},
{
"id": "net-33",
"method": "GET",
- "url": "http://127.0.0.1:37213/api/articles/rd-test-1db90d-1",
+ "url": "http://127.0.0.1:37223/api/articles/rd-test-f3f938-1",
"resourceType": "xhr",
- "startedAt": 4041,
+ "startedAt": 3988,
"status": 200,
"ok": true,
- "finishedAt": 4054,
+ "finishedAt": 4001,
"contentType": "application/json",
- "resourceTypeHint": "rd-test-1db90d-1"
+ "resourceTypeHint": "rd-test-f3f938-1"
},
{
"id": "net-34",
"method": "GET",
- "url": "http://127.0.0.1:37213/api/user",
+ "url": "http://127.0.0.1:37223/api/user",
"resourceType": "xhr",
- "startedAt": 4042,
+ "startedAt": 3989,
"status": 200,
"ok": true,
"contentType": "application/json",
"resourceTypeHint": "user",
- "finishedAt": 4048
+ "finishedAt": 3995
},
{
"id": "net-35",
"method": "GET",
"url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwlxdu.woff2",
"resourceType": "font",
- "startedAt": 4064,
+ "startedAt": 4003,
"status": 200,
"ok": true,
- "finishedAt": 4128,
+ "finishedAt": 4068,
"contentType": "font/woff2",
"resourceTypeHint": "6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwlxdu.woff2"
}
@@ -2135,28 +2147,28 @@
"selector": "body > div > main > div > div > div > div > form > fieldset > fieldset:nth-of-type(1) > input",
"name": "title",
"type": "text",
- "value": "RD_TEST_1DB90D_1",
+ "value": "RD_TEST_F3F938_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_1DB90D_2",
+ "value": "RD_TEST_F3F938_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_1DB90D_3",
+ "value": "RD_TEST_F3F938_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_1DB90D_4",
+ "value": "RD_TEST_F3F938_4",
"redacted": false
}
],
@@ -2165,6 +2177,12 @@
"downloadEvidence": [],
"uploads": [],
"popupUrls": [],
+ "visualSuppressions": [
+ {
+ "artifact": "screenshot",
+ "reason": "authenticated-context"
+ }
+ ],
"locatorResolution": {
"attempts": [
{
@@ -2172,7 +2190,7 @@
"weight": 60,
"matchCount": 1,
"visibleCount": 1,
- "elapsedMs": 4
+ "elapsedMs": 5
}
],
"chosenStrategy": "text",
@@ -2180,10 +2198,10 @@
"retryCount": 0
},
"before": {
- "at": 1513,
- "url": "http://127.0.0.1:37213/#/editor",
+ "at": 1553,
+ "url": "http://127.0.0.1:37223/#/editor",
"title": "Conduit",
- "domHash": "25121aa0be44bdb5",
+ "domHash": "c936833dbedd7df2",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -2195,9 +2213,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "e43f8008221f4f9e",
+ "textHash": "d0c4b4fdb77a11e9",
"visualHash": "b85410fa0ea5a358",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 Publish Article conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER Publish Article conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
"controls": [
{
"tag": "input",
@@ -2249,7 +2267,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -2271,9 +2289,79 @@
"resource": "users",
"schemaHash": "b7a8a911cd0fd4e9",
"rows": [
+ {
+ "keyHash": "186347d9ea7673a2",
+ "rowHash": "4d8311a4b9df0bbb",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "da7114755c3b82ba",
+ "rowHash": "39bd56af0b169023",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "84cf60166b2ca345",
+ "rowHash": "aa49653a67bcd399",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "9ef59241e15425e0",
+ "rowHash": "3343e1b012ad4f04",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "82a8445b12df5a29",
+ "rowHash": "db866c24a3538c63",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "667da1af4b45220f",
+ "rowHash": "5c8f98476fb3bfca",
+ "softDeleted": false
+ }
+ ],
+ "truncated": false
+ },
+ {
+ "adapter": "supabase",
+ "resource": "articles",
+ "schemaHash": "777de19e0eca5f66",
+ "rows": [],
+ "truncated": false
+ },
+ {
+ "adapter": "supabase",
+ "resource": "users",
+ "schemaHash": "cd9a96cfad9b0bff",
+ "rows": [
+ {
+ "keyHash": "186347d9ea7673a2",
+ "rowHash": "4d8311a4b9df0bbb",
+ "softDeleted": false
+ },
{
"keyHash": "da7114755c3b82ba",
- "rowHash": "f1108a413122f589",
+ "rowHash": "39bd56af0b169023",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "84cf60166b2ca345",
+ "rowHash": "aa49653a67bcd399",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "9ef59241e15425e0",
+ "rowHash": "3343e1b012ad4f04",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "82a8445b12df5a29",
+ "rowHash": "db866c24a3538c63",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "667da1af4b45220f",
+ "rowHash": "5c8f98476fb3bfca",
"softDeleted": false
}
],
@@ -2282,10 +2370,10 @@
]
},
"beforeAction": {
- "at": 1571,
- "url": "http://127.0.0.1:37213/#/editor",
+ "at": 1611,
+ "url": "http://127.0.0.1:37223/#/editor",
"title": "Conduit",
- "domHash": "129b77ab6b3ff0ae",
+ "domHash": "eca152a0b620b6b9",
"canaryPresent": true,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -2297,15 +2385,15 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "e43f8008221f4f9e",
+ "textHash": "d0c4b4fdb77a11e9",
"visualHash": "b85410fa0ea5a358",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 Publish Article conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER Publish Article conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
"controls": [
{
"tag": "input",
"type": "text",
"name": "title",
- "valueHash": "b1e6e711a6234597",
+ "valueHash": "4edf37e7b916fb84",
"checked": false,
"disabled": false,
"visible": true
@@ -2314,7 +2402,7 @@
"tag": "input",
"type": "text",
"name": "description",
- "valueHash": "b88339d960a264a0",
+ "valueHash": "05c8c5ab3e5d145c",
"checked": false,
"disabled": false,
"visible": true
@@ -2323,7 +2411,7 @@
"tag": "textarea",
"type": "textarea",
"name": "body",
- "valueHash": "576c4815d7a09b26",
+ "valueHash": "3e20dda6d23b3bfb",
"disabled": false,
"visible": true
},
@@ -2331,7 +2419,7 @@
"tag": "input",
"type": "text",
"name": "tags",
- "valueHash": "77ae5c6394cae14e",
+ "valueHash": "9b3570f9ddf845d4",
"checked": false,
"disabled": false,
"visible": true
@@ -2351,7 +2439,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -2365,10 +2453,10 @@
"networkSettled": true,
"targetBusyAfter": false,
"after": {
- "at": 2696,
- "url": "http://127.0.0.1:37213/#/article/rd-test-1db90d-1",
+ "at": 2740,
+ "url": "http://127.0.0.1:37223/#/article/rd-test-f3f938-1",
"title": "Conduit",
- "domHash": "f6df27fc845c10bf",
+ "domHash": "228fd45ce63fe634",
"canaryPresent": true,
"bodyCanaryPresent": true,
"temporaryBlobUrls": 0,
@@ -2380,9 +2468,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "2c403465c0040d0a",
+ "textHash": "3095f07e5155c8c4",
"visualHash": "471347ba69eaf940",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 RD_TEST_1DB90D_1 RD_TEST_AFDF00_1 July 26, 2026 Delete Article Edit Article RD_TEST_1DB90D_3 RD_TEST_1DB90D_4 RD_TEST_AFDF00_1 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",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER RD_TEST_F3F938_1 RD_PHASE_K_CRUD_OWNER July 26, 2026 Delete Article Edit Article RD_TEST_F3F938_3 RD_TEST_F3F938_4 RD_PHASE_K_CRUD_OWNER 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",
@@ -2434,7 +2522,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -2451,7 +2539,7 @@
"rows": [
{
"keyHash": "186347d9ea7673a2",
- "rowHash": "39c9ca19e186f10d",
+ "rowHash": "6acb0748d78f5535",
"softDeleted": false
}
],
@@ -2462,9 +2550,85 @@
"resource": "users",
"schemaHash": "b7a8a911cd0fd4e9",
"rows": [
+ {
+ "keyHash": "186347d9ea7673a2",
+ "rowHash": "4d8311a4b9df0bbb",
+ "softDeleted": false
+ },
{
"keyHash": "da7114755c3b82ba",
- "rowHash": "f1108a413122f589",
+ "rowHash": "39bd56af0b169023",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "84cf60166b2ca345",
+ "rowHash": "aa49653a67bcd399",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "9ef59241e15425e0",
+ "rowHash": "3343e1b012ad4f04",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "82a8445b12df5a29",
+ "rowHash": "db866c24a3538c63",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "667da1af4b45220f",
+ "rowHash": "5c8f98476fb3bfca",
+ "softDeleted": false
+ }
+ ],
+ "truncated": false
+ },
+ {
+ "adapter": "supabase",
+ "resource": "articles",
+ "schemaHash": "777de19e0eca5f66",
+ "rows": [
+ {
+ "keyHash": "186347d9ea7673a2",
+ "rowHash": "6acb0748d78f5535",
+ "softDeleted": false
+ }
+ ],
+ "truncated": false
+ },
+ {
+ "adapter": "supabase",
+ "resource": "users",
+ "schemaHash": "cd9a96cfad9b0bff",
+ "rows": [
+ {
+ "keyHash": "186347d9ea7673a2",
+ "rowHash": "4d8311a4b9df0bbb",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "da7114755c3b82ba",
+ "rowHash": "39bd56af0b169023",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "84cf60166b2ca345",
+ "rowHash": "aa49653a67bcd399",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "9ef59241e15425e0",
+ "rowHash": "3343e1b012ad4f04",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "82a8445b12df5a29",
+ "rowHash": "db866c24a3538c63",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "667da1af4b45220f",
+ "rowHash": "5c8f98476fb3bfca",
"softDeleted": false
}
],
@@ -2472,12 +2636,11 @@
}
]
},
- "screenshot": "screenshots/b725edd599a8-after.png",
"afterRefresh": {
- "at": 3890,
- "url": "http://127.0.0.1:37213/#/article/rd-test-1db90d-1",
+ "at": 3882,
+ "url": "http://127.0.0.1:37223/#/article/rd-test-f3f938-1",
"title": "Conduit",
- "domHash": "f6df27fc845c10bf",
+ "domHash": "228fd45ce63fe634",
"canaryPresent": true,
"bodyCanaryPresent": true,
"temporaryBlobUrls": 0,
@@ -2489,9 +2652,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "2c403465c0040d0a",
+ "textHash": "3095f07e5155c8c4",
"visualHash": "471347ba69eaf940",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 RD_TEST_1DB90D_1 RD_TEST_AFDF00_1 July 26, 2026 Delete Article Edit Article RD_TEST_1DB90D_3 RD_TEST_1DB90D_4 RD_TEST_AFDF00_1 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",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER RD_TEST_F3F938_1 RD_PHASE_K_CRUD_OWNER July 26, 2026 Delete Article Edit Article RD_TEST_F3F938_3 RD_TEST_F3F938_4 RD_PHASE_K_CRUD_OWNER 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",
@@ -2543,7 +2706,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -2553,12 +2716,11 @@
"indexedDb": []
}
},
- "refreshScreenshot": "screenshots/b725edd599a8-refresh.png",
"afterHardRefresh": {
- "at": 4866,
- "url": "http://127.0.0.1:37213/#/article/rd-test-1db90d-1",
+ "at": 4810,
+ "url": "http://127.0.0.1:37223/#/article/rd-test-f3f938-1",
"title": "Conduit",
- "domHash": "f6df27fc845c10bf",
+ "domHash": "228fd45ce63fe634",
"canaryPresent": true,
"bodyCanaryPresent": true,
"temporaryBlobUrls": 0,
@@ -2570,9 +2732,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "2c403465c0040d0a",
+ "textHash": "3095f07e5155c8c4",
"visualHash": "471347ba69eaf940",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 RD_TEST_1DB90D_1 RD_TEST_AFDF00_1 July 26, 2026 Delete Article Edit Article RD_TEST_1DB90D_3 RD_TEST_1DB90D_4 RD_TEST_AFDF00_1 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",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER RD_TEST_F3F938_1 RD_PHASE_K_CRUD_OWNER July 26, 2026 Delete Article Edit Article RD_TEST_F3F938_3 RD_TEST_F3F938_4 RD_PHASE_K_CRUD_OWNER 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",
@@ -2624,7 +2786,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -2635,10 +2797,10 @@
}
},
"afterNewTab": {
- "at": 5855,
- "url": "http://127.0.0.1:37213/#/editor",
+ "at": 5810,
+ "url": "http://127.0.0.1:37223/#/editor",
"title": "Conduit",
- "domHash": "25121aa0be44bdb5",
+ "domHash": "c936833dbedd7df2",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -2650,9 +2812,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "e43f8008221f4f9e",
+ "textHash": "d0c4b4fdb77a11e9",
"visualHash": "b85410fa0ea5a358",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 Publish Article conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER Publish Article conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
"controls": [
{
"tag": "input",
@@ -2704,7 +2866,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -2715,10 +2877,10 @@
}
},
"afterNewContext": {
- "at": 7180,
- "url": "http://127.0.0.1:37213/#/article/rd-test-1db90d-1",
+ "at": 7155,
+ "url": "http://127.0.0.1:37223/#/article/rd-test-f3f938-1",
"title": "Conduit",
- "domHash": "f6df27fc845c10bf",
+ "domHash": "228fd45ce63fe634",
"canaryPresent": true,
"bodyCanaryPresent": true,
"temporaryBlobUrls": 0,
@@ -2730,9 +2892,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "2c403465c0040d0a",
+ "textHash": "3095f07e5155c8c4",
"visualHash": "471347ba69eaf940",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 RD_TEST_1DB90D_1 RD_TEST_AFDF00_1 July 26, 2026 Delete Article Edit Article RD_TEST_1DB90D_3 RD_TEST_1DB90D_4 RD_TEST_AFDF00_1 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",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER RD_TEST_F3F938_1 RD_PHASE_K_CRUD_OWNER July 26, 2026 Delete Article Edit Article RD_TEST_F3F938_3 RD_TEST_F3F938_4 RD_PHASE_K_CRUD_OWNER 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",
@@ -2784,7 +2946,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -2823,6 +2985,26 @@
"changed": [],
"softDeleted": [],
"truncated": false
+ },
+ {
+ "adapter": "supabase",
+ "resource": "articles",
+ "added": [
+ "186347d9ea7673a2"
+ ],
+ "removed": [],
+ "changed": [],
+ "softDeleted": [],
+ "truncated": false
+ },
+ {
+ "adapter": "supabase",
+ "resource": "users",
+ "added": [],
+ "removed": [],
+ "changed": [],
+ "softDeleted": [],
+ "truncated": false
}
],
"sourceSnapshotErrors": [],
@@ -2836,8 +3018,8 @@
{
"id": "RD-004",
"action": {
- "id": "615ef8bfaf91",
- "pageUrl": "http://127.0.0.1:37213/#/editor",
+ "id": "663211a5be23",
+ "pageUrl": "http://127.0.0.1:37223/#/editor",
"label": "conduit",
"activation": "click",
"kind": "navigation",
@@ -2850,7 +3032,7 @@
"role": "link",
"accessibleName": "conduit",
"text": "conduit",
- "href": "http://127.0.0.1:37213/#/",
+ "href": "http://127.0.0.1:37223/#/",
"candidates": [
{
"strategy": "role",
@@ -2869,7 +3051,7 @@
{
"strategy": "href",
"weight": 72,
- "value": "http://127.0.0.1:37213/#/"
+ "value": "http://127.0.0.1:37223/#/"
},
{
"strategy": "text",
@@ -2887,31 +3069,31 @@
"fields": []
},
"evidence": {
- "startedAt": "2026-07-26T10:58:58.873Z",
- "durationMs": 2517,
- "canary": "RD_TEST_84BB18",
+ "startedAt": "2026-07-26T12:15:35.951Z",
+ "durationMs": 2535,
+ "canary": "RD_TEST_278E60",
"network": [
{
"id": "net-1",
"method": "GET",
- "url": "http://127.0.0.1:37213/api/articles/feed?limit=3&&offset=0",
+ "url": "http://127.0.0.1:37223/api/articles/feed?limit=3&&offset=0",
"resourceType": "xhr",
- "startedAt": 1555,
+ "startedAt": 1557,
"status": 200,
"ok": true,
- "finishedAt": 1561,
+ "finishedAt": 1566,
"contentType": "application/json",
"resourceTypeHint": "feed"
},
{
"id": "net-2",
"method": "GET",
- "url": "http://127.0.0.1:37213/api/tags",
+ "url": "http://127.0.0.1:37223/api/tags",
"resourceType": "xhr",
- "startedAt": 1556,
+ "startedAt": 1558,
"status": 200,
"ok": true,
- "finishedAt": 1560,
+ "finishedAt": 1564,
"contentType": "application/json",
"resourceTypeHint": "tags"
}
@@ -2925,6 +3107,12 @@
"downloadEvidence": [],
"uploads": [],
"popupUrls": [],
+ "visualSuppressions": [
+ {
+ "artifact": "screenshot",
+ "reason": "authenticated-context"
+ }
+ ],
"locatorResolution": {
"attempts": [
{
@@ -2932,14 +3120,14 @@
"weight": 92,
"matchCount": 2,
"visibleCount": 2,
- "elapsedMs": 7
+ "elapsedMs": 8
},
{
"strategy": "role",
"weight": 82,
"matchCount": 2,
"visibleCount": 2,
- "elapsedMs": 7
+ "elapsedMs": 8
},
{
"strategy": "href",
@@ -2953,7 +3141,7 @@
"weight": 60,
"matchCount": 2,
"visibleCount": 2,
- "elapsedMs": 6
+ "elapsedMs": 7
},
{
"strategy": "css",
@@ -2968,10 +3156,10 @@
"retryCount": 0
},
"before": {
- "at": 1520,
- "url": "http://127.0.0.1:37213/#/editor",
+ "at": 1524,
+ "url": "http://127.0.0.1:37223/#/editor",
"title": "Conduit",
- "domHash": "25121aa0be44bdb5",
+ "domHash": "c936833dbedd7df2",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -2983,9 +3171,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "e43f8008221f4f9e",
+ "textHash": "d0c4b4fdb77a11e9",
"visualHash": "b85410fa0ea5a358",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 Publish Article conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER Publish Article conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
"controls": [
{
"tag": "input",
@@ -3037,7 +3225,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -3048,10 +3236,10 @@
}
},
"beforeAction": {
- "at": 1529,
- "url": "http://127.0.0.1:37213/#/editor",
+ "at": 1533,
+ "url": "http://127.0.0.1:37223/#/editor",
"title": "Conduit",
- "domHash": "25121aa0be44bdb5",
+ "domHash": "c936833dbedd7df2",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -3063,9 +3251,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "e43f8008221f4f9e",
+ "textHash": "d0c4b4fdb77a11e9",
"visualHash": "b85410fa0ea5a358",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 Publish Article conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER Publish Article conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
"controls": [
{
"tag": "input",
@@ -3117,7 +3305,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -3130,10 +3318,10 @@
"networkSettled": true,
"targetBusyAfter": false,
"after": {
- "at": 2514,
- "url": "http://127.0.0.1:37213/#/",
+ "at": 2531,
+ "url": "http://127.0.0.1:37223/#/",
"title": "Conduit",
- "domHash": "a2c5dd8fb3c76cc2",
+ "domHash": "09a0c2dcd70a0114",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -3145,9 +3333,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "259817bb48ae635b",
+ "textHash": "b0238cc5ff984bef",
"visualHash": "72ad38eb67085423",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 Your Feed Global Feed Articles not available. Popular Tags RD_TEST_1DB90D_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER Your Feed Global Feed Articles not available. Popular Tags RD_TEST_F3F938_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
"controls": [
{
"tag": "button",
@@ -3178,7 +3366,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -3206,8 +3394,8 @@
{
"id": "RD-005",
"action": {
- "id": "a0147c56db57",
- "pageUrl": "http://127.0.0.1:37213/",
+ "id": "92446496b665",
+ "pageUrl": "http://127.0.0.1:37223/",
"label": "conduit",
"activation": "click",
"kind": "navigation",
@@ -3220,7 +3408,7 @@
"role": "link",
"accessibleName": "conduit",
"text": "conduit",
- "href": "http://127.0.0.1:37213/#/",
+ "href": "http://127.0.0.1:37223/#/",
"candidates": [
{
"strategy": "role",
@@ -3239,7 +3427,7 @@
{
"strategy": "href",
"weight": 72,
- "value": "http://127.0.0.1:37213/#/"
+ "value": "http://127.0.0.1:37223/#/"
},
{
"strategy": "text",
@@ -3257,9 +3445,9 @@
"fields": []
},
"evidence": {
- "startedAt": "2026-07-26T10:59:01.426Z",
- "durationMs": 2519,
- "canary": "RD_TEST_1B18AC",
+ "startedAt": "2026-07-26T12:15:38.510Z",
+ "durationMs": 2523,
+ "canary": "RD_TEST_81BF70",
"network": [],
"console": [],
"pageErrors": [],
@@ -3270,6 +3458,12 @@
"downloadEvidence": [],
"uploads": [],
"popupUrls": [],
+ "visualSuppressions": [
+ {
+ "artifact": "screenshot",
+ "reason": "authenticated-context"
+ }
+ ],
"locatorResolution": {
"attempts": [
{
@@ -3277,7 +3471,7 @@
"weight": 92,
"matchCount": 2,
"visibleCount": 2,
- "elapsedMs": 7
+ "elapsedMs": 8
},
{
"strategy": "role",
@@ -3313,10 +3507,10 @@
"retryCount": 0
},
"before": {
- "at": 1514,
- "url": "http://127.0.0.1:37213/",
+ "at": 1519,
+ "url": "http://127.0.0.1:37223/",
"title": "Conduit",
- "domHash": "a2c5dd8fb3c76cc2",
+ "domHash": "09a0c2dcd70a0114",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -3328,9 +3522,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "259817bb48ae635b",
+ "textHash": "b0238cc5ff984bef",
"visualHash": "72ad38eb67085423",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 Your Feed Global Feed Articles not available. Popular Tags RD_TEST_1DB90D_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER Your Feed Global Feed Articles not available. Popular Tags RD_TEST_F3F938_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
"controls": [
{
"tag": "button",
@@ -3361,7 +3555,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -3372,10 +3566,10 @@
}
},
"beforeAction": {
- "at": 1522,
- "url": "http://127.0.0.1:37213/",
+ "at": 1527,
+ "url": "http://127.0.0.1:37223/",
"title": "Conduit",
- "domHash": "a2c5dd8fb3c76cc2",
+ "domHash": "09a0c2dcd70a0114",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -3387,9 +3581,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "259817bb48ae635b",
+ "textHash": "b0238cc5ff984bef",
"visualHash": "72ad38eb67085423",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 Your Feed Global Feed Articles not available. Popular Tags RD_TEST_1DB90D_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER Your Feed Global Feed Articles not available. Popular Tags RD_TEST_F3F938_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
"controls": [
{
"tag": "button",
@@ -3420,7 +3614,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -3433,10 +3627,10 @@
"networkSettled": true,
"targetBusyAfter": false,
"after": {
- "at": 2515,
- "url": "http://127.0.0.1:37213/#/",
+ "at": 2519,
+ "url": "http://127.0.0.1:37223/#/",
"title": "Conduit",
- "domHash": "a2c5dd8fb3c76cc2",
+ "domHash": "09a0c2dcd70a0114",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -3448,9 +3642,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "259817bb48ae635b",
+ "textHash": "b0238cc5ff984bef",
"visualHash": "72ad38eb67085423",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 Your Feed Global Feed Articles not available. Popular Tags RD_TEST_1DB90D_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER Your Feed Global Feed Articles not available. Popular Tags RD_TEST_F3F938_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
"controls": [
{
"tag": "button",
@@ -3481,7 +3675,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -3509,8 +3703,8 @@
{
"id": "RD-006",
"action": {
- "id": "63ad14060515",
- "pageUrl": "http://127.0.0.1:37213/",
+ "id": "3800f03bc706",
+ "pageUrl": "http://127.0.0.1:37223/",
"label": "Home",
"activation": "click",
"kind": "navigation",
@@ -3523,7 +3717,7 @@
"role": "link",
"accessibleName": "Home",
"text": "Home",
- "href": "http://127.0.0.1:37213/#/",
+ "href": "http://127.0.0.1:37223/#/",
"candidates": [
{
"strategy": "role",
@@ -3542,7 +3736,7 @@
{
"strategy": "href",
"weight": 72,
- "value": "http://127.0.0.1:37213/#/"
+ "value": "http://127.0.0.1:37223/#/"
},
{
"strategy": "text",
@@ -3560,9 +3754,9 @@
"fields": []
},
"evidence": {
- "startedAt": "2026-07-26T10:59:03.972Z",
- "durationMs": 2496,
- "canary": "RD_TEST_F68B22",
+ "startedAt": "2026-07-26T12:15:41.061Z",
+ "durationMs": 2517,
+ "canary": "RD_TEST_FBE3AC",
"network": [],
"console": [],
"pageErrors": [],
@@ -3573,6 +3767,12 @@
"downloadEvidence": [],
"uploads": [],
"popupUrls": [],
+ "visualSuppressions": [
+ {
+ "artifact": "screenshot",
+ "reason": "authenticated-context"
+ }
+ ],
"locatorResolution": {
"attempts": [
{
@@ -3580,7 +3780,7 @@
"weight": 92,
"matchCount": 0,
"visibleCount": 0,
- "elapsedMs": 3
+ "elapsedMs": 4
},
{
"strategy": "role",
@@ -3595,10 +3795,10 @@
"retryCount": 0
},
"before": {
- "at": 1489,
- "url": "http://127.0.0.1:37213/",
+ "at": 1510,
+ "url": "http://127.0.0.1:37223/",
"title": "Conduit",
- "domHash": "a2c5dd8fb3c76cc2",
+ "domHash": "09a0c2dcd70a0114",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -3610,9 +3810,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "259817bb48ae635b",
+ "textHash": "b0238cc5ff984bef",
"visualHash": "72ad38eb67085423",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 Your Feed Global Feed Articles not available. Popular Tags RD_TEST_1DB90D_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER Your Feed Global Feed Articles not available. Popular Tags RD_TEST_F3F938_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
"controls": [
{
"tag": "button",
@@ -3643,7 +3843,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -3654,10 +3854,10 @@
}
},
"beforeAction": {
- "at": 1499,
- "url": "http://127.0.0.1:37213/",
+ "at": 1519,
+ "url": "http://127.0.0.1:37223/",
"title": "Conduit",
- "domHash": "a2c5dd8fb3c76cc2",
+ "domHash": "09a0c2dcd70a0114",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -3669,9 +3869,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "259817bb48ae635b",
+ "textHash": "b0238cc5ff984bef",
"visualHash": "72ad38eb67085423",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 Your Feed Global Feed Articles not available. Popular Tags RD_TEST_1DB90D_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER Your Feed Global Feed Articles not available. Popular Tags RD_TEST_F3F938_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
"controls": [
{
"tag": "button",
@@ -3702,7 +3902,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -3715,10 +3915,10 @@
"networkSettled": true,
"targetBusyAfter": false,
"after": {
- "at": 2492,
- "url": "http://127.0.0.1:37213/#/",
+ "at": 2513,
+ "url": "http://127.0.0.1:37223/#/",
"title": "Conduit",
- "domHash": "a2c5dd8fb3c76cc2",
+ "domHash": "09a0c2dcd70a0114",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -3730,9 +3930,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "259817bb48ae635b",
+ "textHash": "b0238cc5ff984bef",
"visualHash": "72ad38eb67085423",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 Your Feed Global Feed Articles not available. Popular Tags RD_TEST_1DB90D_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER Your Feed Global Feed Articles not available. Popular Tags RD_TEST_F3F938_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
"controls": [
{
"tag": "button",
@@ -3763,7 +3963,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -3791,8 +3991,8 @@
{
"id": "RD-007",
"action": {
- "id": "2b6be7d79a5f",
- "pageUrl": "http://127.0.0.1:37213/",
+ "id": "c88ed7554ce5",
+ "pageUrl": "http://127.0.0.1:37223/",
"label": "New Article",
"activation": "click",
"kind": "navigation",
@@ -3805,7 +4005,7 @@
"role": "link",
"accessibleName": "New Article",
"text": "New Article",
- "href": "http://127.0.0.1:37213/#/editor",
+ "href": "http://127.0.0.1:37223/#/editor",
"candidates": [
{
"strategy": "role",
@@ -3824,7 +4024,7 @@
{
"strategy": "href",
"weight": 72,
- "value": "http://127.0.0.1:37213/#/editor"
+ "value": "http://127.0.0.1:37223/#/editor"
},
{
"strategy": "text",
@@ -3842,9 +4042,9 @@
"fields": []
},
"evidence": {
- "startedAt": "2026-07-26T10:59:06.496Z",
- "durationMs": 2495,
- "canary": "RD_TEST_836648",
+ "startedAt": "2026-07-26T12:15:43.604Z",
+ "durationMs": 2494,
+ "canary": "RD_TEST_BD6E18",
"network": [],
"console": [],
"pageErrors": [],
@@ -3855,6 +4055,12 @@
"downloadEvidence": [],
"uploads": [],
"popupUrls": [],
+ "visualSuppressions": [
+ {
+ "artifact": "screenshot",
+ "reason": "authenticated-context"
+ }
+ ],
"locatorResolution": {
"attempts": [
{
@@ -3869,7 +4075,7 @@
"weight": 82,
"matchCount": 1,
"visibleCount": 1,
- "elapsedMs": 4
+ "elapsedMs": 5
}
],
"chosenStrategy": "role",
@@ -3877,10 +4083,10 @@
"retryCount": 0
},
"before": {
- "at": 1492,
- "url": "http://127.0.0.1:37213/",
+ "at": 1469,
+ "url": "http://127.0.0.1:37223/",
"title": "Conduit",
- "domHash": "a2c5dd8fb3c76cc2",
+ "domHash": "09a0c2dcd70a0114",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -3892,9 +4098,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "259817bb48ae635b",
+ "textHash": "b0238cc5ff984bef",
"visualHash": "72ad38eb67085423",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 Your Feed Global Feed Articles not available. Popular Tags RD_TEST_1DB90D_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER Your Feed Global Feed Articles not available. Popular Tags RD_TEST_F3F938_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
"controls": [
{
"tag": "button",
@@ -3925,7 +4131,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -3936,10 +4142,10 @@
}
},
"beforeAction": {
- "at": 1500,
- "url": "http://127.0.0.1:37213/",
+ "at": 1482,
+ "url": "http://127.0.0.1:37223/",
"title": "Conduit",
- "domHash": "a2c5dd8fb3c76cc2",
+ "domHash": "09a0c2dcd70a0114",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -3951,9 +4157,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "259817bb48ae635b",
+ "textHash": "b0238cc5ff984bef",
"visualHash": "72ad38eb67085423",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 Your Feed Global Feed Articles not available. Popular Tags RD_TEST_1DB90D_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER Your Feed Global Feed Articles not available. Popular Tags RD_TEST_F3F938_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
"controls": [
{
"tag": "button",
@@ -3984,7 +4190,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -3997,10 +4203,10 @@
"networkSettled": true,
"targetBusyAfter": false,
"after": {
- "at": 2491,
- "url": "http://127.0.0.1:37213/#/editor",
+ "at": 2488,
+ "url": "http://127.0.0.1:37223/#/editor",
"title": "Conduit",
- "domHash": "25121aa0be44bdb5",
+ "domHash": "c936833dbedd7df2",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -4012,9 +4218,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "e43f8008221f4f9e",
+ "textHash": "d0c4b4fdb77a11e9",
"visualHash": "b85410fa0ea5a358",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 Publish Article conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER Publish Article conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
"controls": [
{
"tag": "input",
@@ -4066,7 +4272,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -4094,8 +4300,8 @@
{
"id": "RD-008",
"action": {
- "id": "b6f0b8724ae3",
- "pageUrl": "http://127.0.0.1:37213/",
+ "id": "d61ab1459de8",
+ "pageUrl": "http://127.0.0.1:37223/",
"label": "Your Feed",
"activation": "click",
"kind": "local",
@@ -4140,19 +4346,19 @@
"fields": []
},
"evidence": {
- "startedAt": "2026-07-26T10:59:09.031Z",
- "durationMs": 2546,
- "canary": "RD_TEST_B153C4",
+ "startedAt": "2026-07-26T12:15:46.123Z",
+ "durationMs": 2509,
+ "canary": "RD_TEST_442023",
"network": [
{
"id": "net-1",
"method": "GET",
- "url": "http://127.0.0.1:37213/api/articles/feed?limit=3&&offset=0",
+ "url": "http://127.0.0.1:37223/api/articles/feed?limit=3&&offset=0",
"resourceType": "xhr",
- "startedAt": 1547,
+ "startedAt": 1537,
"status": 200,
"ok": true,
- "finishedAt": 1558,
+ "finishedAt": 1547,
"contentType": "application/json",
"resourceTypeHint": "feed"
}
@@ -4166,6 +4372,12 @@
"downloadEvidence": [],
"uploads": [],
"popupUrls": [],
+ "visualSuppressions": [
+ {
+ "artifact": "screenshot",
+ "reason": "authenticated-context"
+ }
+ ],
"locatorResolution": {
"attempts": [
{
@@ -4173,7 +4385,7 @@
"weight": 92,
"matchCount": 1,
"visibleCount": 1,
- "elapsedMs": 4
+ "elapsedMs": 5
}
],
"chosenStrategy": "role",
@@ -4181,10 +4393,10 @@
"retryCount": 0
},
"before": {
- "at": 1507,
- "url": "http://127.0.0.1:37213/",
+ "at": 1504,
+ "url": "http://127.0.0.1:37223/",
"title": "Conduit",
- "domHash": "a2c5dd8fb3c76cc2",
+ "domHash": "09a0c2dcd70a0114",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -4196,9 +4408,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "259817bb48ae635b",
+ "textHash": "b0238cc5ff984bef",
"visualHash": "72ad38eb67085423",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 Your Feed Global Feed Articles not available. Popular Tags RD_TEST_1DB90D_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER Your Feed Global Feed Articles not available. Popular Tags RD_TEST_F3F938_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
"controls": [
{
"tag": "button",
@@ -4229,7 +4441,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -4240,10 +4452,10 @@
}
},
"beforeAction": {
- "at": 1516,
- "url": "http://127.0.0.1:37213/",
+ "at": 1513,
+ "url": "http://127.0.0.1:37223/",
"title": "Conduit",
- "domHash": "a2c5dd8fb3c76cc2",
+ "domHash": "09a0c2dcd70a0114",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -4255,9 +4467,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "259817bb48ae635b",
+ "textHash": "b0238cc5ff984bef",
"visualHash": "72ad38eb67085423",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 Your Feed Global Feed Articles not available. Popular Tags RD_TEST_1DB90D_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER Your Feed Global Feed Articles not available. Popular Tags RD_TEST_F3F938_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
"controls": [
{
"tag": "button",
@@ -4288,7 +4500,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -4301,10 +4513,10 @@
"networkSettled": true,
"targetBusyAfter": false,
"after": {
- "at": 2520,
- "url": "http://127.0.0.1:37213/",
+ "at": 2506,
+ "url": "http://127.0.0.1:37223/",
"title": "Conduit",
- "domHash": "a2c5dd8fb3c76cc2",
+ "domHash": "09a0c2dcd70a0114",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -4316,9 +4528,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "259817bb48ae635b",
+ "textHash": "b0238cc5ff984bef",
"visualHash": "72ad38eb67085423",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 Your Feed Global Feed Articles not available. Popular Tags RD_TEST_1DB90D_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER Your Feed Global Feed Articles not available. Popular Tags RD_TEST_F3F938_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
"controls": [
{
"tag": "button",
@@ -4349,7 +4561,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -4359,7 +4571,6 @@
"indexedDb": []
}
},
- "screenshot": "screenshots/b6f0b8724ae3-after.png",
"traceSuppression": {
"artifact": "trace",
"reason": "secret-detected",
@@ -4378,8 +4589,8 @@
{
"id": "RD-009",
"action": {
- "id": "98ade3898516",
- "pageUrl": "http://127.0.0.1:37213/",
+ "id": "a69f66f3ce86",
+ "pageUrl": "http://127.0.0.1:37223/",
"label": "Global Feed",
"activation": "click",
"kind": "local",
@@ -4424,19 +4635,19 @@
"fields": []
},
"evidence": {
- "startedAt": "2026-07-26T10:59:11.614Z",
- "durationMs": 2519,
- "canary": "RD_TEST_A4CBAB",
+ "startedAt": "2026-07-26T12:15:48.656Z",
+ "durationMs": 2507,
+ "canary": "RD_TEST_4BB6A5",
"network": [
{
"id": "net-1",
"method": "GET",
- "url": "http://127.0.0.1:37213/api/articles?limit=3&&offset=0",
+ "url": "http://127.0.0.1:37223/api/articles?limit=3&&offset=0",
"resourceType": "xhr",
- "startedAt": 1480,
+ "startedAt": 1469,
"status": 200,
"ok": true,
- "finishedAt": 1491,
+ "finishedAt": 1482,
"contentType": "application/json",
"resourceTypeHint": "articles"
},
@@ -4445,10 +4656,10 @@
"method": "GET",
"url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwlxdu.woff2",
"resourceType": "font",
- "startedAt": 1505,
+ "startedAt": 1496,
"status": 200,
"ok": true,
- "finishedAt": 1548,
+ "finishedAt": 1541,
"contentType": "font/woff2",
"resourceTypeHint": "6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwlxdu.woff2"
}
@@ -4462,6 +4673,12 @@
"downloadEvidence": [],
"uploads": [],
"popupUrls": [],
+ "visualSuppressions": [
+ {
+ "artifact": "screenshot",
+ "reason": "authenticated-context"
+ }
+ ],
"locatorResolution": {
"attempts": [
{
@@ -4477,10 +4694,10 @@
"retryCount": 0
},
"before": {
- "at": 1444,
- "url": "http://127.0.0.1:37213/",
+ "at": 1443,
+ "url": "http://127.0.0.1:37223/",
"title": "Conduit",
- "domHash": "a2c5dd8fb3c76cc2",
+ "domHash": "09a0c2dcd70a0114",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -4492,9 +4709,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "259817bb48ae635b",
+ "textHash": "b0238cc5ff984bef",
"visualHash": "72ad38eb67085423",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 Your Feed Global Feed Articles not available. Popular Tags RD_TEST_1DB90D_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER Your Feed Global Feed Articles not available. Popular Tags RD_TEST_F3F938_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
"controls": [
{
"tag": "button",
@@ -4525,7 +4742,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -4537,9 +4754,9 @@
},
"beforeAction": {
"at": 1452,
- "url": "http://127.0.0.1:37213/",
+ "url": "http://127.0.0.1:37223/",
"title": "Conduit",
- "domHash": "a2c5dd8fb3c76cc2",
+ "domHash": "09a0c2dcd70a0114",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -4551,9 +4768,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "259817bb48ae635b",
+ "textHash": "b0238cc5ff984bef",
"visualHash": "72ad38eb67085423",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 Your Feed Global Feed Articles not available. Popular Tags RD_TEST_1DB90D_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER Your Feed Global Feed Articles not available. Popular Tags RD_TEST_F3F938_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
"controls": [
{
"tag": "button",
@@ -4584,7 +4801,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -4597,10 +4814,10 @@
"networkSettled": true,
"targetBusyAfter": false,
"after": {
- "at": 2514,
- "url": "http://127.0.0.1:37213/",
+ "at": 2503,
+ "url": "http://127.0.0.1:37223/",
"title": "Conduit",
- "domHash": "1833272e3e93cd5f",
+ "domHash": "e4b4be49562e496e",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -4612,9 +4829,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "2e9dec301abdcb4f",
+ "textHash": "3739616a12c17583",
"visualHash": "805f65e8f4aada8d",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 Your Feed Global Feed RD_TEST_AFDF00_1 July 26, 2026 ( 0 ) RD_TEST_1DB90D_1 RD_TEST_1DB90D_2 Read more... RD_TEST_1DB90D_4 1 Popular Tags RD_TEST_1DB90D_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER Your Feed Global Feed RD_PHASE_K_CRUD_OWNER July 26, 2026 ( 0 ) RD_TEST_F3F938_1 RD_TEST_F3F938_2 Read more... RD_TEST_F3F938_4 1 Popular Tags RD_TEST_F3F938_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
"controls": [
{
"tag": "button",
@@ -4652,7 +4869,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -4680,8 +4897,8 @@
{
"id": "RD-010",
"action": {
- "id": "60e12226e19d",
- "pageUrl": "http://127.0.0.1:37213/",
+ "id": "9d442a70bdcb",
+ "pageUrl": "http://127.0.0.1:37223/",
"label": "conduit",
"activation": "click",
"kind": "navigation",
@@ -4694,7 +4911,7 @@
"role": "link",
"accessibleName": "conduit",
"text": "conduit",
- "href": "http://127.0.0.1:37213/#/",
+ "href": "http://127.0.0.1:37223/#/",
"candidates": [
{
"strategy": "role",
@@ -4713,7 +4930,7 @@
{
"strategy": "href",
"weight": 72,
- "value": "http://127.0.0.1:37213/#/"
+ "value": "http://127.0.0.1:37223/#/"
},
{
"strategy": "text",
@@ -4731,9 +4948,9 @@
"fields": []
},
"evidence": {
- "startedAt": "2026-07-26T10:59:14.175Z",
- "durationMs": 2474,
- "canary": "RD_TEST_A94CD5",
+ "startedAt": "2026-07-26T12:15:51.187Z",
+ "durationMs": 2516,
+ "canary": "RD_TEST_C7F261",
"network": [],
"console": [],
"pageErrors": [],
@@ -4744,6 +4961,12 @@
"downloadEvidence": [],
"uploads": [],
"popupUrls": [],
+ "visualSuppressions": [
+ {
+ "artifact": "screenshot",
+ "reason": "authenticated-context"
+ }
+ ],
"locatorResolution": {
"attempts": [
{
@@ -4751,7 +4974,7 @@
"weight": 92,
"matchCount": 2,
"visibleCount": 2,
- "elapsedMs": 8
+ "elapsedMs": 7
},
{
"strategy": "role",
@@ -4772,7 +4995,7 @@
"weight": 60,
"matchCount": 2,
"visibleCount": 2,
- "elapsedMs": 6
+ "elapsedMs": 7
},
{
"strategy": "css",
@@ -4787,10 +5010,10 @@
"retryCount": 0
},
"before": {
- "at": 1494,
- "url": "http://127.0.0.1:37213/",
+ "at": 1506,
+ "url": "http://127.0.0.1:37223/",
"title": "Conduit",
- "domHash": "a2c5dd8fb3c76cc2",
+ "domHash": "09a0c2dcd70a0114",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -4802,9 +5025,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "259817bb48ae635b",
+ "textHash": "b0238cc5ff984bef",
"visualHash": "72ad38eb67085423",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 Your Feed Global Feed Articles not available. Popular Tags RD_TEST_1DB90D_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER Your Feed Global Feed Articles not available. Popular Tags RD_TEST_F3F938_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
"controls": [
{
"tag": "button",
@@ -4835,7 +5058,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -4846,10 +5069,10 @@
}
},
"beforeAction": {
- "at": 1502,
- "url": "http://127.0.0.1:37213/",
+ "at": 1515,
+ "url": "http://127.0.0.1:37223/",
"title": "Conduit",
- "domHash": "a2c5dd8fb3c76cc2",
+ "domHash": "09a0c2dcd70a0114",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -4861,9 +5084,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "259817bb48ae635b",
+ "textHash": "b0238cc5ff984bef",
"visualHash": "72ad38eb67085423",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 Your Feed Global Feed Articles not available. Popular Tags RD_TEST_1DB90D_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER Your Feed Global Feed Articles not available. Popular Tags RD_TEST_F3F938_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
"controls": [
{
"tag": "button",
@@ -4894,7 +5117,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -4907,10 +5130,10 @@
"networkSettled": true,
"targetBusyAfter": false,
"after": {
- "at": 2470,
- "url": "http://127.0.0.1:37213/#/",
+ "at": 2512,
+ "url": "http://127.0.0.1:37223/#/",
"title": "Conduit",
- "domHash": "a2c5dd8fb3c76cc2",
+ "domHash": "09a0c2dcd70a0114",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -4922,9 +5145,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "259817bb48ae635b",
+ "textHash": "b0238cc5ff984bef",
"visualHash": "72ad38eb67085423",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 Your Feed Global Feed Articles not available. Popular Tags RD_TEST_1DB90D_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER Your Feed Global Feed Articles not available. Popular Tags RD_TEST_F3F938_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
"controls": [
{
"tag": "button",
@@ -4955,7 +5178,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -4983,8 +5206,8 @@
{
"id": "RD-011",
"action": {
- "id": "cf7f7e055d50",
- "pageUrl": "http://127.0.0.1:37213/#/editor",
+ "id": "d26ff438143d",
+ "pageUrl": "http://127.0.0.1:37223/#/editor",
"label": "Source code",
"activation": "click",
"kind": "navigation",
@@ -5056,8 +5279,8 @@
{
"id": "RD-012",
"action": {
- "id": "38dd0a454d48",
- "pageUrl": "http://127.0.0.1:37213/#/editor",
+ "id": "f33e20a1aa27",
+ "pageUrl": "http://127.0.0.1:37223/#/editor",
"label": "New Article",
"activation": "click",
"kind": "navigation",
@@ -5070,7 +5293,7 @@
"role": "link",
"accessibleName": "New Article",
"text": "New Article",
- "href": "http://127.0.0.1:37213/#/editor",
+ "href": "http://127.0.0.1:37223/#/editor",
"candidates": [
{
"strategy": "role",
@@ -5089,7 +5312,7 @@
{
"strategy": "href",
"weight": 72,
- "value": "http://127.0.0.1:37213/#/editor"
+ "value": "http://127.0.0.1:37223/#/editor"
},
{
"strategy": "text",
@@ -5129,8 +5352,8 @@
{
"id": "RD-013",
"action": {
- "id": "955bb7c4ae7a",
- "pageUrl": "http://127.0.0.1:37213/#/editor",
+ "id": "7c82bc9fd8ce",
+ "pageUrl": "http://127.0.0.1:37223/#/editor",
"label": "Thinkster",
"activation": "click",
"kind": "navigation",
@@ -5202,8 +5425,8 @@
{
"id": "RD-014",
"action": {
- "id": "865611a40b7e",
- "pageUrl": "http://127.0.0.1:37213/#/editor",
+ "id": "ab9bf2cd0dfb",
+ "pageUrl": "http://127.0.0.1:37223/#/editor",
"label": "Source code",
"activation": "click",
"kind": "navigation",
@@ -5275,8 +5498,8 @@
{
"id": "RD-015",
"action": {
- "id": "36a91b6a1f72",
- "pageUrl": "http://127.0.0.1:37213/",
+ "id": "dff655920243",
+ "pageUrl": "http://127.0.0.1:37223/",
"label": "Source code",
"activation": "click",
"kind": "navigation",
@@ -5348,8 +5571,8 @@
{
"id": "RD-016",
"action": {
- "id": "731b624cc34c",
- "pageUrl": "http://127.0.0.1:37213/",
+ "id": "d0d3611360e0",
+ "pageUrl": "http://127.0.0.1:37223/",
"label": "Thinkster",
"activation": "click",
"kind": "navigation",
@@ -5421,8 +5644,8 @@
{
"id": "RD-017",
"action": {
- "id": "c5063859c1ad",
- "pageUrl": "http://127.0.0.1:37213/",
+ "id": "aece598f17f5",
+ "pageUrl": "http://127.0.0.1:37223/",
"label": "Source code",
"activation": "click",
"kind": "navigation",
@@ -5494,9 +5717,9 @@
],
"environment": {
"status": "VALID",
- "checkedAt": "2026-07-26T10:58:41.208Z",
- "durationMs": 2667,
- "targetUrl": "http://127.0.0.1:37213/#/editor",
+ "checkedAt": "2026-07-26T12:15:18.289Z",
+ "durationMs": 2628,
+ "targetUrl": "http://127.0.0.1:37223/#/editor",
"mainDocument": {
"status": 200,
"contentType": "text/html"
@@ -5508,7 +5731,7 @@
"failed": 0
},
"render": {
- "bodyTextLength": 171,
+ "bodyTextLength": 176,
"visibleElements": 44,
"interactiveElements": 12,
"ready": true
diff --git a/release/evidence/raw/conduit-postgres-delete.scan.json b/release/evidence/raw/conduit-postgres-delete.scan.json
index 7085d5c..d7b92c9 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": "20260726T110104Z-96ae",
- "targetUrl": "http://127.0.0.1:37213/#/article/rd-test-d97009-1",
- "startedAt": "2026-07-26T11:01:04.097Z",
- "finishedAt": "2026-07-26T11:02:21.536Z",
+ "scanId": "20260726T122047Z-3d9c",
+ "targetUrl": "http://127.0.0.1:37223/#/article/rd-test-4cbb5d-1",
+ "startedAt": "2026-07-26T12:20:47.393Z",
+ "finishedAt": "2026-07-26T12:22:04.703Z",
"options": {
"maxPages": 2,
"maxActions": 50,
@@ -41,12 +41,12 @@
},
"pages": [
{
- "url": "http://127.0.0.1:37213/#/article/rd-test-d97009-1",
+ "url": "http://127.0.0.1:37223/#/article/rd-test-4cbb5d-1",
"title": "Conduit",
"actions": [
{
- "id": "d4ddf83b9dbe",
- "pageUrl": "http://127.0.0.1:37213/#/article/rd-test-d97009-1",
+ "id": "7722bc8353e5",
+ "pageUrl": "http://127.0.0.1:37223/#/article/rd-test-4cbb5d-1",
"label": "conduit",
"activation": "click",
"kind": "navigation",
@@ -59,7 +59,7 @@
"role": "link",
"accessibleName": "conduit",
"text": "conduit",
- "href": "http://127.0.0.1:37213/#/",
+ "href": "http://127.0.0.1:37223/#/",
"candidates": [
{
"strategy": "role",
@@ -78,7 +78,7 @@
{
"strategy": "href",
"weight": 72,
- "value": "http://127.0.0.1:37213/#/"
+ "value": "http://127.0.0.1:37223/#/"
},
{
"strategy": "text",
@@ -96,8 +96,8 @@
"fields": []
},
{
- "id": "51e8c444aa67",
- "pageUrl": "http://127.0.0.1:37213/#/article/rd-test-d97009-1",
+ "id": "7ee6766cffc7",
+ "pageUrl": "http://127.0.0.1:37223/#/article/rd-test-4cbb5d-1",
"label": "Source code",
"activation": "click",
"kind": "navigation",
@@ -147,8 +147,8 @@
"fields": []
},
{
- "id": "980651fff005",
- "pageUrl": "http://127.0.0.1:37213/#/article/rd-test-d97009-1",
+ "id": "d3ae75fea87d",
+ "pageUrl": "http://127.0.0.1:37223/#/article/rd-test-4cbb5d-1",
"label": "Home",
"activation": "click",
"kind": "navigation",
@@ -161,7 +161,7 @@
"role": "link",
"accessibleName": "Home",
"text": "Home",
- "href": "http://127.0.0.1:37213/#/",
+ "href": "http://127.0.0.1:37223/#/",
"candidates": [
{
"strategy": "role",
@@ -180,7 +180,7 @@
{
"strategy": "href",
"weight": 72,
- "value": "http://127.0.0.1:37213/#/"
+ "value": "http://127.0.0.1:37223/#/"
},
{
"strategy": "text",
@@ -198,8 +198,8 @@
"fields": []
},
{
- "id": "c857e6fd5693",
- "pageUrl": "http://127.0.0.1:37213/#/article/rd-test-d97009-1",
+ "id": "b87aecb8b12f",
+ "pageUrl": "http://127.0.0.1:37223/#/article/rd-test-4cbb5d-1",
"label": "New Article",
"activation": "click",
"kind": "navigation",
@@ -212,7 +212,7 @@
"role": "link",
"accessibleName": "New Article",
"text": "New Article",
- "href": "http://127.0.0.1:37213/#/editor",
+ "href": "http://127.0.0.1:37223/#/editor",
"candidates": [
{
"strategy": "role",
@@ -231,7 +231,7 @@
{
"strategy": "href",
"weight": 72,
- "value": "http://127.0.0.1:37213/#/editor"
+ "value": "http://127.0.0.1:37223/#/editor"
},
{
"strategy": "text",
@@ -249,9 +249,9 @@
"fields": []
},
{
- "id": "c782e424b251",
- "pageUrl": "http://127.0.0.1:37213/#/article/rd-test-d97009-1",
- "label": "http://127.0.0.1:37213/#/profile/RD_TEST_AFDF00_1",
+ "id": "8eaf44a70c8d",
+ "pageUrl": "http://127.0.0.1:37223/#/article/rd-test-4cbb5d-1",
+ "label": "http://127.0.0.1:37223/#/profile/RD_PHASE_K_CRUD_OWNER",
"activation": "click",
"kind": "navigation",
"intent": "navigate",
@@ -261,12 +261,12 @@
"tag": "a",
"ordinal": 4,
"role": "link",
- "href": "http://127.0.0.1:37213/#/profile/RD_TEST_AFDF00_1",
+ "href": "http://127.0.0.1:37223/#/profile/RD_PHASE_K_CRUD_OWNER",
"candidates": [
{
"strategy": "href",
"weight": 72,
- "value": "http://127.0.0.1:37213/#/profile/RD_TEST_AFDF00_1"
+ "value": "http://127.0.0.1:37223/#/profile/RD_PHASE_K_CRUD_OWNER"
},
{
"strategy": "css",
@@ -278,9 +278,9 @@
"fields": []
},
{
- "id": "981ae4cd0d15",
- "pageUrl": "http://127.0.0.1:37213/#/article/rd-test-d97009-1",
- "label": "RD_TEST_AFDF00_1",
+ "id": "73251912f965",
+ "pageUrl": "http://127.0.0.1:37223/#/article/rd-test-4cbb5d-1",
+ "label": "RD_PHASE_K_CRUD_OWNER",
"activation": "click",
"kind": "navigation",
"intent": "navigate",
@@ -290,33 +290,33 @@
"tag": "a",
"ordinal": 5,
"role": "link",
- "accessibleName": "RD_TEST_AFDF00_1",
- "text": "RD_TEST_AFDF00_1",
- "href": "http://127.0.0.1:37213/#/profile/RD_TEST_AFDF00_1",
+ "accessibleName": "RD_PHASE_K_CRUD_OWNER",
+ "text": "RD_PHASE_K_CRUD_OWNER",
+ "href": "http://127.0.0.1:37223/#/profile/RD_PHASE_K_CRUD_OWNER",
"candidates": [
{
"strategy": "role",
"weight": 92,
"role": "link",
- "name": "RD_TEST_AFDF00_1",
+ "name": "RD_PHASE_K_CRUD_OWNER",
"exact": true
},
{
"strategy": "role",
"weight": 82,
"role": "link",
- "name": "RD_TEST_AFDF00_1",
+ "name": "RD_PHASE_K_CRUD_OWNER",
"exact": false
},
{
"strategy": "href",
"weight": 72,
- "value": "http://127.0.0.1:37213/#/profile/RD_TEST_AFDF00_1"
+ "value": "http://127.0.0.1:37223/#/profile/RD_PHASE_K_CRUD_OWNER"
},
{
"strategy": "text",
"weight": 60,
- "value": "RD_TEST_AFDF00_1",
+ "value": "RD_PHASE_K_CRUD_OWNER",
"exact": true
},
{
@@ -329,8 +329,8 @@
"fields": []
},
{
- "id": "49c799c46ed8",
- "pageUrl": "http://127.0.0.1:37213/#/article/rd-test-d97009-1",
+ "id": "c15810d6e309",
+ "pageUrl": "http://127.0.0.1:37223/#/article/rd-test-4cbb5d-1",
"label": "Delete Article",
"activation": "click",
"kind": "mutation",
@@ -375,8 +375,8 @@
"fields": []
},
{
- "id": "501c5ce7d0a7",
- "pageUrl": "http://127.0.0.1:37213/#/article/rd-test-d97009-1",
+ "id": "6e951fb42425",
+ "pageUrl": "http://127.0.0.1:37223/#/article/rd-test-4cbb5d-1",
"label": "Edit Article",
"activation": "click",
"kind": "mutation",
@@ -421,9 +421,9 @@
"fields": []
},
{
- "id": "f7fa09e24ecd",
- "pageUrl": "http://127.0.0.1:37213/#/article/rd-test-d97009-1",
- "label": "http://127.0.0.1:37213/#/profile/RD_TEST_AFDF00_1",
+ "id": "7cb41d0deb5c",
+ "pageUrl": "http://127.0.0.1:37223/#/article/rd-test-4cbb5d-1",
+ "label": "http://127.0.0.1:37223/#/profile/RD_PHASE_K_CRUD_OWNER",
"activation": "click",
"kind": "navigation",
"intent": "navigate",
@@ -433,12 +433,12 @@
"tag": "a",
"ordinal": 8,
"role": "link",
- "href": "http://127.0.0.1:37213/#/profile/RD_TEST_AFDF00_1",
+ "href": "http://127.0.0.1:37223/#/profile/RD_PHASE_K_CRUD_OWNER",
"candidates": [
{
"strategy": "href",
"weight": 72,
- "value": "http://127.0.0.1:37213/#/profile/RD_TEST_AFDF00_1"
+ "value": "http://127.0.0.1:37223/#/profile/RD_PHASE_K_CRUD_OWNER"
},
{
"strategy": "css",
@@ -450,9 +450,9 @@
"fields": []
},
{
- "id": "dafd6c2b8d6a",
- "pageUrl": "http://127.0.0.1:37213/#/article/rd-test-d97009-1",
- "label": "RD_TEST_AFDF00_1",
+ "id": "c17ee9d21303",
+ "pageUrl": "http://127.0.0.1:37223/#/article/rd-test-4cbb5d-1",
+ "label": "RD_PHASE_K_CRUD_OWNER",
"activation": "click",
"kind": "navigation",
"intent": "navigate",
@@ -462,33 +462,33 @@
"tag": "a",
"ordinal": 9,
"role": "link",
- "accessibleName": "RD_TEST_AFDF00_1",
- "text": "RD_TEST_AFDF00_1",
- "href": "http://127.0.0.1:37213/#/profile/RD_TEST_AFDF00_1",
+ "accessibleName": "RD_PHASE_K_CRUD_OWNER",
+ "text": "RD_PHASE_K_CRUD_OWNER",
+ "href": "http://127.0.0.1:37223/#/profile/RD_PHASE_K_CRUD_OWNER",
"candidates": [
{
"strategy": "role",
"weight": 92,
"role": "link",
- "name": "RD_TEST_AFDF00_1",
+ "name": "RD_PHASE_K_CRUD_OWNER",
"exact": true
},
{
"strategy": "role",
"weight": 82,
"role": "link",
- "name": "RD_TEST_AFDF00_1",
+ "name": "RD_PHASE_K_CRUD_OWNER",
"exact": false
},
{
"strategy": "href",
"weight": 72,
- "value": "http://127.0.0.1:37213/#/profile/RD_TEST_AFDF00_1"
+ "value": "http://127.0.0.1:37223/#/profile/RD_PHASE_K_CRUD_OWNER"
},
{
"strategy": "text",
"weight": 60,
- "value": "RD_TEST_AFDF00_1",
+ "value": "RD_PHASE_K_CRUD_OWNER",
"exact": true
},
{
@@ -501,8 +501,8 @@
"fields": []
},
{
- "id": "ed33d250c2e1",
- "pageUrl": "http://127.0.0.1:37213/#/article/rd-test-d97009-1",
+ "id": "87f3ade5fa76",
+ "pageUrl": "http://127.0.0.1:37223/#/article/rd-test-4cbb5d-1",
"label": "Delete Article",
"activation": "click",
"kind": "mutation",
@@ -547,8 +547,8 @@
"fields": []
},
{
- "id": "17b6c4f59d23",
- "pageUrl": "http://127.0.0.1:37213/#/article/rd-test-d97009-1",
+ "id": "f95b5e51d8bf",
+ "pageUrl": "http://127.0.0.1:37223/#/article/rd-test-4cbb5d-1",
"label": "Edit Article",
"activation": "click",
"kind": "mutation",
@@ -593,8 +593,8 @@
"fields": []
},
{
- "id": "2f8cbf31b77a",
- "pageUrl": "http://127.0.0.1:37213/#/article/rd-test-d97009-1",
+ "id": "7cb4078e8bd7",
+ "pageUrl": "http://127.0.0.1:37223/#/article/rd-test-4cbb5d-1",
"label": "Post Comment",
"activation": "submit",
"kind": "mutation",
@@ -632,8 +632,8 @@
]
},
{
- "id": "dc2ff02ca3a5",
- "pageUrl": "http://127.0.0.1:37213/#/article/rd-test-d97009-1",
+ "id": "b60b097d31b9",
+ "pageUrl": "http://127.0.0.1:37223/#/article/rd-test-4cbb5d-1",
"label": "conduit",
"activation": "click",
"kind": "navigation",
@@ -646,7 +646,7 @@
"role": "link",
"accessibleName": "conduit",
"text": "conduit",
- "href": "http://127.0.0.1:37213/#/",
+ "href": "http://127.0.0.1:37223/#/",
"candidates": [
{
"strategy": "role",
@@ -665,7 +665,7 @@
{
"strategy": "href",
"weight": 72,
- "value": "http://127.0.0.1:37213/#/"
+ "value": "http://127.0.0.1:37223/#/"
},
{
"strategy": "text",
@@ -683,8 +683,8 @@
"fields": []
},
{
- "id": "ddb3e20b6534",
- "pageUrl": "http://127.0.0.1:37213/#/article/rd-test-d97009-1",
+ "id": "0a7e2dacea77",
+ "pageUrl": "http://127.0.0.1:37223/#/article/rd-test-4cbb5d-1",
"label": "Thinkster",
"activation": "click",
"kind": "navigation",
@@ -734,8 +734,8 @@
"fields": []
},
{
- "id": "2cb5cd0f9fea",
- "pageUrl": "http://127.0.0.1:37213/#/article/rd-test-d97009-1",
+ "id": "8756e450c029",
+ "pageUrl": "http://127.0.0.1:37223/#/article/rd-test-4cbb5d-1",
"label": "Source code",
"activation": "click",
"kind": "navigation",
@@ -787,12 +787,12 @@
]
},
{
- "url": "http://127.0.0.1:37213/",
+ "url": "http://127.0.0.1:37223/",
"title": "Conduit",
"actions": [
{
- "id": "a0147c56db57",
- "pageUrl": "http://127.0.0.1:37213/",
+ "id": "92446496b665",
+ "pageUrl": "http://127.0.0.1:37223/",
"label": "conduit",
"activation": "click",
"kind": "navigation",
@@ -805,7 +805,7 @@
"role": "link",
"accessibleName": "conduit",
"text": "conduit",
- "href": "http://127.0.0.1:37213/#/",
+ "href": "http://127.0.0.1:37223/#/",
"candidates": [
{
"strategy": "role",
@@ -824,7 +824,7 @@
{
"strategy": "href",
"weight": 72,
- "value": "http://127.0.0.1:37213/#/"
+ "value": "http://127.0.0.1:37223/#/"
},
{
"strategy": "text",
@@ -842,8 +842,8 @@
"fields": []
},
{
- "id": "36a91b6a1f72",
- "pageUrl": "http://127.0.0.1:37213/",
+ "id": "dff655920243",
+ "pageUrl": "http://127.0.0.1:37223/",
"label": "Source code",
"activation": "click",
"kind": "navigation",
@@ -893,8 +893,8 @@
"fields": []
},
{
- "id": "63ad14060515",
- "pageUrl": "http://127.0.0.1:37213/",
+ "id": "3800f03bc706",
+ "pageUrl": "http://127.0.0.1:37223/",
"label": "Home",
"activation": "click",
"kind": "navigation",
@@ -907,7 +907,7 @@
"role": "link",
"accessibleName": "Home",
"text": "Home",
- "href": "http://127.0.0.1:37213/#/",
+ "href": "http://127.0.0.1:37223/#/",
"candidates": [
{
"strategy": "role",
@@ -926,7 +926,7 @@
{
"strategy": "href",
"weight": 72,
- "value": "http://127.0.0.1:37213/#/"
+ "value": "http://127.0.0.1:37223/#/"
},
{
"strategy": "text",
@@ -944,8 +944,8 @@
"fields": []
},
{
- "id": "2b6be7d79a5f",
- "pageUrl": "http://127.0.0.1:37213/",
+ "id": "c88ed7554ce5",
+ "pageUrl": "http://127.0.0.1:37223/",
"label": "New Article",
"activation": "click",
"kind": "navigation",
@@ -958,7 +958,7 @@
"role": "link",
"accessibleName": "New Article",
"text": "New Article",
- "href": "http://127.0.0.1:37213/#/editor",
+ "href": "http://127.0.0.1:37223/#/editor",
"candidates": [
{
"strategy": "role",
@@ -977,7 +977,7 @@
{
"strategy": "href",
"weight": 72,
- "value": "http://127.0.0.1:37213/#/editor"
+ "value": "http://127.0.0.1:37223/#/editor"
},
{
"strategy": "text",
@@ -995,8 +995,8 @@
"fields": []
},
{
- "id": "b6f0b8724ae3",
- "pageUrl": "http://127.0.0.1:37213/",
+ "id": "d61ab1459de8",
+ "pageUrl": "http://127.0.0.1:37223/",
"label": "Your Feed",
"activation": "click",
"kind": "local",
@@ -1041,8 +1041,8 @@
"fields": []
},
{
- "id": "98ade3898516",
- "pageUrl": "http://127.0.0.1:37213/",
+ "id": "a69f66f3ce86",
+ "pageUrl": "http://127.0.0.1:37223/",
"label": "Global Feed",
"activation": "click",
"kind": "local",
@@ -1087,9 +1087,9 @@
"fields": []
},
{
- "id": "e1289f1d4fb5",
- "pageUrl": "http://127.0.0.1:37213/",
- "label": "RD_TEST_1DB90D_4",
+ "id": "bb360e1fb2b4",
+ "pageUrl": "http://127.0.0.1:37223/",
+ "label": "RD_TEST_F3F938_4",
"activation": "click",
"kind": "local",
"intent": "interact",
@@ -1099,28 +1099,28 @@
"tag": "button",
"ordinal": 6,
"role": "button",
- "accessibleName": "RD_TEST_1DB90D_4",
- "text": "RD_TEST_1DB90D_4",
+ "accessibleName": "RD_TEST_F3F938_4",
+ "text": "RD_TEST_F3F938_4",
"type": "submit",
"candidates": [
{
"strategy": "role",
"weight": 92,
"role": "button",
- "name": "RD_TEST_1DB90D_4",
+ "name": "RD_TEST_F3F938_4",
"exact": true
},
{
"strategy": "role",
"weight": 82,
"role": "button",
- "name": "RD_TEST_1DB90D_4",
+ "name": "RD_TEST_F3F938_4",
"exact": false
},
{
"strategy": "text",
"weight": 60,
- "value": "RD_TEST_1DB90D_4",
+ "value": "RD_TEST_F3F938_4",
"exact": true
},
{
@@ -1133,9 +1133,9 @@
"fields": []
},
{
- "id": "ff4472b3a283",
- "pageUrl": "http://127.0.0.1:37213/",
- "label": "RD_TEST_DA5A96_4",
+ "id": "bfa7e43fb614",
+ "pageUrl": "http://127.0.0.1:37223/",
+ "label": "RD_TEST_45949F_4",
"activation": "click",
"kind": "local",
"intent": "interact",
@@ -1145,28 +1145,28 @@
"tag": "button",
"ordinal": 7,
"role": "button",
- "accessibleName": "RD_TEST_DA5A96_4",
- "text": "RD_TEST_DA5A96_4",
+ "accessibleName": "RD_TEST_45949F_4",
+ "text": "RD_TEST_45949F_4",
"type": "submit",
"candidates": [
{
"strategy": "role",
"weight": 92,
"role": "button",
- "name": "RD_TEST_DA5A96_4",
+ "name": "RD_TEST_45949F_4",
"exact": true
},
{
"strategy": "role",
"weight": 82,
"role": "button",
- "name": "RD_TEST_DA5A96_4",
+ "name": "RD_TEST_45949F_4",
"exact": false
},
{
"strategy": "text",
"weight": 60,
- "value": "RD_TEST_DA5A96_4",
+ "value": "RD_TEST_45949F_4",
"exact": true
},
{
@@ -1179,8 +1179,8 @@
"fields": []
},
{
- "id": "60e12226e19d",
- "pageUrl": "http://127.0.0.1:37213/",
+ "id": "9d442a70bdcb",
+ "pageUrl": "http://127.0.0.1:37223/",
"label": "conduit",
"activation": "click",
"kind": "navigation",
@@ -1193,7 +1193,7 @@
"role": "link",
"accessibleName": "conduit",
"text": "conduit",
- "href": "http://127.0.0.1:37213/#/",
+ "href": "http://127.0.0.1:37223/#/",
"candidates": [
{
"strategy": "role",
@@ -1212,7 +1212,7 @@
{
"strategy": "href",
"weight": 72,
- "value": "http://127.0.0.1:37213/#/"
+ "value": "http://127.0.0.1:37223/#/"
},
{
"strategy": "text",
@@ -1230,8 +1230,8 @@
"fields": []
},
{
- "id": "731b624cc34c",
- "pageUrl": "http://127.0.0.1:37213/",
+ "id": "d0d3611360e0",
+ "pageUrl": "http://127.0.0.1:37223/",
"label": "Thinkster",
"activation": "click",
"kind": "navigation",
@@ -1281,8 +1281,8 @@
"fields": []
},
{
- "id": "c5063859c1ad",
- "pageUrl": "http://127.0.0.1:37213/",
+ "id": "aece598f17f5",
+ "pageUrl": "http://127.0.0.1:37223/",
"label": "Source code",
"activation": "click",
"kind": "navigation",
@@ -1338,8 +1338,8 @@
{
"id": "RD-001",
"action": {
- "id": "d4ddf83b9dbe",
- "pageUrl": "http://127.0.0.1:37213/#/article/rd-test-d97009-1",
+ "id": "7722bc8353e5",
+ "pageUrl": "http://127.0.0.1:37223/#/article/rd-test-4cbb5d-1",
"label": "conduit",
"activation": "click",
"kind": "navigation",
@@ -1352,7 +1352,7 @@
"role": "link",
"accessibleName": "conduit",
"text": "conduit",
- "href": "http://127.0.0.1:37213/#/",
+ "href": "http://127.0.0.1:37223/#/",
"candidates": [
{
"strategy": "role",
@@ -1371,7 +1371,7 @@
{
"strategy": "href",
"weight": 72,
- "value": "http://127.0.0.1:37213/#/"
+ "value": "http://127.0.0.1:37223/#/"
},
{
"strategy": "text",
@@ -1389,33 +1389,33 @@
"fields": []
},
"evidence": {
- "startedAt": "2026-07-26T11:01:09.275Z",
- "durationMs": 2557,
- "canary": "RD_TEST_26F4D0",
+ "startedAt": "2026-07-26T12:20:52.649Z",
+ "durationMs": 2542,
+ "canary": "RD_TEST_7D7117",
"network": [
{
"id": "net-1",
"method": "GET",
- "url": "http://127.0.0.1:37213/api/articles/feed?limit=3&&offset=0",
+ "url": "http://127.0.0.1:37223/api/articles/feed?limit=3&&offset=0",
"resourceType": "xhr",
- "startedAt": 1580,
+ "startedAt": 1562,
"status": 200,
"ok": true,
- "finishedAt": 1585,
+ "finishedAt": 1569,
"contentType": "application/json",
"resourceTypeHint": "feed"
},
{
"id": "net-2",
"method": "GET",
- "url": "http://127.0.0.1:37213/api/tags",
+ "url": "http://127.0.0.1:37223/api/tags",
"resourceType": "xhr",
- "startedAt": 1580,
+ "startedAt": 1563,
"status": 200,
"ok": true,
- "finishedAt": 1584,
"contentType": "application/json",
- "resourceTypeHint": "tags"
+ "resourceTypeHint": "tags",
+ "finishedAt": 1569
}
],
"console": [],
@@ -1427,6 +1427,12 @@
"downloadEvidence": [],
"uploads": [],
"popupUrls": [],
+ "visualSuppressions": [
+ {
+ "artifact": "screenshot",
+ "reason": "authenticated-context"
+ }
+ ],
"locatorResolution": {
"attempts": [
{
@@ -1462,7 +1468,7 @@
"weight": 35,
"matchCount": 1,
"visibleCount": 1,
- "elapsedMs": 4
+ "elapsedMs": 5
}
],
"chosenStrategy": "css",
@@ -1470,10 +1476,10 @@
"retryCount": 0
},
"before": {
- "at": 1542,
- "url": "http://127.0.0.1:37213/#/article/rd-test-d97009-1",
+ "at": 1524,
+ "url": "http://127.0.0.1:37223/#/article/rd-test-4cbb5d-1",
"title": "Conduit",
- "domHash": "a5fd021e38a35f59",
+ "domHash": "c816d12e48c21b02",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -1485,9 +1491,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "4fc22202d903e566",
+ "textHash": "f602366b1479175d",
"visualHash": "471347ba69eaf940",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 RD_TEST_D97009_1 RD_TEST_AFDF00_1 July 26, 2026 Delete Article Edit Article RD_TEST_D97009_3 RD_TEST_1DB90D_4 RD_TEST_AFDF00_1 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",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER RD_TEST_4CBB5D_1 RD_PHASE_K_CRUD_OWNER July 26, 2026 Delete Article Edit Article RD_TEST_4CBB5D_3 RD_TEST_F3F938_4 RD_PHASE_K_CRUD_OWNER 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",
@@ -1539,7 +1545,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -1550,10 +1556,10 @@
}
},
"beforeAction": {
- "at": 1553,
- "url": "http://127.0.0.1:37213/#/article/rd-test-d97009-1",
+ "at": 1535,
+ "url": "http://127.0.0.1:37223/#/article/rd-test-4cbb5d-1",
"title": "Conduit",
- "domHash": "a5fd021e38a35f59",
+ "domHash": "c816d12e48c21b02",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -1565,9 +1571,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "4fc22202d903e566",
+ "textHash": "f602366b1479175d",
"visualHash": "471347ba69eaf940",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 RD_TEST_D97009_1 RD_TEST_AFDF00_1 July 26, 2026 Delete Article Edit Article RD_TEST_D97009_3 RD_TEST_1DB90D_4 RD_TEST_AFDF00_1 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",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER RD_TEST_4CBB5D_1 RD_PHASE_K_CRUD_OWNER July 26, 2026 Delete Article Edit Article RD_TEST_4CBB5D_3 RD_TEST_F3F938_4 RD_PHASE_K_CRUD_OWNER 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",
@@ -1619,7 +1625,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -1632,10 +1638,10 @@
"networkSettled": true,
"targetBusyAfter": false,
"after": {
- "at": 2553,
- "url": "http://127.0.0.1:37213/#/",
+ "at": 2538,
+ "url": "http://127.0.0.1:37223/#/",
"title": "Conduit",
- "domHash": "f16e71f9610b9322",
+ "domHash": "82970581dc3ba0ed",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -1647,9 +1653,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "a8b069a14856a893",
+ "textHash": "38646687161ebd53",
"visualHash": "efa2f7065933782f",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 Your Feed Global Feed Articles not available. Popular Tags RD_TEST_1DB90D_4RD_TEST_DA5A96_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER Your Feed Global Feed Articles not available. Popular Tags RD_TEST_F3F938_4RD_TEST_45949F_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
"controls": [
{
"tag": "button",
@@ -1687,7 +1693,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -1715,8 +1721,8 @@
{
"id": "RD-002",
"action": {
- "id": "980651fff005",
- "pageUrl": "http://127.0.0.1:37213/#/article/rd-test-d97009-1",
+ "id": "d3ae75fea87d",
+ "pageUrl": "http://127.0.0.1:37223/#/article/rd-test-4cbb5d-1",
"label": "Home",
"activation": "click",
"kind": "navigation",
@@ -1729,7 +1735,7 @@
"role": "link",
"accessibleName": "Home",
"text": "Home",
- "href": "http://127.0.0.1:37213/#/",
+ "href": "http://127.0.0.1:37223/#/",
"candidates": [
{
"strategy": "role",
@@ -1748,7 +1754,7 @@
{
"strategy": "href",
"weight": 72,
- "value": "http://127.0.0.1:37213/#/"
+ "value": "http://127.0.0.1:37223/#/"
},
{
"strategy": "text",
@@ -1766,31 +1772,31 @@
"fields": []
},
"evidence": {
- "startedAt": "2026-07-26T11:01:11.910Z",
- "durationMs": 2473,
- "canary": "RD_TEST_DF005B",
+ "startedAt": "2026-07-26T12:20:55.246Z",
+ "durationMs": 2488,
+ "canary": "RD_TEST_3DA46B",
"network": [
{
"id": "net-1",
"method": "GET",
- "url": "http://127.0.0.1:37213/api/articles/feed?limit=3&&offset=0",
+ "url": "http://127.0.0.1:37223/api/articles/feed?limit=3&&offset=0",
"resourceType": "xhr",
- "startedAt": 1509,
+ "startedAt": 1534,
"status": 200,
"ok": true,
- "finishedAt": 1516,
+ "finishedAt": 1543,
"contentType": "application/json",
"resourceTypeHint": "feed"
},
{
"id": "net-2",
"method": "GET",
- "url": "http://127.0.0.1:37213/api/tags",
+ "url": "http://127.0.0.1:37223/api/tags",
"resourceType": "xhr",
- "startedAt": 1510,
+ "startedAt": 1534,
"status": 200,
"ok": true,
- "finishedAt": 1515,
+ "finishedAt": 1539,
"contentType": "application/json",
"resourceTypeHint": "tags"
}
@@ -1804,6 +1810,12 @@
"downloadEvidence": [],
"uploads": [],
"popupUrls": [],
+ "visualSuppressions": [
+ {
+ "artifact": "screenshot",
+ "reason": "authenticated-context"
+ }
+ ],
"locatorResolution": {
"attempts": [
{
@@ -1818,7 +1830,7 @@
"weight": 82,
"matchCount": 1,
"visibleCount": 1,
- "elapsedMs": 6
+ "elapsedMs": 5
}
],
"chosenStrategy": "role",
@@ -1826,10 +1838,10 @@
"retryCount": 0
},
"before": {
- "at": 1469,
- "url": "http://127.0.0.1:37213/#/article/rd-test-d97009-1",
+ "at": 1485,
+ "url": "http://127.0.0.1:37223/#/article/rd-test-4cbb5d-1",
"title": "Conduit",
- "domHash": "a5fd021e38a35f59",
+ "domHash": "c816d12e48c21b02",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -1841,9 +1853,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "4fc22202d903e566",
+ "textHash": "f602366b1479175d",
"visualHash": "471347ba69eaf940",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 RD_TEST_D97009_1 RD_TEST_AFDF00_1 July 26, 2026 Delete Article Edit Article RD_TEST_D97009_3 RD_TEST_1DB90D_4 RD_TEST_AFDF00_1 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",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER RD_TEST_4CBB5D_1 RD_PHASE_K_CRUD_OWNER July 26, 2026 Delete Article Edit Article RD_TEST_4CBB5D_3 RD_TEST_F3F938_4 RD_PHASE_K_CRUD_OWNER 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",
@@ -1895,7 +1907,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -1906,10 +1918,10 @@
}
},
"beforeAction": {
- "at": 1478,
- "url": "http://127.0.0.1:37213/#/article/rd-test-d97009-1",
+ "at": 1495,
+ "url": "http://127.0.0.1:37223/#/article/rd-test-4cbb5d-1",
"title": "Conduit",
- "domHash": "a5fd021e38a35f59",
+ "domHash": "c816d12e48c21b02",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -1921,9 +1933,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "4fc22202d903e566",
+ "textHash": "f602366b1479175d",
"visualHash": "471347ba69eaf940",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 RD_TEST_D97009_1 RD_TEST_AFDF00_1 July 26, 2026 Delete Article Edit Article RD_TEST_D97009_3 RD_TEST_1DB90D_4 RD_TEST_AFDF00_1 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",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER RD_TEST_4CBB5D_1 RD_PHASE_K_CRUD_OWNER July 26, 2026 Delete Article Edit Article RD_TEST_4CBB5D_3 RD_TEST_F3F938_4 RD_PHASE_K_CRUD_OWNER 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",
@@ -1975,7 +1987,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -1988,10 +2000,10 @@
"networkSettled": true,
"targetBusyAfter": false,
"after": {
- "at": 2469,
- "url": "http://127.0.0.1:37213/#/",
+ "at": 2484,
+ "url": "http://127.0.0.1:37223/#/",
"title": "Conduit",
- "domHash": "f16e71f9610b9322",
+ "domHash": "82970581dc3ba0ed",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -2003,9 +2015,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "a8b069a14856a893",
+ "textHash": "38646687161ebd53",
"visualHash": "efa2f7065933782f",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 Your Feed Global Feed Articles not available. Popular Tags RD_TEST_1DB90D_4RD_TEST_DA5A96_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER Your Feed Global Feed Articles not available. Popular Tags RD_TEST_F3F938_4RD_TEST_45949F_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
"controls": [
{
"tag": "button",
@@ -2043,7 +2055,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -2071,8 +2083,8 @@
{
"id": "RD-003",
"action": {
- "id": "c857e6fd5693",
- "pageUrl": "http://127.0.0.1:37213/#/article/rd-test-d97009-1",
+ "id": "b87aecb8b12f",
+ "pageUrl": "http://127.0.0.1:37223/#/article/rd-test-4cbb5d-1",
"label": "New Article",
"activation": "click",
"kind": "navigation",
@@ -2085,7 +2097,7 @@
"role": "link",
"accessibleName": "New Article",
"text": "New Article",
- "href": "http://127.0.0.1:37213/#/editor",
+ "href": "http://127.0.0.1:37223/#/editor",
"candidates": [
{
"strategy": "role",
@@ -2104,7 +2116,7 @@
{
"strategy": "href",
"weight": 72,
- "value": "http://127.0.0.1:37213/#/editor"
+ "value": "http://127.0.0.1:37223/#/editor"
},
{
"strategy": "text",
@@ -2122,9 +2134,9 @@
"fields": []
},
"evidence": {
- "startedAt": "2026-07-26T11:01:14.437Z",
- "durationMs": 2468,
- "canary": "RD_TEST_0B0337",
+ "startedAt": "2026-07-26T12:20:57.768Z",
+ "durationMs": 2529,
+ "canary": "RD_TEST_D50E93",
"network": [],
"console": [],
"pageErrors": [],
@@ -2135,6 +2147,12 @@
"downloadEvidence": [],
"uploads": [],
"popupUrls": [],
+ "visualSuppressions": [
+ {
+ "artifact": "screenshot",
+ "reason": "authenticated-context"
+ }
+ ],
"locatorResolution": {
"attempts": [
{
@@ -2142,7 +2160,7 @@
"weight": 92,
"matchCount": 0,
"visibleCount": 0,
- "elapsedMs": 2
+ "elapsedMs": 3
},
{
"strategy": "role",
@@ -2157,10 +2175,10 @@
"retryCount": 0
},
"before": {
- "at": 1473,
- "url": "http://127.0.0.1:37213/#/article/rd-test-d97009-1",
+ "at": 1510,
+ "url": "http://127.0.0.1:37223/#/article/rd-test-4cbb5d-1",
"title": "Conduit",
- "domHash": "a5fd021e38a35f59",
+ "domHash": "c816d12e48c21b02",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -2172,9 +2190,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "4fc22202d903e566",
+ "textHash": "f602366b1479175d",
"visualHash": "471347ba69eaf940",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 RD_TEST_D97009_1 RD_TEST_AFDF00_1 July 26, 2026 Delete Article Edit Article RD_TEST_D97009_3 RD_TEST_1DB90D_4 RD_TEST_AFDF00_1 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",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER RD_TEST_4CBB5D_1 RD_PHASE_K_CRUD_OWNER July 26, 2026 Delete Article Edit Article RD_TEST_4CBB5D_3 RD_TEST_F3F938_4 RD_PHASE_K_CRUD_OWNER 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",
@@ -2226,7 +2244,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -2237,10 +2255,10 @@
}
},
"beforeAction": {
- "at": 1483,
- "url": "http://127.0.0.1:37213/#/article/rd-test-d97009-1",
+ "at": 1520,
+ "url": "http://127.0.0.1:37223/#/article/rd-test-4cbb5d-1",
"title": "Conduit",
- "domHash": "a5fd021e38a35f59",
+ "domHash": "c816d12e48c21b02",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -2252,9 +2270,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "4fc22202d903e566",
+ "textHash": "f602366b1479175d",
"visualHash": "471347ba69eaf940",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 RD_TEST_D97009_1 RD_TEST_AFDF00_1 July 26, 2026 Delete Article Edit Article RD_TEST_D97009_3 RD_TEST_1DB90D_4 RD_TEST_AFDF00_1 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",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER RD_TEST_4CBB5D_1 RD_PHASE_K_CRUD_OWNER July 26, 2026 Delete Article Edit Article RD_TEST_4CBB5D_3 RD_TEST_F3F938_4 RD_PHASE_K_CRUD_OWNER 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",
@@ -2306,7 +2324,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -2319,10 +2337,10 @@
"networkSettled": true,
"targetBusyAfter": false,
"after": {
- "at": 2464,
- "url": "http://127.0.0.1:37213/#/editor",
+ "at": 2525,
+ "url": "http://127.0.0.1:37223/#/editor",
"title": "Conduit",
- "domHash": "25121aa0be44bdb5",
+ "domHash": "c936833dbedd7df2",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -2334,9 +2352,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "e43f8008221f4f9e",
+ "textHash": "d0c4b4fdb77a11e9",
"visualHash": "b85410fa0ea5a358",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 Publish Article conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER Publish Article conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
"controls": [
{
"tag": "input",
@@ -2388,7 +2406,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -2416,9 +2434,9 @@
{
"id": "RD-004",
"action": {
- "id": "c782e424b251",
- "pageUrl": "http://127.0.0.1:37213/#/article/rd-test-d97009-1",
- "label": "http://127.0.0.1:37213/#/profile/RD_TEST_AFDF00_1",
+ "id": "8eaf44a70c8d",
+ "pageUrl": "http://127.0.0.1:37223/#/article/rd-test-4cbb5d-1",
+ "label": "http://127.0.0.1:37223/#/profile/RD_PHASE_K_CRUD_OWNER",
"activation": "click",
"kind": "navigation",
"intent": "navigate",
@@ -2428,12 +2446,12 @@
"tag": "a",
"ordinal": 4,
"role": "link",
- "href": "http://127.0.0.1:37213/#/profile/RD_TEST_AFDF00_1",
+ "href": "http://127.0.0.1:37223/#/profile/RD_PHASE_K_CRUD_OWNER",
"candidates": [
{
"strategy": "href",
"weight": 72,
- "value": "http://127.0.0.1:37213/#/profile/RD_TEST_AFDF00_1"
+ "value": "http://127.0.0.1:37223/#/profile/RD_PHASE_K_CRUD_OWNER"
},
{
"strategy": "css",
@@ -2445,19 +2463,19 @@
"fields": []
},
"evidence": {
- "startedAt": "2026-07-26T11:01:16.957Z",
- "durationMs": 2491,
- "canary": "RD_TEST_C1C942",
+ "startedAt": "2026-07-26T12:21:00.327Z",
+ "durationMs": 2485,
+ "canary": "RD_TEST_133A67",
"network": [
{
"id": "net-1",
"method": "GET",
- "url": "http://127.0.0.1:37213/api/articles?author=RD_TEST_AFDF00_1&&limit=3&&offset=0",
+ "url": "http://127.0.0.1:37223/api/articles?author=RD_PHASE_K_CRUD_OWNER&&limit=3&&offset=0",
"resourceType": "xhr",
- "startedAt": 1512,
+ "startedAt": 1502,
"status": 200,
"ok": true,
- "finishedAt": 1524,
+ "finishedAt": 1515,
"contentType": "application/json",
"resourceTypeHint": "articles"
}
@@ -2471,6 +2489,12 @@
"downloadEvidence": [],
"uploads": [],
"popupUrls": [],
+ "visualSuppressions": [
+ {
+ "artifact": "screenshot",
+ "reason": "authenticated-context"
+ }
+ ],
"locatorResolution": {
"attempts": [
{
@@ -2493,10 +2517,10 @@
"retryCount": 0
},
"before": {
- "at": 1477,
- "url": "http://127.0.0.1:37213/#/article/rd-test-d97009-1",
+ "at": 1468,
+ "url": "http://127.0.0.1:37223/#/article/rd-test-4cbb5d-1",
"title": "Conduit",
- "domHash": "a5fd021e38a35f59",
+ "domHash": "c816d12e48c21b02",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -2508,9 +2532,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "4fc22202d903e566",
+ "textHash": "f602366b1479175d",
"visualHash": "471347ba69eaf940",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 RD_TEST_D97009_1 RD_TEST_AFDF00_1 July 26, 2026 Delete Article Edit Article RD_TEST_D97009_3 RD_TEST_1DB90D_4 RD_TEST_AFDF00_1 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",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER RD_TEST_4CBB5D_1 RD_PHASE_K_CRUD_OWNER July 26, 2026 Delete Article Edit Article RD_TEST_4CBB5D_3 RD_TEST_F3F938_4 RD_PHASE_K_CRUD_OWNER 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",
@@ -2562,7 +2586,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -2573,10 +2597,10 @@
}
},
"beforeAction": {
- "at": 1487,
- "url": "http://127.0.0.1:37213/#/article/rd-test-d97009-1",
+ "at": 1478,
+ "url": "http://127.0.0.1:37223/#/article/rd-test-4cbb5d-1",
"title": "Conduit",
- "domHash": "a5fd021e38a35f59",
+ "domHash": "c816d12e48c21b02",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -2588,9 +2612,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "4fc22202d903e566",
+ "textHash": "f602366b1479175d",
"visualHash": "471347ba69eaf940",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 RD_TEST_D97009_1 RD_TEST_AFDF00_1 July 26, 2026 Delete Article Edit Article RD_TEST_D97009_3 RD_TEST_1DB90D_4 RD_TEST_AFDF00_1 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",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER RD_TEST_4CBB5D_1 RD_PHASE_K_CRUD_OWNER July 26, 2026 Delete Article Edit Article RD_TEST_4CBB5D_3 RD_TEST_F3F938_4 RD_PHASE_K_CRUD_OWNER 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",
@@ -2642,7 +2666,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -2654,10 +2678,10 @@
},
"networkSettled": true,
"after": {
- "at": 2487,
- "url": "http://127.0.0.1:37213/#/profile/RD_TEST_AFDF00_1",
+ "at": 2480,
+ "url": "http://127.0.0.1:37223/#/profile/RD_PHASE_K_CRUD_OWNER",
"title": "Conduit",
- "domHash": "641996250f583471",
+ "domHash": "685268f6519d190c",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -2669,9 +2693,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "5c2d6c3ce00bb3c6",
+ "textHash": "9bb35e91eb331515",
"visualHash": "51ee9543781f73ba",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 RD_TEST_AFDF00_1 Edit Profile Settings My Articles Favorited Articles RD_TEST_AFDF00_1 July 26, 2026 ( 0 ) RD_TEST_DA5A96_1 RD_TEST_DA5A96_2 Read more... RD_TEST_DA5A96_4 RD_TEST_AFDF00_1 July 26, 2026 ( 0 ) RD_TEST_D97009_1 RD_TEST_D97009_2 Read more... RD_TEST_1DB90D_4 1 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER RD_PHASE_K_CRUD_OWNER Edit Profile Settings My Articles Favorited Articles RD_PHASE_K_CRUD_OWNER July 26, 2026 ( 0 ) RD_TEST_45949F_1 RD_TEST_45949F_2 Read more... RD_TEST_45949F_4 RD_PHASE_K_CRUD_OWNER July 26, 2026 ( 0 ) RD_TEST_4CBB5D_1 RD_TEST_4CBB5D_2 Read more... RD_TEST_F3F938_4 1 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
"controls": [
{
"tag": "button",
@@ -2695,7 +2719,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -2723,9 +2747,9 @@
{
"id": "RD-005",
"action": {
- "id": "981ae4cd0d15",
- "pageUrl": "http://127.0.0.1:37213/#/article/rd-test-d97009-1",
- "label": "RD_TEST_AFDF00_1",
+ "id": "73251912f965",
+ "pageUrl": "http://127.0.0.1:37223/#/article/rd-test-4cbb5d-1",
+ "label": "RD_PHASE_K_CRUD_OWNER",
"activation": "click",
"kind": "navigation",
"intent": "navigate",
@@ -2735,33 +2759,33 @@
"tag": "a",
"ordinal": 5,
"role": "link",
- "accessibleName": "RD_TEST_AFDF00_1",
- "text": "RD_TEST_AFDF00_1",
- "href": "http://127.0.0.1:37213/#/profile/RD_TEST_AFDF00_1",
+ "accessibleName": "RD_PHASE_K_CRUD_OWNER",
+ "text": "RD_PHASE_K_CRUD_OWNER",
+ "href": "http://127.0.0.1:37223/#/profile/RD_PHASE_K_CRUD_OWNER",
"candidates": [
{
"strategy": "role",
"weight": 92,
"role": "link",
- "name": "RD_TEST_AFDF00_1",
+ "name": "RD_PHASE_K_CRUD_OWNER",
"exact": true
},
{
"strategy": "role",
"weight": 82,
"role": "link",
- "name": "RD_TEST_AFDF00_1",
+ "name": "RD_PHASE_K_CRUD_OWNER",
"exact": false
},
{
"strategy": "href",
"weight": 72,
- "value": "http://127.0.0.1:37213/#/profile/RD_TEST_AFDF00_1"
+ "value": "http://127.0.0.1:37223/#/profile/RD_PHASE_K_CRUD_OWNER"
},
{
"strategy": "text",
"weight": 60,
- "value": "RD_TEST_AFDF00_1",
+ "value": "RD_PHASE_K_CRUD_OWNER",
"exact": true
},
{
@@ -2774,19 +2798,19 @@
"fields": []
},
"evidence": {
- "startedAt": "2026-07-26T11:01:19.490Z",
- "durationMs": 2535,
- "canary": "RD_TEST_892BE6",
+ "startedAt": "2026-07-26T12:21:02.838Z",
+ "durationMs": 2559,
+ "canary": "RD_TEST_EED027",
"network": [
{
"id": "net-1",
"method": "GET",
- "url": "http://127.0.0.1:37213/api/articles?author=RD_TEST_AFDF00_1&&limit=3&&offset=0",
+ "url": "http://127.0.0.1:37223/api/articles?author=RD_PHASE_K_CRUD_OWNER&&limit=3&&offset=0",
"resourceType": "xhr",
- "startedAt": 1562,
+ "startedAt": 1588,
"status": 200,
"ok": true,
- "finishedAt": 1572,
+ "finishedAt": 1598,
"contentType": "application/json",
"resourceTypeHint": "articles"
}
@@ -2800,6 +2824,12 @@
"downloadEvidence": [],
"uploads": [],
"popupUrls": [],
+ "visualSuppressions": [
+ {
+ "artifact": "screenshot",
+ "reason": "authenticated-context"
+ }
+ ],
"locatorResolution": {
"attempts": [
{
@@ -2814,14 +2844,14 @@
"weight": 82,
"matchCount": 4,
"visibleCount": 4,
- "elapsedMs": 12
+ "elapsedMs": 11
},
{
"strategy": "href",
"weight": 72,
"matchCount": 0,
"visibleCount": 0,
- "elapsedMs": 2
+ "elapsedMs": 3
},
{
"strategy": "text",
@@ -2835,7 +2865,7 @@
"weight": 35,
"matchCount": 1,
"visibleCount": 1,
- "elapsedMs": 4
+ "elapsedMs": 5
}
],
"chosenStrategy": "css",
@@ -2843,10 +2873,10 @@
"retryCount": 0
},
"before": {
- "at": 1524,
- "url": "http://127.0.0.1:37213/#/article/rd-test-d97009-1",
+ "at": 1543,
+ "url": "http://127.0.0.1:37223/#/article/rd-test-4cbb5d-1",
"title": "Conduit",
- "domHash": "a5fd021e38a35f59",
+ "domHash": "c816d12e48c21b02",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -2858,9 +2888,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "4fc22202d903e566",
+ "textHash": "f602366b1479175d",
"visualHash": "471347ba69eaf940",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 RD_TEST_D97009_1 RD_TEST_AFDF00_1 July 26, 2026 Delete Article Edit Article RD_TEST_D97009_3 RD_TEST_1DB90D_4 RD_TEST_AFDF00_1 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",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER RD_TEST_4CBB5D_1 RD_PHASE_K_CRUD_OWNER July 26, 2026 Delete Article Edit Article RD_TEST_4CBB5D_3 RD_TEST_F3F938_4 RD_PHASE_K_CRUD_OWNER 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",
@@ -2912,7 +2942,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -2923,10 +2953,10 @@
}
},
"beforeAction": {
- "at": 1534,
- "url": "http://127.0.0.1:37213/#/article/rd-test-d97009-1",
+ "at": 1552,
+ "url": "http://127.0.0.1:37223/#/article/rd-test-4cbb5d-1",
"title": "Conduit",
- "domHash": "a5fd021e38a35f59",
+ "domHash": "c816d12e48c21b02",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -2938,9 +2968,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "4fc22202d903e566",
+ "textHash": "f602366b1479175d",
"visualHash": "471347ba69eaf940",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 RD_TEST_D97009_1 RD_TEST_AFDF00_1 July 26, 2026 Delete Article Edit Article RD_TEST_D97009_3 RD_TEST_1DB90D_4 RD_TEST_AFDF00_1 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",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER RD_TEST_4CBB5D_1 RD_PHASE_K_CRUD_OWNER July 26, 2026 Delete Article Edit Article RD_TEST_4CBB5D_3 RD_TEST_F3F938_4 RD_PHASE_K_CRUD_OWNER 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",
@@ -2992,7 +3022,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -3005,10 +3035,10 @@
"networkSettled": true,
"targetBusyAfter": false,
"after": {
- "at": 2531,
- "url": "http://127.0.0.1:37213/#/profile/RD_TEST_AFDF00_1",
+ "at": 2555,
+ "url": "http://127.0.0.1:37223/#/profile/RD_PHASE_K_CRUD_OWNER",
"title": "Conduit",
- "domHash": "641996250f583471",
+ "domHash": "685268f6519d190c",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -3020,9 +3050,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "5c2d6c3ce00bb3c6",
+ "textHash": "9bb35e91eb331515",
"visualHash": "51ee9543781f73ba",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 RD_TEST_AFDF00_1 Edit Profile Settings My Articles Favorited Articles RD_TEST_AFDF00_1 July 26, 2026 ( 0 ) RD_TEST_DA5A96_1 RD_TEST_DA5A96_2 Read more... RD_TEST_DA5A96_4 RD_TEST_AFDF00_1 July 26, 2026 ( 0 ) RD_TEST_D97009_1 RD_TEST_D97009_2 Read more... RD_TEST_1DB90D_4 1 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER RD_PHASE_K_CRUD_OWNER Edit Profile Settings My Articles Favorited Articles RD_PHASE_K_CRUD_OWNER July 26, 2026 ( 0 ) RD_TEST_45949F_1 RD_TEST_45949F_2 Read more... RD_TEST_45949F_4 RD_PHASE_K_CRUD_OWNER July 26, 2026 ( 0 ) RD_TEST_4CBB5D_1 RD_TEST_4CBB5D_2 Read more... RD_TEST_F3F938_4 1 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
"controls": [
{
"tag": "button",
@@ -3046,7 +3076,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -3074,8 +3104,8 @@
{
"id": "RD-006",
"action": {
- "id": "501c5ce7d0a7",
- "pageUrl": "http://127.0.0.1:37213/#/article/rd-test-d97009-1",
+ "id": "6e951fb42425",
+ "pageUrl": "http://127.0.0.1:37223/#/article/rd-test-4cbb5d-1",
"label": "Edit Article",
"activation": "click",
"kind": "mutation",
@@ -3120,31 +3150,31 @@
"fields": []
},
"evidence": {
- "startedAt": "2026-07-26T11:01:22.106Z",
- "durationMs": 7226,
- "canary": "RD_TEST_DE576E",
+ "startedAt": "2026-07-26T12:21:05.526Z",
+ "durationMs": 7103,
+ "canary": "RD_TEST_D8AC8B",
"network": [
{
"id": "net-1",
"method": "GET",
- "url": "http://127.0.0.1:37213/",
+ "url": "http://127.0.0.1:37223/",
"resourceType": "document",
- "startedAt": 2818,
+ "startedAt": 2783,
"status": 200,
"ok": true,
"contentType": "text/html",
"resourceTypeHint": "resource",
- "finishedAt": 2826
+ "finishedAt": 2791
},
{
"id": "net-2",
"method": "GET",
"url": "http://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css",
"resourceType": "stylesheet",
- "startedAt": 2824,
+ "startedAt": 2789,
"status": 307,
"ok": false,
- "finishedAt": 2827,
+ "finishedAt": 2792,
"location": "https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css",
"resourceTypeHint": "ionicons.min.css"
},
@@ -3153,34 +3183,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": 2824,
+ "startedAt": 2790,
"status": 200,
"ok": true,
- "finishedAt": 2865,
+ "finishedAt": 2841,
"contentType": "text/css",
"resourceTypeHint": "css"
},
{
"id": "net-4",
"method": "GET",
- "url": "http://127.0.0.1:37213/assets/index-CLdavoKn.js",
+ "url": "http://127.0.0.1:37223/assets/index-CLdavoKn.js",
"resourceType": "script",
- "startedAt": 2824,
+ "startedAt": 2790,
"status": 200,
"ok": true,
- "finishedAt": 2839,
+ "finishedAt": 2804,
"contentType": "text/javascript",
"resourceTypeHint": "index-CLdavoKn.js"
},
{
"id": "net-5",
"method": "GET",
- "url": "http://127.0.0.1:37213/assets/index-De1Lwdlm.css",
+ "url": "http://127.0.0.1:37223/assets/index-De1Lwdlm.css",
"resourceType": "stylesheet",
- "startedAt": 2825,
+ "startedAt": 2790,
"status": 200,
"ok": true,
- "finishedAt": 2831,
+ "finishedAt": 2796,
"contentType": "text/css",
"resourceTypeHint": "index-De1Lwdlm.css"
},
@@ -3189,10 +3219,10 @@
"method": "GET",
"url": "https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css",
"resourceType": "stylesheet",
- "startedAt": 2827,
+ "startedAt": 2793,
"status": 200,
"ok": true,
- "finishedAt": 3125,
+ "finishedAt": 3059,
"contentType": "text/css",
"resourceTypeHint": "ionicons.min.css"
},
@@ -3201,10 +3231,10 @@
"method": "GET",
"url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdu.woff2",
"resourceType": "font",
- "startedAt": 3135,
+ "startedAt": 3068,
"status": 200,
"ok": true,
- "finishedAt": 3182,
+ "finishedAt": 3114,
"contentType": "font/woff2",
"resourceTypeHint": "6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdu.woff2"
},
@@ -3213,10 +3243,10 @@
"method": "GET",
"url": "https://code.ionicframework.com/ionicons/2.0.1/fonts/ionicons.ttf?v=2.0.1",
"resourceType": "font",
- "startedAt": 3136,
+ "startedAt": 3068,
"status": 200,
"ok": true,
- "finishedAt": 3241,
+ "finishedAt": 3179,
"contentType": "font/ttf",
"resourceTypeHint": "ionicons.ttf"
},
@@ -3225,10 +3255,10 @@
"method": "GET",
"url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7l.woff2",
"resourceType": "font",
- "startedAt": 3136,
+ "startedAt": 3069,
"status": 200,
"ok": true,
- "finishedAt": 3185,
+ "finishedAt": 3120,
"contentType": "font/woff2",
"resourceTypeHint": "6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7l.woff2"
},
@@ -3237,46 +3267,46 @@
"method": "GET",
"url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7nsDI.woff2",
"resourceType": "font",
- "startedAt": 3137,
+ "startedAt": 3069,
"status": 200,
"ok": true,
- "finishedAt": 3181,
+ "finishedAt": 3116,
"contentType": "font/woff2",
"resourceTypeHint": "6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7nsDI.woff2"
},
{
"id": "net-11",
"method": "GET",
- "url": "http://127.0.0.1:37213/api/user",
+ "url": "http://127.0.0.1:37223/api/user",
"resourceType": "xhr",
- "startedAt": 3138,
+ "startedAt": 3071,
"status": 200,
"ok": true,
- "finishedAt": 3142,
+ "finishedAt": 3075,
"contentType": "application/json",
"resourceTypeHint": "user"
},
{
"id": "net-12",
"method": "GET",
- "url": "http://127.0.0.1:37213/",
+ "url": "http://127.0.0.1:37223/",
"resourceType": "document",
- "startedAt": 3998,
+ "startedAt": 3888,
"status": 200,
"ok": true,
"contentType": "text/html",
"resourceTypeHint": "resource",
- "finishedAt": 4005
+ "finishedAt": 3895
},
{
"id": "net-13",
"method": "GET",
"url": "http://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css",
"resourceType": "stylesheet",
- "startedAt": 4003,
+ "startedAt": 3893,
"status": 307,
"ok": false,
- "finishedAt": 4006,
+ "finishedAt": 3896,
"location": "https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css",
"resourceTypeHint": "ionicons.min.css"
},
@@ -3285,46 +3315,46 @@
"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": 4004,
+ "startedAt": 3894,
"status": 200,
"ok": true,
- "finishedAt": 4043,
+ "finishedAt": 3938,
"contentType": "text/css",
"resourceTypeHint": "css"
},
{
"id": "net-15",
"method": "GET",
- "url": "http://127.0.0.1:37213/assets/index-CLdavoKn.js",
+ "url": "http://127.0.0.1:37223/assets/index-CLdavoKn.js",
"resourceType": "script",
- "startedAt": 4004,
+ "startedAt": 3894,
"status": 200,
"ok": true,
- "finishedAt": 4017,
+ "finishedAt": 3906,
"contentType": "text/javascript",
"resourceTypeHint": "index-CLdavoKn.js"
},
{
"id": "net-16",
"method": "GET",
- "url": "http://127.0.0.1:37213/assets/index-De1Lwdlm.css",
+ "url": "http://127.0.0.1:37223/assets/index-De1Lwdlm.css",
"resourceType": "stylesheet",
- "startedAt": 4005,
+ "startedAt": 3894,
"status": 200,
"ok": true,
"contentType": "text/css",
"resourceTypeHint": "index-De1Lwdlm.css",
- "finishedAt": 4009
+ "finishedAt": 3899
},
{
"id": "net-17",
"method": "GET",
"url": "https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css",
"resourceType": "stylesheet",
- "startedAt": 4006,
+ "startedAt": 3896,
"status": 200,
"ok": true,
- "finishedAt": 4084,
+ "finishedAt": 3969,
"contentType": "text/css",
"resourceTypeHint": "ionicons.min.css"
},
@@ -3333,10 +3363,10 @@
"method": "GET",
"url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdu.woff2",
"resourceType": "font",
- "startedAt": 4093,
+ "startedAt": 3978,
"status": 200,
"ok": true,
- "finishedAt": 4145,
+ "finishedAt": 4030,
"contentType": "font/woff2",
"resourceTypeHint": "6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdu.woff2"
},
@@ -3345,22 +3375,22 @@
"method": "GET",
"url": "https://code.ionicframework.com/ionicons/2.0.1/fonts/ionicons.ttf?v=2.0.1",
"resourceType": "font",
- "startedAt": 4094,
+ "startedAt": 3979,
"status": 200,
"ok": true,
- "finishedAt": 4199,
"contentType": "font/ttf",
- "resourceTypeHint": "ionicons.ttf"
+ "resourceTypeHint": "ionicons.ttf",
+ "finishedAt": 4086
},
{
"id": "net-20",
"method": "GET",
"url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7l.woff2",
"resourceType": "font",
- "startedAt": 4094,
+ "startedAt": 3979,
"status": 200,
"ok": true,
- "finishedAt": 4141,
+ "finishedAt": 4025,
"contentType": "font/woff2",
"resourceTypeHint": "6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7l.woff2"
},
@@ -3369,22 +3399,22 @@
"method": "GET",
"url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7nsDI.woff2",
"resourceType": "font",
- "startedAt": 4095,
+ "startedAt": 3979,
"status": 200,
"ok": true,
- "finishedAt": 4140,
+ "finishedAt": 4024,
"contentType": "font/woff2",
"resourceTypeHint": "6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7nsDI.woff2"
},
{
"id": "net-22",
"method": "GET",
- "url": "http://127.0.0.1:37213/api/user",
+ "url": "http://127.0.0.1:37223/api/user",
"resourceType": "xhr",
- "startedAt": 4096,
+ "startedAt": 3981,
"status": 200,
"ok": true,
- "finishedAt": 4100,
+ "finishedAt": 3985,
"contentType": "application/json",
"resourceTypeHint": "user"
}
@@ -3398,6 +3428,12 @@
"downloadEvidence": [],
"uploads": [],
"popupUrls": [],
+ "visualSuppressions": [
+ {
+ "artifact": "screenshot",
+ "reason": "authenticated-context"
+ }
+ ],
"locatorResolution": {
"attempts": [
{
@@ -3412,14 +3448,14 @@
"weight": 82,
"matchCount": 2,
"visibleCount": 2,
- "elapsedMs": 7
+ "elapsedMs": 8
},
{
"strategy": "text",
"weight": 60,
"matchCount": 2,
"visibleCount": 2,
- "elapsedMs": 7
+ "elapsedMs": 8
},
{
"strategy": "css",
@@ -3434,10 +3470,10 @@
"retryCount": 0
},
"before": {
- "at": 1510,
- "url": "http://127.0.0.1:37213/#/article/rd-test-d97009-1",
+ "at": 1505,
+ "url": "http://127.0.0.1:37223/#/article/rd-test-4cbb5d-1",
"title": "Conduit",
- "domHash": "a5fd021e38a35f59",
+ "domHash": "c816d12e48c21b02",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -3449,9 +3485,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "4fc22202d903e566",
+ "textHash": "f602366b1479175d",
"visualHash": "471347ba69eaf940",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 RD_TEST_D97009_1 RD_TEST_AFDF00_1 July 26, 2026 Delete Article Edit Article RD_TEST_D97009_3 RD_TEST_1DB90D_4 RD_TEST_AFDF00_1 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",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER RD_TEST_4CBB5D_1 RD_PHASE_K_CRUD_OWNER July 26, 2026 Delete Article Edit Article RD_TEST_4CBB5D_3 RD_TEST_F3F938_4 RD_PHASE_K_CRUD_OWNER 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",
@@ -3503,7 +3539,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -3520,12 +3556,12 @@
"rows": [
{
"keyHash": "186347d9ea7673a2",
- "rowHash": "0d57a14d8f768e38",
+ "rowHash": "513a00e32394f4c2",
"softDeleted": false
},
{
"keyHash": "da7114755c3b82ba",
- "rowHash": "8a838f560ae73b56",
+ "rowHash": "a43fe358be8329c7",
"softDeleted": false
}
],
@@ -3536,9 +3572,90 @@
"resource": "users",
"schemaHash": "b7a8a911cd0fd4e9",
"rows": [
+ {
+ "keyHash": "186347d9ea7673a2",
+ "rowHash": "4d8311a4b9df0bbb",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "da7114755c3b82ba",
+ "rowHash": "39bd56af0b169023",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "84cf60166b2ca345",
+ "rowHash": "aa49653a67bcd399",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "9ef59241e15425e0",
+ "rowHash": "3343e1b012ad4f04",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "82a8445b12df5a29",
+ "rowHash": "db866c24a3538c63",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "667da1af4b45220f",
+ "rowHash": "5c8f98476fb3bfca",
+ "softDeleted": false
+ }
+ ],
+ "truncated": false
+ },
+ {
+ "adapter": "supabase",
+ "resource": "articles",
+ "schemaHash": "777de19e0eca5f66",
+ "rows": [
+ {
+ "keyHash": "186347d9ea7673a2",
+ "rowHash": "513a00e32394f4c2",
+ "softDeleted": false
+ },
{
"keyHash": "da7114755c3b82ba",
- "rowHash": "f1108a413122f589",
+ "rowHash": "a43fe358be8329c7",
+ "softDeleted": false
+ }
+ ],
+ "truncated": false
+ },
+ {
+ "adapter": "supabase",
+ "resource": "users",
+ "schemaHash": "cd9a96cfad9b0bff",
+ "rows": [
+ {
+ "keyHash": "186347d9ea7673a2",
+ "rowHash": "4d8311a4b9df0bbb",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "da7114755c3b82ba",
+ "rowHash": "39bd56af0b169023",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "84cf60166b2ca345",
+ "rowHash": "aa49653a67bcd399",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "9ef59241e15425e0",
+ "rowHash": "3343e1b012ad4f04",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "82a8445b12df5a29",
+ "rowHash": "db866c24a3538c63",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "667da1af4b45220f",
+ "rowHash": "5c8f98476fb3bfca",
"softDeleted": false
}
],
@@ -3547,10 +3664,10 @@
]
},
"beforeAction": {
- "at": 1519,
- "url": "http://127.0.0.1:37213/#/article/rd-test-d97009-1",
+ "at": 1516,
+ "url": "http://127.0.0.1:37223/#/article/rd-test-4cbb5d-1",
"title": "Conduit",
- "domHash": "a5fd021e38a35f59",
+ "domHash": "c816d12e48c21b02",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -3562,9 +3679,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "4fc22202d903e566",
+ "textHash": "f602366b1479175d",
"visualHash": "471347ba69eaf940",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 RD_TEST_D97009_1 RD_TEST_AFDF00_1 July 26, 2026 Delete Article Edit Article RD_TEST_D97009_3 RD_TEST_1DB90D_4 RD_TEST_AFDF00_1 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",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER RD_TEST_4CBB5D_1 RD_PHASE_K_CRUD_OWNER July 26, 2026 Delete Article Edit Article RD_TEST_4CBB5D_3 RD_TEST_F3F938_4 RD_PHASE_K_CRUD_OWNER 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",
@@ -3616,7 +3733,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -3629,10 +3746,10 @@
"targetDisabledAfter": false,
"networkSettled": true,
"after": {
- "at": 2784,
- "url": "http://127.0.0.1:37213/#/editor/rd-test-d97009-1",
+ "at": 2777,
+ "url": "http://127.0.0.1:37223/#/editor/rd-test-4cbb5d-1",
"title": "Conduit",
- "domHash": "3554f29cbab51410",
+ "domHash": "433fc4cb832cca73",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -3644,15 +3761,15 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "3d23bd88be98cc02",
+ "textHash": "e17c5fa668856e91",
"visualHash": "b85410fa0ea5a358",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 Update Article conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER Update Article conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
"controls": [
{
"tag": "input",
"type": "text",
"name": "title",
- "valueHash": "bb8b2867d2490613",
+ "valueHash": "63a60e1888a32b7e",
"checked": false,
"disabled": false,
"visible": true
@@ -3661,7 +3778,7 @@
"tag": "input",
"type": "text",
"name": "description",
- "valueHash": "d6bf36bb39a2b742",
+ "valueHash": "67d21f750d5684dd",
"checked": false,
"disabled": false,
"visible": true
@@ -3670,7 +3787,7 @@
"tag": "textarea",
"type": "textarea",
"name": "body",
- "valueHash": "4a1a708e19ade686",
+ "valueHash": "6424bfab43262088",
"disabled": false,
"visible": true
},
@@ -3678,7 +3795,7 @@
"tag": "input",
"type": "text",
"name": "tags",
- "valueHash": "77ae5c6394cae14e",
+ "valueHash": "9b3570f9ddf845d4",
"checked": false,
"disabled": false,
"visible": true
@@ -3698,7 +3815,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -3715,12 +3832,12 @@
"rows": [
{
"keyHash": "186347d9ea7673a2",
- "rowHash": "0d57a14d8f768e38",
+ "rowHash": "513a00e32394f4c2",
"softDeleted": false
},
{
"keyHash": "da7114755c3b82ba",
- "rowHash": "8a838f560ae73b56",
+ "rowHash": "a43fe358be8329c7",
"softDeleted": false
}
],
@@ -3731,9 +3848,90 @@
"resource": "users",
"schemaHash": "b7a8a911cd0fd4e9",
"rows": [
+ {
+ "keyHash": "186347d9ea7673a2",
+ "rowHash": "4d8311a4b9df0bbb",
+ "softDeleted": false
+ },
{
"keyHash": "da7114755c3b82ba",
- "rowHash": "f1108a413122f589",
+ "rowHash": "39bd56af0b169023",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "84cf60166b2ca345",
+ "rowHash": "aa49653a67bcd399",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "9ef59241e15425e0",
+ "rowHash": "3343e1b012ad4f04",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "82a8445b12df5a29",
+ "rowHash": "db866c24a3538c63",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "667da1af4b45220f",
+ "rowHash": "5c8f98476fb3bfca",
+ "softDeleted": false
+ }
+ ],
+ "truncated": false
+ },
+ {
+ "adapter": "supabase",
+ "resource": "articles",
+ "schemaHash": "777de19e0eca5f66",
+ "rows": [
+ {
+ "keyHash": "186347d9ea7673a2",
+ "rowHash": "513a00e32394f4c2",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "da7114755c3b82ba",
+ "rowHash": "a43fe358be8329c7",
+ "softDeleted": false
+ }
+ ],
+ "truncated": false
+ },
+ {
+ "adapter": "supabase",
+ "resource": "users",
+ "schemaHash": "cd9a96cfad9b0bff",
+ "rows": [
+ {
+ "keyHash": "186347d9ea7673a2",
+ "rowHash": "4d8311a4b9df0bbb",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "da7114755c3b82ba",
+ "rowHash": "39bd56af0b169023",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "84cf60166b2ca345",
+ "rowHash": "aa49653a67bcd399",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "9ef59241e15425e0",
+ "rowHash": "3343e1b012ad4f04",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "82a8445b12df5a29",
+ "rowHash": "db866c24a3538c63",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "667da1af4b45220f",
+ "rowHash": "5c8f98476fb3bfca",
"softDeleted": false
}
],
@@ -3741,12 +3939,11 @@
}
]
},
- "screenshot": "screenshots/501c5ce7d0a7-after.png",
"afterRefresh": {
- "at": 3957,
- "url": "http://127.0.0.1:37213/#/editor/rd-test-d97009-1",
+ "at": 3884,
+ "url": "http://127.0.0.1:37223/#/editor/rd-test-4cbb5d-1",
"title": "Conduit",
- "domHash": "3554f29cbab51410",
+ "domHash": "433fc4cb832cca73",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -3758,15 +3955,15 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "3d23bd88be98cc02",
+ "textHash": "e17c5fa668856e91",
"visualHash": "b85410fa0ea5a358",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 Update Article conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER Update Article conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
"controls": [
{
"tag": "input",
"type": "text",
"name": "title",
- "valueHash": "bb8b2867d2490613",
+ "valueHash": "63a60e1888a32b7e",
"checked": false,
"disabled": false,
"visible": true
@@ -3775,7 +3972,7 @@
"tag": "input",
"type": "text",
"name": "description",
- "valueHash": "d6bf36bb39a2b742",
+ "valueHash": "67d21f750d5684dd",
"checked": false,
"disabled": false,
"visible": true
@@ -3784,7 +3981,7 @@
"tag": "textarea",
"type": "textarea",
"name": "body",
- "valueHash": "4a1a708e19ade686",
+ "valueHash": "6424bfab43262088",
"disabled": false,
"visible": true
},
@@ -3792,7 +3989,7 @@
"tag": "input",
"type": "text",
"name": "tags",
- "valueHash": "77ae5c6394cae14e",
+ "valueHash": "9b3570f9ddf845d4",
"checked": false,
"disabled": false,
"visible": true
@@ -3812,7 +4009,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -3822,12 +4019,11 @@
"indexedDb": []
}
},
- "refreshScreenshot": "screenshots/501c5ce7d0a7-refresh.png",
"afterHardRefresh": {
- "at": 4924,
- "url": "http://127.0.0.1:37213/#/editor/rd-test-d97009-1",
+ "at": 4796,
+ "url": "http://127.0.0.1:37223/#/editor/rd-test-4cbb5d-1",
"title": "Conduit",
- "domHash": "3554f29cbab51410",
+ "domHash": "433fc4cb832cca73",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -3839,15 +4035,15 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "3d23bd88be98cc02",
+ "textHash": "e17c5fa668856e91",
"visualHash": "b85410fa0ea5a358",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 Update Article conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER Update Article conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
"controls": [
{
"tag": "input",
"type": "text",
"name": "title",
- "valueHash": "bb8b2867d2490613",
+ "valueHash": "63a60e1888a32b7e",
"checked": false,
"disabled": false,
"visible": true
@@ -3856,7 +4052,7 @@
"tag": "input",
"type": "text",
"name": "description",
- "valueHash": "d6bf36bb39a2b742",
+ "valueHash": "67d21f750d5684dd",
"checked": false,
"disabled": false,
"visible": true
@@ -3865,7 +4061,7 @@
"tag": "textarea",
"type": "textarea",
"name": "body",
- "valueHash": "4a1a708e19ade686",
+ "valueHash": "6424bfab43262088",
"disabled": false,
"visible": true
},
@@ -3873,7 +4069,7 @@
"tag": "input",
"type": "text",
"name": "tags",
- "valueHash": "77ae5c6394cae14e",
+ "valueHash": "9b3570f9ddf845d4",
"checked": false,
"disabled": false,
"visible": true
@@ -3893,7 +4089,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -3904,10 +4100,10 @@
}
},
"afterNewTab": {
- "at": 5921,
- "url": "http://127.0.0.1:37213/#/article/rd-test-d97009-1",
+ "at": 5797,
+ "url": "http://127.0.0.1:37223/#/article/rd-test-4cbb5d-1",
"title": "Conduit",
- "domHash": "a5fd021e38a35f59",
+ "domHash": "c816d12e48c21b02",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -3919,9 +4115,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "4fc22202d903e566",
+ "textHash": "f602366b1479175d",
"visualHash": "471347ba69eaf940",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 RD_TEST_D97009_1 RD_TEST_AFDF00_1 July 26, 2026 Delete Article Edit Article RD_TEST_D97009_3 RD_TEST_1DB90D_4 RD_TEST_AFDF00_1 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",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER RD_TEST_4CBB5D_1 RD_PHASE_K_CRUD_OWNER July 26, 2026 Delete Article Edit Article RD_TEST_4CBB5D_3 RD_TEST_F3F938_4 RD_PHASE_K_CRUD_OWNER 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",
@@ -3973,7 +4169,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -3984,10 +4180,10 @@
}
},
"afterNewContext": {
- "at": 7223,
- "url": "http://127.0.0.1:37213/#/editor/rd-test-d97009-1",
+ "at": 7099,
+ "url": "http://127.0.0.1:37223/#/editor/rd-test-4cbb5d-1",
"title": "Conduit",
- "domHash": "3554f29cbab51410",
+ "domHash": "433fc4cb832cca73",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -3999,15 +4195,15 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "3d23bd88be98cc02",
+ "textHash": "e17c5fa668856e91",
"visualHash": "b85410fa0ea5a358",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 Update Article conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER Update Article conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
"controls": [
{
"tag": "input",
"type": "text",
"name": "title",
- "valueHash": "bb8b2867d2490613",
+ "valueHash": "63a60e1888a32b7e",
"checked": false,
"disabled": false,
"visible": true
@@ -4016,7 +4212,7 @@
"tag": "input",
"type": "text",
"name": "description",
- "valueHash": "d6bf36bb39a2b742",
+ "valueHash": "67d21f750d5684dd",
"checked": false,
"disabled": false,
"visible": true
@@ -4025,7 +4221,7 @@
"tag": "textarea",
"type": "textarea",
"name": "body",
- "valueHash": "4a1a708e19ade686",
+ "valueHash": "6424bfab43262088",
"disabled": false,
"visible": true
},
@@ -4033,7 +4229,7 @@
"tag": "input",
"type": "text",
"name": "tags",
- "valueHash": "77ae5c6394cae14e",
+ "valueHash": "9b3570f9ddf845d4",
"checked": false,
"disabled": false,
"visible": true
@@ -4053,7 +4249,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -4089,6 +4285,24 @@
"changed": [],
"softDeleted": [],
"truncated": false
+ },
+ {
+ "adapter": "supabase",
+ "resource": "articles",
+ "added": [],
+ "removed": [],
+ "changed": [],
+ "softDeleted": [],
+ "truncated": false
+ },
+ {
+ "adapter": "supabase",
+ "resource": "users",
+ "added": [],
+ "removed": [],
+ "changed": [],
+ "softDeleted": [],
+ "truncated": false
}
],
"sourceSnapshotErrors": [],
@@ -4102,9 +4316,9 @@
{
"id": "RD-007",
"action": {
- "id": "f7fa09e24ecd",
- "pageUrl": "http://127.0.0.1:37213/#/article/rd-test-d97009-1",
- "label": "http://127.0.0.1:37213/#/profile/RD_TEST_AFDF00_1",
+ "id": "7cb41d0deb5c",
+ "pageUrl": "http://127.0.0.1:37223/#/article/rd-test-4cbb5d-1",
+ "label": "http://127.0.0.1:37223/#/profile/RD_PHASE_K_CRUD_OWNER",
"activation": "click",
"kind": "navigation",
"intent": "navigate",
@@ -4114,12 +4328,12 @@
"tag": "a",
"ordinal": 8,
"role": "link",
- "href": "http://127.0.0.1:37213/#/profile/RD_TEST_AFDF00_1",
+ "href": "http://127.0.0.1:37223/#/profile/RD_PHASE_K_CRUD_OWNER",
"candidates": [
{
"strategy": "href",
"weight": 72,
- "value": "http://127.0.0.1:37213/#/profile/RD_TEST_AFDF00_1"
+ "value": "http://127.0.0.1:37223/#/profile/RD_PHASE_K_CRUD_OWNER"
},
{
"strategy": "css",
@@ -4131,19 +4345,19 @@
"fields": []
},
"evidence": {
- "startedAt": "2026-07-26T11:01:29.435Z",
- "durationMs": 2510,
- "canary": "RD_TEST_221C06",
+ "startedAt": "2026-07-26T12:21:12.708Z",
+ "durationMs": 2563,
+ "canary": "RD_TEST_B91DFA",
"network": [
{
"id": "net-1",
"method": "GET",
- "url": "http://127.0.0.1:37213/api/articles?author=RD_TEST_AFDF00_1&&limit=3&&offset=0",
+ "url": "http://127.0.0.1:37223/api/articles?author=RD_PHASE_K_CRUD_OWNER&&limit=3&&offset=0",
"resourceType": "xhr",
- "startedAt": 1533,
+ "startedAt": 1570,
"status": 200,
"ok": true,
- "finishedAt": 1544,
+ "finishedAt": 1584,
"contentType": "application/json",
"resourceTypeHint": "articles"
}
@@ -4157,6 +4371,12 @@
"downloadEvidence": [],
"uploads": [],
"popupUrls": [],
+ "visualSuppressions": [
+ {
+ "artifact": "screenshot",
+ "reason": "authenticated-context"
+ }
+ ],
"locatorResolution": {
"attempts": [
{
@@ -4171,7 +4391,7 @@
"weight": 35,
"matchCount": 1,
"visibleCount": 1,
- "elapsedMs": 4
+ "elapsedMs": 5
}
],
"chosenStrategy": "css",
@@ -4179,10 +4399,10 @@
"retryCount": 0
},
"before": {
- "at": 1495,
- "url": "http://127.0.0.1:37213/#/article/rd-test-d97009-1",
+ "at": 1529,
+ "url": "http://127.0.0.1:37223/#/article/rd-test-4cbb5d-1",
"title": "Conduit",
- "domHash": "a5fd021e38a35f59",
+ "domHash": "c816d12e48c21b02",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -4194,9 +4414,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "4fc22202d903e566",
+ "textHash": "f602366b1479175d",
"visualHash": "471347ba69eaf940",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 RD_TEST_D97009_1 RD_TEST_AFDF00_1 July 26, 2026 Delete Article Edit Article RD_TEST_D97009_3 RD_TEST_1DB90D_4 RD_TEST_AFDF00_1 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",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER RD_TEST_4CBB5D_1 RD_PHASE_K_CRUD_OWNER July 26, 2026 Delete Article Edit Article RD_TEST_4CBB5D_3 RD_TEST_F3F938_4 RD_PHASE_K_CRUD_OWNER 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",
@@ -4248,7 +4468,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -4259,10 +4479,10 @@
}
},
"beforeAction": {
- "at": 1504,
- "url": "http://127.0.0.1:37213/#/article/rd-test-d97009-1",
+ "at": 1542,
+ "url": "http://127.0.0.1:37223/#/article/rd-test-4cbb5d-1",
"title": "Conduit",
- "domHash": "a5fd021e38a35f59",
+ "domHash": "c816d12e48c21b02",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -4274,9 +4494,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "4fc22202d903e566",
+ "textHash": "f602366b1479175d",
"visualHash": "471347ba69eaf940",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 RD_TEST_D97009_1 RD_TEST_AFDF00_1 July 26, 2026 Delete Article Edit Article RD_TEST_D97009_3 RD_TEST_1DB90D_4 RD_TEST_AFDF00_1 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",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER RD_TEST_4CBB5D_1 RD_PHASE_K_CRUD_OWNER July 26, 2026 Delete Article Edit Article RD_TEST_4CBB5D_3 RD_TEST_F3F938_4 RD_PHASE_K_CRUD_OWNER 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",
@@ -4328,7 +4548,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -4340,10 +4560,10 @@
},
"networkSettled": true,
"after": {
- "at": 2505,
- "url": "http://127.0.0.1:37213/#/profile/RD_TEST_AFDF00_1",
+ "at": 2558,
+ "url": "http://127.0.0.1:37223/#/profile/RD_PHASE_K_CRUD_OWNER",
"title": "Conduit",
- "domHash": "641996250f583471",
+ "domHash": "685268f6519d190c",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -4355,9 +4575,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "5c2d6c3ce00bb3c6",
+ "textHash": "9bb35e91eb331515",
"visualHash": "51ee9543781f73ba",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 RD_TEST_AFDF00_1 Edit Profile Settings My Articles Favorited Articles RD_TEST_AFDF00_1 July 26, 2026 ( 0 ) RD_TEST_DA5A96_1 RD_TEST_DA5A96_2 Read more... RD_TEST_DA5A96_4 RD_TEST_AFDF00_1 July 26, 2026 ( 0 ) RD_TEST_D97009_1 RD_TEST_D97009_2 Read more... RD_TEST_1DB90D_4 1 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER RD_PHASE_K_CRUD_OWNER Edit Profile Settings My Articles Favorited Articles RD_PHASE_K_CRUD_OWNER July 26, 2026 ( 0 ) RD_TEST_45949F_1 RD_TEST_45949F_2 Read more... RD_TEST_45949F_4 RD_PHASE_K_CRUD_OWNER July 26, 2026 ( 0 ) RD_TEST_4CBB5D_1 RD_TEST_4CBB5D_2 Read more... RD_TEST_F3F938_4 1 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
"controls": [
{
"tag": "button",
@@ -4381,7 +4601,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -4409,9 +4629,9 @@
{
"id": "RD-008",
"action": {
- "id": "dafd6c2b8d6a",
- "pageUrl": "http://127.0.0.1:37213/#/article/rd-test-d97009-1",
- "label": "RD_TEST_AFDF00_1",
+ "id": "c17ee9d21303",
+ "pageUrl": "http://127.0.0.1:37223/#/article/rd-test-4cbb5d-1",
+ "label": "RD_PHASE_K_CRUD_OWNER",
"activation": "click",
"kind": "navigation",
"intent": "navigate",
@@ -4421,33 +4641,33 @@
"tag": "a",
"ordinal": 9,
"role": "link",
- "accessibleName": "RD_TEST_AFDF00_1",
- "text": "RD_TEST_AFDF00_1",
- "href": "http://127.0.0.1:37213/#/profile/RD_TEST_AFDF00_1",
+ "accessibleName": "RD_PHASE_K_CRUD_OWNER",
+ "text": "RD_PHASE_K_CRUD_OWNER",
+ "href": "http://127.0.0.1:37223/#/profile/RD_PHASE_K_CRUD_OWNER",
"candidates": [
{
"strategy": "role",
"weight": 92,
"role": "link",
- "name": "RD_TEST_AFDF00_1",
+ "name": "RD_PHASE_K_CRUD_OWNER",
"exact": true
},
{
"strategy": "role",
"weight": 82,
"role": "link",
- "name": "RD_TEST_AFDF00_1",
+ "name": "RD_PHASE_K_CRUD_OWNER",
"exact": false
},
{
"strategy": "href",
"weight": 72,
- "value": "http://127.0.0.1:37213/#/profile/RD_TEST_AFDF00_1"
+ "value": "http://127.0.0.1:37223/#/profile/RD_PHASE_K_CRUD_OWNER"
},
{
"strategy": "text",
"weight": 60,
- "value": "RD_TEST_AFDF00_1",
+ "value": "RD_PHASE_K_CRUD_OWNER",
"exact": true
},
{
@@ -4460,19 +4680,19 @@
"fields": []
},
"evidence": {
- "startedAt": "2026-07-26T11:01:31.985Z",
- "durationMs": 2491,
- "canary": "RD_TEST_F591C0",
+ "startedAt": "2026-07-26T12:21:15.300Z",
+ "durationMs": 2542,
+ "canary": "RD_TEST_024A26",
"network": [
{
"id": "net-1",
"method": "GET",
- "url": "http://127.0.0.1:37213/api/articles?author=RD_TEST_AFDF00_1&&limit=3&&offset=0",
+ "url": "http://127.0.0.1:37223/api/articles?author=RD_PHASE_K_CRUD_OWNER&&limit=3&&offset=0",
"resourceType": "xhr",
- "startedAt": 1550,
+ "startedAt": 1612,
"status": 200,
"ok": true,
- "finishedAt": 1560,
+ "finishedAt": 1627,
"contentType": "application/json",
"resourceTypeHint": "articles"
}
@@ -4486,6 +4706,12 @@
"downloadEvidence": [],
"uploads": [],
"popupUrls": [],
+ "visualSuppressions": [
+ {
+ "artifact": "screenshot",
+ "reason": "authenticated-context"
+ }
+ ],
"locatorResolution": {
"attempts": [
{
@@ -4493,14 +4719,14 @@
"weight": 92,
"matchCount": 4,
"visibleCount": 4,
- "elapsedMs": 13
+ "elapsedMs": 14
},
{
"strategy": "role",
"weight": 82,
"matchCount": 4,
"visibleCount": 4,
- "elapsedMs": 12
+ "elapsedMs": 13
},
{
"strategy": "href",
@@ -4514,7 +4740,7 @@
"weight": 60,
"matchCount": 3,
"visibleCount": 3,
- "elapsedMs": 8
+ "elapsedMs": 10
},
{
"strategy": "css",
@@ -4529,10 +4755,10 @@
"retryCount": 0
},
"before": {
- "at": 1518,
- "url": "http://127.0.0.1:37213/#/article/rd-test-d97009-1",
+ "at": 1563,
+ "url": "http://127.0.0.1:37223/#/article/rd-test-4cbb5d-1",
"title": "Conduit",
- "domHash": "a5fd021e38a35f59",
+ "domHash": "c816d12e48c21b02",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -4544,9 +4770,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "4fc22202d903e566",
+ "textHash": "f602366b1479175d",
"visualHash": "471347ba69eaf940",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 RD_TEST_D97009_1 RD_TEST_AFDF00_1 July 26, 2026 Delete Article Edit Article RD_TEST_D97009_3 RD_TEST_1DB90D_4 RD_TEST_AFDF00_1 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",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER RD_TEST_4CBB5D_1 RD_PHASE_K_CRUD_OWNER July 26, 2026 Delete Article Edit Article RD_TEST_4CBB5D_3 RD_TEST_F3F938_4 RD_PHASE_K_CRUD_OWNER 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",
@@ -4598,7 +4824,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -4609,10 +4835,10 @@
}
},
"beforeAction": {
- "at": 1527,
- "url": "http://127.0.0.1:37213/#/article/rd-test-d97009-1",
+ "at": 1574,
+ "url": "http://127.0.0.1:37223/#/article/rd-test-4cbb5d-1",
"title": "Conduit",
- "domHash": "a5fd021e38a35f59",
+ "domHash": "c816d12e48c21b02",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -4624,9 +4850,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "4fc22202d903e566",
+ "textHash": "f602366b1479175d",
"visualHash": "471347ba69eaf940",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 RD_TEST_D97009_1 RD_TEST_AFDF00_1 July 26, 2026 Delete Article Edit Article RD_TEST_D97009_3 RD_TEST_1DB90D_4 RD_TEST_AFDF00_1 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",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER RD_TEST_4CBB5D_1 RD_PHASE_K_CRUD_OWNER July 26, 2026 Delete Article Edit Article RD_TEST_4CBB5D_3 RD_TEST_F3F938_4 RD_PHASE_K_CRUD_OWNER 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",
@@ -4678,7 +4904,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -4690,10 +4916,10 @@
},
"networkSettled": true,
"after": {
- "at": 2487,
- "url": "http://127.0.0.1:37213/#/profile/RD_TEST_AFDF00_1",
+ "at": 2539,
+ "url": "http://127.0.0.1:37223/#/profile/RD_PHASE_K_CRUD_OWNER",
"title": "Conduit",
- "domHash": "641996250f583471",
+ "domHash": "685268f6519d190c",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -4705,9 +4931,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "5c2d6c3ce00bb3c6",
+ "textHash": "9bb35e91eb331515",
"visualHash": "51ee9543781f73ba",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 RD_TEST_AFDF00_1 Edit Profile Settings My Articles Favorited Articles RD_TEST_AFDF00_1 July 26, 2026 ( 0 ) RD_TEST_DA5A96_1 RD_TEST_DA5A96_2 Read more... RD_TEST_DA5A96_4 RD_TEST_AFDF00_1 July 26, 2026 ( 0 ) RD_TEST_D97009_1 RD_TEST_D97009_2 Read more... RD_TEST_1DB90D_4 1 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER RD_PHASE_K_CRUD_OWNER Edit Profile Settings My Articles Favorited Articles RD_PHASE_K_CRUD_OWNER July 26, 2026 ( 0 ) RD_TEST_45949F_1 RD_TEST_45949F_2 Read more... RD_TEST_45949F_4 RD_PHASE_K_CRUD_OWNER July 26, 2026 ( 0 ) RD_TEST_4CBB5D_1 RD_TEST_4CBB5D_2 Read more... RD_TEST_F3F938_4 1 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
"controls": [
{
"tag": "button",
@@ -4731,7 +4957,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -4759,8 +4985,8 @@
{
"id": "RD-009",
"action": {
- "id": "17b6c4f59d23",
- "pageUrl": "http://127.0.0.1:37213/#/article/rd-test-d97009-1",
+ "id": "f95b5e51d8bf",
+ "pageUrl": "http://127.0.0.1:37223/#/article/rd-test-4cbb5d-1",
"label": "Edit Article",
"activation": "click",
"kind": "mutation",
@@ -4805,31 +5031,31 @@
"fields": []
},
"evidence": {
- "startedAt": "2026-07-26T11:01:34.560Z",
- "durationMs": 7202,
- "canary": "RD_TEST_B46CE8",
+ "startedAt": "2026-07-26T12:21:17.910Z",
+ "durationMs": 7096,
+ "canary": "RD_TEST_47884A",
"network": [
{
"id": "net-1",
"method": "GET",
- "url": "http://127.0.0.1:37213/",
+ "url": "http://127.0.0.1:37223/",
"resourceType": "document",
- "startedAt": 2809,
+ "startedAt": 2801,
"status": 200,
"ok": true,
"contentType": "text/html",
"resourceTypeHint": "resource",
- "finishedAt": 2816
+ "finishedAt": 2810
},
{
"id": "net-2",
"method": "GET",
"url": "http://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css",
"resourceType": "stylesheet",
- "startedAt": 2815,
+ "startedAt": 2808,
"status": 307,
"ok": false,
- "finishedAt": 2818,
+ "finishedAt": 2811,
"location": "https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css",
"resourceTypeHint": "ionicons.min.css"
},
@@ -4838,34 +5064,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": 2815,
+ "startedAt": 2808,
"status": 200,
"ok": true,
- "finishedAt": 2856,
+ "finishedAt": 2847,
"contentType": "text/css",
"resourceTypeHint": "css"
},
{
"id": "net-4",
"method": "GET",
- "url": "http://127.0.0.1:37213/assets/index-CLdavoKn.js",
+ "url": "http://127.0.0.1:37223/assets/index-CLdavoKn.js",
"resourceType": "script",
- "startedAt": 2816,
+ "startedAt": 2808,
"status": 200,
"ok": true,
- "finishedAt": 2829,
+ "finishedAt": 2824,
"contentType": "text/javascript",
"resourceTypeHint": "index-CLdavoKn.js"
},
{
"id": "net-5",
"method": "GET",
- "url": "http://127.0.0.1:37213/assets/index-De1Lwdlm.css",
+ "url": "http://127.0.0.1:37223/assets/index-De1Lwdlm.css",
"resourceType": "stylesheet",
- "startedAt": 2816,
+ "startedAt": 2809,
"status": 200,
"ok": true,
- "finishedAt": 2821,
+ "finishedAt": 2814,
"contentType": "text/css",
"resourceTypeHint": "index-De1Lwdlm.css"
},
@@ -4874,10 +5100,10 @@
"method": "GET",
"url": "https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css",
"resourceType": "stylesheet",
- "startedAt": 2818,
+ "startedAt": 2811,
"status": 200,
"ok": true,
- "finishedAt": 3109,
+ "finishedAt": 3086,
"contentType": "text/css",
"resourceTypeHint": "ionicons.min.css"
},
@@ -4886,10 +5112,10 @@
"method": "GET",
"url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdu.woff2",
"resourceType": "font",
- "startedAt": 3118,
+ "startedAt": 3096,
"status": 200,
"ok": true,
- "finishedAt": 3169,
+ "finishedAt": 3143,
"contentType": "font/woff2",
"resourceTypeHint": "6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdu.woff2"
},
@@ -4898,10 +5124,10 @@
"method": "GET",
"url": "https://code.ionicframework.com/ionicons/2.0.1/fonts/ionicons.ttf?v=2.0.1",
"resourceType": "font",
- "startedAt": 3118,
+ "startedAt": 3097,
"status": 200,
"ok": true,
- "finishedAt": 3235,
+ "finishedAt": 3214,
"contentType": "font/ttf",
"resourceTypeHint": "ionicons.ttf"
},
@@ -4910,10 +5136,10 @@
"method": "GET",
"url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7l.woff2",
"resourceType": "font",
- "startedAt": 3119,
+ "startedAt": 3097,
"status": 200,
"ok": true,
- "finishedAt": 3165,
+ "finishedAt": 3150,
"contentType": "font/woff2",
"resourceTypeHint": "6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7l.woff2"
},
@@ -4922,46 +5148,46 @@
"method": "GET",
"url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7nsDI.woff2",
"resourceType": "font",
- "startedAt": 3120,
+ "startedAt": 3097,
"status": 200,
"ok": true,
- "finishedAt": 3165,
+ "finishedAt": 3143,
"contentType": "font/woff2",
"resourceTypeHint": "6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7nsDI.woff2"
},
{
"id": "net-11",
"method": "GET",
- "url": "http://127.0.0.1:37213/api/user",
+ "url": "http://127.0.0.1:37223/api/user",
"resourceType": "xhr",
- "startedAt": 3121,
+ "startedAt": 3098,
"status": 200,
"ok": true,
- "finishedAt": 3125,
+ "finishedAt": 3103,
"contentType": "application/json",
"resourceTypeHint": "user"
},
{
"id": "net-12",
"method": "GET",
- "url": "http://127.0.0.1:37213/",
+ "url": "http://127.0.0.1:37223/",
"resourceType": "document",
- "startedAt": 3981,
+ "startedAt": 3929,
"status": 200,
"ok": true,
"contentType": "text/html",
"resourceTypeHint": "resource",
- "finishedAt": 3988
+ "finishedAt": 3936
},
{
"id": "net-13",
"method": "GET",
"url": "http://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css",
"resourceType": "stylesheet",
- "startedAt": 3987,
+ "startedAt": 3935,
"status": 307,
"ok": false,
- "finishedAt": 3989,
+ "finishedAt": 3938,
"location": "https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css",
"resourceTypeHint": "ionicons.min.css"
},
@@ -4970,34 +5196,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": 3987,
+ "startedAt": 3935,
"status": 200,
"ok": true,
- "finishedAt": 4029,
+ "finishedAt": 3973,
"contentType": "text/css",
"resourceTypeHint": "css"
},
{
"id": "net-15",
"method": "GET",
- "url": "http://127.0.0.1:37213/assets/index-CLdavoKn.js",
+ "url": "http://127.0.0.1:37223/assets/index-CLdavoKn.js",
"resourceType": "script",
- "startedAt": 3988,
+ "startedAt": 3935,
"status": 200,
"ok": true,
- "finishedAt": 4000,
+ "finishedAt": 3948,
"contentType": "text/javascript",
"resourceTypeHint": "index-CLdavoKn.js"
},
{
"id": "net-16",
"method": "GET",
- "url": "http://127.0.0.1:37213/assets/index-De1Lwdlm.css",
+ "url": "http://127.0.0.1:37223/assets/index-De1Lwdlm.css",
"resourceType": "stylesheet",
- "startedAt": 3988,
+ "startedAt": 3936,
"status": 200,
"ok": true,
- "finishedAt": 3993,
+ "finishedAt": 3940,
"contentType": "text/css",
"resourceTypeHint": "index-De1Lwdlm.css"
},
@@ -5006,10 +5232,10 @@
"method": "GET",
"url": "https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css",
"resourceType": "stylesheet",
- "startedAt": 3989,
+ "startedAt": 3938,
"status": 200,
"ok": true,
- "finishedAt": 4068,
+ "finishedAt": 4011,
"contentType": "text/css",
"resourceTypeHint": "ionicons.min.css"
},
@@ -5018,10 +5244,10 @@
"method": "GET",
"url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdu.woff2",
"resourceType": "font",
- "startedAt": 4078,
+ "startedAt": 4021,
"status": 200,
"ok": true,
- "finishedAt": 4130,
+ "finishedAt": 4073,
"contentType": "font/woff2",
"resourceTypeHint": "6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdu.woff2"
},
@@ -5030,22 +5256,22 @@
"method": "GET",
"url": "https://code.ionicframework.com/ionicons/2.0.1/fonts/ionicons.ttf?v=2.0.1",
"resourceType": "font",
- "startedAt": 4079,
+ "startedAt": 4021,
"status": 200,
"ok": true,
- "finishedAt": 4196,
"contentType": "font/ttf",
- "resourceTypeHint": "ionicons.ttf"
+ "resourceTypeHint": "ionicons.ttf",
+ "finishedAt": 4140
},
{
"id": "net-20",
"method": "GET",
"url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7l.woff2",
"resourceType": "font",
- "startedAt": 4080,
+ "startedAt": 4022,
"status": 200,
"ok": true,
- "finishedAt": 4126,
+ "finishedAt": 4067,
"contentType": "font/woff2",
"resourceTypeHint": "6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7l.woff2"
},
@@ -5054,22 +5280,22 @@
"method": "GET",
"url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7nsDI.woff2",
"resourceType": "font",
- "startedAt": 4081,
+ "startedAt": 4022,
"status": 200,
"ok": true,
- "finishedAt": 4128,
+ "finishedAt": 4068,
"contentType": "font/woff2",
"resourceTypeHint": "6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7nsDI.woff2"
},
{
"id": "net-22",
"method": "GET",
- "url": "http://127.0.0.1:37213/api/user",
+ "url": "http://127.0.0.1:37223/api/user",
"resourceType": "xhr",
- "startedAt": 4081,
+ "startedAt": 4023,
"status": 200,
"ok": true,
- "finishedAt": 4087,
+ "finishedAt": 4027,
"contentType": "application/json",
"resourceTypeHint": "user"
}
@@ -5083,6 +5309,12 @@
"downloadEvidence": [],
"uploads": [],
"popupUrls": [],
+ "visualSuppressions": [
+ {
+ "artifact": "screenshot",
+ "reason": "authenticated-context"
+ }
+ ],
"locatorResolution": {
"attempts": [
{
@@ -5090,14 +5322,14 @@
"weight": 92,
"matchCount": 0,
"visibleCount": 0,
- "elapsedMs": 3
+ "elapsedMs": 2
},
{
"strategy": "role",
"weight": 82,
"matchCount": 2,
"visibleCount": 2,
- "elapsedMs": 7
+ "elapsedMs": 8
},
{
"strategy": "text",
@@ -5111,7 +5343,7 @@
"weight": 35,
"matchCount": 1,
"visibleCount": 1,
- "elapsedMs": 4
+ "elapsedMs": 5
}
],
"chosenStrategy": "css",
@@ -5119,10 +5351,10 @@
"retryCount": 0
},
"before": {
- "at": 1516,
- "url": "http://127.0.0.1:37213/#/article/rd-test-d97009-1",
+ "at": 1514,
+ "url": "http://127.0.0.1:37223/#/article/rd-test-4cbb5d-1",
"title": "Conduit",
- "domHash": "a5fd021e38a35f59",
+ "domHash": "c816d12e48c21b02",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -5134,9 +5366,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "4fc22202d903e566",
+ "textHash": "f602366b1479175d",
"visualHash": "471347ba69eaf940",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 RD_TEST_D97009_1 RD_TEST_AFDF00_1 July 26, 2026 Delete Article Edit Article RD_TEST_D97009_3 RD_TEST_1DB90D_4 RD_TEST_AFDF00_1 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",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER RD_TEST_4CBB5D_1 RD_PHASE_K_CRUD_OWNER July 26, 2026 Delete Article Edit Article RD_TEST_4CBB5D_3 RD_TEST_F3F938_4 RD_PHASE_K_CRUD_OWNER 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",
@@ -5188,7 +5420,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -5205,12 +5437,12 @@
"rows": [
{
"keyHash": "186347d9ea7673a2",
- "rowHash": "0d57a14d8f768e38",
+ "rowHash": "513a00e32394f4c2",
"softDeleted": false
},
{
"keyHash": "da7114755c3b82ba",
- "rowHash": "8a838f560ae73b56",
+ "rowHash": "a43fe358be8329c7",
"softDeleted": false
}
],
@@ -5221,9 +5453,90 @@
"resource": "users",
"schemaHash": "b7a8a911cd0fd4e9",
"rows": [
+ {
+ "keyHash": "186347d9ea7673a2",
+ "rowHash": "4d8311a4b9df0bbb",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "da7114755c3b82ba",
+ "rowHash": "39bd56af0b169023",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "84cf60166b2ca345",
+ "rowHash": "aa49653a67bcd399",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "9ef59241e15425e0",
+ "rowHash": "3343e1b012ad4f04",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "82a8445b12df5a29",
+ "rowHash": "db866c24a3538c63",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "667da1af4b45220f",
+ "rowHash": "5c8f98476fb3bfca",
+ "softDeleted": false
+ }
+ ],
+ "truncated": false
+ },
+ {
+ "adapter": "supabase",
+ "resource": "articles",
+ "schemaHash": "777de19e0eca5f66",
+ "rows": [
+ {
+ "keyHash": "186347d9ea7673a2",
+ "rowHash": "513a00e32394f4c2",
+ "softDeleted": false
+ },
{
"keyHash": "da7114755c3b82ba",
- "rowHash": "f1108a413122f589",
+ "rowHash": "a43fe358be8329c7",
+ "softDeleted": false
+ }
+ ],
+ "truncated": false
+ },
+ {
+ "adapter": "supabase",
+ "resource": "users",
+ "schemaHash": "cd9a96cfad9b0bff",
+ "rows": [
+ {
+ "keyHash": "186347d9ea7673a2",
+ "rowHash": "4d8311a4b9df0bbb",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "da7114755c3b82ba",
+ "rowHash": "39bd56af0b169023",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "84cf60166b2ca345",
+ "rowHash": "aa49653a67bcd399",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "9ef59241e15425e0",
+ "rowHash": "3343e1b012ad4f04",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "82a8445b12df5a29",
+ "rowHash": "db866c24a3538c63",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "667da1af4b45220f",
+ "rowHash": "5c8f98476fb3bfca",
"softDeleted": false
}
],
@@ -5232,10 +5545,10 @@
]
},
"beforeAction": {
- "at": 1525,
- "url": "http://127.0.0.1:37213/#/article/rd-test-d97009-1",
+ "at": 1524,
+ "url": "http://127.0.0.1:37223/#/article/rd-test-4cbb5d-1",
"title": "Conduit",
- "domHash": "a5fd021e38a35f59",
+ "domHash": "c816d12e48c21b02",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -5247,9 +5560,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "4fc22202d903e566",
+ "textHash": "f602366b1479175d",
"visualHash": "471347ba69eaf940",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 RD_TEST_D97009_1 RD_TEST_AFDF00_1 July 26, 2026 Delete Article Edit Article RD_TEST_D97009_3 RD_TEST_1DB90D_4 RD_TEST_AFDF00_1 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",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER RD_TEST_4CBB5D_1 RD_PHASE_K_CRUD_OWNER July 26, 2026 Delete Article Edit Article RD_TEST_4CBB5D_3 RD_TEST_F3F938_4 RD_PHASE_K_CRUD_OWNER 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",
@@ -5301,7 +5614,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -5314,10 +5627,10 @@
"targetDisabledAfter": false,
"networkSettled": true,
"after": {
- "at": 2769,
- "url": "http://127.0.0.1:37213/#/editor/rd-test-d97009-1",
+ "at": 2795,
+ "url": "http://127.0.0.1:37223/#/editor/rd-test-4cbb5d-1",
"title": "Conduit",
- "domHash": "3554f29cbab51410",
+ "domHash": "433fc4cb832cca73",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -5329,15 +5642,15 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "3d23bd88be98cc02",
+ "textHash": "e17c5fa668856e91",
"visualHash": "b85410fa0ea5a358",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 Update Article conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER Update Article conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
"controls": [
{
"tag": "input",
"type": "text",
"name": "title",
- "valueHash": "bb8b2867d2490613",
+ "valueHash": "63a60e1888a32b7e",
"checked": false,
"disabled": false,
"visible": true
@@ -5346,7 +5659,7 @@
"tag": "input",
"type": "text",
"name": "description",
- "valueHash": "d6bf36bb39a2b742",
+ "valueHash": "67d21f750d5684dd",
"checked": false,
"disabled": false,
"visible": true
@@ -5355,7 +5668,7 @@
"tag": "textarea",
"type": "textarea",
"name": "body",
- "valueHash": "4a1a708e19ade686",
+ "valueHash": "6424bfab43262088",
"disabled": false,
"visible": true
},
@@ -5363,7 +5676,7 @@
"tag": "input",
"type": "text",
"name": "tags",
- "valueHash": "77ae5c6394cae14e",
+ "valueHash": "9b3570f9ddf845d4",
"checked": false,
"disabled": false,
"visible": true
@@ -5383,7 +5696,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -5400,12 +5713,12 @@
"rows": [
{
"keyHash": "186347d9ea7673a2",
- "rowHash": "0d57a14d8f768e38",
+ "rowHash": "513a00e32394f4c2",
"softDeleted": false
},
{
"keyHash": "da7114755c3b82ba",
- "rowHash": "8a838f560ae73b56",
+ "rowHash": "a43fe358be8329c7",
"softDeleted": false
}
],
@@ -5416,9 +5729,90 @@
"resource": "users",
"schemaHash": "b7a8a911cd0fd4e9",
"rows": [
+ {
+ "keyHash": "186347d9ea7673a2",
+ "rowHash": "4d8311a4b9df0bbb",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "da7114755c3b82ba",
+ "rowHash": "39bd56af0b169023",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "84cf60166b2ca345",
+ "rowHash": "aa49653a67bcd399",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "9ef59241e15425e0",
+ "rowHash": "3343e1b012ad4f04",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "82a8445b12df5a29",
+ "rowHash": "db866c24a3538c63",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "667da1af4b45220f",
+ "rowHash": "5c8f98476fb3bfca",
+ "softDeleted": false
+ }
+ ],
+ "truncated": false
+ },
+ {
+ "adapter": "supabase",
+ "resource": "articles",
+ "schemaHash": "777de19e0eca5f66",
+ "rows": [
+ {
+ "keyHash": "186347d9ea7673a2",
+ "rowHash": "513a00e32394f4c2",
+ "softDeleted": false
+ },
{
"keyHash": "da7114755c3b82ba",
- "rowHash": "f1108a413122f589",
+ "rowHash": "a43fe358be8329c7",
+ "softDeleted": false
+ }
+ ],
+ "truncated": false
+ },
+ {
+ "adapter": "supabase",
+ "resource": "users",
+ "schemaHash": "cd9a96cfad9b0bff",
+ "rows": [
+ {
+ "keyHash": "186347d9ea7673a2",
+ "rowHash": "4d8311a4b9df0bbb",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "da7114755c3b82ba",
+ "rowHash": "39bd56af0b169023",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "84cf60166b2ca345",
+ "rowHash": "aa49653a67bcd399",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "9ef59241e15425e0",
+ "rowHash": "3343e1b012ad4f04",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "82a8445b12df5a29",
+ "rowHash": "db866c24a3538c63",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "667da1af4b45220f",
+ "rowHash": "5c8f98476fb3bfca",
"softDeleted": false
}
],
@@ -5426,12 +5820,11 @@
}
]
},
- "screenshot": "screenshots/17b6c4f59d23-after.png",
"afterRefresh": {
- "at": 3935,
- "url": "http://127.0.0.1:37213/#/editor/rd-test-d97009-1",
+ "at": 3926,
+ "url": "http://127.0.0.1:37223/#/editor/rd-test-4cbb5d-1",
"title": "Conduit",
- "domHash": "3554f29cbab51410",
+ "domHash": "433fc4cb832cca73",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -5443,15 +5836,15 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "3d23bd88be98cc02",
+ "textHash": "e17c5fa668856e91",
"visualHash": "b85410fa0ea5a358",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 Update Article conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER Update Article conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
"controls": [
{
"tag": "input",
"type": "text",
"name": "title",
- "valueHash": "bb8b2867d2490613",
+ "valueHash": "63a60e1888a32b7e",
"checked": false,
"disabled": false,
"visible": true
@@ -5460,7 +5853,7 @@
"tag": "input",
"type": "text",
"name": "description",
- "valueHash": "d6bf36bb39a2b742",
+ "valueHash": "67d21f750d5684dd",
"checked": false,
"disabled": false,
"visible": true
@@ -5469,7 +5862,7 @@
"tag": "textarea",
"type": "textarea",
"name": "body",
- "valueHash": "4a1a708e19ade686",
+ "valueHash": "6424bfab43262088",
"disabled": false,
"visible": true
},
@@ -5477,7 +5870,7 @@
"tag": "input",
"type": "text",
"name": "tags",
- "valueHash": "77ae5c6394cae14e",
+ "valueHash": "9b3570f9ddf845d4",
"checked": false,
"disabled": false,
"visible": true
@@ -5497,7 +5890,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -5507,12 +5900,11 @@
"indexedDb": []
}
},
- "refreshScreenshot": "screenshots/17b6c4f59d23-refresh.png",
"afterHardRefresh": {
- "at": 4894,
- "url": "http://127.0.0.1:37213/#/editor/rd-test-d97009-1",
+ "at": 4847,
+ "url": "http://127.0.0.1:37223/#/editor/rd-test-4cbb5d-1",
"title": "Conduit",
- "domHash": "3554f29cbab51410",
+ "domHash": "433fc4cb832cca73",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -5524,15 +5916,15 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "3d23bd88be98cc02",
+ "textHash": "e17c5fa668856e91",
"visualHash": "b85410fa0ea5a358",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 Update Article conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER Update Article conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
"controls": [
{
"tag": "input",
"type": "text",
"name": "title",
- "valueHash": "bb8b2867d2490613",
+ "valueHash": "63a60e1888a32b7e",
"checked": false,
"disabled": false,
"visible": true
@@ -5541,7 +5933,7 @@
"tag": "input",
"type": "text",
"name": "description",
- "valueHash": "d6bf36bb39a2b742",
+ "valueHash": "67d21f750d5684dd",
"checked": false,
"disabled": false,
"visible": true
@@ -5550,7 +5942,7 @@
"tag": "textarea",
"type": "textarea",
"name": "body",
- "valueHash": "4a1a708e19ade686",
+ "valueHash": "6424bfab43262088",
"disabled": false,
"visible": true
},
@@ -5558,7 +5950,7 @@
"tag": "input",
"type": "text",
"name": "tags",
- "valueHash": "77ae5c6394cae14e",
+ "valueHash": "9b3570f9ddf845d4",
"checked": false,
"disabled": false,
"visible": true
@@ -5578,7 +5970,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -5589,10 +5981,10 @@
}
},
"afterNewTab": {
- "at": 5890,
- "url": "http://127.0.0.1:37213/#/article/rd-test-d97009-1",
+ "at": 5849,
+ "url": "http://127.0.0.1:37223/#/article/rd-test-4cbb5d-1",
"title": "Conduit",
- "domHash": "a5fd021e38a35f59",
+ "domHash": "c816d12e48c21b02",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -5604,9 +5996,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "4fc22202d903e566",
+ "textHash": "f602366b1479175d",
"visualHash": "471347ba69eaf940",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 RD_TEST_D97009_1 RD_TEST_AFDF00_1 July 26, 2026 Delete Article Edit Article RD_TEST_D97009_3 RD_TEST_1DB90D_4 RD_TEST_AFDF00_1 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",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER RD_TEST_4CBB5D_1 RD_PHASE_K_CRUD_OWNER July 26, 2026 Delete Article Edit Article RD_TEST_4CBB5D_3 RD_TEST_F3F938_4 RD_PHASE_K_CRUD_OWNER 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",
@@ -5658,7 +6050,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -5669,10 +6061,10 @@
}
},
"afterNewContext": {
- "at": 7199,
- "url": "http://127.0.0.1:37213/#/editor/rd-test-d97009-1",
+ "at": 7093,
+ "url": "http://127.0.0.1:37223/#/editor/rd-test-4cbb5d-1",
"title": "Conduit",
- "domHash": "3554f29cbab51410",
+ "domHash": "433fc4cb832cca73",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -5684,15 +6076,15 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "3d23bd88be98cc02",
+ "textHash": "e17c5fa668856e91",
"visualHash": "b85410fa0ea5a358",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 Update Article conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER Update Article conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
"controls": [
{
"tag": "input",
"type": "text",
"name": "title",
- "valueHash": "bb8b2867d2490613",
+ "valueHash": "63a60e1888a32b7e",
"checked": false,
"disabled": false,
"visible": true
@@ -5701,7 +6093,7 @@
"tag": "input",
"type": "text",
"name": "description",
- "valueHash": "d6bf36bb39a2b742",
+ "valueHash": "67d21f750d5684dd",
"checked": false,
"disabled": false,
"visible": true
@@ -5710,7 +6102,7 @@
"tag": "textarea",
"type": "textarea",
"name": "body",
- "valueHash": "4a1a708e19ade686",
+ "valueHash": "6424bfab43262088",
"disabled": false,
"visible": true
},
@@ -5718,7 +6110,7 @@
"tag": "input",
"type": "text",
"name": "tags",
- "valueHash": "77ae5c6394cae14e",
+ "valueHash": "9b3570f9ddf845d4",
"checked": false,
"disabled": false,
"visible": true
@@ -5738,7 +6130,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -5774,6 +6166,24 @@
"changed": [],
"softDeleted": [],
"truncated": false
+ },
+ {
+ "adapter": "supabase",
+ "resource": "articles",
+ "added": [],
+ "removed": [],
+ "changed": [],
+ "softDeleted": [],
+ "truncated": false
+ },
+ {
+ "adapter": "supabase",
+ "resource": "users",
+ "added": [],
+ "removed": [],
+ "changed": [],
+ "softDeleted": [],
+ "truncated": false
}
],
"sourceSnapshotErrors": [],
@@ -5787,8 +6197,8 @@
{
"id": "RD-010",
"action": {
- "id": "2f8cbf31b77a",
- "pageUrl": "http://127.0.0.1:37213/#/article/rd-test-d97009-1",
+ "id": "7cb4078e8bd7",
+ "pageUrl": "http://127.0.0.1:37223/#/article/rd-test-4cbb5d-1",
"label": "Post Comment",
"activation": "submit",
"kind": "mutation",
@@ -5826,55 +6236,55 @@
]
},
"evidence": {
- "startedAt": "2026-07-26T11:01:41.873Z",
- "durationMs": 7011,
- "canary": "RD_TEST_53B0B6",
+ "startedAt": "2026-07-26T12:21:25.126Z",
+ "durationMs": 6931,
+ "canary": "RD_TEST_969A19",
"network": [
{
"id": "net-1",
"method": "POST",
- "url": "http://127.0.0.1:37213/api/articles/rd-test-d97009-1/comments",
+ "url": "http://127.0.0.1:37223/api/articles/rd-test-4cbb5d-1/comments",
"resourceType": "xhr",
- "startedAt": 1565,
+ "startedAt": 1587,
"status": 201,
"ok": true,
- "finishedAt": 1576,
+ "finishedAt": 1599,
"contentType": "application/json",
"resourceTypeHint": "comments"
},
{
"id": "net-2",
"method": "GET",
- "url": "http://127.0.0.1:37213/api/articles/rd-test-d97009-1/comments",
+ "url": "http://127.0.0.1:37223/api/articles/rd-test-4cbb5d-1/comments",
"resourceType": "xhr",
- "startedAt": 1577,
+ "startedAt": 1600,
"status": 200,
"ok": true,
- "finishedAt": 1583,
+ "finishedAt": 1605,
"contentType": "application/json",
"resourceTypeHint": "comments"
},
{
"id": "net-3",
"method": "GET",
- "url": "http://127.0.0.1:37213/",
+ "url": "http://127.0.0.1:37223/",
"resourceType": "document",
- "startedAt": 2619,
+ "startedAt": 2574,
"status": 200,
"ok": true,
"contentType": "text/html",
"resourceTypeHint": "resource",
- "finishedAt": 2627
+ "finishedAt": 2581
},
{
"id": "net-4",
"method": "GET",
"url": "http://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css",
"resourceType": "stylesheet",
- "startedAt": 2625,
+ "startedAt": 2580,
"status": 307,
"ok": false,
- "finishedAt": 2629,
+ "finishedAt": 2583,
"location": "https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css",
"resourceTypeHint": "ionicons.min.css"
},
@@ -5883,34 +6293,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": 2626,
+ "startedAt": 2580,
"status": 200,
"ok": true,
- "finishedAt": 2663,
+ "finishedAt": 2620,
"contentType": "text/css",
"resourceTypeHint": "css"
},
{
"id": "net-6",
"method": "GET",
- "url": "http://127.0.0.1:37213/assets/index-CLdavoKn.js",
+ "url": "http://127.0.0.1:37223/assets/index-CLdavoKn.js",
"resourceType": "script",
- "startedAt": 2626,
+ "startedAt": 2581,
"status": 200,
"ok": true,
- "finishedAt": 2639,
+ "finishedAt": 2593,
"contentType": "text/javascript",
"resourceTypeHint": "index-CLdavoKn.js"
},
{
"id": "net-7",
"method": "GET",
- "url": "http://127.0.0.1:37213/assets/index-De1Lwdlm.css",
+ "url": "http://127.0.0.1:37223/assets/index-De1Lwdlm.css",
"resourceType": "stylesheet",
- "startedAt": 2627,
+ "startedAt": 2581,
"status": 200,
"ok": true,
- "finishedAt": 2632,
+ "finishedAt": 2586,
"contentType": "text/css",
"resourceTypeHint": "index-De1Lwdlm.css"
},
@@ -5919,10 +6329,10 @@
"method": "GET",
"url": "https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css",
"resourceType": "stylesheet",
- "startedAt": 2629,
+ "startedAt": 2583,
"status": 200,
"ok": true,
- "finishedAt": 2909,
+ "finishedAt": 2844,
"contentType": "text/css",
"resourceTypeHint": "ionicons.min.css"
},
@@ -5931,10 +6341,10 @@
"method": "GET",
"url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdu.woff2",
"resourceType": "font",
- "startedAt": 2918,
+ "startedAt": 2852,
"status": 200,
"ok": true,
- "finishedAt": 2965,
+ "finishedAt": 2899,
"contentType": "font/woff2",
"resourceTypeHint": "6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdu.woff2"
},
@@ -5943,10 +6353,10 @@
"method": "GET",
"url": "https://code.ionicframework.com/ionicons/2.0.1/fonts/ionicons.ttf?v=2.0.1",
"resourceType": "font",
- "startedAt": 2918,
+ "startedAt": 2852,
"status": 200,
"ok": true,
- "finishedAt": 3031,
+ "finishedAt": 2971,
"contentType": "font/ttf",
"resourceTypeHint": "ionicons.ttf"
},
@@ -5955,10 +6365,10 @@
"method": "GET",
"url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7l.woff2",
"resourceType": "font",
- "startedAt": 2919,
+ "startedAt": 2852,
"status": 200,
"ok": true,
- "finishedAt": 2970,
+ "finishedAt": 2905,
"contentType": "font/woff2",
"resourceTypeHint": "6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7l.woff2"
},
@@ -5967,10 +6377,10 @@
"method": "GET",
"url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwlxdu.woff2",
"resourceType": "font",
- "startedAt": 2919,
+ "startedAt": 2854,
"status": 200,
"ok": true,
- "finishedAt": 2968,
+ "finishedAt": 2903,
"contentType": "font/woff2",
"resourceTypeHint": "6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwlxdu.woff2"
},
@@ -5979,46 +6389,46 @@
"method": "GET",
"url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7nsDI.woff2",
"resourceType": "font",
- "startedAt": 2920,
+ "startedAt": 2854,
"status": 200,
"ok": true,
- "finishedAt": 2969,
+ "finishedAt": 2902,
"contentType": "font/woff2",
"resourceTypeHint": "6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7nsDI.woff2"
},
{
"id": "net-14",
"method": "GET",
- "url": "http://127.0.0.1:37213/api/articles/rd-test-d97009-1/comments",
+ "url": "http://127.0.0.1:37223/api/articles/rd-test-4cbb5d-1/comments",
"resourceType": "xhr",
- "startedAt": 2921,
+ "startedAt": 2856,
"status": 200,
"ok": true,
- "finishedAt": 2931,
+ "finishedAt": 2865,
"contentType": "application/json",
"resourceTypeHint": "comments"
},
{
"id": "net-15",
"method": "GET",
- "url": "http://127.0.0.1:37213/api/articles/rd-test-d97009-1",
+ "url": "http://127.0.0.1:37223/api/articles/rd-test-4cbb5d-1",
"resourceType": "xhr",
- "startedAt": 2922,
+ "startedAt": 2856,
"status": 200,
"ok": true,
- "finishedAt": 2932,
+ "finishedAt": 2868,
"contentType": "application/json",
- "resourceTypeHint": "rd-test-d97009-1"
+ "resourceTypeHint": "rd-test-4cbb5d-1"
},
{
"id": "net-16",
"method": "GET",
- "url": "http://127.0.0.1:37213/api/user",
+ "url": "http://127.0.0.1:37223/api/user",
"resourceType": "xhr",
- "startedAt": 2922,
+ "startedAt": 2857,
"status": 200,
"ok": true,
- "finishedAt": 2928,
+ "finishedAt": 2862,
"contentType": "application/json",
"resourceTypeHint": "user"
},
@@ -6027,34 +6437,34 @@
"method": "GET",
"url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwlxdu.woff2",
"resourceType": "font",
- "startedAt": 2944,
+ "startedAt": 2884,
"status": 200,
"ok": true,
- "finishedAt": 2989,
+ "finishedAt": 2929,
"contentType": "font/woff2",
"resourceTypeHint": "6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwlxdu.woff2"
},
{
"id": "net-18",
"method": "GET",
- "url": "http://127.0.0.1:37213/",
+ "url": "http://127.0.0.1:37223/",
"resourceType": "document",
- "startedAt": 3805,
+ "startedAt": 3685,
"status": 200,
"ok": true,
"contentType": "text/html",
"resourceTypeHint": "resource",
- "finishedAt": 3814
+ "finishedAt": 3693
},
{
"id": "net-19",
"method": "GET",
"url": "http://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css",
"resourceType": "stylesheet",
- "startedAt": 3812,
+ "startedAt": 3691,
"status": 307,
"ok": false,
- "finishedAt": 3816,
+ "finishedAt": 3695,
"location": "https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css",
"resourceTypeHint": "ionicons.min.css"
},
@@ -6063,46 +6473,46 @@
"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": 3812,
+ "startedAt": 3692,
"status": 200,
"ok": true,
- "finishedAt": 3850,
+ "finishedAt": 3730,
"contentType": "text/css",
"resourceTypeHint": "css"
},
{
"id": "net-21",
"method": "GET",
- "url": "http://127.0.0.1:37213/assets/index-CLdavoKn.js",
+ "url": "http://127.0.0.1:37223/assets/index-CLdavoKn.js",
"resourceType": "script",
- "startedAt": 3813,
+ "startedAt": 3693,
"status": 200,
"ok": true,
- "finishedAt": 3825,
+ "finishedAt": 3706,
"contentType": "text/javascript",
"resourceTypeHint": "index-CLdavoKn.js"
},
{
"id": "net-22",
"method": "GET",
- "url": "http://127.0.0.1:37213/assets/index-De1Lwdlm.css",
+ "url": "http://127.0.0.1:37223/assets/index-De1Lwdlm.css",
"resourceType": "stylesheet",
- "startedAt": 3813,
+ "startedAt": 3693,
"status": 200,
"ok": true,
"contentType": "text/css",
"resourceTypeHint": "index-De1Lwdlm.css",
- "finishedAt": 3818
+ "finishedAt": 3698
},
{
"id": "net-23",
"method": "GET",
"url": "https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css",
"resourceType": "stylesheet",
- "startedAt": 3816,
+ "startedAt": 3695,
"status": 200,
"ok": true,
- "finishedAt": 3889,
+ "finishedAt": 3766,
"contentType": "text/css",
"resourceTypeHint": "ionicons.min.css"
},
@@ -6111,10 +6521,10 @@
"method": "GET",
"url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdu.woff2",
"resourceType": "font",
- "startedAt": 3901,
+ "startedAt": 3775,
"status": 200,
"ok": true,
- "finishedAt": 3950,
+ "finishedAt": 3824,
"contentType": "font/woff2",
"resourceTypeHint": "6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdu.woff2"
},
@@ -6123,22 +6533,22 @@
"method": "GET",
"url": "https://code.ionicframework.com/ionicons/2.0.1/fonts/ionicons.ttf?v=2.0.1",
"resourceType": "font",
- "startedAt": 3902,
+ "startedAt": 3776,
"status": 200,
"ok": true,
+ "finishedAt": 3891,
"contentType": "font/ttf",
- "resourceTypeHint": "ionicons.ttf",
- "finishedAt": 4015
+ "resourceTypeHint": "ionicons.ttf"
},
{
"id": "net-26",
"method": "GET",
"url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7l.woff2",
"resourceType": "font",
- "startedAt": 3902,
+ "startedAt": 3777,
"status": 200,
"ok": true,
- "finishedAt": 3954,
+ "finishedAt": 3827,
"contentType": "font/woff2",
"resourceTypeHint": "6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7l.woff2"
},
@@ -6147,10 +6557,10 @@
"method": "GET",
"url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwlxdu.woff2",
"resourceType": "font",
- "startedAt": 3903,
+ "startedAt": 3777,
"status": 200,
"ok": true,
- "finishedAt": 3953,
+ "finishedAt": 3825,
"contentType": "font/woff2",
"resourceTypeHint": "6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwlxdu.woff2"
},
@@ -6159,46 +6569,46 @@
"method": "GET",
"url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7nsDI.woff2",
"resourceType": "font",
- "startedAt": 3904,
+ "startedAt": 3777,
"status": 200,
"ok": true,
- "finishedAt": 3953,
+ "finishedAt": 3822,
"contentType": "font/woff2",
"resourceTypeHint": "6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7nsDI.woff2"
},
{
"id": "net-29",
"method": "GET",
- "url": "http://127.0.0.1:37213/api/articles/rd-test-d97009-1/comments",
+ "url": "http://127.0.0.1:37223/api/articles/rd-test-4cbb5d-1/comments",
"resourceType": "xhr",
- "startedAt": 3905,
+ "startedAt": 3779,
"status": 200,
"ok": true,
- "finishedAt": 3919,
+ "finishedAt": 3788,
"contentType": "application/json",
"resourceTypeHint": "comments"
},
{
"id": "net-30",
"method": "GET",
- "url": "http://127.0.0.1:37213/api/articles/rd-test-d97009-1",
+ "url": "http://127.0.0.1:37223/api/articles/rd-test-4cbb5d-1",
"resourceType": "xhr",
- "startedAt": 3906,
+ "startedAt": 3780,
"status": 200,
"ok": true,
- "finishedAt": 3920,
+ "finishedAt": 3788,
"contentType": "application/json",
- "resourceTypeHint": "rd-test-d97009-1"
+ "resourceTypeHint": "rd-test-4cbb5d-1"
},
{
"id": "net-31",
"method": "GET",
- "url": "http://127.0.0.1:37213/api/user",
+ "url": "http://127.0.0.1:37223/api/user",
"resourceType": "xhr",
- "startedAt": 3906,
+ "startedAt": 3780,
"status": 200,
"ok": true,
- "finishedAt": 3916,
+ "finishedAt": 3786,
"contentType": "application/json",
"resourceTypeHint": "user"
},
@@ -6207,10 +6617,10 @@
"method": "GET",
"url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwlxdu.woff2",
"resourceType": "font",
- "startedAt": 3927,
+ "startedAt": 3798,
"status": 200,
"ok": true,
- "finishedAt": 3970,
+ "finishedAt": 3842,
"contentType": "font/woff2",
"resourceTypeHint": "6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwlxdu.woff2"
}
@@ -6223,7 +6633,7 @@
"selector": "body > div > main > div > div:nth-of-type(2) > div:nth-of-type(3) > div > form > div:nth-of-type(1) > textarea",
"name": "Write a comment...",
"type": "textarea",
- "value": "RD_TEST_53B0B6_1",
+ "value": "RD_TEST_969A19_1",
"redacted": false
}
],
@@ -6232,6 +6642,12 @@
"downloadEvidence": [],
"uploads": [],
"popupUrls": [],
+ "visualSuppressions": [
+ {
+ "artifact": "screenshot",
+ "reason": "authenticated-context"
+ }
+ ],
"locatorResolution": {
"attempts": [
{
@@ -6247,10 +6663,10 @@
"retryCount": 0
},
"before": {
- "at": 1501,
- "url": "http://127.0.0.1:37213/#/article/rd-test-d97009-1",
+ "at": 1520,
+ "url": "http://127.0.0.1:37223/#/article/rd-test-4cbb5d-1",
"title": "Conduit",
- "domHash": "a5fd021e38a35f59",
+ "domHash": "c816d12e48c21b02",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -6262,9 +6678,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "4fc22202d903e566",
+ "textHash": "f602366b1479175d",
"visualHash": "471347ba69eaf940",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 RD_TEST_D97009_1 RD_TEST_AFDF00_1 July 26, 2026 Delete Article Edit Article RD_TEST_D97009_3 RD_TEST_1DB90D_4 RD_TEST_AFDF00_1 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",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER RD_TEST_4CBB5D_1 RD_PHASE_K_CRUD_OWNER July 26, 2026 Delete Article Edit Article RD_TEST_4CBB5D_3 RD_TEST_F3F938_4 RD_PHASE_K_CRUD_OWNER 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",
@@ -6316,7 +6732,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -6333,12 +6749,12 @@
"rows": [
{
"keyHash": "186347d9ea7673a2",
- "rowHash": "0d57a14d8f768e38",
+ "rowHash": "513a00e32394f4c2",
"softDeleted": false
},
{
"keyHash": "da7114755c3b82ba",
- "rowHash": "8a838f560ae73b56",
+ "rowHash": "a43fe358be8329c7",
"softDeleted": false
}
],
@@ -6349,9 +6765,90 @@
"resource": "users",
"schemaHash": "b7a8a911cd0fd4e9",
"rows": [
+ {
+ "keyHash": "186347d9ea7673a2",
+ "rowHash": "4d8311a4b9df0bbb",
+ "softDeleted": false
+ },
{
"keyHash": "da7114755c3b82ba",
- "rowHash": "f1108a413122f589",
+ "rowHash": "39bd56af0b169023",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "84cf60166b2ca345",
+ "rowHash": "aa49653a67bcd399",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "9ef59241e15425e0",
+ "rowHash": "3343e1b012ad4f04",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "82a8445b12df5a29",
+ "rowHash": "db866c24a3538c63",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "667da1af4b45220f",
+ "rowHash": "5c8f98476fb3bfca",
+ "softDeleted": false
+ }
+ ],
+ "truncated": false
+ },
+ {
+ "adapter": "supabase",
+ "resource": "articles",
+ "schemaHash": "777de19e0eca5f66",
+ "rows": [
+ {
+ "keyHash": "186347d9ea7673a2",
+ "rowHash": "513a00e32394f4c2",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "da7114755c3b82ba",
+ "rowHash": "a43fe358be8329c7",
+ "softDeleted": false
+ }
+ ],
+ "truncated": false
+ },
+ {
+ "adapter": "supabase",
+ "resource": "users",
+ "schemaHash": "cd9a96cfad9b0bff",
+ "rows": [
+ {
+ "keyHash": "186347d9ea7673a2",
+ "rowHash": "4d8311a4b9df0bbb",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "da7114755c3b82ba",
+ "rowHash": "39bd56af0b169023",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "84cf60166b2ca345",
+ "rowHash": "aa49653a67bcd399",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "9ef59241e15425e0",
+ "rowHash": "3343e1b012ad4f04",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "82a8445b12df5a29",
+ "rowHash": "db866c24a3538c63",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "667da1af4b45220f",
+ "rowHash": "5c8f98476fb3bfca",
"softDeleted": false
}
],
@@ -6360,10 +6857,10 @@
]
},
"beforeAction": {
- "at": 1525,
- "url": "http://127.0.0.1:37213/#/article/rd-test-d97009-1",
+ "at": 1542,
+ "url": "http://127.0.0.1:37223/#/article/rd-test-4cbb5d-1",
"title": "Conduit",
- "domHash": "bf3b37ad637e533d",
+ "domHash": "c76d93dc4997bbda",
"canaryPresent": true,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -6375,9 +6872,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "4fc22202d903e566",
+ "textHash": "f602366b1479175d",
"visualHash": "471347ba69eaf940",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 RD_TEST_D97009_1 RD_TEST_AFDF00_1 July 26, 2026 Delete Article Edit Article RD_TEST_D97009_3 RD_TEST_1DB90D_4 RD_TEST_AFDF00_1 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",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER RD_TEST_4CBB5D_1 RD_PHASE_K_CRUD_OWNER July 26, 2026 Delete Article Edit Article RD_TEST_4CBB5D_3 RD_TEST_F3F938_4 RD_PHASE_K_CRUD_OWNER 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",
@@ -6410,7 +6907,7 @@
{
"tag": "textarea",
"type": "textarea",
- "valueHash": "432076bc14bf67e2",
+ "valueHash": "54f0e178c44efc24",
"disabled": false,
"visible": true
},
@@ -6429,7 +6926,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -6443,10 +6940,10 @@
"networkSettled": true,
"targetBusyAfter": false,
"after": {
- "at": 2551,
- "url": "http://127.0.0.1:37213/#/article/rd-test-d97009-1",
+ "at": 2568,
+ "url": "http://127.0.0.1:37223/#/article/rd-test-4cbb5d-1",
"title": "Conduit",
- "domHash": "31946d67021bf408",
+ "domHash": "710281541eea0bd2",
"canaryPresent": true,
"bodyCanaryPresent": true,
"temporaryBlobUrls": 0,
@@ -6458,9 +6955,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "9575a081d32d3c17",
+ "textHash": "4bd57312372c61ab",
"visualHash": "e92a3e18c194e797",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 RD_TEST_D97009_1 RD_TEST_AFDF00_1 July 26, 2026 Delete Article Edit Article RD_TEST_D97009_3 RD_TEST_1DB90D_4 RD_TEST_AFDF00_1 July 26, 2026 Delete Article Edit Article Post Comment RD_TEST_53B0B6_1 RD_TEST_AFDF00_1July 26, 2026 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER RD_TEST_4CBB5D_1 RD_PHASE_K_CRUD_OWNER July 26, 2026 Delete Article Edit Article RD_TEST_4CBB5D_3 RD_TEST_F3F938_4 RD_PHASE_K_CRUD_OWNER July 26, 2026 Delete Article Edit Article Post Comment RD_TEST_969A19_1 RD_PHASE_K_CRUD_OWNERJuly 26, 2026 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
"controls": [
{
"tag": "button",
@@ -6519,7 +7016,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -6536,12 +7033,12 @@
"rows": [
{
"keyHash": "186347d9ea7673a2",
- "rowHash": "0d57a14d8f768e38",
+ "rowHash": "513a00e32394f4c2",
"softDeleted": false
},
{
"keyHash": "da7114755c3b82ba",
- "rowHash": "8a838f560ae73b56",
+ "rowHash": "a43fe358be8329c7",
"softDeleted": false
}
],
@@ -6552,9 +7049,90 @@
"resource": "users",
"schemaHash": "b7a8a911cd0fd4e9",
"rows": [
+ {
+ "keyHash": "186347d9ea7673a2",
+ "rowHash": "4d8311a4b9df0bbb",
+ "softDeleted": false
+ },
{
"keyHash": "da7114755c3b82ba",
- "rowHash": "f1108a413122f589",
+ "rowHash": "39bd56af0b169023",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "84cf60166b2ca345",
+ "rowHash": "aa49653a67bcd399",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "9ef59241e15425e0",
+ "rowHash": "3343e1b012ad4f04",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "82a8445b12df5a29",
+ "rowHash": "db866c24a3538c63",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "667da1af4b45220f",
+ "rowHash": "5c8f98476fb3bfca",
+ "softDeleted": false
+ }
+ ],
+ "truncated": false
+ },
+ {
+ "adapter": "supabase",
+ "resource": "articles",
+ "schemaHash": "777de19e0eca5f66",
+ "rows": [
+ {
+ "keyHash": "186347d9ea7673a2",
+ "rowHash": "513a00e32394f4c2",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "da7114755c3b82ba",
+ "rowHash": "a43fe358be8329c7",
+ "softDeleted": false
+ }
+ ],
+ "truncated": false
+ },
+ {
+ "adapter": "supabase",
+ "resource": "users",
+ "schemaHash": "cd9a96cfad9b0bff",
+ "rows": [
+ {
+ "keyHash": "186347d9ea7673a2",
+ "rowHash": "4d8311a4b9df0bbb",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "da7114755c3b82ba",
+ "rowHash": "39bd56af0b169023",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "84cf60166b2ca345",
+ "rowHash": "aa49653a67bcd399",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "9ef59241e15425e0",
+ "rowHash": "3343e1b012ad4f04",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "82a8445b12df5a29",
+ "rowHash": "db866c24a3538c63",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "667da1af4b45220f",
+ "rowHash": "5c8f98476fb3bfca",
"softDeleted": false
}
],
@@ -6562,12 +7140,11 @@
}
]
},
- "screenshot": "screenshots/2f8cbf31b77a-after.png",
"afterRefresh": {
- "at": 3745,
- "url": "http://127.0.0.1:37213/#/article/rd-test-d97009-1",
+ "at": 3682,
+ "url": "http://127.0.0.1:37223/#/article/rd-test-4cbb5d-1",
"title": "Conduit",
- "domHash": "31946d67021bf408",
+ "domHash": "710281541eea0bd2",
"canaryPresent": true,
"bodyCanaryPresent": true,
"temporaryBlobUrls": 0,
@@ -6579,9 +7156,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "9575a081d32d3c17",
+ "textHash": "4bd57312372c61ab",
"visualHash": "e92a3e18c194e797",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 RD_TEST_D97009_1 RD_TEST_AFDF00_1 July 26, 2026 Delete Article Edit Article RD_TEST_D97009_3 RD_TEST_1DB90D_4 RD_TEST_AFDF00_1 July 26, 2026 Delete Article Edit Article Post Comment RD_TEST_53B0B6_1 RD_TEST_AFDF00_1July 26, 2026 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER RD_TEST_4CBB5D_1 RD_PHASE_K_CRUD_OWNER July 26, 2026 Delete Article Edit Article RD_TEST_4CBB5D_3 RD_TEST_F3F938_4 RD_PHASE_K_CRUD_OWNER July 26, 2026 Delete Article Edit Article Post Comment RD_TEST_969A19_1 RD_PHASE_K_CRUD_OWNERJuly 26, 2026 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
"controls": [
{
"tag": "button",
@@ -6640,7 +7217,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -6650,12 +7227,11 @@
"indexedDb": []
}
},
- "refreshScreenshot": "screenshots/2f8cbf31b77a-refresh.png",
"afterHardRefresh": {
- "at": 4726,
- "url": "http://127.0.0.1:37213/#/article/rd-test-d97009-1",
+ "at": 4598,
+ "url": "http://127.0.0.1:37223/#/article/rd-test-4cbb5d-1",
"title": "Conduit",
- "domHash": "31946d67021bf408",
+ "domHash": "710281541eea0bd2",
"canaryPresent": true,
"bodyCanaryPresent": true,
"temporaryBlobUrls": 0,
@@ -6667,9 +7243,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "9575a081d32d3c17",
+ "textHash": "4bd57312372c61ab",
"visualHash": "e92a3e18c194e797",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 RD_TEST_D97009_1 RD_TEST_AFDF00_1 July 26, 2026 Delete Article Edit Article RD_TEST_D97009_3 RD_TEST_1DB90D_4 RD_TEST_AFDF00_1 July 26, 2026 Delete Article Edit Article Post Comment RD_TEST_53B0B6_1 RD_TEST_AFDF00_1July 26, 2026 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER RD_TEST_4CBB5D_1 RD_PHASE_K_CRUD_OWNER July 26, 2026 Delete Article Edit Article RD_TEST_4CBB5D_3 RD_TEST_F3F938_4 RD_PHASE_K_CRUD_OWNER July 26, 2026 Delete Article Edit Article Post Comment RD_TEST_969A19_1 RD_PHASE_K_CRUD_OWNERJuly 26, 2026 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
"controls": [
{
"tag": "button",
@@ -6728,7 +7304,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -6739,10 +7315,10 @@
}
},
"afterNewTab": {
- "at": 5717,
- "url": "http://127.0.0.1:37213/#/article/rd-test-d97009-1",
+ "at": 5590,
+ "url": "http://127.0.0.1:37223/#/article/rd-test-4cbb5d-1",
"title": "Conduit",
- "domHash": "31946d67021bf408",
+ "domHash": "710281541eea0bd2",
"canaryPresent": true,
"bodyCanaryPresent": true,
"temporaryBlobUrls": 0,
@@ -6754,9 +7330,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "9575a081d32d3c17",
+ "textHash": "4bd57312372c61ab",
"visualHash": "e92a3e18c194e797",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 RD_TEST_D97009_1 RD_TEST_AFDF00_1 July 26, 2026 Delete Article Edit Article RD_TEST_D97009_3 RD_TEST_1DB90D_4 RD_TEST_AFDF00_1 July 26, 2026 Delete Article Edit Article Post Comment RD_TEST_53B0B6_1 RD_TEST_AFDF00_1July 26, 2026 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER RD_TEST_4CBB5D_1 RD_PHASE_K_CRUD_OWNER July 26, 2026 Delete Article Edit Article RD_TEST_4CBB5D_3 RD_TEST_F3F938_4 RD_PHASE_K_CRUD_OWNER July 26, 2026 Delete Article Edit Article Post Comment RD_TEST_969A19_1 RD_PHASE_K_CRUD_OWNERJuly 26, 2026 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
"controls": [
{
"tag": "button",
@@ -6815,7 +7391,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -6826,10 +7402,10 @@
}
},
"afterNewContext": {
- "at": 7008,
- "url": "http://127.0.0.1:37213/#/article/rd-test-d97009-1",
+ "at": 6928,
+ "url": "http://127.0.0.1:37223/#/article/rd-test-4cbb5d-1",
"title": "Conduit",
- "domHash": "31946d67021bf408",
+ "domHash": "710281541eea0bd2",
"canaryPresent": true,
"bodyCanaryPresent": true,
"temporaryBlobUrls": 0,
@@ -6841,9 +7417,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "9575a081d32d3c17",
+ "textHash": "4bd57312372c61ab",
"visualHash": "e92a3e18c194e797",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 RD_TEST_D97009_1 RD_TEST_AFDF00_1 July 26, 2026 Delete Article Edit Article RD_TEST_D97009_3 RD_TEST_1DB90D_4 RD_TEST_AFDF00_1 July 26, 2026 Delete Article Edit Article Post Comment RD_TEST_53B0B6_1 RD_TEST_AFDF00_1July 26, 2026 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER RD_TEST_4CBB5D_1 RD_PHASE_K_CRUD_OWNER July 26, 2026 Delete Article Edit Article RD_TEST_4CBB5D_3 RD_TEST_F3F938_4 RD_PHASE_K_CRUD_OWNER July 26, 2026 Delete Article Edit Article Post Comment RD_TEST_969A19_1 RD_PHASE_K_CRUD_OWNERJuly 26, 2026 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
"controls": [
{
"tag": "button",
@@ -6902,7 +7478,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -6932,7 +7508,25 @@
"truncated": false
},
{
- "adapter": "postgresql",
+ "adapter": "postgresql",
+ "resource": "users",
+ "added": [],
+ "removed": [],
+ "changed": [],
+ "softDeleted": [],
+ "truncated": false
+ },
+ {
+ "adapter": "supabase",
+ "resource": "articles",
+ "added": [],
+ "removed": [],
+ "changed": [],
+ "softDeleted": [],
+ "truncated": false
+ },
+ {
+ "adapter": "supabase",
"resource": "users",
"added": [],
"removed": [],
@@ -6952,8 +7546,8 @@
{
"id": "RD-011",
"action": {
- "id": "dc2ff02ca3a5",
- "pageUrl": "http://127.0.0.1:37213/#/article/rd-test-d97009-1",
+ "id": "b60b097d31b9",
+ "pageUrl": "http://127.0.0.1:37223/#/article/rd-test-4cbb5d-1",
"label": "conduit",
"activation": "click",
"kind": "navigation",
@@ -6966,7 +7560,7 @@
"role": "link",
"accessibleName": "conduit",
"text": "conduit",
- "href": "http://127.0.0.1:37213/#/",
+ "href": "http://127.0.0.1:37223/#/",
"candidates": [
{
"strategy": "role",
@@ -6985,7 +7579,7 @@
{
"strategy": "href",
"weight": 72,
- "value": "http://127.0.0.1:37213/#/"
+ "value": "http://127.0.0.1:37223/#/"
},
{
"strategy": "text",
@@ -7003,31 +7597,31 @@
"fields": []
},
"evidence": {
- "startedAt": "2026-07-26T11:01:49.058Z",
- "durationMs": 2504,
- "canary": "RD_TEST_02EC2B",
+ "startedAt": "2026-07-26T12:21:32.138Z",
+ "durationMs": 2561,
+ "canary": "RD_TEST_33BDBC",
"network": [
{
"id": "net-1",
"method": "GET",
- "url": "http://127.0.0.1:37213/api/articles/feed?limit=3&&offset=0",
+ "url": "http://127.0.0.1:37223/api/articles/feed?limit=3&&offset=0",
"resourceType": "xhr",
- "startedAt": 1543,
+ "startedAt": 1574,
"status": 200,
"ok": true,
- "finishedAt": 1549,
+ "finishedAt": 1580,
"contentType": "application/json",
"resourceTypeHint": "feed"
},
{
"id": "net-2",
"method": "GET",
- "url": "http://127.0.0.1:37213/api/tags",
+ "url": "http://127.0.0.1:37223/api/tags",
"resourceType": "xhr",
- "startedAt": 1544,
+ "startedAt": 1574,
"status": 200,
"ok": true,
- "finishedAt": 1548,
+ "finishedAt": 1579,
"contentType": "application/json",
"resourceTypeHint": "tags"
}
@@ -7041,6 +7635,12 @@
"downloadEvidence": [],
"uploads": [],
"popupUrls": [],
+ "visualSuppressions": [
+ {
+ "artifact": "screenshot",
+ "reason": "authenticated-context"
+ }
+ ],
"locatorResolution": {
"attempts": [
{
@@ -7076,7 +7676,7 @@
"weight": 35,
"matchCount": 1,
"visibleCount": 1,
- "elapsedMs": 4
+ "elapsedMs": 5
}
],
"chosenStrategy": "css",
@@ -7084,10 +7684,10 @@
"retryCount": 0
},
"before": {
- "at": 1504,
- "url": "http://127.0.0.1:37213/#/article/rd-test-d97009-1",
+ "at": 1541,
+ "url": "http://127.0.0.1:37223/#/article/rd-test-4cbb5d-1",
"title": "Conduit",
- "domHash": "31946d67021bf408",
+ "domHash": "710281541eea0bd2",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -7099,9 +7699,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "9575a081d32d3c17",
+ "textHash": "4bd57312372c61ab",
"visualHash": "e92a3e18c194e797",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 RD_TEST_D97009_1 RD_TEST_AFDF00_1 July 26, 2026 Delete Article Edit Article RD_TEST_D97009_3 RD_TEST_1DB90D_4 RD_TEST_AFDF00_1 July 26, 2026 Delete Article Edit Article Post Comment RD_TEST_53B0B6_1 RD_TEST_AFDF00_1July 26, 2026 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER RD_TEST_4CBB5D_1 RD_PHASE_K_CRUD_OWNER July 26, 2026 Delete Article Edit Article RD_TEST_4CBB5D_3 RD_TEST_F3F938_4 RD_PHASE_K_CRUD_OWNER July 26, 2026 Delete Article Edit Article Post Comment RD_TEST_969A19_1 RD_PHASE_K_CRUD_OWNERJuly 26, 2026 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
"controls": [
{
"tag": "button",
@@ -7160,7 +7760,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -7171,10 +7771,10 @@
}
},
"beforeAction": {
- "at": 1513,
- "url": "http://127.0.0.1:37213/#/article/rd-test-d97009-1",
+ "at": 1551,
+ "url": "http://127.0.0.1:37223/#/article/rd-test-4cbb5d-1",
"title": "Conduit",
- "domHash": "31946d67021bf408",
+ "domHash": "710281541eea0bd2",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -7186,9 +7786,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "9575a081d32d3c17",
+ "textHash": "4bd57312372c61ab",
"visualHash": "e92a3e18c194e797",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 RD_TEST_D97009_1 RD_TEST_AFDF00_1 July 26, 2026 Delete Article Edit Article RD_TEST_D97009_3 RD_TEST_1DB90D_4 RD_TEST_AFDF00_1 July 26, 2026 Delete Article Edit Article Post Comment RD_TEST_53B0B6_1 RD_TEST_AFDF00_1July 26, 2026 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER RD_TEST_4CBB5D_1 RD_PHASE_K_CRUD_OWNER July 26, 2026 Delete Article Edit Article RD_TEST_4CBB5D_3 RD_TEST_F3F938_4 RD_PHASE_K_CRUD_OWNER July 26, 2026 Delete Article Edit Article Post Comment RD_TEST_969A19_1 RD_PHASE_K_CRUD_OWNERJuly 26, 2026 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
"controls": [
{
"tag": "button",
@@ -7247,7 +7847,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -7260,10 +7860,10 @@
"networkSettled": true,
"targetBusyAfter": false,
"after": {
- "at": 2500,
- "url": "http://127.0.0.1:37213/#/",
+ "at": 2557,
+ "url": "http://127.0.0.1:37223/#/",
"title": "Conduit",
- "domHash": "f16e71f9610b9322",
+ "domHash": "82970581dc3ba0ed",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -7275,9 +7875,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "a8b069a14856a893",
+ "textHash": "38646687161ebd53",
"visualHash": "efa2f7065933782f",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 Your Feed Global Feed Articles not available. Popular Tags RD_TEST_1DB90D_4RD_TEST_DA5A96_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER Your Feed Global Feed Articles not available. Popular Tags RD_TEST_F3F938_4RD_TEST_45949F_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
"controls": [
{
"tag": "button",
@@ -7315,7 +7915,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -7343,8 +7943,8 @@
{
"id": "RD-012",
"action": {
- "id": "a0147c56db57",
- "pageUrl": "http://127.0.0.1:37213/",
+ "id": "92446496b665",
+ "pageUrl": "http://127.0.0.1:37223/",
"label": "conduit",
"activation": "click",
"kind": "navigation",
@@ -7357,7 +7957,7 @@
"role": "link",
"accessibleName": "conduit",
"text": "conduit",
- "href": "http://127.0.0.1:37213/#/",
+ "href": "http://127.0.0.1:37223/#/",
"candidates": [
{
"strategy": "role",
@@ -7376,7 +7976,7 @@
{
"strategy": "href",
"weight": 72,
- "value": "http://127.0.0.1:37213/#/"
+ "value": "http://127.0.0.1:37223/#/"
},
{
"strategy": "text",
@@ -7394,9 +7994,9 @@
"fields": []
},
"evidence": {
- "startedAt": "2026-07-26T11:01:51.602Z",
- "durationMs": 2507,
- "canary": "RD_TEST_0E5CB5",
+ "startedAt": "2026-07-26T12:21:34.726Z",
+ "durationMs": 2504,
+ "canary": "RD_TEST_87E65B",
"network": [],
"console": [],
"pageErrors": [],
@@ -7407,6 +8007,12 @@
"downloadEvidence": [],
"uploads": [],
"popupUrls": [],
+ "visualSuppressions": [
+ {
+ "artifact": "screenshot",
+ "reason": "authenticated-context"
+ }
+ ],
"locatorResolution": {
"attempts": [
{
@@ -7414,7 +8020,7 @@
"weight": 92,
"matchCount": 2,
"visibleCount": 2,
- "elapsedMs": 7
+ "elapsedMs": 8
},
{
"strategy": "role",
@@ -7442,7 +8048,7 @@
"weight": 35,
"matchCount": 1,
"visibleCount": 1,
- "elapsedMs": 4
+ "elapsedMs": 3
}
],
"chosenStrategy": "css",
@@ -7450,10 +8056,10 @@
"retryCount": 0
},
"before": {
- "at": 1488,
- "url": "http://127.0.0.1:37213/",
+ "at": 1500,
+ "url": "http://127.0.0.1:37223/",
"title": "Conduit",
- "domHash": "f16e71f9610b9322",
+ "domHash": "82970581dc3ba0ed",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -7465,9 +8071,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "a8b069a14856a893",
+ "textHash": "38646687161ebd53",
"visualHash": "efa2f7065933782f",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 Your Feed Global Feed Articles not available. Popular Tags RD_TEST_1DB90D_4RD_TEST_DA5A96_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER Your Feed Global Feed Articles not available. Popular Tags RD_TEST_F3F938_4RD_TEST_45949F_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
"controls": [
{
"tag": "button",
@@ -7505,7 +8111,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -7516,10 +8122,10 @@
}
},
"beforeAction": {
- "at": 1496,
- "url": "http://127.0.0.1:37213/",
+ "at": 1508,
+ "url": "http://127.0.0.1:37223/",
"title": "Conduit",
- "domHash": "f16e71f9610b9322",
+ "domHash": "82970581dc3ba0ed",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -7531,9 +8137,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "a8b069a14856a893",
+ "textHash": "38646687161ebd53",
"visualHash": "efa2f7065933782f",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 Your Feed Global Feed Articles not available. Popular Tags RD_TEST_1DB90D_4RD_TEST_DA5A96_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER Your Feed Global Feed Articles not available. Popular Tags RD_TEST_F3F938_4RD_TEST_45949F_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
"controls": [
{
"tag": "button",
@@ -7571,7 +8177,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -7584,10 +8190,10 @@
"networkSettled": true,
"targetBusyAfter": false,
"after": {
- "at": 2503,
- "url": "http://127.0.0.1:37213/#/",
+ "at": 2501,
+ "url": "http://127.0.0.1:37223/#/",
"title": "Conduit",
- "domHash": "f16e71f9610b9322",
+ "domHash": "82970581dc3ba0ed",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -7599,9 +8205,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "a8b069a14856a893",
+ "textHash": "38646687161ebd53",
"visualHash": "efa2f7065933782f",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 Your Feed Global Feed Articles not available. Popular Tags RD_TEST_1DB90D_4RD_TEST_DA5A96_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER Your Feed Global Feed Articles not available. Popular Tags RD_TEST_F3F938_4RD_TEST_45949F_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
"controls": [
{
"tag": "button",
@@ -7639,7 +8245,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -7667,8 +8273,8 @@
{
"id": "RD-013",
"action": {
- "id": "63ad14060515",
- "pageUrl": "http://127.0.0.1:37213/",
+ "id": "3800f03bc706",
+ "pageUrl": "http://127.0.0.1:37223/",
"label": "Home",
"activation": "click",
"kind": "navigation",
@@ -7681,7 +8287,7 @@
"role": "link",
"accessibleName": "Home",
"text": "Home",
- "href": "http://127.0.0.1:37213/#/",
+ "href": "http://127.0.0.1:37223/#/",
"candidates": [
{
"strategy": "role",
@@ -7700,7 +8306,7 @@
{
"strategy": "href",
"weight": 72,
- "value": "http://127.0.0.1:37213/#/"
+ "value": "http://127.0.0.1:37223/#/"
},
{
"strategy": "text",
@@ -7718,9 +8324,9 @@
"fields": []
},
"evidence": {
- "startedAt": "2026-07-26T11:01:54.144Z",
- "durationMs": 2489,
- "canary": "RD_TEST_E25891",
+ "startedAt": "2026-07-26T12:21:37.253Z",
+ "durationMs": 2533,
+ "canary": "RD_TEST_64FDB2",
"network": [],
"console": [],
"pageErrors": [],
@@ -7731,6 +8337,12 @@
"downloadEvidence": [],
"uploads": [],
"popupUrls": [],
+ "visualSuppressions": [
+ {
+ "artifact": "screenshot",
+ "reason": "authenticated-context"
+ }
+ ],
"locatorResolution": {
"attempts": [
{
@@ -7745,7 +8357,7 @@
"weight": 82,
"matchCount": 1,
"visibleCount": 1,
- "elapsedMs": 5
+ "elapsedMs": 4
}
],
"chosenStrategy": "role",
@@ -7753,10 +8365,10 @@
"retryCount": 0
},
"before": {
- "at": 1470,
- "url": "http://127.0.0.1:37213/",
+ "at": 1527,
+ "url": "http://127.0.0.1:37223/",
"title": "Conduit",
- "domHash": "f16e71f9610b9322",
+ "domHash": "82970581dc3ba0ed",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -7768,9 +8380,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "a8b069a14856a893",
+ "textHash": "38646687161ebd53",
"visualHash": "efa2f7065933782f",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 Your Feed Global Feed Articles not available. Popular Tags RD_TEST_1DB90D_4RD_TEST_DA5A96_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER Your Feed Global Feed Articles not available. Popular Tags RD_TEST_F3F938_4RD_TEST_45949F_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
"controls": [
{
"tag": "button",
@@ -7808,7 +8420,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -7819,10 +8431,10 @@
}
},
"beforeAction": {
- "at": 1478,
- "url": "http://127.0.0.1:37213/",
+ "at": 1537,
+ "url": "http://127.0.0.1:37223/",
"title": "Conduit",
- "domHash": "f16e71f9610b9322",
+ "domHash": "82970581dc3ba0ed",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -7834,9 +8446,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "a8b069a14856a893",
+ "textHash": "38646687161ebd53",
"visualHash": "efa2f7065933782f",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 Your Feed Global Feed Articles not available. Popular Tags RD_TEST_1DB90D_4RD_TEST_DA5A96_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER Your Feed Global Feed Articles not available. Popular Tags RD_TEST_F3F938_4RD_TEST_45949F_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
"controls": [
{
"tag": "button",
@@ -7874,7 +8486,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -7887,10 +8499,10 @@
"networkSettled": true,
"targetBusyAfter": false,
"after": {
- "at": 2485,
- "url": "http://127.0.0.1:37213/#/",
+ "at": 2529,
+ "url": "http://127.0.0.1:37223/#/",
"title": "Conduit",
- "domHash": "f16e71f9610b9322",
+ "domHash": "82970581dc3ba0ed",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -7902,9 +8514,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "a8b069a14856a893",
+ "textHash": "38646687161ebd53",
"visualHash": "efa2f7065933782f",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 Your Feed Global Feed Articles not available. Popular Tags RD_TEST_1DB90D_4RD_TEST_DA5A96_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER Your Feed Global Feed Articles not available. Popular Tags RD_TEST_F3F938_4RD_TEST_45949F_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
"controls": [
{
"tag": "button",
@@ -7942,7 +8554,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -7970,8 +8582,8 @@
{
"id": "RD-014",
"action": {
- "id": "2b6be7d79a5f",
- "pageUrl": "http://127.0.0.1:37213/",
+ "id": "c88ed7554ce5",
+ "pageUrl": "http://127.0.0.1:37223/",
"label": "New Article",
"activation": "click",
"kind": "navigation",
@@ -7984,7 +8596,7 @@
"role": "link",
"accessibleName": "New Article",
"text": "New Article",
- "href": "http://127.0.0.1:37213/#/editor",
+ "href": "http://127.0.0.1:37223/#/editor",
"candidates": [
{
"strategy": "role",
@@ -8003,7 +8615,7 @@
{
"strategy": "href",
"weight": 72,
- "value": "http://127.0.0.1:37213/#/editor"
+ "value": "http://127.0.0.1:37223/#/editor"
},
{
"strategy": "text",
@@ -8021,9 +8633,9 @@
"fields": []
},
"evidence": {
- "startedAt": "2026-07-26T11:01:56.661Z",
- "durationMs": 2501,
- "canary": "RD_TEST_F6B8D4",
+ "startedAt": "2026-07-26T12:21:39.810Z",
+ "durationMs": 2488,
+ "canary": "RD_TEST_437DFF",
"network": [],
"console": [],
"pageErrors": [],
@@ -8034,6 +8646,12 @@
"downloadEvidence": [],
"uploads": [],
"popupUrls": [],
+ "visualSuppressions": [
+ {
+ "artifact": "screenshot",
+ "reason": "authenticated-context"
+ }
+ ],
"locatorResolution": {
"attempts": [
{
@@ -8056,10 +8674,10 @@
"retryCount": 0
},
"before": {
- "at": 1491,
- "url": "http://127.0.0.1:37213/",
+ "at": 1471,
+ "url": "http://127.0.0.1:37223/",
"title": "Conduit",
- "domHash": "f16e71f9610b9322",
+ "domHash": "82970581dc3ba0ed",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -8071,9 +8689,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "a8b069a14856a893",
+ "textHash": "38646687161ebd53",
"visualHash": "efa2f7065933782f",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 Your Feed Global Feed Articles not available. Popular Tags RD_TEST_1DB90D_4RD_TEST_DA5A96_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER Your Feed Global Feed Articles not available. Popular Tags RD_TEST_F3F938_4RD_TEST_45949F_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
"controls": [
{
"tag": "button",
@@ -8111,7 +8729,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -8122,10 +8740,10 @@
}
},
"beforeAction": {
- "at": 1500,
- "url": "http://127.0.0.1:37213/",
+ "at": 1480,
+ "url": "http://127.0.0.1:37223/",
"title": "Conduit",
- "domHash": "f16e71f9610b9322",
+ "domHash": "82970581dc3ba0ed",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -8137,9 +8755,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "a8b069a14856a893",
+ "textHash": "38646687161ebd53",
"visualHash": "efa2f7065933782f",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 Your Feed Global Feed Articles not available. Popular Tags RD_TEST_1DB90D_4RD_TEST_DA5A96_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER Your Feed Global Feed Articles not available. Popular Tags RD_TEST_F3F938_4RD_TEST_45949F_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
"controls": [
{
"tag": "button",
@@ -8177,7 +8795,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -8190,10 +8808,10 @@
"networkSettled": true,
"targetBusyAfter": false,
"after": {
- "at": 2497,
- "url": "http://127.0.0.1:37213/#/editor",
+ "at": 2482,
+ "url": "http://127.0.0.1:37223/#/editor",
"title": "Conduit",
- "domHash": "25121aa0be44bdb5",
+ "domHash": "c936833dbedd7df2",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -8205,9 +8823,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "e43f8008221f4f9e",
+ "textHash": "d0c4b4fdb77a11e9",
"visualHash": "b85410fa0ea5a358",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 Publish Article conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER Publish Article conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
"controls": [
{
"tag": "input",
@@ -8259,7 +8877,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -8287,8 +8905,8 @@
{
"id": "RD-015",
"action": {
- "id": "b6f0b8724ae3",
- "pageUrl": "http://127.0.0.1:37213/",
+ "id": "d61ab1459de8",
+ "pageUrl": "http://127.0.0.1:37223/",
"label": "Your Feed",
"activation": "click",
"kind": "local",
@@ -8333,19 +8951,19 @@
"fields": []
},
"evidence": {
- "startedAt": "2026-07-26T11:01:59.205Z",
- "durationMs": 2543,
- "canary": "RD_TEST_D09C47",
+ "startedAt": "2026-07-26T12:21:42.326Z",
+ "durationMs": 2548,
+ "canary": "RD_TEST_CC1E74",
"network": [
{
"id": "net-1",
"method": "GET",
- "url": "http://127.0.0.1:37213/api/articles/feed?limit=3&&offset=0",
+ "url": "http://127.0.0.1:37223/api/articles/feed?limit=3&&offset=0",
"resourceType": "xhr",
- "startedAt": 1532,
+ "startedAt": 1553,
"status": 200,
"ok": true,
- "finishedAt": 1543,
+ "finishedAt": 1564,
"contentType": "application/json",
"resourceTypeHint": "feed"
}
@@ -8359,6 +8977,12 @@
"downloadEvidence": [],
"uploads": [],
"popupUrls": [],
+ "visualSuppressions": [
+ {
+ "artifact": "screenshot",
+ "reason": "authenticated-context"
+ }
+ ],
"locatorResolution": {
"attempts": [
{
@@ -8374,10 +8998,10 @@
"retryCount": 0
},
"before": {
- "at": 1502,
- "url": "http://127.0.0.1:37213/",
+ "at": 1517,
+ "url": "http://127.0.0.1:37223/",
"title": "Conduit",
- "domHash": "f16e71f9610b9322",
+ "domHash": "82970581dc3ba0ed",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -8389,9 +9013,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "a8b069a14856a893",
+ "textHash": "38646687161ebd53",
"visualHash": "efa2f7065933782f",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 Your Feed Global Feed Articles not available. Popular Tags RD_TEST_1DB90D_4RD_TEST_DA5A96_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER Your Feed Global Feed Articles not available. Popular Tags RD_TEST_F3F938_4RD_TEST_45949F_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
"controls": [
{
"tag": "button",
@@ -8429,7 +9053,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -8440,10 +9064,10 @@
}
},
"beforeAction": {
- "at": 1510,
- "url": "http://127.0.0.1:37213/",
+ "at": 1525,
+ "url": "http://127.0.0.1:37223/",
"title": "Conduit",
- "domHash": "f16e71f9610b9322",
+ "domHash": "82970581dc3ba0ed",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -8455,9 +9079,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "a8b069a14856a893",
+ "textHash": "38646687161ebd53",
"visualHash": "efa2f7065933782f",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 Your Feed Global Feed Articles not available. Popular Tags RD_TEST_1DB90D_4RD_TEST_DA5A96_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER Your Feed Global Feed Articles not available. Popular Tags RD_TEST_F3F938_4RD_TEST_45949F_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
"controls": [
{
"tag": "button",
@@ -8495,7 +9119,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -8508,10 +9132,10 @@
"networkSettled": true,
"targetBusyAfter": false,
"after": {
- "at": 2514,
- "url": "http://127.0.0.1:37213/",
+ "at": 2544,
+ "url": "http://127.0.0.1:37223/",
"title": "Conduit",
- "domHash": "f16e71f9610b9322",
+ "domHash": "82970581dc3ba0ed",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -8523,9 +9147,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "a8b069a14856a893",
+ "textHash": "38646687161ebd53",
"visualHash": "efa2f7065933782f",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 Your Feed Global Feed Articles not available. Popular Tags RD_TEST_1DB90D_4RD_TEST_DA5A96_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER Your Feed Global Feed Articles not available. Popular Tags RD_TEST_F3F938_4RD_TEST_45949F_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
"controls": [
{
"tag": "button",
@@ -8563,7 +9187,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -8573,7 +9197,6 @@
"indexedDb": []
}
},
- "screenshot": "screenshots/b6f0b8724ae3-after.png",
"traceSuppression": {
"artifact": "trace",
"reason": "secret-detected",
@@ -8592,8 +9215,8 @@
{
"id": "RD-016",
"action": {
- "id": "98ade3898516",
- "pageUrl": "http://127.0.0.1:37213/",
+ "id": "a69f66f3ce86",
+ "pageUrl": "http://127.0.0.1:37223/",
"label": "Global Feed",
"activation": "click",
"kind": "local",
@@ -8638,19 +9261,19 @@
"fields": []
},
"evidence": {
- "startedAt": "2026-07-26T11:02:01.790Z",
- "durationMs": 2568,
- "canary": "RD_TEST_4929D7",
+ "startedAt": "2026-07-26T12:21:44.899Z",
+ "durationMs": 2562,
+ "canary": "RD_TEST_8683AD",
"network": [
{
"id": "net-1",
"method": "GET",
- "url": "http://127.0.0.1:37213/api/articles?limit=3&&offset=0",
+ "url": "http://127.0.0.1:37223/api/articles?limit=3&&offset=0",
"resourceType": "xhr",
- "startedAt": 1515,
+ "startedAt": 1529,
"status": 200,
"ok": true,
- "finishedAt": 1526,
+ "finishedAt": 1543,
"contentType": "application/json",
"resourceTypeHint": "articles"
},
@@ -8659,10 +9282,10 @@
"method": "GET",
"url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwlxdu.woff2",
"resourceType": "font",
- "startedAt": 1541,
+ "startedAt": 1557,
"status": 200,
"ok": true,
- "finishedAt": 1589,
+ "finishedAt": 1608,
"contentType": "font/woff2",
"resourceTypeHint": "6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwlxdu.woff2"
}
@@ -8676,6 +9299,12 @@
"downloadEvidence": [],
"uploads": [],
"popupUrls": [],
+ "visualSuppressions": [
+ {
+ "artifact": "screenshot",
+ "reason": "authenticated-context"
+ }
+ ],
"locatorResolution": {
"attempts": [
{
@@ -8691,10 +9320,10 @@
"retryCount": 0
},
"before": {
- "at": 1480,
- "url": "http://127.0.0.1:37213/",
+ "at": 1501,
+ "url": "http://127.0.0.1:37223/",
"title": "Conduit",
- "domHash": "f16e71f9610b9322",
+ "domHash": "82970581dc3ba0ed",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -8706,9 +9335,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "a8b069a14856a893",
+ "textHash": "38646687161ebd53",
"visualHash": "efa2f7065933782f",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 Your Feed Global Feed Articles not available. Popular Tags RD_TEST_1DB90D_4RD_TEST_DA5A96_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER Your Feed Global Feed Articles not available. Popular Tags RD_TEST_F3F938_4RD_TEST_45949F_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
"controls": [
{
"tag": "button",
@@ -8746,7 +9375,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -8757,10 +9386,10 @@
}
},
"beforeAction": {
- "at": 1489,
- "url": "http://127.0.0.1:37213/",
+ "at": 1509,
+ "url": "http://127.0.0.1:37223/",
"title": "Conduit",
- "domHash": "f16e71f9610b9322",
+ "domHash": "82970581dc3ba0ed",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -8772,9 +9401,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "a8b069a14856a893",
+ "textHash": "38646687161ebd53",
"visualHash": "efa2f7065933782f",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 Your Feed Global Feed Articles not available. Popular Tags RD_TEST_1DB90D_4RD_TEST_DA5A96_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER Your Feed Global Feed Articles not available. Popular Tags RD_TEST_F3F938_4RD_TEST_45949F_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
"controls": [
{
"tag": "button",
@@ -8812,7 +9441,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -8825,10 +9454,10 @@
"networkSettled": true,
"targetBusyAfter": false,
"after": {
- "at": 2565,
- "url": "http://127.0.0.1:37213/",
+ "at": 2558,
+ "url": "http://127.0.0.1:37223/",
"title": "Conduit",
- "domHash": "61bd705b60de1013",
+ "domHash": "3780b5134c12e07d",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -8840,9 +9469,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "3203af04a695a158",
+ "textHash": "b6b4d502cfa25c3d",
"visualHash": "80775a8344dd3205",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 Your Feed Global Feed RD_TEST_AFDF00_1 July 26, 2026 ( 0 ) RD_TEST_DA5A96_1 RD_TEST_DA5A96_2 Read more... RD_TEST_DA5A96_4 RD_TEST_AFDF00_1 July 26, 2026 ( 0 ) RD_TEST_D97009_1 RD_TEST_D97009_2 Read more... RD_TEST_1DB90D_4 1 Popular Tags RD_TEST_1DB90D_4RD_TEST_DA5A96_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER Your Feed Global Feed RD_PHASE_K_CRUD_OWNER July 26, 2026 ( 0 ) RD_TEST_45949F_1 RD_TEST_45949F_2 Read more... RD_TEST_45949F_4 RD_PHASE_K_CRUD_OWNER July 26, 2026 ( 0 ) RD_TEST_4CBB5D_1 RD_TEST_4CBB5D_2 Read more... RD_TEST_F3F938_4 1 Popular Tags RD_TEST_F3F938_4RD_TEST_45949F_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
"controls": [
{
"tag": "button",
@@ -8894,7 +9523,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -8922,9 +9551,9 @@
{
"id": "RD-017",
"action": {
- "id": "e1289f1d4fb5",
- "pageUrl": "http://127.0.0.1:37213/",
- "label": "RD_TEST_1DB90D_4",
+ "id": "bb360e1fb2b4",
+ "pageUrl": "http://127.0.0.1:37223/",
+ "label": "RD_TEST_F3F938_4",
"activation": "click",
"kind": "local",
"intent": "interact",
@@ -8934,28 +9563,28 @@
"tag": "button",
"ordinal": 6,
"role": "button",
- "accessibleName": "RD_TEST_1DB90D_4",
- "text": "RD_TEST_1DB90D_4",
+ "accessibleName": "RD_TEST_F3F938_4",
+ "text": "RD_TEST_F3F938_4",
"type": "submit",
"candidates": [
{
"strategy": "role",
"weight": 92,
"role": "button",
- "name": "RD_TEST_1DB90D_4",
+ "name": "RD_TEST_F3F938_4",
"exact": true
},
{
"strategy": "role",
"weight": 82,
"role": "button",
- "name": "RD_TEST_1DB90D_4",
+ "name": "RD_TEST_F3F938_4",
"exact": false
},
{
"strategy": "text",
"weight": 60,
- "value": "RD_TEST_1DB90D_4",
+ "value": "RD_TEST_F3F938_4",
"exact": true
},
{
@@ -8968,19 +9597,19 @@
"fields": []
},
"evidence": {
- "startedAt": "2026-07-26T11:02:04.402Z",
- "durationMs": 2578,
- "canary": "RD_TEST_13EF90",
+ "startedAt": "2026-07-26T12:21:47.485Z",
+ "durationMs": 2573,
+ "canary": "RD_TEST_AF65C5",
"network": [
{
"id": "net-1",
"method": "GET",
- "url": "http://127.0.0.1:37213/api/articles?tag=RD_TEST_1DB90D_4&&limit=3&&offset=0",
+ "url": "http://127.0.0.1:37223/api/articles?tag=RD_TEST_F3F938_4&&limit=3&&offset=0",
"resourceType": "xhr",
- "startedAt": 1536,
+ "startedAt": 1528,
"status": 200,
"ok": true,
- "finishedAt": 1546,
+ "finishedAt": 1539,
"contentType": "application/json",
"resourceTypeHint": "articles"
},
@@ -8989,10 +9618,10 @@
"method": "GET",
"url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwlxdu.woff2",
"resourceType": "font",
- "startedAt": 1567,
+ "startedAt": 1560,
"status": 200,
"ok": true,
- "finishedAt": 1612,
+ "finishedAt": 1609,
"contentType": "font/woff2",
"resourceTypeHint": "6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwlxdu.woff2"
}
@@ -9006,6 +9635,12 @@
"downloadEvidence": [],
"uploads": [],
"popupUrls": [],
+ "visualSuppressions": [
+ {
+ "artifact": "screenshot",
+ "reason": "authenticated-context"
+ }
+ ],
"locatorResolution": {
"attempts": [
{
@@ -9013,7 +9648,7 @@
"weight": 92,
"matchCount": 1,
"visibleCount": 1,
- "elapsedMs": 4
+ "elapsedMs": 5
}
],
"chosenStrategy": "role",
@@ -9021,10 +9656,10 @@
"retryCount": 0
},
"before": {
- "at": 1500,
- "url": "http://127.0.0.1:37213/",
+ "at": 1496,
+ "url": "http://127.0.0.1:37223/",
"title": "Conduit",
- "domHash": "f16e71f9610b9322",
+ "domHash": "82970581dc3ba0ed",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -9036,9 +9671,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "a8b069a14856a893",
+ "textHash": "38646687161ebd53",
"visualHash": "efa2f7065933782f",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 Your Feed Global Feed Articles not available. Popular Tags RD_TEST_1DB90D_4RD_TEST_DA5A96_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER Your Feed Global Feed Articles not available. Popular Tags RD_TEST_F3F938_4RD_TEST_45949F_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
"controls": [
{
"tag": "button",
@@ -9076,7 +9711,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -9087,10 +9722,10 @@
}
},
"beforeAction": {
- "at": 1508,
- "url": "http://127.0.0.1:37213/",
+ "at": 1505,
+ "url": "http://127.0.0.1:37223/",
"title": "Conduit",
- "domHash": "f16e71f9610b9322",
+ "domHash": "82970581dc3ba0ed",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -9102,9 +9737,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "a8b069a14856a893",
+ "textHash": "38646687161ebd53",
"visualHash": "efa2f7065933782f",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 Your Feed Global Feed Articles not available. Popular Tags RD_TEST_1DB90D_4RD_TEST_DA5A96_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER Your Feed Global Feed Articles not available. Popular Tags RD_TEST_F3F938_4RD_TEST_45949F_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
"controls": [
{
"tag": "button",
@@ -9142,7 +9777,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -9155,10 +9790,10 @@
"networkSettled": true,
"targetBusyAfter": false,
"after": {
- "at": 2574,
- "url": "http://127.0.0.1:37213/",
+ "at": 2569,
+ "url": "http://127.0.0.1:37223/",
"title": "Conduit",
- "domHash": "a65c9cdc5c51b465",
+ "domHash": "dd24520a683efd9d",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -9170,9 +9805,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "b8ce064b7f27ecbc",
+ "textHash": "a69a56246ba85121",
"visualHash": "c3eb30fd4dc354f6",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 Your Feed Global Feed RD_TEST_1DB90D_4 RD_TEST_AFDF00_1 July 26, 2026 ( 0 ) RD_TEST_D97009_1 RD_TEST_D97009_2 Read more... RD_TEST_1DB90D_4 1 Popular Tags RD_TEST_1DB90D_4RD_TEST_DA5A96_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER Your Feed Global Feed RD_TEST_F3F938_4 RD_PHASE_K_CRUD_OWNER July 26, 2026 ( 0 ) RD_TEST_4CBB5D_1 RD_TEST_4CBB5D_2 Read more... RD_TEST_F3F938_4 1 Popular Tags RD_TEST_F3F938_4RD_TEST_45949F_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
"controls": [
{
"tag": "button",
@@ -9224,7 +9859,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -9252,9 +9887,9 @@
{
"id": "RD-018",
"action": {
- "id": "ff4472b3a283",
- "pageUrl": "http://127.0.0.1:37213/",
- "label": "RD_TEST_DA5A96_4",
+ "id": "bfa7e43fb614",
+ "pageUrl": "http://127.0.0.1:37223/",
+ "label": "RD_TEST_45949F_4",
"activation": "click",
"kind": "local",
"intent": "interact",
@@ -9264,28 +9899,28 @@
"tag": "button",
"ordinal": 7,
"role": "button",
- "accessibleName": "RD_TEST_DA5A96_4",
- "text": "RD_TEST_DA5A96_4",
+ "accessibleName": "RD_TEST_45949F_4",
+ "text": "RD_TEST_45949F_4",
"type": "submit",
"candidates": [
{
"strategy": "role",
"weight": 92,
"role": "button",
- "name": "RD_TEST_DA5A96_4",
+ "name": "RD_TEST_45949F_4",
"exact": true
},
{
"strategy": "role",
"weight": 82,
"role": "button",
- "name": "RD_TEST_DA5A96_4",
+ "name": "RD_TEST_45949F_4",
"exact": false
},
{
"strategy": "text",
"weight": 60,
- "value": "RD_TEST_DA5A96_4",
+ "value": "RD_TEST_45949F_4",
"exact": true
},
{
@@ -9298,19 +9933,19 @@
"fields": []
},
"evidence": {
- "startedAt": "2026-07-26T11:02:07.031Z",
- "durationMs": 2547,
- "canary": "RD_TEST_111349",
+ "startedAt": "2026-07-26T12:21:50.083Z",
+ "durationMs": 2591,
+ "canary": "RD_TEST_FDE3FF",
"network": [
{
"id": "net-1",
"method": "GET",
- "url": "http://127.0.0.1:37213/api/articles?tag=RD_TEST_DA5A96_4&&limit=3&&offset=0",
+ "url": "http://127.0.0.1:37223/api/articles?tag=RD_TEST_45949F_4&&limit=3&&offset=0",
"resourceType": "xhr",
- "startedAt": 1506,
+ "startedAt": 1529,
"status": 200,
"ok": true,
- "finishedAt": 1516,
+ "finishedAt": 1542,
"contentType": "application/json",
"resourceTypeHint": "articles"
},
@@ -9319,10 +9954,10 @@
"method": "GET",
"url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwlxdu.woff2",
"resourceType": "font",
- "startedAt": 1537,
+ "startedAt": 1561,
"status": 200,
"ok": true,
- "finishedAt": 1581,
+ "finishedAt": 1612,
"contentType": "font/woff2",
"resourceTypeHint": "6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwlxdu.woff2"
}
@@ -9336,6 +9971,12 @@
"downloadEvidence": [],
"uploads": [],
"popupUrls": [],
+ "visualSuppressions": [
+ {
+ "artifact": "screenshot",
+ "reason": "authenticated-context"
+ }
+ ],
"locatorResolution": {
"attempts": [
{
@@ -9343,7 +9984,7 @@
"weight": 92,
"matchCount": 1,
"visibleCount": 1,
- "elapsedMs": 4
+ "elapsedMs": 5
}
],
"chosenStrategy": "role",
@@ -9351,10 +9992,10 @@
"retryCount": 0
},
"before": {
- "at": 1468,
- "url": "http://127.0.0.1:37213/",
+ "at": 1493,
+ "url": "http://127.0.0.1:37223/",
"title": "Conduit",
- "domHash": "f16e71f9610b9322",
+ "domHash": "82970581dc3ba0ed",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -9366,9 +10007,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "a8b069a14856a893",
+ "textHash": "38646687161ebd53",
"visualHash": "efa2f7065933782f",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 Your Feed Global Feed Articles not available. Popular Tags RD_TEST_1DB90D_4RD_TEST_DA5A96_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER Your Feed Global Feed Articles not available. Popular Tags RD_TEST_F3F938_4RD_TEST_45949F_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
"controls": [
{
"tag": "button",
@@ -9406,7 +10047,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -9417,10 +10058,10 @@
}
},
"beforeAction": {
- "at": 1476,
- "url": "http://127.0.0.1:37213/",
+ "at": 1501,
+ "url": "http://127.0.0.1:37223/",
"title": "Conduit",
- "domHash": "f16e71f9610b9322",
+ "domHash": "82970581dc3ba0ed",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -9432,9 +10073,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "a8b069a14856a893",
+ "textHash": "38646687161ebd53",
"visualHash": "efa2f7065933782f",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 Your Feed Global Feed Articles not available. Popular Tags RD_TEST_1DB90D_4RD_TEST_DA5A96_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER Your Feed Global Feed Articles not available. Popular Tags RD_TEST_F3F938_4RD_TEST_45949F_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
"controls": [
{
"tag": "button",
@@ -9472,7 +10113,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -9485,10 +10126,10 @@
"networkSettled": true,
"targetBusyAfter": false,
"after": {
- "at": 2543,
- "url": "http://127.0.0.1:37213/",
+ "at": 2587,
+ "url": "http://127.0.0.1:37223/",
"title": "Conduit",
- "domHash": "420e23502ce8bd2c",
+ "domHash": "c1897e01e6d16909",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -9500,9 +10141,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "7cf570127a9c5d30",
+ "textHash": "4399221c47505117",
"visualHash": "c3eb30fd4dc354f6",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 Your Feed Global Feed RD_TEST_DA5A96_4 RD_TEST_AFDF00_1 July 26, 2026 ( 0 ) RD_TEST_DA5A96_1 RD_TEST_DA5A96_2 Read more... RD_TEST_DA5A96_4 1 Popular Tags RD_TEST_1DB90D_4RD_TEST_DA5A96_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER Your Feed Global Feed RD_TEST_45949F_4 RD_PHASE_K_CRUD_OWNER July 26, 2026 ( 0 ) RD_TEST_45949F_1 RD_TEST_45949F_2 Read more... RD_TEST_45949F_4 1 Popular Tags RD_TEST_F3F938_4RD_TEST_45949F_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
"controls": [
{
"tag": "button",
@@ -9554,7 +10195,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -9582,8 +10223,8 @@
{
"id": "RD-019",
"action": {
- "id": "60e12226e19d",
- "pageUrl": "http://127.0.0.1:37213/",
+ "id": "9d442a70bdcb",
+ "pageUrl": "http://127.0.0.1:37223/",
"label": "conduit",
"activation": "click",
"kind": "navigation",
@@ -9596,7 +10237,7 @@
"role": "link",
"accessibleName": "conduit",
"text": "conduit",
- "href": "http://127.0.0.1:37213/#/",
+ "href": "http://127.0.0.1:37223/#/",
"candidates": [
{
"strategy": "role",
@@ -9615,7 +10256,7 @@
{
"strategy": "href",
"weight": 72,
- "value": "http://127.0.0.1:37213/#/"
+ "value": "http://127.0.0.1:37223/#/"
},
{
"strategy": "text",
@@ -9633,9 +10274,9 @@
"fields": []
},
"evidence": {
- "startedAt": "2026-07-26T11:02:09.628Z",
- "durationMs": 2498,
- "canary": "RD_TEST_33C2FB",
+ "startedAt": "2026-07-26T12:21:52.697Z",
+ "durationMs": 2527,
+ "canary": "RD_TEST_6C1BA3",
"network": [],
"console": [],
"pageErrors": [],
@@ -9646,6 +10287,12 @@
"downloadEvidence": [],
"uploads": [],
"popupUrls": [],
+ "visualSuppressions": [
+ {
+ "artifact": "screenshot",
+ "reason": "authenticated-context"
+ }
+ ],
"locatorResolution": {
"attempts": [
{
@@ -9653,35 +10300,35 @@
"weight": 92,
"matchCount": 2,
"visibleCount": 2,
- "elapsedMs": 7
+ "elapsedMs": 8
},
{
"strategy": "role",
"weight": 82,
"matchCount": 2,
"visibleCount": 2,
- "elapsedMs": 6
+ "elapsedMs": 7
},
{
"strategy": "href",
"weight": 72,
"matchCount": 0,
"visibleCount": 0,
- "elapsedMs": 2
+ "elapsedMs": 1
},
{
"strategy": "text",
"weight": 60,
"matchCount": 2,
"visibleCount": 2,
- "elapsedMs": 5
+ "elapsedMs": 7
},
{
"strategy": "css",
"weight": 35,
"matchCount": 1,
"visibleCount": 1,
- "elapsedMs": 4
+ "elapsedMs": 3
}
],
"chosenStrategy": "css",
@@ -9689,10 +10336,10 @@
"retryCount": 0
},
"before": {
- "at": 1486,
- "url": "http://127.0.0.1:37213/",
+ "at": 1524,
+ "url": "http://127.0.0.1:37223/",
"title": "Conduit",
- "domHash": "f16e71f9610b9322",
+ "domHash": "82970581dc3ba0ed",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -9704,9 +10351,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "a8b069a14856a893",
+ "textHash": "38646687161ebd53",
"visualHash": "efa2f7065933782f",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 Your Feed Global Feed Articles not available. Popular Tags RD_TEST_1DB90D_4RD_TEST_DA5A96_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER Your Feed Global Feed Articles not available. Popular Tags RD_TEST_F3F938_4RD_TEST_45949F_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
"controls": [
{
"tag": "button",
@@ -9744,7 +10391,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -9755,10 +10402,10 @@
}
},
"beforeAction": {
- "at": 1494,
- "url": "http://127.0.0.1:37213/",
+ "at": 1532,
+ "url": "http://127.0.0.1:37223/",
"title": "Conduit",
- "domHash": "f16e71f9610b9322",
+ "domHash": "82970581dc3ba0ed",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -9770,9 +10417,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "a8b069a14856a893",
+ "textHash": "38646687161ebd53",
"visualHash": "efa2f7065933782f",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 Your Feed Global Feed Articles not available. Popular Tags RD_TEST_1DB90D_4RD_TEST_DA5A96_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER Your Feed Global Feed Articles not available. Popular Tags RD_TEST_F3F938_4RD_TEST_45949F_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
"controls": [
{
"tag": "button",
@@ -9810,7 +10457,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -9823,10 +10470,10 @@
"networkSettled": true,
"targetBusyAfter": false,
"after": {
- "at": 2494,
- "url": "http://127.0.0.1:37213/#/",
+ "at": 2523,
+ "url": "http://127.0.0.1:37223/#/",
"title": "Conduit",
- "domHash": "f16e71f9610b9322",
+ "domHash": "82970581dc3ba0ed",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -9838,9 +10485,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "a8b069a14856a893",
+ "textHash": "38646687161ebd53",
"visualHash": "efa2f7065933782f",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 Your Feed Global Feed Articles not available. Popular Tags RD_TEST_1DB90D_4RD_TEST_DA5A96_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER Your Feed Global Feed Articles not available. Popular Tags RD_TEST_F3F938_4RD_TEST_45949F_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
"controls": [
{
"tag": "button",
@@ -9878,7 +10525,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -9906,8 +10553,8 @@
{
"id": "RD-020",
"action": {
- "id": "49c799c46ed8",
- "pageUrl": "http://127.0.0.1:37213/#/article/rd-test-d97009-1",
+ "id": "c15810d6e309",
+ "pageUrl": "http://127.0.0.1:37223/#/article/rd-test-4cbb5d-1",
"label": "Delete Article",
"activation": "click",
"kind": "mutation",
@@ -9952,67 +10599,67 @@
"fields": []
},
"evidence": {
- "startedAt": "2026-07-26T11:02:12.199Z",
- "durationMs": 7145,
- "canary": "RD_TEST_F05D6B",
+ "startedAt": "2026-07-26T12:21:55.299Z",
+ "durationMs": 7172,
+ "canary": "RD_TEST_055E72",
"network": [
{
"id": "net-1",
"method": "DELETE",
- "url": "http://127.0.0.1:37213/api/articles/rd-test-d97009-1/",
+ "url": "http://127.0.0.1:37223/api/articles/rd-test-4cbb5d-1/",
"resourceType": "xhr",
- "startedAt": 1539,
+ "startedAt": 1565,
"status": 200,
"ok": true,
- "finishedAt": 1551,
+ "finishedAt": 1575,
"contentType": "application/json",
- "resourceTypeHint": "rd-test-d97009-1"
+ "resourceTypeHint": "rd-test-4cbb5d-1"
},
{
"id": "net-2",
"method": "GET",
- "url": "http://127.0.0.1:37213/api/articles/feed?limit=3&&offset=0",
+ "url": "http://127.0.0.1:37223/api/articles/feed?limit=3&&offset=0",
"resourceType": "xhr",
- "startedAt": 1555,
+ "startedAt": 1579,
"status": 200,
"ok": true,
- "finishedAt": 1561,
+ "finishedAt": 1584,
"contentType": "application/json",
"resourceTypeHint": "feed"
},
{
"id": "net-3",
"method": "GET",
- "url": "http://127.0.0.1:37213/api/tags",
+ "url": "http://127.0.0.1:37223/api/tags",
"resourceType": "xhr",
- "startedAt": 1556,
+ "startedAt": 1579,
"status": 200,
"ok": true,
- "finishedAt": 1561,
+ "finishedAt": 1583,
"contentType": "application/json",
"resourceTypeHint": "tags"
},
{
"id": "net-4",
"method": "GET",
- "url": "http://127.0.0.1:37213/",
+ "url": "http://127.0.0.1:37223/",
"resourceType": "document",
- "startedAt": 2793,
+ "startedAt": 2803,
"status": 200,
"ok": true,
"contentType": "text/html",
"resourceTypeHint": "resource",
- "finishedAt": 2800
+ "finishedAt": 2811
},
{
"id": "net-5",
"method": "GET",
"url": "http://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css",
"resourceType": "stylesheet",
- "startedAt": 2798,
+ "startedAt": 2809,
"status": 307,
"ok": false,
- "finishedAt": 2802,
+ "finishedAt": 2813,
"location": "https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css",
"resourceTypeHint": "ionicons.min.css"
},
@@ -10021,34 +10668,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": 2799,
+ "startedAt": 2810,
"status": 200,
"ok": true,
- "finishedAt": 2837,
+ "finishedAt": 2849,
"contentType": "text/css",
"resourceTypeHint": "css"
},
{
"id": "net-7",
"method": "GET",
- "url": "http://127.0.0.1:37213/assets/index-CLdavoKn.js",
+ "url": "http://127.0.0.1:37223/assets/index-CLdavoKn.js",
"resourceType": "script",
- "startedAt": 2799,
+ "startedAt": 2810,
"status": 200,
"ok": true,
- "finishedAt": 2812,
+ "finishedAt": 2824,
"contentType": "text/javascript",
"resourceTypeHint": "index-CLdavoKn.js"
},
{
"id": "net-8",
"method": "GET",
- "url": "http://127.0.0.1:37213/assets/index-De1Lwdlm.css",
+ "url": "http://127.0.0.1:37223/assets/index-De1Lwdlm.css",
"resourceType": "stylesheet",
- "startedAt": 2800,
+ "startedAt": 2811,
"status": 200,
"ok": true,
- "finishedAt": 2804,
+ "finishedAt": 2817,
"contentType": "text/css",
"resourceTypeHint": "index-De1Lwdlm.css"
},
@@ -10057,10 +10704,10 @@
"method": "GET",
"url": "https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css",
"resourceType": "stylesheet",
- "startedAt": 2802,
+ "startedAt": 2813,
"status": 200,
"ok": true,
- "finishedAt": 3088,
+ "finishedAt": 3094,
"contentType": "text/css",
"resourceTypeHint": "ionicons.min.css"
},
@@ -10069,10 +10716,10 @@
"method": "GET",
"url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdu.woff2",
"resourceType": "font",
- "startedAt": 3097,
+ "startedAt": 3102,
"status": 200,
"ok": true,
- "finishedAt": 3145,
+ "finishedAt": 3148,
"contentType": "font/woff2",
"resourceTypeHint": "6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdu.woff2"
},
@@ -10081,22 +10728,22 @@
"method": "GET",
"url": "https://code.ionicframework.com/ionicons/2.0.1/fonts/ionicons.ttf?v=2.0.1",
"resourceType": "font",
- "startedAt": 3098,
+ "startedAt": 3103,
"status": 200,
"ok": true,
+ "finishedAt": 3211,
"contentType": "font/ttf",
- "resourceTypeHint": "ionicons.ttf",
- "finishedAt": 3221
+ "resourceTypeHint": "ionicons.ttf"
},
{
"id": "net-12",
"method": "GET",
"url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7l.woff2",
"resourceType": "font",
- "startedAt": 3098,
+ "startedAt": 3104,
"status": 200,
"ok": true,
- "finishedAt": 3146,
+ "finishedAt": 3155,
"contentType": "font/woff2",
"resourceTypeHint": "6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7l.woff2"
},
@@ -10105,70 +10752,70 @@
"method": "GET",
"url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7nsDI.woff2",
"resourceType": "font",
- "startedAt": 3098,
+ "startedAt": 3104,
"status": 200,
"ok": true,
- "finishedAt": 3143,
+ "finishedAt": 3155,
"contentType": "font/woff2",
"resourceTypeHint": "6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7nsDI.woff2"
},
{
"id": "net-14",
"method": "GET",
- "url": "http://127.0.0.1:37213/api/articles/feed?limit=3&&offset=0",
+ "url": "http://127.0.0.1:37223/api/articles/feed?limit=3&&offset=0",
"resourceType": "xhr",
- "startedAt": 3100,
+ "startedAt": 3105,
"status": 200,
"ok": true,
- "finishedAt": 3108,
+ "finishedAt": 3113,
"contentType": "application/json",
"resourceTypeHint": "feed"
},
{
"id": "net-15",
"method": "GET",
- "url": "http://127.0.0.1:37213/api/tags",
+ "url": "http://127.0.0.1:37223/api/tags",
"resourceType": "xhr",
- "startedAt": 3100,
+ "startedAt": 3106,
"status": 200,
"ok": true,
- "finishedAt": 3106,
"contentType": "application/json",
- "resourceTypeHint": "tags"
+ "resourceTypeHint": "tags",
+ "finishedAt": 3112
},
{
"id": "net-16",
"method": "GET",
- "url": "http://127.0.0.1:37213/api/user",
+ "url": "http://127.0.0.1:37223/api/user",
"resourceType": "xhr",
- "startedAt": 3101,
+ "startedAt": 3106,
"status": 200,
"ok": true,
- "finishedAt": 3107,
+ "finishedAt": 3112,
"contentType": "application/json",
"resourceTypeHint": "user"
},
{
"id": "net-17",
"method": "GET",
- "url": "http://127.0.0.1:37213/",
+ "url": "http://127.0.0.1:37223/",
"resourceType": "document",
- "startedAt": 3946,
+ "startedAt": 3935,
"status": 200,
"ok": true,
"contentType": "text/html",
"resourceTypeHint": "resource",
- "finishedAt": 3953
+ "finishedAt": 3943
},
{
"id": "net-18",
"method": "GET",
"url": "http://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css",
"resourceType": "stylesheet",
- "startedAt": 3951,
+ "startedAt": 3942,
"status": 307,
"ok": false,
- "finishedAt": 3955,
+ "finishedAt": 3945,
"location": "https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css",
"resourceTypeHint": "ionicons.min.css"
},
@@ -10177,46 +10824,46 @@
"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": 3952,
+ "startedAt": 3942,
"status": 200,
"ok": true,
- "finishedAt": 3991,
+ "finishedAt": 3984,
"contentType": "text/css",
"resourceTypeHint": "css"
},
{
"id": "net-20",
"method": "GET",
- "url": "http://127.0.0.1:37213/assets/index-CLdavoKn.js",
+ "url": "http://127.0.0.1:37223/assets/index-CLdavoKn.js",
"resourceType": "script",
- "startedAt": 3953,
+ "startedAt": 3942,
"status": 200,
"ok": true,
- "finishedAt": 3965,
+ "finishedAt": 3959,
"contentType": "text/javascript",
"resourceTypeHint": "index-CLdavoKn.js"
},
{
"id": "net-21",
"method": "GET",
- "url": "http://127.0.0.1:37213/assets/index-De1Lwdlm.css",
+ "url": "http://127.0.0.1:37223/assets/index-De1Lwdlm.css",
"resourceType": "stylesheet",
- "startedAt": 3953,
+ "startedAt": 3943,
"status": 200,
"ok": true,
"contentType": "text/css",
"resourceTypeHint": "index-De1Lwdlm.css",
- "finishedAt": 3957
+ "finishedAt": 3947
},
{
"id": "net-22",
"method": "GET",
"url": "https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css",
"resourceType": "stylesheet",
- "startedAt": 3955,
+ "startedAt": 3945,
"status": 200,
"ok": true,
- "finishedAt": 4033,
+ "finishedAt": 4023,
"contentType": "text/css",
"resourceTypeHint": "ionicons.min.css"
},
@@ -10225,10 +10872,10 @@
"method": "GET",
"url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdu.woff2",
"resourceType": "font",
- "startedAt": 4041,
+ "startedAt": 4031,
"status": 200,
"ok": true,
- "finishedAt": 4088,
+ "finishedAt": 4082,
"contentType": "font/woff2",
"resourceTypeHint": "6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdu.woff2"
},
@@ -10237,22 +10884,22 @@
"method": "GET",
"url": "https://code.ionicframework.com/ionicons/2.0.1/fonts/ionicons.ttf?v=2.0.1",
"resourceType": "font",
- "startedAt": 4043,
+ "startedAt": 4032,
"status": 200,
"ok": true,
+ "finishedAt": 4135,
"contentType": "font/ttf",
- "resourceTypeHint": "ionicons.ttf",
- "finishedAt": 4165
+ "resourceTypeHint": "ionicons.ttf"
},
{
"id": "net-25",
"method": "GET",
"url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7l.woff2",
"resourceType": "font",
- "startedAt": 4043,
+ "startedAt": 4032,
"status": 200,
"ok": true,
- "finishedAt": 4089,
+ "finishedAt": 4083,
"contentType": "font/woff2",
"resourceTypeHint": "6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7l.woff2"
},
@@ -10261,46 +10908,46 @@
"method": "GET",
"url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7nsDI.woff2",
"resourceType": "font",
- "startedAt": 4043,
+ "startedAt": 4032,
"status": 200,
"ok": true,
- "finishedAt": 4089,
+ "finishedAt": 4077,
"contentType": "font/woff2",
"resourceTypeHint": "6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7nsDI.woff2"
},
{
"id": "net-27",
"method": "GET",
- "url": "http://127.0.0.1:37213/api/articles/feed?limit=3&&offset=0",
+ "url": "http://127.0.0.1:37223/api/articles/feed?limit=3&&offset=0",
"resourceType": "xhr",
- "startedAt": 4044,
+ "startedAt": 4034,
"status": 200,
"ok": true,
- "finishedAt": 4052,
+ "finishedAt": 4042,
"contentType": "application/json",
"resourceTypeHint": "feed"
},
{
"id": "net-28",
"method": "GET",
- "url": "http://127.0.0.1:37213/api/tags",
+ "url": "http://127.0.0.1:37223/api/tags",
"resourceType": "xhr",
- "startedAt": 4044,
+ "startedAt": 4034,
"status": 200,
"ok": true,
"contentType": "application/json",
"resourceTypeHint": "tags",
- "finishedAt": 4050
+ "finishedAt": 4040
},
{
"id": "net-29",
"method": "GET",
- "url": "http://127.0.0.1:37213/api/user",
+ "url": "http://127.0.0.1:37223/api/user",
"resourceType": "xhr",
- "startedAt": 4045,
+ "startedAt": 4034,
"status": 200,
"ok": true,
- "finishedAt": 4051,
+ "finishedAt": 4040,
"contentType": "application/json",
"resourceTypeHint": "user"
}
@@ -10316,6 +10963,12 @@
"downloadEvidence": [],
"uploads": [],
"popupUrls": [],
+ "visualSuppressions": [
+ {
+ "artifact": "screenshot",
+ "reason": "authenticated-context"
+ }
+ ],
"locatorResolution": {
"attempts": [
{
@@ -10352,10 +11005,10 @@
"retryCount": 0
},
"before": {
- "at": 1461,
- "url": "http://127.0.0.1:37213/#/article/rd-test-d97009-1",
+ "at": 1496,
+ "url": "http://127.0.0.1:37223/#/article/rd-test-4cbb5d-1",
"title": "Conduit",
- "domHash": "31946d67021bf408",
+ "domHash": "710281541eea0bd2",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -10367,9 +11020,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "9575a081d32d3c17",
+ "textHash": "4bd57312372c61ab",
"visualHash": "e92a3e18c194e797",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 RD_TEST_D97009_1 RD_TEST_AFDF00_1 July 26, 2026 Delete Article Edit Article RD_TEST_D97009_3 RD_TEST_1DB90D_4 RD_TEST_AFDF00_1 July 26, 2026 Delete Article Edit Article Post Comment RD_TEST_53B0B6_1 RD_TEST_AFDF00_1July 26, 2026 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER RD_TEST_4CBB5D_1 RD_PHASE_K_CRUD_OWNER July 26, 2026 Delete Article Edit Article RD_TEST_4CBB5D_3 RD_TEST_F3F938_4 RD_PHASE_K_CRUD_OWNER July 26, 2026 Delete Article Edit Article Post Comment RD_TEST_969A19_1 RD_PHASE_K_CRUD_OWNERJuly 26, 2026 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
"controls": [
{
"tag": "button",
@@ -10428,7 +11081,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -10445,12 +11098,12 @@
"rows": [
{
"keyHash": "186347d9ea7673a2",
- "rowHash": "0d57a14d8f768e38",
+ "rowHash": "513a00e32394f4c2",
"softDeleted": false
},
{
"keyHash": "da7114755c3b82ba",
- "rowHash": "8a838f560ae73b56",
+ "rowHash": "a43fe358be8329c7",
"softDeleted": false
}
],
@@ -10461,9 +11114,90 @@
"resource": "users",
"schemaHash": "b7a8a911cd0fd4e9",
"rows": [
+ {
+ "keyHash": "186347d9ea7673a2",
+ "rowHash": "4d8311a4b9df0bbb",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "da7114755c3b82ba",
+ "rowHash": "39bd56af0b169023",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "84cf60166b2ca345",
+ "rowHash": "aa49653a67bcd399",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "9ef59241e15425e0",
+ "rowHash": "3343e1b012ad4f04",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "82a8445b12df5a29",
+ "rowHash": "db866c24a3538c63",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "667da1af4b45220f",
+ "rowHash": "5c8f98476fb3bfca",
+ "softDeleted": false
+ }
+ ],
+ "truncated": false
+ },
+ {
+ "adapter": "supabase",
+ "resource": "articles",
+ "schemaHash": "777de19e0eca5f66",
+ "rows": [
+ {
+ "keyHash": "186347d9ea7673a2",
+ "rowHash": "513a00e32394f4c2",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "da7114755c3b82ba",
+ "rowHash": "a43fe358be8329c7",
+ "softDeleted": false
+ }
+ ],
+ "truncated": false
+ },
+ {
+ "adapter": "supabase",
+ "resource": "users",
+ "schemaHash": "cd9a96cfad9b0bff",
+ "rows": [
+ {
+ "keyHash": "186347d9ea7673a2",
+ "rowHash": "4d8311a4b9df0bbb",
+ "softDeleted": false
+ },
{
"keyHash": "da7114755c3b82ba",
- "rowHash": "f1108a413122f589",
+ "rowHash": "39bd56af0b169023",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "84cf60166b2ca345",
+ "rowHash": "aa49653a67bcd399",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "9ef59241e15425e0",
+ "rowHash": "3343e1b012ad4f04",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "82a8445b12df5a29",
+ "rowHash": "db866c24a3538c63",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "667da1af4b45220f",
+ "rowHash": "5c8f98476fb3bfca",
"softDeleted": false
}
],
@@ -10472,10 +11206,10 @@
]
},
"beforeAction": {
- "at": 1475,
- "url": "http://127.0.0.1:37213/#/article/rd-test-d97009-1",
+ "at": 1510,
+ "url": "http://127.0.0.1:37223/#/article/rd-test-4cbb5d-1",
"title": "Conduit",
- "domHash": "31946d67021bf408",
+ "domHash": "710281541eea0bd2",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -10487,9 +11221,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "9575a081d32d3c17",
+ "textHash": "4bd57312372c61ab",
"visualHash": "e92a3e18c194e797",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 RD_TEST_D97009_1 RD_TEST_AFDF00_1 July 26, 2026 Delete Article Edit Article RD_TEST_D97009_3 RD_TEST_1DB90D_4 RD_TEST_AFDF00_1 July 26, 2026 Delete Article Edit Article Post Comment RD_TEST_53B0B6_1 RD_TEST_AFDF00_1July 26, 2026 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER RD_TEST_4CBB5D_1 RD_PHASE_K_CRUD_OWNER July 26, 2026 Delete Article Edit Article RD_TEST_4CBB5D_3 RD_TEST_F3F938_4 RD_PHASE_K_CRUD_OWNER July 26, 2026 Delete Article Edit Article Post Comment RD_TEST_969A19_1 RD_PHASE_K_CRUD_OWNERJuly 26, 2026 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
"controls": [
{
"tag": "button",
@@ -10548,7 +11282,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -10561,10 +11295,10 @@
"targetDisabledAfter": false,
"networkSettled": true,
"after": {
- "at": 2765,
- "url": "http://127.0.0.1:37213/#/",
+ "at": 2797,
+ "url": "http://127.0.0.1:37223/#/",
"title": "Conduit",
- "domHash": "f16e71f9610b9322",
+ "domHash": "82970581dc3ba0ed",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -10576,9 +11310,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "a8b069a14856a893",
+ "textHash": "38646687161ebd53",
"visualHash": "efa2f7065933782f",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 Your Feed Global Feed Articles not available. Popular Tags RD_TEST_1DB90D_4RD_TEST_DA5A96_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER Your Feed Global Feed Articles not available. Popular Tags RD_TEST_F3F938_4RD_TEST_45949F_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
"controls": [
{
"tag": "button",
@@ -10616,7 +11350,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -10633,7 +11367,7 @@
"rows": [
{
"keyHash": "da7114755c3b82ba",
- "rowHash": "8a838f560ae73b56",
+ "rowHash": "a43fe358be8329c7",
"softDeleted": false
}
],
@@ -10644,9 +11378,85 @@
"resource": "users",
"schemaHash": "b7a8a911cd0fd4e9",
"rows": [
+ {
+ "keyHash": "186347d9ea7673a2",
+ "rowHash": "4d8311a4b9df0bbb",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "da7114755c3b82ba",
+ "rowHash": "39bd56af0b169023",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "84cf60166b2ca345",
+ "rowHash": "aa49653a67bcd399",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "9ef59241e15425e0",
+ "rowHash": "3343e1b012ad4f04",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "82a8445b12df5a29",
+ "rowHash": "db866c24a3538c63",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "667da1af4b45220f",
+ "rowHash": "5c8f98476fb3bfca",
+ "softDeleted": false
+ }
+ ],
+ "truncated": false
+ },
+ {
+ "adapter": "supabase",
+ "resource": "articles",
+ "schemaHash": "777de19e0eca5f66",
+ "rows": [
+ {
+ "keyHash": "da7114755c3b82ba",
+ "rowHash": "a43fe358be8329c7",
+ "softDeleted": false
+ }
+ ],
+ "truncated": false
+ },
+ {
+ "adapter": "supabase",
+ "resource": "users",
+ "schemaHash": "cd9a96cfad9b0bff",
+ "rows": [
+ {
+ "keyHash": "186347d9ea7673a2",
+ "rowHash": "4d8311a4b9df0bbb",
+ "softDeleted": false
+ },
{
"keyHash": "da7114755c3b82ba",
- "rowHash": "f1108a413122f589",
+ "rowHash": "39bd56af0b169023",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "84cf60166b2ca345",
+ "rowHash": "aa49653a67bcd399",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "9ef59241e15425e0",
+ "rowHash": "3343e1b012ad4f04",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "82a8445b12df5a29",
+ "rowHash": "db866c24a3538c63",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "667da1af4b45220f",
+ "rowHash": "5c8f98476fb3bfca",
"softDeleted": false
}
],
@@ -10654,12 +11464,11 @@
}
]
},
- "screenshot": "screenshots/49c799c46ed8-after.png",
"afterRefresh": {
- "at": 3914,
- "url": "http://127.0.0.1:37213/#/",
+ "at": 3932,
+ "url": "http://127.0.0.1:37223/#/",
"title": "Conduit",
- "domHash": "f16e71f9610b9322",
+ "domHash": "82970581dc3ba0ed",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -10671,9 +11480,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "a8b069a14856a893",
+ "textHash": "38646687161ebd53",
"visualHash": "efa2f7065933782f",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 Your Feed Global Feed Articles not available. Popular Tags RD_TEST_1DB90D_4RD_TEST_DA5A96_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER Your Feed Global Feed Articles not available. Popular Tags RD_TEST_F3F938_4RD_TEST_45949F_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
"controls": [
{
"tag": "button",
@@ -10711,7 +11520,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -10721,12 +11530,11 @@
"indexedDb": []
}
},
- "refreshScreenshot": "screenshots/49c799c46ed8-refresh.png",
"afterHardRefresh": {
- "at": 4862,
- "url": "http://127.0.0.1:37213/#/",
+ "at": 4861,
+ "url": "http://127.0.0.1:37223/#/",
"title": "Conduit",
- "domHash": "f16e71f9610b9322",
+ "domHash": "82970581dc3ba0ed",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -10738,9 +11546,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "a8b069a14856a893",
+ "textHash": "38646687161ebd53",
"visualHash": "efa2f7065933782f",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 Your Feed Global Feed Articles not available. Popular Tags RD_TEST_1DB90D_4RD_TEST_DA5A96_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER Your Feed Global Feed Articles not available. Popular Tags RD_TEST_F3F938_4RD_TEST_45949F_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
"controls": [
{
"tag": "button",
@@ -10778,7 +11586,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -10789,8 +11597,8 @@
}
},
"afterNewTab": {
- "at": 5852,
- "url": "http://127.0.0.1:37213/#/not-found",
+ "at": 5857,
+ "url": "http://127.0.0.1:37223/#/not-found",
"title": "Conduit",
"domHash": "cbdcb0acc42ff88a",
"canaryPresent": false,
@@ -10815,7 +11623,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -10826,10 +11634,10 @@
}
},
"afterNewContext": {
- "at": 7142,
- "url": "http://127.0.0.1:37213/#/",
+ "at": 7169,
+ "url": "http://127.0.0.1:37223/#/",
"title": "Conduit",
- "domHash": "f16e71f9610b9322",
+ "domHash": "82970581dc3ba0ed",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -10841,9 +11649,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "a8b069a14856a893",
+ "textHash": "38646687161ebd53",
"visualHash": "efa2f7065933782f",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 Your Feed Global Feed Articles not available. Popular Tags RD_TEST_1DB90D_4RD_TEST_DA5A96_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER Your Feed Global Feed Articles not available. Popular Tags RD_TEST_F3F938_4RD_TEST_45949F_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
"controls": [
{
"tag": "button",
@@ -10881,7 +11689,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -10919,6 +11727,26 @@
"changed": [],
"softDeleted": [],
"truncated": false
+ },
+ {
+ "adapter": "supabase",
+ "resource": "articles",
+ "added": [],
+ "removed": [
+ "186347d9ea7673a2"
+ ],
+ "changed": [],
+ "softDeleted": [],
+ "truncated": false
+ },
+ {
+ "adapter": "supabase",
+ "resource": "users",
+ "added": [],
+ "removed": [],
+ "changed": [],
+ "softDeleted": [],
+ "truncated": false
}
],
"sourceSnapshotErrors": [],
@@ -10933,8 +11761,8 @@
{
"id": "RD-021",
"action": {
- "id": "ed33d250c2e1",
- "pageUrl": "http://127.0.0.1:37213/#/article/rd-test-d97009-1",
+ "id": "87f3ade5fa76",
+ "pageUrl": "http://127.0.0.1:37223/#/article/rd-test-4cbb5d-1",
"label": "Delete Article",
"activation": "click",
"kind": "mutation",
@@ -10979,9 +11807,9 @@
"fields": []
},
"evidence": {
- "startedAt": "2026-07-26T11:02:19.483Z",
- "durationMs": 1986,
- "canary": "RD_TEST_E5464A",
+ "startedAt": "2026-07-26T12:22:02.620Z",
+ "durationMs": 1994,
+ "canary": "RD_TEST_654880",
"network": [],
"console": [],
"pageErrors": [],
@@ -10992,6 +11820,12 @@
"downloadEvidence": [],
"uploads": [],
"popupUrls": [],
+ "visualSuppressions": [
+ {
+ "artifact": "screenshot",
+ "reason": "authenticated-context"
+ }
+ ],
"targetNotFound": true,
"locatorResolution": {
"attempts": [
@@ -11007,7 +11841,7 @@
"weight": 82,
"matchCount": 0,
"visibleCount": 0,
- "elapsedMs": 2
+ "elapsedMs": 1
},
{
"strategy": "text",
@@ -11021,14 +11855,14 @@
"weight": 35,
"matchCount": 0,
"visibleCount": 0,
- "elapsedMs": 1
+ "elapsedMs": 2
},
{
"strategy": "role",
"weight": 92,
"matchCount": 0,
"visibleCount": 0,
- "elapsedMs": 3
+ "elapsedMs": 2
},
{
"strategy": "role",
@@ -11063,7 +11897,7 @@
"weight": 82,
"matchCount": 0,
"visibleCount": 0,
- "elapsedMs": 1
+ "elapsedMs": 2
},
{
"strategy": "text",
@@ -11083,7 +11917,6 @@
"retryCount": 2
},
"executionError": "No visible element matched the semantic fingerprint. The action was not executed.",
- "screenshot": "screenshots/ed33d250c2e1-error.png",
"traceSuppression": {
"artifact": "trace",
"reason": "secret-detected",
@@ -11110,6 +11943,24 @@
"changed": [],
"softDeleted": [],
"truncated": false
+ },
+ {
+ "adapter": "supabase",
+ "resource": "articles",
+ "added": [],
+ "removed": [],
+ "changed": [],
+ "softDeleted": [],
+ "truncated": false
+ },
+ {
+ "adapter": "supabase",
+ "resource": "users",
+ "added": [],
+ "removed": [],
+ "changed": [],
+ "softDeleted": [],
+ "truncated": false
}
],
"sourceSnapshotErrors": [],
@@ -11123,8 +11974,8 @@
{
"id": "RD-022",
"action": {
- "id": "51e8c444aa67",
- "pageUrl": "http://127.0.0.1:37213/#/article/rd-test-d97009-1",
+ "id": "7ee6766cffc7",
+ "pageUrl": "http://127.0.0.1:37223/#/article/rd-test-4cbb5d-1",
"label": "Source code",
"activation": "click",
"kind": "navigation",
@@ -11196,8 +12047,8 @@
{
"id": "RD-023",
"action": {
- "id": "ddb3e20b6534",
- "pageUrl": "http://127.0.0.1:37213/#/article/rd-test-d97009-1",
+ "id": "0a7e2dacea77",
+ "pageUrl": "http://127.0.0.1:37223/#/article/rd-test-4cbb5d-1",
"label": "Thinkster",
"activation": "click",
"kind": "navigation",
@@ -11269,8 +12120,8 @@
{
"id": "RD-024",
"action": {
- "id": "2cb5cd0f9fea",
- "pageUrl": "http://127.0.0.1:37213/#/article/rd-test-d97009-1",
+ "id": "8756e450c029",
+ "pageUrl": "http://127.0.0.1:37223/#/article/rd-test-4cbb5d-1",
"label": "Source code",
"activation": "click",
"kind": "navigation",
@@ -11342,8 +12193,8 @@
{
"id": "RD-025",
"action": {
- "id": "36a91b6a1f72",
- "pageUrl": "http://127.0.0.1:37213/",
+ "id": "dff655920243",
+ "pageUrl": "http://127.0.0.1:37223/",
"label": "Source code",
"activation": "click",
"kind": "navigation",
@@ -11415,8 +12266,8 @@
{
"id": "RD-026",
"action": {
- "id": "731b624cc34c",
- "pageUrl": "http://127.0.0.1:37213/",
+ "id": "d0d3611360e0",
+ "pageUrl": "http://127.0.0.1:37223/",
"label": "Thinkster",
"activation": "click",
"kind": "navigation",
@@ -11488,8 +12339,8 @@
{
"id": "RD-027",
"action": {
- "id": "c5063859c1ad",
- "pageUrl": "http://127.0.0.1:37213/",
+ "id": "aece598f17f5",
+ "pageUrl": "http://127.0.0.1:37223/",
"label": "Source code",
"activation": "click",
"kind": "navigation",
@@ -11561,9 +12412,9 @@
],
"environment": {
"status": "VALID",
- "checkedAt": "2026-07-26T11:01:04.154Z",
- "durationMs": 2641,
- "targetUrl": "http://127.0.0.1:37213/#/article/rd-test-d97009-1",
+ "checkedAt": "2026-07-26T12:20:47.452Z",
+ "durationMs": 2697,
+ "targetUrl": "http://127.0.0.1:37223/#/article/rd-test-4cbb5d-1",
"mainDocument": {
"status": 200,
"contentType": "text/html"
@@ -11575,7 +12426,7 @@
"failed": 0
},
"render": {
- "bodyTextLength": 366,
+ "bodyTextLength": 381,
"visibleElements": 72,
"interactiveElements": 19,
"ready": true
diff --git a/release/evidence/raw/conduit-postgres-update.scan.json b/release/evidence/raw/conduit-postgres-update.scan.json
index 1190ae6..d546f01 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": "20260726T105940Z-509e",
- "targetUrl": "http://127.0.0.1:37213/#/editor/rd-test-1db90d-1",
- "startedAt": "2026-07-26T10:59:40.202Z",
- "finishedAt": "2026-07-26T11:00:38.198Z",
+ "scanId": "20260726T121923Z-0a19",
+ "targetUrl": "http://127.0.0.1:37223/#/editor/rd-test-497c2f-1",
+ "startedAt": "2026-07-26T12:19:23.279Z",
+ "finishedAt": "2026-07-26T12:20:21.040Z",
"options": {
"maxPages": 3,
"maxActions": 50,
@@ -41,12 +41,12 @@
},
"pages": [
{
- "url": "http://127.0.0.1:37213/#/editor/rd-test-1db90d-1",
+ "url": "http://127.0.0.1:37223/#/editor/rd-test-497c2f-1",
"title": "Conduit",
"actions": [
{
- "id": "f55e6fed4b37",
- "pageUrl": "http://127.0.0.1:37213/#/editor/rd-test-1db90d-1",
+ "id": "c6f3618390bd",
+ "pageUrl": "http://127.0.0.1:37223/#/editor/rd-test-497c2f-1",
"label": "conduit",
"activation": "click",
"kind": "navigation",
@@ -59,7 +59,7 @@
"role": "link",
"accessibleName": "conduit",
"text": "conduit",
- "href": "http://127.0.0.1:37213/#/",
+ "href": "http://127.0.0.1:37223/#/",
"candidates": [
{
"strategy": "role",
@@ -78,7 +78,7 @@
{
"strategy": "href",
"weight": 72,
- "value": "http://127.0.0.1:37213/#/"
+ "value": "http://127.0.0.1:37223/#/"
},
{
"strategy": "text",
@@ -96,8 +96,8 @@
"fields": []
},
{
- "id": "992665d7b765",
- "pageUrl": "http://127.0.0.1:37213/#/editor/rd-test-1db90d-1",
+ "id": "ecbb56a1273c",
+ "pageUrl": "http://127.0.0.1:37223/#/editor/rd-test-497c2f-1",
"label": "Source code",
"activation": "click",
"kind": "navigation",
@@ -147,8 +147,8 @@
"fields": []
},
{
- "id": "c4d0c627d270",
- "pageUrl": "http://127.0.0.1:37213/#/editor/rd-test-1db90d-1",
+ "id": "b98dcce76544",
+ "pageUrl": "http://127.0.0.1:37223/#/editor/rd-test-497c2f-1",
"label": "Home",
"activation": "click",
"kind": "navigation",
@@ -161,7 +161,7 @@
"role": "link",
"accessibleName": "Home",
"text": "Home",
- "href": "http://127.0.0.1:37213/#/",
+ "href": "http://127.0.0.1:37223/#/",
"candidates": [
{
"strategy": "role",
@@ -180,7 +180,7 @@
{
"strategy": "href",
"weight": 72,
- "value": "http://127.0.0.1:37213/#/"
+ "value": "http://127.0.0.1:37223/#/"
},
{
"strategy": "text",
@@ -198,8 +198,8 @@
"fields": []
},
{
- "id": "ba3091508c94",
- "pageUrl": "http://127.0.0.1:37213/#/editor/rd-test-1db90d-1",
+ "id": "e55333794c5c",
+ "pageUrl": "http://127.0.0.1:37223/#/editor/rd-test-497c2f-1",
"label": "New Article",
"activation": "click",
"kind": "navigation",
@@ -212,7 +212,7 @@
"role": "link",
"accessibleName": "New Article",
"text": "New Article",
- "href": "http://127.0.0.1:37213/#/editor",
+ "href": "http://127.0.0.1:37223/#/editor",
"candidates": [
{
"strategy": "role",
@@ -231,7 +231,7 @@
{
"strategy": "href",
"weight": 72,
- "value": "http://127.0.0.1:37213/#/editor"
+ "value": "http://127.0.0.1:37223/#/editor"
},
{
"strategy": "text",
@@ -249,8 +249,8 @@
"fields": []
},
{
- "id": "a33068fbaae8",
- "pageUrl": "http://127.0.0.1:37213/#/editor/rd-test-1db90d-1",
+ "id": "37a2db3872a6",
+ "pageUrl": "http://127.0.0.1:37223/#/editor/rd-test-497c2f-1",
"label": "Update Article",
"activation": "submit",
"kind": "mutation",
@@ -284,7 +284,7 @@
"required": true,
"disabled": false,
"name": "title",
- "label": "RD_TEST_1DB90D_1",
+ "label": "RD_TEST_497C2F_1",
"placeholder": "Article Title"
},
{
@@ -294,7 +294,7 @@
"required": true,
"disabled": false,
"name": "description",
- "label": "RD_TEST_1DB90D_2",
+ "label": "RD_TEST_497C2F_2",
"placeholder": "What's this article about?"
},
{
@@ -313,14 +313,14 @@
"required": false,
"disabled": false,
"name": "tags",
- "label": "RD_TEST_1DB90D_4",
+ "label": "RD_TEST_F3F938_4",
"placeholder": "Enter tags"
}
]
},
{
- "id": "491cb9cc2566",
- "pageUrl": "http://127.0.0.1:37213/#/editor/rd-test-1db90d-1",
+ "id": "5bdab9ae6e65",
+ "pageUrl": "http://127.0.0.1:37223/#/editor/rd-test-497c2f-1",
"label": "conduit",
"activation": "click",
"kind": "navigation",
@@ -333,7 +333,7 @@
"role": "link",
"accessibleName": "conduit",
"text": "conduit",
- "href": "http://127.0.0.1:37213/#/",
+ "href": "http://127.0.0.1:37223/#/",
"candidates": [
{
"strategy": "role",
@@ -352,7 +352,7 @@
{
"strategy": "href",
"weight": 72,
- "value": "http://127.0.0.1:37213/#/"
+ "value": "http://127.0.0.1:37223/#/"
},
{
"strategy": "text",
@@ -370,8 +370,8 @@
"fields": []
},
{
- "id": "bba422159b08",
- "pageUrl": "http://127.0.0.1:37213/#/editor/rd-test-1db90d-1",
+ "id": "4293b867b579",
+ "pageUrl": "http://127.0.0.1:37223/#/editor/rd-test-497c2f-1",
"label": "Thinkster",
"activation": "click",
"kind": "navigation",
@@ -421,8 +421,8 @@
"fields": []
},
{
- "id": "c146986c5ac9",
- "pageUrl": "http://127.0.0.1:37213/#/editor/rd-test-1db90d-1",
+ "id": "8651bc066e40",
+ "pageUrl": "http://127.0.0.1:37223/#/editor/rd-test-497c2f-1",
"label": "Source code",
"activation": "click",
"kind": "navigation",
@@ -474,12 +474,12 @@
]
},
{
- "url": "http://127.0.0.1:37213/",
+ "url": "http://127.0.0.1:37223/",
"title": "Conduit",
"actions": [
{
- "id": "a0147c56db57",
- "pageUrl": "http://127.0.0.1:37213/",
+ "id": "92446496b665",
+ "pageUrl": "http://127.0.0.1:37223/",
"label": "conduit",
"activation": "click",
"kind": "navigation",
@@ -492,7 +492,7 @@
"role": "link",
"accessibleName": "conduit",
"text": "conduit",
- "href": "http://127.0.0.1:37213/#/",
+ "href": "http://127.0.0.1:37223/#/",
"candidates": [
{
"strategy": "role",
@@ -511,7 +511,7 @@
{
"strategy": "href",
"weight": 72,
- "value": "http://127.0.0.1:37213/#/"
+ "value": "http://127.0.0.1:37223/#/"
},
{
"strategy": "text",
@@ -529,8 +529,8 @@
"fields": []
},
{
- "id": "36a91b6a1f72",
- "pageUrl": "http://127.0.0.1:37213/",
+ "id": "dff655920243",
+ "pageUrl": "http://127.0.0.1:37223/",
"label": "Source code",
"activation": "click",
"kind": "navigation",
@@ -580,8 +580,8 @@
"fields": []
},
{
- "id": "63ad14060515",
- "pageUrl": "http://127.0.0.1:37213/",
+ "id": "3800f03bc706",
+ "pageUrl": "http://127.0.0.1:37223/",
"label": "Home",
"activation": "click",
"kind": "navigation",
@@ -594,7 +594,7 @@
"role": "link",
"accessibleName": "Home",
"text": "Home",
- "href": "http://127.0.0.1:37213/#/",
+ "href": "http://127.0.0.1:37223/#/",
"candidates": [
{
"strategy": "role",
@@ -613,7 +613,7 @@
{
"strategy": "href",
"weight": 72,
- "value": "http://127.0.0.1:37213/#/"
+ "value": "http://127.0.0.1:37223/#/"
},
{
"strategy": "text",
@@ -631,8 +631,8 @@
"fields": []
},
{
- "id": "2b6be7d79a5f",
- "pageUrl": "http://127.0.0.1:37213/",
+ "id": "c88ed7554ce5",
+ "pageUrl": "http://127.0.0.1:37223/",
"label": "New Article",
"activation": "click",
"kind": "navigation",
@@ -645,7 +645,7 @@
"role": "link",
"accessibleName": "New Article",
"text": "New Article",
- "href": "http://127.0.0.1:37213/#/editor",
+ "href": "http://127.0.0.1:37223/#/editor",
"candidates": [
{
"strategy": "role",
@@ -664,7 +664,7 @@
{
"strategy": "href",
"weight": 72,
- "value": "http://127.0.0.1:37213/#/editor"
+ "value": "http://127.0.0.1:37223/#/editor"
},
{
"strategy": "text",
@@ -682,8 +682,8 @@
"fields": []
},
{
- "id": "b6f0b8724ae3",
- "pageUrl": "http://127.0.0.1:37213/",
+ "id": "d61ab1459de8",
+ "pageUrl": "http://127.0.0.1:37223/",
"label": "Your Feed",
"activation": "click",
"kind": "local",
@@ -728,8 +728,8 @@
"fields": []
},
{
- "id": "98ade3898516",
- "pageUrl": "http://127.0.0.1:37213/",
+ "id": "a69f66f3ce86",
+ "pageUrl": "http://127.0.0.1:37223/",
"label": "Global Feed",
"activation": "click",
"kind": "local",
@@ -774,9 +774,9 @@
"fields": []
},
{
- "id": "a2758003a662",
- "pageUrl": "http://127.0.0.1:37213/",
- "label": "RD_TEST_1DB90D_4",
+ "id": "80706f2de1a4",
+ "pageUrl": "http://127.0.0.1:37223/",
+ "label": "RD_TEST_F3F938_4",
"activation": "click",
"kind": "local",
"intent": "interact",
@@ -786,28 +786,28 @@
"tag": "button",
"ordinal": 6,
"role": "button",
- "accessibleName": "RD_TEST_1DB90D_4",
- "text": "RD_TEST_1DB90D_4",
+ "accessibleName": "RD_TEST_F3F938_4",
+ "text": "RD_TEST_F3F938_4",
"type": "submit",
"candidates": [
{
"strategy": "role",
"weight": 92,
"role": "button",
- "name": "RD_TEST_1DB90D_4",
+ "name": "RD_TEST_F3F938_4",
"exact": true
},
{
"strategy": "role",
"weight": 82,
"role": "button",
- "name": "RD_TEST_1DB90D_4",
+ "name": "RD_TEST_F3F938_4",
"exact": false
},
{
"strategy": "text",
"weight": 60,
- "value": "RD_TEST_1DB90D_4",
+ "value": "RD_TEST_F3F938_4",
"exact": true
},
{
@@ -820,8 +820,8 @@
"fields": []
},
{
- "id": "60e12226e19d",
- "pageUrl": "http://127.0.0.1:37213/",
+ "id": "9d442a70bdcb",
+ "pageUrl": "http://127.0.0.1:37223/",
"label": "conduit",
"activation": "click",
"kind": "navigation",
@@ -834,7 +834,7 @@
"role": "link",
"accessibleName": "conduit",
"text": "conduit",
- "href": "http://127.0.0.1:37213/#/",
+ "href": "http://127.0.0.1:37223/#/",
"candidates": [
{
"strategy": "role",
@@ -853,7 +853,7 @@
{
"strategy": "href",
"weight": 72,
- "value": "http://127.0.0.1:37213/#/"
+ "value": "http://127.0.0.1:37223/#/"
},
{
"strategy": "text",
@@ -871,8 +871,8 @@
"fields": []
},
{
- "id": "731b624cc34c",
- "pageUrl": "http://127.0.0.1:37213/",
+ "id": "d0d3611360e0",
+ "pageUrl": "http://127.0.0.1:37223/",
"label": "Thinkster",
"activation": "click",
"kind": "navigation",
@@ -922,8 +922,8 @@
"fields": []
},
{
- "id": "c5063859c1ad",
- "pageUrl": "http://127.0.0.1:37213/",
+ "id": "aece598f17f5",
+ "pageUrl": "http://127.0.0.1:37223/",
"label": "Source code",
"activation": "click",
"kind": "navigation",
@@ -975,12 +975,12 @@
]
},
{
- "url": "http://127.0.0.1:37213/#/editor",
+ "url": "http://127.0.0.1:37223/#/editor",
"title": "Conduit",
"actions": [
{
- "id": "4240ac8c9986",
- "pageUrl": "http://127.0.0.1:37213/#/editor",
+ "id": "1bf42ddc57a0",
+ "pageUrl": "http://127.0.0.1:37223/#/editor",
"label": "conduit",
"activation": "click",
"kind": "navigation",
@@ -993,7 +993,7 @@
"role": "link",
"accessibleName": "conduit",
"text": "conduit",
- "href": "http://127.0.0.1:37213/#/",
+ "href": "http://127.0.0.1:37223/#/",
"candidates": [
{
"strategy": "role",
@@ -1012,7 +1012,7 @@
{
"strategy": "href",
"weight": 72,
- "value": "http://127.0.0.1:37213/#/"
+ "value": "http://127.0.0.1:37223/#/"
},
{
"strategy": "text",
@@ -1030,8 +1030,8 @@
"fields": []
},
{
- "id": "cf7f7e055d50",
- "pageUrl": "http://127.0.0.1:37213/#/editor",
+ "id": "d26ff438143d",
+ "pageUrl": "http://127.0.0.1:37223/#/editor",
"label": "Source code",
"activation": "click",
"kind": "navigation",
@@ -1081,8 +1081,8 @@
"fields": []
},
{
- "id": "b2ce5788ac2d",
- "pageUrl": "http://127.0.0.1:37213/#/editor",
+ "id": "53cf74a707f5",
+ "pageUrl": "http://127.0.0.1:37223/#/editor",
"label": "Home",
"activation": "click",
"kind": "navigation",
@@ -1095,7 +1095,7 @@
"role": "link",
"accessibleName": "Home",
"text": "Home",
- "href": "http://127.0.0.1:37213/#/",
+ "href": "http://127.0.0.1:37223/#/",
"candidates": [
{
"strategy": "role",
@@ -1114,7 +1114,7 @@
{
"strategy": "href",
"weight": 72,
- "value": "http://127.0.0.1:37213/#/"
+ "value": "http://127.0.0.1:37223/#/"
},
{
"strategy": "text",
@@ -1132,8 +1132,8 @@
"fields": []
},
{
- "id": "38dd0a454d48",
- "pageUrl": "http://127.0.0.1:37213/#/editor",
+ "id": "f33e20a1aa27",
+ "pageUrl": "http://127.0.0.1:37223/#/editor",
"label": "New Article",
"activation": "click",
"kind": "navigation",
@@ -1146,7 +1146,7 @@
"role": "link",
"accessibleName": "New Article",
"text": "New Article",
- "href": "http://127.0.0.1:37213/#/editor",
+ "href": "http://127.0.0.1:37223/#/editor",
"candidates": [
{
"strategy": "role",
@@ -1165,7 +1165,7 @@
{
"strategy": "href",
"weight": 72,
- "value": "http://127.0.0.1:37213/#/editor"
+ "value": "http://127.0.0.1:37223/#/editor"
},
{
"strategy": "text",
@@ -1183,8 +1183,8 @@
"fields": []
},
{
- "id": "b725edd599a8",
- "pageUrl": "http://127.0.0.1:37213/#/editor",
+ "id": "a6522be0fc1d",
+ "pageUrl": "http://127.0.0.1:37223/#/editor",
"label": "Publish Article",
"activation": "submit",
"kind": "mutation",
@@ -1250,8 +1250,8 @@
]
},
{
- "id": "615ef8bfaf91",
- "pageUrl": "http://127.0.0.1:37213/#/editor",
+ "id": "663211a5be23",
+ "pageUrl": "http://127.0.0.1:37223/#/editor",
"label": "conduit",
"activation": "click",
"kind": "navigation",
@@ -1264,7 +1264,7 @@
"role": "link",
"accessibleName": "conduit",
"text": "conduit",
- "href": "http://127.0.0.1:37213/#/",
+ "href": "http://127.0.0.1:37223/#/",
"candidates": [
{
"strategy": "role",
@@ -1283,7 +1283,7 @@
{
"strategy": "href",
"weight": 72,
- "value": "http://127.0.0.1:37213/#/"
+ "value": "http://127.0.0.1:37223/#/"
},
{
"strategy": "text",
@@ -1301,8 +1301,8 @@
"fields": []
},
{
- "id": "955bb7c4ae7a",
- "pageUrl": "http://127.0.0.1:37213/#/editor",
+ "id": "7c82bc9fd8ce",
+ "pageUrl": "http://127.0.0.1:37223/#/editor",
"label": "Thinkster",
"activation": "click",
"kind": "navigation",
@@ -1352,8 +1352,8 @@
"fields": []
},
{
- "id": "865611a40b7e",
- "pageUrl": "http://127.0.0.1:37213/#/editor",
+ "id": "ab9bf2cd0dfb",
+ "pageUrl": "http://127.0.0.1:37223/#/editor",
"label": "Source code",
"activation": "click",
"kind": "navigation",
@@ -1409,8 +1409,8 @@
{
"id": "RD-001",
"action": {
- "id": "f55e6fed4b37",
- "pageUrl": "http://127.0.0.1:37213/#/editor/rd-test-1db90d-1",
+ "id": "c6f3618390bd",
+ "pageUrl": "http://127.0.0.1:37223/#/editor/rd-test-497c2f-1",
"label": "conduit",
"activation": "click",
"kind": "navigation",
@@ -1423,7 +1423,7 @@
"role": "link",
"accessibleName": "conduit",
"text": "conduit",
- "href": "http://127.0.0.1:37213/#/",
+ "href": "http://127.0.0.1:37223/#/",
"candidates": [
{
"strategy": "role",
@@ -1442,7 +1442,7 @@
{
"strategy": "href",
"weight": 72,
- "value": "http://127.0.0.1:37213/#/"
+ "value": "http://127.0.0.1:37223/#/"
},
{
"strategy": "text",
@@ -1460,31 +1460,31 @@
"fields": []
},
"evidence": {
- "startedAt": "2026-07-26T10:59:47.629Z",
- "durationMs": 2517,
- "canary": "RD_TEST_150A3F",
+ "startedAt": "2026-07-26T12:19:30.787Z",
+ "durationMs": 2534,
+ "canary": "RD_TEST_2CE141",
"network": [
{
"id": "net-1",
"method": "GET",
- "url": "http://127.0.0.1:37213/api/articles/feed?limit=3&&offset=0",
+ "url": "http://127.0.0.1:37223/api/articles/feed?limit=3&&offset=0",
"resourceType": "xhr",
- "startedAt": 1561,
+ "startedAt": 1559,
"status": 200,
"ok": true,
- "finishedAt": 1567,
+ "finishedAt": 1566,
"contentType": "application/json",
"resourceTypeHint": "feed"
},
{
"id": "net-2",
"method": "GET",
- "url": "http://127.0.0.1:37213/api/tags",
+ "url": "http://127.0.0.1:37223/api/tags",
"resourceType": "xhr",
- "startedAt": 1561,
+ "startedAt": 1560,
"status": 200,
"ok": true,
- "finishedAt": 1566,
+ "finishedAt": 1564,
"contentType": "application/json",
"resourceTypeHint": "tags"
}
@@ -1498,6 +1498,12 @@
"downloadEvidence": [],
"uploads": [],
"popupUrls": [],
+ "visualSuppressions": [
+ {
+ "artifact": "screenshot",
+ "reason": "authenticated-context"
+ }
+ ],
"locatorResolution": {
"attempts": [
{
@@ -1512,7 +1518,7 @@
"weight": 82,
"matchCount": 2,
"visibleCount": 2,
- "elapsedMs": 7
+ "elapsedMs": 6
},
{
"strategy": "href",
@@ -1533,7 +1539,7 @@
"weight": 35,
"matchCount": 1,
"visibleCount": 1,
- "elapsedMs": 4
+ "elapsedMs": 5
}
],
"chosenStrategy": "css",
@@ -1541,10 +1547,10 @@
"retryCount": 0
},
"before": {
- "at": 1523,
- "url": "http://127.0.0.1:37213/#/editor/rd-test-1db90d-1",
+ "at": 1516,
+ "url": "http://127.0.0.1:37223/#/editor/rd-test-497c2f-1",
"title": "Conduit",
- "domHash": "8822866c80e08994",
+ "domHash": "5867e018f2185758",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -1556,15 +1562,15 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "3d23bd88be98cc02",
+ "textHash": "e17c5fa668856e91",
"visualHash": "b85410fa0ea5a358",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 Update Article conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER Update Article conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
"controls": [
{
"tag": "input",
"type": "text",
"name": "title",
- "valueHash": "b1e6e711a6234597",
+ "valueHash": "ad1b28d6d044eea2",
"checked": false,
"disabled": false,
"visible": true
@@ -1573,7 +1579,7 @@
"tag": "input",
"type": "text",
"name": "description",
- "valueHash": "b88339d960a264a0",
+ "valueHash": "68ff9e5e4c3ea2cf",
"checked": false,
"disabled": false,
"visible": true
@@ -1582,7 +1588,7 @@
"tag": "textarea",
"type": "textarea",
"name": "body",
- "valueHash": "576c4815d7a09b26",
+ "valueHash": "d6e752b790aa51b6",
"disabled": false,
"visible": true
},
@@ -1590,7 +1596,7 @@
"tag": "input",
"type": "text",
"name": "tags",
- "valueHash": "77ae5c6394cae14e",
+ "valueHash": "9b3570f9ddf845d4",
"checked": false,
"disabled": false,
"visible": true
@@ -1610,7 +1616,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -1621,10 +1627,10 @@
}
},
"beforeAction": {
- "at": 1533,
- "url": "http://127.0.0.1:37213/#/editor/rd-test-1db90d-1",
+ "at": 1527,
+ "url": "http://127.0.0.1:37223/#/editor/rd-test-497c2f-1",
"title": "Conduit",
- "domHash": "8822866c80e08994",
+ "domHash": "5867e018f2185758",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -1636,15 +1642,15 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "3d23bd88be98cc02",
+ "textHash": "e17c5fa668856e91",
"visualHash": "b85410fa0ea5a358",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 Update Article conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER Update Article conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
"controls": [
{
"tag": "input",
"type": "text",
"name": "title",
- "valueHash": "b1e6e711a6234597",
+ "valueHash": "ad1b28d6d044eea2",
"checked": false,
"disabled": false,
"visible": true
@@ -1653,7 +1659,7 @@
"tag": "input",
"type": "text",
"name": "description",
- "valueHash": "b88339d960a264a0",
+ "valueHash": "68ff9e5e4c3ea2cf",
"checked": false,
"disabled": false,
"visible": true
@@ -1662,7 +1668,7 @@
"tag": "textarea",
"type": "textarea",
"name": "body",
- "valueHash": "576c4815d7a09b26",
+ "valueHash": "d6e752b790aa51b6",
"disabled": false,
"visible": true
},
@@ -1670,7 +1676,7 @@
"tag": "input",
"type": "text",
"name": "tags",
- "valueHash": "77ae5c6394cae14e",
+ "valueHash": "9b3570f9ddf845d4",
"checked": false,
"disabled": false,
"visible": true
@@ -1690,7 +1696,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -1703,10 +1709,10 @@
"networkSettled": true,
"targetBusyAfter": false,
"after": {
- "at": 2513,
- "url": "http://127.0.0.1:37213/#/",
+ "at": 2529,
+ "url": "http://127.0.0.1:37223/#/",
"title": "Conduit",
- "domHash": "a2c5dd8fb3c76cc2",
+ "domHash": "09a0c2dcd70a0114",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -1718,9 +1724,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "259817bb48ae635b",
+ "textHash": "b0238cc5ff984bef",
"visualHash": "72ad38eb67085423",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 Your Feed Global Feed Articles not available. Popular Tags RD_TEST_1DB90D_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER Your Feed Global Feed Articles not available. Popular Tags RD_TEST_F3F938_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
"controls": [
{
"tag": "button",
@@ -1751,7 +1757,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -1779,8 +1785,8 @@
{
"id": "RD-002",
"action": {
- "id": "c4d0c627d270",
- "pageUrl": "http://127.0.0.1:37213/#/editor/rd-test-1db90d-1",
+ "id": "b98dcce76544",
+ "pageUrl": "http://127.0.0.1:37223/#/editor/rd-test-497c2f-1",
"label": "Home",
"activation": "click",
"kind": "navigation",
@@ -1793,7 +1799,7 @@
"role": "link",
"accessibleName": "Home",
"text": "Home",
- "href": "http://127.0.0.1:37213/#/",
+ "href": "http://127.0.0.1:37223/#/",
"candidates": [
{
"strategy": "role",
@@ -1812,7 +1818,7 @@
{
"strategy": "href",
"weight": 72,
- "value": "http://127.0.0.1:37213/#/"
+ "value": "http://127.0.0.1:37223/#/"
},
{
"strategy": "text",
@@ -1830,31 +1836,31 @@
"fields": []
},
"evidence": {
- "startedAt": "2026-07-26T10:59:50.218Z",
- "durationMs": 2491,
- "canary": "RD_TEST_DE328D",
+ "startedAt": "2026-07-26T12:19:33.382Z",
+ "durationMs": 2517,
+ "canary": "RD_TEST_E90118",
"network": [
{
"id": "net-1",
"method": "GET",
- "url": "http://127.0.0.1:37213/api/articles/feed?limit=3&&offset=0",
+ "url": "http://127.0.0.1:37223/api/articles/feed?limit=3&&offset=0",
"resourceType": "xhr",
- "startedAt": 1520,
+ "startedAt": 1532,
"status": 200,
"ok": true,
- "finishedAt": 1526,
+ "finishedAt": 1539,
"contentType": "application/json",
"resourceTypeHint": "feed"
},
{
"id": "net-2",
"method": "GET",
- "url": "http://127.0.0.1:37213/api/tags",
+ "url": "http://127.0.0.1:37223/api/tags",
"resourceType": "xhr",
- "startedAt": 1520,
+ "startedAt": 1533,
"status": 200,
"ok": true,
- "finishedAt": 1525,
+ "finishedAt": 1538,
"contentType": "application/json",
"resourceTypeHint": "tags"
}
@@ -1868,6 +1874,12 @@
"downloadEvidence": [],
"uploads": [],
"popupUrls": [],
+ "visualSuppressions": [
+ {
+ "artifact": "screenshot",
+ "reason": "authenticated-context"
+ }
+ ],
"locatorResolution": {
"attempts": [
{
@@ -1890,10 +1902,10 @@
"retryCount": 0
},
"before": {
- "at": 1475,
- "url": "http://127.0.0.1:37213/#/editor/rd-test-1db90d-1",
+ "at": 1497,
+ "url": "http://127.0.0.1:37223/#/editor/rd-test-497c2f-1",
"title": "Conduit",
- "domHash": "8822866c80e08994",
+ "domHash": "5867e018f2185758",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -1905,15 +1917,15 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "3d23bd88be98cc02",
+ "textHash": "e17c5fa668856e91",
"visualHash": "b85410fa0ea5a358",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 Update Article conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER Update Article conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
"controls": [
{
"tag": "input",
"type": "text",
"name": "title",
- "valueHash": "b1e6e711a6234597",
+ "valueHash": "ad1b28d6d044eea2",
"checked": false,
"disabled": false,
"visible": true
@@ -1922,7 +1934,7 @@
"tag": "input",
"type": "text",
"name": "description",
- "valueHash": "b88339d960a264a0",
+ "valueHash": "68ff9e5e4c3ea2cf",
"checked": false,
"disabled": false,
"visible": true
@@ -1931,7 +1943,7 @@
"tag": "textarea",
"type": "textarea",
"name": "body",
- "valueHash": "576c4815d7a09b26",
+ "valueHash": "d6e752b790aa51b6",
"disabled": false,
"visible": true
},
@@ -1939,7 +1951,7 @@
"tag": "input",
"type": "text",
"name": "tags",
- "valueHash": "77ae5c6394cae14e",
+ "valueHash": "9b3570f9ddf845d4",
"checked": false,
"disabled": false,
"visible": true
@@ -1959,7 +1971,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -1970,10 +1982,10 @@
}
},
"beforeAction": {
- "at": 1484,
- "url": "http://127.0.0.1:37213/#/editor/rd-test-1db90d-1",
+ "at": 1507,
+ "url": "http://127.0.0.1:37223/#/editor/rd-test-497c2f-1",
"title": "Conduit",
- "domHash": "8822866c80e08994",
+ "domHash": "5867e018f2185758",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -1985,15 +1997,15 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "3d23bd88be98cc02",
+ "textHash": "e17c5fa668856e91",
"visualHash": "b85410fa0ea5a358",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 Update Article conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER Update Article conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
"controls": [
{
"tag": "input",
"type": "text",
"name": "title",
- "valueHash": "b1e6e711a6234597",
+ "valueHash": "ad1b28d6d044eea2",
"checked": false,
"disabled": false,
"visible": true
@@ -2002,7 +2014,7 @@
"tag": "input",
"type": "text",
"name": "description",
- "valueHash": "b88339d960a264a0",
+ "valueHash": "68ff9e5e4c3ea2cf",
"checked": false,
"disabled": false,
"visible": true
@@ -2011,7 +2023,7 @@
"tag": "textarea",
"type": "textarea",
"name": "body",
- "valueHash": "576c4815d7a09b26",
+ "valueHash": "d6e752b790aa51b6",
"disabled": false,
"visible": true
},
@@ -2019,7 +2031,7 @@
"tag": "input",
"type": "text",
"name": "tags",
- "valueHash": "77ae5c6394cae14e",
+ "valueHash": "9b3570f9ddf845d4",
"checked": false,
"disabled": false,
"visible": true
@@ -2039,7 +2051,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -2052,10 +2064,10 @@
"networkSettled": true,
"targetBusyAfter": false,
"after": {
- "at": 2487,
- "url": "http://127.0.0.1:37213/#/",
+ "at": 2512,
+ "url": "http://127.0.0.1:37223/#/",
"title": "Conduit",
- "domHash": "a2c5dd8fb3c76cc2",
+ "domHash": "09a0c2dcd70a0114",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -2067,9 +2079,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "259817bb48ae635b",
+ "textHash": "b0238cc5ff984bef",
"visualHash": "72ad38eb67085423",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 Your Feed Global Feed Articles not available. Popular Tags RD_TEST_1DB90D_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER Your Feed Global Feed Articles not available. Popular Tags RD_TEST_F3F938_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
"controls": [
{
"tag": "button",
@@ -2100,7 +2112,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -2128,8 +2140,8 @@
{
"id": "RD-003",
"action": {
- "id": "ba3091508c94",
- "pageUrl": "http://127.0.0.1:37213/#/editor/rd-test-1db90d-1",
+ "id": "e55333794c5c",
+ "pageUrl": "http://127.0.0.1:37223/#/editor/rd-test-497c2f-1",
"label": "New Article",
"activation": "click",
"kind": "navigation",
@@ -2142,7 +2154,7 @@
"role": "link",
"accessibleName": "New Article",
"text": "New Article",
- "href": "http://127.0.0.1:37213/#/editor",
+ "href": "http://127.0.0.1:37223/#/editor",
"candidates": [
{
"strategy": "role",
@@ -2161,7 +2173,7 @@
{
"strategy": "href",
"weight": 72,
- "value": "http://127.0.0.1:37213/#/editor"
+ "value": "http://127.0.0.1:37223/#/editor"
},
{
"strategy": "text",
@@ -2179,9 +2191,9 @@
"fields": []
},
"evidence": {
- "startedAt": "2026-07-26T10:59:52.761Z",
- "durationMs": 2481,
- "canary": "RD_TEST_DDFCE6",
+ "startedAt": "2026-07-26T12:19:35.928Z",
+ "durationMs": 2477,
+ "canary": "RD_TEST_15DA89",
"network": [],
"console": [],
"pageErrors": [],
@@ -2192,6 +2204,12 @@
"downloadEvidence": [],
"uploads": [],
"popupUrls": [],
+ "visualSuppressions": [
+ {
+ "artifact": "screenshot",
+ "reason": "authenticated-context"
+ }
+ ],
"locatorResolution": {
"attempts": [
{
@@ -2206,7 +2224,7 @@
"weight": 82,
"matchCount": 1,
"visibleCount": 1,
- "elapsedMs": 4
+ "elapsedMs": 5
}
],
"chosenStrategy": "role",
@@ -2214,10 +2232,10 @@
"retryCount": 0
},
"before": {
- "at": 1466,
- "url": "http://127.0.0.1:37213/#/editor/rd-test-1db90d-1",
+ "at": 1467,
+ "url": "http://127.0.0.1:37223/#/editor/rd-test-497c2f-1",
"title": "Conduit",
- "domHash": "8822866c80e08994",
+ "domHash": "5867e018f2185758",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -2229,15 +2247,15 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "3d23bd88be98cc02",
+ "textHash": "e17c5fa668856e91",
"visualHash": "b85410fa0ea5a358",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 Update Article conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER Update Article conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
"controls": [
{
"tag": "input",
"type": "text",
"name": "title",
- "valueHash": "b1e6e711a6234597",
+ "valueHash": "ad1b28d6d044eea2",
"checked": false,
"disabled": false,
"visible": true
@@ -2246,7 +2264,7 @@
"tag": "input",
"type": "text",
"name": "description",
- "valueHash": "b88339d960a264a0",
+ "valueHash": "68ff9e5e4c3ea2cf",
"checked": false,
"disabled": false,
"visible": true
@@ -2255,7 +2273,7 @@
"tag": "textarea",
"type": "textarea",
"name": "body",
- "valueHash": "576c4815d7a09b26",
+ "valueHash": "d6e752b790aa51b6",
"disabled": false,
"visible": true
},
@@ -2263,7 +2281,7 @@
"tag": "input",
"type": "text",
"name": "tags",
- "valueHash": "77ae5c6394cae14e",
+ "valueHash": "9b3570f9ddf845d4",
"checked": false,
"disabled": false,
"visible": true
@@ -2283,7 +2301,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -2294,10 +2312,10 @@
}
},
"beforeAction": {
- "at": 1480,
- "url": "http://127.0.0.1:37213/#/editor/rd-test-1db90d-1",
+ "at": 1477,
+ "url": "http://127.0.0.1:37223/#/editor/rd-test-497c2f-1",
"title": "Conduit",
- "domHash": "8822866c80e08994",
+ "domHash": "5867e018f2185758",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -2309,15 +2327,15 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "3d23bd88be98cc02",
+ "textHash": "e17c5fa668856e91",
"visualHash": "b85410fa0ea5a358",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 Update Article conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER Update Article conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
"controls": [
{
"tag": "input",
"type": "text",
"name": "title",
- "valueHash": "b1e6e711a6234597",
+ "valueHash": "ad1b28d6d044eea2",
"checked": false,
"disabled": false,
"visible": true
@@ -2326,7 +2344,7 @@
"tag": "input",
"type": "text",
"name": "description",
- "valueHash": "b88339d960a264a0",
+ "valueHash": "68ff9e5e4c3ea2cf",
"checked": false,
"disabled": false,
"visible": true
@@ -2335,7 +2353,7 @@
"tag": "textarea",
"type": "textarea",
"name": "body",
- "valueHash": "576c4815d7a09b26",
+ "valueHash": "d6e752b790aa51b6",
"disabled": false,
"visible": true
},
@@ -2343,7 +2361,7 @@
"tag": "input",
"type": "text",
"name": "tags",
- "valueHash": "77ae5c6394cae14e",
+ "valueHash": "9b3570f9ddf845d4",
"checked": false,
"disabled": false,
"visible": true
@@ -2363,7 +2381,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -2376,10 +2394,10 @@
"networkSettled": true,
"targetBusyAfter": false,
"after": {
- "at": 2477,
- "url": "http://127.0.0.1:37213/#/editor",
+ "at": 2473,
+ "url": "http://127.0.0.1:37223/#/editor",
"title": "Conduit",
- "domHash": "25121aa0be44bdb5",
+ "domHash": "c936833dbedd7df2",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -2391,9 +2409,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "e43f8008221f4f9e",
+ "textHash": "d0c4b4fdb77a11e9",
"visualHash": "b85410fa0ea5a358",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 Publish Article conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER Publish Article conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
"controls": [
{
"tag": "input",
@@ -2445,7 +2463,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -2473,8 +2491,8 @@
{
"id": "RD-004",
"action": {
- "id": "a33068fbaae8",
- "pageUrl": "http://127.0.0.1:37213/#/editor/rd-test-1db90d-1",
+ "id": "37a2db3872a6",
+ "pageUrl": "http://127.0.0.1:37223/#/editor/rd-test-497c2f-1",
"label": "Update Article",
"activation": "submit",
"kind": "mutation",
@@ -2508,7 +2526,7 @@
"required": true,
"disabled": false,
"name": "title",
- "label": "RD_TEST_1DB90D_1",
+ "label": "RD_TEST_497C2F_1",
"placeholder": "Article Title"
},
{
@@ -2518,7 +2536,7 @@
"required": true,
"disabled": false,
"name": "description",
- "label": "RD_TEST_1DB90D_2",
+ "label": "RD_TEST_497C2F_2",
"placeholder": "What's this article about?"
},
{
@@ -2537,97 +2555,97 @@
"required": false,
"disabled": false,
"name": "tags",
- "label": "RD_TEST_1DB90D_4",
+ "label": "RD_TEST_F3F938_4",
"placeholder": "Enter tags"
}
]
},
"evidence": {
- "startedAt": "2026-07-26T10:59:55.330Z",
- "durationMs": 7191,
- "canary": "RD_TEST_D97009",
+ "startedAt": "2026-07-26T12:19:38.517Z",
+ "durationMs": 7141,
+ "canary": "RD_TEST_4CBB5D",
"network": [
{
"id": "net-1",
"method": "PUT",
- "url": "http://127.0.0.1:37213/api/articles/rd-test-1db90d-1",
+ "url": "http://127.0.0.1:37223/api/articles/rd-test-497c2f-1",
"resourceType": "xhr",
- "startedAt": 1564,
+ "startedAt": 1636,
"status": 200,
"ok": true,
- "finishedAt": 1576,
+ "finishedAt": 1660,
"contentType": "application/json",
- "resourceTypeHint": "rd-test-1db90d-1"
+ "resourceTypeHint": "rd-test-497c2f-1"
},
{
"id": "net-2",
"method": "GET",
"url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwlxdu.woff2",
"resourceType": "font",
- "startedAt": 1583,
+ "startedAt": 1669,
"status": 200,
"ok": true,
- "finishedAt": 1632,
+ "finishedAt": 1719,
"contentType": "font/woff2",
"resourceTypeHint": "6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwlxdu.woff2"
},
{
"id": "net-3",
"method": "GET",
- "url": "http://127.0.0.1:37213/api/articles/rd-test-d97009-1/comments",
+ "url": "http://127.0.0.1:37223/api/articles/rd-test-4cbb5d-1/comments",
"resourceType": "xhr",
- "startedAt": 1584,
+ "startedAt": 1670,
"status": 200,
"ok": true,
- "finishedAt": 1590,
+ "finishedAt": 1677,
"contentType": "application/json",
"resourceTypeHint": "comments"
},
{
"id": "net-4",
"method": "GET",
- "url": "http://127.0.0.1:37213/api/articles/rd-test-d97009-1",
+ "url": "http://127.0.0.1:37223/api/articles/rd-test-4cbb5d-1",
"resourceType": "xhr",
- "startedAt": 1585,
+ "startedAt": 1671,
"status": 200,
"ok": true,
- "finishedAt": 1593,
+ "finishedAt": 1681,
"contentType": "application/json",
- "resourceTypeHint": "rd-test-d97009-1"
+ "resourceTypeHint": "rd-test-4cbb5d-1"
},
{
"id": "net-5",
"method": "GET",
"url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwlxdu.woff2",
"resourceType": "font",
- "startedAt": 1609,
+ "startedAt": 1698,
"status": 200,
"ok": true,
- "finishedAt": 1656,
+ "finishedAt": 1747,
"contentType": "font/woff2",
"resourceTypeHint": "6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwlxdu.woff2"
},
{
"id": "net-6",
"method": "GET",
- "url": "http://127.0.0.1:37213/",
+ "url": "http://127.0.0.1:37223/",
"resourceType": "document",
- "startedAt": 2708,
+ "startedAt": 2779,
"status": 200,
"ok": true,
"contentType": "text/html",
"resourceTypeHint": "resource",
- "finishedAt": 2717
+ "finishedAt": 2787
},
{
"id": "net-7",
"method": "GET",
"url": "http://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css",
"resourceType": "stylesheet",
- "startedAt": 2716,
+ "startedAt": 2786,
"status": 307,
"ok": false,
- "finishedAt": 2719,
+ "finishedAt": 2789,
"location": "https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css",
"resourceTypeHint": "ionicons.min.css"
},
@@ -2636,46 +2654,46 @@
"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": 2716,
+ "startedAt": 2786,
"status": 200,
"ok": true,
- "finishedAt": 2753,
+ "finishedAt": 2829,
"contentType": "text/css",
"resourceTypeHint": "css"
},
{
"id": "net-9",
"method": "GET",
- "url": "http://127.0.0.1:37213/assets/index-CLdavoKn.js",
+ "url": "http://127.0.0.1:37223/assets/index-CLdavoKn.js",
"resourceType": "script",
- "startedAt": 2716,
+ "startedAt": 2786,
"status": 200,
"ok": true,
- "finishedAt": 2729,
+ "finishedAt": 2800,
"contentType": "text/javascript",
"resourceTypeHint": "index-CLdavoKn.js"
},
{
"id": "net-10",
"method": "GET",
- "url": "http://127.0.0.1:37213/assets/index-De1Lwdlm.css",
+ "url": "http://127.0.0.1:37223/assets/index-De1Lwdlm.css",
"resourceType": "stylesheet",
- "startedAt": 2716,
+ "startedAt": 2786,
"status": 200,
"ok": true,
+ "finishedAt": 2792,
"contentType": "text/css",
- "resourceTypeHint": "index-De1Lwdlm.css",
- "finishedAt": 2722
+ "resourceTypeHint": "index-De1Lwdlm.css"
},
{
"id": "net-11",
"method": "GET",
"url": "https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css",
"resourceType": "stylesheet",
- "startedAt": 2719,
+ "startedAt": 2789,
"status": 200,
"ok": true,
- "finishedAt": 3035,
+ "finishedAt": 3071,
"contentType": "text/css",
"resourceTypeHint": "ionicons.min.css"
},
@@ -2684,10 +2702,10 @@
"method": "GET",
"url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdu.woff2",
"resourceType": "font",
- "startedAt": 3046,
+ "startedAt": 3081,
"status": 200,
"ok": true,
- "finishedAt": 3093,
+ "finishedAt": 3128,
"contentType": "font/woff2",
"resourceTypeHint": "6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdu.woff2"
},
@@ -2696,10 +2714,10 @@
"method": "GET",
"url": "https://code.ionicframework.com/ionicons/2.0.1/fonts/ionicons.ttf?v=2.0.1",
"resourceType": "font",
- "startedAt": 3046,
+ "startedAt": 3082,
"status": 200,
"ok": true,
- "finishedAt": 3159,
+ "finishedAt": 3194,
"contentType": "font/ttf",
"resourceTypeHint": "ionicons.ttf"
},
@@ -2708,10 +2726,10 @@
"method": "GET",
"url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7l.woff2",
"resourceType": "font",
- "startedAt": 3047,
+ "startedAt": 3083,
"status": 200,
"ok": true,
- "finishedAt": 3098,
+ "finishedAt": 3134,
"contentType": "font/woff2",
"resourceTypeHint": "6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7l.woff2"
},
@@ -2720,10 +2738,10 @@
"method": "GET",
"url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwlxdu.woff2",
"resourceType": "font",
- "startedAt": 3047,
+ "startedAt": 3083,
"status": 200,
"ok": true,
- "finishedAt": 3092,
+ "finishedAt": 3129,
"contentType": "font/woff2",
"resourceTypeHint": "6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwlxdu.woff2"
},
@@ -2732,82 +2750,82 @@
"method": "GET",
"url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7nsDI.woff2",
"resourceType": "font",
- "startedAt": 3048,
+ "startedAt": 3084,
"status": 200,
"ok": true,
- "finishedAt": 3146,
+ "finishedAt": 3180,
"contentType": "font/woff2",
"resourceTypeHint": "6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7nsDI.woff2"
},
{
"id": "net-17",
"method": "GET",
- "url": "http://127.0.0.1:37213/api/articles/rd-test-d97009-1/comments",
+ "url": "http://127.0.0.1:37223/api/articles/rd-test-4cbb5d-1/comments",
"resourceType": "xhr",
- "startedAt": 3049,
+ "startedAt": 3088,
"status": 200,
"ok": true,
- "finishedAt": 3058,
+ "finishedAt": 3096,
"contentType": "application/json",
"resourceTypeHint": "comments"
},
{
"id": "net-18",
"method": "GET",
- "url": "http://127.0.0.1:37213/api/articles/rd-test-d97009-1",
+ "url": "http://127.0.0.1:37223/api/articles/rd-test-4cbb5d-1",
"resourceType": "xhr",
- "startedAt": 3050,
+ "startedAt": 3088,
"status": 200,
"ok": true,
- "finishedAt": 3061,
+ "finishedAt": 3101,
"contentType": "application/json",
- "resourceTypeHint": "rd-test-d97009-1"
+ "resourceTypeHint": "rd-test-4cbb5d-1"
},
{
"id": "net-19",
"method": "GET",
- "url": "http://127.0.0.1:37213/api/user",
+ "url": "http://127.0.0.1:37223/api/user",
"resourceType": "xhr",
- "startedAt": 3050,
+ "startedAt": 3089,
"status": 200,
"ok": true,
"contentType": "application/json",
"resourceTypeHint": "user",
- "finishedAt": 3057
+ "finishedAt": 3096
},
{
"id": "net-20",
"method": "GET",
"url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwlxdu.woff2",
"resourceType": "font",
- "startedAt": 3065,
+ "startedAt": 3106,
"status": 200,
"ok": true,
- "finishedAt": 3134,
+ "finishedAt": 3170,
"contentType": "font/woff2",
"resourceTypeHint": "6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwlxdu.woff2"
},
{
"id": "net-21",
"method": "GET",
- "url": "http://127.0.0.1:37213/",
+ "url": "http://127.0.0.1:37223/",
"resourceType": "document",
- "startedAt": 3933,
+ "startedAt": 3905,
"status": 200,
"ok": true,
"contentType": "text/html",
"resourceTypeHint": "resource",
- "finishedAt": 3941
+ "finishedAt": 3913
},
{
"id": "net-22",
"method": "GET",
"url": "http://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css",
"resourceType": "stylesheet",
- "startedAt": 3939,
+ "startedAt": 3911,
"status": 307,
"ok": false,
- "finishedAt": 3942,
+ "finishedAt": 3914,
"location": "https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css",
"resourceTypeHint": "ionicons.min.css"
},
@@ -2816,46 +2834,46 @@
"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": 3940,
+ "startedAt": 3912,
"status": 200,
"ok": true,
- "finishedAt": 3979,
+ "finishedAt": 3961,
"contentType": "text/css",
"resourceTypeHint": "css"
},
{
"id": "net-24",
"method": "GET",
- "url": "http://127.0.0.1:37213/assets/index-CLdavoKn.js",
+ "url": "http://127.0.0.1:37223/assets/index-CLdavoKn.js",
"resourceType": "script",
- "startedAt": 3940,
+ "startedAt": 3912,
"status": 200,
"ok": true,
- "finishedAt": 3953,
+ "finishedAt": 3947,
"contentType": "text/javascript",
"resourceTypeHint": "index-CLdavoKn.js"
},
{
"id": "net-25",
"method": "GET",
- "url": "http://127.0.0.1:37213/assets/index-De1Lwdlm.css",
+ "url": "http://127.0.0.1:37223/assets/index-De1Lwdlm.css",
"resourceType": "stylesheet",
- "startedAt": 3940,
+ "startedAt": 3912,
"status": 200,
"ok": true,
"contentType": "text/css",
"resourceTypeHint": "index-De1Lwdlm.css",
- "finishedAt": 3945
+ "finishedAt": 3917
},
{
"id": "net-26",
"method": "GET",
"url": "https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css",
"resourceType": "stylesheet",
- "startedAt": 3942,
+ "startedAt": 3914,
"status": 200,
"ok": true,
- "finishedAt": 4033,
+ "finishedAt": 3990,
"contentType": "text/css",
"resourceTypeHint": "ionicons.min.css"
},
@@ -2864,10 +2882,10 @@
"method": "GET",
"url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdu.woff2",
"resourceType": "font",
- "startedAt": 4045,
+ "startedAt": 4002,
"status": 200,
"ok": true,
- "finishedAt": 4099,
+ "finishedAt": 4048,
"contentType": "font/woff2",
"resourceTypeHint": "6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdu.woff2"
},
@@ -2876,10 +2894,10 @@
"method": "GET",
"url": "https://code.ionicframework.com/ionicons/2.0.1/fonts/ionicons.ttf?v=2.0.1",
"resourceType": "font",
- "startedAt": 4045,
+ "startedAt": 4003,
"status": 200,
"ok": true,
- "finishedAt": 4163,
+ "finishedAt": 4106,
"contentType": "font/ttf",
"resourceTypeHint": "ionicons.ttf"
},
@@ -2888,10 +2906,10 @@
"method": "GET",
"url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7l.woff2",
"resourceType": "font",
- "startedAt": 4045,
+ "startedAt": 4003,
"status": 200,
"ok": true,
- "finishedAt": 4096,
+ "finishedAt": 4051,
"contentType": "font/woff2",
"resourceTypeHint": "6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7l.woff2"
},
@@ -2900,10 +2918,10 @@
"method": "GET",
"url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwlxdu.woff2",
"resourceType": "font",
- "startedAt": 4046,
+ "startedAt": 4003,
"status": 200,
"ok": true,
- "finishedAt": 4101,
+ "finishedAt": 4054,
"contentType": "font/woff2",
"resourceTypeHint": "6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwlxdu.woff2"
},
@@ -2912,46 +2930,46 @@
"method": "GET",
"url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7nsDI.woff2",
"resourceType": "font",
- "startedAt": 4046,
+ "startedAt": 4004,
"status": 200,
"ok": true,
- "finishedAt": 4100,
+ "finishedAt": 4051,
"contentType": "font/woff2",
"resourceTypeHint": "6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7nsDI.woff2"
},
{
"id": "net-32",
"method": "GET",
- "url": "http://127.0.0.1:37213/api/articles/rd-test-d97009-1/comments",
+ "url": "http://127.0.0.1:37223/api/articles/rd-test-4cbb5d-1/comments",
"resourceType": "xhr",
- "startedAt": 4053,
+ "startedAt": 4006,
"status": 200,
"ok": true,
- "finishedAt": 4060,
+ "finishedAt": 4015,
"contentType": "application/json",
"resourceTypeHint": "comments"
},
{
"id": "net-33",
"method": "GET",
- "url": "http://127.0.0.1:37213/api/articles/rd-test-d97009-1",
+ "url": "http://127.0.0.1:37223/api/articles/rd-test-4cbb5d-1",
"resourceType": "xhr",
- "startedAt": 4053,
+ "startedAt": 4007,
"status": 200,
"ok": true,
- "finishedAt": 4065,
+ "finishedAt": 4020,
"contentType": "application/json",
- "resourceTypeHint": "rd-test-d97009-1"
+ "resourceTypeHint": "rd-test-4cbb5d-1"
},
{
"id": "net-34",
"method": "GET",
- "url": "http://127.0.0.1:37213/api/user",
+ "url": "http://127.0.0.1:37223/api/user",
"resourceType": "xhr",
- "startedAt": 4053,
+ "startedAt": 4008,
"status": 200,
"ok": true,
- "finishedAt": 4058,
+ "finishedAt": 4013,
"contentType": "application/json",
"resourceTypeHint": "user"
},
@@ -2960,10 +2978,10 @@
"method": "GET",
"url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwlxdu.woff2",
"resourceType": "font",
- "startedAt": 4067,
+ "startedAt": 4028,
"status": 200,
"ok": true,
- "finishedAt": 4133,
+ "finishedAt": 4093,
"contentType": "font/woff2",
"resourceTypeHint": "6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwlxdu.woff2"
}
@@ -2976,28 +2994,28 @@
"selector": "body > div > main > div > div > div > div > form > fieldset > fieldset:nth-of-type(1) > input",
"name": "title",
"type": "text",
- "value": "RD_TEST_D97009_1",
+ "value": "RD_TEST_4CBB5D_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_D97009_2",
+ "value": "RD_TEST_4CBB5D_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_D97009_3",
+ "value": "RD_TEST_4CBB5D_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_D97009_4",
+ "value": "RD_TEST_4CBB5D_4",
"redacted": false
}
],
@@ -3006,6 +3024,12 @@
"downloadEvidence": [],
"uploads": [],
"popupUrls": [],
+ "visualSuppressions": [
+ {
+ "artifact": "screenshot",
+ "reason": "authenticated-context"
+ }
+ ],
"locatorResolution": {
"attempts": [
{
@@ -3013,7 +3037,7 @@
"weight": 60,
"matchCount": 1,
"visibleCount": 1,
- "elapsedMs": 4
+ "elapsedMs": 5
}
],
"chosenStrategy": "text",
@@ -3021,10 +3045,10 @@
"retryCount": 0
},
"before": {
- "at": 1456,
- "url": "http://127.0.0.1:37213/#/editor/rd-test-1db90d-1",
+ "at": 1527,
+ "url": "http://127.0.0.1:37223/#/editor/rd-test-497c2f-1",
"title": "Conduit",
- "domHash": "8822866c80e08994",
+ "domHash": "5867e018f2185758",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -3036,15 +3060,15 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "3d23bd88be98cc02",
+ "textHash": "e17c5fa668856e91",
"visualHash": "b85410fa0ea5a358",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 Update Article conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER Update Article conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
"controls": [
{
"tag": "input",
"type": "text",
"name": "title",
- "valueHash": "b1e6e711a6234597",
+ "valueHash": "ad1b28d6d044eea2",
"checked": false,
"disabled": false,
"visible": true
@@ -3053,7 +3077,7 @@
"tag": "input",
"type": "text",
"name": "description",
- "valueHash": "b88339d960a264a0",
+ "valueHash": "68ff9e5e4c3ea2cf",
"checked": false,
"disabled": false,
"visible": true
@@ -3062,7 +3086,7 @@
"tag": "textarea",
"type": "textarea",
"name": "body",
- "valueHash": "576c4815d7a09b26",
+ "valueHash": "d6e752b790aa51b6",
"disabled": false,
"visible": true
},
@@ -3070,7 +3094,7 @@
"tag": "input",
"type": "text",
"name": "tags",
- "valueHash": "77ae5c6394cae14e",
+ "valueHash": "9b3570f9ddf845d4",
"checked": false,
"disabled": false,
"visible": true
@@ -3090,7 +3114,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -3107,7 +3131,7 @@
"rows": [
{
"keyHash": "186347d9ea7673a2",
- "rowHash": "39c9ca19e186f10d",
+ "rowHash": "e08d60723963559f",
"softDeleted": false
}
],
@@ -3118,9 +3142,85 @@
"resource": "users",
"schemaHash": "b7a8a911cd0fd4e9",
"rows": [
+ {
+ "keyHash": "186347d9ea7673a2",
+ "rowHash": "4d8311a4b9df0bbb",
+ "softDeleted": false
+ },
{
"keyHash": "da7114755c3b82ba",
- "rowHash": "f1108a413122f589",
+ "rowHash": "39bd56af0b169023",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "84cf60166b2ca345",
+ "rowHash": "aa49653a67bcd399",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "9ef59241e15425e0",
+ "rowHash": "3343e1b012ad4f04",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "82a8445b12df5a29",
+ "rowHash": "db866c24a3538c63",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "667da1af4b45220f",
+ "rowHash": "5c8f98476fb3bfca",
+ "softDeleted": false
+ }
+ ],
+ "truncated": false
+ },
+ {
+ "adapter": "supabase",
+ "resource": "articles",
+ "schemaHash": "777de19e0eca5f66",
+ "rows": [
+ {
+ "keyHash": "186347d9ea7673a2",
+ "rowHash": "e08d60723963559f",
+ "softDeleted": false
+ }
+ ],
+ "truncated": false
+ },
+ {
+ "adapter": "supabase",
+ "resource": "users",
+ "schemaHash": "cd9a96cfad9b0bff",
+ "rows": [
+ {
+ "keyHash": "186347d9ea7673a2",
+ "rowHash": "4d8311a4b9df0bbb",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "da7114755c3b82ba",
+ "rowHash": "39bd56af0b169023",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "84cf60166b2ca345",
+ "rowHash": "aa49653a67bcd399",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "9ef59241e15425e0",
+ "rowHash": "3343e1b012ad4f04",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "82a8445b12df5a29",
+ "rowHash": "db866c24a3538c63",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "667da1af4b45220f",
+ "rowHash": "5c8f98476fb3bfca",
"softDeleted": false
}
],
@@ -3129,10 +3229,10 @@
]
},
"beforeAction": {
- "at": 1513,
- "url": "http://127.0.0.1:37213/#/editor/rd-test-1db90d-1",
+ "at": 1585,
+ "url": "http://127.0.0.1:37223/#/editor/rd-test-497c2f-1",
"title": "Conduit",
- "domHash": "2a87529da1b01dbd",
+ "domHash": "fb0f148e0262a52d",
"canaryPresent": true,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -3144,15 +3244,15 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "3d23bd88be98cc02",
+ "textHash": "e17c5fa668856e91",
"visualHash": "b85410fa0ea5a358",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 Update Article conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER Update Article conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
"controls": [
{
"tag": "input",
"type": "text",
"name": "title",
- "valueHash": "bb8b2867d2490613",
+ "valueHash": "63a60e1888a32b7e",
"checked": false,
"disabled": false,
"visible": true
@@ -3161,7 +3261,7 @@
"tag": "input",
"type": "text",
"name": "description",
- "valueHash": "d6bf36bb39a2b742",
+ "valueHash": "67d21f750d5684dd",
"checked": false,
"disabled": false,
"visible": true
@@ -3170,7 +3270,7 @@
"tag": "textarea",
"type": "textarea",
"name": "body",
- "valueHash": "4a1a708e19ade686",
+ "valueHash": "6424bfab43262088",
"disabled": false,
"visible": true
},
@@ -3178,7 +3278,7 @@
"tag": "input",
"type": "text",
"name": "tags",
- "valueHash": "4fa2bfacc87dc2f7",
+ "valueHash": "345b2bdf40d8a3d5",
"checked": false,
"disabled": false,
"visible": true
@@ -3198,7 +3298,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -3212,10 +3312,10 @@
"networkSettled": true,
"targetBusyAfter": false,
"after": {
- "at": 2633,
- "url": "http://127.0.0.1:37213/#/article/rd-test-d97009-1",
+ "at": 2720,
+ "url": "http://127.0.0.1:37223/#/article/rd-test-4cbb5d-1",
"title": "Conduit",
- "domHash": "a5fd021e38a35f59",
+ "domHash": "c816d12e48c21b02",
"canaryPresent": true,
"bodyCanaryPresent": true,
"temporaryBlobUrls": 0,
@@ -3227,9 +3327,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "4fc22202d903e566",
+ "textHash": "f602366b1479175d",
"visualHash": "471347ba69eaf940",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 RD_TEST_D97009_1 RD_TEST_AFDF00_1 July 26, 2026 Delete Article Edit Article RD_TEST_D97009_3 RD_TEST_1DB90D_4 RD_TEST_AFDF00_1 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",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER RD_TEST_4CBB5D_1 RD_PHASE_K_CRUD_OWNER July 26, 2026 Delete Article Edit Article RD_TEST_4CBB5D_3 RD_TEST_F3F938_4 RD_PHASE_K_CRUD_OWNER 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",
@@ -3281,7 +3381,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -3298,7 +3398,7 @@
"rows": [
{
"keyHash": "186347d9ea7673a2",
- "rowHash": "0d57a14d8f768e38",
+ "rowHash": "513a00e32394f4c2",
"softDeleted": false
}
],
@@ -3309,9 +3409,85 @@
"resource": "users",
"schemaHash": "b7a8a911cd0fd4e9",
"rows": [
+ {
+ "keyHash": "186347d9ea7673a2",
+ "rowHash": "4d8311a4b9df0bbb",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "da7114755c3b82ba",
+ "rowHash": "39bd56af0b169023",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "84cf60166b2ca345",
+ "rowHash": "aa49653a67bcd399",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "9ef59241e15425e0",
+ "rowHash": "3343e1b012ad4f04",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "82a8445b12df5a29",
+ "rowHash": "db866c24a3538c63",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "667da1af4b45220f",
+ "rowHash": "5c8f98476fb3bfca",
+ "softDeleted": false
+ }
+ ],
+ "truncated": false
+ },
+ {
+ "adapter": "supabase",
+ "resource": "articles",
+ "schemaHash": "777de19e0eca5f66",
+ "rows": [
+ {
+ "keyHash": "186347d9ea7673a2",
+ "rowHash": "513a00e32394f4c2",
+ "softDeleted": false
+ }
+ ],
+ "truncated": false
+ },
+ {
+ "adapter": "supabase",
+ "resource": "users",
+ "schemaHash": "cd9a96cfad9b0bff",
+ "rows": [
+ {
+ "keyHash": "186347d9ea7673a2",
+ "rowHash": "4d8311a4b9df0bbb",
+ "softDeleted": false
+ },
{
"keyHash": "da7114755c3b82ba",
- "rowHash": "f1108a413122f589",
+ "rowHash": "39bd56af0b169023",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "84cf60166b2ca345",
+ "rowHash": "aa49653a67bcd399",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "9ef59241e15425e0",
+ "rowHash": "3343e1b012ad4f04",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "82a8445b12df5a29",
+ "rowHash": "db866c24a3538c63",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "667da1af4b45220f",
+ "rowHash": "5c8f98476fb3bfca",
"softDeleted": false
}
],
@@ -3319,9 +3495,8 @@
}
]
},
- "screenshot": "screenshots/a33068fbaae8-after.png",
"apiReadBack": {
- "url": "http://127.0.0.1:37213/api/articles/rd-test-1db90d-1",
+ "url": "http://127.0.0.1:37223/api/articles/rd-test-497c2f-1",
"status": 404,
"ok": false,
"canaryPresent": false,
@@ -3329,10 +3504,10 @@
"matchedFieldValues": 0
},
"afterRefresh": {
- "at": 3872,
- "url": "http://127.0.0.1:37213/#/article/rd-test-d97009-1",
+ "at": 3902,
+ "url": "http://127.0.0.1:37223/#/article/rd-test-4cbb5d-1",
"title": "Conduit",
- "domHash": "a5fd021e38a35f59",
+ "domHash": "c816d12e48c21b02",
"canaryPresent": true,
"bodyCanaryPresent": true,
"temporaryBlobUrls": 0,
@@ -3344,9 +3519,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "4fc22202d903e566",
+ "textHash": "f602366b1479175d",
"visualHash": "471347ba69eaf940",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 RD_TEST_D97009_1 RD_TEST_AFDF00_1 July 26, 2026 Delete Article Edit Article RD_TEST_D97009_3 RD_TEST_1DB90D_4 RD_TEST_AFDF00_1 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",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER RD_TEST_4CBB5D_1 RD_PHASE_K_CRUD_OWNER July 26, 2026 Delete Article Edit Article RD_TEST_4CBB5D_3 RD_TEST_F3F938_4 RD_PHASE_K_CRUD_OWNER 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",
@@ -3398,7 +3573,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -3408,12 +3583,11 @@
"indexedDb": []
}
},
- "refreshScreenshot": "screenshots/a33068fbaae8-refresh.png",
"afterHardRefresh": {
- "at": 4875,
- "url": "http://127.0.0.1:37213/#/article/rd-test-d97009-1",
+ "at": 4833,
+ "url": "http://127.0.0.1:37223/#/article/rd-test-4cbb5d-1",
"title": "Conduit",
- "domHash": "a5fd021e38a35f59",
+ "domHash": "c816d12e48c21b02",
"canaryPresent": true,
"bodyCanaryPresent": true,
"temporaryBlobUrls": 0,
@@ -3425,9 +3599,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "4fc22202d903e566",
+ "textHash": "f602366b1479175d",
"visualHash": "471347ba69eaf940",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 RD_TEST_D97009_1 RD_TEST_AFDF00_1 July 26, 2026 Delete Article Edit Article RD_TEST_D97009_3 RD_TEST_1DB90D_4 RD_TEST_AFDF00_1 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",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER RD_TEST_4CBB5D_1 RD_PHASE_K_CRUD_OWNER July 26, 2026 Delete Article Edit Article RD_TEST_4CBB5D_3 RD_TEST_F3F938_4 RD_PHASE_K_CRUD_OWNER 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",
@@ -3479,7 +3653,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -3490,10 +3664,10 @@
}
},
"afterNewTab": {
- "at": 5884,
- "url": "http://127.0.0.1:37213/#/editor/rd-test-1db90d-1",
+ "at": 5828,
+ "url": "http://127.0.0.1:37223/#/editor/rd-test-497c2f-1",
"title": "Conduit",
- "domHash": "22aaa9329ca89c3d",
+ "domHash": "fbd8fc6dee7fc9dc",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -3505,9 +3679,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "3d23bd88be98cc02",
+ "textHash": "e17c5fa668856e91",
"visualHash": "b85410fa0ea5a358",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 Update Article conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER Update Article conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
"controls": [
{
"tag": "input",
@@ -3559,7 +3733,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -3570,10 +3744,10 @@
}
},
"afterNewContext": {
- "at": 7188,
- "url": "http://127.0.0.1:37213/#/article/rd-test-d97009-1",
+ "at": 7139,
+ "url": "http://127.0.0.1:37223/#/article/rd-test-4cbb5d-1",
"title": "Conduit",
- "domHash": "a5fd021e38a35f59",
+ "domHash": "c816d12e48c21b02",
"canaryPresent": true,
"bodyCanaryPresent": true,
"temporaryBlobUrls": 0,
@@ -3585,9 +3759,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "4fc22202d903e566",
+ "textHash": "f602366b1479175d",
"visualHash": "471347ba69eaf940",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 RD_TEST_D97009_1 RD_TEST_AFDF00_1 July 26, 2026 Delete Article Edit Article RD_TEST_D97009_3 RD_TEST_1DB90D_4 RD_TEST_AFDF00_1 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",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER RD_TEST_4CBB5D_1 RD_PHASE_K_CRUD_OWNER July 26, 2026 Delete Article Edit Article RD_TEST_4CBB5D_3 RD_TEST_F3F938_4 RD_PHASE_K_CRUD_OWNER 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",
@@ -3639,7 +3813,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -3678,6 +3852,26 @@
"changed": [],
"softDeleted": [],
"truncated": false
+ },
+ {
+ "adapter": "supabase",
+ "resource": "articles",
+ "added": [],
+ "removed": [],
+ "changed": [
+ "186347d9ea7673a2"
+ ],
+ "softDeleted": [],
+ "truncated": false
+ },
+ {
+ "adapter": "supabase",
+ "resource": "users",
+ "added": [],
+ "removed": [],
+ "changed": [],
+ "softDeleted": [],
+ "truncated": false
}
],
"sourceSnapshotErrors": [],
@@ -3691,8 +3885,8 @@
{
"id": "RD-005",
"action": {
- "id": "491cb9cc2566",
- "pageUrl": "http://127.0.0.1:37213/#/editor/rd-test-1db90d-1",
+ "id": "5bdab9ae6e65",
+ "pageUrl": "http://127.0.0.1:37223/#/editor/rd-test-497c2f-1",
"label": "conduit",
"activation": "click",
"kind": "navigation",
@@ -3705,7 +3899,7 @@
"role": "link",
"accessibleName": "conduit",
"text": "conduit",
- "href": "http://127.0.0.1:37213/#/",
+ "href": "http://127.0.0.1:37223/#/",
"candidates": [
{
"strategy": "role",
@@ -3724,7 +3918,7 @@
{
"strategy": "href",
"weight": 72,
- "value": "http://127.0.0.1:37213/#/"
+ "value": "http://127.0.0.1:37223/#/"
},
{
"strategy": "text",
@@ -3742,31 +3936,31 @@
"fields": []
},
"evidence": {
- "startedAt": "2026-07-26T11:00:02.643Z",
- "durationMs": 2537,
- "canary": "RD_TEST_29F813",
+ "startedAt": "2026-07-26T12:19:45.755Z",
+ "durationMs": 2532,
+ "canary": "RD_TEST_2808D3",
"network": [
{
"id": "net-1",
"method": "GET",
- "url": "http://127.0.0.1:37213/api/articles/feed?limit=3&&offset=0",
+ "url": "http://127.0.0.1:37223/api/articles/feed?limit=3&&offset=0",
"resourceType": "xhr",
- "startedAt": 1563,
+ "startedAt": 1543,
"status": 200,
"ok": true,
- "finishedAt": 1569,
+ "finishedAt": 1550,
"contentType": "application/json",
"resourceTypeHint": "feed"
},
{
"id": "net-2",
"method": "GET",
- "url": "http://127.0.0.1:37213/api/tags",
+ "url": "http://127.0.0.1:37223/api/tags",
"resourceType": "xhr",
- "startedAt": 1564,
+ "startedAt": 1544,
"status": 200,
"ok": true,
- "finishedAt": 1568,
+ "finishedAt": 1549,
"contentType": "application/json",
"resourceTypeHint": "tags"
}
@@ -3780,6 +3974,12 @@
"downloadEvidence": [],
"uploads": [],
"popupUrls": [],
+ "visualSuppressions": [
+ {
+ "artifact": "screenshot",
+ "reason": "authenticated-context"
+ }
+ ],
"locatorResolution": {
"attempts": [
{
@@ -3787,14 +3987,14 @@
"weight": 92,
"matchCount": 2,
"visibleCount": 2,
- "elapsedMs": 7
+ "elapsedMs": 8
},
{
"strategy": "role",
"weight": 82,
"matchCount": 2,
"visibleCount": 2,
- "elapsedMs": 6
+ "elapsedMs": 7
},
{
"strategy": "href",
@@ -3815,7 +4015,7 @@
"weight": 35,
"matchCount": 1,
"visibleCount": 1,
- "elapsedMs": 4
+ "elapsedMs": 5
}
],
"chosenStrategy": "css",
@@ -3823,10 +4023,10 @@
"retryCount": 0
},
"before": {
- "at": 1523,
- "url": "http://127.0.0.1:37213/#/editor/rd-test-1db90d-1",
+ "at": 1505,
+ "url": "http://127.0.0.1:37223/#/editor/rd-test-497c2f-1",
"title": "Conduit",
- "domHash": "22aaa9329ca89c3d",
+ "domHash": "fbd8fc6dee7fc9dc",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -3838,9 +4038,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "3d23bd88be98cc02",
+ "textHash": "e17c5fa668856e91",
"visualHash": "b85410fa0ea5a358",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 Update Article conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER Update Article conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
"controls": [
{
"tag": "input",
@@ -3892,7 +4092,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -3903,10 +4103,10 @@
}
},
"beforeAction": {
- "at": 1532,
- "url": "http://127.0.0.1:37213/#/editor/rd-test-1db90d-1",
+ "at": 1514,
+ "url": "http://127.0.0.1:37223/#/editor/rd-test-497c2f-1",
"title": "Conduit",
- "domHash": "22aaa9329ca89c3d",
+ "domHash": "fbd8fc6dee7fc9dc",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -3918,9 +4118,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "3d23bd88be98cc02",
+ "textHash": "e17c5fa668856e91",
"visualHash": "b85410fa0ea5a358",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 Update Article conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER Update Article conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
"controls": [
{
"tag": "input",
@@ -3972,7 +4172,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -3985,10 +4185,10 @@
"networkSettled": true,
"targetBusyAfter": false,
"after": {
- "at": 2533,
- "url": "http://127.0.0.1:37213/#/",
+ "at": 2528,
+ "url": "http://127.0.0.1:37223/#/",
"title": "Conduit",
- "domHash": "a2c5dd8fb3c76cc2",
+ "domHash": "09a0c2dcd70a0114",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -4000,9 +4200,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "259817bb48ae635b",
+ "textHash": "b0238cc5ff984bef",
"visualHash": "72ad38eb67085423",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 Your Feed Global Feed Articles not available. Popular Tags RD_TEST_1DB90D_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER Your Feed Global Feed Articles not available. Popular Tags RD_TEST_F3F938_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
"controls": [
{
"tag": "button",
@@ -4033,7 +4233,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -4061,8 +4261,8 @@
{
"id": "RD-006",
"action": {
- "id": "a0147c56db57",
- "pageUrl": "http://127.0.0.1:37213/",
+ "id": "92446496b665",
+ "pageUrl": "http://127.0.0.1:37223/",
"label": "conduit",
"activation": "click",
"kind": "navigation",
@@ -4075,7 +4275,7 @@
"role": "link",
"accessibleName": "conduit",
"text": "conduit",
- "href": "http://127.0.0.1:37213/#/",
+ "href": "http://127.0.0.1:37223/#/",
"candidates": [
{
"strategy": "role",
@@ -4094,7 +4294,7 @@
{
"strategy": "href",
"weight": 72,
- "value": "http://127.0.0.1:37213/#/"
+ "value": "http://127.0.0.1:37223/#/"
},
{
"strategy": "text",
@@ -4112,9 +4312,9 @@
"fields": []
},
"evidence": {
- "startedAt": "2026-07-26T11:00:05.215Z",
- "durationMs": 2529,
- "canary": "RD_TEST_C4321E",
+ "startedAt": "2026-07-26T12:19:48.314Z",
+ "durationMs": 2570,
+ "canary": "RD_TEST_5E92F0",
"network": [],
"console": [],
"pageErrors": [],
@@ -4125,6 +4325,12 @@
"downloadEvidence": [],
"uploads": [],
"popupUrls": [],
+ "visualSuppressions": [
+ {
+ "artifact": "screenshot",
+ "reason": "authenticated-context"
+ }
+ ],
"locatorResolution": {
"attempts": [
{
@@ -4132,7 +4338,7 @@
"weight": 92,
"matchCount": 2,
"visibleCount": 2,
- "elapsedMs": 7
+ "elapsedMs": 9
},
{
"strategy": "role",
@@ -4146,21 +4352,21 @@
"weight": 72,
"matchCount": 0,
"visibleCount": 0,
- "elapsedMs": 2
+ "elapsedMs": 3
},
{
"strategy": "text",
"weight": 60,
"matchCount": 2,
"visibleCount": 2,
- "elapsedMs": 6
+ "elapsedMs": 7
},
{
"strategy": "css",
"weight": 35,
"matchCount": 1,
"visibleCount": 1,
- "elapsedMs": 3
+ "elapsedMs": 5
}
],
"chosenStrategy": "css",
@@ -4168,10 +4374,10 @@
"retryCount": 0
},
"before": {
- "at": 1526,
- "url": "http://127.0.0.1:37213/",
+ "at": 1551,
+ "url": "http://127.0.0.1:37223/",
"title": "Conduit",
- "domHash": "a2c5dd8fb3c76cc2",
+ "domHash": "09a0c2dcd70a0114",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -4183,9 +4389,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "259817bb48ae635b",
+ "textHash": "b0238cc5ff984bef",
"visualHash": "72ad38eb67085423",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 Your Feed Global Feed Articles not available. Popular Tags RD_TEST_1DB90D_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER Your Feed Global Feed Articles not available. Popular Tags RD_TEST_F3F938_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
"controls": [
{
"tag": "button",
@@ -4216,7 +4422,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -4227,10 +4433,10 @@
}
},
"beforeAction": {
- "at": 1534,
- "url": "http://127.0.0.1:37213/",
+ "at": 1562,
+ "url": "http://127.0.0.1:37223/",
"title": "Conduit",
- "domHash": "a2c5dd8fb3c76cc2",
+ "domHash": "09a0c2dcd70a0114",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -4242,9 +4448,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "259817bb48ae635b",
+ "textHash": "b0238cc5ff984bef",
"visualHash": "72ad38eb67085423",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 Your Feed Global Feed Articles not available. Popular Tags RD_TEST_1DB90D_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER Your Feed Global Feed Articles not available. Popular Tags RD_TEST_F3F938_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
"controls": [
{
"tag": "button",
@@ -4275,7 +4481,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -4288,10 +4494,10 @@
"networkSettled": true,
"targetBusyAfter": false,
"after": {
- "at": 2525,
- "url": "http://127.0.0.1:37213/#/",
+ "at": 2566,
+ "url": "http://127.0.0.1:37223/#/",
"title": "Conduit",
- "domHash": "a2c5dd8fb3c76cc2",
+ "domHash": "09a0c2dcd70a0114",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -4303,9 +4509,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "259817bb48ae635b",
+ "textHash": "b0238cc5ff984bef",
"visualHash": "72ad38eb67085423",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 Your Feed Global Feed Articles not available. Popular Tags RD_TEST_1DB90D_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER Your Feed Global Feed Articles not available. Popular Tags RD_TEST_F3F938_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
"controls": [
{
"tag": "button",
@@ -4336,7 +4542,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -4364,8 +4570,8 @@
{
"id": "RD-007",
"action": {
- "id": "63ad14060515",
- "pageUrl": "http://127.0.0.1:37213/",
+ "id": "3800f03bc706",
+ "pageUrl": "http://127.0.0.1:37223/",
"label": "Home",
"activation": "click",
"kind": "navigation",
@@ -4378,7 +4584,7 @@
"role": "link",
"accessibleName": "Home",
"text": "Home",
- "href": "http://127.0.0.1:37213/#/",
+ "href": "http://127.0.0.1:37223/#/",
"candidates": [
{
"strategy": "role",
@@ -4397,7 +4603,7 @@
{
"strategy": "href",
"weight": 72,
- "value": "http://127.0.0.1:37213/#/"
+ "value": "http://127.0.0.1:37223/#/"
},
{
"strategy": "text",
@@ -4415,9 +4621,9 @@
"fields": []
},
"evidence": {
- "startedAt": "2026-07-26T11:00:07.772Z",
- "durationMs": 2516,
- "canary": "RD_TEST_CAC094",
+ "startedAt": "2026-07-26T12:19:50.907Z",
+ "durationMs": 2525,
+ "canary": "RD_TEST_76D7AB",
"network": [],
"console": [],
"pageErrors": [],
@@ -4428,6 +4634,12 @@
"downloadEvidence": [],
"uploads": [],
"popupUrls": [],
+ "visualSuppressions": [
+ {
+ "artifact": "screenshot",
+ "reason": "authenticated-context"
+ }
+ ],
"locatorResolution": {
"attempts": [
{
@@ -4435,14 +4647,14 @@
"weight": 92,
"matchCount": 0,
"visibleCount": 0,
- "elapsedMs": 3
+ "elapsedMs": 2
},
{
"strategy": "role",
"weight": 82,
"matchCount": 1,
"visibleCount": 1,
- "elapsedMs": 4
+ "elapsedMs": 5
}
],
"chosenStrategy": "role",
@@ -4450,10 +4662,10 @@
"retryCount": 0
},
"before": {
- "at": 1496,
- "url": "http://127.0.0.1:37213/",
+ "at": 1508,
+ "url": "http://127.0.0.1:37223/",
"title": "Conduit",
- "domHash": "a2c5dd8fb3c76cc2",
+ "domHash": "09a0c2dcd70a0114",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -4465,9 +4677,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "259817bb48ae635b",
+ "textHash": "b0238cc5ff984bef",
"visualHash": "72ad38eb67085423",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 Your Feed Global Feed Articles not available. Popular Tags RD_TEST_1DB90D_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER Your Feed Global Feed Articles not available. Popular Tags RD_TEST_F3F938_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
"controls": [
{
"tag": "button",
@@ -4498,7 +4710,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -4509,10 +4721,10 @@
}
},
"beforeAction": {
- "at": 1505,
- "url": "http://127.0.0.1:37213/",
+ "at": 1517,
+ "url": "http://127.0.0.1:37223/",
"title": "Conduit",
- "domHash": "a2c5dd8fb3c76cc2",
+ "domHash": "09a0c2dcd70a0114",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -4524,9 +4736,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "259817bb48ae635b",
+ "textHash": "b0238cc5ff984bef",
"visualHash": "72ad38eb67085423",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 Your Feed Global Feed Articles not available. Popular Tags RD_TEST_1DB90D_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER Your Feed Global Feed Articles not available. Popular Tags RD_TEST_F3F938_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
"controls": [
{
"tag": "button",
@@ -4557,7 +4769,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -4570,10 +4782,10 @@
"networkSettled": true,
"targetBusyAfter": false,
"after": {
- "at": 2513,
- "url": "http://127.0.0.1:37213/#/",
+ "at": 2521,
+ "url": "http://127.0.0.1:37223/#/",
"title": "Conduit",
- "domHash": "a2c5dd8fb3c76cc2",
+ "domHash": "09a0c2dcd70a0114",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -4585,9 +4797,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "259817bb48ae635b",
+ "textHash": "b0238cc5ff984bef",
"visualHash": "72ad38eb67085423",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 Your Feed Global Feed Articles not available. Popular Tags RD_TEST_1DB90D_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER Your Feed Global Feed Articles not available. Popular Tags RD_TEST_F3F938_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
"controls": [
{
"tag": "button",
@@ -4618,7 +4830,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -4646,8 +4858,8 @@
{
"id": "RD-008",
"action": {
- "id": "2b6be7d79a5f",
- "pageUrl": "http://127.0.0.1:37213/",
+ "id": "c88ed7554ce5",
+ "pageUrl": "http://127.0.0.1:37223/",
"label": "New Article",
"activation": "click",
"kind": "navigation",
@@ -4660,7 +4872,7 @@
"role": "link",
"accessibleName": "New Article",
"text": "New Article",
- "href": "http://127.0.0.1:37213/#/editor",
+ "href": "http://127.0.0.1:37223/#/editor",
"candidates": [
{
"strategy": "role",
@@ -4679,7 +4891,7 @@
{
"strategy": "href",
"weight": 72,
- "value": "http://127.0.0.1:37213/#/editor"
+ "value": "http://127.0.0.1:37223/#/editor"
},
{
"strategy": "text",
@@ -4697,9 +4909,9 @@
"fields": []
},
"evidence": {
- "startedAt": "2026-07-26T11:00:10.318Z",
- "durationMs": 2496,
- "canary": "RD_TEST_BC8FC6",
+ "startedAt": "2026-07-26T12:19:53.456Z",
+ "durationMs": 2484,
+ "canary": "RD_TEST_B37B29",
"network": [],
"console": [],
"pageErrors": [],
@@ -4710,6 +4922,12 @@
"downloadEvidence": [],
"uploads": [],
"popupUrls": [],
+ "visualSuppressions": [
+ {
+ "artifact": "screenshot",
+ "reason": "authenticated-context"
+ }
+ ],
"locatorResolution": {
"attempts": [
{
@@ -4717,14 +4935,14 @@
"weight": 92,
"matchCount": 0,
"visibleCount": 0,
- "elapsedMs": 2
+ "elapsedMs": 3
},
{
"strategy": "role",
"weight": 82,
"matchCount": 1,
"visibleCount": 1,
- "elapsedMs": 5
+ "elapsedMs": 4
}
],
"chosenStrategy": "role",
@@ -4732,10 +4950,10 @@
"retryCount": 0
},
"before": {
- "at": 1482,
- "url": "http://127.0.0.1:37213/",
+ "at": 1474,
+ "url": "http://127.0.0.1:37223/",
"title": "Conduit",
- "domHash": "a2c5dd8fb3c76cc2",
+ "domHash": "09a0c2dcd70a0114",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -4747,9 +4965,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "259817bb48ae635b",
+ "textHash": "b0238cc5ff984bef",
"visualHash": "72ad38eb67085423",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 Your Feed Global Feed Articles not available. Popular Tags RD_TEST_1DB90D_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER Your Feed Global Feed Articles not available. Popular Tags RD_TEST_F3F938_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
"controls": [
{
"tag": "button",
@@ -4780,7 +4998,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -4791,10 +5009,10 @@
}
},
"beforeAction": {
- "at": 1490,
- "url": "http://127.0.0.1:37213/",
+ "at": 1483,
+ "url": "http://127.0.0.1:37223/",
"title": "Conduit",
- "domHash": "a2c5dd8fb3c76cc2",
+ "domHash": "09a0c2dcd70a0114",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -4806,9 +5024,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "259817bb48ae635b",
+ "textHash": "b0238cc5ff984bef",
"visualHash": "72ad38eb67085423",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 Your Feed Global Feed Articles not available. Popular Tags RD_TEST_1DB90D_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER Your Feed Global Feed Articles not available. Popular Tags RD_TEST_F3F938_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
"controls": [
{
"tag": "button",
@@ -4839,7 +5057,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -4852,10 +5070,10 @@
"networkSettled": true,
"targetBusyAfter": false,
"after": {
- "at": 2492,
- "url": "http://127.0.0.1:37213/#/editor",
+ "at": 2480,
+ "url": "http://127.0.0.1:37223/#/editor",
"title": "Conduit",
- "domHash": "25121aa0be44bdb5",
+ "domHash": "c936833dbedd7df2",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -4867,9 +5085,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "e43f8008221f4f9e",
+ "textHash": "d0c4b4fdb77a11e9",
"visualHash": "b85410fa0ea5a358",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 Publish Article conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER Publish Article conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
"controls": [
{
"tag": "input",
@@ -4921,7 +5139,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -4949,8 +5167,8 @@
{
"id": "RD-009",
"action": {
- "id": "b6f0b8724ae3",
- "pageUrl": "http://127.0.0.1:37213/",
+ "id": "d61ab1459de8",
+ "pageUrl": "http://127.0.0.1:37223/",
"label": "Your Feed",
"activation": "click",
"kind": "local",
@@ -4995,19 +5213,19 @@
"fields": []
},
"evidence": {
- "startedAt": "2026-07-26T11:00:12.857Z",
- "durationMs": 2512,
- "canary": "RD_TEST_7472FF",
+ "startedAt": "2026-07-26T12:19:55.965Z",
+ "durationMs": 2583,
+ "canary": "RD_TEST_94D7A9",
"network": [
{
"id": "net-1",
"method": "GET",
- "url": "http://127.0.0.1:37213/api/articles/feed?limit=3&&offset=0",
+ "url": "http://127.0.0.1:37223/api/articles/feed?limit=3&&offset=0",
"resourceType": "xhr",
- "startedAt": 1536,
+ "startedAt": 1584,
"status": 200,
"ok": true,
- "finishedAt": 1546,
+ "finishedAt": 1596,
"contentType": "application/json",
"resourceTypeHint": "feed"
}
@@ -5021,6 +5239,12 @@
"downloadEvidence": [],
"uploads": [],
"popupUrls": [],
+ "visualSuppressions": [
+ {
+ "artifact": "screenshot",
+ "reason": "authenticated-context"
+ }
+ ],
"locatorResolution": {
"attempts": [
{
@@ -5028,7 +5252,7 @@
"weight": 92,
"matchCount": 1,
"visibleCount": 1,
- "elapsedMs": 5
+ "elapsedMs": 4
}
],
"chosenStrategy": "role",
@@ -5036,10 +5260,10 @@
"retryCount": 0
},
"before": {
- "at": 1506,
- "url": "http://127.0.0.1:37213/",
+ "at": 1553,
+ "url": "http://127.0.0.1:37223/",
"title": "Conduit",
- "domHash": "a2c5dd8fb3c76cc2",
+ "domHash": "09a0c2dcd70a0114",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -5051,9 +5275,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "259817bb48ae635b",
+ "textHash": "b0238cc5ff984bef",
"visualHash": "72ad38eb67085423",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 Your Feed Global Feed Articles not available. Popular Tags RD_TEST_1DB90D_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER Your Feed Global Feed Articles not available. Popular Tags RD_TEST_F3F938_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
"controls": [
{
"tag": "button",
@@ -5084,7 +5308,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -5095,10 +5319,10 @@
}
},
"beforeAction": {
- "at": 1514,
- "url": "http://127.0.0.1:37213/",
+ "at": 1562,
+ "url": "http://127.0.0.1:37223/",
"title": "Conduit",
- "domHash": "a2c5dd8fb3c76cc2",
+ "domHash": "09a0c2dcd70a0114",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -5110,9 +5334,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "259817bb48ae635b",
+ "textHash": "b0238cc5ff984bef",
"visualHash": "72ad38eb67085423",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 Your Feed Global Feed Articles not available. Popular Tags RD_TEST_1DB90D_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER Your Feed Global Feed Articles not available. Popular Tags RD_TEST_F3F938_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
"controls": [
{
"tag": "button",
@@ -5143,7 +5367,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -5156,10 +5380,10 @@
"networkSettled": true,
"targetBusyAfter": false,
"after": {
- "at": 2486,
- "url": "http://127.0.0.1:37213/",
+ "at": 2578,
+ "url": "http://127.0.0.1:37223/",
"title": "Conduit",
- "domHash": "a2c5dd8fb3c76cc2",
+ "domHash": "09a0c2dcd70a0114",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -5171,9 +5395,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "259817bb48ae635b",
+ "textHash": "b0238cc5ff984bef",
"visualHash": "72ad38eb67085423",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 Your Feed Global Feed Articles not available. Popular Tags RD_TEST_1DB90D_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER Your Feed Global Feed Articles not available. Popular Tags RD_TEST_F3F938_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
"controls": [
{
"tag": "button",
@@ -5204,7 +5428,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -5214,7 +5438,6 @@
"indexedDb": []
}
},
- "screenshot": "screenshots/b6f0b8724ae3-after.png",
"traceSuppression": {
"artifact": "trace",
"reason": "secret-detected",
@@ -5233,8 +5456,8 @@
{
"id": "RD-010",
"action": {
- "id": "98ade3898516",
- "pageUrl": "http://127.0.0.1:37213/",
+ "id": "a69f66f3ce86",
+ "pageUrl": "http://127.0.0.1:37223/",
"label": "Global Feed",
"activation": "click",
"kind": "local",
@@ -5279,19 +5502,19 @@
"fields": []
},
"evidence": {
- "startedAt": "2026-07-26T11:00:15.405Z",
- "durationMs": 2572,
- "canary": "RD_TEST_43C9EF",
+ "startedAt": "2026-07-26T12:19:58.570Z",
+ "durationMs": 2561,
+ "canary": "RD_TEST_7BA72F",
"network": [
{
"id": "net-1",
"method": "GET",
- "url": "http://127.0.0.1:37213/api/articles?limit=3&&offset=0",
+ "url": "http://127.0.0.1:37223/api/articles?limit=3&&offset=0",
"resourceType": "xhr",
- "startedAt": 1537,
+ "startedAt": 1530,
"status": 200,
"ok": true,
- "finishedAt": 1549,
+ "finishedAt": 1542,
"contentType": "application/json",
"resourceTypeHint": "articles"
},
@@ -5300,10 +5523,10 @@
"method": "GET",
"url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwlxdu.woff2",
"resourceType": "font",
- "startedAt": 1563,
+ "startedAt": 1558,
"status": 200,
"ok": true,
- "finishedAt": 1614,
+ "finishedAt": 1603,
"contentType": "font/woff2",
"resourceTypeHint": "6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwlxdu.woff2"
}
@@ -5317,6 +5540,12 @@
"downloadEvidence": [],
"uploads": [],
"popupUrls": [],
+ "visualSuppressions": [
+ {
+ "artifact": "screenshot",
+ "reason": "authenticated-context"
+ }
+ ],
"locatorResolution": {
"attempts": [
{
@@ -5324,7 +5553,7 @@
"weight": 92,
"matchCount": 1,
"visibleCount": 1,
- "elapsedMs": 5
+ "elapsedMs": 4
}
],
"chosenStrategy": "role",
@@ -5332,10 +5561,10 @@
"retryCount": 0
},
"before": {
- "at": 1500,
- "url": "http://127.0.0.1:37213/",
+ "at": 1486,
+ "url": "http://127.0.0.1:37223/",
"title": "Conduit",
- "domHash": "a2c5dd8fb3c76cc2",
+ "domHash": "09a0c2dcd70a0114",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -5347,9 +5576,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "259817bb48ae635b",
+ "textHash": "b0238cc5ff984bef",
"visualHash": "72ad38eb67085423",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 Your Feed Global Feed Articles not available. Popular Tags RD_TEST_1DB90D_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER Your Feed Global Feed Articles not available. Popular Tags RD_TEST_F3F938_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
"controls": [
{
"tag": "button",
@@ -5380,7 +5609,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -5391,10 +5620,10 @@
}
},
"beforeAction": {
- "at": 1508,
- "url": "http://127.0.0.1:37213/",
+ "at": 1495,
+ "url": "http://127.0.0.1:37223/",
"title": "Conduit",
- "domHash": "a2c5dd8fb3c76cc2",
+ "domHash": "09a0c2dcd70a0114",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -5406,9 +5635,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "259817bb48ae635b",
+ "textHash": "b0238cc5ff984bef",
"visualHash": "72ad38eb67085423",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 Your Feed Global Feed Articles not available. Popular Tags RD_TEST_1DB90D_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER Your Feed Global Feed Articles not available. Popular Tags RD_TEST_F3F938_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
"controls": [
{
"tag": "button",
@@ -5439,7 +5668,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -5452,10 +5681,10 @@
"networkSettled": true,
"targetBusyAfter": false,
"after": {
- "at": 2568,
- "url": "http://127.0.0.1:37213/",
+ "at": 2557,
+ "url": "http://127.0.0.1:37223/",
"title": "Conduit",
- "domHash": "a3babced0bf0a21e",
+ "domHash": "dee3879a1a1dbac8",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -5467,9 +5696,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "cb995e15ef0e0692",
+ "textHash": "e68533de4d97da40",
"visualHash": "805f65e8f4aada8d",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 Your Feed Global Feed RD_TEST_AFDF00_1 July 26, 2026 ( 0 ) RD_TEST_D97009_1 RD_TEST_D97009_2 Read more... RD_TEST_1DB90D_4 1 Popular Tags RD_TEST_1DB90D_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER Your Feed Global Feed RD_PHASE_K_CRUD_OWNER July 26, 2026 ( 0 ) RD_TEST_4CBB5D_1 RD_TEST_4CBB5D_2 Read more... RD_TEST_F3F938_4 1 Popular Tags RD_TEST_F3F938_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
"controls": [
{
"tag": "button",
@@ -5507,7 +5736,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -5535,9 +5764,9 @@
{
"id": "RD-011",
"action": {
- "id": "a2758003a662",
- "pageUrl": "http://127.0.0.1:37213/",
- "label": "RD_TEST_1DB90D_4",
+ "id": "80706f2de1a4",
+ "pageUrl": "http://127.0.0.1:37223/",
+ "label": "RD_TEST_F3F938_4",
"activation": "click",
"kind": "local",
"intent": "interact",
@@ -5547,28 +5776,28 @@
"tag": "button",
"ordinal": 6,
"role": "button",
- "accessibleName": "RD_TEST_1DB90D_4",
- "text": "RD_TEST_1DB90D_4",
+ "accessibleName": "RD_TEST_F3F938_4",
+ "text": "RD_TEST_F3F938_4",
"type": "submit",
"candidates": [
{
"strategy": "role",
"weight": 92,
"role": "button",
- "name": "RD_TEST_1DB90D_4",
+ "name": "RD_TEST_F3F938_4",
"exact": true
},
{
"strategy": "role",
"weight": 82,
"role": "button",
- "name": "RD_TEST_1DB90D_4",
+ "name": "RD_TEST_F3F938_4",
"exact": false
},
{
"strategy": "text",
"weight": 60,
- "value": "RD_TEST_1DB90D_4",
+ "value": "RD_TEST_F3F938_4",
"exact": true
},
{
@@ -5581,19 +5810,19 @@
"fields": []
},
"evidence": {
- "startedAt": "2026-07-26T11:00:18.020Z",
- "durationMs": 2561,
- "canary": "RD_TEST_C7AE47",
+ "startedAt": "2026-07-26T12:20:01.154Z",
+ "durationMs": 2573,
+ "canary": "RD_TEST_588F4F",
"network": [
{
"id": "net-1",
"method": "GET",
- "url": "http://127.0.0.1:37213/api/articles?tag=RD_TEST_1DB90D_4&&limit=3&&offset=0",
+ "url": "http://127.0.0.1:37223/api/articles?tag=RD_TEST_F3F938_4&&limit=3&&offset=0",
"resourceType": "xhr",
- "startedAt": 1522,
+ "startedAt": 1529,
"status": 200,
"ok": true,
- "finishedAt": 1532,
+ "finishedAt": 1541,
"contentType": "application/json",
"resourceTypeHint": "articles"
},
@@ -5602,10 +5831,10 @@
"method": "GET",
"url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwlxdu.woff2",
"resourceType": "font",
- "startedAt": 1553,
+ "startedAt": 1561,
"status": 200,
"ok": true,
- "finishedAt": 1602,
+ "finishedAt": 1610,
"contentType": "font/woff2",
"resourceTypeHint": "6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwlxdu.woff2"
}
@@ -5619,6 +5848,12 @@
"downloadEvidence": [],
"uploads": [],
"popupUrls": [],
+ "visualSuppressions": [
+ {
+ "artifact": "screenshot",
+ "reason": "authenticated-context"
+ }
+ ],
"locatorResolution": {
"attempts": [
{
@@ -5626,7 +5861,7 @@
"weight": 92,
"matchCount": 1,
"visibleCount": 1,
- "elapsedMs": 5
+ "elapsedMs": 4
}
],
"chosenStrategy": "role",
@@ -5634,10 +5869,10 @@
"retryCount": 0
},
"before": {
- "at": 1480,
- "url": "http://127.0.0.1:37213/",
+ "at": 1503,
+ "url": "http://127.0.0.1:37223/",
"title": "Conduit",
- "domHash": "a2c5dd8fb3c76cc2",
+ "domHash": "09a0c2dcd70a0114",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -5649,9 +5884,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "259817bb48ae635b",
+ "textHash": "b0238cc5ff984bef",
"visualHash": "72ad38eb67085423",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 Your Feed Global Feed Articles not available. Popular Tags RD_TEST_1DB90D_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER Your Feed Global Feed Articles not available. Popular Tags RD_TEST_F3F938_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
"controls": [
{
"tag": "button",
@@ -5682,7 +5917,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -5693,10 +5928,10 @@
}
},
"beforeAction": {
- "at": 1488,
- "url": "http://127.0.0.1:37213/",
+ "at": 1511,
+ "url": "http://127.0.0.1:37223/",
"title": "Conduit",
- "domHash": "a2c5dd8fb3c76cc2",
+ "domHash": "09a0c2dcd70a0114",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -5708,9 +5943,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "259817bb48ae635b",
+ "textHash": "b0238cc5ff984bef",
"visualHash": "72ad38eb67085423",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 Your Feed Global Feed Articles not available. Popular Tags RD_TEST_1DB90D_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER Your Feed Global Feed Articles not available. Popular Tags RD_TEST_F3F938_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
"controls": [
{
"tag": "button",
@@ -5741,7 +5976,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -5754,10 +5989,10 @@
"networkSettled": true,
"targetBusyAfter": false,
"after": {
- "at": 2557,
- "url": "http://127.0.0.1:37213/",
+ "at": 2569,
+ "url": "http://127.0.0.1:37223/",
"title": "Conduit",
- "domHash": "00444e77bc13597b",
+ "domHash": "98916d5a3fb4447b",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -5769,9 +6004,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "0af22bb0665924f2",
+ "textHash": "2e4a77d533a13af0",
"visualHash": "95abe9be32f407d5",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 Your Feed Global Feed RD_TEST_1DB90D_4 RD_TEST_AFDF00_1 July 26, 2026 ( 0 ) RD_TEST_D97009_1 RD_TEST_D97009_2 Read more... RD_TEST_1DB90D_4 1 Popular Tags RD_TEST_1DB90D_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER Your Feed Global Feed RD_TEST_F3F938_4 RD_PHASE_K_CRUD_OWNER July 26, 2026 ( 0 ) RD_TEST_4CBB5D_1 RD_TEST_4CBB5D_2 Read more... RD_TEST_F3F938_4 1 Popular Tags RD_TEST_F3F938_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
"controls": [
{
"tag": "button",
@@ -5816,7 +6051,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -5844,8 +6079,8 @@
{
"id": "RD-012",
"action": {
- "id": "60e12226e19d",
- "pageUrl": "http://127.0.0.1:37213/",
+ "id": "9d442a70bdcb",
+ "pageUrl": "http://127.0.0.1:37223/",
"label": "conduit",
"activation": "click",
"kind": "navigation",
@@ -5858,7 +6093,7 @@
"role": "link",
"accessibleName": "conduit",
"text": "conduit",
- "href": "http://127.0.0.1:37213/#/",
+ "href": "http://127.0.0.1:37223/#/",
"candidates": [
{
"strategy": "role",
@@ -5877,7 +6112,7 @@
{
"strategy": "href",
"weight": 72,
- "value": "http://127.0.0.1:37213/#/"
+ "value": "http://127.0.0.1:37223/#/"
},
{
"strategy": "text",
@@ -5895,9 +6130,9 @@
"fields": []
},
"evidence": {
- "startedAt": "2026-07-26T11:00:20.634Z",
- "durationMs": 2558,
- "canary": "RD_TEST_460E24",
+ "startedAt": "2026-07-26T12:20:03.760Z",
+ "durationMs": 2512,
+ "canary": "RD_TEST_1FF4B1",
"network": [],
"console": [],
"pageErrors": [],
@@ -5908,6 +6143,12 @@
"downloadEvidence": [],
"uploads": [],
"popupUrls": [],
+ "visualSuppressions": [
+ {
+ "artifact": "screenshot",
+ "reason": "authenticated-context"
+ }
+ ],
"locatorResolution": {
"attempts": [
{
@@ -5922,14 +6163,14 @@
"weight": 82,
"matchCount": 2,
"visibleCount": 2,
- "elapsedMs": 6
+ "elapsedMs": 7
},
{
"strategy": "href",
"weight": 72,
"matchCount": 0,
"visibleCount": 0,
- "elapsedMs": 3
+ "elapsedMs": 1
},
{
"strategy": "text",
@@ -5943,7 +6184,7 @@
"weight": 35,
"matchCount": 1,
"visibleCount": 1,
- "elapsedMs": 7
+ "elapsedMs": 5
}
],
"chosenStrategy": "css",
@@ -5951,10 +6192,10 @@
"retryCount": 0
},
"before": {
- "at": 1548,
- "url": "http://127.0.0.1:37213/",
+ "at": 1515,
+ "url": "http://127.0.0.1:37223/",
"title": "Conduit",
- "domHash": "a2c5dd8fb3c76cc2",
+ "domHash": "09a0c2dcd70a0114",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -5966,9 +6207,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "259817bb48ae635b",
+ "textHash": "b0238cc5ff984bef",
"visualHash": "72ad38eb67085423",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 Your Feed Global Feed Articles not available. Popular Tags RD_TEST_1DB90D_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER Your Feed Global Feed Articles not available. Popular Tags RD_TEST_F3F938_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
"controls": [
{
"tag": "button",
@@ -5999,7 +6240,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -6010,10 +6251,10 @@
}
},
"beforeAction": {
- "at": 1556,
- "url": "http://127.0.0.1:37213/",
+ "at": 1524,
+ "url": "http://127.0.0.1:37223/",
"title": "Conduit",
- "domHash": "a2c5dd8fb3c76cc2",
+ "domHash": "09a0c2dcd70a0114",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -6025,9 +6266,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "259817bb48ae635b",
+ "textHash": "b0238cc5ff984bef",
"visualHash": "72ad38eb67085423",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 Your Feed Global Feed Articles not available. Popular Tags RD_TEST_1DB90D_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER Your Feed Global Feed Articles not available. Popular Tags RD_TEST_F3F938_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
"controls": [
{
"tag": "button",
@@ -6058,7 +6299,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -6071,10 +6312,10 @@
"networkSettled": true,
"targetBusyAfter": false,
"after": {
- "at": 2554,
- "url": "http://127.0.0.1:37213/#/",
+ "at": 2508,
+ "url": "http://127.0.0.1:37223/#/",
"title": "Conduit",
- "domHash": "a2c5dd8fb3c76cc2",
+ "domHash": "09a0c2dcd70a0114",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -6086,9 +6327,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "259817bb48ae635b",
+ "textHash": "b0238cc5ff984bef",
"visualHash": "72ad38eb67085423",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 Your Feed Global Feed Articles not available. Popular Tags RD_TEST_1DB90D_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER Your Feed Global Feed Articles not available. Popular Tags RD_TEST_F3F938_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
"controls": [
{
"tag": "button",
@@ -6119,7 +6360,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -6147,8 +6388,8 @@
{
"id": "RD-013",
"action": {
- "id": "4240ac8c9986",
- "pageUrl": "http://127.0.0.1:37213/#/editor",
+ "id": "1bf42ddc57a0",
+ "pageUrl": "http://127.0.0.1:37223/#/editor",
"label": "conduit",
"activation": "click",
"kind": "navigation",
@@ -6161,7 +6402,7 @@
"role": "link",
"accessibleName": "conduit",
"text": "conduit",
- "href": "http://127.0.0.1:37213/#/",
+ "href": "http://127.0.0.1:37223/#/",
"candidates": [
{
"strategy": "role",
@@ -6180,7 +6421,7 @@
{
"strategy": "href",
"weight": 72,
- "value": "http://127.0.0.1:37213/#/"
+ "value": "http://127.0.0.1:37223/#/"
},
{
"strategy": "text",
@@ -6198,31 +6439,31 @@
"fields": []
},
"evidence": {
- "startedAt": "2026-07-26T11:00:23.221Z",
- "durationMs": 2521,
- "canary": "RD_TEST_60B09F",
+ "startedAt": "2026-07-26T12:20:06.296Z",
+ "durationMs": 2535,
+ "canary": "RD_TEST_14BC82",
"network": [
{
"id": "net-1",
"method": "GET",
- "url": "http://127.0.0.1:37213/api/articles/feed?limit=3&&offset=0",
+ "url": "http://127.0.0.1:37223/api/articles/feed?limit=3&&offset=0",
"resourceType": "xhr",
- "startedAt": 1549,
+ "startedAt": 1565,
"status": 200,
"ok": true,
- "finishedAt": 1555,
+ "finishedAt": 1573,
"contentType": "application/json",
"resourceTypeHint": "feed"
},
{
"id": "net-2",
"method": "GET",
- "url": "http://127.0.0.1:37213/api/tags",
+ "url": "http://127.0.0.1:37223/api/tags",
"resourceType": "xhr",
- "startedAt": 1550,
+ "startedAt": 1565,
"status": 200,
"ok": true,
- "finishedAt": 1554,
+ "finishedAt": 1569,
"contentType": "application/json",
"resourceTypeHint": "tags"
}
@@ -6236,6 +6477,12 @@
"downloadEvidence": [],
"uploads": [],
"popupUrls": [],
+ "visualSuppressions": [
+ {
+ "artifact": "screenshot",
+ "reason": "authenticated-context"
+ }
+ ],
"locatorResolution": {
"attempts": [
{
@@ -6243,14 +6490,14 @@
"weight": 92,
"matchCount": 2,
"visibleCount": 2,
- "elapsedMs": 7
+ "elapsedMs": 8
},
{
"strategy": "role",
"weight": 82,
"matchCount": 2,
"visibleCount": 2,
- "elapsedMs": 7
+ "elapsedMs": 6
},
{
"strategy": "href",
@@ -6264,14 +6511,14 @@
"weight": 60,
"matchCount": 2,
"visibleCount": 2,
- "elapsedMs": 6
+ "elapsedMs": 7
},
{
"strategy": "css",
"weight": 35,
"matchCount": 1,
"visibleCount": 1,
- "elapsedMs": 4
+ "elapsedMs": 3
}
],
"chosenStrategy": "css",
@@ -6279,10 +6526,10 @@
"retryCount": 0
},
"before": {
- "at": 1507,
- "url": "http://127.0.0.1:37213/#/editor",
+ "at": 1524,
+ "url": "http://127.0.0.1:37223/#/editor",
"title": "Conduit",
- "domHash": "25121aa0be44bdb5",
+ "domHash": "c936833dbedd7df2",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -6294,9 +6541,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "e43f8008221f4f9e",
+ "textHash": "d0c4b4fdb77a11e9",
"visualHash": "b85410fa0ea5a358",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 Publish Article conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER Publish Article conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
"controls": [
{
"tag": "input",
@@ -6348,7 +6595,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -6359,10 +6606,10 @@
}
},
"beforeAction": {
- "at": 1515,
- "url": "http://127.0.0.1:37213/#/editor",
+ "at": 1533,
+ "url": "http://127.0.0.1:37223/#/editor",
"title": "Conduit",
- "domHash": "25121aa0be44bdb5",
+ "domHash": "c936833dbedd7df2",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -6374,9 +6621,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "e43f8008221f4f9e",
+ "textHash": "d0c4b4fdb77a11e9",
"visualHash": "b85410fa0ea5a358",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 Publish Article conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER Publish Article conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
"controls": [
{
"tag": "input",
@@ -6428,7 +6675,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -6441,10 +6688,10 @@
"networkSettled": true,
"targetBusyAfter": false,
"after": {
- "at": 2518,
- "url": "http://127.0.0.1:37213/#/",
+ "at": 2531,
+ "url": "http://127.0.0.1:37223/#/",
"title": "Conduit",
- "domHash": "a2c5dd8fb3c76cc2",
+ "domHash": "09a0c2dcd70a0114",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -6456,9 +6703,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "259817bb48ae635b",
+ "textHash": "b0238cc5ff984bef",
"visualHash": "72ad38eb67085423",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 Your Feed Global Feed Articles not available. Popular Tags RD_TEST_1DB90D_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER Your Feed Global Feed Articles not available. Popular Tags RD_TEST_F3F938_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
"controls": [
{
"tag": "button",
@@ -6489,7 +6736,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -6517,8 +6764,8 @@
{
"id": "RD-014",
"action": {
- "id": "b2ce5788ac2d",
- "pageUrl": "http://127.0.0.1:37213/#/editor",
+ "id": "53cf74a707f5",
+ "pageUrl": "http://127.0.0.1:37223/#/editor",
"label": "Home",
"activation": "click",
"kind": "navigation",
@@ -6531,7 +6778,7 @@
"role": "link",
"accessibleName": "Home",
"text": "Home",
- "href": "http://127.0.0.1:37213/#/",
+ "href": "http://127.0.0.1:37223/#/",
"candidates": [
{
"strategy": "role",
@@ -6550,7 +6797,7 @@
{
"strategy": "href",
"weight": 72,
- "value": "http://127.0.0.1:37213/#/"
+ "value": "http://127.0.0.1:37223/#/"
},
{
"strategy": "text",
@@ -6568,31 +6815,31 @@
"fields": []
},
"evidence": {
- "startedAt": "2026-07-26T11:00:25.776Z",
- "durationMs": 2503,
- "canary": "RD_TEST_1D2077",
+ "startedAt": "2026-07-26T12:20:08.852Z",
+ "durationMs": 2514,
+ "canary": "RD_TEST_C8A6EC",
"network": [
{
"id": "net-1",
"method": "GET",
- "url": "http://127.0.0.1:37213/api/articles/feed?limit=3&&offset=0",
+ "url": "http://127.0.0.1:37223/api/articles/feed?limit=3&&offset=0",
"resourceType": "xhr",
- "startedAt": 1529,
+ "startedAt": 1545,
"status": 200,
"ok": true,
- "finishedAt": 1536,
+ "finishedAt": 1553,
"contentType": "application/json",
"resourceTypeHint": "feed"
},
{
"id": "net-2",
"method": "GET",
- "url": "http://127.0.0.1:37213/api/tags",
+ "url": "http://127.0.0.1:37223/api/tags",
"resourceType": "xhr",
- "startedAt": 1530,
+ "startedAt": 1546,
"status": 200,
"ok": true,
- "finishedAt": 1534,
+ "finishedAt": 1552,
"contentType": "application/json",
"resourceTypeHint": "tags"
}
@@ -6606,6 +6853,12 @@
"downloadEvidence": [],
"uploads": [],
"popupUrls": [],
+ "visualSuppressions": [
+ {
+ "artifact": "screenshot",
+ "reason": "authenticated-context"
+ }
+ ],
"locatorResolution": {
"attempts": [
{
@@ -6613,14 +6866,14 @@
"weight": 92,
"matchCount": 0,
"visibleCount": 0,
- "elapsedMs": 2
+ "elapsedMs": 3
},
{
"strategy": "role",
"weight": 82,
"matchCount": 1,
"visibleCount": 1,
- "elapsedMs": 5
+ "elapsedMs": 6
}
],
"chosenStrategy": "role",
@@ -6628,10 +6881,10 @@
"retryCount": 0
},
"before": {
- "at": 1490,
- "url": "http://127.0.0.1:37213/#/editor",
+ "at": 1497,
+ "url": "http://127.0.0.1:37223/#/editor",
"title": "Conduit",
- "domHash": "25121aa0be44bdb5",
+ "domHash": "c936833dbedd7df2",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -6643,9 +6896,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "e43f8008221f4f9e",
+ "textHash": "d0c4b4fdb77a11e9",
"visualHash": "b85410fa0ea5a358",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 Publish Article conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER Publish Article conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
"controls": [
{
"tag": "input",
@@ -6697,7 +6950,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -6708,10 +6961,10 @@
}
},
"beforeAction": {
- "at": 1499,
- "url": "http://127.0.0.1:37213/#/editor",
+ "at": 1507,
+ "url": "http://127.0.0.1:37223/#/editor",
"title": "Conduit",
- "domHash": "25121aa0be44bdb5",
+ "domHash": "c936833dbedd7df2",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -6723,9 +6976,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "e43f8008221f4f9e",
+ "textHash": "d0c4b4fdb77a11e9",
"visualHash": "b85410fa0ea5a358",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 Publish Article conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER Publish Article conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
"controls": [
{
"tag": "input",
@@ -6777,7 +7030,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -6790,10 +7043,10 @@
"networkSettled": true,
"targetBusyAfter": false,
"after": {
- "at": 2499,
- "url": "http://127.0.0.1:37213/#/",
+ "at": 2510,
+ "url": "http://127.0.0.1:37223/#/",
"title": "Conduit",
- "domHash": "a2c5dd8fb3c76cc2",
+ "domHash": "09a0c2dcd70a0114",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -6805,9 +7058,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "259817bb48ae635b",
+ "textHash": "b0238cc5ff984bef",
"visualHash": "72ad38eb67085423",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 Your Feed Global Feed Articles not available. Popular Tags RD_TEST_1DB90D_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER Your Feed Global Feed Articles not available. Popular Tags RD_TEST_F3F938_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
"controls": [
{
"tag": "button",
@@ -6838,7 +7091,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -6866,8 +7119,8 @@
{
"id": "RD-015",
"action": {
- "id": "b725edd599a8",
- "pageUrl": "http://127.0.0.1:37213/#/editor",
+ "id": "a6522be0fc1d",
+ "pageUrl": "http://127.0.0.1:37223/#/editor",
"label": "Publish Article",
"activation": "submit",
"kind": "mutation",
@@ -6933,19 +7186,19 @@
]
},
"evidence": {
- "startedAt": "2026-07-26T11:00:28.368Z",
- "durationMs": 7143,
- "canary": "RD_TEST_DA5A96",
+ "startedAt": "2026-07-26T12:20:11.444Z",
+ "durationMs": 6980,
+ "canary": "RD_TEST_45949F",
"network": [
{
"id": "net-1",
"method": "POST",
- "url": "http://127.0.0.1:37213/api/articles",
+ "url": "http://127.0.0.1:37223/api/articles",
"resourceType": "xhr",
- "startedAt": 1595,
+ "startedAt": 1573,
"status": 201,
"ok": true,
- "finishedAt": 1609,
+ "finishedAt": 1588,
"contentType": "application/json",
"resourceTypeHint": "articles"
},
@@ -6954,70 +7207,70 @@
"method": "GET",
"url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwlxdu.woff2",
"resourceType": "font",
- "startedAt": 1616,
+ "startedAt": 1594,
"status": 200,
"ok": true,
- "finishedAt": 1661,
+ "finishedAt": 1643,
"contentType": "font/woff2",
"resourceTypeHint": "6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwlxdu.woff2"
},
{
"id": "net-3",
"method": "GET",
- "url": "http://127.0.0.1:37213/api/articles/rd-test-da5a96-1/comments",
+ "url": "http://127.0.0.1:37223/api/articles/rd-test-45949f-1/comments",
"resourceType": "xhr",
- "startedAt": 1617,
+ "startedAt": 1595,
"status": 200,
"ok": true,
- "finishedAt": 1625,
+ "finishedAt": 1601,
"contentType": "application/json",
"resourceTypeHint": "comments"
},
{
"id": "net-4",
"method": "GET",
- "url": "http://127.0.0.1:37213/api/articles/rd-test-da5a96-1",
+ "url": "http://127.0.0.1:37223/api/articles/rd-test-45949f-1",
"resourceType": "xhr",
- "startedAt": 1618,
+ "startedAt": 1596,
"status": 200,
"ok": true,
- "finishedAt": 1627,
+ "finishedAt": 1605,
"contentType": "application/json",
- "resourceTypeHint": "rd-test-da5a96-1"
+ "resourceTypeHint": "rd-test-45949f-1"
},
{
"id": "net-5",
"method": "GET",
"url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwlxdu.woff2",
"resourceType": "font",
- "startedAt": 1644,
+ "startedAt": 1621,
"status": 200,
"ok": true,
- "finishedAt": 1690,
+ "finishedAt": 1667,
"contentType": "font/woff2",
"resourceTypeHint": "6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwlxdu.woff2"
},
{
"id": "net-6",
"method": "GET",
- "url": "http://127.0.0.1:37213/",
+ "url": "http://127.0.0.1:37223/",
"resourceType": "document",
- "startedAt": 2709,
+ "startedAt": 2646,
"status": 200,
"ok": true,
"contentType": "text/html",
"resourceTypeHint": "resource",
- "finishedAt": 2718
+ "finishedAt": 2656
},
{
"id": "net-7",
"method": "GET",
"url": "http://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css",
"resourceType": "stylesheet",
- "startedAt": 2716,
+ "startedAt": 2653,
"status": 307,
"ok": false,
- "finishedAt": 2719,
+ "finishedAt": 2657,
"location": "https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css",
"resourceTypeHint": "ionicons.min.css"
},
@@ -7026,46 +7279,46 @@
"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": 2717,
+ "startedAt": 2654,
"status": 200,
"ok": true,
- "finishedAt": 2760,
+ "finishedAt": 2696,
"contentType": "text/css",
"resourceTypeHint": "css"
},
{
"id": "net-9",
"method": "GET",
- "url": "http://127.0.0.1:37213/assets/index-CLdavoKn.js",
+ "url": "http://127.0.0.1:37223/assets/index-CLdavoKn.js",
"resourceType": "script",
- "startedAt": 2717,
+ "startedAt": 2654,
"status": 200,
"ok": true,
- "finishedAt": 2729,
+ "finishedAt": 2668,
"contentType": "text/javascript",
"resourceTypeHint": "index-CLdavoKn.js"
},
{
"id": "net-10",
"method": "GET",
- "url": "http://127.0.0.1:37213/assets/index-De1Lwdlm.css",
+ "url": "http://127.0.0.1:37223/assets/index-De1Lwdlm.css",
"resourceType": "stylesheet",
- "startedAt": 2717,
+ "startedAt": 2655,
"status": 200,
"ok": true,
+ "finishedAt": 2661,
"contentType": "text/css",
- "resourceTypeHint": "index-De1Lwdlm.css",
- "finishedAt": 2722
+ "resourceTypeHint": "index-De1Lwdlm.css"
},
{
"id": "net-11",
"method": "GET",
"url": "https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css",
"resourceType": "stylesheet",
- "startedAt": 2719,
+ "startedAt": 2657,
"status": 200,
"ok": true,
- "finishedAt": 3015,
+ "finishedAt": 2915,
"contentType": "text/css",
"resourceTypeHint": "ionicons.min.css"
},
@@ -7074,10 +7327,10 @@
"method": "GET",
"url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdu.woff2",
"resourceType": "font",
- "startedAt": 3024,
+ "startedAt": 2923,
"status": 200,
"ok": true,
- "finishedAt": 3069,
+ "finishedAt": 2969,
"contentType": "font/woff2",
"resourceTypeHint": "6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdu.woff2"
},
@@ -7086,10 +7339,10 @@
"method": "GET",
"url": "https://code.ionicframework.com/ionicons/2.0.1/fonts/ionicons.ttf?v=2.0.1",
"resourceType": "font",
- "startedAt": 3025,
+ "startedAt": 2924,
"status": 200,
"ok": true,
- "finishedAt": 3131,
+ "finishedAt": 3032,
"contentType": "font/ttf",
"resourceTypeHint": "ionicons.ttf"
},
@@ -7098,10 +7351,10 @@
"method": "GET",
"url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7l.woff2",
"resourceType": "font",
- "startedAt": 3025,
+ "startedAt": 2925,
"status": 200,
"ok": true,
- "finishedAt": 3072,
+ "finishedAt": 2975,
"contentType": "font/woff2",
"resourceTypeHint": "6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7l.woff2"
},
@@ -7110,10 +7363,10 @@
"method": "GET",
"url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwlxdu.woff2",
"resourceType": "font",
- "startedAt": 3025,
+ "startedAt": 2925,
"status": 200,
"ok": true,
- "finishedAt": 3072,
+ "finishedAt": 2971,
"contentType": "font/woff2",
"resourceTypeHint": "6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwlxdu.woff2"
},
@@ -7122,46 +7375,46 @@
"method": "GET",
"url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7nsDI.woff2",
"resourceType": "font",
- "startedAt": 3025,
+ "startedAt": 2925,
"status": 200,
"ok": true,
- "finishedAt": 3123,
+ "finishedAt": 3022,
"contentType": "font/woff2",
"resourceTypeHint": "6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7nsDI.woff2"
},
{
"id": "net-17",
"method": "GET",
- "url": "http://127.0.0.1:37213/api/articles/rd-test-da5a96-1/comments",
+ "url": "http://127.0.0.1:37223/api/articles/rd-test-45949f-1/comments",
"resourceType": "xhr",
- "startedAt": 3027,
+ "startedAt": 2927,
"status": 200,
"ok": true,
- "finishedAt": 3033,
+ "finishedAt": 2934,
"contentType": "application/json",
"resourceTypeHint": "comments"
},
{
"id": "net-18",
"method": "GET",
- "url": "http://127.0.0.1:37213/api/articles/rd-test-da5a96-1",
+ "url": "http://127.0.0.1:37223/api/articles/rd-test-45949f-1",
"resourceType": "xhr",
- "startedAt": 3027,
+ "startedAt": 2928,
"status": 200,
"ok": true,
- "finishedAt": 3037,
+ "finishedAt": 2938,
"contentType": "application/json",
- "resourceTypeHint": "rd-test-da5a96-1"
+ "resourceTypeHint": "rd-test-45949f-1"
},
{
"id": "net-19",
"method": "GET",
- "url": "http://127.0.0.1:37213/api/user",
+ "url": "http://127.0.0.1:37223/api/user",
"resourceType": "xhr",
- "startedAt": 3028,
+ "startedAt": 2928,
"status": 200,
"ok": true,
- "finishedAt": 3034,
+ "finishedAt": 2935,
"contentType": "application/json",
"resourceTypeHint": "user"
},
@@ -7170,34 +7423,34 @@
"method": "GET",
"url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwlxdu.woff2",
"resourceType": "font",
- "startedAt": 3054,
+ "startedAt": 2952,
"status": 200,
"ok": true,
- "finishedAt": 3110,
+ "finishedAt": 3011,
"contentType": "font/woff2",
"resourceTypeHint": "6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwlxdu.woff2"
},
{
"id": "net-21",
"method": "GET",
- "url": "http://127.0.0.1:37213/",
+ "url": "http://127.0.0.1:37223/",
"resourceType": "document",
- "startedAt": 3923,
+ "startedAt": 3752,
"status": 200,
"ok": true,
"contentType": "text/html",
"resourceTypeHint": "resource",
- "finishedAt": 3931
+ "finishedAt": 3760
},
{
"id": "net-22",
"method": "GET",
"url": "http://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css",
"resourceType": "stylesheet",
- "startedAt": 3929,
+ "startedAt": 3759,
"status": 307,
"ok": false,
- "finishedAt": 3933,
+ "finishedAt": 3762,
"location": "https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css",
"resourceTypeHint": "ionicons.min.css"
},
@@ -7206,34 +7459,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": 3930,
+ "startedAt": 3759,
"status": 200,
"ok": true,
- "finishedAt": 3968,
+ "finishedAt": 3802,
"contentType": "text/css",
"resourceTypeHint": "css"
},
{
"id": "net-24",
"method": "GET",
- "url": "http://127.0.0.1:37213/assets/index-CLdavoKn.js",
+ "url": "http://127.0.0.1:37223/assets/index-CLdavoKn.js",
"resourceType": "script",
- "startedAt": 3931,
+ "startedAt": 3759,
"status": 200,
"ok": true,
- "finishedAt": 3943,
+ "finishedAt": 3773,
"contentType": "text/javascript",
"resourceTypeHint": "index-CLdavoKn.js"
},
{
"id": "net-25",
"method": "GET",
- "url": "http://127.0.0.1:37213/assets/index-De1Lwdlm.css",
+ "url": "http://127.0.0.1:37223/assets/index-De1Lwdlm.css",
"resourceType": "stylesheet",
- "startedAt": 3931,
+ "startedAt": 3760,
"status": 200,
"ok": true,
- "finishedAt": 3936,
+ "finishedAt": 3766,
"contentType": "text/css",
"resourceTypeHint": "index-De1Lwdlm.css"
},
@@ -7242,10 +7495,10 @@
"method": "GET",
"url": "https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css",
"resourceType": "stylesheet",
- "startedAt": 3933,
+ "startedAt": 3762,
"status": 200,
"ok": true,
- "finishedAt": 4010,
+ "finishedAt": 3835,
"contentType": "text/css",
"resourceTypeHint": "ionicons.min.css"
},
@@ -7254,10 +7507,10 @@
"method": "GET",
"url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdu.woff2",
"resourceType": "font",
- "startedAt": 4019,
+ "startedAt": 3845,
"status": 200,
"ok": true,
- "finishedAt": 4068,
+ "finishedAt": 3892,
"contentType": "font/woff2",
"resourceTypeHint": "6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdu.woff2"
},
@@ -7266,10 +7519,10 @@
"method": "GET",
"url": "https://code.ionicframework.com/ionicons/2.0.1/fonts/ionicons.ttf?v=2.0.1",
"resourceType": "font",
- "startedAt": 4020,
+ "startedAt": 3846,
"status": 200,
"ok": true,
- "finishedAt": 4125,
+ "finishedAt": 3954,
"contentType": "font/ttf",
"resourceTypeHint": "ionicons.ttf"
},
@@ -7278,10 +7531,10 @@
"method": "GET",
"url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7l.woff2",
"resourceType": "font",
- "startedAt": 4021,
+ "startedAt": 3847,
"status": 200,
"ok": true,
- "finishedAt": 4066,
+ "finishedAt": 3895,
"contentType": "font/woff2",
"resourceTypeHint": "6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7l.woff2"
},
@@ -7290,10 +7543,10 @@
"method": "GET",
"url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwlxdu.woff2",
"resourceType": "font",
- "startedAt": 4021,
+ "startedAt": 3847,
"status": 200,
"ok": true,
- "finishedAt": 4069,
+ "finishedAt": 3897,
"contentType": "font/woff2",
"resourceTypeHint": "6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwlxdu.woff2"
},
@@ -7302,46 +7555,46 @@
"method": "GET",
"url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7nsDI.woff2",
"resourceType": "font",
- "startedAt": 4021,
+ "startedAt": 3848,
"status": 200,
"ok": true,
- "finishedAt": 4069,
+ "finishedAt": 3895,
"contentType": "font/woff2",
"resourceTypeHint": "6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7nsDI.woff2"
},
{
"id": "net-32",
"method": "GET",
- "url": "http://127.0.0.1:37213/api/articles/rd-test-da5a96-1/comments",
+ "url": "http://127.0.0.1:37223/api/articles/rd-test-45949f-1/comments",
"resourceType": "xhr",
- "startedAt": 4023,
+ "startedAt": 3850,
"status": 200,
"ok": true,
- "finishedAt": 4031,
+ "finishedAt": 3859,
"contentType": "application/json",
"resourceTypeHint": "comments"
},
{
"id": "net-33",
"method": "GET",
- "url": "http://127.0.0.1:37213/api/articles/rd-test-da5a96-1",
+ "url": "http://127.0.0.1:37223/api/articles/rd-test-45949f-1",
"resourceType": "xhr",
- "startedAt": 4023,
+ "startedAt": 3851,
"status": 200,
"ok": true,
- "finishedAt": 4032,
+ "finishedAt": 3861,
"contentType": "application/json",
- "resourceTypeHint": "rd-test-da5a96-1"
+ "resourceTypeHint": "rd-test-45949f-1"
},
{
"id": "net-34",
"method": "GET",
- "url": "http://127.0.0.1:37213/api/user",
+ "url": "http://127.0.0.1:37223/api/user",
"resourceType": "xhr",
- "startedAt": 4024,
+ "startedAt": 3851,
"status": 200,
"ok": true,
- "finishedAt": 4029,
+ "finishedAt": 3857,
"contentType": "application/json",
"resourceTypeHint": "user"
},
@@ -7350,10 +7603,10 @@
"method": "GET",
"url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwlxdu.woff2",
"resourceType": "font",
- "startedAt": 4036,
+ "startedAt": 3867,
"status": 200,
"ok": true,
- "finishedAt": 4105,
+ "finishedAt": 3933,
"contentType": "font/woff2",
"resourceTypeHint": "6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwlxdu.woff2"
}
@@ -7366,28 +7619,28 @@
"selector": "body > div > main > div > div > div > div > form > fieldset > fieldset:nth-of-type(1) > input",
"name": "title",
"type": "text",
- "value": "RD_TEST_DA5A96_1",
+ "value": "RD_TEST_45949F_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_DA5A96_2",
+ "value": "RD_TEST_45949F_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_DA5A96_3",
+ "value": "RD_TEST_45949F_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_DA5A96_4",
+ "value": "RD_TEST_45949F_4",
"redacted": false
}
],
@@ -7396,6 +7649,12 @@
"downloadEvidence": [],
"uploads": [],
"popupUrls": [],
+ "visualSuppressions": [
+ {
+ "artifact": "screenshot",
+ "reason": "authenticated-context"
+ }
+ ],
"locatorResolution": {
"attempts": [
{
@@ -7411,10 +7670,10 @@
"retryCount": 0
},
"before": {
- "at": 1485,
- "url": "http://127.0.0.1:37213/#/editor",
+ "at": 1472,
+ "url": "http://127.0.0.1:37223/#/editor",
"title": "Conduit",
- "domHash": "25121aa0be44bdb5",
+ "domHash": "c936833dbedd7df2",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -7426,9 +7685,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "e43f8008221f4f9e",
+ "textHash": "d0c4b4fdb77a11e9",
"visualHash": "b85410fa0ea5a358",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 Publish Article conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER Publish Article conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
"controls": [
{
"tag": "input",
@@ -7480,7 +7739,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -7497,7 +7756,7 @@
"rows": [
{
"keyHash": "186347d9ea7673a2",
- "rowHash": "0d57a14d8f768e38",
+ "rowHash": "513a00e32394f4c2",
"softDeleted": false
}
],
@@ -7508,9 +7767,85 @@
"resource": "users",
"schemaHash": "b7a8a911cd0fd4e9",
"rows": [
+ {
+ "keyHash": "186347d9ea7673a2",
+ "rowHash": "4d8311a4b9df0bbb",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "da7114755c3b82ba",
+ "rowHash": "39bd56af0b169023",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "84cf60166b2ca345",
+ "rowHash": "aa49653a67bcd399",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "9ef59241e15425e0",
+ "rowHash": "3343e1b012ad4f04",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "82a8445b12df5a29",
+ "rowHash": "db866c24a3538c63",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "667da1af4b45220f",
+ "rowHash": "5c8f98476fb3bfca",
+ "softDeleted": false
+ }
+ ],
+ "truncated": false
+ },
+ {
+ "adapter": "supabase",
+ "resource": "articles",
+ "schemaHash": "777de19e0eca5f66",
+ "rows": [
+ {
+ "keyHash": "186347d9ea7673a2",
+ "rowHash": "513a00e32394f4c2",
+ "softDeleted": false
+ }
+ ],
+ "truncated": false
+ },
+ {
+ "adapter": "supabase",
+ "resource": "users",
+ "schemaHash": "cd9a96cfad9b0bff",
+ "rows": [
+ {
+ "keyHash": "186347d9ea7673a2",
+ "rowHash": "4d8311a4b9df0bbb",
+ "softDeleted": false
+ },
{
"keyHash": "da7114755c3b82ba",
- "rowHash": "f1108a413122f589",
+ "rowHash": "39bd56af0b169023",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "84cf60166b2ca345",
+ "rowHash": "aa49653a67bcd399",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "9ef59241e15425e0",
+ "rowHash": "3343e1b012ad4f04",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "82a8445b12df5a29",
+ "rowHash": "db866c24a3538c63",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "667da1af4b45220f",
+ "rowHash": "5c8f98476fb3bfca",
"softDeleted": false
}
],
@@ -7519,10 +7854,10 @@
]
},
"beforeAction": {
- "at": 1543,
- "url": "http://127.0.0.1:37213/#/editor",
+ "at": 1525,
+ "url": "http://127.0.0.1:37223/#/editor",
"title": "Conduit",
- "domHash": "b53f12e3dc5c5bc6",
+ "domHash": "65af1d2ea7b617ef",
"canaryPresent": true,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -7534,15 +7869,15 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "e43f8008221f4f9e",
+ "textHash": "d0c4b4fdb77a11e9",
"visualHash": "b85410fa0ea5a358",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 Publish Article conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER Publish Article conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
"controls": [
{
"tag": "input",
"type": "text",
"name": "title",
- "valueHash": "729300c48ba0be4d",
+ "valueHash": "9af386305dcabcbe",
"checked": false,
"disabled": false,
"visible": true
@@ -7551,7 +7886,7 @@
"tag": "input",
"type": "text",
"name": "description",
- "valueHash": "f604f5ce42ef40fa",
+ "valueHash": "b06e64fc9b78efc3",
"checked": false,
"disabled": false,
"visible": true
@@ -7560,7 +7895,7 @@
"tag": "textarea",
"type": "textarea",
"name": "body",
- "valueHash": "3d3aa4e1d86879f9",
+ "valueHash": "cff0250006ad2053",
"disabled": false,
"visible": true
},
@@ -7568,7 +7903,7 @@
"tag": "input",
"type": "text",
"name": "tags",
- "valueHash": "09cfa9d45a1a2918",
+ "valueHash": "396822fa8e888ce0",
"checked": false,
"disabled": false,
"visible": true
@@ -7588,7 +7923,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -7602,10 +7937,10 @@
"networkSettled": true,
"targetBusyAfter": false,
"after": {
- "at": 2650,
- "url": "http://127.0.0.1:37213/#/article/rd-test-da5a96-1",
+ "at": 2639,
+ "url": "http://127.0.0.1:37223/#/article/rd-test-45949f-1",
"title": "Conduit",
- "domHash": "44fd42b1b6f0eca6",
+ "domHash": "263b32055f567ffa",
"canaryPresent": true,
"bodyCanaryPresent": true,
"temporaryBlobUrls": 0,
@@ -7617,9 +7952,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "ff658a462349de63",
+ "textHash": "92798a4716147d2c",
"visualHash": "471347ba69eaf940",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 RD_TEST_DA5A96_1 RD_TEST_AFDF00_1 July 26, 2026 Delete Article Edit Article RD_TEST_DA5A96_3 RD_TEST_DA5A96_4 RD_TEST_AFDF00_1 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",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER RD_TEST_45949F_1 RD_PHASE_K_CRUD_OWNER July 26, 2026 Delete Article Edit Article RD_TEST_45949F_3 RD_TEST_45949F_4 RD_PHASE_K_CRUD_OWNER 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",
@@ -7671,7 +8006,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -7688,12 +8023,12 @@
"rows": [
{
"keyHash": "186347d9ea7673a2",
- "rowHash": "0d57a14d8f768e38",
+ "rowHash": "513a00e32394f4c2",
"softDeleted": false
},
{
"keyHash": "da7114755c3b82ba",
- "rowHash": "8a838f560ae73b56",
+ "rowHash": "a43fe358be8329c7",
"softDeleted": false
}
],
@@ -7704,9 +8039,90 @@
"resource": "users",
"schemaHash": "b7a8a911cd0fd4e9",
"rows": [
+ {
+ "keyHash": "186347d9ea7673a2",
+ "rowHash": "4d8311a4b9df0bbb",
+ "softDeleted": false
+ },
{
"keyHash": "da7114755c3b82ba",
- "rowHash": "f1108a413122f589",
+ "rowHash": "39bd56af0b169023",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "84cf60166b2ca345",
+ "rowHash": "aa49653a67bcd399",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "9ef59241e15425e0",
+ "rowHash": "3343e1b012ad4f04",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "82a8445b12df5a29",
+ "rowHash": "db866c24a3538c63",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "667da1af4b45220f",
+ "rowHash": "5c8f98476fb3bfca",
+ "softDeleted": false
+ }
+ ],
+ "truncated": false
+ },
+ {
+ "adapter": "supabase",
+ "resource": "articles",
+ "schemaHash": "777de19e0eca5f66",
+ "rows": [
+ {
+ "keyHash": "186347d9ea7673a2",
+ "rowHash": "513a00e32394f4c2",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "da7114755c3b82ba",
+ "rowHash": "a43fe358be8329c7",
+ "softDeleted": false
+ }
+ ],
+ "truncated": false
+ },
+ {
+ "adapter": "supabase",
+ "resource": "users",
+ "schemaHash": "cd9a96cfad9b0bff",
+ "rows": [
+ {
+ "keyHash": "186347d9ea7673a2",
+ "rowHash": "4d8311a4b9df0bbb",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "da7114755c3b82ba",
+ "rowHash": "39bd56af0b169023",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "84cf60166b2ca345",
+ "rowHash": "aa49653a67bcd399",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "9ef59241e15425e0",
+ "rowHash": "3343e1b012ad4f04",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "82a8445b12df5a29",
+ "rowHash": "db866c24a3538c63",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "667da1af4b45220f",
+ "rowHash": "5c8f98476fb3bfca",
"softDeleted": false
}
],
@@ -7714,12 +8130,11 @@
}
]
},
- "screenshot": "screenshots/b725edd599a8-after.png",
"afterRefresh": {
- "at": 3854,
- "url": "http://127.0.0.1:37213/#/article/rd-test-da5a96-1",
+ "at": 3749,
+ "url": "http://127.0.0.1:37223/#/article/rd-test-45949f-1",
"title": "Conduit",
- "domHash": "44fd42b1b6f0eca6",
+ "domHash": "263b32055f567ffa",
"canaryPresent": true,
"bodyCanaryPresent": true,
"temporaryBlobUrls": 0,
@@ -7731,9 +8146,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "ff658a462349de63",
+ "textHash": "92798a4716147d2c",
"visualHash": "471347ba69eaf940",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 RD_TEST_DA5A96_1 RD_TEST_AFDF00_1 July 26, 2026 Delete Article Edit Article RD_TEST_DA5A96_3 RD_TEST_DA5A96_4 RD_TEST_AFDF00_1 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",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER RD_TEST_45949F_1 RD_PHASE_K_CRUD_OWNER July 26, 2026 Delete Article Edit Article RD_TEST_45949F_3 RD_TEST_45949F_4 RD_PHASE_K_CRUD_OWNER 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",
@@ -7785,7 +8200,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -7795,12 +8210,11 @@
"indexedDb": []
}
},
- "refreshScreenshot": "screenshots/b725edd599a8-refresh.png",
"afterHardRefresh": {
- "at": 4849,
- "url": "http://127.0.0.1:37213/#/article/rd-test-da5a96-1",
+ "at": 4676,
+ "url": "http://127.0.0.1:37223/#/article/rd-test-45949f-1",
"title": "Conduit",
- "domHash": "44fd42b1b6f0eca6",
+ "domHash": "263b32055f567ffa",
"canaryPresent": true,
"bodyCanaryPresent": true,
"temporaryBlobUrls": 0,
@@ -7812,9 +8226,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "ff658a462349de63",
+ "textHash": "92798a4716147d2c",
"visualHash": "471347ba69eaf940",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 RD_TEST_DA5A96_1 RD_TEST_AFDF00_1 July 26, 2026 Delete Article Edit Article RD_TEST_DA5A96_3 RD_TEST_DA5A96_4 RD_TEST_AFDF00_1 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",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER RD_TEST_45949F_1 RD_PHASE_K_CRUD_OWNER July 26, 2026 Delete Article Edit Article RD_TEST_45949F_3 RD_TEST_45949F_4 RD_PHASE_K_CRUD_OWNER 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",
@@ -7866,7 +8280,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -7877,10 +8291,10 @@
}
},
"afterNewTab": {
- "at": 5841,
- "url": "http://127.0.0.1:37213/#/editor",
+ "at": 5654,
+ "url": "http://127.0.0.1:37223/#/editor",
"title": "Conduit",
- "domHash": "25121aa0be44bdb5",
+ "domHash": "c936833dbedd7df2",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -7892,9 +8306,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "e43f8008221f4f9e",
+ "textHash": "d0c4b4fdb77a11e9",
"visualHash": "b85410fa0ea5a358",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 Publish Article conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER Publish Article conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
"controls": [
{
"tag": "input",
@@ -7946,7 +8360,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -7957,10 +8371,10 @@
}
},
"afterNewContext": {
- "at": 7140,
- "url": "http://127.0.0.1:37213/#/article/rd-test-da5a96-1",
+ "at": 6976,
+ "url": "http://127.0.0.1:37223/#/article/rd-test-45949f-1",
"title": "Conduit",
- "domHash": "44fd42b1b6f0eca6",
+ "domHash": "263b32055f567ffa",
"canaryPresent": true,
"bodyCanaryPresent": true,
"temporaryBlobUrls": 0,
@@ -7972,9 +8386,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "ff658a462349de63",
+ "textHash": "92798a4716147d2c",
"visualHash": "471347ba69eaf940",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 RD_TEST_DA5A96_1 RD_TEST_AFDF00_1 July 26, 2026 Delete Article Edit Article RD_TEST_DA5A96_3 RD_TEST_DA5A96_4 RD_TEST_AFDF00_1 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",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER RD_TEST_45949F_1 RD_PHASE_K_CRUD_OWNER July 26, 2026 Delete Article Edit Article RD_TEST_45949F_3 RD_TEST_45949F_4 RD_PHASE_K_CRUD_OWNER 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",
@@ -8026,7 +8440,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -8065,6 +8479,26 @@
"changed": [],
"softDeleted": [],
"truncated": false
+ },
+ {
+ "adapter": "supabase",
+ "resource": "articles",
+ "added": [
+ "da7114755c3b82ba"
+ ],
+ "removed": [],
+ "changed": [],
+ "softDeleted": [],
+ "truncated": false
+ },
+ {
+ "adapter": "supabase",
+ "resource": "users",
+ "added": [],
+ "removed": [],
+ "changed": [],
+ "softDeleted": [],
+ "truncated": false
}
],
"sourceSnapshotErrors": [],
@@ -8078,8 +8512,8 @@
{
"id": "RD-016",
"action": {
- "id": "615ef8bfaf91",
- "pageUrl": "http://127.0.0.1:37213/#/editor",
+ "id": "663211a5be23",
+ "pageUrl": "http://127.0.0.1:37223/#/editor",
"label": "conduit",
"activation": "click",
"kind": "navigation",
@@ -8092,7 +8526,7 @@
"role": "link",
"accessibleName": "conduit",
"text": "conduit",
- "href": "http://127.0.0.1:37213/#/",
+ "href": "http://127.0.0.1:37223/#/",
"candidates": [
{
"strategy": "role",
@@ -8111,7 +8545,7 @@
{
"strategy": "href",
"weight": 72,
- "value": "http://127.0.0.1:37213/#/"
+ "value": "http://127.0.0.1:37223/#/"
},
{
"strategy": "text",
@@ -8129,31 +8563,31 @@
"fields": []
},
"evidence": {
- "startedAt": "2026-07-26T11:00:35.638Z",
- "durationMs": 2528,
- "canary": "RD_TEST_F22938",
+ "startedAt": "2026-07-26T12:20:18.508Z",
+ "durationMs": 2504,
+ "canary": "RD_TEST_DEF33C",
"network": [
{
"id": "net-1",
"method": "GET",
- "url": "http://127.0.0.1:37213/api/articles/feed?limit=3&&offset=0",
+ "url": "http://127.0.0.1:37223/api/articles/feed?limit=3&&offset=0",
"resourceType": "xhr",
- "startedAt": 1550,
+ "startedAt": 1537,
"status": 200,
"ok": true,
- "finishedAt": 1556,
+ "finishedAt": 1543,
"contentType": "application/json",
"resourceTypeHint": "feed"
},
{
"id": "net-2",
"method": "GET",
- "url": "http://127.0.0.1:37213/api/tags",
+ "url": "http://127.0.0.1:37223/api/tags",
"resourceType": "xhr",
- "startedAt": 1551,
+ "startedAt": 1538,
"status": 200,
"ok": true,
- "finishedAt": 1555,
+ "finishedAt": 1542,
"contentType": "application/json",
"resourceTypeHint": "tags"
}
@@ -8167,6 +8601,12 @@
"downloadEvidence": [],
"uploads": [],
"popupUrls": [],
+ "visualSuppressions": [
+ {
+ "artifact": "screenshot",
+ "reason": "authenticated-context"
+ }
+ ],
"locatorResolution": {
"attempts": [
{
@@ -8195,14 +8635,14 @@
"weight": 60,
"matchCount": 2,
"visibleCount": 2,
- "elapsedMs": 6
+ "elapsedMs": 5
},
{
"strategy": "css",
"weight": 35,
"matchCount": 1,
"visibleCount": 1,
- "elapsedMs": 3
+ "elapsedMs": 4
}
],
"chosenStrategy": "css",
@@ -8210,10 +8650,10 @@
"retryCount": 0
},
"before": {
- "at": 1514,
- "url": "http://127.0.0.1:37213/#/editor",
+ "at": 1498,
+ "url": "http://127.0.0.1:37223/#/editor",
"title": "Conduit",
- "domHash": "25121aa0be44bdb5",
+ "domHash": "c936833dbedd7df2",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -8225,9 +8665,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "e43f8008221f4f9e",
+ "textHash": "d0c4b4fdb77a11e9",
"visualHash": "b85410fa0ea5a358",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 Publish Article conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER Publish Article conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
"controls": [
{
"tag": "input",
@@ -8279,7 +8719,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -8290,10 +8730,10 @@
}
},
"beforeAction": {
- "at": 1522,
- "url": "http://127.0.0.1:37213/#/editor",
+ "at": 1506,
+ "url": "http://127.0.0.1:37223/#/editor",
"title": "Conduit",
- "domHash": "25121aa0be44bdb5",
+ "domHash": "c936833dbedd7df2",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -8305,9 +8745,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "e43f8008221f4f9e",
+ "textHash": "d0c4b4fdb77a11e9",
"visualHash": "b85410fa0ea5a358",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 Publish Article conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER Publish Article conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
"controls": [
{
"tag": "input",
@@ -8359,7 +8799,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -8372,10 +8812,10 @@
"networkSettled": true,
"targetBusyAfter": false,
"after": {
- "at": 2524,
- "url": "http://127.0.0.1:37213/#/",
+ "at": 2500,
+ "url": "http://127.0.0.1:37223/#/",
"title": "Conduit",
- "domHash": "f16e71f9610b9322",
+ "domHash": "82970581dc3ba0ed",
"canaryPresent": false,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -8387,9 +8827,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "a8b069a14856a893",
+ "textHash": "38646687161ebd53",
"visualHash": "efa2f7065933782f",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_1 Your Feed Global Feed Articles not available. Popular Tags RD_TEST_1DB90D_4RD_TEST_DA5A96_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
+ "text": "conduit Source code Home New Article RD_PHASE_K_CRUD_OWNER Your Feed Global Feed Articles not available. Popular Tags RD_TEST_F3F938_4RD_TEST_45949F_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code",
"controls": [
{
"tag": "button",
@@ -8427,7 +8867,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "a7264f4e63c29386",
+ "valueHash": "2dae499c83c06299",
"containsCanary": false
}
],
@@ -8455,8 +8895,8 @@
{
"id": "RD-017",
"action": {
- "id": "992665d7b765",
- "pageUrl": "http://127.0.0.1:37213/#/editor/rd-test-1db90d-1",
+ "id": "ecbb56a1273c",
+ "pageUrl": "http://127.0.0.1:37223/#/editor/rd-test-497c2f-1",
"label": "Source code",
"activation": "click",
"kind": "navigation",
@@ -8528,8 +8968,8 @@
{
"id": "RD-018",
"action": {
- "id": "bba422159b08",
- "pageUrl": "http://127.0.0.1:37213/#/editor/rd-test-1db90d-1",
+ "id": "4293b867b579",
+ "pageUrl": "http://127.0.0.1:37223/#/editor/rd-test-497c2f-1",
"label": "Thinkster",
"activation": "click",
"kind": "navigation",
@@ -8601,8 +9041,8 @@
{
"id": "RD-019",
"action": {
- "id": "c146986c5ac9",
- "pageUrl": "http://127.0.0.1:37213/#/editor/rd-test-1db90d-1",
+ "id": "8651bc066e40",
+ "pageUrl": "http://127.0.0.1:37223/#/editor/rd-test-497c2f-1",
"label": "Source code",
"activation": "click",
"kind": "navigation",
@@ -8674,8 +9114,8 @@
{
"id": "RD-020",
"action": {
- "id": "36a91b6a1f72",
- "pageUrl": "http://127.0.0.1:37213/",
+ "id": "dff655920243",
+ "pageUrl": "http://127.0.0.1:37223/",
"label": "Source code",
"activation": "click",
"kind": "navigation",
@@ -8747,8 +9187,8 @@
{
"id": "RD-021",
"action": {
- "id": "731b624cc34c",
- "pageUrl": "http://127.0.0.1:37213/",
+ "id": "d0d3611360e0",
+ "pageUrl": "http://127.0.0.1:37223/",
"label": "Thinkster",
"activation": "click",
"kind": "navigation",
@@ -8820,8 +9260,8 @@
{
"id": "RD-022",
"action": {
- "id": "c5063859c1ad",
- "pageUrl": "http://127.0.0.1:37213/",
+ "id": "aece598f17f5",
+ "pageUrl": "http://127.0.0.1:37223/",
"label": "Source code",
"activation": "click",
"kind": "navigation",
@@ -8893,8 +9333,8 @@
{
"id": "RD-023",
"action": {
- "id": "cf7f7e055d50",
- "pageUrl": "http://127.0.0.1:37213/#/editor",
+ "id": "d26ff438143d",
+ "pageUrl": "http://127.0.0.1:37223/#/editor",
"label": "Source code",
"activation": "click",
"kind": "navigation",
@@ -8966,8 +9406,8 @@
{
"id": "RD-024",
"action": {
- "id": "38dd0a454d48",
- "pageUrl": "http://127.0.0.1:37213/#/editor",
+ "id": "f33e20a1aa27",
+ "pageUrl": "http://127.0.0.1:37223/#/editor",
"label": "New Article",
"activation": "click",
"kind": "navigation",
@@ -8980,7 +9420,7 @@
"role": "link",
"accessibleName": "New Article",
"text": "New Article",
- "href": "http://127.0.0.1:37213/#/editor",
+ "href": "http://127.0.0.1:37223/#/editor",
"candidates": [
{
"strategy": "role",
@@ -8999,7 +9439,7 @@
{
"strategy": "href",
"weight": 72,
- "value": "http://127.0.0.1:37213/#/editor"
+ "value": "http://127.0.0.1:37223/#/editor"
},
{
"strategy": "text",
@@ -9039,8 +9479,8 @@
{
"id": "RD-025",
"action": {
- "id": "955bb7c4ae7a",
- "pageUrl": "http://127.0.0.1:37213/#/editor",
+ "id": "7c82bc9fd8ce",
+ "pageUrl": "http://127.0.0.1:37223/#/editor",
"label": "Thinkster",
"activation": "click",
"kind": "navigation",
@@ -9112,8 +9552,8 @@
{
"id": "RD-026",
"action": {
- "id": "865611a40b7e",
- "pageUrl": "http://127.0.0.1:37213/#/editor",
+ "id": "ab9bf2cd0dfb",
+ "pageUrl": "http://127.0.0.1:37223/#/editor",
"label": "Source code",
"activation": "click",
"kind": "navigation",
@@ -9185,9 +9625,9 @@
],
"environment": {
"status": "VALID",
- "checkedAt": "2026-07-26T10:59:40.261Z",
- "durationMs": 3948,
- "targetUrl": "http://127.0.0.1:37213/#/editor/rd-test-1db90d-1",
+ "checkedAt": "2026-07-26T12:19:23.343Z",
+ "durationMs": 3991,
+ "targetUrl": "http://127.0.0.1:37223/#/editor/rd-test-497c2f-1",
"mainDocument": {
"status": 200,
"contentType": "text/html"
@@ -9199,7 +9639,7 @@
"failed": 0
},
"render": {
- "bodyTextLength": 170,
+ "bodyTextLength": 175,
"visibleElements": 44,
"interactiveElements": 12,
"ready": true
diff --git a/release/evidence/raw/conduit-sources.scan.json b/release/evidence/raw/conduit-sources.scan.json
index da1e065..ac0e901 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": "20260726T104933Z-2a05",
- "targetUrl": "http://127.0.0.1:37213/",
- "startedAt": "2026-07-26T10:49:33.332Z",
- "finishedAt": "2026-07-26T10:50:35.155Z",
+ "scanId": "20260726T121026Z-1d20",
+ "targetUrl": "http://127.0.0.1:37223/",
+ "startedAt": "2026-07-26T12:10:26.292Z",
+ "finishedAt": "2026-07-26T12:11:30.879Z",
"options": {
"maxPages": 10,
"maxActions": 100,
@@ -41,12 +41,12 @@
},
"pages": [
{
- "url": "http://127.0.0.1:37213/",
+ "url": "http://127.0.0.1:37223/",
"title": "Conduit",
"actions": [
{
- "id": "a0147c56db57",
- "pageUrl": "http://127.0.0.1:37213/",
+ "id": "92446496b665",
+ "pageUrl": "http://127.0.0.1:37223/",
"label": "conduit",
"activation": "click",
"kind": "navigation",
@@ -59,7 +59,7 @@
"role": "link",
"accessibleName": "conduit",
"text": "conduit",
- "href": "http://127.0.0.1:37213/#/",
+ "href": "http://127.0.0.1:37223/#/",
"candidates": [
{
"strategy": "role",
@@ -78,7 +78,7 @@
{
"strategy": "href",
"weight": 72,
- "value": "http://127.0.0.1:37213/#/"
+ "value": "http://127.0.0.1:37223/#/"
},
{
"strategy": "text",
@@ -96,8 +96,8 @@
"fields": []
},
{
- "id": "36a91b6a1f72",
- "pageUrl": "http://127.0.0.1:37213/",
+ "id": "dff655920243",
+ "pageUrl": "http://127.0.0.1:37223/",
"label": "Source code",
"activation": "click",
"kind": "navigation",
@@ -147,8 +147,8 @@
"fields": []
},
{
- "id": "63ad14060515",
- "pageUrl": "http://127.0.0.1:37213/",
+ "id": "3800f03bc706",
+ "pageUrl": "http://127.0.0.1:37223/",
"label": "Home",
"activation": "click",
"kind": "navigation",
@@ -161,7 +161,7 @@
"role": "link",
"accessibleName": "Home",
"text": "Home",
- "href": "http://127.0.0.1:37213/#/",
+ "href": "http://127.0.0.1:37223/#/",
"candidates": [
{
"strategy": "role",
@@ -180,7 +180,7 @@
{
"strategy": "href",
"weight": 72,
- "value": "http://127.0.0.1:37213/#/"
+ "value": "http://127.0.0.1:37223/#/"
},
{
"strategy": "text",
@@ -198,8 +198,8 @@
"fields": []
},
{
- "id": "fbcb31d578a0",
- "pageUrl": "http://127.0.0.1:37213/",
+ "id": "8cb6c7751826",
+ "pageUrl": "http://127.0.0.1:37223/",
"label": "Login",
"activation": "click",
"kind": "navigation",
@@ -212,7 +212,7 @@
"role": "link",
"accessibleName": "Login",
"text": "Login",
- "href": "http://127.0.0.1:37213/#/login",
+ "href": "http://127.0.0.1:37223/#/login",
"candidates": [
{
"strategy": "role",
@@ -231,7 +231,7 @@
{
"strategy": "href",
"weight": 72,
- "value": "http://127.0.0.1:37213/#/login"
+ "value": "http://127.0.0.1:37223/#/login"
},
{
"strategy": "text",
@@ -249,8 +249,8 @@
"fields": []
},
{
- "id": "1a3562360a45",
- "pageUrl": "http://127.0.0.1:37213/",
+ "id": "1774d9e8a069",
+ "pageUrl": "http://127.0.0.1:37223/",
"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:37213/#/register",
+ "href": "http://127.0.0.1:37223/#/register",
"candidates": [
{
"strategy": "role",
@@ -282,7 +282,7 @@
{
"strategy": "href",
"weight": 72,
- "value": "http://127.0.0.1:37213/#/register"
+ "value": "http://127.0.0.1:37223/#/register"
},
{
"strategy": "text",
@@ -300,8 +300,8 @@
"fields": []
},
{
- "id": "a623d49666be",
- "pageUrl": "http://127.0.0.1:37213/",
+ "id": "09cafc4ba90b",
+ "pageUrl": "http://127.0.0.1:37223/",
"label": "Global Feed",
"activation": "click",
"kind": "local",
@@ -346,8 +346,8 @@
"fields": []
},
{
- "id": "60e12226e19d",
- "pageUrl": "http://127.0.0.1:37213/",
+ "id": "9d442a70bdcb",
+ "pageUrl": "http://127.0.0.1:37223/",
"label": "conduit",
"activation": "click",
"kind": "navigation",
@@ -360,7 +360,7 @@
"role": "link",
"accessibleName": "conduit",
"text": "conduit",
- "href": "http://127.0.0.1:37213/#/",
+ "href": "http://127.0.0.1:37223/#/",
"candidates": [
{
"strategy": "role",
@@ -379,7 +379,7 @@
{
"strategy": "href",
"weight": 72,
- "value": "http://127.0.0.1:37213/#/"
+ "value": "http://127.0.0.1:37223/#/"
},
{
"strategy": "text",
@@ -397,8 +397,8 @@
"fields": []
},
{
- "id": "731b624cc34c",
- "pageUrl": "http://127.0.0.1:37213/",
+ "id": "d0d3611360e0",
+ "pageUrl": "http://127.0.0.1:37223/",
"label": "Thinkster",
"activation": "click",
"kind": "navigation",
@@ -448,8 +448,8 @@
"fields": []
},
{
- "id": "c5063859c1ad",
- "pageUrl": "http://127.0.0.1:37213/",
+ "id": "aece598f17f5",
+ "pageUrl": "http://127.0.0.1:37223/",
"label": "Source code",
"activation": "click",
"kind": "navigation",
@@ -501,12 +501,12 @@
]
},
{
- "url": "http://127.0.0.1:37213/#/login",
+ "url": "http://127.0.0.1:37223/#/login",
"title": "Conduit",
"actions": [
{
- "id": "e0ddb36c3731",
- "pageUrl": "http://127.0.0.1:37213/#/login",
+ "id": "97381194cc19",
+ "pageUrl": "http://127.0.0.1:37223/#/login",
"label": "conduit",
"activation": "click",
"kind": "navigation",
@@ -519,7 +519,7 @@
"role": "link",
"accessibleName": "conduit",
"text": "conduit",
- "href": "http://127.0.0.1:37213/#/",
+ "href": "http://127.0.0.1:37223/#/",
"candidates": [
{
"strategy": "role",
@@ -538,7 +538,7 @@
{
"strategy": "href",
"weight": 72,
- "value": "http://127.0.0.1:37213/#/"
+ "value": "http://127.0.0.1:37223/#/"
},
{
"strategy": "text",
@@ -556,8 +556,8 @@
"fields": []
},
{
- "id": "0a96ce3e0599",
- "pageUrl": "http://127.0.0.1:37213/#/login",
+ "id": "0bbdd763f574",
+ "pageUrl": "http://127.0.0.1:37223/#/login",
"label": "Source code",
"activation": "click",
"kind": "navigation",
@@ -607,8 +607,8 @@
"fields": []
},
{
- "id": "22c7207efda0",
- "pageUrl": "http://127.0.0.1:37213/#/login",
+ "id": "545fb8d98a00",
+ "pageUrl": "http://127.0.0.1:37223/#/login",
"label": "Home",
"activation": "click",
"kind": "navigation",
@@ -621,7 +621,7 @@
"role": "link",
"accessibleName": "Home",
"text": "Home",
- "href": "http://127.0.0.1:37213/#/",
+ "href": "http://127.0.0.1:37223/#/",
"candidates": [
{
"strategy": "role",
@@ -640,7 +640,7 @@
{
"strategy": "href",
"weight": 72,
- "value": "http://127.0.0.1:37213/#/"
+ "value": "http://127.0.0.1:37223/#/"
},
{
"strategy": "text",
@@ -658,8 +658,8 @@
"fields": []
},
{
- "id": "8e0749e6c4bd",
- "pageUrl": "http://127.0.0.1:37213/#/login",
+ "id": "8cf8ab594a99",
+ "pageUrl": "http://127.0.0.1:37223/#/login",
"label": "Login",
"activation": "click",
"kind": "navigation",
@@ -672,7 +672,7 @@
"role": "link",
"accessibleName": "Login",
"text": "Login",
- "href": "http://127.0.0.1:37213/#/login",
+ "href": "http://127.0.0.1:37223/#/login",
"candidates": [
{
"strategy": "role",
@@ -691,7 +691,7 @@
{
"strategy": "href",
"weight": 72,
- "value": "http://127.0.0.1:37213/#/login"
+ "value": "http://127.0.0.1:37223/#/login"
},
{
"strategy": "text",
@@ -709,8 +709,8 @@
"fields": []
},
{
- "id": "771b3bf039ac",
- "pageUrl": "http://127.0.0.1:37213/#/login",
+ "id": "ac0e58264fcd",
+ "pageUrl": "http://127.0.0.1:37223/#/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:37213/#/register",
+ "href": "http://127.0.0.1:37223/#/register",
"candidates": [
{
"strategy": "role",
@@ -742,7 +742,7 @@
{
"strategy": "href",
"weight": 72,
- "value": "http://127.0.0.1:37213/#/register"
+ "value": "http://127.0.0.1:37223/#/register"
},
{
"strategy": "text",
@@ -760,8 +760,8 @@
"fields": []
},
{
- "id": "8a2159eabaa0",
- "pageUrl": "http://127.0.0.1:37213/#/login",
+ "id": "112eec96f4d0",
+ "pageUrl": "http://127.0.0.1:37223/#/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:37213/#/register",
+ "href": "http://127.0.0.1:37223/#/register",
"candidates": [
{
"strategy": "role",
@@ -793,7 +793,7 @@
{
"strategy": "href",
"weight": 72,
- "value": "http://127.0.0.1:37213/#/register"
+ "value": "http://127.0.0.1:37223/#/register"
},
{
"strategy": "text",
@@ -811,8 +811,8 @@
"fields": []
},
{
- "id": "e57b4c4aef96",
- "pageUrl": "http://127.0.0.1:37213/#/login",
+ "id": "6063811d0486",
+ "pageUrl": "http://127.0.0.1:37223/#/login",
"label": "Login",
"activation": "submit",
"kind": "mutation",
@@ -861,8 +861,8 @@
]
},
{
- "id": "9e707db551a2",
- "pageUrl": "http://127.0.0.1:37213/#/login",
+ "id": "d04cd10dca74",
+ "pageUrl": "http://127.0.0.1:37223/#/login",
"label": "conduit",
"activation": "click",
"kind": "navigation",
@@ -875,7 +875,7 @@
"role": "link",
"accessibleName": "conduit",
"text": "conduit",
- "href": "http://127.0.0.1:37213/#/",
+ "href": "http://127.0.0.1:37223/#/",
"candidates": [
{
"strategy": "role",
@@ -894,7 +894,7 @@
{
"strategy": "href",
"weight": 72,
- "value": "http://127.0.0.1:37213/#/"
+ "value": "http://127.0.0.1:37223/#/"
},
{
"strategy": "text",
@@ -912,8 +912,8 @@
"fields": []
},
{
- "id": "ea0c68fd2737",
- "pageUrl": "http://127.0.0.1:37213/#/login",
+ "id": "f0f10953de61",
+ "pageUrl": "http://127.0.0.1:37223/#/login",
"label": "Thinkster",
"activation": "click",
"kind": "navigation",
@@ -963,8 +963,8 @@
"fields": []
},
{
- "id": "afb29f9198b9",
- "pageUrl": "http://127.0.0.1:37213/#/login",
+ "id": "f819daae696d",
+ "pageUrl": "http://127.0.0.1:37223/#/login",
"label": "Source code",
"activation": "click",
"kind": "navigation",
@@ -1016,12 +1016,12 @@
]
},
{
- "url": "http://127.0.0.1:37213/#/register",
+ "url": "http://127.0.0.1:37223/#/register",
"title": "Conduit",
"actions": [
{
- "id": "f176b2c13933",
- "pageUrl": "http://127.0.0.1:37213/#/register",
+ "id": "44108ba71372",
+ "pageUrl": "http://127.0.0.1:37223/#/register",
"label": "conduit",
"activation": "click",
"kind": "navigation",
@@ -1034,7 +1034,7 @@
"role": "link",
"accessibleName": "conduit",
"text": "conduit",
- "href": "http://127.0.0.1:37213/#/",
+ "href": "http://127.0.0.1:37223/#/",
"candidates": [
{
"strategy": "role",
@@ -1053,7 +1053,7 @@
{
"strategy": "href",
"weight": 72,
- "value": "http://127.0.0.1:37213/#/"
+ "value": "http://127.0.0.1:37223/#/"
},
{
"strategy": "text",
@@ -1071,8 +1071,8 @@
"fields": []
},
{
- "id": "b6abdef8912c",
- "pageUrl": "http://127.0.0.1:37213/#/register",
+ "id": "03a023e83ccc",
+ "pageUrl": "http://127.0.0.1:37223/#/register",
"label": "Source code",
"activation": "click",
"kind": "navigation",
@@ -1122,8 +1122,8 @@
"fields": []
},
{
- "id": "f488a7413f35",
- "pageUrl": "http://127.0.0.1:37213/#/register",
+ "id": "54a211837ad5",
+ "pageUrl": "http://127.0.0.1:37223/#/register",
"label": "Home",
"activation": "click",
"kind": "navigation",
@@ -1136,7 +1136,7 @@
"role": "link",
"accessibleName": "Home",
"text": "Home",
- "href": "http://127.0.0.1:37213/#/",
+ "href": "http://127.0.0.1:37223/#/",
"candidates": [
{
"strategy": "role",
@@ -1155,7 +1155,7 @@
{
"strategy": "href",
"weight": 72,
- "value": "http://127.0.0.1:37213/#/"
+ "value": "http://127.0.0.1:37223/#/"
},
{
"strategy": "text",
@@ -1173,8 +1173,8 @@
"fields": []
},
{
- "id": "dbcb9b0c432e",
- "pageUrl": "http://127.0.0.1:37213/#/register",
+ "id": "8aa975887dd0",
+ "pageUrl": "http://127.0.0.1:37223/#/register",
"label": "Login",
"activation": "click",
"kind": "navigation",
@@ -1187,7 +1187,7 @@
"role": "link",
"accessibleName": "Login",
"text": "Login",
- "href": "http://127.0.0.1:37213/#/login",
+ "href": "http://127.0.0.1:37223/#/login",
"candidates": [
{
"strategy": "role",
@@ -1206,7 +1206,7 @@
{
"strategy": "href",
"weight": 72,
- "value": "http://127.0.0.1:37213/#/login"
+ "value": "http://127.0.0.1:37223/#/login"
},
{
"strategy": "text",
@@ -1224,8 +1224,8 @@
"fields": []
},
{
- "id": "7eb4978c14a5",
- "pageUrl": "http://127.0.0.1:37213/#/register",
+ "id": "c336224b8b96",
+ "pageUrl": "http://127.0.0.1:37223/#/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:37213/#/register",
+ "href": "http://127.0.0.1:37223/#/register",
"candidates": [
{
"strategy": "role",
@@ -1257,7 +1257,7 @@
{
"strategy": "href",
"weight": 72,
- "value": "http://127.0.0.1:37213/#/register"
+ "value": "http://127.0.0.1:37223/#/register"
},
{
"strategy": "text",
@@ -1275,8 +1275,8 @@
"fields": []
},
{
- "id": "6e82ef58bd97",
- "pageUrl": "http://127.0.0.1:37213/#/register",
+ "id": "f918c5327d24",
+ "pageUrl": "http://127.0.0.1:37223/#/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:37213/#/login",
+ "href": "http://127.0.0.1:37223/#/login",
"candidates": [
{
"strategy": "role",
@@ -1308,7 +1308,7 @@
{
"strategy": "href",
"weight": 72,
- "value": "http://127.0.0.1:37213/#/login"
+ "value": "http://127.0.0.1:37223/#/login"
},
{
"strategy": "text",
@@ -1326,8 +1326,8 @@
"fields": []
},
{
- "id": "f1d2305ca322",
- "pageUrl": "http://127.0.0.1:37213/#/register",
+ "id": "02c10884e578",
+ "pageUrl": "http://127.0.0.1:37223/#/register",
"label": "Sign up",
"activation": "submit",
"kind": "mutation",
@@ -1384,8 +1384,8 @@
]
},
{
- "id": "641cbb0f1c53",
- "pageUrl": "http://127.0.0.1:37213/#/register",
+ "id": "2a8d30d118d1",
+ "pageUrl": "http://127.0.0.1:37223/#/register",
"label": "conduit",
"activation": "click",
"kind": "navigation",
@@ -1398,7 +1398,7 @@
"role": "link",
"accessibleName": "conduit",
"text": "conduit",
- "href": "http://127.0.0.1:37213/#/",
+ "href": "http://127.0.0.1:37223/#/",
"candidates": [
{
"strategy": "role",
@@ -1417,7 +1417,7 @@
{
"strategy": "href",
"weight": 72,
- "value": "http://127.0.0.1:37213/#/"
+ "value": "http://127.0.0.1:37223/#/"
},
{
"strategy": "text",
@@ -1435,8 +1435,8 @@
"fields": []
},
{
- "id": "253c660955b4",
- "pageUrl": "http://127.0.0.1:37213/#/register",
+ "id": "4c473c1e6971",
+ "pageUrl": "http://127.0.0.1:37223/#/register",
"label": "Thinkster",
"activation": "click",
"kind": "navigation",
@@ -1486,8 +1486,8 @@
"fields": []
},
{
- "id": "dcb1127e6e40",
- "pageUrl": "http://127.0.0.1:37213/#/register",
+ "id": "3fb2e5e3bcbe",
+ "pageUrl": "http://127.0.0.1:37223/#/register",
"label": "Source code",
"activation": "click",
"kind": "navigation",
@@ -1543,8 +1543,8 @@
{
"id": "RD-001",
"action": {
- "id": "a0147c56db57",
- "pageUrl": "http://127.0.0.1:37213/",
+ "id": "92446496b665",
+ "pageUrl": "http://127.0.0.1:37223/",
"label": "conduit",
"activation": "click",
"kind": "navigation",
@@ -1557,7 +1557,7 @@
"role": "link",
"accessibleName": "conduit",
"text": "conduit",
- "href": "http://127.0.0.1:37213/#/",
+ "href": "http://127.0.0.1:37223/#/",
"candidates": [
{
"strategy": "role",
@@ -1576,7 +1576,7 @@
{
"strategy": "href",
"weight": 72,
- "value": "http://127.0.0.1:37213/#/"
+ "value": "http://127.0.0.1:37223/#/"
},
{
"strategy": "text",
@@ -1594,9 +1594,9 @@
"fields": []
},
"evidence": {
- "startedAt": "2026-07-26T10:49:40.561Z",
- "durationMs": 2497,
- "canary": "RD_TEST_AEB565",
+ "startedAt": "2026-07-26T12:10:36.416Z",
+ "durationMs": 2508,
+ "canary": "RD_TEST_8404BC",
"network": [],
"console": [],
"pageErrors": [],
@@ -1614,14 +1614,14 @@
"weight": 92,
"matchCount": 2,
"visibleCount": 2,
- "elapsedMs": 11
+ "elapsedMs": 10
},
{
"strategy": "role",
"weight": 82,
"matchCount": 2,
"visibleCount": 2,
- "elapsedMs": 7
+ "elapsedMs": 6
},
{
"strategy": "href",
@@ -1635,14 +1635,14 @@
"weight": 60,
"matchCount": 3,
"visibleCount": 3,
- "elapsedMs": 9
+ "elapsedMs": 10
},
{
"strategy": "css",
"weight": 35,
"matchCount": 1,
"visibleCount": 1,
- "elapsedMs": 3
+ "elapsedMs": 5
}
],
"chosenStrategy": "css",
@@ -1650,8 +1650,8 @@
"retryCount": 0
},
"before": {
- "at": 1485,
- "url": "http://127.0.0.1:37213/",
+ "at": 1495,
+ "url": "http://127.0.0.1:37223/",
"title": "Conduit",
"domHash": "3c44d4d1ff59317a",
"canaryPresent": false,
@@ -1689,8 +1689,8 @@
}
},
"beforeAction": {
- "at": 1495,
- "url": "http://127.0.0.1:37213/",
+ "at": 1505,
+ "url": "http://127.0.0.1:37223/",
"title": "Conduit",
"domHash": "3c44d4d1ff59317a",
"canaryPresent": false,
@@ -1730,8 +1730,8 @@
"networkSettled": true,
"targetBusyAfter": false,
"after": {
- "at": 2492,
- "url": "http://127.0.0.1:37213/#/",
+ "at": 2504,
+ "url": "http://127.0.0.1:37223/#/",
"title": "Conduit",
"domHash": "3c44d4d1ff59317a",
"canaryPresent": false,
@@ -1768,7 +1768,7 @@
"indexedDb": []
}
},
- "trace": "traces/a0147c56db57.zip",
+ "trace": "traces/92446496b665.zip",
"snapshotIndex": "snapshots/RD-001.index.json"
},
"verdict": "VERIFIED",
@@ -1779,8 +1779,8 @@
{
"id": "RD-002",
"action": {
- "id": "63ad14060515",
- "pageUrl": "http://127.0.0.1:37213/",
+ "id": "3800f03bc706",
+ "pageUrl": "http://127.0.0.1:37223/",
"label": "Home",
"activation": "click",
"kind": "navigation",
@@ -1793,7 +1793,7 @@
"role": "link",
"accessibleName": "Home",
"text": "Home",
- "href": "http://127.0.0.1:37213/#/",
+ "href": "http://127.0.0.1:37223/#/",
"candidates": [
{
"strategy": "role",
@@ -1812,7 +1812,7 @@
{
"strategy": "href",
"weight": 72,
- "value": "http://127.0.0.1:37213/#/"
+ "value": "http://127.0.0.1:37223/#/"
},
{
"strategy": "text",
@@ -1830,9 +1830,9 @@
"fields": []
},
"evidence": {
- "startedAt": "2026-07-26T10:49:43.134Z",
- "durationMs": 2457,
- "canary": "RD_TEST_A8F9DA",
+ "startedAt": "2026-07-26T12:10:38.973Z",
+ "durationMs": 2498,
+ "canary": "RD_TEST_F7AC47",
"network": [],
"console": [],
"pageErrors": [],
@@ -1865,8 +1865,8 @@
"retryCount": 0
},
"before": {
- "at": 1439,
- "url": "http://127.0.0.1:37213/",
+ "at": 1479,
+ "url": "http://127.0.0.1:37223/",
"title": "Conduit",
"domHash": "3c44d4d1ff59317a",
"canaryPresent": false,
@@ -1904,8 +1904,8 @@
}
},
"beforeAction": {
- "at": 1448,
- "url": "http://127.0.0.1:37213/",
+ "at": 1487,
+ "url": "http://127.0.0.1:37223/",
"title": "Conduit",
"domHash": "3c44d4d1ff59317a",
"canaryPresent": false,
@@ -1945,8 +1945,8 @@
"networkSettled": true,
"targetBusyAfter": false,
"after": {
- "at": 2453,
- "url": "http://127.0.0.1:37213/#/",
+ "at": 2494,
+ "url": "http://127.0.0.1:37223/#/",
"title": "Conduit",
"domHash": "3c44d4d1ff59317a",
"canaryPresent": false,
@@ -1983,7 +1983,7 @@
"indexedDb": []
}
},
- "trace": "traces/63ad14060515.zip",
+ "trace": "traces/3800f03bc706.zip",
"snapshotIndex": "snapshots/RD-002.index.json"
},
"verdict": "VERIFIED",
@@ -1994,8 +1994,8 @@
{
"id": "RD-003",
"action": {
- "id": "fbcb31d578a0",
- "pageUrl": "http://127.0.0.1:37213/",
+ "id": "8cb6c7751826",
+ "pageUrl": "http://127.0.0.1:37223/",
"label": "Login",
"activation": "click",
"kind": "navigation",
@@ -2008,7 +2008,7 @@
"role": "link",
"accessibleName": "Login",
"text": "Login",
- "href": "http://127.0.0.1:37213/#/login",
+ "href": "http://127.0.0.1:37223/#/login",
"candidates": [
{
"strategy": "role",
@@ -2027,7 +2027,7 @@
{
"strategy": "href",
"weight": 72,
- "value": "http://127.0.0.1:37213/#/login"
+ "value": "http://127.0.0.1:37223/#/login"
},
{
"strategy": "text",
@@ -2045,9 +2045,9 @@
"fields": []
},
"evidence": {
- "startedAt": "2026-07-26T10:49:45.622Z",
- "durationMs": 2439,
- "canary": "RD_TEST_F6BEE6",
+ "startedAt": "2026-07-26T12:10:41.501Z",
+ "durationMs": 2493,
+ "canary": "RD_TEST_E49633",
"network": [],
"console": [],
"pageErrors": [],
@@ -2065,14 +2065,14 @@
"weight": 92,
"matchCount": 0,
"visibleCount": 0,
- "elapsedMs": 4
+ "elapsedMs": 3
},
{
"strategy": "role",
"weight": 82,
"matchCount": 1,
"visibleCount": 1,
- "elapsedMs": 4
+ "elapsedMs": 5
}
],
"chosenStrategy": "role",
@@ -2080,8 +2080,8 @@
"retryCount": 0
},
"before": {
- "at": 1431,
- "url": "http://127.0.0.1:37213/",
+ "at": 1482,
+ "url": "http://127.0.0.1:37223/",
"title": "Conduit",
"domHash": "3c44d4d1ff59317a",
"canaryPresent": false,
@@ -2119,8 +2119,8 @@
}
},
"beforeAction": {
- "at": 1439,
- "url": "http://127.0.0.1:37213/",
+ "at": 1492,
+ "url": "http://127.0.0.1:37223/",
"title": "Conduit",
"domHash": "3c44d4d1ff59317a",
"canaryPresent": false,
@@ -2160,8 +2160,8 @@
"networkSettled": true,
"targetBusyAfter": false,
"after": {
- "at": 2435,
- "url": "http://127.0.0.1:37213/#/login",
+ "at": 2489,
+ "url": "http://127.0.0.1:37223/#/login",
"title": "Conduit",
"domHash": "c659be8900b0e706",
"canaryPresent": false,
@@ -2216,7 +2216,7 @@
"indexedDb": []
}
},
- "trace": "traces/fbcb31d578a0.zip",
+ "trace": "traces/8cb6c7751826.zip",
"snapshotIndex": "snapshots/RD-003.index.json"
},
"verdict": "VERIFIED",
@@ -2227,8 +2227,8 @@
{
"id": "RD-004",
"action": {
- "id": "1a3562360a45",
- "pageUrl": "http://127.0.0.1:37213/",
+ "id": "1774d9e8a069",
+ "pageUrl": "http://127.0.0.1:37223/",
"label": "Sign up",
"activation": "click",
"kind": "navigation",
@@ -2241,7 +2241,7 @@
"role": "link",
"accessibleName": "Sign up",
"text": "Sign up",
- "href": "http://127.0.0.1:37213/#/register",
+ "href": "http://127.0.0.1:37223/#/register",
"candidates": [
{
"strategy": "role",
@@ -2260,7 +2260,7 @@
{
"strategy": "href",
"weight": 72,
- "value": "http://127.0.0.1:37213/#/register"
+ "value": "http://127.0.0.1:37223/#/register"
},
{
"strategy": "text",
@@ -2278,9 +2278,9 @@
"fields": []
},
"evidence": {
- "startedAt": "2026-07-26T10:49:48.106Z",
- "durationMs": 2442,
- "canary": "RD_TEST_F67795",
+ "startedAt": "2026-07-26T12:10:44.042Z",
+ "durationMs": 2453,
+ "canary": "RD_TEST_7397DC",
"network": [],
"console": [],
"pageErrors": [],
@@ -2298,7 +2298,7 @@
"weight": 92,
"matchCount": 1,
"visibleCount": 1,
- "elapsedMs": 5
+ "elapsedMs": 6
}
],
"chosenStrategy": "role",
@@ -2306,8 +2306,8 @@
"retryCount": 0
},
"before": {
- "at": 1449,
- "url": "http://127.0.0.1:37213/",
+ "at": 1458,
+ "url": "http://127.0.0.1:37223/",
"title": "Conduit",
"domHash": "3c44d4d1ff59317a",
"canaryPresent": false,
@@ -2345,8 +2345,8 @@
}
},
"beforeAction": {
- "at": 1458,
- "url": "http://127.0.0.1:37213/",
+ "at": 1467,
+ "url": "http://127.0.0.1:37223/",
"title": "Conduit",
"domHash": "3c44d4d1ff59317a",
"canaryPresent": false,
@@ -2386,8 +2386,8 @@
"networkSettled": true,
"targetBusyAfter": false,
"after": {
- "at": 2438,
- "url": "http://127.0.0.1:37213/#/register",
+ "at": 2449,
+ "url": "http://127.0.0.1:37223/#/register",
"title": "Conduit",
"domHash": "1f4fa65964895f4c",
"canaryPresent": false,
@@ -2451,7 +2451,7 @@
"indexedDb": []
}
},
- "trace": "traces/1a3562360a45.zip",
+ "trace": "traces/1774d9e8a069.zip",
"snapshotIndex": "snapshots/RD-004.index.json"
},
"verdict": "VERIFIED",
@@ -2462,8 +2462,8 @@
{
"id": "RD-005",
"action": {
- "id": "a623d49666be",
- "pageUrl": "http://127.0.0.1:37213/",
+ "id": "09cafc4ba90b",
+ "pageUrl": "http://127.0.0.1:37223/",
"label": "Global Feed",
"activation": "click",
"kind": "local",
@@ -2508,19 +2508,19 @@
"fields": []
},
"evidence": {
- "startedAt": "2026-07-26T10:49:50.595Z",
- "durationMs": 2485,
- "canary": "RD_TEST_04F4BE",
+ "startedAt": "2026-07-26T12:10:46.538Z",
+ "durationMs": 2505,
+ "canary": "RD_TEST_784A17",
"network": [
{
"id": "net-1",
"method": "GET",
- "url": "http://127.0.0.1:37213/api/articles?limit=3&&offset=0",
+ "url": "http://127.0.0.1:37223/api/articles?limit=3&&offset=0",
"resourceType": "xhr",
- "startedAt": 1489,
+ "startedAt": 1487,
"status": 200,
"ok": true,
- "finishedAt": 1499,
+ "finishedAt": 1496,
"contentType": "application/json",
"resourceTypeHint": "articles"
}
@@ -2541,7 +2541,7 @@
"weight": 92,
"matchCount": 1,
"visibleCount": 1,
- "elapsedMs": 4
+ "elapsedMs": 6
}
],
"chosenStrategy": "role",
@@ -2550,7 +2550,7 @@
},
"before": {
"at": 1449,
- "url": "http://127.0.0.1:37213/",
+ "url": "http://127.0.0.1:37223/",
"title": "Conduit",
"domHash": "3c44d4d1ff59317a",
"canaryPresent": false,
@@ -2588,8 +2588,8 @@
}
},
"beforeAction": {
- "at": 1457,
- "url": "http://127.0.0.1:37213/",
+ "at": 1459,
+ "url": "http://127.0.0.1:37223/",
"title": "Conduit",
"domHash": "3c44d4d1ff59317a",
"canaryPresent": false,
@@ -2629,8 +2629,8 @@
"networkSettled": true,
"targetBusyAfter": false,
"after": {
- "at": 2458,
- "url": "http://127.0.0.1:37213/",
+ "at": 2475,
+ "url": "http://127.0.0.1:37223/",
"title": "Conduit",
"domHash": "3c44d4d1ff59317a",
"canaryPresent": false,
@@ -2667,8 +2667,8 @@
"indexedDb": []
}
},
- "screenshot": "screenshots/a623d49666be-after.png",
- "trace": "traces/a623d49666be.zip",
+ "screenshot": "screenshots/09cafc4ba90b-after.png",
+ "trace": "traces/09cafc4ba90b.zip",
"snapshotIndex": "snapshots/RD-005.index.json"
},
"verdict": "VERIFIED",
@@ -2679,8 +2679,8 @@
{
"id": "RD-006",
"action": {
- "id": "60e12226e19d",
- "pageUrl": "http://127.0.0.1:37213/",
+ "id": "9d442a70bdcb",
+ "pageUrl": "http://127.0.0.1:37223/",
"label": "conduit",
"activation": "click",
"kind": "navigation",
@@ -2693,7 +2693,7 @@
"role": "link",
"accessibleName": "conduit",
"text": "conduit",
- "href": "http://127.0.0.1:37213/#/",
+ "href": "http://127.0.0.1:37223/#/",
"candidates": [
{
"strategy": "role",
@@ -2712,7 +2712,7 @@
{
"strategy": "href",
"weight": 72,
- "value": "http://127.0.0.1:37213/#/"
+ "value": "http://127.0.0.1:37223/#/"
},
{
"strategy": "text",
@@ -2730,9 +2730,9 @@
"fields": []
},
"evidence": {
- "startedAt": "2026-07-26T10:49:53.113Z",
- "durationMs": 2515,
- "canary": "RD_TEST_DE37F5",
+ "startedAt": "2026-07-26T12:10:49.084Z",
+ "durationMs": 2458,
+ "canary": "RD_TEST_F15AFB",
"network": [],
"console": [],
"pageErrors": [],
@@ -2750,7 +2750,7 @@
"weight": 92,
"matchCount": 2,
"visibleCount": 2,
- "elapsedMs": 8
+ "elapsedMs": 7
},
{
"strategy": "role",
@@ -2771,14 +2771,14 @@
"weight": 60,
"matchCount": 3,
"visibleCount": 3,
- "elapsedMs": 7
+ "elapsedMs": 8
},
{
"strategy": "css",
"weight": 35,
"matchCount": 1,
"visibleCount": 1,
- "elapsedMs": 4
+ "elapsedMs": 3
}
],
"chosenStrategy": "css",
@@ -2786,8 +2786,8 @@
"retryCount": 0
},
"before": {
- "at": 1502,
- "url": "http://127.0.0.1:37213/",
+ "at": 1452,
+ "url": "http://127.0.0.1:37223/",
"title": "Conduit",
"domHash": "3c44d4d1ff59317a",
"canaryPresent": false,
@@ -2825,8 +2825,8 @@
}
},
"beforeAction": {
- "at": 1510,
- "url": "http://127.0.0.1:37213/",
+ "at": 1460,
+ "url": "http://127.0.0.1:37223/",
"title": "Conduit",
"domHash": "3c44d4d1ff59317a",
"canaryPresent": false,
@@ -2866,8 +2866,8 @@
"networkSettled": true,
"targetBusyAfter": false,
"after": {
- "at": 2511,
- "url": "http://127.0.0.1:37213/#/",
+ "at": 2454,
+ "url": "http://127.0.0.1:37223/#/",
"title": "Conduit",
"domHash": "3c44d4d1ff59317a",
"canaryPresent": false,
@@ -2904,7 +2904,7 @@
"indexedDb": []
}
},
- "trace": "traces/60e12226e19d.zip",
+ "trace": "traces/9d442a70bdcb.zip",
"snapshotIndex": "snapshots/RD-006.index.json"
},
"verdict": "VERIFIED",
@@ -2915,8 +2915,8 @@
{
"id": "RD-007",
"action": {
- "id": "e0ddb36c3731",
- "pageUrl": "http://127.0.0.1:37213/#/login",
+ "id": "97381194cc19",
+ "pageUrl": "http://127.0.0.1:37223/#/login",
"label": "conduit",
"activation": "click",
"kind": "navigation",
@@ -2929,7 +2929,7 @@
"role": "link",
"accessibleName": "conduit",
"text": "conduit",
- "href": "http://127.0.0.1:37213/#/",
+ "href": "http://127.0.0.1:37223/#/",
"candidates": [
{
"strategy": "role",
@@ -2948,7 +2948,7 @@
{
"strategy": "href",
"weight": 72,
- "value": "http://127.0.0.1:37213/#/"
+ "value": "http://127.0.0.1:37223/#/"
},
{
"strategy": "text",
@@ -2966,31 +2966,31 @@
"fields": []
},
"evidence": {
- "startedAt": "2026-07-26T10:49:55.656Z",
- "durationMs": 2435,
- "canary": "RD_TEST_35F1D2",
+ "startedAt": "2026-07-26T12:10:51.575Z",
+ "durationMs": 2489,
+ "canary": "RD_TEST_BD2F46",
"network": [
{
"id": "net-1",
"method": "GET",
- "url": "http://127.0.0.1:37213/api/articles?limit=3&&offset=0",
+ "url": "http://127.0.0.1:37223/api/articles?limit=3&&offset=0",
"resourceType": "xhr",
- "startedAt": 1477,
+ "startedAt": 1501,
"status": 200,
"ok": true,
+ "finishedAt": 1514,
"contentType": "application/json",
- "resourceTypeHint": "articles",
- "finishedAt": 1482
+ "resourceTypeHint": "articles"
},
{
"id": "net-2",
"method": "GET",
- "url": "http://127.0.0.1:37213/api/tags",
+ "url": "http://127.0.0.1:37223/api/tags",
"resourceType": "xhr",
- "startedAt": 1477,
+ "startedAt": 1503,
"status": 200,
"ok": true,
- "finishedAt": 1482,
+ "finishedAt": 1514,
"contentType": "application/json",
"resourceTypeHint": "tags"
}
@@ -3011,14 +3011,14 @@
"weight": 92,
"matchCount": 2,
"visibleCount": 2,
- "elapsedMs": 7
+ "elapsedMs": 8
},
{
"strategy": "role",
"weight": 82,
"matchCount": 2,
"visibleCount": 2,
- "elapsedMs": 6
+ "elapsedMs": 7
},
{
"strategy": "href",
@@ -3039,7 +3039,7 @@
"weight": 35,
"matchCount": 1,
"visibleCount": 1,
- "elapsedMs": 4
+ "elapsedMs": 3
}
],
"chosenStrategy": "css",
@@ -3047,8 +3047,8 @@
"retryCount": 0
},
"before": {
- "at": 1441,
- "url": "http://127.0.0.1:37213/#/login",
+ "at": 1455,
+ "url": "http://127.0.0.1:37223/#/login",
"title": "Conduit",
"domHash": "c659be8900b0e706",
"canaryPresent": false,
@@ -3104,8 +3104,8 @@
}
},
"beforeAction": {
- "at": 1449,
- "url": "http://127.0.0.1:37213/#/login",
+ "at": 1464,
+ "url": "http://127.0.0.1:37223/#/login",
"title": "Conduit",
"domHash": "c659be8900b0e706",
"canaryPresent": false,
@@ -3163,8 +3163,8 @@
"networkSettled": true,
"targetBusyAfter": false,
"after": {
- "at": 2431,
- "url": "http://127.0.0.1:37213/#/",
+ "at": 2485,
+ "url": "http://127.0.0.1:37223/#/",
"title": "Conduit",
"domHash": "3c44d4d1ff59317a",
"canaryPresent": false,
@@ -3201,7 +3201,7 @@
"indexedDb": []
}
},
- "trace": "traces/e0ddb36c3731.zip",
+ "trace": "traces/97381194cc19.zip",
"snapshotIndex": "snapshots/RD-007.index.json"
},
"verdict": "VERIFIED",
@@ -3212,8 +3212,8 @@
{
"id": "RD-008",
"action": {
- "id": "22c7207efda0",
- "pageUrl": "http://127.0.0.1:37213/#/login",
+ "id": "545fb8d98a00",
+ "pageUrl": "http://127.0.0.1:37223/#/login",
"label": "Home",
"activation": "click",
"kind": "navigation",
@@ -3226,7 +3226,7 @@
"role": "link",
"accessibleName": "Home",
"text": "Home",
- "href": "http://127.0.0.1:37213/#/",
+ "href": "http://127.0.0.1:37223/#/",
"candidates": [
{
"strategy": "role",
@@ -3245,7 +3245,7 @@
{
"strategy": "href",
"weight": 72,
- "value": "http://127.0.0.1:37213/#/"
+ "value": "http://127.0.0.1:37223/#/"
},
{
"strategy": "text",
@@ -3263,33 +3263,33 @@
"fields": []
},
"evidence": {
- "startedAt": "2026-07-26T10:49:58.137Z",
- "durationMs": 2451,
- "canary": "RD_TEST_2E07A8",
+ "startedAt": "2026-07-26T12:10:54.113Z",
+ "durationMs": 2460,
+ "canary": "RD_TEST_FCB9BF",
"network": [
{
"id": "net-1",
"method": "GET",
- "url": "http://127.0.0.1:37213/api/articles?limit=3&&offset=0",
+ "url": "http://127.0.0.1:37223/api/articles?limit=3&&offset=0",
"resourceType": "xhr",
- "startedAt": 1497,
+ "startedAt": 1493,
"status": 200,
"ok": true,
- "finishedAt": 1502,
"contentType": "application/json",
- "resourceTypeHint": "articles"
+ "resourceTypeHint": "articles",
+ "finishedAt": 1498
},
{
"id": "net-2",
"method": "GET",
- "url": "http://127.0.0.1:37213/api/tags",
+ "url": "http://127.0.0.1:37223/api/tags",
"resourceType": "xhr",
- "startedAt": 1497,
+ "startedAt": 1494,
"status": 200,
"ok": true,
+ "finishedAt": 1499,
"contentType": "application/json",
- "resourceTypeHint": "tags",
- "finishedAt": 1501
+ "resourceTypeHint": "tags"
}
],
"console": [],
@@ -3315,7 +3315,7 @@
"weight": 82,
"matchCount": 1,
"visibleCount": 1,
- "elapsedMs": 4
+ "elapsedMs": 5
}
],
"chosenStrategy": "role",
@@ -3323,8 +3323,8 @@
"retryCount": 0
},
"before": {
- "at": 1461,
- "url": "http://127.0.0.1:37213/#/login",
+ "at": 1454,
+ "url": "http://127.0.0.1:37223/#/login",
"title": "Conduit",
"domHash": "c659be8900b0e706",
"canaryPresent": false,
@@ -3380,8 +3380,8 @@
}
},
"beforeAction": {
- "at": 1470,
- "url": "http://127.0.0.1:37213/#/login",
+ "at": 1464,
+ "url": "http://127.0.0.1:37223/#/login",
"title": "Conduit",
"domHash": "c659be8900b0e706",
"canaryPresent": false,
@@ -3439,8 +3439,8 @@
"networkSettled": true,
"targetBusyAfter": false,
"after": {
- "at": 2447,
- "url": "http://127.0.0.1:37213/#/",
+ "at": 2457,
+ "url": "http://127.0.0.1:37223/#/",
"title": "Conduit",
"domHash": "3c44d4d1ff59317a",
"canaryPresent": false,
@@ -3477,7 +3477,7 @@
"indexedDb": []
}
},
- "trace": "traces/22c7207efda0.zip",
+ "trace": "traces/545fb8d98a00.zip",
"snapshotIndex": "snapshots/RD-008.index.json"
},
"verdict": "VERIFIED",
@@ -3488,8 +3488,8 @@
{
"id": "RD-009",
"action": {
- "id": "771b3bf039ac",
- "pageUrl": "http://127.0.0.1:37213/#/login",
+ "id": "ac0e58264fcd",
+ "pageUrl": "http://127.0.0.1:37223/#/login",
"label": "Sign up",
"activation": "click",
"kind": "navigation",
@@ -3502,7 +3502,7 @@
"role": "link",
"accessibleName": "Sign up",
"text": "Sign up",
- "href": "http://127.0.0.1:37213/#/register",
+ "href": "http://127.0.0.1:37223/#/register",
"candidates": [
{
"strategy": "role",
@@ -3521,7 +3521,7 @@
{
"strategy": "href",
"weight": 72,
- "value": "http://127.0.0.1:37213/#/register"
+ "value": "http://127.0.0.1:37223/#/register"
},
{
"strategy": "text",
@@ -3539,9 +3539,9 @@
"fields": []
},
"evidence": {
- "startedAt": "2026-07-26T10:50:00.635Z",
- "durationMs": 2447,
- "canary": "RD_TEST_3F4CC9",
+ "startedAt": "2026-07-26T12:10:56.623Z",
+ "durationMs": 2477,
+ "canary": "RD_TEST_DFE794",
"network": [],
"console": [],
"pageErrors": [],
@@ -3567,8 +3567,8 @@
"retryCount": 0
},
"before": {
- "at": 1436,
- "url": "http://127.0.0.1:37213/#/login",
+ "at": 1462,
+ "url": "http://127.0.0.1:37223/#/login",
"title": "Conduit",
"domHash": "c659be8900b0e706",
"canaryPresent": false,
@@ -3624,8 +3624,8 @@
}
},
"beforeAction": {
- "at": 1444,
- "url": "http://127.0.0.1:37213/#/login",
+ "at": 1471,
+ "url": "http://127.0.0.1:37223/#/login",
"title": "Conduit",
"domHash": "c659be8900b0e706",
"canaryPresent": false,
@@ -3683,8 +3683,8 @@
"networkSettled": true,
"targetBusyAfter": false,
"after": {
- "at": 2444,
- "url": "http://127.0.0.1:37213/#/register",
+ "at": 2473,
+ "url": "http://127.0.0.1:37223/#/register",
"title": "Conduit",
"domHash": "1f4fa65964895f4c",
"canaryPresent": false,
@@ -3748,7 +3748,7 @@
"indexedDb": []
}
},
- "trace": "traces/771b3bf039ac.zip",
+ "trace": "traces/ac0e58264fcd.zip",
"snapshotIndex": "snapshots/RD-009.index.json"
},
"verdict": "VERIFIED",
@@ -3759,8 +3759,8 @@
{
"id": "RD-010",
"action": {
- "id": "8a2159eabaa0",
- "pageUrl": "http://127.0.0.1:37213/#/login",
+ "id": "112eec96f4d0",
+ "pageUrl": "http://127.0.0.1:37223/#/login",
"label": "Need an account?",
"activation": "click",
"kind": "navigation",
@@ -3773,7 +3773,7 @@
"role": "link",
"accessibleName": "Need an account?",
"text": "Need an account?",
- "href": "http://127.0.0.1:37213/#/register",
+ "href": "http://127.0.0.1:37223/#/register",
"candidates": [
{
"strategy": "role",
@@ -3792,7 +3792,7 @@
{
"strategy": "href",
"weight": 72,
- "value": "http://127.0.0.1:37213/#/register"
+ "value": "http://127.0.0.1:37223/#/register"
},
{
"strategy": "text",
@@ -3810,9 +3810,9 @@
"fields": []
},
"evidence": {
- "startedAt": "2026-07-26T10:50:03.128Z",
- "durationMs": 2440,
- "canary": "RD_TEST_C7D1B8",
+ "startedAt": "2026-07-26T12:10:59.140Z",
+ "durationMs": 2462,
+ "canary": "RD_TEST_55D796",
"network": [],
"console": [],
"pageErrors": [],
@@ -3838,8 +3838,8 @@
"retryCount": 0
},
"before": {
- "at": 1425,
- "url": "http://127.0.0.1:37213/#/login",
+ "at": 1447,
+ "url": "http://127.0.0.1:37223/#/login",
"title": "Conduit",
"domHash": "c659be8900b0e706",
"canaryPresent": false,
@@ -3895,8 +3895,8 @@
}
},
"beforeAction": {
- "at": 1434,
- "url": "http://127.0.0.1:37213/#/login",
+ "at": 1455,
+ "url": "http://127.0.0.1:37223/#/login",
"title": "Conduit",
"domHash": "c659be8900b0e706",
"canaryPresent": false,
@@ -3954,8 +3954,8 @@
"networkSettled": true,
"targetBusyAfter": false,
"after": {
- "at": 2436,
- "url": "http://127.0.0.1:37213/#/register",
+ "at": 2458,
+ "url": "http://127.0.0.1:37223/#/register",
"title": "Conduit",
"domHash": "1f4fa65964895f4c",
"canaryPresent": false,
@@ -4019,7 +4019,7 @@
"indexedDb": []
}
},
- "trace": "traces/8a2159eabaa0.zip",
+ "trace": "traces/112eec96f4d0.zip",
"snapshotIndex": "snapshots/RD-010.index.json"
},
"verdict": "VERIFIED",
@@ -4030,8 +4030,8 @@
{
"id": "RD-011",
"action": {
- "id": "e57b4c4aef96",
- "pageUrl": "http://127.0.0.1:37213/#/login",
+ "id": "6063811d0486",
+ "pageUrl": "http://127.0.0.1:37223/#/login",
"label": "Login",
"activation": "submit",
"kind": "mutation",
@@ -4080,20 +4080,20 @@
]
},
"evidence": {
- "startedAt": "2026-07-26T10:50:05.820Z",
- "durationMs": 6934,
- "canary": "RD_TEST_38CC21",
+ "startedAt": "2026-07-26T12:11:01.787Z",
+ "durationMs": 6921,
+ "canary": "RD_TEST_BF941C",
"network": [
{
"id": "net-1",
"method": "POST",
- "url": "http://127.0.0.1:37213/api/users/login",
+ "url": "http://127.0.0.1:37223/api/users/login",
"resourceType": "xhr",
- "startedAt": 1549,
+ "startedAt": 1538,
"status": 404,
"ok": false,
"contentType": "application/json",
- "finishedAt": 1560,
+ "finishedAt": 1556,
"resourceTypeHint": "login"
},
{
@@ -4101,34 +4101,34 @@
"method": "GET",
"url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwlxdu.woff2",
"resourceType": "font",
- "startedAt": 1577,
+ "startedAt": 1566,
"status": 200,
"ok": true,
- "finishedAt": 1624,
+ "finishedAt": 1611,
"contentType": "font/woff2",
"resourceTypeHint": "6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwlxdu.woff2"
},
{
"id": "net-3",
"method": "GET",
- "url": "http://127.0.0.1:37213/",
+ "url": "http://127.0.0.1:37223/",
"resourceType": "document",
- "startedAt": 2609,
+ "startedAt": 2584,
"status": 200,
"ok": true,
"contentType": "text/html",
"resourceTypeHint": "resource",
- "finishedAt": 2618
+ "finishedAt": 2592
},
{
"id": "net-4",
"method": "GET",
"url": "http://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css",
"resourceType": "stylesheet",
- "startedAt": 2615,
+ "startedAt": 2590,
"status": 307,
"ok": false,
- "finishedAt": 2619,
+ "finishedAt": 2594,
"location": "https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css",
"resourceTypeHint": "ionicons.min.css"
},
@@ -4137,46 +4137,46 @@
"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": 2616,
+ "startedAt": 2590,
"status": 200,
"ok": true,
- "finishedAt": 2656,
+ "finishedAt": 2630,
"contentType": "text/css",
"resourceTypeHint": "css"
},
{
"id": "net-6",
"method": "GET",
- "url": "http://127.0.0.1:37213/assets/index-CLdavoKn.js",
+ "url": "http://127.0.0.1:37223/assets/index-CLdavoKn.js",
"resourceType": "script",
- "startedAt": 2617,
+ "startedAt": 2591,
"status": 200,
"ok": true,
- "finishedAt": 2630,
+ "finishedAt": 2603,
"contentType": "text/javascript",
"resourceTypeHint": "index-CLdavoKn.js"
},
{
"id": "net-7",
"method": "GET",
- "url": "http://127.0.0.1:37213/assets/index-De1Lwdlm.css",
+ "url": "http://127.0.0.1:37223/assets/index-De1Lwdlm.css",
"resourceType": "stylesheet",
- "startedAt": 2617,
+ "startedAt": 2591,
"status": 200,
"ok": true,
- "finishedAt": 2623,
"contentType": "text/css",
- "resourceTypeHint": "index-De1Lwdlm.css"
+ "resourceTypeHint": "index-De1Lwdlm.css",
+ "finishedAt": 2597
},
{
"id": "net-8",
"method": "GET",
"url": "https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css",
"resourceType": "stylesheet",
- "startedAt": 2619,
+ "startedAt": 2594,
"status": 200,
"ok": true,
- "finishedAt": 2901,
+ "finishedAt": 2892,
"contentType": "text/css",
"resourceTypeHint": "ionicons.min.css"
},
@@ -4185,10 +4185,10 @@
"method": "GET",
"url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdu.woff2",
"resourceType": "font",
- "startedAt": 2908,
+ "startedAt": 2899,
"status": 200,
"ok": true,
- "finishedAt": 2956,
+ "finishedAt": 2949,
"contentType": "font/woff2",
"resourceTypeHint": "6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdu.woff2"
},
@@ -4197,10 +4197,10 @@
"method": "GET",
"url": "https://code.ionicframework.com/ionicons/2.0.1/fonts/ionicons.ttf?v=2.0.1",
"resourceType": "font",
- "startedAt": 2908,
+ "startedAt": 2900,
"status": 200,
"ok": true,
- "finishedAt": 3018,
+ "finishedAt": 3005,
"contentType": "font/ttf",
"resourceTypeHint": "ionicons.ttf"
},
@@ -4209,10 +4209,10 @@
"method": "GET",
"url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7l.woff2",
"resourceType": "font",
- "startedAt": 2909,
+ "startedAt": 2901,
"status": 200,
"ok": true,
- "finishedAt": 2955,
+ "finishedAt": 2946,
"contentType": "font/woff2",
"resourceTypeHint": "6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7l.woff2"
},
@@ -4221,34 +4221,34 @@
"method": "GET",
"url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7nsDI.woff2",
"resourceType": "font",
- "startedAt": 2909,
+ "startedAt": 2901,
"status": 200,
"ok": true,
- "finishedAt": 2955,
+ "finishedAt": 2945,
"contentType": "font/woff2",
"resourceTypeHint": "6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7nsDI.woff2"
},
{
"id": "net-13",
"method": "GET",
- "url": "http://127.0.0.1:37213/",
+ "url": "http://127.0.0.1:37223/",
"resourceType": "document",
- "startedAt": 3761,
+ "startedAt": 3730,
"status": 200,
"ok": true,
"contentType": "text/html",
"resourceTypeHint": "resource",
- "finishedAt": 3768
+ "finishedAt": 3738
},
{
"id": "net-14",
"method": "GET",
"url": "http://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css",
"resourceType": "stylesheet",
- "startedAt": 3766,
+ "startedAt": 3736,
"status": 307,
"ok": false,
- "finishedAt": 3770,
+ "finishedAt": 3739,
"location": "https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css",
"resourceTypeHint": "ionicons.min.css"
},
@@ -4257,46 +4257,46 @@
"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": 3767,
+ "startedAt": 3737,
"status": 200,
"ok": true,
- "finishedAt": 3806,
+ "finishedAt": 3782,
"contentType": "text/css",
"resourceTypeHint": "css"
},
{
"id": "net-16",
"method": "GET",
- "url": "http://127.0.0.1:37213/assets/index-CLdavoKn.js",
+ "url": "http://127.0.0.1:37223/assets/index-CLdavoKn.js",
"resourceType": "script",
- "startedAt": 3767,
+ "startedAt": 3737,
"status": 200,
"ok": true,
- "finishedAt": 3788,
+ "finishedAt": 3751,
"contentType": "text/javascript",
"resourceTypeHint": "index-CLdavoKn.js"
},
{
"id": "net-17",
"method": "GET",
- "url": "http://127.0.0.1:37213/assets/index-De1Lwdlm.css",
+ "url": "http://127.0.0.1:37223/assets/index-De1Lwdlm.css",
"resourceType": "stylesheet",
- "startedAt": 3767,
+ "startedAt": 3737,
"status": 200,
"ok": true,
"contentType": "text/css",
"resourceTypeHint": "index-De1Lwdlm.css",
- "finishedAt": 3772
+ "finishedAt": 3743
},
{
"id": "net-18",
"method": "GET",
"url": "https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css",
"resourceType": "stylesheet",
- "startedAt": 3770,
+ "startedAt": 3739,
"status": 200,
"ok": true,
- "finishedAt": 3846,
+ "finishedAt": 3821,
"contentType": "text/css",
"resourceTypeHint": "ionicons.min.css"
},
@@ -4305,10 +4305,10 @@
"method": "GET",
"url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdu.woff2",
"resourceType": "font",
- "startedAt": 3853,
+ "startedAt": 3829,
"status": 200,
"ok": true,
- "finishedAt": 3900,
+ "finishedAt": 3875,
"contentType": "font/woff2",
"resourceTypeHint": "6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdu.woff2"
},
@@ -4317,10 +4317,10 @@
"method": "GET",
"url": "https://code.ionicframework.com/ionicons/2.0.1/fonts/ionicons.ttf?v=2.0.1",
"resourceType": "font",
- "startedAt": 3854,
+ "startedAt": 3830,
"status": 200,
"ok": true,
- "finishedAt": 3963,
+ "finishedAt": 3936,
"contentType": "font/ttf",
"resourceTypeHint": "ionicons.ttf"
},
@@ -4329,10 +4329,10 @@
"method": "GET",
"url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7l.woff2",
"resourceType": "font",
- "startedAt": 3855,
+ "startedAt": 3831,
"status": 200,
"ok": true,
- "finishedAt": 3902,
+ "finishedAt": 3877,
"contentType": "font/woff2",
"resourceTypeHint": "6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7l.woff2"
},
@@ -4341,10 +4341,10 @@
"method": "GET",
"url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7nsDI.woff2",
"resourceType": "font",
- "startedAt": 3855,
+ "startedAt": 3831,
"status": 200,
"ok": true,
- "finishedAt": 3901,
+ "finishedAt": 3876,
"contentType": "font/woff2",
"resourceTypeHint": "6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7nsDI.woff2"
}
@@ -4353,7 +4353,7 @@
{
"type": "error",
"text": "Failed to load resource: the server responded with a status of 404 (Not Found)",
- "at": 1559
+ "at": 1554
}
],
"pageErrors": [],
@@ -4363,7 +4363,7 @@
"selector": "body > div > main > div > div > div > div > form > fieldset:nth-of-type(1) > input",
"name": "email",
"type": "email",
- "value": "rd-rd_test_38cc21_1@example.test",
+ "value": "rd-rd_test_bf941c_1@example.test",
"redacted": false
},
{
@@ -4379,6 +4379,12 @@
"downloadEvidence": [],
"uploads": [],
"popupUrls": [],
+ "visualSuppressions": [
+ {
+ "artifact": "screenshot",
+ "reason": "sensitive-input"
+ }
+ ],
"locatorResolution": {
"attempts": [
{
@@ -4401,8 +4407,8 @@
"retryCount": 0
},
"before": {
- "at": 1467,
- "url": "http://127.0.0.1:37213/#/login",
+ "at": 1456,
+ "url": "http://127.0.0.1:37223/#/login",
"title": "Conduit",
"domHash": "c659be8900b0e706",
"canaryPresent": false,
@@ -4468,7 +4474,33 @@
"adapter": "postgresql",
"resource": "users",
"schemaHash": "b7a8a911cd0fd4e9",
- "rows": [],
+ "rows": [
+ {
+ "keyHash": "186347d9ea7673a2",
+ "rowHash": "4d8311a4b9df0bbb",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "da7114755c3b82ba",
+ "rowHash": "39bd56af0b169023",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "84cf60166b2ca345",
+ "rowHash": "aa49653a67bcd399",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "9ef59241e15425e0",
+ "rowHash": "3343e1b012ad4f04",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "82a8445b12df5a29",
+ "rowHash": "db866c24a3538c63",
+ "softDeleted": false
+ }
+ ],
"truncated": false
},
{
@@ -4482,16 +4514,42 @@
"adapter": "supabase",
"resource": "users",
"schemaHash": "cd9a96cfad9b0bff",
- "rows": [],
+ "rows": [
+ {
+ "keyHash": "186347d9ea7673a2",
+ "rowHash": "4d8311a4b9df0bbb",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "da7114755c3b82ba",
+ "rowHash": "39bd56af0b169023",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "84cf60166b2ca345",
+ "rowHash": "aa49653a67bcd399",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "9ef59241e15425e0",
+ "rowHash": "3343e1b012ad4f04",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "82a8445b12df5a29",
+ "rowHash": "db866c24a3538c63",
+ "softDeleted": false
+ }
+ ],
"truncated": false
}
]
},
"beforeAction": {
- "at": 1502,
- "url": "http://127.0.0.1:37213/#/login",
+ "at": 1491,
+ "url": "http://127.0.0.1:37223/#/login",
"title": "Conduit",
- "domHash": "2d4d9f77bf2e179c",
+ "domHash": "9d6e0a6267c1a93c",
"canaryPresent": true,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -4511,7 +4569,7 @@
"tag": "input",
"type": "email",
"name": "email",
- "valueHash": "043d001b7657e0ee",
+ "valueHash": "77823b680469c7c5",
"checked": false,
"disabled": false,
"visible": true
@@ -4548,10 +4606,10 @@
"networkSettled": true,
"targetBusyAfter": false,
"after": {
- "at": 2555,
- "url": "http://127.0.0.1:37213/#/login",
+ "at": 2577,
+ "url": "http://127.0.0.1:37223/#/login",
"title": "Conduit",
- "domHash": "83f2a3b016985302",
+ "domHash": "7a2c53603b8c376f",
"canaryPresent": true,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -4571,7 +4629,7 @@
"tag": "input",
"type": "email",
"name": "email",
- "valueHash": "043d001b7657e0ee",
+ "valueHash": "77823b680469c7c5",
"checked": false,
"disabled": false,
"visible": true
@@ -4615,7 +4673,33 @@
"adapter": "postgresql",
"resource": "users",
"schemaHash": "b7a8a911cd0fd4e9",
- "rows": [],
+ "rows": [
+ {
+ "keyHash": "186347d9ea7673a2",
+ "rowHash": "4d8311a4b9df0bbb",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "da7114755c3b82ba",
+ "rowHash": "39bd56af0b169023",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "84cf60166b2ca345",
+ "rowHash": "aa49653a67bcd399",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "9ef59241e15425e0",
+ "rowHash": "3343e1b012ad4f04",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "82a8445b12df5a29",
+ "rowHash": "db866c24a3538c63",
+ "softDeleted": false
+ }
+ ],
"truncated": false
},
{
@@ -4629,15 +4713,40 @@
"adapter": "supabase",
"resource": "users",
"schemaHash": "cd9a96cfad9b0bff",
- "rows": [],
+ "rows": [
+ {
+ "keyHash": "186347d9ea7673a2",
+ "rowHash": "4d8311a4b9df0bbb",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "da7114755c3b82ba",
+ "rowHash": "39bd56af0b169023",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "84cf60166b2ca345",
+ "rowHash": "aa49653a67bcd399",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "9ef59241e15425e0",
+ "rowHash": "3343e1b012ad4f04",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "82a8445b12df5a29",
+ "rowHash": "db866c24a3538c63",
+ "softDeleted": false
+ }
+ ],
"truncated": false
}
]
},
- "screenshot": "screenshots/e57b4c4aef96-after.png",
"afterRefresh": {
- "at": 3727,
- "url": "http://127.0.0.1:37213/#/login",
+ "at": 3726,
+ "url": "http://127.0.0.1:37223/#/login",
"title": "Conduit",
"domHash": "c659be8900b0e706",
"canaryPresent": false,
@@ -4692,10 +4801,9 @@
"indexedDb": []
}
},
- "refreshScreenshot": "screenshots/e57b4c4aef96-refresh.png",
"afterHardRefresh": {
- "at": 4680,
- "url": "http://127.0.0.1:37213/#/login",
+ "at": 4647,
+ "url": "http://127.0.0.1:37223/#/login",
"title": "Conduit",
"domHash": "c659be8900b0e706",
"canaryPresent": false,
@@ -4751,8 +4859,8 @@
}
},
"afterNewTab": {
- "at": 5660,
- "url": "http://127.0.0.1:37213/#/login",
+ "at": 5656,
+ "url": "http://127.0.0.1:37223/#/login",
"title": "Conduit",
"domHash": "c659be8900b0e706",
"canaryPresent": false,
@@ -4808,8 +4916,8 @@
}
},
"afterNewContext": {
- "at": 6932,
- "url": "http://127.0.0.1:37213/#/login",
+ "at": 6918,
+ "url": "http://127.0.0.1:37223/#/login",
"title": "Conduit",
"domHash": "c659be8900b0e706",
"canaryPresent": false,
@@ -4922,8 +5030,8 @@
{
"id": "RD-012",
"action": {
- "id": "9e707db551a2",
- "pageUrl": "http://127.0.0.1:37213/#/login",
+ "id": "d04cd10dca74",
+ "pageUrl": "http://127.0.0.1:37223/#/login",
"label": "conduit",
"activation": "click",
"kind": "navigation",
@@ -4936,7 +5044,7 @@
"role": "link",
"accessibleName": "conduit",
"text": "conduit",
- "href": "http://127.0.0.1:37213/#/",
+ "href": "http://127.0.0.1:37223/#/",
"candidates": [
{
"strategy": "role",
@@ -4955,7 +5063,7 @@
{
"strategy": "href",
"weight": 72,
- "value": "http://127.0.0.1:37213/#/"
+ "value": "http://127.0.0.1:37223/#/"
},
{
"strategy": "text",
@@ -4973,31 +5081,31 @@
"fields": []
},
"evidence": {
- "startedAt": "2026-07-26T10:50:12.910Z",
- "durationMs": 2452,
- "canary": "RD_TEST_0DE21A",
+ "startedAt": "2026-07-26T12:11:08.795Z",
+ "durationMs": 2503,
+ "canary": "RD_TEST_37D25A",
"network": [
{
"id": "net-1",
"method": "GET",
- "url": "http://127.0.0.1:37213/api/articles?limit=3&&offset=0",
+ "url": "http://127.0.0.1:37223/api/articles?limit=3&&offset=0",
"resourceType": "xhr",
- "startedAt": 1476,
+ "startedAt": 1541,
"status": 200,
"ok": true,
- "finishedAt": 1483,
+ "finishedAt": 1550,
"contentType": "application/json",
"resourceTypeHint": "articles"
},
{
"id": "net-2",
"method": "GET",
- "url": "http://127.0.0.1:37213/api/tags",
+ "url": "http://127.0.0.1:37223/api/tags",
"resourceType": "xhr",
- "startedAt": 1477,
+ "startedAt": 1542,
"status": 200,
"ok": true,
- "finishedAt": 1483,
+ "finishedAt": 1550,
"contentType": "application/json",
"resourceTypeHint": "tags"
}
@@ -5025,7 +5133,7 @@
"weight": 82,
"matchCount": 2,
"visibleCount": 2,
- "elapsedMs": 6
+ "elapsedMs": 7
},
{
"strategy": "href",
@@ -5046,7 +5154,7 @@
"weight": 35,
"matchCount": 1,
"visibleCount": 1,
- "elapsedMs": 3
+ "elapsedMs": 4
}
],
"chosenStrategy": "css",
@@ -5054,8 +5162,8 @@
"retryCount": 0
},
"before": {
- "at": 1440,
- "url": "http://127.0.0.1:37213/#/login",
+ "at": 1490,
+ "url": "http://127.0.0.1:37223/#/login",
"title": "Conduit",
"domHash": "c659be8900b0e706",
"canaryPresent": false,
@@ -5111,8 +5219,8 @@
}
},
"beforeAction": {
- "at": 1448,
- "url": "http://127.0.0.1:37213/#/login",
+ "at": 1502,
+ "url": "http://127.0.0.1:37223/#/login",
"title": "Conduit",
"domHash": "c659be8900b0e706",
"canaryPresent": false,
@@ -5170,8 +5278,8 @@
"networkSettled": true,
"targetBusyAfter": false,
"after": {
- "at": 2448,
- "url": "http://127.0.0.1:37213/#/",
+ "at": 2499,
+ "url": "http://127.0.0.1:37223/#/",
"title": "Conduit",
"domHash": "3c44d4d1ff59317a",
"canaryPresent": false,
@@ -5208,7 +5316,7 @@
"indexedDb": []
}
},
- "trace": "traces/9e707db551a2.zip",
+ "trace": "traces/d04cd10dca74.zip",
"snapshotIndex": "snapshots/RD-012.index.json"
},
"verdict": "VERIFIED",
@@ -5219,8 +5327,8 @@
{
"id": "RD-013",
"action": {
- "id": "f176b2c13933",
- "pageUrl": "http://127.0.0.1:37213/#/register",
+ "id": "44108ba71372",
+ "pageUrl": "http://127.0.0.1:37223/#/register",
"label": "conduit",
"activation": "click",
"kind": "navigation",
@@ -5233,7 +5341,7 @@
"role": "link",
"accessibleName": "conduit",
"text": "conduit",
- "href": "http://127.0.0.1:37213/#/",
+ "href": "http://127.0.0.1:37223/#/",
"candidates": [
{
"strategy": "role",
@@ -5252,7 +5360,7 @@
{
"strategy": "href",
"weight": 72,
- "value": "http://127.0.0.1:37213/#/"
+ "value": "http://127.0.0.1:37223/#/"
},
{
"strategy": "text",
@@ -5270,31 +5378,31 @@
"fields": []
},
"evidence": {
- "startedAt": "2026-07-26T10:50:15.405Z",
- "durationMs": 2451,
- "canary": "RD_TEST_D363FA",
+ "startedAt": "2026-07-26T12:11:11.352Z",
+ "durationMs": 2472,
+ "canary": "RD_TEST_DD3DB1",
"network": [
{
"id": "net-1",
"method": "GET",
- "url": "http://127.0.0.1:37213/api/articles?limit=3&&offset=0",
+ "url": "http://127.0.0.1:37223/api/articles?limit=3&&offset=0",
"resourceType": "xhr",
- "startedAt": 1482,
+ "startedAt": 1534,
"status": 200,
"ok": true,
- "finishedAt": 1492,
+ "finishedAt": 1544,
"contentType": "application/json",
"resourceTypeHint": "articles"
},
{
"id": "net-2",
"method": "GET",
- "url": "http://127.0.0.1:37213/api/tags",
+ "url": "http://127.0.0.1:37223/api/tags",
"resourceType": "xhr",
- "startedAt": 1483,
+ "startedAt": 1535,
"status": 200,
"ok": true,
- "finishedAt": 1487,
+ "finishedAt": 1542,
"contentType": "application/json",
"resourceTypeHint": "tags"
}
@@ -5315,14 +5423,14 @@
"weight": 92,
"matchCount": 2,
"visibleCount": 2,
- "elapsedMs": 8
+ "elapsedMs": 9
},
{
"strategy": "role",
"weight": 82,
"matchCount": 2,
"visibleCount": 2,
- "elapsedMs": 6
+ "elapsedMs": 7
},
{
"strategy": "href",
@@ -5336,7 +5444,7 @@
"weight": 60,
"matchCount": 2,
"visibleCount": 2,
- "elapsedMs": 6
+ "elapsedMs": 7
},
{
"strategy": "css",
@@ -5351,8 +5459,8 @@
"retryCount": 0
},
"before": {
- "at": 1449,
- "url": "http://127.0.0.1:37213/#/register",
+ "at": 1485,
+ "url": "http://127.0.0.1:37223/#/register",
"title": "Conduit",
"domHash": "1f4fa65964895f4c",
"canaryPresent": false,
@@ -5417,8 +5525,8 @@
}
},
"beforeAction": {
- "at": 1457,
- "url": "http://127.0.0.1:37213/#/register",
+ "at": 1495,
+ "url": "http://127.0.0.1:37223/#/register",
"title": "Conduit",
"domHash": "1f4fa65964895f4c",
"canaryPresent": false,
@@ -5485,8 +5593,8 @@
"networkSettled": true,
"targetBusyAfter": false,
"after": {
- "at": 2447,
- "url": "http://127.0.0.1:37213/#/",
+ "at": 2468,
+ "url": "http://127.0.0.1:37223/#/",
"title": "Conduit",
"domHash": "3c44d4d1ff59317a",
"canaryPresent": false,
@@ -5523,7 +5631,7 @@
"indexedDb": []
}
},
- "trace": "traces/f176b2c13933.zip",
+ "trace": "traces/44108ba71372.zip",
"snapshotIndex": "snapshots/RD-013.index.json"
},
"verdict": "VERIFIED",
@@ -5534,8 +5642,8 @@
{
"id": "RD-014",
"action": {
- "id": "f488a7413f35",
- "pageUrl": "http://127.0.0.1:37213/#/register",
+ "id": "54a211837ad5",
+ "pageUrl": "http://127.0.0.1:37223/#/register",
"label": "Home",
"activation": "click",
"kind": "navigation",
@@ -5548,7 +5656,7 @@
"role": "link",
"accessibleName": "Home",
"text": "Home",
- "href": "http://127.0.0.1:37213/#/",
+ "href": "http://127.0.0.1:37223/#/",
"candidates": [
{
"strategy": "role",
@@ -5567,7 +5675,7 @@
{
"strategy": "href",
"weight": 72,
- "value": "http://127.0.0.1:37213/#/"
+ "value": "http://127.0.0.1:37223/#/"
},
{
"strategy": "text",
@@ -5585,33 +5693,33 @@
"fields": []
},
"evidence": {
- "startedAt": "2026-07-26T10:50:17.896Z",
- "durationMs": 2423,
- "canary": "RD_TEST_315392",
+ "startedAt": "2026-07-26T12:11:13.878Z",
+ "durationMs": 2450,
+ "canary": "RD_TEST_DA3D37",
"network": [
{
"id": "net-1",
"method": "GET",
- "url": "http://127.0.0.1:37213/api/articles?limit=3&&offset=0",
+ "url": "http://127.0.0.1:37223/api/articles?limit=3&&offset=0",
"resourceType": "xhr",
- "startedAt": 1452,
+ "startedAt": 1494,
"status": 200,
"ok": true,
- "finishedAt": 1458,
+ "finishedAt": 1501,
"contentType": "application/json",
"resourceTypeHint": "articles"
},
{
"id": "net-2",
"method": "GET",
- "url": "http://127.0.0.1:37213/api/tags",
+ "url": "http://127.0.0.1:37223/api/tags",
"resourceType": "xhr",
- "startedAt": 1452,
+ "startedAt": 1495,
"status": 200,
"ok": true,
+ "finishedAt": 1500,
"contentType": "application/json",
- "resourceTypeHint": "tags",
- "finishedAt": 1457
+ "resourceTypeHint": "tags"
}
],
"console": [],
@@ -5645,8 +5753,8 @@
"retryCount": 0
},
"before": {
- "at": 1416,
- "url": "http://127.0.0.1:37213/#/register",
+ "at": 1447,
+ "url": "http://127.0.0.1:37223/#/register",
"title": "Conduit",
"domHash": "1f4fa65964895f4c",
"canaryPresent": false,
@@ -5711,8 +5819,8 @@
}
},
"beforeAction": {
- "at": 1424,
- "url": "http://127.0.0.1:37213/#/register",
+ "at": 1456,
+ "url": "http://127.0.0.1:37223/#/register",
"title": "Conduit",
"domHash": "1f4fa65964895f4c",
"canaryPresent": false,
@@ -5779,8 +5887,8 @@
"networkSettled": true,
"targetBusyAfter": false,
"after": {
- "at": 2419,
- "url": "http://127.0.0.1:37213/#/",
+ "at": 2446,
+ "url": "http://127.0.0.1:37223/#/",
"title": "Conduit",
"domHash": "3c44d4d1ff59317a",
"canaryPresent": false,
@@ -5817,7 +5925,7 @@
"indexedDb": []
}
},
- "trace": "traces/f488a7413f35.zip",
+ "trace": "traces/54a211837ad5.zip",
"snapshotIndex": "snapshots/RD-014.index.json"
},
"verdict": "VERIFIED",
@@ -5828,8 +5936,8 @@
{
"id": "RD-015",
"action": {
- "id": "dbcb9b0c432e",
- "pageUrl": "http://127.0.0.1:37213/#/register",
+ "id": "8aa975887dd0",
+ "pageUrl": "http://127.0.0.1:37223/#/register",
"label": "Login",
"activation": "click",
"kind": "navigation",
@@ -5842,7 +5950,7 @@
"role": "link",
"accessibleName": "Login",
"text": "Login",
- "href": "http://127.0.0.1:37213/#/login",
+ "href": "http://127.0.0.1:37223/#/login",
"candidates": [
{
"strategy": "role",
@@ -5861,7 +5969,7 @@
{
"strategy": "href",
"weight": 72,
- "value": "http://127.0.0.1:37213/#/login"
+ "value": "http://127.0.0.1:37223/#/login"
},
{
"strategy": "text",
@@ -5879,9 +5987,9 @@
"fields": []
},
"evidence": {
- "startedAt": "2026-07-26T10:50:20.369Z",
- "durationMs": 2463,
- "canary": "RD_TEST_9C033B",
+ "startedAt": "2026-07-26T12:11:16.380Z",
+ "durationMs": 2421,
+ "canary": "RD_TEST_D4ADFC",
"network": [],
"console": [],
"pageErrors": [],
@@ -5914,8 +6022,8 @@
"retryCount": 0
},
"before": {
- "at": 1454,
- "url": "http://127.0.0.1:37213/#/register",
+ "at": 1436,
+ "url": "http://127.0.0.1:37223/#/register",
"title": "Conduit",
"domHash": "1f4fa65964895f4c",
"canaryPresent": false,
@@ -5980,8 +6088,8 @@
}
},
"beforeAction": {
- "at": 1463,
- "url": "http://127.0.0.1:37213/#/register",
+ "at": 1444,
+ "url": "http://127.0.0.1:37223/#/register",
"title": "Conduit",
"domHash": "1f4fa65964895f4c",
"canaryPresent": false,
@@ -6048,8 +6156,8 @@
"networkSettled": true,
"targetBusyAfter": false,
"after": {
- "at": 2460,
- "url": "http://127.0.0.1:37213/#/login",
+ "at": 2417,
+ "url": "http://127.0.0.1:37223/#/login",
"title": "Conduit",
"domHash": "c659be8900b0e706",
"canaryPresent": false,
@@ -6104,7 +6212,7 @@
"indexedDb": []
}
},
- "trace": "traces/dbcb9b0c432e.zip",
+ "trace": "traces/8aa975887dd0.zip",
"snapshotIndex": "snapshots/RD-015.index.json"
},
"verdict": "VERIFIED",
@@ -6115,8 +6223,8 @@
{
"id": "RD-016",
"action": {
- "id": "6e82ef58bd97",
- "pageUrl": "http://127.0.0.1:37213/#/register",
+ "id": "f918c5327d24",
+ "pageUrl": "http://127.0.0.1:37223/#/register",
"label": "Sign in to your account",
"activation": "click",
"kind": "navigation",
@@ -6129,7 +6237,7 @@
"role": "link",
"accessibleName": "Sign in to your account",
"text": "Sign in to your account",
- "href": "http://127.0.0.1:37213/#/login",
+ "href": "http://127.0.0.1:37223/#/login",
"candidates": [
{
"strategy": "role",
@@ -6148,7 +6256,7 @@
{
"strategy": "href",
"weight": 72,
- "value": "http://127.0.0.1:37213/#/login"
+ "value": "http://127.0.0.1:37223/#/login"
},
{
"strategy": "text",
@@ -6166,9 +6274,9 @@
"fields": []
},
"evidence": {
- "startedAt": "2026-07-26T10:50:22.873Z",
- "durationMs": 2435,
- "canary": "RD_TEST_C31F5F",
+ "startedAt": "2026-07-26T12:11:18.843Z",
+ "durationMs": 2449,
+ "canary": "RD_TEST_36EBE3",
"network": [],
"console": [],
"pageErrors": [],
@@ -6194,8 +6302,8 @@
"retryCount": 0
},
"before": {
- "at": 1412,
- "url": "http://127.0.0.1:37213/#/register",
+ "at": 1436,
+ "url": "http://127.0.0.1:37223/#/register",
"title": "Conduit",
"domHash": "1f4fa65964895f4c",
"canaryPresent": false,
@@ -6260,8 +6368,8 @@
}
},
"beforeAction": {
- "at": 1421,
- "url": "http://127.0.0.1:37213/#/register",
+ "at": 1445,
+ "url": "http://127.0.0.1:37223/#/register",
"title": "Conduit",
"domHash": "1f4fa65964895f4c",
"canaryPresent": false,
@@ -6328,8 +6436,8 @@
"networkSettled": true,
"targetBusyAfter": false,
"after": {
- "at": 2432,
- "url": "http://127.0.0.1:37213/#/login",
+ "at": 2445,
+ "url": "http://127.0.0.1:37223/#/login",
"title": "Conduit",
"domHash": "c659be8900b0e706",
"canaryPresent": false,
@@ -6384,7 +6492,7 @@
"indexedDb": []
}
},
- "trace": "traces/6e82ef58bd97.zip",
+ "trace": "traces/f918c5327d24.zip",
"snapshotIndex": "snapshots/RD-016.index.json"
},
"verdict": "VERIFIED",
@@ -6395,8 +6503,8 @@
{
"id": "RD-017",
"action": {
- "id": "f1d2305ca322",
- "pageUrl": "http://127.0.0.1:37213/#/register",
+ "id": "02c10884e578",
+ "pageUrl": "http://127.0.0.1:37223/#/register",
"label": "Sign up",
"activation": "submit",
"kind": "mutation",
@@ -6453,79 +6561,79 @@
]
},
"evidence": {
- "startedAt": "2026-07-26T10:50:25.546Z",
- "durationMs": 6897,
- "canary": "RD_TEST_AFDF00",
+ "startedAt": "2026-07-26T12:11:21.378Z",
+ "durationMs": 6888,
+ "canary": "RD_TEST_01716F",
"network": [
{
"id": "net-1",
"method": "POST",
- "url": "http://127.0.0.1:37213/api/users",
+ "url": "http://127.0.0.1:37223/api/users",
"resourceType": "xhr",
- "startedAt": 1505,
+ "startedAt": 1547,
"status": 201,
"ok": true,
- "finishedAt": 1564,
+ "finishedAt": 1612,
"contentType": "application/json",
"resourceTypeHint": "users"
},
{
"id": "net-2",
"method": "GET",
- "url": "http://127.0.0.1:37213/api/user",
+ "url": "http://127.0.0.1:37223/api/user",
"resourceType": "xhr",
- "startedAt": 1568,
+ "startedAt": 1616,
"status": 200,
"ok": true,
- "finishedAt": 1573,
+ "finishedAt": 1622,
"contentType": "application/json",
"resourceTypeHint": "user"
},
{
"id": "net-3",
"method": "GET",
- "url": "http://127.0.0.1:37213/api/articles/feed?limit=3&&offset=0",
+ "url": "http://127.0.0.1:37223/api/articles/feed?limit=3&&offset=0",
"resourceType": "xhr",
- "startedAt": 1571,
+ "startedAt": 1620,
"status": 200,
"ok": true,
- "finishedAt": 1577,
+ "finishedAt": 1628,
"contentType": "application/json",
"resourceTypeHint": "feed"
},
{
"id": "net-4",
"method": "GET",
- "url": "http://127.0.0.1:37213/api/tags",
+ "url": "http://127.0.0.1:37223/api/tags",
"resourceType": "xhr",
- "startedAt": 1572,
+ "startedAt": 1621,
"status": 200,
"ok": true,
- "finishedAt": 1576,
+ "finishedAt": 1627,
"contentType": "application/json",
"resourceTypeHint": "tags"
},
{
"id": "net-5",
"method": "GET",
- "url": "http://127.0.0.1:37213/",
+ "url": "http://127.0.0.1:37223/",
"resourceType": "document",
- "startedAt": 2525,
+ "startedAt": 2558,
"status": 200,
"ok": true,
"contentType": "text/html",
"resourceTypeHint": "resource",
- "finishedAt": 2533
+ "finishedAt": 2566
},
{
"id": "net-6",
"method": "GET",
"url": "http://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css",
"resourceType": "stylesheet",
- "startedAt": 2532,
+ "startedAt": 2564,
"status": 307,
"ok": false,
- "finishedAt": 2535,
+ "finishedAt": 2567,
"location": "https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css",
"resourceTypeHint": "ionicons.min.css"
},
@@ -6534,34 +6642,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": 2532,
+ "startedAt": 2565,
"status": 200,
"ok": true,
- "finishedAt": 2570,
+ "finishedAt": 2602,
"contentType": "text/css",
"resourceTypeHint": "css"
},
{
"id": "net-8",
"method": "GET",
- "url": "http://127.0.0.1:37213/assets/index-CLdavoKn.js",
+ "url": "http://127.0.0.1:37223/assets/index-CLdavoKn.js",
"resourceType": "script",
- "startedAt": 2532,
+ "startedAt": 2565,
"status": 200,
"ok": true,
- "finishedAt": 2547,
+ "finishedAt": 2578,
"contentType": "text/javascript",
"resourceTypeHint": "index-CLdavoKn.js"
},
{
"id": "net-9",
"method": "GET",
- "url": "http://127.0.0.1:37213/assets/index-De1Lwdlm.css",
+ "url": "http://127.0.0.1:37223/assets/index-De1Lwdlm.css",
"resourceType": "stylesheet",
- "startedAt": 2533,
+ "startedAt": 2565,
"status": 200,
"ok": true,
- "finishedAt": 2541,
+ "finishedAt": 2571,
"contentType": "text/css",
"resourceTypeHint": "index-De1Lwdlm.css"
},
@@ -6570,10 +6678,10 @@
"method": "GET",
"url": "https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css",
"resourceType": "stylesheet",
- "startedAt": 2535,
+ "startedAt": 2567,
"status": 200,
"ok": true,
- "finishedAt": 2829,
+ "finishedAt": 2815,
"contentType": "text/css",
"resourceTypeHint": "ionicons.min.css"
},
@@ -6582,10 +6690,10 @@
"method": "GET",
"url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdu.woff2",
"resourceType": "font",
- "startedAt": 2839,
+ "startedAt": 2825,
"status": 200,
"ok": true,
- "finishedAt": 2885,
+ "finishedAt": 2872,
"contentType": "font/woff2",
"resourceTypeHint": "6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdu.woff2"
},
@@ -6594,10 +6702,10 @@
"method": "GET",
"url": "https://code.ionicframework.com/ionicons/2.0.1/fonts/ionicons.ttf?v=2.0.1",
"resourceType": "font",
- "startedAt": 2840,
+ "startedAt": 2825,
"status": 200,
"ok": true,
- "finishedAt": 2947,
+ "finishedAt": 2933,
"contentType": "font/ttf",
"resourceTypeHint": "ionicons.ttf"
},
@@ -6606,10 +6714,10 @@
"method": "GET",
"url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7l.woff2",
"resourceType": "font",
- "startedAt": 2840,
+ "startedAt": 2826,
"status": 200,
"ok": true,
- "finishedAt": 2886,
+ "finishedAt": 2872,
"contentType": "font/woff2",
"resourceTypeHint": "6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7l.woff2"
},
@@ -6618,70 +6726,70 @@
"method": "GET",
"url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7nsDI.woff2",
"resourceType": "font",
- "startedAt": 2840,
+ "startedAt": 2827,
"status": 200,
"ok": true,
- "finishedAt": 2887,
+ "finishedAt": 2873,
"contentType": "font/woff2",
"resourceTypeHint": "6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7nsDI.woff2"
},
{
"id": "net-15",
"method": "GET",
- "url": "http://127.0.0.1:37213/api/articles/feed?limit=3&&offset=0",
+ "url": "http://127.0.0.1:37223/api/articles/feed?limit=3&&offset=0",
"resourceType": "xhr",
- "startedAt": 2842,
+ "startedAt": 2828,
"status": 200,
"ok": true,
- "finishedAt": 2850,
+ "finishedAt": 2836,
"contentType": "application/json",
"resourceTypeHint": "feed"
},
{
"id": "net-16",
"method": "GET",
- "url": "http://127.0.0.1:37213/api/tags",
+ "url": "http://127.0.0.1:37223/api/tags",
"resourceType": "xhr",
- "startedAt": 2842,
+ "startedAt": 2828,
"status": 200,
"ok": true,
- "finishedAt": 2848,
+ "finishedAt": 2835,
"contentType": "application/json",
"resourceTypeHint": "tags"
},
{
"id": "net-17",
"method": "GET",
- "url": "http://127.0.0.1:37213/api/user",
+ "url": "http://127.0.0.1:37223/api/user",
"resourceType": "xhr",
- "startedAt": 2842,
+ "startedAt": 2829,
"status": 200,
"ok": true,
+ "finishedAt": 2836,
"contentType": "application/json",
- "resourceTypeHint": "user",
- "finishedAt": 2849
+ "resourceTypeHint": "user"
},
{
"id": "net-18",
"method": "GET",
- "url": "http://127.0.0.1:37213/",
+ "url": "http://127.0.0.1:37223/",
"resourceType": "document",
- "startedAt": 3700,
+ "startedAt": 3648,
"status": 200,
"ok": true,
"contentType": "text/html",
"resourceTypeHint": "resource",
- "finishedAt": 3708
+ "finishedAt": 3656
},
{
"id": "net-19",
"method": "GET",
"url": "http://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css",
"resourceType": "stylesheet",
- "startedAt": 3706,
+ "startedAt": 3655,
"status": 307,
"ok": false,
- "finishedAt": 3710,
+ "finishedAt": 3658,
"location": "https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css",
"resourceTypeHint": "ionicons.min.css"
},
@@ -6690,46 +6798,46 @@
"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": 3707,
+ "startedAt": 3655,
"status": 200,
"ok": true,
- "finishedAt": 3748,
+ "finishedAt": 3694,
"contentType": "text/css",
"resourceTypeHint": "css"
},
{
"id": "net-21",
"method": "GET",
- "url": "http://127.0.0.1:37213/assets/index-CLdavoKn.js",
+ "url": "http://127.0.0.1:37223/assets/index-CLdavoKn.js",
"resourceType": "script",
- "startedAt": 3707,
+ "startedAt": 3655,
"status": 200,
"ok": true,
- "finishedAt": 3720,
+ "finishedAt": 3669,
"contentType": "text/javascript",
"resourceTypeHint": "index-CLdavoKn.js"
},
{
"id": "net-22",
"method": "GET",
- "url": "http://127.0.0.1:37213/assets/index-De1Lwdlm.css",
+ "url": "http://127.0.0.1:37223/assets/index-De1Lwdlm.css",
"resourceType": "stylesheet",
- "startedAt": 3707,
+ "startedAt": 3656,
"status": 200,
"ok": true,
- "finishedAt": 3712,
"contentType": "text/css",
- "resourceTypeHint": "index-De1Lwdlm.css"
+ "resourceTypeHint": "index-De1Lwdlm.css",
+ "finishedAt": 3661
},
{
"id": "net-23",
"method": "GET",
"url": "https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css",
"resourceType": "stylesheet",
- "startedAt": 3710,
+ "startedAt": 3658,
"status": 200,
"ok": true,
- "finishedAt": 3787,
+ "finishedAt": 3729,
"contentType": "text/css",
"resourceTypeHint": "ionicons.min.css"
},
@@ -6738,10 +6846,10 @@
"method": "GET",
"url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdu.woff2",
"resourceType": "font",
- "startedAt": 3795,
+ "startedAt": 3739,
"status": 200,
"ok": true,
- "finishedAt": 3842,
+ "finishedAt": 3787,
"contentType": "font/woff2",
"resourceTypeHint": "6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdu.woff2"
},
@@ -6750,10 +6858,10 @@
"method": "GET",
"url": "https://code.ionicframework.com/ionicons/2.0.1/fonts/ionicons.ttf?v=2.0.1",
"resourceType": "font",
- "startedAt": 3795,
+ "startedAt": 3740,
"status": 200,
"ok": true,
- "finishedAt": 3901,
+ "finishedAt": 3853,
"contentType": "font/ttf",
"resourceTypeHint": "ionicons.ttf"
},
@@ -6762,10 +6870,10 @@
"method": "GET",
"url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7l.woff2",
"resourceType": "font",
- "startedAt": 3796,
+ "startedAt": 3741,
"status": 200,
"ok": true,
- "finishedAt": 3843,
+ "finishedAt": 3789,
"contentType": "font/woff2",
"resourceTypeHint": "6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7l.woff2"
},
@@ -6774,46 +6882,46 @@
"method": "GET",
"url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7nsDI.woff2",
"resourceType": "font",
- "startedAt": 3797,
+ "startedAt": 3741,
"status": 200,
"ok": true,
- "finishedAt": 3844,
+ "finishedAt": 3789,
"contentType": "font/woff2",
"resourceTypeHint": "6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7nsDI.woff2"
},
{
"id": "net-28",
"method": "GET",
- "url": "http://127.0.0.1:37213/api/articles/feed?limit=3&&offset=0",
+ "url": "http://127.0.0.1:37223/api/articles/feed?limit=3&&offset=0",
"resourceType": "xhr",
- "startedAt": 3798,
+ "startedAt": 3743,
"status": 200,
"ok": true,
- "finishedAt": 3806,
+ "finishedAt": 3755,
"contentType": "application/json",
"resourceTypeHint": "feed"
},
{
"id": "net-29",
"method": "GET",
- "url": "http://127.0.0.1:37213/api/tags",
+ "url": "http://127.0.0.1:37223/api/tags",
"resourceType": "xhr",
- "startedAt": 3799,
+ "startedAt": 3744,
"status": 200,
"ok": true,
"contentType": "application/json",
"resourceTypeHint": "tags",
- "finishedAt": 3804
+ "finishedAt": 3752
},
{
"id": "net-30",
"method": "GET",
- "url": "http://127.0.0.1:37213/api/user",
+ "url": "http://127.0.0.1:37223/api/user",
"resourceType": "xhr",
- "startedAt": 3799,
+ "startedAt": 3744,
"status": 200,
"ok": true,
- "finishedAt": 3805,
+ "finishedAt": 3752,
"contentType": "application/json",
"resourceTypeHint": "user"
}
@@ -6826,14 +6934,14 @@
"selector": "body > div > main > div > div > div > div > form > fieldset:nth-of-type(1) > input",
"name": "username",
"type": "text",
- "value": "RD_TEST_AFDF00_1",
+ "value": "RD_TEST_01716F_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_afdf00_2@example.test",
+ "value": "rd-rd_test_01716f_2@example.test",
"redacted": false
},
{
@@ -6849,6 +6957,12 @@
"downloadEvidence": [],
"uploads": [],
"popupUrls": [],
+ "visualSuppressions": [
+ {
+ "artifact": "screenshot",
+ "reason": "sensitive-input"
+ }
+ ],
"locatorResolution": {
"attempts": [
{
@@ -6863,7 +6977,7 @@
"weight": 35,
"matchCount": 1,
"visibleCount": 1,
- "elapsedMs": 4
+ "elapsedMs": 5
}
],
"chosenStrategy": "css",
@@ -6871,8 +6985,8 @@
"retryCount": 0
},
"before": {
- "at": 1417,
- "url": "http://127.0.0.1:37213/#/register",
+ "at": 1446,
+ "url": "http://127.0.0.1:37223/#/register",
"title": "Conduit",
"domHash": "1f4fa65964895f4c",
"canaryPresent": false,
@@ -6947,7 +7061,33 @@
"adapter": "postgresql",
"resource": "users",
"schemaHash": "b7a8a911cd0fd4e9",
- "rows": [],
+ "rows": [
+ {
+ "keyHash": "186347d9ea7673a2",
+ "rowHash": "4d8311a4b9df0bbb",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "da7114755c3b82ba",
+ "rowHash": "39bd56af0b169023",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "84cf60166b2ca345",
+ "rowHash": "aa49653a67bcd399",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "9ef59241e15425e0",
+ "rowHash": "3343e1b012ad4f04",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "82a8445b12df5a29",
+ "rowHash": "db866c24a3538c63",
+ "softDeleted": false
+ }
+ ],
"truncated": false
},
{
@@ -6961,16 +7101,42 @@
"adapter": "supabase",
"resource": "users",
"schemaHash": "cd9a96cfad9b0bff",
- "rows": [],
+ "rows": [
+ {
+ "keyHash": "186347d9ea7673a2",
+ "rowHash": "4d8311a4b9df0bbb",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "da7114755c3b82ba",
+ "rowHash": "39bd56af0b169023",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "84cf60166b2ca345",
+ "rowHash": "aa49653a67bcd399",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "9ef59241e15425e0",
+ "rowHash": "3343e1b012ad4f04",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "82a8445b12df5a29",
+ "rowHash": "db866c24a3538c63",
+ "softDeleted": false
+ }
+ ],
"truncated": false
}
]
},
"beforeAction": {
- "at": 1464,
- "url": "http://127.0.0.1:37213/#/register",
+ "at": 1491,
+ "url": "http://127.0.0.1:37223/#/register",
"title": "Conduit",
- "domHash": "c980649d9e02e98b",
+ "domHash": "f7e37a17967a1252",
"canaryPresent": true,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -6990,7 +7156,7 @@
"tag": "input",
"type": "text",
"name": "username",
- "valueHash": "8369442a76f12504",
+ "valueHash": "8450b5b7333cbf6c",
"checked": false,
"disabled": false,
"visible": true
@@ -6999,7 +7165,7 @@
"tag": "input",
"type": "email",
"name": "email",
- "valueHash": "da4574f169c75ae2",
+ "valueHash": "f0cdb63ef3fb8771",
"checked": false,
"disabled": false,
"visible": true
@@ -7035,10 +7201,10 @@
"targetDisabledAfter": false,
"networkSettled": true,
"after": {
- "at": 2496,
- "url": "http://127.0.0.1:37213/#/",
+ "at": 2552,
+ "url": "http://127.0.0.1:37223/#/",
"title": "Conduit",
- "domHash": "712217d34ae7776a",
+ "domHash": "8b2e58fe2316a8ae",
"canaryPresent": true,
"bodyCanaryPresent": true,
"temporaryBlobUrls": 0,
@@ -7050,9 +7216,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "e7fb8b5727d2c916",
+ "textHash": "fe51bea8e4825cf7",
"visualHash": "dfad2167a8f7c17f",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_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_01716F_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",
@@ -7076,7 +7242,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "18c9b7a78ce6d4c7",
+ "valueHash": "ff9e6e4f40f223eb",
"containsCanary": true
}
],
@@ -7098,9 +7264,34 @@
"resource": "users",
"schemaHash": "b7a8a911cd0fd4e9",
"rows": [
+ {
+ "keyHash": "186347d9ea7673a2",
+ "rowHash": "4d8311a4b9df0bbb",
+ "softDeleted": false
+ },
{
"keyHash": "da7114755c3b82ba",
- "rowHash": "f1108a413122f589",
+ "rowHash": "39bd56af0b169023",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "84cf60166b2ca345",
+ "rowHash": "aa49653a67bcd399",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "9ef59241e15425e0",
+ "rowHash": "3343e1b012ad4f04",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "82a8445b12df5a29",
+ "rowHash": "db866c24a3538c63",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "2766c815d1c00dbe",
+ "rowHash": "2eb93efc98f08969",
"softDeleted": false
}
],
@@ -7118,9 +7309,34 @@
"resource": "users",
"schemaHash": "cd9a96cfad9b0bff",
"rows": [
+ {
+ "keyHash": "186347d9ea7673a2",
+ "rowHash": "4d8311a4b9df0bbb",
+ "softDeleted": false
+ },
{
"keyHash": "da7114755c3b82ba",
- "rowHash": "f1108a413122f589",
+ "rowHash": "39bd56af0b169023",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "84cf60166b2ca345",
+ "rowHash": "aa49653a67bcd399",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "9ef59241e15425e0",
+ "rowHash": "3343e1b012ad4f04",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "82a8445b12df5a29",
+ "rowHash": "db866c24a3538c63",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "2766c815d1c00dbe",
+ "rowHash": "2eb93efc98f08969",
"softDeleted": false
}
],
@@ -7128,12 +7344,11 @@
}
]
},
- "screenshot": "screenshots/f1d2305ca322-after.png",
"afterRefresh": {
- "at": 3665,
- "url": "http://127.0.0.1:37213/#/",
+ "at": 3645,
+ "url": "http://127.0.0.1:37223/#/",
"title": "Conduit",
- "domHash": "712217d34ae7776a",
+ "domHash": "8b2e58fe2316a8ae",
"canaryPresent": true,
"bodyCanaryPresent": true,
"temporaryBlobUrls": 0,
@@ -7145,9 +7360,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "e7fb8b5727d2c916",
+ "textHash": "fe51bea8e4825cf7",
"visualHash": "dfad2167a8f7c17f",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_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_01716F_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",
@@ -7171,7 +7386,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "18c9b7a78ce6d4c7",
+ "valueHash": "ff9e6e4f40f223eb",
"containsCanary": true
}
],
@@ -7181,12 +7396,11 @@
"indexedDb": []
}
},
- "refreshScreenshot": "screenshots/f1d2305ca322-refresh.png",
"afterHardRefresh": {
- "at": 4622,
- "url": "http://127.0.0.1:37213/#/",
+ "at": 4563,
+ "url": "http://127.0.0.1:37223/#/",
"title": "Conduit",
- "domHash": "712217d34ae7776a",
+ "domHash": "8b2e58fe2316a8ae",
"canaryPresent": true,
"bodyCanaryPresent": true,
"temporaryBlobUrls": 0,
@@ -7198,9 +7412,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "e7fb8b5727d2c916",
+ "textHash": "fe51bea8e4825cf7",
"visualHash": "dfad2167a8f7c17f",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_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_01716F_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",
@@ -7224,7 +7438,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "18c9b7a78ce6d4c7",
+ "valueHash": "ff9e6e4f40f223eb",
"containsCanary": true
}
],
@@ -7235,10 +7449,10 @@
}
},
"afterNewTab": {
- "at": 5607,
- "url": "http://127.0.0.1:37213/#/register",
+ "at": 5557,
+ "url": "http://127.0.0.1:37223/#/register",
"title": "Conduit",
- "domHash": "d12f15fe03a77697",
+ "domHash": "b014a878f9592542",
"canaryPresent": true,
"bodyCanaryPresent": true,
"temporaryBlobUrls": 0,
@@ -7250,9 +7464,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "d28cd67d36533c65",
+ "textHash": "9bcbc6aec3788892",
"visualHash": "4ab503dc0bf627e7",
- "text": "conduit Source code Home New Article RD_TEST_AFDF00_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_01716F_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",
@@ -7296,7 +7510,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "18c9b7a78ce6d4c7",
+ "valueHash": "ff9e6e4f40f223eb",
"containsCanary": true
}
],
@@ -7307,8 +7521,8 @@
}
},
"afterNewContext": {
- "at": 6894,
- "url": "http://127.0.0.1:37213/#/",
+ "at": 6885,
+ "url": "http://127.0.0.1:37223/#/",
"title": "Conduit",
"domHash": "3c44d4d1ff59317a",
"canaryPresent": false,
@@ -7369,7 +7583,7 @@
"adapter": "postgresql",
"resource": "users",
"added": [
- "da7114755c3b82ba"
+ "2766c815d1c00dbe"
],
"removed": [],
"changed": [],
@@ -7389,7 +7603,7 @@
"adapter": "supabase",
"resource": "users",
"added": [
- "da7114755c3b82ba"
+ "2766c815d1c00dbe"
],
"removed": [],
"changed": [],
@@ -7408,8 +7622,8 @@
{
"id": "RD-018",
"action": {
- "id": "641cbb0f1c53",
- "pageUrl": "http://127.0.0.1:37213/#/register",
+ "id": "2a8d30d118d1",
+ "pageUrl": "http://127.0.0.1:37223/#/register",
"label": "conduit",
"activation": "click",
"kind": "navigation",
@@ -7422,7 +7636,7 @@
"role": "link",
"accessibleName": "conduit",
"text": "conduit",
- "href": "http://127.0.0.1:37213/#/",
+ "href": "http://127.0.0.1:37223/#/",
"candidates": [
{
"strategy": "role",
@@ -7441,7 +7655,7 @@
{
"strategy": "href",
"weight": 72,
- "value": "http://127.0.0.1:37213/#/"
+ "value": "http://127.0.0.1:37223/#/"
},
{
"strategy": "text",
@@ -7459,33 +7673,33 @@
"fields": []
},
"evidence": {
- "startedAt": "2026-07-26T10:50:32.660Z",
- "durationMs": 2457,
- "canary": "RD_TEST_8BB333",
+ "startedAt": "2026-07-26T12:11:28.354Z",
+ "durationMs": 2482,
+ "canary": "RD_TEST_AE27D6",
"network": [
{
"id": "net-1",
"method": "GET",
- "url": "http://127.0.0.1:37213/api/articles?limit=3&&offset=0",
+ "url": "http://127.0.0.1:37223/api/articles?limit=3&&offset=0",
"resourceType": "xhr",
- "startedAt": 1487,
+ "startedAt": 1517,
"status": 200,
"ok": true,
- "finishedAt": 1493,
+ "finishedAt": 1523,
"contentType": "application/json",
"resourceTypeHint": "articles"
},
{
"id": "net-2",
"method": "GET",
- "url": "http://127.0.0.1:37213/api/tags",
+ "url": "http://127.0.0.1:37223/api/tags",
"resourceType": "xhr",
- "startedAt": 1488,
+ "startedAt": 1517,
"status": 200,
"ok": true,
- "finishedAt": 1492,
"contentType": "application/json",
- "resourceTypeHint": "tags"
+ "resourceTypeHint": "tags",
+ "finishedAt": 1522
}
],
"console": [],
@@ -7525,7 +7739,7 @@
"weight": 60,
"matchCount": 2,
"visibleCount": 2,
- "elapsedMs": 5
+ "elapsedMs": 7
},
{
"strategy": "css",
@@ -7540,8 +7754,8 @@
"retryCount": 0
},
"before": {
- "at": 1446,
- "url": "http://127.0.0.1:37213/#/register",
+ "at": 1478,
+ "url": "http://127.0.0.1:37223/#/register",
"title": "Conduit",
"domHash": "1f4fa65964895f4c",
"canaryPresent": false,
@@ -7606,8 +7820,8 @@
}
},
"beforeAction": {
- "at": 1454,
- "url": "http://127.0.0.1:37213/#/register",
+ "at": 1487,
+ "url": "http://127.0.0.1:37223/#/register",
"title": "Conduit",
"domHash": "1f4fa65964895f4c",
"canaryPresent": false,
@@ -7674,8 +7888,8 @@
"networkSettled": true,
"targetBusyAfter": false,
"after": {
- "at": 2453,
- "url": "http://127.0.0.1:37213/#/",
+ "at": 2478,
+ "url": "http://127.0.0.1:37223/#/",
"title": "Conduit",
"domHash": "3c44d4d1ff59317a",
"canaryPresent": false,
@@ -7712,7 +7926,7 @@
"indexedDb": []
}
},
- "trace": "traces/641cbb0f1c53.zip",
+ "trace": "traces/2a8d30d118d1.zip",
"snapshotIndex": "snapshots/RD-018.index.json"
},
"verdict": "VERIFIED",
@@ -7723,8 +7937,8 @@
{
"id": "RD-019",
"action": {
- "id": "36a91b6a1f72",
- "pageUrl": "http://127.0.0.1:37213/",
+ "id": "dff655920243",
+ "pageUrl": "http://127.0.0.1:37223/",
"label": "Source code",
"activation": "click",
"kind": "navigation",
@@ -7796,8 +8010,8 @@
{
"id": "RD-020",
"action": {
- "id": "731b624cc34c",
- "pageUrl": "http://127.0.0.1:37213/",
+ "id": "d0d3611360e0",
+ "pageUrl": "http://127.0.0.1:37223/",
"label": "Thinkster",
"activation": "click",
"kind": "navigation",
@@ -7869,8 +8083,8 @@
{
"id": "RD-021",
"action": {
- "id": "c5063859c1ad",
- "pageUrl": "http://127.0.0.1:37213/",
+ "id": "aece598f17f5",
+ "pageUrl": "http://127.0.0.1:37223/",
"label": "Source code",
"activation": "click",
"kind": "navigation",
@@ -7942,8 +8156,8 @@
{
"id": "RD-022",
"action": {
- "id": "0a96ce3e0599",
- "pageUrl": "http://127.0.0.1:37213/#/login",
+ "id": "0bbdd763f574",
+ "pageUrl": "http://127.0.0.1:37223/#/login",
"label": "Source code",
"activation": "click",
"kind": "navigation",
@@ -8015,8 +8229,8 @@
{
"id": "RD-023",
"action": {
- "id": "8e0749e6c4bd",
- "pageUrl": "http://127.0.0.1:37213/#/login",
+ "id": "8cf8ab594a99",
+ "pageUrl": "http://127.0.0.1:37223/#/login",
"label": "Login",
"activation": "click",
"kind": "navigation",
@@ -8029,7 +8243,7 @@
"role": "link",
"accessibleName": "Login",
"text": "Login",
- "href": "http://127.0.0.1:37213/#/login",
+ "href": "http://127.0.0.1:37223/#/login",
"candidates": [
{
"strategy": "role",
@@ -8048,7 +8262,7 @@
{
"strategy": "href",
"weight": 72,
- "value": "http://127.0.0.1:37213/#/login"
+ "value": "http://127.0.0.1:37223/#/login"
},
{
"strategy": "text",
@@ -8088,8 +8302,8 @@
{
"id": "RD-024",
"action": {
- "id": "ea0c68fd2737",
- "pageUrl": "http://127.0.0.1:37213/#/login",
+ "id": "f0f10953de61",
+ "pageUrl": "http://127.0.0.1:37223/#/login",
"label": "Thinkster",
"activation": "click",
"kind": "navigation",
@@ -8161,8 +8375,8 @@
{
"id": "RD-025",
"action": {
- "id": "afb29f9198b9",
- "pageUrl": "http://127.0.0.1:37213/#/login",
+ "id": "f819daae696d",
+ "pageUrl": "http://127.0.0.1:37223/#/login",
"label": "Source code",
"activation": "click",
"kind": "navigation",
@@ -8234,8 +8448,8 @@
{
"id": "RD-026",
"action": {
- "id": "b6abdef8912c",
- "pageUrl": "http://127.0.0.1:37213/#/register",
+ "id": "03a023e83ccc",
+ "pageUrl": "http://127.0.0.1:37223/#/register",
"label": "Source code",
"activation": "click",
"kind": "navigation",
@@ -8307,8 +8521,8 @@
{
"id": "RD-027",
"action": {
- "id": "7eb4978c14a5",
- "pageUrl": "http://127.0.0.1:37213/#/register",
+ "id": "c336224b8b96",
+ "pageUrl": "http://127.0.0.1:37223/#/register",
"label": "Sign up",
"activation": "click",
"kind": "navigation",
@@ -8321,7 +8535,7 @@
"role": "link",
"accessibleName": "Sign up",
"text": "Sign up",
- "href": "http://127.0.0.1:37213/#/register",
+ "href": "http://127.0.0.1:37223/#/register",
"candidates": [
{
"strategy": "role",
@@ -8340,7 +8554,7 @@
{
"strategy": "href",
"weight": 72,
- "value": "http://127.0.0.1:37213/#/register"
+ "value": "http://127.0.0.1:37223/#/register"
},
{
"strategy": "text",
@@ -8380,8 +8594,8 @@
{
"id": "RD-028",
"action": {
- "id": "253c660955b4",
- "pageUrl": "http://127.0.0.1:37213/#/register",
+ "id": "4c473c1e6971",
+ "pageUrl": "http://127.0.0.1:37223/#/register",
"label": "Thinkster",
"activation": "click",
"kind": "navigation",
@@ -8453,8 +8667,8 @@
{
"id": "RD-029",
"action": {
- "id": "dcb1127e6e40",
- "pageUrl": "http://127.0.0.1:37213/#/register",
+ "id": "3fb2e5e3bcbe",
+ "pageUrl": "http://127.0.0.1:37223/#/register",
"label": "Source code",
"activation": "click",
"kind": "navigation",
@@ -8526,9 +8740,9 @@
],
"environment": {
"status": "VALID",
- "checkedAt": "2026-07-26T10:49:33.396Z",
- "durationMs": 3824,
- "targetUrl": "http://127.0.0.1:37213/",
+ "checkedAt": "2026-07-26T12:10:26.356Z",
+ "durationMs": 6553,
+ "targetUrl": "http://127.0.0.1:37223/",
"mainDocument": {
"status": 200,
"contentType": "text/html"
diff --git a/release/evidence/raw/conduit.scan.json b/release/evidence/raw/conduit.scan.json
index 5aaeb67..7ff6ecb 100644
--- a/release/evidence/raw/conduit.scan.json
+++ b/release/evidence/raw/conduit.scan.json
@@ -1,9 +1,9 @@
{
"schemaVersion": "1.0",
- "scanId": "20260726T105114Z-0982",
- "targetUrl": "http://127.0.0.1:37211/",
- "startedAt": "2026-07-26T10:51:14.600Z",
- "finishedAt": "2026-07-26T10:52:16.031Z",
+ "scanId": "20260726T120053Z-d309",
+ "targetUrl": "http://127.0.0.1:37221/",
+ "startedAt": "2026-07-26T12:00:53.368Z",
+ "finishedAt": "2026-07-26T12:01:54.713Z",
"options": {
"maxPages": 10,
"maxActions": 100,
@@ -41,12 +41,12 @@
},
"pages": [
{
- "url": "http://127.0.0.1:37211/",
+ "url": "http://127.0.0.1:37221/",
"title": "Conduit",
"actions": [
{
- "id": "010b144d48c7",
- "pageUrl": "http://127.0.0.1:37211/",
+ "id": "42af6e3916f3",
+ "pageUrl": "http://127.0.0.1:37221/",
"label": "conduit",
"activation": "click",
"kind": "navigation",
@@ -59,7 +59,7 @@
"role": "link",
"accessibleName": "conduit",
"text": "conduit",
- "href": "http://127.0.0.1:37211/#/",
+ "href": "http://127.0.0.1:37221/#/",
"candidates": [
{
"strategy": "role",
@@ -78,7 +78,7 @@
{
"strategy": "href",
"weight": 72,
- "value": "http://127.0.0.1:37211/#/"
+ "value": "http://127.0.0.1:37221/#/"
},
{
"strategy": "text",
@@ -96,8 +96,8 @@
"fields": []
},
{
- "id": "df53bfe9225d",
- "pageUrl": "http://127.0.0.1:37211/",
+ "id": "5bbc1db21d2a",
+ "pageUrl": "http://127.0.0.1:37221/",
"label": "Source code",
"activation": "click",
"kind": "navigation",
@@ -147,8 +147,8 @@
"fields": []
},
{
- "id": "43d3a1048392",
- "pageUrl": "http://127.0.0.1:37211/",
+ "id": "bc96ab4e29fc",
+ "pageUrl": "http://127.0.0.1:37221/",
"label": "Home",
"activation": "click",
"kind": "navigation",
@@ -161,7 +161,7 @@
"role": "link",
"accessibleName": "Home",
"text": "Home",
- "href": "http://127.0.0.1:37211/#/",
+ "href": "http://127.0.0.1:37221/#/",
"candidates": [
{
"strategy": "role",
@@ -180,7 +180,7 @@
{
"strategy": "href",
"weight": 72,
- "value": "http://127.0.0.1:37211/#/"
+ "value": "http://127.0.0.1:37221/#/"
},
{
"strategy": "text",
@@ -198,8 +198,8 @@
"fields": []
},
{
- "id": "3e1acc106b83",
- "pageUrl": "http://127.0.0.1:37211/",
+ "id": "8fc7adf8cf6e",
+ "pageUrl": "http://127.0.0.1:37221/",
"label": "Login",
"activation": "click",
"kind": "navigation",
@@ -212,7 +212,7 @@
"role": "link",
"accessibleName": "Login",
"text": "Login",
- "href": "http://127.0.0.1:37211/#/login",
+ "href": "http://127.0.0.1:37221/#/login",
"candidates": [
{
"strategy": "role",
@@ -231,7 +231,7 @@
{
"strategy": "href",
"weight": 72,
- "value": "http://127.0.0.1:37211/#/login"
+ "value": "http://127.0.0.1:37221/#/login"
},
{
"strategy": "text",
@@ -249,8 +249,8 @@
"fields": []
},
{
- "id": "01cd0c9655aa",
- "pageUrl": "http://127.0.0.1:37211/",
+ "id": "164a03519e8d",
+ "pageUrl": "http://127.0.0.1:37221/",
"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:37211/#/register",
+ "href": "http://127.0.0.1:37221/#/register",
"candidates": [
{
"strategy": "role",
@@ -282,7 +282,7 @@
{
"strategy": "href",
"weight": 72,
- "value": "http://127.0.0.1:37211/#/register"
+ "value": "http://127.0.0.1:37221/#/register"
},
{
"strategy": "text",
@@ -300,8 +300,8 @@
"fields": []
},
{
- "id": "d0dd9425c9ec",
- "pageUrl": "http://127.0.0.1:37211/",
+ "id": "91185e92b6f7",
+ "pageUrl": "http://127.0.0.1:37221/",
"label": "Global Feed",
"activation": "click",
"kind": "local",
@@ -346,8 +346,8 @@
"fields": []
},
{
- "id": "ebc87132381c",
- "pageUrl": "http://127.0.0.1:37211/",
+ "id": "5f0dab4a212e",
+ "pageUrl": "http://127.0.0.1:37221/",
"label": "conduit",
"activation": "click",
"kind": "navigation",
@@ -360,7 +360,7 @@
"role": "link",
"accessibleName": "conduit",
"text": "conduit",
- "href": "http://127.0.0.1:37211/#/",
+ "href": "http://127.0.0.1:37221/#/",
"candidates": [
{
"strategy": "role",
@@ -379,7 +379,7 @@
{
"strategy": "href",
"weight": 72,
- "value": "http://127.0.0.1:37211/#/"
+ "value": "http://127.0.0.1:37221/#/"
},
{
"strategy": "text",
@@ -397,8 +397,8 @@
"fields": []
},
{
- "id": "3040fe74a6b8",
- "pageUrl": "http://127.0.0.1:37211/",
+ "id": "565566fdbfc2",
+ "pageUrl": "http://127.0.0.1:37221/",
"label": "Thinkster",
"activation": "click",
"kind": "navigation",
@@ -448,8 +448,8 @@
"fields": []
},
{
- "id": "9daabb643ebe",
- "pageUrl": "http://127.0.0.1:37211/",
+ "id": "22c0f93a3b99",
+ "pageUrl": "http://127.0.0.1:37221/",
"label": "Source code",
"activation": "click",
"kind": "navigation",
@@ -501,12 +501,12 @@
]
},
{
- "url": "http://127.0.0.1:37211/#/login",
+ "url": "http://127.0.0.1:37221/#/login",
"title": "Conduit",
"actions": [
{
- "id": "d9cb9b16904a",
- "pageUrl": "http://127.0.0.1:37211/#/login",
+ "id": "d00c3c49909e",
+ "pageUrl": "http://127.0.0.1:37221/#/login",
"label": "conduit",
"activation": "click",
"kind": "navigation",
@@ -519,7 +519,7 @@
"role": "link",
"accessibleName": "conduit",
"text": "conduit",
- "href": "http://127.0.0.1:37211/#/",
+ "href": "http://127.0.0.1:37221/#/",
"candidates": [
{
"strategy": "role",
@@ -538,7 +538,7 @@
{
"strategy": "href",
"weight": 72,
- "value": "http://127.0.0.1:37211/#/"
+ "value": "http://127.0.0.1:37221/#/"
},
{
"strategy": "text",
@@ -556,8 +556,8 @@
"fields": []
},
{
- "id": "29f086773df0",
- "pageUrl": "http://127.0.0.1:37211/#/login",
+ "id": "a14c21ba2796",
+ "pageUrl": "http://127.0.0.1:37221/#/login",
"label": "Source code",
"activation": "click",
"kind": "navigation",
@@ -607,8 +607,8 @@
"fields": []
},
{
- "id": "34045263ad97",
- "pageUrl": "http://127.0.0.1:37211/#/login",
+ "id": "618e17be243c",
+ "pageUrl": "http://127.0.0.1:37221/#/login",
"label": "Home",
"activation": "click",
"kind": "navigation",
@@ -621,7 +621,7 @@
"role": "link",
"accessibleName": "Home",
"text": "Home",
- "href": "http://127.0.0.1:37211/#/",
+ "href": "http://127.0.0.1:37221/#/",
"candidates": [
{
"strategy": "role",
@@ -640,7 +640,7 @@
{
"strategy": "href",
"weight": 72,
- "value": "http://127.0.0.1:37211/#/"
+ "value": "http://127.0.0.1:37221/#/"
},
{
"strategy": "text",
@@ -658,8 +658,8 @@
"fields": []
},
{
- "id": "325fa66846a5",
- "pageUrl": "http://127.0.0.1:37211/#/login",
+ "id": "a97311e1dff1",
+ "pageUrl": "http://127.0.0.1:37221/#/login",
"label": "Login",
"activation": "click",
"kind": "navigation",
@@ -672,7 +672,7 @@
"role": "link",
"accessibleName": "Login",
"text": "Login",
- "href": "http://127.0.0.1:37211/#/login",
+ "href": "http://127.0.0.1:37221/#/login",
"candidates": [
{
"strategy": "role",
@@ -691,7 +691,7 @@
{
"strategy": "href",
"weight": 72,
- "value": "http://127.0.0.1:37211/#/login"
+ "value": "http://127.0.0.1:37221/#/login"
},
{
"strategy": "text",
@@ -709,8 +709,8 @@
"fields": []
},
{
- "id": "0b686cd5ddf4",
- "pageUrl": "http://127.0.0.1:37211/#/login",
+ "id": "95b09f480e07",
+ "pageUrl": "http://127.0.0.1:37221/#/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:37211/#/register",
+ "href": "http://127.0.0.1:37221/#/register",
"candidates": [
{
"strategy": "role",
@@ -742,7 +742,7 @@
{
"strategy": "href",
"weight": 72,
- "value": "http://127.0.0.1:37211/#/register"
+ "value": "http://127.0.0.1:37221/#/register"
},
{
"strategy": "text",
@@ -760,8 +760,8 @@
"fields": []
},
{
- "id": "bc493dcbfb71",
- "pageUrl": "http://127.0.0.1:37211/#/login",
+ "id": "28f52f75932f",
+ "pageUrl": "http://127.0.0.1:37221/#/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:37211/#/register",
+ "href": "http://127.0.0.1:37221/#/register",
"candidates": [
{
"strategy": "role",
@@ -793,7 +793,7 @@
{
"strategy": "href",
"weight": 72,
- "value": "http://127.0.0.1:37211/#/register"
+ "value": "http://127.0.0.1:37221/#/register"
},
{
"strategy": "text",
@@ -811,8 +811,8 @@
"fields": []
},
{
- "id": "4991c205504d",
- "pageUrl": "http://127.0.0.1:37211/#/login",
+ "id": "95e44ee989af",
+ "pageUrl": "http://127.0.0.1:37221/#/login",
"label": "Login",
"activation": "submit",
"kind": "mutation",
@@ -861,8 +861,8 @@
]
},
{
- "id": "fcc68ac443ac",
- "pageUrl": "http://127.0.0.1:37211/#/login",
+ "id": "794e0c18aff0",
+ "pageUrl": "http://127.0.0.1:37221/#/login",
"label": "conduit",
"activation": "click",
"kind": "navigation",
@@ -875,7 +875,7 @@
"role": "link",
"accessibleName": "conduit",
"text": "conduit",
- "href": "http://127.0.0.1:37211/#/",
+ "href": "http://127.0.0.1:37221/#/",
"candidates": [
{
"strategy": "role",
@@ -894,7 +894,7 @@
{
"strategy": "href",
"weight": 72,
- "value": "http://127.0.0.1:37211/#/"
+ "value": "http://127.0.0.1:37221/#/"
},
{
"strategy": "text",
@@ -912,8 +912,8 @@
"fields": []
},
{
- "id": "95a464c9f422",
- "pageUrl": "http://127.0.0.1:37211/#/login",
+ "id": "5117246bc5ce",
+ "pageUrl": "http://127.0.0.1:37221/#/login",
"label": "Thinkster",
"activation": "click",
"kind": "navigation",
@@ -963,8 +963,8 @@
"fields": []
},
{
- "id": "292e1c897646",
- "pageUrl": "http://127.0.0.1:37211/#/login",
+ "id": "d605ffbad857",
+ "pageUrl": "http://127.0.0.1:37221/#/login",
"label": "Source code",
"activation": "click",
"kind": "navigation",
@@ -1016,12 +1016,12 @@
]
},
{
- "url": "http://127.0.0.1:37211/#/register",
+ "url": "http://127.0.0.1:37221/#/register",
"title": "Conduit",
"actions": [
{
- "id": "59e2b437f2d6",
- "pageUrl": "http://127.0.0.1:37211/#/register",
+ "id": "82d8b258667a",
+ "pageUrl": "http://127.0.0.1:37221/#/register",
"label": "conduit",
"activation": "click",
"kind": "navigation",
@@ -1034,7 +1034,7 @@
"role": "link",
"accessibleName": "conduit",
"text": "conduit",
- "href": "http://127.0.0.1:37211/#/",
+ "href": "http://127.0.0.1:37221/#/",
"candidates": [
{
"strategy": "role",
@@ -1053,7 +1053,7 @@
{
"strategy": "href",
"weight": 72,
- "value": "http://127.0.0.1:37211/#/"
+ "value": "http://127.0.0.1:37221/#/"
},
{
"strategy": "text",
@@ -1071,8 +1071,8 @@
"fields": []
},
{
- "id": "c22b2a4875fc",
- "pageUrl": "http://127.0.0.1:37211/#/register",
+ "id": "86c5ce218834",
+ "pageUrl": "http://127.0.0.1:37221/#/register",
"label": "Source code",
"activation": "click",
"kind": "navigation",
@@ -1122,8 +1122,8 @@
"fields": []
},
{
- "id": "1a0c7bf79395",
- "pageUrl": "http://127.0.0.1:37211/#/register",
+ "id": "974fd9c7acc8",
+ "pageUrl": "http://127.0.0.1:37221/#/register",
"label": "Home",
"activation": "click",
"kind": "navigation",
@@ -1136,7 +1136,7 @@
"role": "link",
"accessibleName": "Home",
"text": "Home",
- "href": "http://127.0.0.1:37211/#/",
+ "href": "http://127.0.0.1:37221/#/",
"candidates": [
{
"strategy": "role",
@@ -1155,7 +1155,7 @@
{
"strategy": "href",
"weight": 72,
- "value": "http://127.0.0.1:37211/#/"
+ "value": "http://127.0.0.1:37221/#/"
},
{
"strategy": "text",
@@ -1173,8 +1173,8 @@
"fields": []
},
{
- "id": "d5c6b9ea21ab",
- "pageUrl": "http://127.0.0.1:37211/#/register",
+ "id": "bf800e4ddf63",
+ "pageUrl": "http://127.0.0.1:37221/#/register",
"label": "Login",
"activation": "click",
"kind": "navigation",
@@ -1187,7 +1187,7 @@
"role": "link",
"accessibleName": "Login",
"text": "Login",
- "href": "http://127.0.0.1:37211/#/login",
+ "href": "http://127.0.0.1:37221/#/login",
"candidates": [
{
"strategy": "role",
@@ -1206,7 +1206,7 @@
{
"strategy": "href",
"weight": 72,
- "value": "http://127.0.0.1:37211/#/login"
+ "value": "http://127.0.0.1:37221/#/login"
},
{
"strategy": "text",
@@ -1224,8 +1224,8 @@
"fields": []
},
{
- "id": "5a1f878365b7",
- "pageUrl": "http://127.0.0.1:37211/#/register",
+ "id": "1dd44725c1d0",
+ "pageUrl": "http://127.0.0.1:37221/#/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:37211/#/register",
+ "href": "http://127.0.0.1:37221/#/register",
"candidates": [
{
"strategy": "role",
@@ -1257,7 +1257,7 @@
{
"strategy": "href",
"weight": 72,
- "value": "http://127.0.0.1:37211/#/register"
+ "value": "http://127.0.0.1:37221/#/register"
},
{
"strategy": "text",
@@ -1275,8 +1275,8 @@
"fields": []
},
{
- "id": "a36c397a3a4f",
- "pageUrl": "http://127.0.0.1:37211/#/register",
+ "id": "50015942fa59",
+ "pageUrl": "http://127.0.0.1:37221/#/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:37211/#/login",
+ "href": "http://127.0.0.1:37221/#/login",
"candidates": [
{
"strategy": "role",
@@ -1308,7 +1308,7 @@
{
"strategy": "href",
"weight": 72,
- "value": "http://127.0.0.1:37211/#/login"
+ "value": "http://127.0.0.1:37221/#/login"
},
{
"strategy": "text",
@@ -1326,8 +1326,8 @@
"fields": []
},
{
- "id": "3db25a95d913",
- "pageUrl": "http://127.0.0.1:37211/#/register",
+ "id": "69097d25d757",
+ "pageUrl": "http://127.0.0.1:37221/#/register",
"label": "Sign up",
"activation": "submit",
"kind": "mutation",
@@ -1384,8 +1384,8 @@
]
},
{
- "id": "f79995dd7ed7",
- "pageUrl": "http://127.0.0.1:37211/#/register",
+ "id": "b978b9f51ea5",
+ "pageUrl": "http://127.0.0.1:37221/#/register",
"label": "conduit",
"activation": "click",
"kind": "navigation",
@@ -1398,7 +1398,7 @@
"role": "link",
"accessibleName": "conduit",
"text": "conduit",
- "href": "http://127.0.0.1:37211/#/",
+ "href": "http://127.0.0.1:37221/#/",
"candidates": [
{
"strategy": "role",
@@ -1417,7 +1417,7 @@
{
"strategy": "href",
"weight": 72,
- "value": "http://127.0.0.1:37211/#/"
+ "value": "http://127.0.0.1:37221/#/"
},
{
"strategy": "text",
@@ -1435,8 +1435,8 @@
"fields": []
},
{
- "id": "a8bc53027b2f",
- "pageUrl": "http://127.0.0.1:37211/#/register",
+ "id": "6572fb8425d7",
+ "pageUrl": "http://127.0.0.1:37221/#/register",
"label": "Thinkster",
"activation": "click",
"kind": "navigation",
@@ -1486,8 +1486,8 @@
"fields": []
},
{
- "id": "ed7b7d49ac35",
- "pageUrl": "http://127.0.0.1:37211/#/register",
+ "id": "fcc1043fc9f2",
+ "pageUrl": "http://127.0.0.1:37221/#/register",
"label": "Source code",
"activation": "click",
"kind": "navigation",
@@ -1543,8 +1543,8 @@
{
"id": "RD-001",
"action": {
- "id": "010b144d48c7",
- "pageUrl": "http://127.0.0.1:37211/",
+ "id": "42af6e3916f3",
+ "pageUrl": "http://127.0.0.1:37221/",
"label": "conduit",
"activation": "click",
"kind": "navigation",
@@ -1557,7 +1557,7 @@
"role": "link",
"accessibleName": "conduit",
"text": "conduit",
- "href": "http://127.0.0.1:37211/#/",
+ "href": "http://127.0.0.1:37221/#/",
"candidates": [
{
"strategy": "role",
@@ -1576,7 +1576,7 @@
{
"strategy": "href",
"weight": 72,
- "value": "http://127.0.0.1:37211/#/"
+ "value": "http://127.0.0.1:37221/#/"
},
{
"strategy": "text",
@@ -1594,9 +1594,9 @@
"fields": []
},
"evidence": {
- "startedAt": "2026-07-26T10:51:21.861Z",
- "durationMs": 2517,
- "canary": "RD_TEST_1D3B88",
+ "startedAt": "2026-07-26T12:01:00.609Z",
+ "durationMs": 2522,
+ "canary": "RD_TEST_B19622",
"network": [],
"console": [],
"pageErrors": [],
@@ -1621,7 +1621,7 @@
"weight": 82,
"matchCount": 2,
"visibleCount": 2,
- "elapsedMs": 6
+ "elapsedMs": 7
},
{
"strategy": "href",
@@ -1642,7 +1642,7 @@
"weight": 35,
"matchCount": 1,
"visibleCount": 1,
- "elapsedMs": 5
+ "elapsedMs": 4
}
],
"chosenStrategy": "css",
@@ -1650,8 +1650,8 @@
"retryCount": 0
},
"before": {
- "at": 1508,
- "url": "http://127.0.0.1:37211/",
+ "at": 1515,
+ "url": "http://127.0.0.1:37221/",
"title": "Conduit",
"domHash": "3c44d4d1ff59317a",
"canaryPresent": false,
@@ -1689,8 +1689,8 @@
}
},
"beforeAction": {
- "at": 1517,
- "url": "http://127.0.0.1:37211/",
+ "at": 1526,
+ "url": "http://127.0.0.1:37221/",
"title": "Conduit",
"domHash": "3c44d4d1ff59317a",
"canaryPresent": false,
@@ -1730,8 +1730,8 @@
"networkSettled": true,
"targetBusyAfter": false,
"after": {
- "at": 2513,
- "url": "http://127.0.0.1:37211/#/",
+ "at": 2519,
+ "url": "http://127.0.0.1:37221/#/",
"title": "Conduit",
"domHash": "3c44d4d1ff59317a",
"canaryPresent": false,
@@ -1768,7 +1768,7 @@
"indexedDb": []
}
},
- "trace": "traces/010b144d48c7.zip",
+ "trace": "traces/42af6e3916f3.zip",
"snapshotIndex": "snapshots/RD-001.index.json"
},
"verdict": "VERIFIED",
@@ -1779,8 +1779,8 @@
{
"id": "RD-002",
"action": {
- "id": "43d3a1048392",
- "pageUrl": "http://127.0.0.1:37211/",
+ "id": "bc96ab4e29fc",
+ "pageUrl": "http://127.0.0.1:37221/",
"label": "Home",
"activation": "click",
"kind": "navigation",
@@ -1793,7 +1793,7 @@
"role": "link",
"accessibleName": "Home",
"text": "Home",
- "href": "http://127.0.0.1:37211/#/",
+ "href": "http://127.0.0.1:37221/#/",
"candidates": [
{
"strategy": "role",
@@ -1812,7 +1812,7 @@
{
"strategy": "href",
"weight": 72,
- "value": "http://127.0.0.1:37211/#/"
+ "value": "http://127.0.0.1:37221/#/"
},
{
"strategy": "text",
@@ -1830,9 +1830,9 @@
"fields": []
},
"evidence": {
- "startedAt": "2026-07-26T10:51:24.424Z",
- "durationMs": 2475,
- "canary": "RD_TEST_A7B313",
+ "startedAt": "2026-07-26T12:01:03.177Z",
+ "durationMs": 2454,
+ "canary": "RD_TEST_500554",
"network": [],
"console": [],
"pageErrors": [],
@@ -1865,8 +1865,8 @@
"retryCount": 0
},
"before": {
- "at": 1451,
- "url": "http://127.0.0.1:37211/",
+ "at": 1448,
+ "url": "http://127.0.0.1:37221/",
"title": "Conduit",
"domHash": "3c44d4d1ff59317a",
"canaryPresent": false,
@@ -1904,8 +1904,8 @@
}
},
"beforeAction": {
- "at": 1460,
- "url": "http://127.0.0.1:37211/",
+ "at": 1457,
+ "url": "http://127.0.0.1:37221/",
"title": "Conduit",
"domHash": "3c44d4d1ff59317a",
"canaryPresent": false,
@@ -1945,8 +1945,8 @@
"networkSettled": true,
"targetBusyAfter": false,
"after": {
- "at": 2471,
- "url": "http://127.0.0.1:37211/#/",
+ "at": 2450,
+ "url": "http://127.0.0.1:37221/#/",
"title": "Conduit",
"domHash": "3c44d4d1ff59317a",
"canaryPresent": false,
@@ -1983,7 +1983,7 @@
"indexedDb": []
}
},
- "trace": "traces/43d3a1048392.zip",
+ "trace": "traces/bc96ab4e29fc.zip",
"snapshotIndex": "snapshots/RD-002.index.json"
},
"verdict": "VERIFIED",
@@ -1994,8 +1994,8 @@
{
"id": "RD-003",
"action": {
- "id": "3e1acc106b83",
- "pageUrl": "http://127.0.0.1:37211/",
+ "id": "8fc7adf8cf6e",
+ "pageUrl": "http://127.0.0.1:37221/",
"label": "Login",
"activation": "click",
"kind": "navigation",
@@ -2008,7 +2008,7 @@
"role": "link",
"accessibleName": "Login",
"text": "Login",
- "href": "http://127.0.0.1:37211/#/login",
+ "href": "http://127.0.0.1:37221/#/login",
"candidates": [
{
"strategy": "role",
@@ -2027,7 +2027,7 @@
{
"strategy": "href",
"weight": 72,
- "value": "http://127.0.0.1:37211/#/login"
+ "value": "http://127.0.0.1:37221/#/login"
},
{
"strategy": "text",
@@ -2045,9 +2045,9 @@
"fields": []
},
"evidence": {
- "startedAt": "2026-07-26T10:51:26.930Z",
- "durationMs": 2484,
- "canary": "RD_TEST_4BA3ED",
+ "startedAt": "2026-07-26T12:01:05.665Z",
+ "durationMs": 2475,
+ "canary": "RD_TEST_29B056",
"network": [],
"console": [],
"pageErrors": [],
@@ -2072,7 +2072,7 @@
"weight": 82,
"matchCount": 1,
"visibleCount": 1,
- "elapsedMs": 4
+ "elapsedMs": 5
}
],
"chosenStrategy": "role",
@@ -2080,8 +2080,8 @@
"retryCount": 0
},
"before": {
- "at": 1478,
- "url": "http://127.0.0.1:37211/",
+ "at": 1456,
+ "url": "http://127.0.0.1:37221/",
"title": "Conduit",
"domHash": "3c44d4d1ff59317a",
"canaryPresent": false,
@@ -2119,8 +2119,8 @@
}
},
"beforeAction": {
- "at": 1488,
- "url": "http://127.0.0.1:37211/",
+ "at": 1465,
+ "url": "http://127.0.0.1:37221/",
"title": "Conduit",
"domHash": "3c44d4d1ff59317a",
"canaryPresent": false,
@@ -2160,8 +2160,8 @@
"networkSettled": true,
"targetBusyAfter": false,
"after": {
- "at": 2479,
- "url": "http://127.0.0.1:37211/#/login",
+ "at": 2471,
+ "url": "http://127.0.0.1:37221/#/login",
"title": "Conduit",
"domHash": "c659be8900b0e706",
"canaryPresent": false,
@@ -2216,7 +2216,7 @@
"indexedDb": []
}
},
- "trace": "traces/3e1acc106b83.zip",
+ "trace": "traces/8fc7adf8cf6e.zip",
"snapshotIndex": "snapshots/RD-003.index.json"
},
"verdict": "VERIFIED",
@@ -2227,8 +2227,8 @@
{
"id": "RD-004",
"action": {
- "id": "01cd0c9655aa",
- "pageUrl": "http://127.0.0.1:37211/",
+ "id": "164a03519e8d",
+ "pageUrl": "http://127.0.0.1:37221/",
"label": "Sign up",
"activation": "click",
"kind": "navigation",
@@ -2241,7 +2241,7 @@
"role": "link",
"accessibleName": "Sign up",
"text": "Sign up",
- "href": "http://127.0.0.1:37211/#/register",
+ "href": "http://127.0.0.1:37221/#/register",
"candidates": [
{
"strategy": "role",
@@ -2260,7 +2260,7 @@
{
"strategy": "href",
"weight": 72,
- "value": "http://127.0.0.1:37211/#/register"
+ "value": "http://127.0.0.1:37221/#/register"
},
{
"strategy": "text",
@@ -2278,9 +2278,9 @@
"fields": []
},
"evidence": {
- "startedAt": "2026-07-26T10:51:29.459Z",
- "durationMs": 2461,
- "canary": "RD_TEST_E82F28",
+ "startedAt": "2026-07-26T12:01:08.183Z",
+ "durationMs": 2490,
+ "canary": "RD_TEST_FAE050",
"network": [],
"console": [],
"pageErrors": [],
@@ -2306,8 +2306,8 @@
"retryCount": 0
},
"before": {
- "at": 1451,
- "url": "http://127.0.0.1:37211/",
+ "at": 1478,
+ "url": "http://127.0.0.1:37221/",
"title": "Conduit",
"domHash": "3c44d4d1ff59317a",
"canaryPresent": false,
@@ -2345,8 +2345,8 @@
}
},
"beforeAction": {
- "at": 1460,
- "url": "http://127.0.0.1:37211/",
+ "at": 1488,
+ "url": "http://127.0.0.1:37221/",
"title": "Conduit",
"domHash": "3c44d4d1ff59317a",
"canaryPresent": false,
@@ -2386,8 +2386,8 @@
"networkSettled": true,
"targetBusyAfter": false,
"after": {
- "at": 2457,
- "url": "http://127.0.0.1:37211/#/register",
+ "at": 2486,
+ "url": "http://127.0.0.1:37221/#/register",
"title": "Conduit",
"domHash": "1f4fa65964895f4c",
"canaryPresent": false,
@@ -2451,7 +2451,7 @@
"indexedDb": []
}
},
- "trace": "traces/01cd0c9655aa.zip",
+ "trace": "traces/164a03519e8d.zip",
"snapshotIndex": "snapshots/RD-004.index.json"
},
"verdict": "VERIFIED",
@@ -2462,8 +2462,8 @@
{
"id": "RD-005",
"action": {
- "id": "d0dd9425c9ec",
- "pageUrl": "http://127.0.0.1:37211/",
+ "id": "91185e92b6f7",
+ "pageUrl": "http://127.0.0.1:37221/",
"label": "Global Feed",
"activation": "click",
"kind": "local",
@@ -2508,19 +2508,19 @@
"fields": []
},
"evidence": {
- "startedAt": "2026-07-26T10:51:31.961Z",
- "durationMs": 2516,
- "canary": "RD_TEST_C616FB",
+ "startedAt": "2026-07-26T12:01:10.719Z",
+ "durationMs": 2489,
+ "canary": "RD_TEST_E66E47",
"network": [
{
"id": "net-1",
"method": "GET",
- "url": "http://127.0.0.1:37211/api/articles?limit=3&&offset=0",
+ "url": "http://127.0.0.1:37221/api/articles?limit=3&&offset=0",
"resourceType": "xhr",
- "startedAt": 1520,
+ "startedAt": 1478,
"status": 200,
"ok": true,
- "finishedAt": 1529,
+ "finishedAt": 1488,
"contentType": "application/json",
"resourceTypeHint": "articles"
}
@@ -2541,7 +2541,7 @@
"weight": 92,
"matchCount": 1,
"visibleCount": 1,
- "elapsedMs": 5
+ "elapsedMs": 4
}
],
"chosenStrategy": "role",
@@ -2549,8 +2549,8 @@
"retryCount": 0
},
"before": {
- "at": 1482,
- "url": "http://127.0.0.1:37211/",
+ "at": 1449,
+ "url": "http://127.0.0.1:37221/",
"title": "Conduit",
"domHash": "3c44d4d1ff59317a",
"canaryPresent": false,
@@ -2588,8 +2588,8 @@
}
},
"beforeAction": {
- "at": 1490,
- "url": "http://127.0.0.1:37211/",
+ "at": 1458,
+ "url": "http://127.0.0.1:37221/",
"title": "Conduit",
"domHash": "3c44d4d1ff59317a",
"canaryPresent": false,
@@ -2629,8 +2629,8 @@
"networkSettled": true,
"targetBusyAfter": false,
"after": {
- "at": 2481,
- "url": "http://127.0.0.1:37211/",
+ "at": 2459,
+ "url": "http://127.0.0.1:37221/",
"title": "Conduit",
"domHash": "3c44d4d1ff59317a",
"canaryPresent": false,
@@ -2667,8 +2667,8 @@
"indexedDb": []
}
},
- "screenshot": "screenshots/d0dd9425c9ec-after.png",
- "trace": "traces/d0dd9425c9ec.zip",
+ "screenshot": "screenshots/91185e92b6f7-after.png",
+ "trace": "traces/91185e92b6f7.zip",
"snapshotIndex": "snapshots/RD-005.index.json"
},
"verdict": "VERIFIED",
@@ -2679,8 +2679,8 @@
{
"id": "RD-006",
"action": {
- "id": "ebc87132381c",
- "pageUrl": "http://127.0.0.1:37211/",
+ "id": "5f0dab4a212e",
+ "pageUrl": "http://127.0.0.1:37221/",
"label": "conduit",
"activation": "click",
"kind": "navigation",
@@ -2693,7 +2693,7 @@
"role": "link",
"accessibleName": "conduit",
"text": "conduit",
- "href": "http://127.0.0.1:37211/#/",
+ "href": "http://127.0.0.1:37221/#/",
"candidates": [
{
"strategy": "role",
@@ -2712,7 +2712,7 @@
{
"strategy": "href",
"weight": 72,
- "value": "http://127.0.0.1:37211/#/"
+ "value": "http://127.0.0.1:37221/#/"
},
{
"strategy": "text",
@@ -2730,9 +2730,9 @@
"fields": []
},
"evidence": {
- "startedAt": "2026-07-26T10:51:34.511Z",
- "durationMs": 2478,
- "canary": "RD_TEST_DA60FF",
+ "startedAt": "2026-07-26T12:01:13.241Z",
+ "durationMs": 2481,
+ "canary": "RD_TEST_CDA00E",
"network": [],
"console": [],
"pageErrors": [],
@@ -2750,7 +2750,7 @@
"weight": 92,
"matchCount": 2,
"visibleCount": 2,
- "elapsedMs": 8
+ "elapsedMs": 9
},
{
"strategy": "role",
@@ -2778,7 +2778,7 @@
"weight": 35,
"matchCount": 1,
"visibleCount": 1,
- "elapsedMs": 3
+ "elapsedMs": 5
}
],
"chosenStrategy": "css",
@@ -2786,8 +2786,8 @@
"retryCount": 0
},
"before": {
- "at": 1464,
- "url": "http://127.0.0.1:37211/",
+ "at": 1485,
+ "url": "http://127.0.0.1:37221/",
"title": "Conduit",
"domHash": "3c44d4d1ff59317a",
"canaryPresent": false,
@@ -2825,8 +2825,8 @@
}
},
"beforeAction": {
- "at": 1473,
- "url": "http://127.0.0.1:37211/",
+ "at": 1493,
+ "url": "http://127.0.0.1:37221/",
"title": "Conduit",
"domHash": "3c44d4d1ff59317a",
"canaryPresent": false,
@@ -2866,8 +2866,8 @@
"networkSettled": true,
"targetBusyAfter": false,
"after": {
- "at": 2474,
- "url": "http://127.0.0.1:37211/#/",
+ "at": 2477,
+ "url": "http://127.0.0.1:37221/#/",
"title": "Conduit",
"domHash": "3c44d4d1ff59317a",
"canaryPresent": false,
@@ -2904,7 +2904,7 @@
"indexedDb": []
}
},
- "trace": "traces/ebc87132381c.zip",
+ "trace": "traces/5f0dab4a212e.zip",
"snapshotIndex": "snapshots/RD-006.index.json"
},
"verdict": "VERIFIED",
@@ -2915,8 +2915,8 @@
{
"id": "RD-007",
"action": {
- "id": "d9cb9b16904a",
- "pageUrl": "http://127.0.0.1:37211/#/login",
+ "id": "d00c3c49909e",
+ "pageUrl": "http://127.0.0.1:37221/#/login",
"label": "conduit",
"activation": "click",
"kind": "navigation",
@@ -2929,7 +2929,7 @@
"role": "link",
"accessibleName": "conduit",
"text": "conduit",
- "href": "http://127.0.0.1:37211/#/",
+ "href": "http://127.0.0.1:37221/#/",
"candidates": [
{
"strategy": "role",
@@ -2948,7 +2948,7 @@
{
"strategy": "href",
"weight": 72,
- "value": "http://127.0.0.1:37211/#/"
+ "value": "http://127.0.0.1:37221/#/"
},
{
"strategy": "text",
@@ -2966,31 +2966,31 @@
"fields": []
},
"evidence": {
- "startedAt": "2026-07-26T10:51:37.016Z",
- "durationMs": 2467,
- "canary": "RD_TEST_DA9FBD",
+ "startedAt": "2026-07-26T12:01:15.750Z",
+ "durationMs": 2488,
+ "canary": "RD_TEST_B64F6F",
"network": [
{
"id": "net-1",
"method": "GET",
- "url": "http://127.0.0.1:37211/api/articles?limit=3&&offset=0",
+ "url": "http://127.0.0.1:37221/api/articles?limit=3&&offset=0",
"resourceType": "xhr",
- "startedAt": 1496,
+ "startedAt": 1546,
"status": 200,
"ok": true,
- "finishedAt": 1503,
"contentType": "application/json",
- "resourceTypeHint": "articles"
+ "resourceTypeHint": "articles",
+ "finishedAt": 1551
},
{
"id": "net-2",
"method": "GET",
- "url": "http://127.0.0.1:37211/api/tags",
+ "url": "http://127.0.0.1:37221/api/tags",
"resourceType": "xhr",
- "startedAt": 1497,
+ "startedAt": 1546,
"status": 200,
"ok": true,
- "finishedAt": 1504,
+ "finishedAt": 1552,
"contentType": "application/json",
"resourceTypeHint": "tags"
}
@@ -3011,7 +3011,7 @@
"weight": 92,
"matchCount": 2,
"visibleCount": 2,
- "elapsedMs": 7
+ "elapsedMs": 8
},
{
"strategy": "role",
@@ -3047,8 +3047,8 @@
"retryCount": 0
},
"before": {
- "at": 1460,
- "url": "http://127.0.0.1:37211/#/login",
+ "at": 1497,
+ "url": "http://127.0.0.1:37221/#/login",
"title": "Conduit",
"domHash": "c659be8900b0e706",
"canaryPresent": false,
@@ -3104,8 +3104,8 @@
}
},
"beforeAction": {
- "at": 1469,
- "url": "http://127.0.0.1:37211/#/login",
+ "at": 1506,
+ "url": "http://127.0.0.1:37221/#/login",
"title": "Conduit",
"domHash": "c659be8900b0e706",
"canaryPresent": false,
@@ -3163,8 +3163,8 @@
"networkSettled": true,
"targetBusyAfter": false,
"after": {
- "at": 2464,
- "url": "http://127.0.0.1:37211/#/",
+ "at": 2484,
+ "url": "http://127.0.0.1:37221/#/",
"title": "Conduit",
"domHash": "3c44d4d1ff59317a",
"canaryPresent": false,
@@ -3201,7 +3201,7 @@
"indexedDb": []
}
},
- "trace": "traces/d9cb9b16904a.zip",
+ "trace": "traces/d00c3c49909e.zip",
"snapshotIndex": "snapshots/RD-007.index.json"
},
"verdict": "VERIFIED",
@@ -3212,8 +3212,8 @@
{
"id": "RD-008",
"action": {
- "id": "34045263ad97",
- "pageUrl": "http://127.0.0.1:37211/#/login",
+ "id": "618e17be243c",
+ "pageUrl": "http://127.0.0.1:37221/#/login",
"label": "Home",
"activation": "click",
"kind": "navigation",
@@ -3226,7 +3226,7 @@
"role": "link",
"accessibleName": "Home",
"text": "Home",
- "href": "http://127.0.0.1:37211/#/",
+ "href": "http://127.0.0.1:37221/#/",
"candidates": [
{
"strategy": "role",
@@ -3245,7 +3245,7 @@
{
"strategy": "href",
"weight": 72,
- "value": "http://127.0.0.1:37211/#/"
+ "value": "http://127.0.0.1:37221/#/"
},
{
"strategy": "text",
@@ -3263,31 +3263,31 @@
"fields": []
},
"evidence": {
- "startedAt": "2026-07-26T10:51:39.530Z",
- "durationMs": 2460,
- "canary": "RD_TEST_11E923",
+ "startedAt": "2026-07-26T12:01:18.299Z",
+ "durationMs": 2467,
+ "canary": "RD_TEST_C4734F",
"network": [
{
"id": "net-1",
"method": "GET",
- "url": "http://127.0.0.1:37211/api/articles?limit=3&&offset=0",
+ "url": "http://127.0.0.1:37221/api/articles?limit=3&&offset=0",
"resourceType": "xhr",
- "startedAt": 1481,
+ "startedAt": 1496,
"status": 200,
"ok": true,
"contentType": "application/json",
"resourceTypeHint": "articles",
- "finishedAt": 1487
+ "finishedAt": 1501
},
{
"id": "net-2",
"method": "GET",
- "url": "http://127.0.0.1:37211/api/tags",
+ "url": "http://127.0.0.1:37221/api/tags",
"resourceType": "xhr",
- "startedAt": 1482,
+ "startedAt": 1496,
"status": 200,
"ok": true,
- "finishedAt": 1488,
+ "finishedAt": 1502,
"contentType": "application/json",
"resourceTypeHint": "tags"
}
@@ -3323,8 +3323,8 @@
"retryCount": 0
},
"before": {
- "at": 1442,
- "url": "http://127.0.0.1:37211/#/login",
+ "at": 1457,
+ "url": "http://127.0.0.1:37221/#/login",
"title": "Conduit",
"domHash": "c659be8900b0e706",
"canaryPresent": false,
@@ -3380,8 +3380,8 @@
}
},
"beforeAction": {
- "at": 1450,
- "url": "http://127.0.0.1:37211/#/login",
+ "at": 1465,
+ "url": "http://127.0.0.1:37221/#/login",
"title": "Conduit",
"domHash": "c659be8900b0e706",
"canaryPresent": false,
@@ -3439,8 +3439,8 @@
"networkSettled": true,
"targetBusyAfter": false,
"after": {
- "at": 2457,
- "url": "http://127.0.0.1:37211/#/",
+ "at": 2463,
+ "url": "http://127.0.0.1:37221/#/",
"title": "Conduit",
"domHash": "3c44d4d1ff59317a",
"canaryPresent": false,
@@ -3477,7 +3477,7 @@
"indexedDb": []
}
},
- "trace": "traces/34045263ad97.zip",
+ "trace": "traces/618e17be243c.zip",
"snapshotIndex": "snapshots/RD-008.index.json"
},
"verdict": "VERIFIED",
@@ -3488,8 +3488,8 @@
{
"id": "RD-009",
"action": {
- "id": "0b686cd5ddf4",
- "pageUrl": "http://127.0.0.1:37211/#/login",
+ "id": "95b09f480e07",
+ "pageUrl": "http://127.0.0.1:37221/#/login",
"label": "Sign up",
"activation": "click",
"kind": "navigation",
@@ -3502,7 +3502,7 @@
"role": "link",
"accessibleName": "Sign up",
"text": "Sign up",
- "href": "http://127.0.0.1:37211/#/register",
+ "href": "http://127.0.0.1:37221/#/register",
"candidates": [
{
"strategy": "role",
@@ -3521,7 +3521,7 @@
{
"strategy": "href",
"weight": 72,
- "value": "http://127.0.0.1:37211/#/register"
+ "value": "http://127.0.0.1:37221/#/register"
},
{
"strategy": "text",
@@ -3539,9 +3539,9 @@
"fields": []
},
"evidence": {
- "startedAt": "2026-07-26T10:51:42.047Z",
- "durationMs": 2453,
- "canary": "RD_TEST_32D091",
+ "startedAt": "2026-07-26T12:01:20.818Z",
+ "durationMs": 2493,
+ "canary": "RD_TEST_DB40F3",
"network": [],
"console": [],
"pageErrors": [],
@@ -3567,8 +3567,8 @@
"retryCount": 0
},
"before": {
- "at": 1443,
- "url": "http://127.0.0.1:37211/#/login",
+ "at": 1464,
+ "url": "http://127.0.0.1:37221/#/login",
"title": "Conduit",
"domHash": "c659be8900b0e706",
"canaryPresent": false,
@@ -3624,8 +3624,8 @@
}
},
"beforeAction": {
- "at": 1452,
- "url": "http://127.0.0.1:37211/#/login",
+ "at": 1473,
+ "url": "http://127.0.0.1:37221/#/login",
"title": "Conduit",
"domHash": "c659be8900b0e706",
"canaryPresent": false,
@@ -3683,8 +3683,8 @@
"networkSettled": true,
"targetBusyAfter": false,
"after": {
- "at": 2449,
- "url": "http://127.0.0.1:37211/#/register",
+ "at": 2485,
+ "url": "http://127.0.0.1:37221/#/register",
"title": "Conduit",
"domHash": "1f4fa65964895f4c",
"canaryPresent": false,
@@ -3748,7 +3748,7 @@
"indexedDb": []
}
},
- "trace": "traces/0b686cd5ddf4.zip",
+ "trace": "traces/95b09f480e07.zip",
"snapshotIndex": "snapshots/RD-009.index.json"
},
"verdict": "VERIFIED",
@@ -3759,8 +3759,8 @@
{
"id": "RD-010",
"action": {
- "id": "bc493dcbfb71",
- "pageUrl": "http://127.0.0.1:37211/#/login",
+ "id": "28f52f75932f",
+ "pageUrl": "http://127.0.0.1:37221/#/login",
"label": "Need an account?",
"activation": "click",
"kind": "navigation",
@@ -3773,7 +3773,7 @@
"role": "link",
"accessibleName": "Need an account?",
"text": "Need an account?",
- "href": "http://127.0.0.1:37211/#/register",
+ "href": "http://127.0.0.1:37221/#/register",
"candidates": [
{
"strategy": "role",
@@ -3792,7 +3792,7 @@
{
"strategy": "href",
"weight": 72,
- "value": "http://127.0.0.1:37211/#/register"
+ "value": "http://127.0.0.1:37221/#/register"
},
{
"strategy": "text",
@@ -3810,9 +3810,9 @@
"fields": []
},
"evidence": {
- "startedAt": "2026-07-26T10:51:44.540Z",
- "durationMs": 2426,
- "canary": "RD_TEST_884B47",
+ "startedAt": "2026-07-26T12:01:23.358Z",
+ "durationMs": 2475,
+ "canary": "RD_TEST_927837",
"network": [],
"console": [],
"pageErrors": [],
@@ -3838,8 +3838,8 @@
"retryCount": 0
},
"before": {
- "at": 1429,
- "url": "http://127.0.0.1:37211/#/login",
+ "at": 1463,
+ "url": "http://127.0.0.1:37221/#/login",
"title": "Conduit",
"domHash": "c659be8900b0e706",
"canaryPresent": false,
@@ -3895,8 +3895,8 @@
}
},
"beforeAction": {
- "at": 1438,
- "url": "http://127.0.0.1:37211/#/login",
+ "at": 1472,
+ "url": "http://127.0.0.1:37221/#/login",
"title": "Conduit",
"domHash": "c659be8900b0e706",
"canaryPresent": false,
@@ -3954,8 +3954,8 @@
"networkSettled": true,
"targetBusyAfter": false,
"after": {
- "at": 2422,
- "url": "http://127.0.0.1:37211/#/register",
+ "at": 2471,
+ "url": "http://127.0.0.1:37221/#/register",
"title": "Conduit",
"domHash": "1f4fa65964895f4c",
"canaryPresent": false,
@@ -4019,7 +4019,7 @@
"indexedDb": []
}
},
- "trace": "traces/bc493dcbfb71.zip",
+ "trace": "traces/28f52f75932f.zip",
"snapshotIndex": "snapshots/RD-010.index.json"
},
"verdict": "VERIFIED",
@@ -4030,8 +4030,8 @@
{
"id": "RD-011",
"action": {
- "id": "4991c205504d",
- "pageUrl": "http://127.0.0.1:37211/#/login",
+ "id": "95e44ee989af",
+ "pageUrl": "http://127.0.0.1:37221/#/login",
"label": "Login",
"activation": "submit",
"kind": "mutation",
@@ -4080,20 +4080,20 @@
]
},
"evidence": {
- "startedAt": "2026-07-26T10:51:47.011Z",
- "durationMs": 6877,
- "canary": "RD_TEST_0E121E",
+ "startedAt": "2026-07-26T12:01:25.876Z",
+ "durationMs": 6772,
+ "canary": "RD_TEST_8846BC",
"network": [
{
"id": "net-1",
"method": "POST",
- "url": "http://127.0.0.1:37211/api/users/login",
+ "url": "http://127.0.0.1:37221/api/users/login",
"resourceType": "xhr",
- "startedAt": 1555,
+ "startedAt": 1557,
"status": 404,
"ok": false,
"contentType": "application/json",
- "finishedAt": 1572,
+ "finishedAt": 1576,
"resourceTypeHint": "login"
},
{
@@ -4101,34 +4101,34 @@
"method": "GET",
"url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwlxdu.woff2",
"resourceType": "font",
- "startedAt": 1581,
+ "startedAt": 1583,
"status": 200,
"ok": true,
- "finishedAt": 1627,
+ "finishedAt": 1639,
"contentType": "font/woff2",
"resourceTypeHint": "6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwlxdu.woff2"
},
{
"id": "net-3",
"method": "GET",
- "url": "http://127.0.0.1:37211/",
+ "url": "http://127.0.0.1:37221/",
"resourceType": "document",
- "startedAt": 2618,
+ "startedAt": 2608,
"status": 200,
"ok": true,
"contentType": "text/html",
"resourceTypeHint": "resource",
- "finishedAt": 2626
+ "finishedAt": 2616
},
{
"id": "net-4",
"method": "GET",
"url": "http://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css",
"resourceType": "stylesheet",
- "startedAt": 2624,
+ "startedAt": 2614,
"status": 307,
"ok": false,
- "finishedAt": 2628,
+ "finishedAt": 2617,
"location": "https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css",
"resourceTypeHint": "ionicons.min.css"
},
@@ -4137,34 +4137,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": 2624,
+ "startedAt": 2615,
"status": 200,
"ok": true,
- "finishedAt": 2664,
+ "finishedAt": 2655,
"contentType": "text/css",
"resourceTypeHint": "css"
},
{
"id": "net-6",
"method": "GET",
- "url": "http://127.0.0.1:37211/assets/index-CLdavoKn.js",
+ "url": "http://127.0.0.1:37221/assets/index-CLdavoKn.js",
"resourceType": "script",
- "startedAt": 2625,
+ "startedAt": 2615,
"status": 200,
"ok": true,
- "finishedAt": 2638,
+ "finishedAt": 2629,
"contentType": "text/javascript",
"resourceTypeHint": "index-CLdavoKn.js"
},
{
"id": "net-7",
"method": "GET",
- "url": "http://127.0.0.1:37211/assets/index-De1Lwdlm.css",
+ "url": "http://127.0.0.1:37221/assets/index-De1Lwdlm.css",
"resourceType": "stylesheet",
- "startedAt": 2625,
+ "startedAt": 2616,
"status": 200,
"ok": true,
- "finishedAt": 2631,
+ "finishedAt": 2621,
"contentType": "text/css",
"resourceTypeHint": "index-De1Lwdlm.css"
},
@@ -4173,22 +4173,22 @@
"method": "GET",
"url": "https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css",
"resourceType": "stylesheet",
- "startedAt": 2628,
+ "startedAt": 2617,
"status": 200,
"ok": true,
"contentType": "text/css",
"resourceTypeHint": "ionicons.min.css",
- "finishedAt": 2777
+ "finishedAt": 2765
},
{
"id": "net-9",
"method": "GET",
"url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdu.woff2",
"resourceType": "font",
- "startedAt": 2784,
+ "startedAt": 2772,
"status": 200,
"ok": true,
- "finishedAt": 2830,
+ "finishedAt": 2827,
"contentType": "font/woff2",
"resourceTypeHint": "6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdu.woff2"
},
@@ -4197,10 +4197,10 @@
"method": "GET",
"url": "https://code.ionicframework.com/ionicons/2.0.1/fonts/ionicons.ttf?v=2.0.1",
"resourceType": "font",
- "startedAt": 2784,
+ "startedAt": 2773,
"status": 200,
"ok": true,
- "finishedAt": 2963,
+ "finishedAt": 2936,
"contentType": "font/ttf",
"resourceTypeHint": "ionicons.ttf"
},
@@ -4209,10 +4209,10 @@
"method": "GET",
"url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7l.woff2",
"resourceType": "font",
- "startedAt": 2785,
+ "startedAt": 2774,
"status": 200,
"ok": true,
- "finishedAt": 2833,
+ "finishedAt": 2819,
"contentType": "font/woff2",
"resourceTypeHint": "6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7l.woff2"
},
@@ -4221,34 +4221,34 @@
"method": "GET",
"url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7nsDI.woff2",
"resourceType": "font",
- "startedAt": 2786,
+ "startedAt": 2774,
"status": 200,
"ok": true,
- "finishedAt": 2832,
+ "finishedAt": 2819,
"contentType": "font/woff2",
"resourceTypeHint": "6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7nsDI.woff2"
},
{
"id": "net-13",
"method": "GET",
- "url": "http://127.0.0.1:37211/",
+ "url": "http://127.0.0.1:37221/",
"resourceType": "document",
- "startedAt": 3649,
+ "startedAt": 3598,
"status": 200,
"ok": true,
"contentType": "text/html",
"resourceTypeHint": "resource",
- "finishedAt": 3658
+ "finishedAt": 3607
},
{
"id": "net-14",
"method": "GET",
"url": "http://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css",
"resourceType": "stylesheet",
- "startedAt": 3656,
+ "startedAt": 3605,
"status": 307,
"ok": false,
- "finishedAt": 3659,
+ "finishedAt": 3608,
"location": "https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css",
"resourceTypeHint": "ionicons.min.css"
},
@@ -4257,58 +4257,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": 3657,
+ "startedAt": 3606,
"status": 200,
"ok": true,
- "finishedAt": 3712,
+ "finishedAt": 3645,
"contentType": "text/css",
"resourceTypeHint": "css"
},
{
"id": "net-16",
"method": "GET",
- "url": "http://127.0.0.1:37211/assets/index-CLdavoKn.js",
+ "url": "http://127.0.0.1:37221/assets/index-CLdavoKn.js",
"resourceType": "script",
- "startedAt": 3657,
+ "startedAt": 3606,
"status": 200,
"ok": true,
- "finishedAt": 3670,
+ "finishedAt": 3619,
"contentType": "text/javascript",
"resourceTypeHint": "index-CLdavoKn.js"
},
{
"id": "net-17",
"method": "GET",
- "url": "http://127.0.0.1:37211/assets/index-De1Lwdlm.css",
+ "url": "http://127.0.0.1:37221/assets/index-De1Lwdlm.css",
"resourceType": "stylesheet",
- "startedAt": 3657,
+ "startedAt": 3606,
"status": 200,
"ok": true,
- "finishedAt": 3663,
"contentType": "text/css",
- "resourceTypeHint": "index-De1Lwdlm.css"
+ "resourceTypeHint": "index-De1Lwdlm.css",
+ "finishedAt": 3611
},
{
"id": "net-18",
"method": "GET",
"url": "https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css",
"resourceType": "stylesheet",
- "startedAt": 3659,
+ "startedAt": 3608,
"status": 200,
"ok": true,
"contentType": "text/css",
"resourceTypeHint": "ionicons.min.css",
- "finishedAt": 3741
+ "finishedAt": 3686
},
{
"id": "net-19",
"method": "GET",
"url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdu.woff2",
"resourceType": "font",
- "startedAt": 3752,
+ "startedAt": 3694,
"status": 200,
"ok": true,
- "finishedAt": 3799,
+ "finishedAt": 3749,
"contentType": "font/woff2",
"resourceTypeHint": "6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdu.woff2"
},
@@ -4317,10 +4317,10 @@
"method": "GET",
"url": "https://code.ionicframework.com/ionicons/2.0.1/fonts/ionicons.ttf?v=2.0.1",
"resourceType": "font",
- "startedAt": 3752,
+ "startedAt": 3695,
"status": 200,
"ok": true,
- "finishedAt": 3869,
+ "finishedAt": 3808,
"contentType": "font/ttf",
"resourceTypeHint": "ionicons.ttf"
},
@@ -4329,10 +4329,10 @@
"method": "GET",
"url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7l.woff2",
"resourceType": "font",
- "startedAt": 3753,
+ "startedAt": 3695,
"status": 200,
"ok": true,
- "finishedAt": 3798,
+ "finishedAt": 3740,
"contentType": "font/woff2",
"resourceTypeHint": "6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7l.woff2"
},
@@ -4341,10 +4341,10 @@
"method": "GET",
"url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7nsDI.woff2",
"resourceType": "font",
- "startedAt": 3754,
+ "startedAt": 3695,
"status": 200,
"ok": true,
- "finishedAt": 3800,
+ "finishedAt": 3741,
"contentType": "font/woff2",
"resourceTypeHint": "6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7nsDI.woff2"
}
@@ -4353,7 +4353,7 @@
{
"type": "error",
"text": "Failed to load resource: the server responded with a status of 404 (Not Found)",
- "at": 1571
+ "at": 1574
}
],
"pageErrors": [],
@@ -4363,7 +4363,7 @@
"selector": "body > div > main > div > div > div > div > form > fieldset:nth-of-type(1) > input",
"name": "email",
"type": "email",
- "value": "rd-rd_test_0e121e_1@example.test",
+ "value": "rd-rd_test_8846bc_1@example.test",
"redacted": false
},
{
@@ -4379,6 +4379,12 @@
"downloadEvidence": [],
"uploads": [],
"popupUrls": [],
+ "visualSuppressions": [
+ {
+ "artifact": "screenshot",
+ "reason": "sensitive-input"
+ }
+ ],
"locatorResolution": {
"attempts": [
{
@@ -4386,14 +4392,14 @@
"weight": 60,
"matchCount": 2,
"visibleCount": 2,
- "elapsedMs": 7
+ "elapsedMs": 11
},
{
"strategy": "css",
"weight": 35,
"matchCount": 1,
"visibleCount": 1,
- "elapsedMs": 4
+ "elapsedMs": 6
}
],
"chosenStrategy": "css",
@@ -4401,8 +4407,8 @@
"retryCount": 0
},
"before": {
- "at": 1473,
- "url": "http://127.0.0.1:37211/#/login",
+ "at": 1460,
+ "url": "http://127.0.0.1:37221/#/login",
"title": "Conduit",
"domHash": "c659be8900b0e706",
"canaryPresent": false,
@@ -4485,34 +4491,6 @@
"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",
@@ -4531,16 +4509,42 @@
"adapter": "sqlite",
"resource": "Users",
"schemaHash": "565bde25c1fa7c3f",
- "rows": [],
+ "rows": [
+ {
+ "keyHash": "186347d9ea7673a2",
+ "rowHash": "959c2e8bd7b6e2cf",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "da7114755c3b82ba",
+ "rowHash": "8db9a59c5612cb81",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "84cf60166b2ca345",
+ "rowHash": "52c2d2fcddde83d5",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "9ef59241e15425e0",
+ "rowHash": "320ff3d9d68f6896",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "82a8445b12df5a29",
+ "rowHash": "6f62fc7542931048",
+ "softDeleted": false
+ }
+ ],
"truncated": false
}
]
},
"beforeAction": {
- "at": 1509,
- "url": "http://127.0.0.1:37211/#/login",
+ "at": 1498,
+ "url": "http://127.0.0.1:37221/#/login",
"title": "Conduit",
- "domHash": "cd52b48bf8afd456",
+ "domHash": "a511a40526161e42",
"canaryPresent": true,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -4560,7 +4564,7 @@
"tag": "input",
"type": "email",
"name": "email",
- "valueHash": "4b90cc4dc320ffdd",
+ "valueHash": "28278071a8bb768c",
"checked": false,
"disabled": false,
"visible": true
@@ -4597,10 +4601,10 @@
"networkSettled": true,
"targetBusyAfter": false,
"after": {
- "at": 2575,
- "url": "http://127.0.0.1:37211/#/login",
+ "at": 2602,
+ "url": "http://127.0.0.1:37221/#/login",
"title": "Conduit",
- "domHash": "11736da89855acb7",
+ "domHash": "5ab371c08797d412",
"canaryPresent": true,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -4620,7 +4624,7 @@
"tag": "input",
"type": "email",
"name": "email",
- "valueHash": "4b90cc4dc320ffdd",
+ "valueHash": "28278071a8bb768c",
"checked": false,
"disabled": false,
"visible": true
@@ -4681,34 +4685,6 @@
"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",
@@ -4727,15 +4703,40 @@
"adapter": "sqlite",
"resource": "Users",
"schemaHash": "565bde25c1fa7c3f",
- "rows": [],
+ "rows": [
+ {
+ "keyHash": "186347d9ea7673a2",
+ "rowHash": "959c2e8bd7b6e2cf",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "da7114755c3b82ba",
+ "rowHash": "8db9a59c5612cb81",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "84cf60166b2ca345",
+ "rowHash": "52c2d2fcddde83d5",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "9ef59241e15425e0",
+ "rowHash": "320ff3d9d68f6896",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "82a8445b12df5a29",
+ "rowHash": "6f62fc7542931048",
+ "softDeleted": false
+ }
+ ],
"truncated": false
}
]
},
- "screenshot": "screenshots/4991c205504d-after.png",
"afterRefresh": {
- "at": 3603,
- "url": "http://127.0.0.1:37211/#/login",
+ "at": 3595,
+ "url": "http://127.0.0.1:37221/#/login",
"title": "Conduit",
"domHash": "c659be8900b0e706",
"canaryPresent": false,
@@ -4790,10 +4791,9 @@
"indexedDb": []
}
},
- "refreshScreenshot": "screenshots/4991c205504d-refresh.png",
"afterHardRefresh": {
- "at": 4580,
- "url": "http://127.0.0.1:37211/#/login",
+ "at": 4512,
+ "url": "http://127.0.0.1:37221/#/login",
"title": "Conduit",
"domHash": "c659be8900b0e706",
"canaryPresent": false,
@@ -4849,8 +4849,8 @@
}
},
"afterNewTab": {
- "at": 5582,
- "url": "http://127.0.0.1:37211/#/login",
+ "at": 5496,
+ "url": "http://127.0.0.1:37221/#/login",
"title": "Conduit",
"domHash": "c659be8900b0e706",
"canaryPresent": false,
@@ -4906,8 +4906,8 @@
}
},
"afterNewContext": {
- "at": 6874,
- "url": "http://127.0.0.1:37211/#/login",
+ "at": 6768,
+ "url": "http://127.0.0.1:37221/#/login",
"title": "Conduit",
"domHash": "c659be8900b0e706",
"canaryPresent": false,
@@ -5008,15 +5008,6 @@
"softDeleted": [],
"truncated": false
},
- {
- "adapter": "sqlite",
- "resource": "SequelizeMeta",
- "added": [],
- "removed": [],
- "changed": [],
- "softDeleted": [],
- "truncated": false
- },
{
"adapter": "sqlite",
"resource": "TagList",
@@ -5056,8 +5047,8 @@
{
"id": "RD-012",
"action": {
- "id": "fcc68ac443ac",
- "pageUrl": "http://127.0.0.1:37211/#/login",
+ "id": "794e0c18aff0",
+ "pageUrl": "http://127.0.0.1:37221/#/login",
"label": "conduit",
"activation": "click",
"kind": "navigation",
@@ -5070,7 +5061,7 @@
"role": "link",
"accessibleName": "conduit",
"text": "conduit",
- "href": "http://127.0.0.1:37211/#/",
+ "href": "http://127.0.0.1:37221/#/",
"candidates": [
{
"strategy": "role",
@@ -5089,7 +5080,7 @@
{
"strategy": "href",
"weight": 72,
- "value": "http://127.0.0.1:37211/#/"
+ "value": "http://127.0.0.1:37221/#/"
},
{
"strategy": "text",
@@ -5107,31 +5098,31 @@
"fields": []
},
"evidence": {
- "startedAt": "2026-07-26T10:51:53.992Z",
- "durationMs": 2454,
- "canary": "RD_TEST_218FCA",
+ "startedAt": "2026-07-26T12:01:32.726Z",
+ "durationMs": 2493,
+ "canary": "RD_TEST_90DA8A",
"network": [
{
"id": "net-1",
"method": "GET",
- "url": "http://127.0.0.1:37211/api/articles?limit=3&&offset=0",
+ "url": "http://127.0.0.1:37221/api/articles?limit=3&&offset=0",
"resourceType": "xhr",
- "startedAt": 1485,
+ "startedAt": 1518,
"status": 200,
"ok": true,
"contentType": "application/json",
"resourceTypeHint": "articles",
- "finishedAt": 1491
+ "finishedAt": 1524
},
{
"id": "net-2",
"method": "GET",
- "url": "http://127.0.0.1:37211/api/tags",
+ "url": "http://127.0.0.1:37221/api/tags",
"resourceType": "xhr",
- "startedAt": 1486,
+ "startedAt": 1519,
"status": 200,
"ok": true,
- "finishedAt": 1491,
+ "finishedAt": 1525,
"contentType": "application/json",
"resourceTypeHint": "tags"
}
@@ -5188,8 +5179,8 @@
"retryCount": 0
},
"before": {
- "at": 1451,
- "url": "http://127.0.0.1:37211/#/login",
+ "at": 1477,
+ "url": "http://127.0.0.1:37221/#/login",
"title": "Conduit",
"domHash": "c659be8900b0e706",
"canaryPresent": false,
@@ -5245,8 +5236,8 @@
}
},
"beforeAction": {
- "at": 1459,
- "url": "http://127.0.0.1:37211/#/login",
+ "at": 1485,
+ "url": "http://127.0.0.1:37221/#/login",
"title": "Conduit",
"domHash": "c659be8900b0e706",
"canaryPresent": false,
@@ -5304,8 +5295,8 @@
"networkSettled": true,
"targetBusyAfter": false,
"after": {
- "at": 2450,
- "url": "http://127.0.0.1:37211/#/",
+ "at": 2489,
+ "url": "http://127.0.0.1:37221/#/",
"title": "Conduit",
"domHash": "3c44d4d1ff59317a",
"canaryPresent": false,
@@ -5342,7 +5333,7 @@
"indexedDb": []
}
},
- "trace": "traces/fcc68ac443ac.zip",
+ "trace": "traces/794e0c18aff0.zip",
"snapshotIndex": "snapshots/RD-012.index.json"
},
"verdict": "VERIFIED",
@@ -5353,8 +5344,8 @@
{
"id": "RD-013",
"action": {
- "id": "59e2b437f2d6",
- "pageUrl": "http://127.0.0.1:37211/#/register",
+ "id": "82d8b258667a",
+ "pageUrl": "http://127.0.0.1:37221/#/register",
"label": "conduit",
"activation": "click",
"kind": "navigation",
@@ -5367,7 +5358,7 @@
"role": "link",
"accessibleName": "conduit",
"text": "conduit",
- "href": "http://127.0.0.1:37211/#/",
+ "href": "http://127.0.0.1:37221/#/",
"candidates": [
{
"strategy": "role",
@@ -5386,7 +5377,7 @@
{
"strategy": "href",
"weight": 72,
- "value": "http://127.0.0.1:37211/#/"
+ "value": "http://127.0.0.1:37221/#/"
},
{
"strategy": "text",
@@ -5404,31 +5395,31 @@
"fields": []
},
"evidence": {
- "startedAt": "2026-07-26T10:51:56.485Z",
- "durationMs": 2473,
- "canary": "RD_TEST_E65C3F",
+ "startedAt": "2026-07-26T12:01:35.262Z",
+ "durationMs": 2484,
+ "canary": "RD_TEST_FA1017",
"network": [
{
"id": "net-1",
"method": "GET",
- "url": "http://127.0.0.1:37211/api/articles?limit=3&&offset=0",
+ "url": "http://127.0.0.1:37221/api/articles?limit=3&&offset=0",
"resourceType": "xhr",
- "startedAt": 1507,
+ "startedAt": 1515,
"status": 200,
"ok": true,
- "finishedAt": 1513,
"contentType": "application/json",
- "resourceTypeHint": "articles"
+ "resourceTypeHint": "articles",
+ "finishedAt": 1520
},
{
"id": "net-2",
"method": "GET",
- "url": "http://127.0.0.1:37211/api/tags",
+ "url": "http://127.0.0.1:37221/api/tags",
"resourceType": "xhr",
- "startedAt": 1508,
+ "startedAt": 1515,
"status": 200,
"ok": true,
- "finishedAt": 1513,
+ "finishedAt": 1521,
"contentType": "application/json",
"resourceTypeHint": "tags"
}
@@ -5449,14 +5440,14 @@
"weight": 92,
"matchCount": 2,
"visibleCount": 2,
- "elapsedMs": 7
+ "elapsedMs": 8
},
{
"strategy": "role",
"weight": 82,
"matchCount": 2,
"visibleCount": 2,
- "elapsedMs": 6
+ "elapsedMs": 7
},
{
"strategy": "href",
@@ -5485,8 +5476,8 @@
"retryCount": 0
},
"before": {
- "at": 1463,
- "url": "http://127.0.0.1:37211/#/register",
+ "at": 1478,
+ "url": "http://127.0.0.1:37221/#/register",
"title": "Conduit",
"domHash": "1f4fa65964895f4c",
"canaryPresent": false,
@@ -5551,8 +5542,8 @@
}
},
"beforeAction": {
- "at": 1471,
- "url": "http://127.0.0.1:37211/#/register",
+ "at": 1487,
+ "url": "http://127.0.0.1:37221/#/register",
"title": "Conduit",
"domHash": "1f4fa65964895f4c",
"canaryPresent": false,
@@ -5619,8 +5610,8 @@
"networkSettled": true,
"targetBusyAfter": false,
"after": {
- "at": 2469,
- "url": "http://127.0.0.1:37211/#/",
+ "at": 2480,
+ "url": "http://127.0.0.1:37221/#/",
"title": "Conduit",
"domHash": "3c44d4d1ff59317a",
"canaryPresent": false,
@@ -5657,7 +5648,7 @@
"indexedDb": []
}
},
- "trace": "traces/59e2b437f2d6.zip",
+ "trace": "traces/82d8b258667a.zip",
"snapshotIndex": "snapshots/RD-013.index.json"
},
"verdict": "VERIFIED",
@@ -5668,8 +5659,8 @@
{
"id": "RD-014",
"action": {
- "id": "1a0c7bf79395",
- "pageUrl": "http://127.0.0.1:37211/#/register",
+ "id": "974fd9c7acc8",
+ "pageUrl": "http://127.0.0.1:37221/#/register",
"label": "Home",
"activation": "click",
"kind": "navigation",
@@ -5682,7 +5673,7 @@
"role": "link",
"accessibleName": "Home",
"text": "Home",
- "href": "http://127.0.0.1:37211/#/",
+ "href": "http://127.0.0.1:37221/#/",
"candidates": [
{
"strategy": "role",
@@ -5701,7 +5692,7 @@
{
"strategy": "href",
"weight": 72,
- "value": "http://127.0.0.1:37211/#/"
+ "value": "http://127.0.0.1:37221/#/"
},
{
"strategy": "text",
@@ -5719,31 +5710,31 @@
"fields": []
},
"evidence": {
- "startedAt": "2026-07-26T10:51:59.013Z",
- "durationMs": 2455,
- "canary": "RD_TEST_B20F2A",
+ "startedAt": "2026-07-26T12:01:37.779Z",
+ "durationMs": 2476,
+ "canary": "RD_TEST_C29A62",
"network": [
{
"id": "net-1",
"method": "GET",
- "url": "http://127.0.0.1:37211/api/articles?limit=3&&offset=0",
+ "url": "http://127.0.0.1:37221/api/articles?limit=3&&offset=0",
"resourceType": "xhr",
- "startedAt": 1482,
+ "startedAt": 1515,
"status": 200,
"ok": true,
"contentType": "application/json",
"resourceTypeHint": "articles",
- "finishedAt": 1488
+ "finishedAt": 1522
},
{
"id": "net-2",
"method": "GET",
- "url": "http://127.0.0.1:37211/api/tags",
+ "url": "http://127.0.0.1:37221/api/tags",
"resourceType": "xhr",
- "startedAt": 1482,
+ "startedAt": 1515,
"status": 200,
"ok": true,
- "finishedAt": 1488,
+ "finishedAt": 1522,
"contentType": "application/json",
"resourceTypeHint": "tags"
}
@@ -5779,8 +5770,8 @@
"retryCount": 0
},
"before": {
- "at": 1448,
- "url": "http://127.0.0.1:37211/#/register",
+ "at": 1473,
+ "url": "http://127.0.0.1:37221/#/register",
"title": "Conduit",
"domHash": "1f4fa65964895f4c",
"canaryPresent": false,
@@ -5845,8 +5836,8 @@
}
},
"beforeAction": {
- "at": 1456,
- "url": "http://127.0.0.1:37211/#/register",
+ "at": 1482,
+ "url": "http://127.0.0.1:37221/#/register",
"title": "Conduit",
"domHash": "1f4fa65964895f4c",
"canaryPresent": false,
@@ -5913,8 +5904,8 @@
"networkSettled": true,
"targetBusyAfter": false,
"after": {
- "at": 2451,
- "url": "http://127.0.0.1:37211/#/",
+ "at": 2473,
+ "url": "http://127.0.0.1:37221/#/",
"title": "Conduit",
"domHash": "3c44d4d1ff59317a",
"canaryPresent": false,
@@ -5951,7 +5942,7 @@
"indexedDb": []
}
},
- "trace": "traces/1a0c7bf79395.zip",
+ "trace": "traces/974fd9c7acc8.zip",
"snapshotIndex": "snapshots/RD-014.index.json"
},
"verdict": "VERIFIED",
@@ -5962,8 +5953,8 @@
{
"id": "RD-015",
"action": {
- "id": "d5c6b9ea21ab",
- "pageUrl": "http://127.0.0.1:37211/#/register",
+ "id": "bf800e4ddf63",
+ "pageUrl": "http://127.0.0.1:37221/#/register",
"label": "Login",
"activation": "click",
"kind": "navigation",
@@ -5976,7 +5967,7 @@
"role": "link",
"accessibleName": "Login",
"text": "Login",
- "href": "http://127.0.0.1:37211/#/login",
+ "href": "http://127.0.0.1:37221/#/login",
"candidates": [
{
"strategy": "role",
@@ -5995,7 +5986,7 @@
{
"strategy": "href",
"weight": 72,
- "value": "http://127.0.0.1:37211/#/login"
+ "value": "http://127.0.0.1:37221/#/login"
},
{
"strategy": "text",
@@ -6013,9 +6004,9 @@
"fields": []
},
"evidence": {
- "startedAt": "2026-07-26T10:52:01.503Z",
- "durationMs": 2472,
- "canary": "RD_TEST_720A48",
+ "startedAt": "2026-07-26T12:01:40.299Z",
+ "durationMs": 2432,
+ "canary": "RD_TEST_CA8CA7",
"network": [],
"console": [],
"pageErrors": [],
@@ -6048,8 +6039,8 @@
"retryCount": 0
},
"before": {
- "at": 1453,
- "url": "http://127.0.0.1:37211/#/register",
+ "at": 1426,
+ "url": "http://127.0.0.1:37221/#/register",
"title": "Conduit",
"domHash": "1f4fa65964895f4c",
"canaryPresent": false,
@@ -6114,8 +6105,8 @@
}
},
"beforeAction": {
- "at": 1463,
- "url": "http://127.0.0.1:37211/#/register",
+ "at": 1435,
+ "url": "http://127.0.0.1:37221/#/register",
"title": "Conduit",
"domHash": "1f4fa65964895f4c",
"canaryPresent": false,
@@ -6182,8 +6173,8 @@
"networkSettled": true,
"targetBusyAfter": false,
"after": {
- "at": 2467,
- "url": "http://127.0.0.1:37211/#/login",
+ "at": 2428,
+ "url": "http://127.0.0.1:37221/#/login",
"title": "Conduit",
"domHash": "c659be8900b0e706",
"canaryPresent": false,
@@ -6238,7 +6229,7 @@
"indexedDb": []
}
},
- "trace": "traces/d5c6b9ea21ab.zip",
+ "trace": "traces/bf800e4ddf63.zip",
"snapshotIndex": "snapshots/RD-015.index.json"
},
"verdict": "VERIFIED",
@@ -6249,8 +6240,8 @@
{
"id": "RD-016",
"action": {
- "id": "a36c397a3a4f",
- "pageUrl": "http://127.0.0.1:37211/#/register",
+ "id": "50015942fa59",
+ "pageUrl": "http://127.0.0.1:37221/#/register",
"label": "Sign in to your account",
"activation": "click",
"kind": "navigation",
@@ -6263,7 +6254,7 @@
"role": "link",
"accessibleName": "Sign in to your account",
"text": "Sign in to your account",
- "href": "http://127.0.0.1:37211/#/login",
+ "href": "http://127.0.0.1:37221/#/login",
"candidates": [
{
"strategy": "role",
@@ -6282,7 +6273,7 @@
{
"strategy": "href",
"weight": 72,
- "value": "http://127.0.0.1:37211/#/login"
+ "value": "http://127.0.0.1:37221/#/login"
},
{
"strategy": "text",
@@ -6300,9 +6291,9 @@
"fields": []
},
"evidence": {
- "startedAt": "2026-07-26T10:52:04.018Z",
+ "startedAt": "2026-07-26T12:01:42.766Z",
"durationMs": 2451,
- "canary": "RD_TEST_AA1022",
+ "canary": "RD_TEST_2C6A9B",
"network": [],
"console": [],
"pageErrors": [],
@@ -6320,7 +6311,7 @@
"weight": 92,
"matchCount": 1,
"visibleCount": 1,
- "elapsedMs": 5
+ "elapsedMs": 6
}
],
"chosenStrategy": "role",
@@ -6328,8 +6319,8 @@
"retryCount": 0
},
"before": {
- "at": 1436,
- "url": "http://127.0.0.1:37211/#/register",
+ "at": 1437,
+ "url": "http://127.0.0.1:37221/#/register",
"title": "Conduit",
"domHash": "1f4fa65964895f4c",
"canaryPresent": false,
@@ -6395,7 +6386,7 @@
},
"beforeAction": {
"at": 1446,
- "url": "http://127.0.0.1:37211/#/register",
+ "url": "http://127.0.0.1:37221/#/register",
"title": "Conduit",
"domHash": "1f4fa65964895f4c",
"canaryPresent": false,
@@ -6462,8 +6453,8 @@
"networkSettled": true,
"targetBusyAfter": false,
"after": {
- "at": 2447,
- "url": "http://127.0.0.1:37211/#/login",
+ "at": 2446,
+ "url": "http://127.0.0.1:37221/#/login",
"title": "Conduit",
"domHash": "c659be8900b0e706",
"canaryPresent": false,
@@ -6518,7 +6509,7 @@
"indexedDb": []
}
},
- "trace": "traces/a36c397a3a4f.zip",
+ "trace": "traces/50015942fa59.zip",
"snapshotIndex": "snapshots/RD-016.index.json"
},
"verdict": "VERIFIED",
@@ -6529,8 +6520,8 @@
{
"id": "RD-017",
"action": {
- "id": "3db25a95d913",
- "pageUrl": "http://127.0.0.1:37211/#/register",
+ "id": "69097d25d757",
+ "pageUrl": "http://127.0.0.1:37221/#/register",
"label": "Sign up",
"activation": "submit",
"kind": "mutation",
@@ -6587,79 +6578,79 @@
]
},
"evidence": {
- "startedAt": "2026-07-26T10:52:06.518Z",
- "durationMs": 6925,
- "canary": "RD_TEST_184709",
+ "startedAt": "2026-07-26T12:01:45.263Z",
+ "durationMs": 6886,
+ "canary": "RD_TEST_6A1BAD",
"network": [
{
"id": "net-1",
"method": "POST",
- "url": "http://127.0.0.1:37211/api/users",
+ "url": "http://127.0.0.1:37221/api/users",
"resourceType": "xhr",
- "startedAt": 1511,
+ "startedAt": 1536,
"status": 201,
"ok": true,
- "finishedAt": 1649,
+ "finishedAt": 1673,
"contentType": "application/json",
"resourceTypeHint": "users"
},
{
"id": "net-2",
"method": "GET",
- "url": "http://127.0.0.1:37211/api/user",
+ "url": "http://127.0.0.1:37221/api/user",
"resourceType": "xhr",
- "startedAt": 1653,
+ "startedAt": 1678,
"status": 200,
"ok": true,
- "finishedAt": 1659,
+ "finishedAt": 1684,
"contentType": "application/json",
"resourceTypeHint": "user"
},
{
"id": "net-3",
"method": "GET",
- "url": "http://127.0.0.1:37211/api/articles/feed?limit=3&&offset=0",
+ "url": "http://127.0.0.1:37221/api/articles/feed?limit=3&&offset=0",
"resourceType": "xhr",
- "startedAt": 1655,
+ "startedAt": 1681,
"status": 200,
"ok": true,
- "finishedAt": 1665,
+ "finishedAt": 1689,
"contentType": "application/json",
"resourceTypeHint": "feed"
},
{
"id": "net-4",
"method": "GET",
- "url": "http://127.0.0.1:37211/api/tags",
+ "url": "http://127.0.0.1:37221/api/tags",
"resourceType": "xhr",
- "startedAt": 1656,
+ "startedAt": 1681,
"status": 200,
"ok": true,
- "finishedAt": 1663,
+ "finishedAt": 1686,
"contentType": "application/json",
"resourceTypeHint": "tags"
},
{
"id": "net-5",
"method": "GET",
- "url": "http://127.0.0.1:37211/",
+ "url": "http://127.0.0.1:37221/",
"resourceType": "document",
- "startedAt": 2646,
+ "startedAt": 2677,
"status": 200,
"ok": true,
"contentType": "text/html",
"resourceTypeHint": "resource",
- "finishedAt": 2654
+ "finishedAt": 2685
},
{
"id": "net-6",
"method": "GET",
"url": "http://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css",
"resourceType": "stylesheet",
- "startedAt": 2653,
+ "startedAt": 2683,
"status": 307,
"ok": false,
- "finishedAt": 2656,
+ "finishedAt": 2687,
"location": "https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css",
"resourceTypeHint": "ionicons.min.css"
},
@@ -6668,58 +6659,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": 2653,
+ "startedAt": 2684,
"status": 200,
"ok": true,
- "finishedAt": 2694,
+ "finishedAt": 2722,
"contentType": "text/css",
"resourceTypeHint": "css"
},
{
"id": "net-8",
"method": "GET",
- "url": "http://127.0.0.1:37211/assets/index-CLdavoKn.js",
+ "url": "http://127.0.0.1:37221/assets/index-CLdavoKn.js",
"resourceType": "script",
- "startedAt": 2653,
+ "startedAt": 2684,
"status": 200,
"ok": true,
- "finishedAt": 2666,
+ "finishedAt": 2698,
"contentType": "text/javascript",
"resourceTypeHint": "index-CLdavoKn.js"
},
{
"id": "net-9",
"method": "GET",
- "url": "http://127.0.0.1:37211/assets/index-De1Lwdlm.css",
+ "url": "http://127.0.0.1:37221/assets/index-De1Lwdlm.css",
"resourceType": "stylesheet",
- "startedAt": 2654,
+ "startedAt": 2685,
"status": 200,
"ok": true,
+ "finishedAt": 2691,
"contentType": "text/css",
- "resourceTypeHint": "index-De1Lwdlm.css",
- "finishedAt": 2660
+ "resourceTypeHint": "index-De1Lwdlm.css"
},
{
"id": "net-10",
"method": "GET",
"url": "https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css",
"resourceType": "stylesheet",
- "startedAt": 2656,
+ "startedAt": 2687,
"status": 200,
"ok": true,
"contentType": "text/css",
"resourceTypeHint": "ionicons.min.css",
- "finishedAt": 2801
+ "finishedAt": 2837
},
{
"id": "net-11",
"method": "GET",
"url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdu.woff2",
"resourceType": "font",
- "startedAt": 2812,
+ "startedAt": 2847,
"status": 200,
"ok": true,
- "finishedAt": 2858,
+ "finishedAt": 2897,
"contentType": "font/woff2",
"resourceTypeHint": "6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdu.woff2"
},
@@ -6728,10 +6719,10 @@
"method": "GET",
"url": "https://code.ionicframework.com/ionicons/2.0.1/fonts/ionicons.ttf?v=2.0.1",
"resourceType": "font",
- "startedAt": 2814,
+ "startedAt": 2847,
"status": 200,
"ok": true,
- "finishedAt": 2921,
+ "finishedAt": 3005,
"contentType": "font/ttf",
"resourceTypeHint": "ionicons.ttf"
},
@@ -6740,10 +6731,10 @@
"method": "GET",
"url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7l.woff2",
"resourceType": "font",
- "startedAt": 2814,
+ "startedAt": 2848,
"status": 200,
"ok": true,
- "finishedAt": 2860,
+ "finishedAt": 2894,
"contentType": "font/woff2",
"resourceTypeHint": "6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7l.woff2"
},
@@ -6752,70 +6743,70 @@
"method": "GET",
"url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7nsDI.woff2",
"resourceType": "font",
- "startedAt": 2814,
+ "startedAt": 2849,
"status": 200,
"ok": true,
- "finishedAt": 2860,
+ "finishedAt": 2896,
"contentType": "font/woff2",
"resourceTypeHint": "6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7nsDI.woff2"
},
{
"id": "net-15",
"method": "GET",
- "url": "http://127.0.0.1:37211/api/articles/feed?limit=3&&offset=0",
+ "url": "http://127.0.0.1:37221/api/articles/feed?limit=3&&offset=0",
"resourceType": "xhr",
- "startedAt": 2816,
+ "startedAt": 2850,
"status": 200,
"ok": true,
- "finishedAt": 2825,
+ "finishedAt": 2859,
"contentType": "application/json",
"resourceTypeHint": "feed"
},
{
"id": "net-16",
"method": "GET",
- "url": "http://127.0.0.1:37211/api/tags",
+ "url": "http://127.0.0.1:37221/api/tags",
"resourceType": "xhr",
- "startedAt": 2816,
+ "startedAt": 2850,
"status": 200,
"ok": true,
"contentType": "application/json",
"resourceTypeHint": "tags",
- "finishedAt": 2823
+ "finishedAt": 2857
},
{
"id": "net-17",
"method": "GET",
- "url": "http://127.0.0.1:37211/api/user",
+ "url": "http://127.0.0.1:37221/api/user",
"resourceType": "xhr",
- "startedAt": 2816,
+ "startedAt": 2850,
"status": 200,
"ok": true,
- "finishedAt": 2823,
+ "finishedAt": 2857,
"contentType": "application/json",
"resourceTypeHint": "user"
},
{
"id": "net-18",
"method": "GET",
- "url": "http://127.0.0.1:37211/",
+ "url": "http://127.0.0.1:37221/",
"resourceType": "document",
- "startedAt": 3686,
+ "startedAt": 3679,
"status": 200,
"ok": true,
"contentType": "text/html",
"resourceTypeHint": "resource",
- "finishedAt": 3695
+ "finishedAt": 3687
},
{
"id": "net-19",
"method": "GET",
"url": "http://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css",
"resourceType": "stylesheet",
- "startedAt": 3693,
+ "startedAt": 3685,
"status": 307,
"ok": false,
- "finishedAt": 3696,
+ "finishedAt": 3689,
"location": "https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css",
"resourceTypeHint": "ionicons.min.css"
},
@@ -6824,34 +6815,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": 3693,
+ "startedAt": 3686,
"status": 200,
"ok": true,
- "finishedAt": 3736,
+ "finishedAt": 3724,
"contentType": "text/css",
"resourceTypeHint": "css"
},
{
"id": "net-21",
"method": "GET",
- "url": "http://127.0.0.1:37211/assets/index-CLdavoKn.js",
+ "url": "http://127.0.0.1:37221/assets/index-CLdavoKn.js",
"resourceType": "script",
- "startedAt": 3693,
+ "startedAt": 3686,
"status": 200,
"ok": true,
- "finishedAt": 3709,
+ "finishedAt": 3702,
"contentType": "text/javascript",
"resourceTypeHint": "index-CLdavoKn.js"
},
{
"id": "net-22",
"method": "GET",
- "url": "http://127.0.0.1:37211/assets/index-De1Lwdlm.css",
+ "url": "http://127.0.0.1:37221/assets/index-De1Lwdlm.css",
"resourceType": "stylesheet",
- "startedAt": 3694,
+ "startedAt": 3687,
"status": 200,
"ok": true,
- "finishedAt": 3700,
+ "finishedAt": 3694,
"contentType": "text/css",
"resourceTypeHint": "index-De1Lwdlm.css"
},
@@ -6860,22 +6851,22 @@
"method": "GET",
"url": "https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css",
"resourceType": "stylesheet",
- "startedAt": 3697,
+ "startedAt": 3689,
"status": 200,
"ok": true,
- "finishedAt": 3787,
"contentType": "text/css",
- "resourceTypeHint": "ionicons.min.css"
+ "resourceTypeHint": "ionicons.min.css",
+ "finishedAt": 3767
},
{
"id": "net-24",
"method": "GET",
"url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdu.woff2",
"resourceType": "font",
- "startedAt": 3797,
+ "startedAt": 3778,
"status": 200,
"ok": true,
- "finishedAt": 3847,
+ "finishedAt": 3829,
"contentType": "font/woff2",
"resourceTypeHint": "6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdu.woff2"
},
@@ -6884,22 +6875,22 @@
"method": "GET",
"url": "https://code.ionicframework.com/ionicons/2.0.1/fonts/ionicons.ttf?v=2.0.1",
"resourceType": "font",
- "startedAt": 3797,
+ "startedAt": 3778,
"status": 200,
"ok": true,
+ "finishedAt": 3885,
"contentType": "font/ttf",
- "resourceTypeHint": "ionicons.ttf",
- "finishedAt": 3908
+ "resourceTypeHint": "ionicons.ttf"
},
{
"id": "net-26",
"method": "GET",
"url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7l.woff2",
"resourceType": "font",
- "startedAt": 3798,
+ "startedAt": 3779,
"status": 200,
"ok": true,
- "finishedAt": 3845,
+ "finishedAt": 3825,
"contentType": "font/woff2",
"resourceTypeHint": "6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7l.woff2"
},
@@ -6908,46 +6899,46 @@
"method": "GET",
"url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7nsDI.woff2",
"resourceType": "font",
- "startedAt": 3798,
+ "startedAt": 3780,
"status": 200,
"ok": true,
- "finishedAt": 3847,
+ "finishedAt": 3826,
"contentType": "font/woff2",
"resourceTypeHint": "6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7nsDI.woff2"
},
{
"id": "net-28",
"method": "GET",
- "url": "http://127.0.0.1:37211/api/articles/feed?limit=3&&offset=0",
+ "url": "http://127.0.0.1:37221/api/articles/feed?limit=3&&offset=0",
"resourceType": "xhr",
- "startedAt": 3800,
+ "startedAt": 3781,
"status": 200,
"ok": true,
- "finishedAt": 3811,
+ "finishedAt": 3790,
"contentType": "application/json",
"resourceTypeHint": "feed"
},
{
"id": "net-29",
"method": "GET",
- "url": "http://127.0.0.1:37211/api/tags",
+ "url": "http://127.0.0.1:37221/api/tags",
"resourceType": "xhr",
- "startedAt": 3801,
+ "startedAt": 3781,
"status": 200,
"ok": true,
"contentType": "application/json",
"resourceTypeHint": "tags",
- "finishedAt": 3809
+ "finishedAt": 3787
},
{
"id": "net-30",
"method": "GET",
- "url": "http://127.0.0.1:37211/api/user",
+ "url": "http://127.0.0.1:37221/api/user",
"resourceType": "xhr",
- "startedAt": 3801,
+ "startedAt": 3782,
"status": 200,
"ok": true,
- "finishedAt": 3809,
+ "finishedAt": 3788,
"contentType": "application/json",
"resourceTypeHint": "user"
}
@@ -6960,14 +6951,14 @@
"selector": "body > div > main > div > div > div > div > form > fieldset:nth-of-type(1) > input",
"name": "username",
"type": "text",
- "value": "RD_TEST_184709_1",
+ "value": "RD_TEST_6A1BAD_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_184709_2@example.test",
+ "value": "rd-rd_test_6a1bad_2@example.test",
"redacted": false
},
{
@@ -6983,6 +6974,12 @@
"downloadEvidence": [],
"uploads": [],
"popupUrls": [],
+ "visualSuppressions": [
+ {
+ "artifact": "screenshot",
+ "reason": "sensitive-input"
+ }
+ ],
"locatorResolution": {
"attempts": [
{
@@ -6990,14 +6987,14 @@
"weight": 60,
"matchCount": 3,
"visibleCount": 3,
- "elapsedMs": 9
+ "elapsedMs": 8
},
{
"strategy": "css",
"weight": 35,
"matchCount": 1,
"visibleCount": 1,
- "elapsedMs": 4
+ "elapsedMs": 5
}
],
"chosenStrategy": "css",
@@ -7005,8 +7002,8 @@
"retryCount": 0
},
"before": {
- "at": 1413,
- "url": "http://127.0.0.1:37211/#/register",
+ "at": 1444,
+ "url": "http://127.0.0.1:37221/#/register",
"title": "Conduit",
"domHash": "1f4fa65964895f4c",
"canaryPresent": false,
@@ -7098,34 +7095,6 @@
"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",
@@ -7144,16 +7113,42 @@
"adapter": "sqlite",
"resource": "Users",
"schemaHash": "565bde25c1fa7c3f",
- "rows": [],
+ "rows": [
+ {
+ "keyHash": "186347d9ea7673a2",
+ "rowHash": "959c2e8bd7b6e2cf",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "da7114755c3b82ba",
+ "rowHash": "8db9a59c5612cb81",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "84cf60166b2ca345",
+ "rowHash": "52c2d2fcddde83d5",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "9ef59241e15425e0",
+ "rowHash": "320ff3d9d68f6896",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "82a8445b12df5a29",
+ "rowHash": "6f62fc7542931048",
+ "softDeleted": false
+ }
+ ],
"truncated": false
}
]
},
"beforeAction": {
- "at": 1459,
- "url": "http://127.0.0.1:37211/#/register",
+ "at": 1491,
+ "url": "http://127.0.0.1:37221/#/register",
"title": "Conduit",
- "domHash": "f49385412faf488b",
+ "domHash": "24c27ef71e1565e9",
"canaryPresent": true,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -7173,7 +7168,7 @@
"tag": "input",
"type": "text",
"name": "username",
- "valueHash": "e77f2ddc2e4bf03e",
+ "valueHash": "49b21136a9219627",
"checked": false,
"disabled": false,
"visible": true
@@ -7182,7 +7177,7 @@
"tag": "input",
"type": "email",
"name": "email",
- "valueHash": "9527c5a03cf9681a",
+ "valueHash": "1a3edaa9d85b62ed",
"checked": false,
"disabled": false,
"visible": true
@@ -7218,10 +7213,10 @@
"targetDisabledAfter": false,
"networkSettled": true,
"after": {
- "at": 2617,
- "url": "http://127.0.0.1:37211/#/",
+ "at": 2671,
+ "url": "http://127.0.0.1:37221/#/",
"title": "Conduit",
- "domHash": "7bcd13fe9b22405b",
+ "domHash": "54d4dd2d1b68ba9a",
"canaryPresent": true,
"bodyCanaryPresent": true,
"temporaryBlobUrls": 0,
@@ -7233,9 +7228,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "ca0891f28472ddae",
+ "textHash": "7da3caa19a4f1d03",
"visualHash": "dfad2167a8f7c17f",
- "text": "conduit Source code Home New Article RD_TEST_184709_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_6A1BAD_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",
@@ -7259,7 +7254,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "12ac6e5e7e965b6c",
+ "valueHash": "75a6b768acef1423",
"containsCanary": true
}
],
@@ -7297,34 +7292,6 @@
"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",
@@ -7346,7 +7313,32 @@
"rows": [
{
"keyHash": "186347d9ea7673a2",
- "rowHash": "91032cf2e2adac60",
+ "rowHash": "959c2e8bd7b6e2cf",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "da7114755c3b82ba",
+ "rowHash": "8db9a59c5612cb81",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "84cf60166b2ca345",
+ "rowHash": "52c2d2fcddde83d5",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "9ef59241e15425e0",
+ "rowHash": "320ff3d9d68f6896",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "82a8445b12df5a29",
+ "rowHash": "6f62fc7542931048",
+ "softDeleted": false
+ },
+ {
+ "keyHash": "2766c815d1c00dbe",
+ "rowHash": "696f240f4333528c",
"softDeleted": false
}
],
@@ -7354,12 +7346,11 @@
}
]
},
- "screenshot": "screenshots/3db25a95d913-after.png",
"afterRefresh": {
- "at": 3636,
- "url": "http://127.0.0.1:37211/#/",
+ "at": 3676,
+ "url": "http://127.0.0.1:37221/#/",
"title": "Conduit",
- "domHash": "7bcd13fe9b22405b",
+ "domHash": "54d4dd2d1b68ba9a",
"canaryPresent": true,
"bodyCanaryPresent": true,
"temporaryBlobUrls": 0,
@@ -7371,9 +7362,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "ca0891f28472ddae",
+ "textHash": "7da3caa19a4f1d03",
"visualHash": "dfad2167a8f7c17f",
- "text": "conduit Source code Home New Article RD_TEST_184709_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_6A1BAD_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",
@@ -7397,7 +7388,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "12ac6e5e7e965b6c",
+ "valueHash": "75a6b768acef1423",
"containsCanary": true
}
],
@@ -7407,12 +7398,11 @@
"indexedDb": []
}
},
- "refreshScreenshot": "screenshots/3db25a95d913-refresh.png",
"afterHardRefresh": {
- "at": 4624,
- "url": "http://127.0.0.1:37211/#/",
+ "at": 4596,
+ "url": "http://127.0.0.1:37221/#/",
"title": "Conduit",
- "domHash": "7bcd13fe9b22405b",
+ "domHash": "54d4dd2d1b68ba9a",
"canaryPresent": true,
"bodyCanaryPresent": true,
"temporaryBlobUrls": 0,
@@ -7424,9 +7414,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "ca0891f28472ddae",
+ "textHash": "7da3caa19a4f1d03",
"visualHash": "dfad2167a8f7c17f",
- "text": "conduit Source code Home New Article RD_TEST_184709_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_6A1BAD_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",
@@ -7450,7 +7440,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "12ac6e5e7e965b6c",
+ "valueHash": "75a6b768acef1423",
"containsCanary": true
}
],
@@ -7461,10 +7451,10 @@
}
},
"afterNewTab": {
- "at": 5656,
- "url": "http://127.0.0.1:37211/#/register",
+ "at": 5605,
+ "url": "http://127.0.0.1:37221/#/register",
"title": "Conduit",
- "domHash": "c02ac7532ea5ad22",
+ "domHash": "92fdbcd56b4904fe",
"canaryPresent": true,
"bodyCanaryPresent": true,
"temporaryBlobUrls": 0,
@@ -7476,9 +7466,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "aa9f38caded9e1b1",
+ "textHash": "d75d631341acd66a",
"visualHash": "4ab503dc0bf627e7",
- "text": "conduit Source code Home New Article RD_TEST_184709_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_6A1BAD_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",
@@ -7522,7 +7512,7 @@
"local": [
{
"key": "loggedUser",
- "valueHash": "12ac6e5e7e965b6c",
+ "valueHash": "75a6b768acef1423",
"containsCanary": true
}
],
@@ -7533,8 +7523,8 @@
}
},
"afterNewContext": {
- "at": 6922,
- "url": "http://127.0.0.1:37211/#/",
+ "at": 6883,
+ "url": "http://127.0.0.1:37221/#/",
"title": "Conduit",
"domHash": "3c44d4d1ff59317a",
"canaryPresent": false,
@@ -7618,15 +7608,6 @@
"softDeleted": [],
"truncated": false
},
- {
- "adapter": "sqlite",
- "resource": "SequelizeMeta",
- "added": [],
- "removed": [],
- "changed": [],
- "softDeleted": [],
- "truncated": false
- },
{
"adapter": "sqlite",
"resource": "TagList",
@@ -7649,7 +7630,7 @@
"adapter": "sqlite",
"resource": "Users",
"added": [
- "186347d9ea7673a2"
+ "2766c815d1c00dbe"
],
"removed": [],
"changed": [],
@@ -7668,8 +7649,8 @@
{
"id": "RD-018",
"action": {
- "id": "f79995dd7ed7",
- "pageUrl": "http://127.0.0.1:37211/#/register",
+ "id": "b978b9f51ea5",
+ "pageUrl": "http://127.0.0.1:37221/#/register",
"label": "conduit",
"activation": "click",
"kind": "navigation",
@@ -7682,7 +7663,7 @@
"role": "link",
"accessibleName": "conduit",
"text": "conduit",
- "href": "http://127.0.0.1:37211/#/",
+ "href": "http://127.0.0.1:37221/#/",
"candidates": [
{
"strategy": "role",
@@ -7701,7 +7682,7 @@
{
"strategy": "href",
"weight": 72,
- "value": "http://127.0.0.1:37211/#/"
+ "value": "http://127.0.0.1:37221/#/"
},
{
"strategy": "text",
@@ -7719,31 +7700,31 @@
"fields": []
},
"evidence": {
- "startedAt": "2026-07-26T10:52:13.516Z",
- "durationMs": 2479,
- "canary": "RD_TEST_FC15DA",
+ "startedAt": "2026-07-26T12:01:52.179Z",
+ "durationMs": 2492,
+ "canary": "RD_TEST_E60A0E",
"network": [
{
"id": "net-1",
"method": "GET",
- "url": "http://127.0.0.1:37211/api/articles?limit=3&&offset=0",
+ "url": "http://127.0.0.1:37221/api/articles?limit=3&&offset=0",
"resourceType": "xhr",
- "startedAt": 1510,
+ "startedAt": 1520,
"status": 200,
"ok": true,
"contentType": "application/json",
"resourceTypeHint": "articles",
- "finishedAt": 1517
+ "finishedAt": 1526
},
{
"id": "net-2",
"method": "GET",
- "url": "http://127.0.0.1:37211/api/tags",
+ "url": "http://127.0.0.1:37221/api/tags",
"resourceType": "xhr",
- "startedAt": 1511,
+ "startedAt": 1520,
"status": 200,
"ok": true,
- "finishedAt": 1517,
+ "finishedAt": 1527,
"contentType": "application/json",
"resourceTypeHint": "tags"
}
@@ -7764,28 +7745,28 @@
"weight": 92,
"matchCount": 2,
"visibleCount": 2,
- "elapsedMs": 7
+ "elapsedMs": 8
},
{
"strategy": "role",
"weight": 82,
"matchCount": 2,
"visibleCount": 2,
- "elapsedMs": 6
+ "elapsedMs": 7
},
{
"strategy": "href",
"weight": 72,
"matchCount": 0,
"visibleCount": 0,
- "elapsedMs": 2
+ "elapsedMs": 3
},
{
"strategy": "text",
"weight": 60,
"matchCount": 2,
"visibleCount": 2,
- "elapsedMs": 8
+ "elapsedMs": 6
},
{
"strategy": "css",
@@ -7800,8 +7781,8 @@
"retryCount": 0
},
"before": {
- "at": 1462,
- "url": "http://127.0.0.1:37211/#/register",
+ "at": 1478,
+ "url": "http://127.0.0.1:37221/#/register",
"title": "Conduit",
"domHash": "1f4fa65964895f4c",
"canaryPresent": false,
@@ -7866,8 +7847,8 @@
}
},
"beforeAction": {
- "at": 1471,
- "url": "http://127.0.0.1:37211/#/register",
+ "at": 1489,
+ "url": "http://127.0.0.1:37221/#/register",
"title": "Conduit",
"domHash": "1f4fa65964895f4c",
"canaryPresent": false,
@@ -7934,8 +7915,8 @@
"networkSettled": true,
"targetBusyAfter": false,
"after": {
- "at": 2476,
- "url": "http://127.0.0.1:37211/#/",
+ "at": 2487,
+ "url": "http://127.0.0.1:37221/#/",
"title": "Conduit",
"domHash": "3c44d4d1ff59317a",
"canaryPresent": false,
@@ -7972,7 +7953,7 @@
"indexedDb": []
}
},
- "trace": "traces/f79995dd7ed7.zip",
+ "trace": "traces/b978b9f51ea5.zip",
"snapshotIndex": "snapshots/RD-018.index.json"
},
"verdict": "VERIFIED",
@@ -7983,8 +7964,8 @@
{
"id": "RD-019",
"action": {
- "id": "df53bfe9225d",
- "pageUrl": "http://127.0.0.1:37211/",
+ "id": "5bbc1db21d2a",
+ "pageUrl": "http://127.0.0.1:37221/",
"label": "Source code",
"activation": "click",
"kind": "navigation",
@@ -8056,8 +8037,8 @@
{
"id": "RD-020",
"action": {
- "id": "3040fe74a6b8",
- "pageUrl": "http://127.0.0.1:37211/",
+ "id": "565566fdbfc2",
+ "pageUrl": "http://127.0.0.1:37221/",
"label": "Thinkster",
"activation": "click",
"kind": "navigation",
@@ -8129,8 +8110,8 @@
{
"id": "RD-021",
"action": {
- "id": "9daabb643ebe",
- "pageUrl": "http://127.0.0.1:37211/",
+ "id": "22c0f93a3b99",
+ "pageUrl": "http://127.0.0.1:37221/",
"label": "Source code",
"activation": "click",
"kind": "navigation",
@@ -8202,8 +8183,8 @@
{
"id": "RD-022",
"action": {
- "id": "29f086773df0",
- "pageUrl": "http://127.0.0.1:37211/#/login",
+ "id": "a14c21ba2796",
+ "pageUrl": "http://127.0.0.1:37221/#/login",
"label": "Source code",
"activation": "click",
"kind": "navigation",
@@ -8275,8 +8256,8 @@
{
"id": "RD-023",
"action": {
- "id": "325fa66846a5",
- "pageUrl": "http://127.0.0.1:37211/#/login",
+ "id": "a97311e1dff1",
+ "pageUrl": "http://127.0.0.1:37221/#/login",
"label": "Login",
"activation": "click",
"kind": "navigation",
@@ -8289,7 +8270,7 @@
"role": "link",
"accessibleName": "Login",
"text": "Login",
- "href": "http://127.0.0.1:37211/#/login",
+ "href": "http://127.0.0.1:37221/#/login",
"candidates": [
{
"strategy": "role",
@@ -8308,7 +8289,7 @@
{
"strategy": "href",
"weight": 72,
- "value": "http://127.0.0.1:37211/#/login"
+ "value": "http://127.0.0.1:37221/#/login"
},
{
"strategy": "text",
@@ -8348,8 +8329,8 @@
{
"id": "RD-024",
"action": {
- "id": "95a464c9f422",
- "pageUrl": "http://127.0.0.1:37211/#/login",
+ "id": "5117246bc5ce",
+ "pageUrl": "http://127.0.0.1:37221/#/login",
"label": "Thinkster",
"activation": "click",
"kind": "navigation",
@@ -8421,8 +8402,8 @@
{
"id": "RD-025",
"action": {
- "id": "292e1c897646",
- "pageUrl": "http://127.0.0.1:37211/#/login",
+ "id": "d605ffbad857",
+ "pageUrl": "http://127.0.0.1:37221/#/login",
"label": "Source code",
"activation": "click",
"kind": "navigation",
@@ -8494,8 +8475,8 @@
{
"id": "RD-026",
"action": {
- "id": "c22b2a4875fc",
- "pageUrl": "http://127.0.0.1:37211/#/register",
+ "id": "86c5ce218834",
+ "pageUrl": "http://127.0.0.1:37221/#/register",
"label": "Source code",
"activation": "click",
"kind": "navigation",
@@ -8567,8 +8548,8 @@
{
"id": "RD-027",
"action": {
- "id": "5a1f878365b7",
- "pageUrl": "http://127.0.0.1:37211/#/register",
+ "id": "1dd44725c1d0",
+ "pageUrl": "http://127.0.0.1:37221/#/register",
"label": "Sign up",
"activation": "click",
"kind": "navigation",
@@ -8581,7 +8562,7 @@
"role": "link",
"accessibleName": "Sign up",
"text": "Sign up",
- "href": "http://127.0.0.1:37211/#/register",
+ "href": "http://127.0.0.1:37221/#/register",
"candidates": [
{
"strategy": "role",
@@ -8600,7 +8581,7 @@
{
"strategy": "href",
"weight": 72,
- "value": "http://127.0.0.1:37211/#/register"
+ "value": "http://127.0.0.1:37221/#/register"
},
{
"strategy": "text",
@@ -8640,8 +8621,8 @@
{
"id": "RD-028",
"action": {
- "id": "a8bc53027b2f",
- "pageUrl": "http://127.0.0.1:37211/#/register",
+ "id": "6572fb8425d7",
+ "pageUrl": "http://127.0.0.1:37221/#/register",
"label": "Thinkster",
"activation": "click",
"kind": "navigation",
@@ -8713,8 +8694,8 @@
{
"id": "RD-029",
"action": {
- "id": "ed7b7d49ac35",
- "pageUrl": "http://127.0.0.1:37211/#/register",
+ "id": "fcc1043fc9f2",
+ "pageUrl": "http://127.0.0.1:37221/#/register",
"label": "Source code",
"activation": "click",
"kind": "navigation",
@@ -8786,9 +8767,9 @@
],
"environment": {
"status": "VALID",
- "checkedAt": "2026-07-26T10:51:14.663Z",
- "durationMs": 3843,
- "targetUrl": "http://127.0.0.1:37211/",
+ "checkedAt": "2026-07-26T12:00:53.431Z",
+ "durationMs": 3868,
+ "targetUrl": "http://127.0.0.1:37221/",
"mainDocument": {
"status": 200,
"contentType": "text/html"
diff --git a/release/evidence/raw/todomvc.scan.json b/release/evidence/raw/todomvc.scan.json
index f566abf..ce93b45 100644
--- a/release/evidence/raw/todomvc.scan.json
+++ b/release/evidence/raw/todomvc.scan.json
@@ -1,9 +1,9 @@
{
"schemaVersion": "1.0",
- "scanId": "20260726T102927Z-70c7",
- "targetUrl": "http://127.0.0.1:37282/examples/react/dist/",
- "startedAt": "2026-07-26T10:29:27.792Z",
- "finishedAt": "2026-07-26T10:29:44.503Z",
+ "scanId": "20260726T115450Z-9640",
+ "targetUrl": "http://127.0.0.1:37283/examples/react/dist/",
+ "startedAt": "2026-07-26T11:54:50.398Z",
+ "finishedAt": "2026-07-26T11:55:07.003Z",
"options": {
"maxPages": 2,
"maxActions": 20,
@@ -41,12 +41,12 @@
},
"pages": [
{
- "url": "http://127.0.0.1:37282/examples/react/dist/",
+ "url": "http://127.0.0.1:37283/examples/react/dist/",
"title": "TodoMVC: React",
"actions": [
{
- "id": "5c96781a2d4a",
- "pageUrl": "http://127.0.0.1:37282/examples/react/dist/",
+ "id": "9ac8dbc159e7",
+ "pageUrl": "http://127.0.0.1:37283/examples/react/dist/",
"label": "Source",
"activation": "click",
"kind": "navigation",
@@ -96,8 +96,8 @@
"fields": []
},
{
- "id": "1accd238e942",
- "pageUrl": "http://127.0.0.1:37282/examples/react/dist/",
+ "id": "9f4f92ac737d",
+ "pageUrl": "http://127.0.0.1:37283/examples/react/dist/",
"label": "Demo",
"activation": "click",
"kind": "navigation",
@@ -110,7 +110,7 @@
"role": "link",
"accessibleName": "Demo",
"text": "Demo",
- "href": "http://127.0.0.1:37282/examples/typescript-react",
+ "href": "http://127.0.0.1:37283/examples/typescript-react",
"candidates": [
{
"strategy": "role",
@@ -129,7 +129,7 @@
{
"strategy": "href",
"weight": 72,
- "value": "http://127.0.0.1:37282/examples/typescript-react"
+ "value": "http://127.0.0.1:37283/examples/typescript-react"
},
{
"strategy": "text",
@@ -147,8 +147,8 @@
"fields": []
},
{
- "id": "4fbbba7427dc",
- "pageUrl": "http://127.0.0.1:37282/examples/react/dist/",
+ "id": "d27ce1a03cb0",
+ "pageUrl": "http://127.0.0.1:37283/examples/react/dist/",
"label": "Source",
"activation": "click",
"kind": "navigation",
@@ -198,8 +198,8 @@
"fields": []
},
{
- "id": "fd4dd0395956",
- "pageUrl": "http://127.0.0.1:37282/examples/react/dist/",
+ "id": "29db713886c2",
+ "pageUrl": "http://127.0.0.1:37283/examples/react/dist/",
"label": "React",
"activation": "click",
"kind": "navigation",
@@ -249,8 +249,8 @@
"fields": []
},
{
- "id": "439a07d4ec15",
- "pageUrl": "http://127.0.0.1:37282/examples/react/dist/",
+ "id": "eccf6b967826",
+ "pageUrl": "http://127.0.0.1:37283/examples/react/dist/",
"label": "Quick Start",
"activation": "click",
"kind": "navigation",
@@ -300,8 +300,8 @@
"fields": []
},
{
- "id": "21fdaa901a31",
- "pageUrl": "http://127.0.0.1:37282/examples/react/dist/",
+ "id": "f878b6858e5d",
+ "pageUrl": "http://127.0.0.1:37283/examples/react/dist/",
"label": "API Reference",
"activation": "click",
"kind": "navigation",
@@ -351,8 +351,8 @@
"fields": []
},
{
- "id": "64865107a530",
- "pageUrl": "http://127.0.0.1:37282/examples/react/dist/",
+ "id": "afd015151450",
+ "pageUrl": "http://127.0.0.1:37283/examples/react/dist/",
"label": "Philosophy",
"activation": "click",
"kind": "navigation",
@@ -402,8 +402,8 @@
"fields": []
},
{
- "id": "e4e33d4d519a",
- "pageUrl": "http://127.0.0.1:37282/examples/react/dist/",
+ "id": "8c4be2fb33db",
+ "pageUrl": "http://127.0.0.1:37283/examples/react/dist/",
"label": "React Community",
"activation": "click",
"kind": "navigation",
@@ -453,8 +453,8 @@
"fields": []
},
{
- "id": "690e1d54dfe9",
- "pageUrl": "http://127.0.0.1:37282/examples/react/dist/",
+ "id": "1b6f4a454671",
+ "pageUrl": "http://127.0.0.1:37283/examples/react/dist/",
"label": "ReactJS on Stack Overflow",
"activation": "click",
"kind": "navigation",
@@ -504,8 +504,8 @@
"fields": []
},
{
- "id": "703fac4adf34",
- "pageUrl": "http://127.0.0.1:37282/examples/react/dist/",
+ "id": "3f270358be40",
+ "pageUrl": "http://127.0.0.1:37283/examples/react/dist/",
"label": "let us know",
"activation": "click",
"kind": "navigation",
@@ -555,8 +555,8 @@
"fields": []
},
{
- "id": "dc203b781336",
- "pageUrl": "http://127.0.0.1:37282/examples/react/dist/",
+ "id": "e957c1f1e5e2",
+ "pageUrl": "http://127.0.0.1:37283/examples/react/dist/",
"label": "New Todo Input",
"activation": "enter",
"kind": "mutation",
@@ -611,8 +611,8 @@
]
},
{
- "id": "8ee9f25813d5",
- "pageUrl": "http://127.0.0.1:37282/examples/react/dist/",
+ "id": "37d7f38e833b",
+ "pageUrl": "http://127.0.0.1:37283/examples/react/dist/",
"label": "TodoMVC",
"activation": "click",
"kind": "navigation",
@@ -664,12 +664,12 @@
]
},
{
- "url": "http://127.0.0.1:37282/examples/typescript-react/#/",
+ "url": "http://127.0.0.1:37283/examples/typescript-react/#/",
"title": "React • TodoMVC",
"actions": [
{
- "id": "0956bb6bbaa2",
- "pageUrl": "http://127.0.0.1:37282/examples/typescript-react/#/",
+ "id": "1260f3607e7e",
+ "pageUrl": "http://127.0.0.1:37283/examples/typescript-react/#/",
"label": "What needs to be done?",
"activation": "enter",
"kind": "mutation",
@@ -716,8 +716,8 @@
]
},
{
- "id": "506abaa80116",
- "pageUrl": "http://127.0.0.1:37282/examples/typescript-react/#/",
+ "id": "ce870c13823a",
+ "pageUrl": "http://127.0.0.1:37283/examples/typescript-react/#/",
"label": "Remo H. Jansen",
"activation": "click",
"kind": "navigation",
@@ -767,8 +767,8 @@
"fields": []
},
{
- "id": "4d94cf5a1297",
- "pageUrl": "http://127.0.0.1:37282/examples/typescript-react/#/",
+ "id": "6c513ec8d217",
+ "pageUrl": "http://127.0.0.1:37283/examples/typescript-react/#/",
"label": "TodoMVC",
"activation": "click",
"kind": "navigation",
@@ -824,8 +824,8 @@
{
"id": "RD-001",
"action": {
- "id": "1accd238e942",
- "pageUrl": "http://127.0.0.1:37282/examples/react/dist/",
+ "id": "9f4f92ac737d",
+ "pageUrl": "http://127.0.0.1:37283/examples/react/dist/",
"label": "Demo",
"activation": "click",
"kind": "navigation",
@@ -838,7 +838,7 @@
"role": "link",
"accessibleName": "Demo",
"text": "Demo",
- "href": "http://127.0.0.1:37282/examples/typescript-react",
+ "href": "http://127.0.0.1:37283/examples/typescript-react",
"candidates": [
{
"strategy": "role",
@@ -857,7 +857,7 @@
{
"strategy": "href",
"weight": 72,
- "value": "http://127.0.0.1:37282/examples/typescript-react"
+ "value": "http://127.0.0.1:37283/examples/typescript-react"
},
{
"strategy": "text",
@@ -875,79 +875,79 @@
"fields": []
},
"evidence": {
- "startedAt": "2026-07-26T10:29:31.536Z",
- "durationMs": 2059,
- "canary": "RD_TEST_D7CAAB",
+ "startedAt": "2026-07-26T11:54:54.117Z",
+ "durationMs": 1999,
+ "canary": "RD_TEST_403A2C",
"network": [
{
"id": "net-1",
"method": "GET",
- "url": "http://127.0.0.1:37282/examples/typescript-react",
+ "url": "http://127.0.0.1:37283/examples/typescript-react",
"resourceType": "document",
- "startedAt": 1082,
+ "startedAt": 1061,
"status": 301,
"ok": false,
- "finishedAt": 1086,
- "location": "http://127.0.0.1:37282/examples/typescript-react/",
+ "finishedAt": 1065,
+ "location": "http://127.0.0.1:37283/examples/typescript-react/",
"resourceTypeHint": "typescript-react"
},
{
"id": "net-2",
"method": "GET",
- "url": "http://127.0.0.1:37282/examples/typescript-react/",
+ "url": "http://127.0.0.1:37283/examples/typescript-react/",
"resourceType": "document",
- "startedAt": 1086,
+ "startedAt": 1066,
"status": 200,
"ok": true,
"contentType": "text/html",
"resourceTypeHint": "typescript-react",
- "finishedAt": 1096
+ "finishedAt": 1073
},
{
"id": "net-3",
"method": "GET",
- "url": "http://127.0.0.1:37282/examples/typescript-react/node_modules/todomvc-common/base.css",
+ "url": "http://127.0.0.1:37283/examples/typescript-react/node_modules/todomvc-common/base.css",
"resourceType": "stylesheet",
- "startedAt": 1093,
+ "startedAt": 1071,
"status": 200,
"ok": true,
- "finishedAt": 1103,
+ "finishedAt": 1080,
"contentType": "text/css",
"resourceTypeHint": "base.css"
},
{
"id": "net-4",
"method": "GET",
- "url": "http://127.0.0.1:37282/examples/typescript-react/node_modules/todomvc-app-css/index.css",
+ "url": "http://127.0.0.1:37283/examples/typescript-react/node_modules/todomvc-app-css/index.css",
"resourceType": "stylesheet",
- "startedAt": 1094,
+ "startedAt": 1072,
"status": 200,
"ok": true,
+ "finishedAt": 1080,
"contentType": "text/css",
- "resourceTypeHint": "index.css",
- "finishedAt": 1104
+ "resourceTypeHint": "index.css"
},
{
"id": "net-5",
"method": "GET",
- "url": "http://127.0.0.1:37282/examples/typescript-react/node_modules/director/build/director.js",
+ "url": "http://127.0.0.1:37283/examples/typescript-react/node_modules/director/build/director.js",
"resourceType": "script",
- "startedAt": 1094,
+ "startedAt": 1072,
"status": 200,
"ok": true,
- "finishedAt": 1110,
+ "finishedAt": 1083,
"contentType": "application/javascript",
"resourceTypeHint": "director.js"
},
{
"id": "net-6",
"method": "GET",
- "url": "http://127.0.0.1:37282/examples/typescript-react/js/bundle.js",
+ "url": "http://127.0.0.1:37283/examples/typescript-react/js/bundle.js",
"resourceType": "script",
- "startedAt": 1095,
+ "startedAt": 1072,
"status": 200,
"ok": true,
- "finishedAt": 1120,
+ "finishedAt": 1091,
"contentType": "application/javascript",
"resourceTypeHint": "bundle.js"
}
@@ -968,7 +968,7 @@
"weight": 92,
"matchCount": 1,
"visibleCount": 1,
- "elapsedMs": 9
+ "elapsedMs": 7
}
],
"chosenStrategy": "role",
@@ -976,8 +976,8 @@
"retryCount": 0
},
"before": {
- "at": 1033,
- "url": "http://127.0.0.1:37282/examples/react/dist/",
+ "at": 1014,
+ "url": "http://127.0.0.1:37283/examples/react/dist/",
"title": "TodoMVC: React",
"domHash": "84ea4bd670111ab8",
"canaryPresent": false,
@@ -1031,8 +1031,8 @@
}
},
"beforeAction": {
- "at": 1045,
- "url": "http://127.0.0.1:37282/examples/react/dist/",
+ "at": 1025,
+ "url": "http://127.0.0.1:37283/examples/react/dist/",
"title": "TodoMVC: React",
"domHash": "84ea4bd670111ab8",
"canaryPresent": false,
@@ -1087,8 +1087,8 @@
},
"networkSettled": true,
"after": {
- "at": 2049,
- "url": "http://127.0.0.1:37282/examples/typescript-react/#/",
+ "at": 1989,
+ "url": "http://127.0.0.1:37283/examples/typescript-react/#/",
"title": "React • TodoMVC",
"domHash": "12538a75df36416c",
"canaryPresent": false,
@@ -1126,7 +1126,7 @@
"indexedDb": []
}
},
- "trace": "traces/1accd238e942.zip",
+ "trace": "traces/9f4f92ac737d.zip",
"snapshotIndex": "snapshots/RD-001.index.json"
},
"verdict": "VERIFIED",
@@ -1137,8 +1137,8 @@
{
"id": "RD-002",
"action": {
- "id": "dc203b781336",
- "pageUrl": "http://127.0.0.1:37282/examples/react/dist/",
+ "id": "e957c1f1e5e2",
+ "pageUrl": "http://127.0.0.1:37283/examples/react/dist/",
"label": "New Todo Input",
"activation": "enter",
"kind": "mutation",
@@ -1193,127 +1193,127 @@
]
},
"evidence": {
- "startedAt": "2026-07-26T10:29:33.647Z",
- "durationMs": 5247,
- "canary": "RD_TEST_A3B566",
+ "startedAt": "2026-07-26T11:54:56.171Z",
+ "durationMs": 5240,
+ "canary": "RD_TEST_D70A8C",
"network": [
{
"id": "net-1",
"method": "GET",
- "url": "http://127.0.0.1:37282/examples/react/dist/",
+ "url": "http://127.0.0.1:37283/examples/react/dist/",
"resourceType": "document",
- "startedAt": 1992,
+ "startedAt": 1999,
"status": 200,
"ok": true,
"contentType": "text/html",
"resourceTypeHint": "dist",
- "finishedAt": 2001
+ "finishedAt": 2009
},
{
"id": "net-2",
"method": "GET",
- "url": "http://127.0.0.1:37282/examples/react/dist/app.bundle.js",
+ "url": "http://127.0.0.1:37283/examples/react/dist/app.bundle.js",
"resourceType": "script",
- "startedAt": 2000,
+ "startedAt": 2008,
"status": 200,
"ok": true,
- "finishedAt": 2018,
+ "finishedAt": 2045,
"contentType": "application/javascript",
"resourceTypeHint": "app.bundle.js"
},
{
"id": "net-3",
"method": "GET",
- "url": "http://127.0.0.1:37282/examples/react/dist/app.css",
+ "url": "http://127.0.0.1:37283/examples/react/dist/app.css",
"resourceType": "stylesheet",
- "startedAt": 2000,
+ "startedAt": 2008,
"status": 200,
"ok": true,
- "finishedAt": 2013,
+ "finishedAt": 2041,
"contentType": "text/css",
"resourceTypeHint": "app.css"
},
{
"id": "net-4",
"method": "GET",
- "url": "http://127.0.0.1:37282/examples/react/dist/base.js",
+ "url": "http://127.0.0.1:37283/examples/react/dist/base.js",
"resourceType": "script",
- "startedAt": 2001,
+ "startedAt": 2008,
"status": 200,
"ok": true,
- "finishedAt": 2014,
+ "finishedAt": 2041,
"contentType": "application/javascript",
"resourceTypeHint": "base.js"
},
{
"id": "net-5",
"method": "GET",
- "url": "http://127.0.0.1:37282/learn.json",
+ "url": "http://127.0.0.1:37283/learn.json",
"resourceType": "xhr",
- "startedAt": 2014,
+ "startedAt": 2041,
"status": 200,
"ok": true,
- "finishedAt": 2020,
+ "finishedAt": 2047,
"contentType": "application/json",
"resourceTypeHint": "learn.json"
},
{
"id": "net-6",
"method": "GET",
- "url": "http://127.0.0.1:37282/examples/react/dist/",
+ "url": "http://127.0.0.1:37283/examples/react/dist/",
"resourceType": "document",
- "startedAt": 2825,
+ "startedAt": 2846,
"status": 200,
"ok": true,
"contentType": "text/html",
"resourceTypeHint": "dist",
- "finishedAt": 2834
+ "finishedAt": 2856
},
{
"id": "net-7",
"method": "GET",
- "url": "http://127.0.0.1:37282/examples/react/dist/app.bundle.js",
+ "url": "http://127.0.0.1:37283/examples/react/dist/app.bundle.js",
"resourceType": "script",
- "startedAt": 2832,
+ "startedAt": 2855,
"status": 200,
"ok": true,
- "finishedAt": 2862,
+ "finishedAt": 2876,
"contentType": "application/javascript",
"resourceTypeHint": "app.bundle.js"
},
{
"id": "net-8",
"method": "GET",
- "url": "http://127.0.0.1:37282/examples/react/dist/app.css",
+ "url": "http://127.0.0.1:37283/examples/react/dist/app.css",
"resourceType": "stylesheet",
- "startedAt": 2833,
+ "startedAt": 2855,
"status": 200,
"ok": true,
+ "finishedAt": 2871,
"contentType": "text/css",
- "resourceTypeHint": "app.css",
- "finishedAt": 2858
+ "resourceTypeHint": "app.css"
},
{
"id": "net-9",
"method": "GET",
- "url": "http://127.0.0.1:37282/examples/react/dist/base.js",
+ "url": "http://127.0.0.1:37283/examples/react/dist/base.js",
"resourceType": "script",
- "startedAt": 2833,
+ "startedAt": 2856,
"status": 200,
"ok": true,
- "finishedAt": 2859,
+ "finishedAt": 2871,
"contentType": "application/javascript",
"resourceTypeHint": "base.js"
},
{
"id": "net-10",
"method": "GET",
- "url": "http://127.0.0.1:37282/learn.json",
+ "url": "http://127.0.0.1:37283/learn.json",
"resourceType": "xhr",
- "startedAt": 2859,
+ "startedAt": 2872,
"status": 200,
"ok": true,
- "finishedAt": 2865,
+ "finishedAt": 2878,
"contentType": "application/json",
"resourceTypeHint": "learn.json"
}
@@ -1326,7 +1326,7 @@
"selector": "[data-testid=\"text-input\"]",
"name": "New Todo Input",
"type": "text",
- "value": "RD_TEST_A3B566_1",
+ "value": "RD_TEST_D70A8C_1",
"redacted": false
}
],
@@ -1350,8 +1350,8 @@
"retryCount": 0
},
"before": {
- "at": 1011,
- "url": "http://127.0.0.1:37282/examples/react/dist/",
+ "at": 1007,
+ "url": "http://127.0.0.1:37283/examples/react/dist/",
"title": "TodoMVC: React",
"domHash": "84ea4bd670111ab8",
"canaryPresent": false,
@@ -1405,10 +1405,10 @@
}
},
"beforeAction": {
- "at": 1032,
- "url": "http://127.0.0.1:37282/examples/react/dist/",
+ "at": 1028,
+ "url": "http://127.0.0.1:37283/examples/react/dist/",
"title": "TodoMVC: React",
- "domHash": "e717acb9027cda82",
+ "domHash": "c62fd56f1fc0e853",
"canaryPresent": true,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -1427,7 +1427,7 @@
{
"tag": "input",
"type": "text",
- "valueHash": "f939a4d4af014b31",
+ "valueHash": "73dbdb224878d029",
"checked": false,
"disabled": false,
"visible": true
@@ -1463,10 +1463,10 @@
"networkSettled": true,
"targetBusyAfter": false,
"after": {
- "at": 1930,
- "url": "http://127.0.0.1:37282/examples/react/dist/",
+ "at": 1939,
+ "url": "http://127.0.0.1:37283/examples/react/dist/",
"title": "TodoMVC: React",
- "domHash": "a7569bfb755c08b1",
+ "domHash": "0b2bcaf9882415b0",
"canaryPresent": true,
"bodyCanaryPresent": true,
"temporaryBlobUrls": 0,
@@ -1478,9 +1478,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "8c99f2f0463ea29e",
+ "textHash": "17db458f1a76e8d1",
"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_A3B566_1 1 item left! AllActiveCompleted Double-click to edit a todo Created by the TodoMVC Team Part of TodoMVC",
+ "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_D70A8C_1 1 item left! AllActiveCompleted Double-click to edit a todo Created by the TodoMVC Team Part of TodoMVC",
"controls": [
{
"tag": "input",
@@ -1532,10 +1532,10 @@
"indexedDb": []
}
},
- "screenshot": "screenshots/dc203b781336-after.png",
+ "screenshot": "screenshots/e957c1f1e5e2-after.png",
"afterRefresh": {
- "at": 2750,
- "url": "http://127.0.0.1:37282/examples/react/dist/",
+ "at": 2776,
+ "url": "http://127.0.0.1:37283/examples/react/dist/",
"title": "TodoMVC: React",
"domHash": "84ea4bd670111ab8",
"canaryPresent": false,
@@ -1588,10 +1588,10 @@
"indexedDb": []
}
},
- "refreshScreenshot": "screenshots/dc203b781336-refresh.png",
+ "refreshScreenshot": "screenshots/e957c1f1e5e2-refresh.png",
"afterHardRefresh": {
- "at": 3601,
- "url": "http://127.0.0.1:37282/examples/react/dist/",
+ "at": 3609,
+ "url": "http://127.0.0.1:37283/examples/react/dist/",
"title": "TodoMVC: React",
"domHash": "84ea4bd670111ab8",
"canaryPresent": false,
@@ -1645,8 +1645,8 @@
}
},
"afterNewTab": {
- "at": 4438,
- "url": "http://127.0.0.1:37282/examples/react/dist/",
+ "at": 4437,
+ "url": "http://127.0.0.1:37283/examples/react/dist/",
"title": "TodoMVC: React",
"domHash": "84ea4bd670111ab8",
"canaryPresent": false,
@@ -1700,8 +1700,8 @@
}
},
"afterNewContext": {
- "at": 5244,
- "url": "http://127.0.0.1:37282/examples/react/dist/",
+ "at": 5238,
+ "url": "http://127.0.0.1:37283/examples/react/dist/",
"title": "TodoMVC: React",
"domHash": "84ea4bd670111ab8",
"canaryPresent": false,
@@ -1755,7 +1755,7 @@
}
},
"persistenceScope": "MEMORY_ONLY",
- "trace": "traces/dc203b781336.zip",
+ "trace": "traces/e957c1f1e5e2.zip",
"snapshotIndex": "snapshots/RD-002.index.json"
},
"verdict": "EPHEMERAL",
@@ -1782,8 +1782,8 @@
{
"id": "RD-003",
"action": {
- "id": "0956bb6bbaa2",
- "pageUrl": "http://127.0.0.1:37282/examples/typescript-react/#/",
+ "id": "1260f3607e7e",
+ "pageUrl": "http://127.0.0.1:37283/examples/typescript-react/#/",
"label": "What needs to be done?",
"activation": "enter",
"kind": "mutation",
@@ -1830,127 +1830,127 @@
]
},
"evidence": {
- "startedAt": "2026-07-26T10:29:38.968Z",
- "durationMs": 5321,
- "canary": "RD_TEST_E76C83",
+ "startedAt": "2026-07-26T11:55:01.482Z",
+ "durationMs": 5373,
+ "canary": "RD_TEST_95D181",
"network": [
{
"id": "net-1",
"method": "GET",
- "url": "http://127.0.0.1:37282/examples/typescript-react/",
+ "url": "http://127.0.0.1:37283/examples/typescript-react/",
"resourceType": "document",
- "startedAt": 1989,
+ "startedAt": 1995,
"status": 200,
"ok": true,
"contentType": "text/html",
"resourceTypeHint": "typescript-react",
- "finishedAt": 1999
+ "finishedAt": 2003
},
{
"id": "net-2",
"method": "GET",
- "url": "http://127.0.0.1:37282/examples/typescript-react/node_modules/todomvc-common/base.css",
+ "url": "http://127.0.0.1:37283/examples/typescript-react/node_modules/todomvc-common/base.css",
"resourceType": "stylesheet",
- "startedAt": 1997,
+ "startedAt": 2001,
"status": 200,
"ok": true,
- "finishedAt": 2027,
+ "finishedAt": 2007,
"contentType": "text/css",
"resourceTypeHint": "base.css"
},
{
"id": "net-3",
"method": "GET",
- "url": "http://127.0.0.1:37282/examples/typescript-react/node_modules/todomvc-app-css/index.css",
+ "url": "http://127.0.0.1:37283/examples/typescript-react/node_modules/todomvc-app-css/index.css",
"resourceType": "stylesheet",
- "startedAt": 1998,
+ "startedAt": 2002,
"status": 200,
"ok": true,
- "finishedAt": 2028,
+ "finishedAt": 2013,
"contentType": "text/css",
"resourceTypeHint": "index.css"
},
{
"id": "net-4",
"method": "GET",
- "url": "http://127.0.0.1:37282/examples/typescript-react/node_modules/director/build/director.js",
+ "url": "http://127.0.0.1:37283/examples/typescript-react/node_modules/director/build/director.js",
"resourceType": "script",
- "startedAt": 1999,
+ "startedAt": 2002,
"status": 200,
"ok": true,
- "finishedAt": 2030,
+ "finishedAt": 2017,
"contentType": "application/javascript",
"resourceTypeHint": "director.js"
},
{
"id": "net-5",
"method": "GET",
- "url": "http://127.0.0.1:37282/examples/typescript-react/js/bundle.js",
+ "url": "http://127.0.0.1:37283/examples/typescript-react/js/bundle.js",
"resourceType": "script",
- "startedAt": 1999,
+ "startedAt": 2002,
"status": 200,
"ok": true,
- "finishedAt": 2039,
+ "finishedAt": 2026,
"contentType": "application/javascript",
"resourceTypeHint": "bundle.js"
},
{
"id": "net-6",
"method": "GET",
- "url": "http://127.0.0.1:37282/examples/typescript-react/",
+ "url": "http://127.0.0.1:37283/examples/typescript-react/",
"resourceType": "document",
- "startedAt": 2833,
+ "startedAt": 2826,
"status": 200,
"ok": true,
"contentType": "text/html",
"resourceTypeHint": "typescript-react",
- "finishedAt": 2844
+ "finishedAt": 2835
},
{
"id": "net-7",
"method": "GET",
- "url": "http://127.0.0.1:37282/examples/typescript-react/node_modules/todomvc-common/base.css",
+ "url": "http://127.0.0.1:37283/examples/typescript-react/node_modules/todomvc-common/base.css",
"resourceType": "stylesheet",
- "startedAt": 2841,
+ "startedAt": 2833,
"status": 200,
"ok": true,
- "finishedAt": 2849,
+ "finishedAt": 2857,
"contentType": "text/css",
"resourceTypeHint": "base.css"
},
{
"id": "net-8",
"method": "GET",
- "url": "http://127.0.0.1:37282/examples/typescript-react/node_modules/todomvc-app-css/index.css",
+ "url": "http://127.0.0.1:37283/examples/typescript-react/node_modules/todomvc-app-css/index.css",
"resourceType": "stylesheet",
- "startedAt": 2842,
+ "startedAt": 2833,
"status": 200,
"ok": true,
- "finishedAt": 2861,
+ "finishedAt": 2858,
"contentType": "text/css",
"resourceTypeHint": "index.css"
},
{
"id": "net-9",
"method": "GET",
- "url": "http://127.0.0.1:37282/examples/typescript-react/node_modules/director/build/director.js",
+ "url": "http://127.0.0.1:37283/examples/typescript-react/node_modules/director/build/director.js",
"resourceType": "script",
- "startedAt": 2843,
+ "startedAt": 2834,
"status": 200,
"ok": true,
- "finishedAt": 2858,
+ "finishedAt": 2860,
"contentType": "application/javascript",
"resourceTypeHint": "director.js"
},
{
"id": "net-10",
"method": "GET",
- "url": "http://127.0.0.1:37282/examples/typescript-react/js/bundle.js",
+ "url": "http://127.0.0.1:37283/examples/typescript-react/js/bundle.js",
"resourceType": "script",
- "startedAt": 2843,
+ "startedAt": 2834,
"status": 200,
"ok": true,
- "finishedAt": 2871,
+ "finishedAt": 2869,
"contentType": "application/javascript",
"resourceTypeHint": "bundle.js"
}
@@ -1963,7 +1963,7 @@
"selector": "body > section > div > header > input",
"name": "What needs to be done?",
"type": "text",
- "value": "RD_TEST_E76C83_1",
+ "value": "RD_TEST_95D181_1",
"redacted": false
}
],
@@ -1987,8 +1987,8 @@
"retryCount": 0
},
"before": {
- "at": 1030,
- "url": "http://127.0.0.1:37282/examples/typescript-react/#/",
+ "at": 1025,
+ "url": "http://127.0.0.1:37283/examples/typescript-react/#/",
"title": "React • TodoMVC",
"domHash": "12538a75df36416c",
"canaryPresent": false,
@@ -2027,10 +2027,10 @@
}
},
"beforeAction": {
- "at": 1050,
- "url": "http://127.0.0.1:37282/examples/typescript-react/#/",
+ "at": 1044,
+ "url": "http://127.0.0.1:37283/examples/typescript-react/#/",
"title": "React • TodoMVC",
- "domHash": "c1b7344011f6d77d",
+ "domHash": "f52ff3ff4dd0b78e",
"canaryPresent": true,
"bodyCanaryPresent": false,
"temporaryBlobUrls": 0,
@@ -2049,7 +2049,7 @@
{
"tag": "input",
"type": "text",
- "valueHash": "bd4367cb05fa4b2f",
+ "valueHash": "a388db81e7653c35",
"checked": false,
"disabled": false,
"visible": true
@@ -2070,10 +2070,10 @@
"networkSettled": true,
"targetBusyAfter": false,
"after": {
- "at": 1948,
- "url": "http://127.0.0.1:37282/examples/typescript-react/#/",
+ "at": 1952,
+ "url": "http://127.0.0.1:37283/examples/typescript-react/#/",
"title": "React • TodoMVC",
- "domHash": "b04740d6631e367e",
+ "domHash": "557ee857eac68706",
"canaryPresent": true,
"bodyCanaryPresent": true,
"temporaryBlobUrls": 0,
@@ -2085,9 +2085,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "cc1856329cf7c673",
+ "textHash": "806486b6f04bcbeb",
"visualHash": "23536a708be967a8",
- "text": "todos Mark all as complete RD_TEST_E76C83_1 1 item left All Active Completed Double-click to edit a todo Created by Remo H. Jansen Part of TodoMVC",
+ "text": "todos Mark all as complete RD_TEST_95D181_1 1 item left All Active Completed Double-click to edit a todo Created by Remo H. Jansen Part of TodoMVC",
"controls": [
{
"tag": "input",
@@ -2123,7 +2123,7 @@
{
"tag": "input",
"type": "text",
- "valueHash": "bd4367cb05fa4b2f",
+ "valueHash": "a388db81e7653c35",
"checked": false,
"disabled": false,
"visible": false
@@ -2136,7 +2136,7 @@
"local": [
{
"key": "react-todos",
- "valueHash": "63f9a7c3b6f39432",
+ "valueHash": "ccb00384ee5f1c62",
"containsCanary": true
}
],
@@ -2146,12 +2146,12 @@
"indexedDb": []
}
},
- "screenshot": "screenshots/0956bb6bbaa2-after.png",
+ "screenshot": "screenshots/1260f3607e7e-after.png",
"afterRefresh": {
- "at": 2795,
- "url": "http://127.0.0.1:37282/examples/typescript-react/#/",
+ "at": 2780,
+ "url": "http://127.0.0.1:37283/examples/typescript-react/#/",
"title": "React • TodoMVC",
- "domHash": "b04740d6631e367e",
+ "domHash": "557ee857eac68706",
"canaryPresent": true,
"bodyCanaryPresent": true,
"temporaryBlobUrls": 0,
@@ -2163,9 +2163,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "cc1856329cf7c673",
+ "textHash": "806486b6f04bcbeb",
"visualHash": "23536a708be967a8",
- "text": "todos Mark all as complete RD_TEST_E76C83_1 1 item left All Active Completed Double-click to edit a todo Created by Remo H. Jansen Part of TodoMVC",
+ "text": "todos Mark all as complete RD_TEST_95D181_1 1 item left All Active Completed Double-click to edit a todo Created by Remo H. Jansen Part of TodoMVC",
"controls": [
{
"tag": "input",
@@ -2201,7 +2201,7 @@
{
"tag": "input",
"type": "text",
- "valueHash": "bd4367cb05fa4b2f",
+ "valueHash": "a388db81e7653c35",
"checked": false,
"disabled": false,
"visible": false
@@ -2214,7 +2214,7 @@
"local": [
{
"key": "react-todos",
- "valueHash": "63f9a7c3b6f39432",
+ "valueHash": "ccb00384ee5f1c62",
"containsCanary": true
}
],
@@ -2224,12 +2224,12 @@
"indexedDb": []
}
},
- "refreshScreenshot": "screenshots/0956bb6bbaa2-refresh.png",
+ "refreshScreenshot": "screenshots/1260f3607e7e-refresh.png",
"afterHardRefresh": {
"at": 3631,
- "url": "http://127.0.0.1:37282/examples/typescript-react/#/",
+ "url": "http://127.0.0.1:37283/examples/typescript-react/#/",
"title": "React • TodoMVC",
- "domHash": "b04740d6631e367e",
+ "domHash": "557ee857eac68706",
"canaryPresent": true,
"bodyCanaryPresent": true,
"temporaryBlobUrls": 0,
@@ -2241,9 +2241,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "cc1856329cf7c673",
+ "textHash": "806486b6f04bcbeb",
"visualHash": "23536a708be967a8",
- "text": "todos Mark all as complete RD_TEST_E76C83_1 1 item left All Active Completed Double-click to edit a todo Created by Remo H. Jansen Part of TodoMVC",
+ "text": "todos Mark all as complete RD_TEST_95D181_1 1 item left All Active Completed Double-click to edit a todo Created by Remo H. Jansen Part of TodoMVC",
"controls": [
{
"tag": "input",
@@ -2279,7 +2279,7 @@
{
"tag": "input",
"type": "text",
- "valueHash": "bd4367cb05fa4b2f",
+ "valueHash": "a388db81e7653c35",
"checked": false,
"disabled": false,
"visible": false
@@ -2292,7 +2292,7 @@
"local": [
{
"key": "react-todos",
- "valueHash": "63f9a7c3b6f39432",
+ "valueHash": "ccb00384ee5f1c62",
"containsCanary": true
}
],
@@ -2303,10 +2303,10 @@
}
},
"afterNewTab": {
- "at": 4501,
- "url": "http://127.0.0.1:37282/examples/typescript-react/#/",
+ "at": 4532,
+ "url": "http://127.0.0.1:37283/examples/typescript-react/#/",
"title": "React • TodoMVC",
- "domHash": "b04740d6631e367e",
+ "domHash": "557ee857eac68706",
"canaryPresent": true,
"bodyCanaryPresent": true,
"temporaryBlobUrls": 0,
@@ -2318,9 +2318,9 @@
"accessDenied": false
},
"semanticDom": {
- "textHash": "cc1856329cf7c673",
+ "textHash": "806486b6f04bcbeb",
"visualHash": "23536a708be967a8",
- "text": "todos Mark all as complete RD_TEST_E76C83_1 1 item left All Active Completed Double-click to edit a todo Created by Remo H. Jansen Part of TodoMVC",
+ "text": "todos Mark all as complete RD_TEST_95D181_1 1 item left All Active Completed Double-click to edit a todo Created by Remo H. Jansen Part of TodoMVC",
"controls": [
{
"tag": "input",
@@ -2356,7 +2356,7 @@
{
"tag": "input",
"type": "text",
- "valueHash": "bd4367cb05fa4b2f",
+ "valueHash": "a388db81e7653c35",
"checked": false,
"disabled": false,
"visible": false
@@ -2369,7 +2369,7 @@
"local": [
{
"key": "react-todos",
- "valueHash": "63f9a7c3b6f39432",
+ "valueHash": "ccb00384ee5f1c62",
"containsCanary": true
}
],
@@ -2380,8 +2380,8 @@
}
},
"afterNewContext": {
- "at": 5318,
- "url": "http://127.0.0.1:37282/examples/typescript-react/#/",
+ "at": 5369,
+ "url": "http://127.0.0.1:37283/examples/typescript-react/#/",
"title": "React • TodoMVC",
"domHash": "12538a75df36416c",
"canaryPresent": false,
@@ -2420,7 +2420,7 @@
}
},
"persistenceScope": "BROWSER_LOCAL",
- "trace": "traces/0956bb6bbaa2.zip",
+ "trace": "traces/1260f3607e7e.zip",
"snapshotIndex": "snapshots/RD-003.index.json"
},
"verdict": "BROWSER_LOCAL",
@@ -2442,8 +2442,8 @@
{
"id": "RD-004",
"action": {
- "id": "5c96781a2d4a",
- "pageUrl": "http://127.0.0.1:37282/examples/react/dist/",
+ "id": "9ac8dbc159e7",
+ "pageUrl": "http://127.0.0.1:37283/examples/react/dist/",
"label": "Source",
"activation": "click",
"kind": "navigation",
@@ -2515,8 +2515,8 @@
{
"id": "RD-005",
"action": {
- "id": "4fbbba7427dc",
- "pageUrl": "http://127.0.0.1:37282/examples/react/dist/",
+ "id": "d27ce1a03cb0",
+ "pageUrl": "http://127.0.0.1:37283/examples/react/dist/",
"label": "Source",
"activation": "click",
"kind": "navigation",
@@ -2588,8 +2588,8 @@
{
"id": "RD-006",
"action": {
- "id": "fd4dd0395956",
- "pageUrl": "http://127.0.0.1:37282/examples/react/dist/",
+ "id": "29db713886c2",
+ "pageUrl": "http://127.0.0.1:37283/examples/react/dist/",
"label": "React",
"activation": "click",
"kind": "navigation",
@@ -2661,8 +2661,8 @@
{
"id": "RD-007",
"action": {
- "id": "439a07d4ec15",
- "pageUrl": "http://127.0.0.1:37282/examples/react/dist/",
+ "id": "eccf6b967826",
+ "pageUrl": "http://127.0.0.1:37283/examples/react/dist/",
"label": "Quick Start",
"activation": "click",
"kind": "navigation",
@@ -2734,8 +2734,8 @@
{
"id": "RD-008",
"action": {
- "id": "21fdaa901a31",
- "pageUrl": "http://127.0.0.1:37282/examples/react/dist/",
+ "id": "f878b6858e5d",
+ "pageUrl": "http://127.0.0.1:37283/examples/react/dist/",
"label": "API Reference",
"activation": "click",
"kind": "navigation",
@@ -2807,8 +2807,8 @@
{
"id": "RD-009",
"action": {
- "id": "64865107a530",
- "pageUrl": "http://127.0.0.1:37282/examples/react/dist/",
+ "id": "afd015151450",
+ "pageUrl": "http://127.0.0.1:37283/examples/react/dist/",
"label": "Philosophy",
"activation": "click",
"kind": "navigation",
@@ -2880,8 +2880,8 @@
{
"id": "RD-010",
"action": {
- "id": "e4e33d4d519a",
- "pageUrl": "http://127.0.0.1:37282/examples/react/dist/",
+ "id": "8c4be2fb33db",
+ "pageUrl": "http://127.0.0.1:37283/examples/react/dist/",
"label": "React Community",
"activation": "click",
"kind": "navigation",
@@ -2953,8 +2953,8 @@
{
"id": "RD-011",
"action": {
- "id": "690e1d54dfe9",
- "pageUrl": "http://127.0.0.1:37282/examples/react/dist/",
+ "id": "1b6f4a454671",
+ "pageUrl": "http://127.0.0.1:37283/examples/react/dist/",
"label": "ReactJS on Stack Overflow",
"activation": "click",
"kind": "navigation",
@@ -3026,8 +3026,8 @@
{
"id": "RD-012",
"action": {
- "id": "703fac4adf34",
- "pageUrl": "http://127.0.0.1:37282/examples/react/dist/",
+ "id": "3f270358be40",
+ "pageUrl": "http://127.0.0.1:37283/examples/react/dist/",
"label": "let us know",
"activation": "click",
"kind": "navigation",
@@ -3099,8 +3099,8 @@
{
"id": "RD-013",
"action": {
- "id": "8ee9f25813d5",
- "pageUrl": "http://127.0.0.1:37282/examples/react/dist/",
+ "id": "37d7f38e833b",
+ "pageUrl": "http://127.0.0.1:37283/examples/react/dist/",
"label": "TodoMVC",
"activation": "click",
"kind": "navigation",
@@ -3172,8 +3172,8 @@
{
"id": "RD-014",
"action": {
- "id": "506abaa80116",
- "pageUrl": "http://127.0.0.1:37282/examples/typescript-react/#/",
+ "id": "ce870c13823a",
+ "pageUrl": "http://127.0.0.1:37283/examples/typescript-react/#/",
"label": "Remo H. Jansen",
"activation": "click",
"kind": "navigation",
@@ -3245,8 +3245,8 @@
{
"id": "RD-015",
"action": {
- "id": "4d94cf5a1297",
- "pageUrl": "http://127.0.0.1:37282/examples/typescript-react/#/",
+ "id": "6c513ec8d217",
+ "pageUrl": "http://127.0.0.1:37283/examples/typescript-react/#/",
"label": "TodoMVC",
"activation": "click",
"kind": "navigation",
@@ -3318,9 +3318,9 @@
],
"environment": {
"status": "VALID",
- "checkedAt": "2026-07-26T10:29:27.881Z",
- "durationMs": 1720,
- "targetUrl": "http://127.0.0.1:37282/examples/react/dist/",
+ "checkedAt": "2026-07-26T11:54:50.484Z",
+ "durationMs": 1719,
+ "targetUrl": "http://127.0.0.1:37283/examples/react/dist/",
"mainDocument": {
"status": 200,
"contentType": "text/html"
diff --git a/release/evidence/todomvc.json b/release/evidence/todomvc.json
index 78e309e..f58728e 100644
--- a/release/evidence/todomvc.json
+++ b/release/evidence/todomvc.json
@@ -1,7 +1,7 @@
{
"schemaVersion": "1.0",
- "generatedAt": "2026-07-26T11:10:00.000Z",
- "engineFingerprint": "0b39d54299d3c50d0f002382e04d569591d56c10c1fca5623d331b374221d047",
+ "generatedAt": "2026-07-26T12:05:00.000Z",
+ "engineFingerprint": "4625a9ccdcec3484a0251ad00253a719fb04a81c8ce552b1d77763f3deccef94",
"case": {
"name": "TodoMVC React",
"repository": "tastejs/todomvc",
@@ -12,9 +12,9 @@
"capabilities": []
},
"scan": {
- "scanId": "20260726T102927Z-70c7",
+ "scanId": "20260726T115450Z-9640",
"sourceArtifact": "release/evidence/raw/todomvc.scan.json",
- "sourceSha256": "1a97a641a581beb42ad08040bb430b1a1449c26b2221288f1796b38a06cfb06b",
+ "sourceSha256": "d3183f2eb37c9c8cbadc12756fcdbffe48d6160fdec4e476384653567bb92508",
"environmentStatus": "VALID",
"truncated": false,
"pagesDiscovered": 2,
diff --git a/release/external-cases.json b/release/external-cases.json
index c8cb8a1..b2d6bc6 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": "5ee386aa8c7f638d73b005d9c2098cfeaf2b07ebfd066bdc1fcb9479599fbb45",
- "engineFingerprint": "0b39d54299d3c50d0f002382e04d569591d56c10c1fca5623d331b374221d047",
+ "evidenceSha256": "2e7c36f2e31f9b959e3bfe16ac89dce9910ce467c4a41e97c435384268a4e391",
+ "engineFingerprint": "4625a9ccdcec3484a0251ad00253a719fb04a81c8ce552b1d77763f3deccef94",
"status": "passed",
"environmentValid": true,
"severeRegressions": 0,
@@ -16,8 +16,8 @@
"repository": "actualbudget/actual",
"pinnedCommit": "7325498af773d591a7bc70d5af16d3912f566654",
"evidenceFile": "release/evidence/actual-budget.json",
- "evidenceSha256": "616e829e0fc0e8c71bb0f31f6a8560734824a457c522d67b8e6f75d63d84efe8",
- "engineFingerprint": "0b39d54299d3c50d0f002382e04d569591d56c10c1fca5623d331b374221d047",
+ "evidenceSha256": "acc57550626f4b4a2c78d360eaff97fa88a97617b64f2e76c3bbc455c73d9b86",
+ "engineFingerprint": "4625a9ccdcec3484a0251ad00253a719fb04a81c8ce552b1d77763f3deccef94",
"status": "passed",
"environmentValid": true,
"severeRegressions": 0,
@@ -28,8 +28,8 @@
"repository": "TonyMckes/conduit-realworld-example-app",
"pinnedCommit": "5e127d8569b300e0a21dc2c20ea680da4967b1aa",
"evidenceFile": "release/evidence/conduit.json",
- "evidenceSha256": "a31d1f6c2aa845609593167a20463834676c0ad0a59bb94c3728d1f7722ea9d8",
- "engineFingerprint": "0b39d54299d3c50d0f002382e04d569591d56c10c1fca5623d331b374221d047",
+ "evidenceSha256": "2112b4941fcaf6a9c15717513ac2c28a72e801f097200d72eebe1ad2f08f16b0",
+ "engineFingerprint": "4625a9ccdcec3484a0251ad00253a719fb04a81c8ce552b1d77763f3deccef94",
"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": "267e250e8d2bdceb2fb461d05ad524d3aeb7a483e6227eedb04e92274f9e3804",
- "engineFingerprint": "0b39d54299d3c50d0f002382e04d569591d56c10c1fca5623d331b374221d047",
+ "evidenceSha256": "0c2c6441ab769a56a0e68200a08ae403f51002c144476882c40e91cdc6cef159",
+ "engineFingerprint": "4625a9ccdcec3484a0251ad00253a719fb04a81c8ce552b1d77763f3deccef94",
"status": "passed",
"environmentValid": true,
"severeRegressions": 0,
@@ -59,8 +59,8 @@
"repository": "local/Pocket-Ledger",
"pinnedCommit": "fab4847595ec9edff4442fd93d622d5f8ca7d519",
"evidenceFile": "release/evidence/ai-agent-cycle.json",
- "evidenceSha256": "af5beb190c0fae982b72c3bc0a1bed81b5cb64b07177b017ff9419ed095ec2e8",
- "engineFingerprint": "0b39d54299d3c50d0f002382e04d569591d56c10c1fca5623d331b374221d047",
+ "evidenceSha256": "730ef7c779c25fb39a494b36b0fa2f77b074e86f70b61fe57d10ab2e193254e2",
+ "engineFingerprint": "4625a9ccdcec3484a0251ad00253a719fb04a81c8ce552b1d77763f3deccef94",
"status": "passed",
"environmentValid": true,
"severeRegressions": 0,
From f04b8e4f9afc3d9ef4296fc3ac39f56b8e8463ef Mon Sep 17 00:00:00 2001
From: datzle123
Date: Sun, 26 Jul 2026 19:41:21 +0700
Subject: [PATCH 3/3] Document Phase K qualification
---
CHANGELOG.md | 3 +++
docs/ADVANCED.md | 2 +-
docs/CI.md | 2 +-
docs/COMPATIBILITY.md | 4 ++++
docs/CONTRACTS.md | 2 ++
docs/PERFORMANCE.md | 2 +-
docs/PRODUCT_STATUS.md | 20 +++++++++++---------
docs/REAL_WORLD_VALIDATION.md | 4 ++--
docs/ROADMAP.md | 18 ++++++++++++++++--
docs/VERIFICATION_MATRIX.md | 3 ++-
10 files changed, 43 insertions(+), 17 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index b8ef46f..d0692d0 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -6,12 +6,15 @@ All notable changes are documented here. RealDone follows semantic versioning wh
### Added
+- Pre-capture visual privacy for automatic scans and contract/role verification: known-sensitive inputs, `secretEnv` and auth-state contexts now suppress screenshot/video binaries while safe controls retain them, with additive value-free report metadata.
+- Fresh Phase K qualification at fingerprint `4625a9cc…` across TodoMVC, Actual Budget, Conduit SQLite/PostgreSQL 17/Supabase Data API and Pocket Ledger, including PostgreSQL CRUD cleanup, 6/6 visible Pocket Ledger actions, Level 7 roles and a new Codex MCP RD901 regression/repair cycle.
- Fail-closed per-trace retention for automatic scans and contract/MCP verification: bounded ZIP inspection now checks generated sensitive fields, contract `secretEnv`, opaque Playwright auth-state cookies/tokens and generic credential patterns before report linkage, with additive value-free suppression metadata for deleted unsafe or unscannable traces.
- Fresh fingerprint-bound Phase J qualification across TodoMVC, Actual Budget, Conduit SQLite/PostgreSQL 17/Supabase Data API and Pocket Ledger, including PostgreSQL CRUD cleanup, Level 7 roles and a new Codex MCP RD901 regression/repair cycle.
- 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.
- Hosted main run `30195945498` passed and signed all 15 normative gates across Linux, Windows and macOS for the Phase I fingerprint and installed-package path.
+- Hosted main run `30200299159` passed and signed all 15 normative gates across Linux, Windows and macOS for the Phase J fingerprint; both aggregate artifacts verified against merge `6d736d5`.
### Fixed
diff --git a/docs/ADVANCED.md b/docs/ADVANCED.md
index c887593..7d241c7 100644
--- a/docs/ADVANCED.md
+++ b/docs/ADVANCED.md
@@ -75,7 +75,7 @@ Capture full debugging artifacts explicitly when needed:
realdone verify flow.json --deep --trace --video
```
-Trace ZIPs and browser videos are linked from local HTML/JSON evidence. They can contain application content, so keep them under the ignored `.realdone/` tree and review them before sharing.
+Trace ZIPs and browser videos are linked from local HTML/JSON evidence. Retained traces pass bounded secret inspection; screenshot/video capture is suppressed for known-sensitive and authenticated contexts because binary inspection cannot prove rendered content safe. Other visual artifacts can still contain application content, so keep them under the ignored `.realdone/` tree and review them before sharing.
Attach read-only, value-free source snapshots to every executed mutation when source-of-truth change evidence is needed:
diff --git a/docs/CI.md b/docs/CI.md
index 6893c60..309fdd1 100644
--- a/docs/CI.md
+++ b/docs/CI.md
@@ -66,7 +66,7 @@ Provide database/provider credentials and optional CA material as masked workflo
The action accepts one `browser` per job (`chromium`, `firefox`, or `webkit`). Use a job matrix when every engine must gate a pull request. `database-configs`, `provider-configs`, `role-states`, and `plugins` are newline-separated; secret values remain in environment variables or Playwright auth-state files rather than action inputs. Set `install-browser: "false"` only when the selected Playwright browser is already installed.
-`deep`, `trace`, and `video` are separate boolean inputs. Deep verification increases browser-context count; traces and videos can be large and may contain private application content, so enable them selectively.
+`deep`, `trace`, and `video` are separate boolean inputs. Deep verification increases browser-context count; traces and videos can be large and may contain private application content, so enable them selectively. Known-sensitive and auth-state contexts suppress screenshot/video capture before binary creation and expose value-free metadata instead.
## Playwright export
diff --git a/docs/COMPATIBILITY.md b/docs/COMPATIBILITY.md
index 9326889..d0d9054 100644
--- a/docs/COMPATIBILITY.md
+++ b/docs/COMPATIBILITY.md
@@ -6,6 +6,8 @@ Unreleased main fingerprint `f3f65840…` preserved the same matrix and package
The subsequent Phase I status merge `42006c4` independently repeated the full matrix and signed 15/15 in hosted main run [`30196808460`](https://github.com/datzle123/RealDone/actions/runs/30196808460).
+Phase J fingerprint `0b39d542…` repeated the matrix in hosted main run [`30200299159`](https://github.com/datzle123/RealDone/actions/runs/30200299159). GitHub signed both aggregate artifacts for merge `6d736d5`, and `gh attestation verify` accepted their Linux/macOS/Windows provenance.
+
| Surface | Release gate |
| --- | --- |
| Node.js | 20 and 22 |
@@ -30,3 +32,5 @@ Codex and Claude Code integrations are command presets, not embedded SDKs. RealD
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.
Secret-safe trace retention adds optional `evidence.traceSuppression` on scan findings and optional `artifacts.traceSuppressions` on contract verification. Existing trace paths are unchanged when a ZIP passes inspection; rejected traces are absent by design. Consumers that ignore the new metadata continue to read schema `1.0`, while Windows, macOS and Linux use the same bounded `fflate` ZIP inspection path.
+
+Private visual retention adds optional `evidence.visualSuppressions` on scan findings and optional `artifacts.visualSuppressions` on contract verification. Each entry contains only `artifact` (`screenshot` or `video`) and a bounded `reason` (`sensitive-input` or `authenticated-context`). Existing screenshot/video paths remain unchanged for safe contexts, old reports remain readable, and consumers may ignore the additive fields under schema `1.0`.
diff --git a/docs/CONTRACTS.md b/docs/CONTRACTS.md
index 07f5e8e..cea5e7b 100644
--- a/docs/CONTRACTS.md
+++ b/docs/CONTRACTS.md
@@ -130,6 +130,8 @@ Password-like fields never store their value. The contract contains `secretEnv`,
REALDONE_PASSWORD="..." realdone verify .realdone/flows/login.json
```
+When a contract uses `secretEnv` or an auth-state file, RealDone does not start browser video capture for that context. The verification report records only a value-free visual suppression reason; unauthenticated contracts without sensitive inputs still retain video when `--video` is enabled.
+
## Verify
```bash
diff --git a/docs/PERFORMANCE.md b/docs/PERFORMANCE.md
index 2f2e879..8b6f243 100644
--- a/docs/PERFORMANCE.md
+++ b/docs/PERFORMANCE.md
@@ -4,7 +4,7 @@ Quick scan remains intentionally light: one Chromium worker, no provider/databas
`--deep` opens one additional browser context per executed mutation to confirm persistence scope. Keep it opt-in for important flows or scheduled audits rather than paying that cost in every quick scan.
-`--trace` records Playwright snapshots/screenshots and `--video` records the browser viewport. Both add I/O, storage, and post-processing work; use them for diagnosis or release evidence rather than routine scans. Every newly closed trace receives one bounded ZIP secret inspection before it can be linked; unsafe, invalid, oversized, or over-expanded traces are deleted fail-closed. `--trace-on-failure` then deletes safe passing traces, retaining portable ZIP evidence only for findings or failed contract verification.
+`--trace` records Playwright snapshots/screenshots and `--video` records the browser viewport. Both add I/O, storage, and post-processing work; use them for diagnosis or release evidence rather than routine scans. Every newly closed trace receives one bounded ZIP secret inspection before it can be linked; unsafe, invalid, oversized, or over-expanded traces are deleted fail-closed. Screenshot/video recording is not started for known-sensitive or authenticated contexts because binary inspection cannot prove rendered content safe. `--trace-on-failure` then deletes safe passing traces, retaining portable ZIP evidence only for findings or failed contract verification.
`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`.
diff --git a/docs/PRODUCT_STATUS.md b/docs/PRODUCT_STATUS.md
index 7c2c3b4..de5fe27 100644
--- a/docs/PRODUCT_STATUS.md
+++ b/docs/PRODUCT_STATUS.md
@@ -3,7 +3,7 @@
**Snapshot:** 2026-07-26
**Released full product:** **IMPLEMENTED in `v1.3.3`**
**Latest release qualification:** hosted run `30189340006` passed and signed all 15 gates for the versioned source commit and installed-package path.
-**Latest main qualification:** hosted run `30196808460` passed and signed all 15 gates for Phase I status merge `42006c4` and fingerprint `f3f65840…`.
+**Latest main qualification:** hosted run [`30200299159`](https://github.com/datzle123/RealDone/actions/runs/30200299159) passed and signed all 15 gates for Phase J merge `6d736d5` and fingerprint `0b39d542…`; `gh attestation verify` accepted both aggregate artifacts.
**Area coverage:** **22/22 `IMPLEMENTED`**, **0/22 `PARTIAL`**, **0/22 `PLANNED`**. Detector catalog: **58/58 production-classified and gated**.
This file reports current evidence against the normative [`PRODUCT_SPECIFICATION.md`](PRODUCT_SPECIFICATION.md). It does not reduce that specification. `IMPLEMENTED` requires executable evidence; `PARTIAL` means useful code exists but the full normative behavior or release gate does not.
@@ -12,7 +12,9 @@ Release `v1.3.3` additionally ran ten pinned MIT projects and detected 10/10 inj
Phase I hardening is complete on `main`: coverage-balanced quick-scan scheduling and additive selection telemetry are bound to fingerprint `f3f65840…`. Local type/unit/build (140 tests with 2 expected service-dependent skips), audit, full Chromium smoke, pack and installed-tarball smoke passed. Fresh repository-bound runs covered 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. Hosted run [`30195945498`](https://github.com/datzle123/RealDone/actions/runs/30195945498) passed 15/15 on Linux, macOS and Windows; `gh attestation verify` accepted the signed aggregate evidence and gate report. This main-branch qualification is not a new npm version by itself; `v1.3.3` remains the latest published release.
-Phase J is an unreleased hardening candidate: scan and contract/MCP traces are inspected immediately after capture, and unsafe or unscannable ZIPs are deleted before report linkage. Candidate fingerprint `0b39d542…` has fresh SHA-256-bound TodoMVC, Actual Budget, Conduit SQLite, Conduit PostgreSQL 17 + Supabase Data API, PostgreSQL CRUD cleanup, Pocket Ledger Level 7 and Codex MCP regression/repair evidence; those inputs merged with the six hosted candidate attestations to pass 15/15 locally, while the signed hosted aggregate rerun remains pending. The existing full-product status remains valid because this strengthens §12–13/§21/§25 without narrowing behavior; Phase J itself remains a release candidate until its branch and hosted gates pass.
+Phase J is complete on `main`: scan and contract/MCP traces are inspected immediately after capture, and unsafe or unscannable ZIPs are deleted before report linkage. Fingerprint `0b39d542…` has fresh SHA-256-bound TodoMVC, Actual Budget, Conduit SQLite, Conduit PostgreSQL 17 + Supabase Data API, PostgreSQL CRUD cleanup, Pocket Ledger Level 7 and Codex MCP regression/repair evidence. PR run `30199694271` passed 15/15 after one transient Windows runner startup retry; main run `30200299159` repeated 15/15 across Linux, macOS and Windows and signed the aggregate evidence for merge `6d736d5`.
+
+Phase K is the current unreleased hardening candidate at fingerprint `4625a9cc…`: automatic standalone/trace screenshots and browser videos are suppressed before capture whenever the action has a known sensitive field or the context uses auth state; contract trace screenshots/videos are suppressed for `secretEnv` or authenticated contexts. Safe unauthenticated controls still retain visual evidence, and reports use additive value-free `visualSuppressions` metadata. Fresh TodoMVC, Actual Budget, Conduit SQLite/PostgreSQL + Supabase and Pocket Ledger/Codex runs are bound to this fingerprint. Local check (142 pass, 2 service-dependent skips), audit, full Chromium smoke, pack and installed-tarball smoke passed; Phase K remains a candidate until its hosted signed 15/15 aggregate passes.
| Specification area | Status | Evidence currently in the repository | Remaining normative gap |
| --- | --- | --- | --- |
@@ -24,21 +26,21 @@ Phase J is an unreleased hardening candidate: scan and contract/MCP traces are i
| §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, 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; every retained browser/contract trace passes bounded ZIP inspection against generated sensitive fields, `secretEnv`, opaque auth-state cookies/tokens and generic credential patterns before linkage, while unsafe/unscannable traces are deleted with value-free suppression metadata; reproductions retain value-free provider requirements and replay requires fresh exact causal confirmation | New evidence adapters must preserve the implemented redaction, retention, linkage and replay 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; every retained browser/contract trace passes bounded ZIP inspection against generated sensitive fields, `secretEnv`, opaque auth-state cookies/tokens and generic credential patterns before linkage, while unsafe/unscannable traces are deleted; screenshots/videos are not created for known-sensitive or authenticated contexts and both policies emit only value-free suppression metadata; reproductions retain value-free provider requirements and replay requires fresh exact causal confirmation | New evidence adapters must preserve the implemented redaction, retention, 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 |
| §18 Detector system | IMPLEMENTED | all 58 catalogued RD001–RD1005 detectors have production classification plus unit, browser/contract, regression or environment broken/control evidence | New detectors require the same broken/control and observable-evidence policy |
| §19–20 Contracts and replay | IMPLEMENTED | versioned complex-step schemas, semantic source/target locators, assertions, cleanup declarations, fresh canaries/evidence and all five normative replay outcomes with `replay.json` | New step/expectation types must preserve schema compatibility and deterministic replay |
-| §21 Report | IMPLEMENTED | HTML/JSON, finding timelines, screenshots/trace/video and dedicated network/snapshot/console/WebSocket/upload/download/contract/reproduction artifacts; a removed unsafe trace is never linked and appears only as sanitized suppression metadata; application/environment/skipped/uncertain and expected/regression results remain distinct | Additional renderers may consume the implemented portable evidence model |
+| §21 Report | IMPLEMENTED | HTML/JSON, finding timelines, screenshots/trace/video and dedicated network/snapshot/console/WebSocket/upload/download/contract/reproduction artifacts; a removed unsafe trace is never linked and a visual artifact blocked before capture is never invented, with both cases represented only by sanitized suppression metadata; application/environment/skipped/uncertain and expected/regression results remain distinct | Additional renderers may consume the implemented portable evidence model |
| §22 Database adapters | IMPLEMENTED | zero-config SQLite plus PostgreSQL, Supabase, Firebase, MongoDB and Prisma/custom source connectors; read-only verification, schema/PK/soft-delete discovery, hash snapshots/diff, parameterization/mapping, TLS/remote policy, redaction and confirmed cleanup have integration, browser and external Conduit evidence | New adapters must preserve the implemented source contract and safety gates |
| §23 Provider adapters | IMPLEMENTED | maintained Stripe-test, Resend, SendGrid, Mailgun, S3, Supabase Storage and OAuth read-only adapters plus custom provider plugins; bounded requests, secret redaction and production guards pass integration/browser gates | New providers must preserve the implemented read-only, fail-closed contract |
| §24 Multi-role | IMPLEMENTED | isolated role storage states, UI visibility, Level 7 cross-role observation, API denial, direct route, cross-tenant read/write, revoked-role and invalidated-session probes | Application-specific role provisioning remains user configuration, not a missing verification capability |
-| §25 Safety | IMPLEMENTED | interactive scans require one explicit project-level action consent and non-interactive CLI/MCP execution fails closed without `--yes`/user-owned server authorization; host/destructive/external opt-ins, form/endpoint/provider classification, file/cross-origin/popup boundaries, live pre-execution escalation, redaction, cleanup, read-only adapters, production guards, immediate fail-closed trace retention and the aggregate artifact secret gate remain independent | New action/provider/artifact classes must preserve the implemented consent and least-authority boundaries |
+| §25 Safety | IMPLEMENTED | interactive scans require one explicit project-level action consent and non-interactive CLI/MCP execution fails closed without `--yes`/user-owned server authorization; host/destructive/external opt-ins, form/endpoint/provider classification, file/cross-origin/popup boundaries, live pre-execution escalation, redaction, cleanup, read-only adapters, production guards, immediate fail-closed trace retention, pre-capture screenshot/video suppression and the aggregate artifact secret gate remain independent | New action/provider/artifact classes must preserve the implemented consent and least-authority boundaries |
| §26 Benchmark | IMPLEMENTED | precision, recall, FPR, discovery, expectation coverage, verdict/detector accuracy, replay, truncation, environment validity and confirmed cleanup success are machine-readable and release-gated | Future metrics must remain additive and deterministic |
-| §27 Real-world cases | IMPLEMENTED | current main fingerprint `f3f65840…` has fresh repository-bound scans for TodoMVC, Actual Budget, Conduit/SQLite, Conduit/PostgreSQL 17 + Supabase Data API and Codex-generated Pocket Ledger; all nine normative capability classes have semantic validator-parsed evidence, including PostgreSQL CRUD cleanup, upload/export, Level 7 roles, multi-step and agent repair; signed hosted run `30195945498` passed Windows/macOS/Linux | Future engine fingerprints must repeat the hosted signed qualification |
-| §28–31 Engineering/release/performance/UX | IMPLEMENTED | published npm package with registry-smoked `npx realdone scan`; installed-tarball first-scan gates start, verify and clean up metadata-free static and npm projects; one-command managed scan with bounded first-use browser bootstrap; CI, license/audit/package gates, quick/full budgets, coverage-balanced selection, bounded workers, final post-build affected-flow selection, trace-on-failure, snapshot dedup, environment/artifact/schema/raw-case gates and GitHub artifact-attestation workflow; main run `30195945498` passed hosted 15/15 across Windows/macOS/Linux, Node 20/22, PostgreSQL 17, MongoDB 8 and package smoke | Future releases must preserve the same release gates |
-| §32 Full-product definition | IMPLEMENTED | all 22 product areas are `IMPLEMENTED`; current main fingerprint `f3f65840…` passed the complete matrix, installed-package smoke and all 15 hosted gates with verified signed GitHub provenance in run `30195945498`; released `v1.3.3` retains its independent run `30189340006` | Future scope additions must add production behavior and executable gates before retaining this status |
+| §27 Real-world cases | IMPLEMENTED | current main fingerprint `0b39d542…` has fresh repository-bound scans for TodoMVC, Actual Budget, Conduit/SQLite, Conduit/PostgreSQL 17 + Supabase Data API and Codex-generated Pocket Ledger; all nine normative capability classes have semantic validator-parsed evidence, including PostgreSQL CRUD cleanup, upload/export, Level 7 roles, multi-step and agent repair; signed hosted run `30200299159` passed Windows/macOS/Linux | Future engine fingerprints must repeat the hosted signed qualification |
+| §28–31 Engineering/release/performance/UX | IMPLEMENTED | published npm package with registry-smoked `npx realdone scan`; installed-tarball first-scan gates start, verify and clean up metadata-free static and npm projects; one-command managed scan with bounded first-use browser bootstrap; CI, license/audit/package gates, quick/full budgets, coverage-balanced selection, bounded workers, final post-build affected-flow selection, trace-on-failure, snapshot dedup, environment/artifact/schema/raw-case gates and GitHub artifact-attestation workflow; main run `30200299159` passed hosted 15/15 across Windows/macOS/Linux, Node 20/22, PostgreSQL 17, MongoDB 8 and package smoke | Future releases must preserve the same release gates |
+| §32 Full-product definition | IMPLEMENTED | all 22 product areas are `IMPLEMENTED`; current main fingerprint `0b39d542…` passed the complete matrix, installed-package smoke and all 15 hosted gates with verified signed GitHub provenance in run `30200299159`; released `v1.3.3` retains its independent run `30189340006` | Future scope additions must add production behavior and executable gates before retaining this status |
## Truthful release wording
-`v1.3.0` is the first release qualified against the complete specification. `v1.3.2` added hosted cross-platform installed-package evidence for universal first-run discovery. `v1.3.3` releases fingerprint `68d4a8cb…` with the refreshed real-project qualification and signed hosted run `30189340006`. Unreleased main fingerprint `f3f65840…` independently passed signed hosted run `30195945498`; that does not retroactively change the npm package. Earlier releases remain real tested increments, but do not retroactively carry later qualification. Future release notes must link this status page and identify the hosted signed run for their fingerprint and package path.
+`v1.3.0` is the first release qualified against the complete specification. `v1.3.2` added hosted cross-platform installed-package evidence for universal first-run discovery. `v1.3.3` releases fingerprint `68d4a8cb…` with the refreshed real-project qualification and signed hosted run `30189340006`. Unreleased main fingerprint `0b39d542…` independently passed signed hosted run `30200299159`; that does not retroactively change the npm package. Earlier releases remain real tested increments, but do not retroactively carry later qualification. Future release notes must link this status page and identify the hosted signed run for their fingerprint and package path.
diff --git a/docs/REAL_WORLD_VALIDATION.md b/docs/REAL_WORLD_VALIDATION.md
index 1aa2ad1..9646f6e 100644
--- a/docs/REAL_WORLD_VALIDATION.md
+++ b/docs/REAL_WORLD_VALIDATION.md
@@ -54,7 +54,7 @@ The current-engine rerun binds each compact evidence document to both the raw `s
| 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 5 member/public actions `VERIFIED`, including focus-revealed skip link, multipart upload and non-empty CSV export; admin-only Reset was verified separately at Level 7 | 0 |
-The current checked-in candidate evidence is bound to Phase J fingerprint `0b39d54299d3c50d0f002382e04d569591d56c10c1fca5623d331b374221d047`. Every primary scan was `VALID` and untruncated. Compact documents bind the fresh primary scans, PostgreSQL CRUD scans, cleanup ledger, Level 7 role verification and Codex cycle artifacts by SHA-256. PR run [`30198005122`](https://github.com/datzle123/RealDone/actions/runs/30198005122) passed every Linux/macOS/Windows browser/package job and correctly rejected the earlier Phase I fingerprint at gate 15; the five real cases were then rerun rather than relabelled. The refreshed inputs merged with all six hosted candidate attestations and passed 15/15 locally; Phase J remains a candidate until GitHub repeats and signs that aggregate. Released `v1.3.3` and its independent signed run [`30189340006`](https://github.com/datzle123/RealDone/actions/runs/30189340006) remain the historical published-package qualification.
+The current checked-in candidate evidence is bound to Phase K fingerprint `4625a9ccdcec3484a0251ad00253a719fb04a81c8ce552b1d77763f3deccef94`. Every primary scan was `VALID` and untruncated. Compact documents bind fresh TodoMVC `20260726T115450Z-9640`, Actual Budget `20260726T115602Z-0e1b`, Conduit SQLite `20260726T120053Z-d309`, Conduit PostgreSQL + Supabase `20260726T121026Z-1d20`, Pocket Ledger `20260726T115844Z-3380`, PostgreSQL CRUD, Level 7 roles and Codex MCP cycle artifacts by SHA-256. The Pocket role control retained safe traces with no binary visual entries while authenticated-context suppression kept videos at zero. Local source, audit, browser, pack and installed-tarball gates passed; Phase K remains a candidate until its hosted signed 15/15 aggregate passes. Main run [`30200299159`](https://github.com/datzle123/RealDone/actions/runs/30200299159) remains the signed Phase J qualification; released `v1.3.3` and run [`30189340006`](https://github.com/datzle123/RealDone/actions/runs/30189340006) remain the historical published-package qualification.
PostgreSQL qualification used the pinned upstream Conduit app with only a harness port mapping, an isolated native PostgreSQL 17.10 cluster, 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.
@@ -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 candidate inputs are in `release/external-cases.json` and `release/evidence/`; the Phase J aggregate is awaiting the refreshed hosted gate. Hosted run [`30195945498`](https://github.com/datzle123/RealDone/actions/runs/30195945498) remains the signed Phase I history, while run [`30189340006`](https://github.com/datzle123/RealDone/actions/runs/30189340006) independently passed and signed all 15 gates for released `v1.3.3`.
+Machine-readable Phase K candidate inputs are in `release/external-cases.json` and `release/evidence/`; they are not yet represented as signed main evidence. Hosted run [`30200299159`](https://github.com/datzle123/RealDone/actions/runs/30200299159) remains the signed Phase J history, while run [`30189340006`](https://github.com/datzle123/RealDone/actions/runs/30189340006) independently passed and signed all 15 gates for released `v1.3.3`.
### Actual Budget original application
diff --git a/docs/ROADMAP.md b/docs/ROADMAP.md
index 50561d3..b2e5146 100644
--- a/docs/ROADMAP.md
+++ b/docs/ROADMAP.md
@@ -152,7 +152,7 @@ Gate:
Phase I is complete for 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 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. Hosted main run [`30195945498`](https://github.com/datzle123/RealDone/actions/runs/30195945498) passed all 15 gates across Linux, macOS and Windows, Node 20/22, PostgreSQL 17, MongoDB 8 and installed-package smoke. GitHub signed the aggregate evidence and gate report, and `gh attestation verify` accepted both artifacts.
-## Phase J — secret-safe trace retention (release candidate)
+## Phase J — secret-safe trace retention (complete)
Contributes evidence to: §12–13, §21, §25, §29–30.
@@ -164,4 +164,18 @@ Gate:
- A real-browser sensitive-field broken case loses its trace, a non-sensitive trace control remains available, invalid/limit unit controls fail closed, and the final aggregate artifact secret scan remains green.
- Typecheck, unit, browser, audit, package, schema, cleanup and hosted cross-platform release gates pass without weakening RG14.
-Candidate fingerprint `0b39d542…` passed the local type/unit/build, audit, full Chromium and installed-tarball gates. Fresh pinned runs cover TodoMVC, Actual Budget, Conduit SQLite, Conduit PostgreSQL 17 + Supabase Data API, PostgreSQL create/update/delete cleanup, Pocket Ledger Level 7 and a new Codex MCP baseline → RD901 → repair cycle. Hosted run `30198005122` passed every cross-platform browser/package job and correctly rejected stale Phase I real-case evidence; after the rerun, the refreshed inputs plus its six platform attestations passed 15/15 locally. Phase J is not complete until GitHub repeats and signs the refreshed aggregate.
+Fingerprint `0b39d542…` passed the local type/unit/build, audit, full Chromium and installed-tarball gates. Fresh pinned runs cover TodoMVC, Actual Budget, Conduit SQLite, Conduit PostgreSQL 17 + Supabase Data API, PostgreSQL create/update/delete cleanup, Pocket Ledger Level 7 and a new Codex MCP baseline → RD901 → repair cycle. Hosted PR run `30199694271` passed all 15 gates after one transient Windows runner startup retry. Main run [`30200299159`](https://github.com/datzle123/RealDone/actions/runs/30200299159) repeated 15/15 across Linux, macOS and Windows for merge `6d736d5`; GitHub signed the aggregate evidence and gate report, and `gh attestation verify` accepted both artifacts.
+
+## Phase K — private visual retention (release candidate)
+
+Contributes evidence to: §12–13, §21, §25, §29–30.
+
+Gate:
+
+- Automatic actions with known sensitive fields never create standalone/trace screenshots or video files; auth-state scans suppress the same binary artifacts before capture.
+- Contract contexts with `secretEnv` or configured auth state never start trace screenshot or video recording, including role, matrix, baseline, CI and MCP entry points that share the verifier.
+- JSON/HTML reports expose only additive artifact/reason suppression metadata with no values, fingerprints, selectors or rejected paths.
+- Unauthenticated non-sensitive automatic and contract controls still retain screenshot/video evidence.
+- Typecheck, unit, real-browser, audit, package, schema, cleanup, fresh real-project and hosted 15/15 gates pass without weakening RG14.
+
+Candidate fingerprint `4625a9cc…` has fresh repository-bound TodoMVC, Actual Budget, Conduit SQLite, Conduit PostgreSQL 17 + Supabase Data API, PostgreSQL CRUD and Pocket Ledger runs. Pocket Ledger verified 6/6 visible actions, Level 7 roles, authenticated visual suppression and a real Codex MCP baseline → RD901 regression → repair cycle. Local check (142 pass, 2 expected service-dependent skips), audit, full Chromium smoke, pack and installed-tarball smoke passed. Phase K remains a candidate until the hosted cross-platform aggregate is signed.
diff --git a/docs/VERIFICATION_MATRIX.md b/docs/VERIFICATION_MATRIX.md
index c7de7d2..4609838 100644
--- a/docs/VERIFICATION_MATRIX.md
+++ b/docs/VERIFICATION_MATRIX.md
@@ -2,7 +2,7 @@
This matrix maps RealDone's public behavior to an executable release gate. A feature is not marked complete merely because an API or type exists; the gate must exercise its observable result or a fail-closed boundary.
-This is the executable matrix for the shipped product, not a product-status ledger. The normative scope and 15 full-product release gates live in [`PRODUCT_SPECIFICATION.md`](PRODUCT_SPECIFICATION.md); [`PRODUCT_STATUS.md`](PRODUCT_STATUS.md) is the only area-completeness ledger. Specification §32 is complete because every status row is `IMPLEMENTED`; current main fingerprint `f3f65840…` passed the full matrix with signed provenance in hosted run `30195945498`, not merely because an individual phase gate passed.
+This is the executable matrix for the shipped product, not a product-status ledger. The normative scope and 15 full-product release gates live in [`PRODUCT_SPECIFICATION.md`](PRODUCT_SPECIFICATION.md); [`PRODUCT_STATUS.md`](PRODUCT_STATUS.md) is the only area-completeness ledger. Specification §32 is complete because every status row is `IMPLEMENTED`; current main fingerprint `0b39d542…` passed the full matrix with signed provenance in hosted run `30200299159`, not merely because an individual phase gate passed.
| Capability | Runtime evidence | Automated gate |
| --- | --- | --- |
@@ -21,6 +21,7 @@ This is the executable matrix for the shipped product, not a product-status ledg
| Evidence reports | HTML, scan/summary/finding/environment JSON, screenshots, traces/videos, cleanup ledger, reproductions, and per-finding network/snapshot/console/WebSocket/upload/download/contract JSON | artifact existence and timeline checks in browser smoke |
| Trace and video | Portable Playwright trace ZIP and browser video linked from reports | opt-in CLI and contract smoke |
| Secret-safe trace retention | Every newly closed scan/contract trace is inspected before linkage; unsafe or unscannable ZIPs are deleted and only value-free suppression metadata remains | direct ZIP safe/secret/invalid controls plus real-browser automatic-scan and recorded-contract sensitive-field controls; aggregate RG14 scan must remain green |
+| Private visual retention | Screenshot/video capture is blocked before binary creation for known-sensitive inputs, `secretEnv` and authenticated contexts, while safe controls retain visual evidence | real-browser automatic sensitive/auth-state broken cases, recorded-contract `secretEnv` case, unauthenticated scan/contract screenshot-video controls, schema and aggregate RG14 gates |
| Replay and cleanup | Fresh execution distinguishes reproduced, changed, environment-changed, target-missing, and uncertain outcomes; provider-backed reproductions require fresh exact causal provider proof; cleanup is idempotent and benchmark-gated | five-outcome browser smoke, provider broken/control replay, benchmark replay, and cleanup smoke |
| Flow recording | Human-driven navigation/click/fill/select/check/keypress/upload/rich-text/drag interactions become a schema-valid contract plus masked rrweb evidence | complex recorder browser smoke and real Conduit login recording |
| Recorded verification | Semantic source/target steps and request/status/text/persistence/popup/download assertions run deterministically | complex contract browser smoke and generated Playwright execution |