diff --git a/CHANGELOG.md b/CHANGELOG.md index a37925e..cc756aa 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,7 @@ All notable changes are documented here. RealDone follows semantic versioning wh ### Added +- Fresh Phase L qualification at fingerprint `3663ff0c…` across TodoMVC, Actual Budget, Conduit SQLite/PostgreSQL 17/Supabase Data API and Pocket Ledger, including PostgreSQL CRUD cleanup, authenticated Level 7 visual suppression and a new Codex RD901 regression/repair cycle. - 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. @@ -19,6 +20,7 @@ All notable changes are documented here. RealDone follows semantic versioning wh ### Fixed +- MCP and CLI managed scans now use a dedicated configurable startup-health timeout (30 seconds by default), emit bounded process-state/PID/restart diagnostics, and exercise delayed startup plus dynamic-port cleanup instead of relying on a fixed CI port and a 10-second shared render budget. - Playwright traces containing known sensitive field values, generic credential/token material, invalid ZIP data, or bounded-inspection limit failures are removed immediately instead of surviving until the aggregate release artifact gate. - Report timelines and environment summaries now render arrows and separators as UTF-8 instead of mojibake. diff --git a/docs/ADVANCED.md b/docs/ADVANCED.md index 7d241c7..da4175e 100644 --- a/docs/ADVANCED.md +++ b/docs/ADVANCED.md @@ -40,6 +40,8 @@ realdone scan --project ../my-app --manage-runtime --runtime-mode production realdone scan --project ../my-app --manage-runtime --runtime-mode docker ``` +Managed startup waits up to 30 seconds by default but proceeds immediately when the health check passes. Use `--runtime-startup-timeout ` for a legitimately slower local/staging app; `--environment-timeout` remains the separate browser bootstrap/render budget. + Before action discovery, RealDone checks the main HTML document, same-origin scripts/stylesheets, content types, bootstrap errors, configured health endpoint, auth-state readability, and render readiness. It repeats the static-root/bootstrap check for discovered routes. A JavaScript or CSS URL receiving an HTML SPA fallback produces `ENVIRONMENT_INVALID` and RD1001/RD1002 instead of an application `BROKEN` finding. The report stores this evidence in `environment.json`; `--accept-environment-risk` is the explicit override when the operator has independently confirmed the harness is representative. Automatic discovery prepares hover-revealed and scroll/lazy content, executes native checkbox/select and context-menu actions, and records popup/download evidence. Same-origin iframe execution is explicit: diff --git a/docs/COMPATIBILITY.md b/docs/COMPATIBILITY.md index 30fd1e2..2d8eb6a 100644 --- a/docs/COMPATIBILITY.md +++ b/docs/COMPATIBILITY.md @@ -10,6 +10,8 @@ Phase J fingerprint `0b39d542…` repeated the matrix in hosted main run [`30200 Phase K fingerprint `4625a9cc…` repeated the matrix in hosted main run [`30203185815`](https://github.com/datzle123/RealDone/actions/runs/30203185815). All 15 gates passed after one Windows Node 22 managed-runtime startup retry, GitHub signed both aggregate artifacts for merge `ca9e9db`, and `gh attestation verify` accepted their provenance. +The Phase L candidate adds optional `ManagedScanRequest.runtimeStartupTimeoutMs`, CLI `--runtime-startup-timeout`, and MCP `scan.runtimeStartupTimeoutMs` controls. Existing API callers remain source-compatible because the request field is optional; CLI/MCP defaults change only the managed-runtime health wait and do not alter report schema or already-running URL scans. Cross-platform hosted qualification is pending. + | Surface | Release gate | | --- | --- | | Node.js | 20 and 22 | diff --git a/docs/MCP.md b/docs/MCP.md index d3e3fc8..4ef76b0 100644 --- a/docs/MCP.md +++ b/docs/MCP.md @@ -21,7 +21,7 @@ Coding agent -> RealDone MCP -> RealDone core MCP browser-action tools are disabled unless the user starts that project session with `--allow-project-actions` after confirming disposable local/staging data. This one-time session consent covers the possibility of opaque app handlers, but never enables classified destructive actions, classified external effects, production providers, or paths outside the configured project root. Replay discards any historical side-effect grants stored in a reproduction, and MCP exposes no way for an agent to re-enable them. The agent's message is operational output, not verification evidence. -When `scan` is called without a URL, MCP discovers, starts, health-checks, scans, and stops the configured project. With an explicit URL, the caller remains responsible for that runtime. +When `scan` is called without a URL, MCP discovers, starts, health-checks, scans, and stops the configured project. Managed startup waits up to 30 seconds by default and accepts a bounded `runtimeStartupTimeoutMs` override; it does not consume extra time after the health check passes. With an explicit URL, the caller remains responsible for that runtime. `scan` also accepts project-relative `sqlite`, `databaseConfigs`, `providerConfigs`, and `sourceSnapshotLimit` inputs. Database inputs attach read-only, value-free source snapshots and diffs. Provider configs may link an explicitly matched action/request to bounded read-only Level 6 confirmation. `replay` accepts the same project-relative `providerConfigs`; a provider-backed reproduction stays `REPLAY_UNCERTAIN` unless the fresh action causally confirms every recorded provider name/kind/resource/operation/state requirement. Neither path exposes source rows, provider references, or credentials to the agent, and project-root confinement applies to replay configs too. diff --git a/docs/PERFORMANCE.md b/docs/PERFORMANCE.md index 8b6f243..14c4b85 100644 --- a/docs/PERFORMANCE.md +++ b/docs/PERFORMANCE.md @@ -2,6 +2,8 @@ Quick scan remains intentionally light: one Chromium worker, no provider/database adapter, no extra role, and no trace or video unless explicitly requested. +Managed project startup has a separate 30-second health-check ceiling for CLI/MCP and returns as soon as the app is ready. This protects slower package-manager startup without spending 30 seconds on every scan or weakening the independent browser render, action, and global budgets. + `--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. 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. diff --git a/docs/PRODUCT_SPECIFICATION.md b/docs/PRODUCT_SPECIFICATION.md index a56aab1..5ac9af3 100644 --- a/docs/PRODUCT_SPECIFICATION.md +++ b/docs/PRODUCT_SPECIFICATION.md @@ -365,6 +365,8 @@ Runtime Manager chịu trách nhiệm: * hỗ trợ production build; * hỗ trợ Docker khi được cấu hình. +Managed runtime startup phải có health-check timeout hữu hạn, tách biệt với page-render/action timeout và có thể cấu hình từ CLI/MCP. Giá trị mặc định phải đủ cho package-manager startup trên Windows, macOS và Linux nhưng không được thêm độ trễ khi health check đã pass; timeout phải dừng process tree và trả diagnostics đã redaction gồm state, PID/restart count và log gần nhất. + --- # 7. Environment Health Gate diff --git a/docs/PRODUCT_STATUS.md b/docs/PRODUCT_STATUS.md index 2c6d14f..ed20118 100644 --- a/docs/PRODUCT_STATUS.md +++ b/docs/PRODUCT_STATUS.md @@ -16,6 +16,8 @@ Phase J is complete on `main`: scan and contract/MCP traces are inspected immedi Phase K is complete on `main` 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. PR run `30202575079` and main run `30203185815` passed 15/15 across Linux, macOS and Windows; the Windows Node 22 managed-runtime smoke needed one retry in each run, and the main aggregate was signed for merge `ca9e9db`. +Phase L is the current unreleased runtime-readiness candidate at fingerprint `3663ff0c…`: CLI/MCP managed startup now has a dedicated bounded timeout (30 seconds by default) instead of sharing the 10-second page-render budget, accepts an explicit override, and reports redacted process state, PID and restart counts on failure. The MCP browser smoke uses a dynamic port and an intentionally delayed app: a 1-second broken case times out and cleans up, while the default control starts, scans and stops successfully. Local check (144 pass, 2 service-dependent skips), audit, full Chromium smoke, pack and installed-tarball smoke passed. Fresh SHA-256-bound TodoMVC, Actual Budget, Conduit SQLite/PostgreSQL + Supabase, PostgreSQL CRUD cleanup, Pocket Ledger Level 7 and Codex RD901 regression/repair evidence all validate with a clean artifact secret scan. Hosted cross-platform and signed aggregate qualification remain pending. + | Specification area | Status | Evidence currently in the repository | Remaining normative gap | | --- | --- | --- | --- | | §4 Quick scan | IMPLEMENTED | `scan`, browser execution, report, reload checks, fixture smoke, and deterministic coverage-balanced selection with explicit eligible/selected/omitted/route telemetry | Broader action and environment coverage is tracked below | @@ -23,7 +25,7 @@ Phase K is complete on `main` at fingerprint `4625a9cc…`: automatic standalone | §4 Record and verify | IMPLEMENTED | bounded semantic recording and deterministic verification for navigation, click/fill/select/check/keypress/upload/rich-text/drag, popup/download outcomes, masked rrweb, env-only secrets/files and non-ordinal locator fallbacks | Widget-specific adapters may extend recording without changing the implemented contract | | §4 Baseline/regression | IMPLEMENTED | baseline, affected-flow selection, first-class `EXPECTED_CHANGE`/`REGRESSION` outcomes, RD901–RD905 classification, CI diff and Playwright export | Additional domain-specific diff adapters may extend the implemented contract | | §4 Coding-agent verification | IMPLEMENTED | shared-core MCP tools retain workspace/action confinement, sealed contracts/baselines, final post-build attribution and fail-closed affected selection; authenticated Codex Desktop `0.143.0` produced a green baseline, selected 1 real RD901 regression, repaired the app without changing the contract, then selected 1 flow with 0 regressions; SHA-256-bound cycle artifacts are parsed by the release validator | New agent clients must preserve the implemented evidence boundary; agent prose is never verification evidence | -| §6 Project Discovery/Runtime Manager | IMPLEMENTED | `init` profiles single-package/monorepo projects; npm fallback without lock metadata; project-local Python virtual environments; zero-config static HTML plus conventional Node, Django/FastAPI/Flask, Laravel/PHP, Rails, ASP.NET Core, Spring Boot, Deno, Go and Rust managed runtimes; occupied-port rejection, development/production/Docker health-checks, logs, bounded restarts and process cleanup; installed-tarball scans start, verify and stop metadata-free static and npm projects in hosted run `29977292441` | Custom runtimes use an explicit HTTP URL; new ecosystem hints must add cross-platform broken/control and package evidence | +| §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, dedicated configurable startup timeout, redacted process diagnostics, bounded restarts and process cleanup; installed-tarball scans start, verify and stop metadata-free static and npm projects in hosted run `29977292441` | Phase L must repeat full cross-platform and package evidence before its candidate becomes complete; custom runtimes may still use an explicit HTTP URL | | §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; 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 | diff --git a/docs/REAL_WORLD_VALIDATION.md b/docs/REAL_WORLD_VALIDATION.md index 63b89ad..dc5e8bc 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 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. Main run [`30203185815`](https://github.com/datzle123/RealDone/actions/runs/30203185815) passed and signed 15/15 for merge `ca9e9db`; `gh attestation verify` accepted both aggregate artifacts. Released `v1.3.3` and 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 L fingerprint `3663ff0c5e291f6a54b335d5d33fb9035e4e4495785dd15d2f1923e97b4e9d74`. Every primary scan was `VALID` and untruncated. Compact documents bind fresh TodoMVC `20260726T134853Z-47e8`, Actual Budget `20260726T135032Z-94f7`, Conduit SQLite `20260726T140120Z-f665`, Conduit PostgreSQL + Supabase `20260726T140645Z-88ef`, Pocket Ledger `20260726T135405Z-d811`, PostgreSQL CRUD, Level 7 roles and Codex regression/repair artifacts by SHA-256. The Pocket role control retained safe snapshot-only traces, suppressed authenticated screenshots/video before capture and kept videos at zero. Local source, audit, browser, pack, installed-tarball, evidence-validation and artifact-secret gates passed; Phase L remains a candidate until its hosted signed 15/15 aggregate passes. Main run [`30203185815`](https://github.com/datzle123/RealDone/actions/runs/30203185815) remains the signed Phase K qualification, while 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 Phase K inputs are in `release/external-cases.json` and `release/evidence/`; hosted main run [`30203185815`](https://github.com/datzle123/RealDone/actions/runs/30203185815) validated and signed their aggregate. 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`. +Machine-readable Phase L candidate inputs are in `release/external-cases.json` and `release/evidence/`; their local semantic, SHA-256 and secret-scan gates pass, but they are not yet represented by signed main evidence. Hosted run [`30203185815`](https://github.com/datzle123/RealDone/actions/runs/30203185815) remains the signed Phase K 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 c72eb67..0cf7a43 100644 --- a/docs/ROADMAP.md +++ b/docs/ROADMAP.md @@ -179,3 +179,17 @@ Gate: - Typecheck, unit, real-browser, audit, package, schema, cleanup, fresh real-project and hosted 15/15 gates pass without weakening RG14. 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. PR run `30202575079` and main run [`30203185815`](https://github.com/datzle123/RealDone/actions/runs/30203185815) passed 15/15 across Linux, macOS and Windows; Windows Node 22 required one managed-runtime startup retry in both runs. GitHub signed the main aggregate for merge `ca9e9db`, and `gh attestation verify` accepted both artifacts. + +## Phase L — deterministic managed-runtime readiness (release candidate) + +Contributes evidence to: §6–7, §29, §31–32. + +Gate: + +- CLI and MCP expose a dedicated bounded managed-startup timeout, defaulting to 30 seconds independently of page-render/action timeouts and returning immediately once health passes. +- Failure diagnostics contain only redacted runtime state, PID/restart counters and bounded recent logs; timed-out process trees are stopped before the command returns. +- A real MCP no-URL broken case with a 1-second budget times out and leaves no listener; the same intentionally delayed app passes with the default budget, scans in Chromium and is cleaned up. +- Smoke ports are allocated dynamically instead of assuming a shared fixed port, and runtime unit controls cover invalid timeout configuration plus delayed broken/correct startup. +- Typecheck, unit, browser, audit, package, fresh fingerprint-bound real-project and hosted 15/15 gates pass across Linux, macOS and Windows without retrying a product defect. + +Candidate fingerprint `3663ff0c…` adds the CLI/MCP option, managed-scan boundary, process diagnostics, dynamic-port smoke and delayed broken/control coverage. Local check (144 pass, 2 expected service-dependent skips), audit, full Chromium smoke, pack and installed-tarball smoke passed. Fresh TodoMVC `20260726T134853Z-47e8`, Actual Budget `20260726T135032Z-94f7`, Conduit SQLite `20260726T140120Z-f665`, Conduit PostgreSQL + Supabase `20260726T140645Z-88ef`, Pocket Ledger `20260726T135405Z-d811`, PostgreSQL CRUD/cleanup, Level 7 roles and Codex regression/repair artifacts are SHA-256-bound and validate with no artifact secret findings. Hosted 15/15 and signed main evidence remain pending. diff --git a/docs/VERIFICATION_MATRIX.md b/docs/VERIFICATION_MATRIX.md index 76d5ce1..f4bb3e6 100644 --- a/docs/VERIFICATION_MATRIX.md +++ b/docs/VERIFICATION_MATRIX.md @@ -9,6 +9,7 @@ This is the executable matrix for the shipped product, not a product-status ledg | Safe browser scan | Discovers routes/actions, fills fields, executes permitted actions | fixture browser smoke | | Budget-balanced action coverage | A finite quick-scan budget represents multiple routes, kinds, intents and activation paths; runnable actions precede known denials and reports expose exact omissions | deterministic selector broken/control tests plus a three-route, three-action real-browser budget smoke | | Project discovery and managed runtime | Detects package/runtime hints, starts, health-checks, restarts, logs and stops a target process | project/runtime unit tests plus managed-app CLI smoke | +| Managed-runtime readiness | CLI/MCP use a dedicated bounded startup-health budget, stop timed-out process trees, return redacted state/PID/restart diagnostics and do not wait after health passes | invalid/bounded/delayed runtime unit controls plus dynamic-port MCP no-URL timeout/cleanup broken case and delayed healthy browser control | | Environment validity | HTML, critical assets/content types, bootstrap/render, health endpoint and auth state produce separate `VALID`/`ENVIRONMENT_INVALID`/`BLOCKED` evidence | broken/static-root, delayed-bootstrap and healthy browser controls plus TodoMVC defect copy | | External-app behavior | Enter-submit, history-dependent targets, live control state, hash routes and auth contracts run without project-specific selectors; published counters must match committed raw scan artifacts | fixtures plus pinned TodoMVC, Actual Budget and Conduit workflows with SHA-256/source validation | | Core verdicts and RD001–RD305 | Broken, no-effect, duplicate, stuck loading/navigation/disabled/keyboard/discovery boundaries, memory/session/restart persistence failures, fake/partial/wrong CRUD and false/silent/redirect success | detector unit tests plus broken/correct browser fixtures | diff --git a/release/evidence/actual-budget.json b/release/evidence/actual-budget.json index 74200ec..4d48bf1 100644 --- a/release/evidence/actual-budget.json +++ b/release/evidence/actual-budget.json @@ -1,7 +1,7 @@ { "schemaVersion": "1.0", - "generatedAt": "2026-07-26T12:05:00.000Z", - "engineFingerprint": "4625a9ccdcec3484a0251ad00253a719fb04a81c8ce552b1d77763f3deccef94", + "generatedAt": "2026-07-26T14:00:00.000Z", + "engineFingerprint": "3663ff0c5e291f6a54b335d5d33fb9035e4e4495785dd15d2f1923e97b4e9d74", "case": { "name": "Actual Budget", "repository": "actualbudget/actual", @@ -12,9 +12,9 @@ "capabilities": [] }, "scan": { - "scanId": "20260726T115602Z-0e1b", + "scanId": "20260726T135032Z-94f7", "sourceArtifact": "release/evidence/raw/actual-budget.scan.json", - "sourceSha256": "23754a1894853339d8c6242d892443f30d681780af96714bfa7f055a3fd38756", + "sourceSha256": "0338aad8bdeb2654b1050fb5467eaa131c0361e54813db437d02a125376072ff", "environmentStatus": "VALID", "truncated": false, "pagesDiscovered": 2, diff --git a/release/evidence/ai-agent-cycle.json b/release/evidence/ai-agent-cycle.json index 8f21e28..a97bd3e 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-26T12:05:00.000Z", - "engineFingerprint": "4625a9ccdcec3484a0251ad00253a719fb04a81c8ce552b1d77763f3deccef94", + "generatedAt": "2026-07-26T14:00:00.000Z", + "engineFingerprint": "3663ff0c5e291f6a54b335d5d33fb9035e4e4495785dd15d2f1923e97b4e9d74", "case": { "name": "Pocket Ledger (Codex-generated)", "repository": "local/Pocket-Ledger", @@ -18,9 +18,9 @@ ] }, "scan": { - "scanId": "20260726T115844Z-3380", + "scanId": "20260726T135405Z-d811", "sourceArtifact": "release/evidence/raw/ai-agent-cycle.scan.json", - "sourceSha256": "93cbad6820fbdb1aa51f7e57b53571444cd99b18c5df5a26adbec8e0bfef3c4b", + "sourceSha256": "7509843ce59b318faa0868171be2b35681596564d7fa508d2d6422e2dd6226e3", "environmentStatus": "VALID", "truncated": false, "pagesDiscovered": 1, @@ -43,37 +43,37 @@ "id": "codex-session", "kind": "agent-session", "sourceArtifact": "release/evidence/raw/ai-agent-cycle/codex-session.json", - "sourceSha256": "d5bf652b764f63f587a4b6fd905be88158b0230fee318b4a69c082b2d02fe2dc" + "sourceSha256": "20f3770f49423ea89e4d3d03a66ad655f404213387d346cd06efa8d9b4228a96" }, { "id": "agent-baseline", "kind": "agent-baseline", "sourceArtifact": "release/evidence/raw/ai-agent-cycle/baseline.json", - "sourceSha256": "63e23a5387605ebc007dab47863c42bca43531ddabb5a12ed447f92503f2fe1a" + "sourceSha256": "f4e02ce4d3e2a539ce7d5d87d13f5756a182a3e0065f86b681131ae4855a669a" }, { "id": "agent-regression", "kind": "agent-regression", "sourceArtifact": "release/evidence/raw/ai-agent-cycle/regression.json", - "sourceSha256": "675fea7730b2c7c2e89d9a018d1dfba808c346f89b33f378f9d92f83a2b135bc" + "sourceSha256": "f1b9793d6af2d05812218bb925882bed68aee46761ef0eef662a585b4dcfa2e1" }, { "id": "failed-verification", "kind": "contract-verification", "sourceArtifact": "release/evidence/raw/ai-agent-cycle/failed-verification.json", - "sourceSha256": "fe2482dbbd8a03e0a37c316da8b271371ca7755b06863dfe80c56f12f8d0a873" + "sourceSha256": "5c1c63099bf73829889a3a0c83b2f9eba59fd557a11c92a519b20d892e45bdd8" }, { "id": "agent-repair", "kind": "agent-repair", "sourceArtifact": "release/evidence/raw/ai-agent-cycle/repair.json", - "sourceSha256": "8355893a729294c104295fb290e40574124ad00d73288b5384c07edb83d1d53e" + "sourceSha256": "d56f04f4965be5df9c5f4007998ce016d18dca1bbe0f9fc0a0b77c0e11608743" }, { "id": "role-verification", "kind": "contract-verification", "sourceArtifact": "release/evidence/raw/ai-agent-cycle/role-verification.json", - "sourceSha256": "de73eea99cd7101f00c61ac6d9ab2d815ee7c50337fccb961b9810f23d527c70" + "sourceSha256": "4d3aac0e9ee5debd999a5cbda8042426ff236809b662f731a2f4a73ec792ac9b" } ], "qualification": { diff --git a/release/evidence/conduit-sources.json b/release/evidence/conduit-sources.json index 23750ea..bd5ec9d 100644 --- a/release/evidence/conduit-sources.json +++ b/release/evidence/conduit-sources.json @@ -1,7 +1,7 @@ { "schemaVersion": "1.0", - "generatedAt": "2026-07-26T12:12:00.000Z", - "engineFingerprint": "4625a9ccdcec3484a0251ad00253a719fb04a81c8ce552b1d77763f3deccef94", + "generatedAt": "2026-07-26T14:14:00.000Z", + "engineFingerprint": "3663ff0c5e291f6a54b335d5d33fb9035e4e4495785dd15d2f1923e97b4e9d74", "case": { "name": "Conduit RealWorld (PostgreSQL + Supabase Data API)", "repository": "TonyMckes/conduit-realworld-example-app", @@ -17,9 +17,9 @@ ] }, "scan": { - "scanId": "20260726T121026Z-1d20", + "scanId": "20260726T140645Z-88ef", "sourceArtifact": "release/evidence/raw/conduit-sources.scan.json", - "sourceSha256": "eb0bbc70b72b7aaa875068a1fc93433d4a59403ced61fd4b1361990156899b88", + "sourceSha256": "b2b4e47bbc4a5d1476becd3d9cd78e9796791b9f967dce74c757349d90eb5f85", "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": "227ccbb2e84fdf35b24bad1a4d364a2d8c1fdae0be6213e0b2c0acf465fb4463" + "sourceSha256": "7c9bdcccc8525b7de22d738e87b9b9e71059189ea79997d0b59397edc15f0d04" }, { "id": "postgres-update", "kind": "external-scan", "sourceArtifact": "release/evidence/raw/conduit-postgres-update.scan.json", - "sourceSha256": "441658ec3b70fcad0d64b6f09e3a95bd86a5e5b777f54239d9dde7acc98819b5" + "sourceSha256": "52bb6e3256abe41888edbb1f2ee8227000e59d05bbf9dcd274ac2541fbac366e" }, { "id": "postgres-delete", "kind": "external-scan", "sourceArtifact": "release/evidence/raw/conduit-postgres-delete.scan.json", - "sourceSha256": "3f8a54e4aa89345be312dfcb4c15bd6a0b74849c2d037f51f716ec4e855afee2" + "sourceSha256": "28267871506509bd1882a2b202f1de5fcef84ce6aa9e78564d9e43cf62450507" }, { "id": "postgres-cleanup", "kind": "test-result", "sourceArtifact": "release/evidence/raw/conduit-postgres-cleanup.json", - "sourceSha256": "b39f20684a595d056e676d900ecd74eb18acf7a6437d7cf9a098da4dc74e8848" + "sourceSha256": "040e6eec0008282851b81d08875512accce9211567f9d8347c6c5d4b373bf224" } ], "assertions": [ @@ -74,7 +74,7 @@ "id": "capability:backend-crud", "passed": true, "expected": "create/update/delete plus cleanup", - "observed": "PostgreSQL row hashes added=1, changed=1, removed=1; cleanup 2/2", + "observed": "PostgreSQL row hashes added=1, changed=1, removed=1; cleanup removed 5 rows across 4 qualification resources", "evidenceArtifacts": [ "postgres-create", "postgres-update", diff --git a/release/evidence/conduit.json b/release/evidence/conduit.json index f9279b3..377607d 100644 --- a/release/evidence/conduit.json +++ b/release/evidence/conduit.json @@ -1,7 +1,7 @@ { "schemaVersion": "1.0", - "generatedAt": "2026-07-26T12:12:00.000Z", - "engineFingerprint": "4625a9ccdcec3484a0251ad00253a719fb04a81c8ce552b1d77763f3deccef94", + "generatedAt": "2026-07-26T14:14:00.000Z", + "engineFingerprint": "3663ff0c5e291f6a54b335d5d33fb9035e4e4495785dd15d2f1923e97b4e9d74", "case": { "name": "Conduit RealWorld (SQLite)", "repository": "TonyMckes/conduit-realworld-example-app", @@ -14,9 +14,9 @@ ] }, "scan": { - "scanId": "20260726T120053Z-d309", + "scanId": "20260726T140120Z-f665", "sourceArtifact": "release/evidence/raw/conduit.scan.json", - "sourceSha256": "7dbf33f52d2de65faa6a211df57bff714c638dcce1d91538b7f030d650aa59e6", + "sourceSha256": "b473995eab21583ca8149565e0b787d691f49c249505e290a88fa525dd33aee6", "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 6d59747..955806e 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": "20260726T115602Z-0e1b", - "targetUrl": "http://127.0.0.1:37441/", - "startedAt": "2026-07-26T11:56:02.689Z", - "finishedAt": "2026-07-26T11:57:02.119Z", + "scanId": "20260726T135032Z-94f7", + "targetUrl": "http://127.0.0.1:37451/", + "startedAt": "2026-07-26T13:50:32.442Z", + "finishedAt": "2026-07-26T13:51:30.254Z", "options": { "maxPages": 10, "maxActions": 50, @@ -41,25 +41,25 @@ }, "pages": [ { - "url": "http://127.0.0.1:37441/", + "url": "http://127.0.0.1:37451/", "title": "Actual", "actions": [ { - "id": "f0c54c95b0e8", - "pageUrl": "http://127.0.0.1:37441/", + "id": "e10e57f0505e", + "pageUrl": "http://127.0.0.1:37451/", "label": "Start budgeting", "activation": "click", "kind": "local", "intent": "interact", "risk": "safe", "fingerprint": { - "selector": "#react-aria9334734490-_r_0_", + "selector": "#react-aria6506301084-_r_0_", "tag": "button", "ordinal": 0, "role": "button", "accessibleName": "Start budgeting", "text": "Start budgeting", - "id": "react-aria9334734490-_r_0_", + "id": "react-aria6506301084-_r_0_", "type": "button", "candidates": [ { @@ -79,7 +79,7 @@ { "strategy": "id", "weight": 80, - "selector": "#react-aria9334734490-_r_0_" + "selector": "#react-aria6506301084-_r_0_" }, { "strategy": "text", @@ -90,28 +90,28 @@ { "strategy": "css", "weight": 35, - "selector": "#react-aria9334734490-_r_0_" + "selector": "#react-aria6506301084-_r_0_" } ] }, "fields": [] }, { - "id": "8250e0da22f4", - "pageUrl": "http://127.0.0.1:37441/", + "id": "a98615e01455", + "pageUrl": "http://127.0.0.1:37451/", "label": "Try the demo", "activation": "click", "kind": "local", "intent": "interact", "risk": "safe", "fingerprint": { - "selector": "#react-aria9334734490-_r_2_", + "selector": "#react-aria6506301084-_r_2_", "tag": "button", "ordinal": 1, "role": "button", "accessibleName": "Try the demo", "text": "Try the demo", - "id": "react-aria9334734490-_r_2_", + "id": "react-aria6506301084-_r_2_", "type": "button", "candidates": [ { @@ -131,7 +131,7 @@ { "strategy": "id", "weight": 80, - "selector": "#react-aria9334734490-_r_2_" + "selector": "#react-aria6506301084-_r_2_" }, { "strategy": "text", @@ -142,28 +142,28 @@ { "strategy": "css", "weight": 35, - "selector": "#react-aria9334734490-_r_2_" + "selector": "#react-aria6506301084-_r_2_" } ] }, "fields": [] }, { - "id": "1d55050e5c4d", - "pageUrl": "http://127.0.0.1:37441/", + "id": "574bbd3b7d99", + "pageUrl": "http://127.0.0.1:37451/", "label": "Connect to a sync server", "activation": "click", "kind": "local", "intent": "interact", "risk": "safe", "fingerprint": { - "selector": "#react-aria9334734490-_r_4_", + "selector": "#react-aria6506301084-_r_4_", "tag": "button", "ordinal": 2, "role": "button", "accessibleName": "Connect to a sync server", "text": "Connect to a sync server", - "id": "react-aria9334734490-_r_4_", + "id": "react-aria6506301084-_r_4_", "type": "button", "candidates": [ { @@ -183,7 +183,7 @@ { "strategy": "id", "weight": 80, - "selector": "#react-aria9334734490-_r_4_" + "selector": "#react-aria6506301084-_r_4_" }, { "strategy": "text", @@ -194,28 +194,28 @@ { "strategy": "css", "weight": 35, - "selector": "#react-aria9334734490-_r_4_" + "selector": "#react-aria6506301084-_r_4_" } ] }, "fields": [] }, { - "id": "2a88b0cb903d", - "pageUrl": "http://127.0.0.1:37441/", + "id": "c50615ba48ee", + "pageUrl": "http://127.0.0.1:37451/", "label": "Import my budget", "activation": "click", "kind": "local", "intent": "interact", "risk": "safe", "fingerprint": { - "selector": "#react-aria9334734490-_r_6_", + "selector": "#react-aria6506301084-_r_6_", "tag": "button", "ordinal": 3, "role": "button", "accessibleName": "Import my budget", "text": "Import my budget", - "id": "react-aria9334734490-_r_6_", + "id": "react-aria6506301084-_r_6_", "type": "button", "candidates": [ { @@ -235,7 +235,7 @@ { "strategy": "id", "weight": 80, - "selector": "#react-aria9334734490-_r_6_" + "selector": "#react-aria6506301084-_r_6_" }, { "strategy": "text", @@ -246,15 +246,15 @@ { "strategy": "css", "weight": 35, - "selector": "#react-aria9334734490-_r_6_" + "selector": "#react-aria6506301084-_r_6_" } ] }, "fields": [] }, { - "id": "458802e154e4", - "pageUrl": "http://127.0.0.1:37441/", + "id": "b29e08bd9425", + "pageUrl": "http://127.0.0.1:37451/", "label": "guided tour", "activation": "click", "kind": "navigation", @@ -305,8 +305,8 @@ "fields": [] }, { - "id": "394564881ceb", - "pageUrl": "http://127.0.0.1:37441/", + "id": "f8ee1d36ab99", + "pageUrl": "http://127.0.0.1:37451/", "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:37441/config-server", + "href": "http://127.0.0.1:37451/config-server", "candidates": [ { "strategy": "role", @@ -338,7 +338,7 @@ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37441/config-server" + "value": "http://127.0.0.1:37451/config-server" }, { "strategy": "text", @@ -358,25 +358,25 @@ ] }, { - "url": "http://127.0.0.1:37441/config-server", + "url": "http://127.0.0.1:37451/config-server", "title": "Actual", "actions": [ { - "id": "320261cf1079", - "pageUrl": "http://127.0.0.1:37441/config-server", + "id": "fffad240a2f8", + "pageUrl": "http://127.0.0.1:37451/config-server", "label": "Back", "activation": "click", "kind": "navigation", "intent": "navigate", "risk": "safe", "fingerprint": { - "selector": "#react-aria6563487283-_r_0_", + "selector": "#react-aria8871071898-_r_0_", "tag": "button", "ordinal": 0, "role": "button", "accessibleName": "Back", "text": "Back", - "id": "react-aria6563487283-_r_0_", + "id": "react-aria8871071898-_r_0_", "type": "button", "candidates": [ { @@ -396,7 +396,7 @@ { "strategy": "id", "weight": 80, - "selector": "#react-aria6563487283-_r_0_" + "selector": "#react-aria8871071898-_r_0_" }, { "strategy": "text", @@ -407,15 +407,15 @@ { "strategy": "css", "weight": 35, - "selector": "#react-aria6563487283-_r_0_" + "selector": "#react-aria8871071898-_r_0_" } ] }, "fields": [] }, { - "id": "0c2f149c5ab1", - "pageUrl": "http://127.0.0.1:37441/config-server", + "id": "a77a4a048f93", + "pageUrl": "http://127.0.0.1:37451/config-server", "label": "learn how to set one up", "activation": "click", "kind": "navigation", @@ -466,21 +466,21 @@ "fields": [] }, { - "id": "83a872f40803", - "pageUrl": "http://127.0.0.1:37441/config-server", + "id": "add38cce56ec", + "pageUrl": "http://127.0.0.1:37451/config-server", "label": "Connect", "activation": "click", "kind": "external", "intent": "external", "risk": "external", "fingerprint": { - "selector": "#react-aria6563487283-_r_2_", + "selector": "#react-aria8871071898-_r_2_", "tag": "button", "ordinal": 2, "role": "button", "accessibleName": "Connect", "text": "Connect", - "id": "react-aria6563487283-_r_2_", + "id": "react-aria8871071898-_r_2_", "type": "button", "candidates": [ { @@ -500,7 +500,7 @@ { "strategy": "id", "weight": 80, - "selector": "#react-aria6563487283-_r_2_" + "selector": "#react-aria8871071898-_r_2_" }, { "strategy": "text", @@ -511,7 +511,7 @@ { "strategy": "css", "weight": 35, - "selector": "#react-aria6563487283-_r_2_" + "selector": "#react-aria8871071898-_r_2_" } ] }, @@ -527,21 +527,21 @@ ] }, { - "id": "962eef26f4be", - "pageUrl": "http://127.0.0.1:37441/config-server", + "id": "635b2db2b3ad", + "pageUrl": "http://127.0.0.1:37451/config-server", "label": "Use the current domain", "activation": "click", "kind": "local", "intent": "interact", "risk": "safe", "fingerprint": { - "selector": "#react-aria6563487283-_r_4_", + "selector": "#react-aria8871071898-_r_4_", "tag": "button", "ordinal": 3, "role": "button", "accessibleName": "Use the current domain", "text": "Use the current domain", - "id": "react-aria6563487283-_r_4_", + "id": "react-aria8871071898-_r_4_", "type": "button", "candidates": [ { @@ -561,7 +561,7 @@ { "strategy": "id", "weight": 80, - "selector": "#react-aria6563487283-_r_4_" + "selector": "#react-aria8871071898-_r_4_" }, { "strategy": "text", @@ -572,7 +572,7 @@ { "strategy": "css", "weight": 35, - "selector": "#react-aria6563487283-_r_4_" + "selector": "#react-aria8871071898-_r_4_" } ] }, @@ -585,21 +585,21 @@ { "id": "RD-001", "action": { - "id": "f0c54c95b0e8", - "pageUrl": "http://127.0.0.1:37441/", + "id": "e10e57f0505e", + "pageUrl": "http://127.0.0.1:37451/", "label": "Start budgeting", "activation": "click", "kind": "local", "intent": "interact", "risk": "safe", "fingerprint": { - "selector": "#react-aria9334734490-_r_0_", + "selector": "#react-aria6506301084-_r_0_", "tag": "button", "ordinal": 0, "role": "button", "accessibleName": "Start budgeting", "text": "Start budgeting", - "id": "react-aria9334734490-_r_0_", + "id": "react-aria6506301084-_r_0_", "type": "button", "candidates": [ { @@ -619,7 +619,7 @@ { "strategy": "id", "weight": 80, - "selector": "#react-aria9334734490-_r_0_" + "selector": "#react-aria6506301084-_r_0_" }, { "strategy": "text", @@ -630,26 +630,26 @@ { "strategy": "css", "weight": 35, - "selector": "#react-aria9334734490-_r_0_" + "selector": "#react-aria6506301084-_r_0_" } ] }, "fields": [] }, "evidence": { - "startedAt": "2026-07-26T11:56:09.425Z", - "durationMs": 6725, - "canary": "RD_TEST_FB0E71", + "startedAt": "2026-07-26T13:50:39.108Z", + "durationMs": 6631, + "canary": "RD_TEST_4C2A7B", "network": [ { "id": "net-1", "method": "GET", - "url": "http://127.0.0.1:37441/static/js/indexeddb-main-thread-worker-e59fee74.B9D89_PE.chunk.js", + "url": "http://127.0.0.1:37451/static/js/indexeddb-main-thread-worker-e59fee74.B9D89_PE.chunk.js", "resourceType": "script", - "startedAt": 5545, + "startedAt": 5455, "status": 200, "ok": true, - "finishedAt": 5551, + "finishedAt": 5460, "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": 5923 + "startedAt": 5804 }, { "id": "net-3", "method": "GET", - "url": "http://127.0.0.1:37441/static/js/wide.BkKPUPVE.chunk.js", + "url": "http://127.0.0.1:37451/static/js/wide.BkKPUPVE.chunk.js", "resourceType": "script", - "startedAt": 5956, + "startedAt": 5840, "status": 200, "ok": true, - "finishedAt": 5967, + "finishedAt": 5849, "contentType": "text/javascript", "resourceTypeHint": "wide.BkKPUPVE.chunk.js" }, { "id": "net-4", "method": "GET", - "url": "http://127.0.0.1:37441/static/js/AppliedFilters.Dx7PP3C8.chunk.js", + "url": "http://127.0.0.1:37451/static/js/AppliedFilters.Dx7PP3C8.chunk.js", "resourceType": "script", - "startedAt": 5957, + "startedAt": 5841, "status": 200, "ok": true, - "finishedAt": 5966, + "finishedAt": 5848, "contentType": "text/javascript", "resourceTypeHint": "AppliedFilters.Dx7PP3C8.chunk.js" }, { "id": "net-5", "method": "GET", - "url": "http://127.0.0.1:37441/static/js/useTransactionBatchActions.CG8pn3qO.chunk.js", + "url": "http://127.0.0.1:37451/static/js/useTransactionBatchActions.CG8pn3qO.chunk.js", "resourceType": "script", - "startedAt": 5957, + "startedAt": 5841, "status": 200, "ok": true, - "finishedAt": 5966, + "finishedAt": 5848, "contentType": "text/javascript", "resourceTypeHint": "useTransactionBatchActions.CG8pn3qO.chunk.js" }, { "id": "net-6", "method": "GET", - "url": "http://127.0.0.1:37441/static/js/PayeeRuleCountLabel.nEXX1VI1.chunk.js", + "url": "http://127.0.0.1:37451/static/js/PayeeRuleCountLabel.nEXX1VI1.chunk.js", "resourceType": "script", - "startedAt": 5957, + "startedAt": 5842, "status": 200, "ok": true, - "finishedAt": 5966, + "finishedAt": 5848, "contentType": "text/javascript", "resourceTypeHint": "PayeeRuleCountLabel.nEXX1VI1.chunk.js" } @@ -725,7 +725,7 @@ "weight": 92, "matchCount": 1, "visibleCount": 1, - "elapsedMs": 9 + "elapsedMs": 8 } ], "chosenStrategy": "role", @@ -733,8 +733,8 @@ "retryCount": 0 }, "before": { - "at": 5473, - "url": "http://127.0.0.1:37441/", + "at": 5393, + "url": "http://127.0.0.1:37451/", "title": "Actual", "domHash": "0e5db8d3d3693839", "canaryPresent": false, @@ -808,8 +808,8 @@ } }, "beforeAction": { - "at": 5497, - "url": "http://127.0.0.1:37441/", + "at": 5415, + "url": "http://127.0.0.1:37451/", "title": "Actual", "domHash": "0e5db8d3d3693839", "canaryPresent": false, @@ -884,8 +884,8 @@ }, "networkSettled": true, "after": { - "at": 6719, - "url": "http://127.0.0.1:37441/accounts", + "at": 6626, + "url": "http://127.0.0.1:37451/accounts", "title": "Actual", "domHash": "823d03cf2b04dc62", "canaryPresent": false, @@ -1077,7 +1077,7 @@ ] }, { - "name": "documents-Actual-My-Finances-f72112d-db.sqlite", + "name": "documents-Actual-My-Finances-5fd00c2-db.sqlite", "version": 2, "stores": [ { @@ -1089,7 +1089,7 @@ ] } }, - "trace": "traces/f0c54c95b0e8.zip", + "trace": "traces/e10e57f0505e.zip", "snapshotIndex": "snapshots/RD-001.index.json" }, "verdict": "VERIFIED", @@ -1100,21 +1100,21 @@ { "id": "RD-002", "action": { - "id": "8250e0da22f4", - "pageUrl": "http://127.0.0.1:37441/", + "id": "a98615e01455", + "pageUrl": "http://127.0.0.1:37451/", "label": "Try the demo", "activation": "click", "kind": "local", "intent": "interact", "risk": "safe", "fingerprint": { - "selector": "#react-aria9334734490-_r_2_", + "selector": "#react-aria6506301084-_r_2_", "tag": "button", "ordinal": 1, "role": "button", "accessibleName": "Try the demo", "text": "Try the demo", - "id": "react-aria9334734490-_r_2_", + "id": "react-aria6506301084-_r_2_", "type": "button", "candidates": [ { @@ -1134,7 +1134,7 @@ { "strategy": "id", "weight": 80, - "selector": "#react-aria9334734490-_r_2_" + "selector": "#react-aria6506301084-_r_2_" }, { "strategy": "text", @@ -1145,26 +1145,26 @@ { "strategy": "css", "weight": 35, - "selector": "#react-aria9334734490-_r_2_" + "selector": "#react-aria6506301084-_r_2_" } ] }, "fields": [] }, "evidence": { - "startedAt": "2026-07-26T11:56:16.818Z", - "durationMs": 7911, - "canary": "RD_TEST_42810A", + "startedAt": "2026-07-26T13:50:46.409Z", + "durationMs": 7953, + "canary": "RD_TEST_E0D729", "network": [ { "id": "net-1", "method": "GET", - "url": "http://127.0.0.1:37441/static/js/indexeddb-main-thread-worker-e59fee74.B9D89_PE.chunk.js", + "url": "http://127.0.0.1:37451/static/js/indexeddb-main-thread-worker-e59fee74.B9D89_PE.chunk.js", "resourceType": "script", - "startedAt": 6702, + "startedAt": 6619, "status": 200, "ok": true, - "finishedAt": 6707, + "finishedAt": 6623, "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": 7803 + "startedAt": 7622 }, { "id": "net-3", "method": "GET", - "url": "http://127.0.0.1:37441/static/js/wide.BkKPUPVE.chunk.js", + "url": "http://127.0.0.1:37451/static/js/wide.BkKPUPVE.chunk.js", "resourceType": "script", - "startedAt": 7853, + "startedAt": 7682, "status": 200, "ok": true, - "finishedAt": 7868, + "finishedAt": 7700, "contentType": "text/javascript", "resourceTypeHint": "wide.BkKPUPVE.chunk.js" }, { "id": "net-4", "method": "GET", - "url": "http://127.0.0.1:37441/static/js/AppliedFilters.Dx7PP3C8.chunk.js", + "url": "http://127.0.0.1:37451/static/js/AppliedFilters.Dx7PP3C8.chunk.js", "resourceType": "script", - "startedAt": 7854, + "startedAt": 7683, "status": 200, "ok": true, - "finishedAt": 7867, + "finishedAt": 7696, "contentType": "text/javascript", "resourceTypeHint": "AppliedFilters.Dx7PP3C8.chunk.js" }, { "id": "net-5", "method": "GET", - "url": "http://127.0.0.1:37441/static/js/useTransactionBatchActions.CG8pn3qO.chunk.js", + "url": "http://127.0.0.1:37451/static/js/useTransactionBatchActions.CG8pn3qO.chunk.js", "resourceType": "script", - "startedAt": 7854, + "startedAt": 7684, "status": 200, "ok": true, - "finishedAt": 7866, + "finishedAt": 7696, "contentType": "text/javascript", "resourceTypeHint": "useTransactionBatchActions.CG8pn3qO.chunk.js" }, { "id": "net-6", "method": "GET", - "url": "http://127.0.0.1:37441/static/js/PayeeRuleCountLabel.nEXX1VI1.chunk.js", + "url": "http://127.0.0.1:37451/static/js/PayeeRuleCountLabel.nEXX1VI1.chunk.js", "resourceType": "script", - "startedAt": 7855, + "startedAt": 7684, "status": 200, "ok": true, - "finishedAt": 7866, + "finishedAt": 7695, "contentType": "text/javascript", "resourceTypeHint": "PayeeRuleCountLabel.nEXX1VI1.chunk.js" } @@ -1248,8 +1248,83 @@ "retryCount": 0 }, "before": { - "at": 6645, - "url": "http://127.0.0.1:37441/", + "at": 6559, + "url": "http://127.0.0.1:37451/", + "title": "Actual", + "domHash": "0e5db8d3d3693839", + "canaryPresent": false, + "bodyCanaryPresent": false, + "temporaryBlobUrls": 0, + "auth": { + "artifacts": 0, + "expiredArtifacts": 0, + "privateContent": false, + "adminContent": false, + "accessDenied": false + }, + "semanticDom": { + "textHash": "4b3185be4bea59de", + "visualHash": "6e67777d8a1650c1", + "text": "Welcome to Actual Your finances - made simple Actual is a super fast, privacy-focused app for managing your finances. It is 100% free and open source: everything stays on your device, no data is collected, and there is nothing to sign up for. Start budgeting Try the demo Connect to a sync server Coming from another budgeting app? Import my budget New to budgeting? Take the guided tour to learn how Actual works. Using this device only Set up sync App: v26.7.0 | Server: N/A", + "controls": [ + { + "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": true + }, + { + "tag": "button", + "type": "button", + "valueHash": "e3b0c44298fc1c14", + "disabled": false, + "visible": true + } + ] + }, + "busyControls": 0, + "disabledControls": 0, + "storage": { + "local": [], + "session": [], + "cookieNames": [], + "cookies": [], + "indexedDb": [ + { + "name": "actual", + "version": 9, + "stores": [ + { + "name": "asyncStorage", + "count": 2 + }, + { + "name": "files", + "count": 0 + } + ] + } + ] + } + }, + "beforeAction": { + "at": 6576, + "url": "http://127.0.0.1:37451/", "title": "Actual", "domHash": "0e5db8d3d3693839", "canaryPresent": false, @@ -1294,54 +1369,615 @@ "valueHash": "e3b0c44298fc1c14", "disabled": false, "visible": true - } - ] - }, - "busyControls": 0, - "disabledControls": 0, - "storage": { - "local": [], - "session": [], - "cookieNames": [], - "cookies": [], - "indexedDb": [ + } + ] + }, + "busyControls": 0, + "disabledControls": 0, + "storage": { + "local": [], + "session": [], + "cookieNames": [], + "cookies": [], + "indexedDb": [ + { + "name": "actual", + "version": 9, + "stores": [ + { + "name": "asyncStorage", + "count": 2 + }, + { + "name": "files", + "count": 0 + } + ] + } + ] + } + }, + "networkSettled": true, + "after": { + "at": 7941, + "url": "http://127.0.0.1:37451/budget", + "title": "Actual", + "domHash": "04d12d766a014c69", + "canaryPresent": false, + "bodyCanaryPresent": false, + "temporaryBlobUrls": 0, + "auth": { + "artifacts": 0, + "expiredArtifacts": 0, + "privateContent": false, + "adminContent": false, + "accessDenied": false + }, + "semanticDom": { + "textHash": "0b339b513f028ce0", + "visualHash": "77f5f2b5f34a2ca5", + "text": "Test Budget Budget Reports Schedules More All accounts 50,199.14 On budget 2,717.31 Bank of America 570.56 Ally Savings 1,723.63 Capital One Checking 378.62 HSBC 44.50 Off budget 47,481.83 Vanguard 401k 3,932.24 Mortgage -294,039.80 House Asset 333,600.00 Roth IRA 3,989.39 Add account No server Help Feb 2026 Mar Apr May Jun Jul Aug Sep Oct Nov Dec June 6,611.26 -0.00 -3,030.00 -3,581.26 Available funds Overspent in May Budgeted For next month To Budget: 0.00 July 5,963.66 -932.21 -3,030.00 -2,001.45 Available funds Overspent in Jun Budgeted For next month To Budget: 0.00 August 2,001.45 -546.97 -0.00 -0.00 Available funds Overspent in Jul Budgeted For next month To Budget: 1,454.48 Category Budgeted 3,030.00 Spent -3,060.10 Balance 715.86 Usual Expenses 1,505.00 -1,535.10 715.86 Food 400.00 -265.97 312.13 Restaurants 300.00 -248.89 264.26 Entertainment 100.00 -177.49 -77.49 Clothing 30.00 -263.00 -233.00 General 500.00 -168.27 686.44 Gift 75.00 -272.22 -197.22 Medical 100.00 -139.26 -39.26 Savings 0.00 0.00 0.00 Bills 1,525.00 -1,525.00 0.00 Cell 75.00 -75.00 0.00 Internet 60.00 -60.00 0.00 Mortgage 1,200.00 -1,200.00 0.00 Water 90.00 -90.00 0.00 Power 100.00 -100.00 0.00 Add group Received Income 2,382.40 Starting Balances 0.00 Misc 0.00 Income 2,382.40", + "controls": [ + { + "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": 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": 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": true + }, + { + "tag": "button", + "type": "button", + "valueHash": "e3b0c44298fc1c14", + "disabled": false, + "visible": true + }, + { + "tag": "button", + "type": "button", + "valueHash": "e3b0c44298fc1c14", + "disabled": false, + "visible": false + }, + { + "tag": "button", + "type": "button", + "valueHash": "e3b0c44298fc1c14", + "disabled": false, + "visible": false + }, + { + "tag": "button", + "type": "button", + "valueHash": "e3b0c44298fc1c14", + "disabled": false, + "visible": true + }, + { + "tag": "button", + "type": "button", + "valueHash": "e3b0c44298fc1c14", + "disabled": false, + "visible": false + }, + { + "tag": "button", + "type": "button", + "valueHash": "e3b0c44298fc1c14", + "disabled": false, + "visible": false + }, + { + "tag": "button", + "type": "button", + "valueHash": "e3b0c44298fc1c14", + "disabled": false, + "visible": true + }, + { + "tag": "button", + "type": "button", + "valueHash": "e3b0c44298fc1c14", + "disabled": false, + "visible": false + }, + { + "tag": "button", + "type": "button", + "valueHash": "e3b0c44298fc1c14", + "disabled": false, + "visible": false + }, + { + "tag": "button", + "type": "button", + "valueHash": "e3b0c44298fc1c14", + "disabled": false, + "visible": true + }, + { + "tag": "button", + "type": "button", + "valueHash": "e3b0c44298fc1c14", + "disabled": false, + "visible": false + }, + { + "tag": "button", + "type": "button", + "valueHash": "e3b0c44298fc1c14", + "disabled": false, + "visible": true + }, + { + "tag": "button", + "type": "button", + "valueHash": "e3b0c44298fc1c14", + "disabled": false, + "visible": false + }, + { + "tag": "button", + "type": "button", + "valueHash": "e3b0c44298fc1c14", + "disabled": false, + "visible": false + }, + { + "tag": "button", + "type": "button", + "valueHash": "e3b0c44298fc1c14", + "disabled": false, + "visible": false + }, + { + "tag": "button", + "type": "button", + "valueHash": "e3b0c44298fc1c14", + "disabled": false, + "visible": false + }, + { + "tag": "button", + "type": "button", + "valueHash": "e3b0c44298fc1c14", + "disabled": false, + "visible": false + }, + { + "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": true + }, + { + "tag": "button", + "type": "button", + "valueHash": "e3b0c44298fc1c14", + "disabled": false, + "visible": false + }, + { + "tag": "button", + "type": "button", + "valueHash": "e3b0c44298fc1c14", + "disabled": false, + "visible": false + }, + { + "tag": "button", + "type": "button", + "valueHash": "e3b0c44298fc1c14", + "disabled": false, + "visible": false + }, + { + "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": "button", + "type": "button", + "valueHash": "e3b0c44298fc1c14", + "disabled": false, + "visible": false + }, + { + "tag": "button", + "type": "button", + "valueHash": "e3b0c44298fc1c14", + "disabled": false, + "visible": false + }, + { + "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": "button", + "type": "button", + "valueHash": "e3b0c44298fc1c14", + "disabled": false, + "visible": false + }, + { + "tag": "button", + "type": "button", + "valueHash": "e3b0c44298fc1c14", + "disabled": false, + "visible": false + }, + { + "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": "button", + "type": "button", + "valueHash": "e3b0c44298fc1c14", + "disabled": false, + "visible": false + }, + { + "tag": "button", + "type": "button", + "valueHash": "e3b0c44298fc1c14", + "disabled": false, + "visible": false + }, + { + "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": "button", + "type": "button", + "valueHash": "e3b0c44298fc1c14", + "disabled": false, + "visible": false + }, + { + "tag": "button", + "type": "button", + "valueHash": "e3b0c44298fc1c14", + "disabled": false, + "visible": false + }, + { + "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": "button", + "type": "button", + "valueHash": "e3b0c44298fc1c14", + "disabled": false, + "visible": false + }, + { + "tag": "button", + "type": "button", + "valueHash": "e3b0c44298fc1c14", + "disabled": false, + "visible": false + }, + { + "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": "button", + "type": "button", + "valueHash": "e3b0c44298fc1c14", + "disabled": false, + "visible": false + }, + { + "tag": "button", + "type": "button", + "valueHash": "e3b0c44298fc1c14", + "disabled": false, + "visible": false + }, + { + "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": "button", + "type": "button", + "valueHash": "e3b0c44298fc1c14", + "disabled": false, + "visible": false + }, + { + "tag": "button", + "type": "button", + "valueHash": "e3b0c44298fc1c14", + "disabled": false, + "visible": false + }, + { + "tag": "button", + "type": "button", + "valueHash": "e3b0c44298fc1c14", + "disabled": false, + "visible": false + }, + { + "tag": "button", + "type": "button", + "valueHash": "e3b0c44298fc1c14", + "disabled": false, + "visible": false + }, + { + "tag": "button", + "type": "button", + "valueHash": "e3b0c44298fc1c14", + "disabled": false, + "visible": false + }, + { + "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": "button", + "type": "button", + "valueHash": "e3b0c44298fc1c14", + "disabled": false, + "visible": false + }, + { + "tag": "button", + "type": "button", + "valueHash": "e3b0c44298fc1c14", + "disabled": false, + "visible": false + }, + { + "tag": "button", + "type": "button", + "valueHash": "e3b0c44298fc1c14", + "disabled": false, + "visible": true + }, + { + "tag": "button", + "type": "button", + "valueHash": "e3b0c44298fc1c14", + "disabled": false, + "visible": true + }, { - "name": "actual", - "version": 9, - "stores": [ - { - "name": "asyncStorage", - "count": 2 - }, - { - "name": "files", - "count": 0 - } - ] - } - ] - } - }, - "beforeAction": { - "at": 6665, - "url": "http://127.0.0.1:37441/", - "title": "Actual", - "domHash": "0e5db8d3d3693839", - "canaryPresent": false, - "bodyCanaryPresent": false, - "temporaryBlobUrls": 0, - "auth": { - "artifacts": 0, - "expiredArtifacts": 0, - "privateContent": false, - "adminContent": false, - "accessDenied": false - }, - "semanticDom": { - "textHash": "4b3185be4bea59de", - "visualHash": "6e67777d8a1650c1", - "text": "Welcome to Actual Your finances - made simple Actual is a super fast, privacy-focused app for managing your finances. It is 100% free and open source: everything stays on your device, no data is collected, and there is nothing to sign up for. Start budgeting Try the demo Connect to a sync server Coming from another budgeting app? Import my budget New to budgeting? Take the guided tour to learn how Actual works. Using this device only Set up sync App: v26.7.0 | Server: N/A", - "controls": [ + "tag": "button", + "type": "button", + "valueHash": "e3b0c44298fc1c14", + "disabled": false, + "visible": false + }, + { + "tag": "button", + "type": "button", + "valueHash": "e3b0c44298fc1c14", + "disabled": false, + "visible": false + }, + { + "tag": "button", + "type": "button", + "valueHash": "e3b0c44298fc1c14", + "disabled": false, + "visible": false + }, { "tag": "button", "type": "button", @@ -1356,6 +1992,27 @@ "disabled": false, "visible": true }, + { + "tag": "button", + "type": "button", + "valueHash": "e3b0c44298fc1c14", + "disabled": false, + "visible": false + }, + { + "tag": "button", + "type": "button", + "valueHash": "e3b0c44298fc1c14", + "disabled": false, + "visible": false + }, + { + "tag": "button", + "type": "button", + "valueHash": "e3b0c44298fc1c14", + "disabled": false, + "visible": false + }, { "tag": "button", "type": "button", @@ -1369,61 +2026,27 @@ "valueHash": "e3b0c44298fc1c14", "disabled": false, "visible": true - } - ] - }, - "busyControls": 0, - "disabledControls": 0, - "storage": { - "local": [], - "session": [], - "cookieNames": [], - "cookies": [], - "indexedDb": [ + }, { - "name": "actual", - "version": 9, - "stores": [ - { - "name": "asyncStorage", - "count": 2 - }, - { - "name": "files", - "count": 0 - } - ] - } - ] - } - }, - "networkSettled": true, - "after": { - "at": 7901, - "url": "http://127.0.0.1:37441/budget", - "title": "Actual", - "domHash": "71aad7ec8aafea27", - "canaryPresent": false, - "bodyCanaryPresent": false, - "temporaryBlobUrls": 0, - "auth": { - "artifacts": 0, - "expiredArtifacts": 0, - "privateContent": false, - "adminContent": false, - "accessDenied": false - }, - "semanticDom": { - "textHash": "e8bf802bf1ea852c", - "visualHash": "6bed3bc5283d15f3", - "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", + "type": "button", + "valueHash": "e3b0c44298fc1c14", + "disabled": false, + "visible": false + }, { "tag": "button", "type": "button", "valueHash": "e3b0c44298fc1c14", "disabled": false, - "visible": true + "visible": false + }, + { + "tag": "button", + "type": "button", + "valueHash": "e3b0c44298fc1c14", + "disabled": false, + "visible": false }, { "tag": "button", @@ -1446,6 +2069,41 @@ "disabled": false, "visible": true }, + { + "tag": "button", + "type": "button", + "valueHash": "e3b0c44298fc1c14", + "disabled": false, + "visible": false + }, + { + "tag": "button", + "type": "button", + "valueHash": "e3b0c44298fc1c14", + "disabled": false, + "visible": false + }, + { + "tag": "button", + "type": "button", + "valueHash": "e3b0c44298fc1c14", + "disabled": false, + "visible": false + }, + { + "tag": "button", + "type": "button", + "valueHash": "e3b0c44298fc1c14", + "disabled": false, + "visible": false + }, + { + "tag": "button", + "type": "button", + "valueHash": "e3b0c44298fc1c14", + "disabled": false, + "visible": false + }, { "tag": "button", "type": "button", @@ -1453,6 +2111,20 @@ "disabled": false, "visible": true }, + { + "tag": "button", + "type": "button", + "valueHash": "e3b0c44298fc1c14", + "disabled": false, + "visible": false + }, + { + "tag": "button", + "type": "button", + "valueHash": "e3b0c44298fc1c14", + "disabled": false, + "visible": false + }, { "tag": "button", "type": "button", @@ -1460,6 +2132,20 @@ "disabled": false, "visible": true }, + { + "tag": "button", + "type": "button", + "valueHash": "e3b0c44298fc1c14", + "disabled": false, + "visible": false + }, + { + "tag": "button", + "type": "button", + "valueHash": "e3b0c44298fc1c14", + "disabled": false, + "visible": false + }, { "tag": "button", "type": "button", @@ -1497,14 +2183,14 @@ "stores": [ { "name": "data", - "count": 244 + "count": 238 } ] } ] } }, - "trace": "traces/8250e0da22f4.zip", + "trace": "traces/a98615e01455.zip", "snapshotIndex": "snapshots/RD-002.index.json" }, "verdict": "VERIFIED", @@ -1515,21 +2201,21 @@ { "id": "RD-003", "action": { - "id": "1d55050e5c4d", - "pageUrl": "http://127.0.0.1:37441/", + "id": "574bbd3b7d99", + "pageUrl": "http://127.0.0.1:37451/", "label": "Connect to a sync server", "activation": "click", "kind": "local", "intent": "interact", "risk": "safe", "fingerprint": { - "selector": "#react-aria9334734490-_r_4_", + "selector": "#react-aria6506301084-_r_4_", "tag": "button", "ordinal": 2, "role": "button", "accessibleName": "Connect to a sync server", "text": "Connect to a sync server", - "id": "react-aria9334734490-_r_4_", + "id": "react-aria6506301084-_r_4_", "type": "button", "candidates": [ { @@ -1549,7 +2235,7 @@ { "strategy": "id", "weight": 80, - "selector": "#react-aria9334734490-_r_4_" + "selector": "#react-aria6506301084-_r_4_" }, { "strategy": "text", @@ -1560,16 +2246,16 @@ { "strategy": "css", "weight": 35, - "selector": "#react-aria9334734490-_r_4_" + "selector": "#react-aria6506301084-_r_4_" } ] }, "fields": [] }, "evidence": { - "startedAt": "2026-07-26T11:56:25.392Z", - "durationMs": 6760, - "canary": "RD_TEST_489FCB", + "startedAt": "2026-07-26T13:50:55.036Z", + "durationMs": 6602, + "canary": "RD_TEST_03E585", "network": [], "console": [], "pageErrors": [], @@ -1587,7 +2273,7 @@ "weight": 92, "matchCount": 1, "visibleCount": 1, - "elapsedMs": 8 + "elapsedMs": 6 } ], "chosenStrategy": "role", @@ -1595,8 +2281,8 @@ "retryCount": 0 }, "before": { - "at": 5528, - "url": "http://127.0.0.1:37441/", + "at": 5372, + "url": "http://127.0.0.1:37451/", "title": "Actual", "domHash": "0e5db8d3d3693839", "canaryPresent": false, @@ -1670,8 +2356,8 @@ } }, "beforeAction": { - "at": 5553, - "url": "http://127.0.0.1:37441/", + "at": 5390, + "url": "http://127.0.0.1:37451/", "title": "Actual", "domHash": "0e5db8d3d3693839", "canaryPresent": false, @@ -1746,8 +2432,8 @@ }, "networkSettled": true, "after": { - "at": 6756, - "url": "http://127.0.0.1:37441/config-server", + "at": 6598, + "url": "http://127.0.0.1:37451/config-server", "title": "Actual", "domHash": "97f712565aa26638", "canaryPresent": false, @@ -1821,7 +2507,7 @@ ] } }, - "trace": "traces/1d55050e5c4d.zip", + "trace": "traces/574bbd3b7d99.zip", "snapshotIndex": "snapshots/RD-003.index.json" }, "verdict": "VERIFIED", @@ -1832,21 +2518,21 @@ { "id": "RD-004", "action": { - "id": "2a88b0cb903d", - "pageUrl": "http://127.0.0.1:37441/", + "id": "c50615ba48ee", + "pageUrl": "http://127.0.0.1:37451/", "label": "Import my budget", "activation": "click", "kind": "local", "intent": "interact", "risk": "safe", "fingerprint": { - "selector": "#react-aria9334734490-_r_6_", + "selector": "#react-aria6506301084-_r_6_", "tag": "button", "ordinal": 3, "role": "button", "accessibleName": "Import my budget", "text": "Import my budget", - "id": "react-aria9334734490-_r_6_", + "id": "react-aria6506301084-_r_6_", "type": "button", "candidates": [ { @@ -1866,7 +2552,7 @@ { "strategy": "id", "weight": 80, - "selector": "#react-aria9334734490-_r_6_" + "selector": "#react-aria6506301084-_r_6_" }, { "strategy": "text", @@ -1877,16 +2563,16 @@ { "strategy": "css", "weight": 35, - "selector": "#react-aria9334734490-_r_6_" + "selector": "#react-aria6506301084-_r_6_" } ] }, "fields": [] }, "evidence": { - "startedAt": "2026-07-26T11:56:32.735Z", - "durationMs": 6753, - "canary": "RD_TEST_AEA1F2", + "startedAt": "2026-07-26T13:51:02.209Z", + "durationMs": 6639, + "canary": "RD_TEST_9F53E0", "network": [], "console": [], "pageErrors": [], @@ -1904,7 +2590,7 @@ "weight": 92, "matchCount": 1, "visibleCount": 1, - "elapsedMs": 7 + "elapsedMs": 6 } ], "chosenStrategy": "role", @@ -1912,8 +2598,8 @@ "retryCount": 0 }, "before": { - "at": 5507, - "url": "http://127.0.0.1:37441/", + "at": 5399, + "url": "http://127.0.0.1:37451/", "title": "Actual", "domHash": "0e5db8d3d3693839", "canaryPresent": false, @@ -1987,8 +2673,8 @@ } }, "beforeAction": { - "at": 5528, - "url": "http://127.0.0.1:37441/", + "at": 5417, + "url": "http://127.0.0.1:37451/", "title": "Actual", "domHash": "0e5db8d3d3693839", "canaryPresent": false, @@ -2063,8 +2749,8 @@ }, "networkSettled": true, "after": { - "at": 6748, - "url": "http://127.0.0.1:37441/", + "at": 6634, + "url": "http://127.0.0.1:37451/", "title": "Actual", "domHash": "3948e6fc1b26ba3f", "canaryPresent": false, @@ -2172,7 +2858,7 @@ ] } }, - "trace": "traces/2a88b0cb903d.zip", + "trace": "traces/c50615ba48ee.zip", "snapshotIndex": "snapshots/RD-004.index.json" }, "verdict": "VERIFIED", @@ -2183,8 +2869,8 @@ { "id": "RD-005", "action": { - "id": "394564881ceb", - "pageUrl": "http://127.0.0.1:37441/", + "id": "f8ee1d36ab99", + "pageUrl": "http://127.0.0.1:37451/", "label": "Set up sync", "activation": "click", "kind": "navigation", @@ -2197,7 +2883,7 @@ "role": "link", "accessibleName": "Set up sync", "text": "Set up sync", - "href": "http://127.0.0.1:37441/config-server", + "href": "http://127.0.0.1:37451/config-server", "candidates": [ { "strategy": "role", @@ -2216,7 +2902,7 @@ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37441/config-server" + "value": "http://127.0.0.1:37451/config-server" }, { "strategy": "text", @@ -2234,9 +2920,9 @@ "fields": [] }, "evidence": { - "startedAt": "2026-07-26T11:56:40.124Z", - "durationMs": 6685, - "canary": "RD_TEST_421A3D", + "startedAt": "2026-07-26T13:51:09.434Z", + "durationMs": 6581, + "canary": "RD_TEST_DEABAD", "network": [], "console": [], "pageErrors": [], @@ -2254,7 +2940,7 @@ "weight": 92, "matchCount": 1, "visibleCount": 1, - "elapsedMs": 7 + "elapsedMs": 6 } ], "chosenStrategy": "role", @@ -2262,8 +2948,8 @@ "retryCount": 0 }, "before": { - "at": 5458, - "url": "http://127.0.0.1:37441/", + "at": 5357, + "url": "http://127.0.0.1:37451/", "title": "Actual", "domHash": "0e5db8d3d3693839", "canaryPresent": false, @@ -2337,8 +3023,8 @@ } }, "beforeAction": { - "at": 5469, - "url": "http://127.0.0.1:37441/", + "at": 5367, + "url": "http://127.0.0.1:37451/", "title": "Actual", "domHash": "0e5db8d3d3693839", "canaryPresent": false, @@ -2413,8 +3099,8 @@ }, "networkSettled": true, "after": { - "at": 6680, - "url": "http://127.0.0.1:37441/config-server", + "at": 6576, + "url": "http://127.0.0.1:37451/config-server", "title": "Actual", "domHash": "97f712565aa26638", "canaryPresent": false, @@ -2488,7 +3174,7 @@ ] } }, - "trace": "traces/394564881ceb.zip", + "trace": "traces/f8ee1d36ab99.zip", "snapshotIndex": "snapshots/RD-005.index.json" }, "verdict": "VERIFIED", @@ -2499,21 +3185,21 @@ { "id": "RD-006", "action": { - "id": "320261cf1079", - "pageUrl": "http://127.0.0.1:37441/config-server", + "id": "fffad240a2f8", + "pageUrl": "http://127.0.0.1:37451/config-server", "label": "Back", "activation": "click", "kind": "navigation", "intent": "navigate", "risk": "safe", "fingerprint": { - "selector": "#react-aria6563487283-_r_0_", + "selector": "#react-aria8871071898-_r_0_", "tag": "button", "ordinal": 0, "role": "button", "accessibleName": "Back", "text": "Back", - "id": "react-aria6563487283-_r_0_", + "id": "react-aria8871071898-_r_0_", "type": "button", "candidates": [ { @@ -2533,7 +3219,7 @@ { "strategy": "id", "weight": 80, - "selector": "#react-aria6563487283-_r_0_" + "selector": "#react-aria8871071898-_r_0_" }, { "strategy": "text", @@ -2544,16 +3230,16 @@ { "strategy": "css", "weight": 35, - "selector": "#react-aria6563487283-_r_0_" + "selector": "#react-aria8871071898-_r_0_" } ] }, "fields": [] }, "evidence": { - "startedAt": "2026-07-26T11:56:47.781Z", - "durationMs": 6393, - "canary": "RD_TEST_AD75A4", + "startedAt": "2026-07-26T13:51:16.564Z", + "durationMs": 5988, + "canary": "RD_TEST_21EF22", "network": [], "console": [], "pageErrors": [], @@ -2579,7 +3265,7 @@ "weight": 82, "matchCount": 0, "visibleCount": 0, - "elapsedMs": 3 + "elapsedMs": 2 }, { "strategy": "id", @@ -2593,7 +3279,7 @@ "weight": 60, "matchCount": 0, "visibleCount": 0, - "elapsedMs": 2 + "elapsedMs": 3 }, { "strategy": "css", @@ -2614,7 +3300,7 @@ "weight": 82, "matchCount": 0, "visibleCount": 0, - "elapsedMs": 3 + "elapsedMs": 2 }, { "strategy": "id", @@ -2628,7 +3314,7 @@ "weight": 60, "matchCount": 0, "visibleCount": 0, - "elapsedMs": 3 + "elapsedMs": 2 }, { "strategy": "css", @@ -2642,7 +3328,7 @@ "weight": 92, "matchCount": 0, "visibleCount": 0, - "elapsedMs": 3 + "elapsedMs": 2 }, { "strategy": "role", @@ -2656,14 +3342,14 @@ "weight": 80, "matchCount": 0, "visibleCount": 0, - "elapsedMs": 3 + "elapsedMs": 2 }, { "strategy": "text", "weight": 60, "matchCount": 0, "visibleCount": 0, - "elapsedMs": 3 + "elapsedMs": 2 }, { "strategy": "css", @@ -2676,8 +3362,8 @@ "retryCount": 2 }, "executionError": "No visible element matched the semantic fingerprint. The action was not executed.", - "screenshot": "screenshots/320261cf1079-error.png", - "trace": "traces/320261cf1079.zip", + "screenshot": "screenshots/fffad240a2f8-error.png", + "trace": "traces/fffad240a2f8.zip", "snapshotIndex": "snapshots/RD-006.index.json" }, "verdict": "UNCERTAIN", @@ -2688,21 +3374,21 @@ { "id": "RD-007", "action": { - "id": "962eef26f4be", - "pageUrl": "http://127.0.0.1:37441/config-server", + "id": "635b2db2b3ad", + "pageUrl": "http://127.0.0.1:37451/config-server", "label": "Use the current domain", "activation": "click", "kind": "local", "intent": "interact", "risk": "safe", "fingerprint": { - "selector": "#react-aria6563487283-_r_4_", + "selector": "#react-aria8871071898-_r_4_", "tag": "button", "ordinal": 3, "role": "button", "accessibleName": "Use the current domain", "text": "Use the current domain", - "id": "react-aria6563487283-_r_4_", + "id": "react-aria8871071898-_r_4_", "type": "button", "candidates": [ { @@ -2722,7 +3408,7 @@ { "strategy": "id", "weight": 80, - "selector": "#react-aria6563487283-_r_4_" + "selector": "#react-aria8871071898-_r_4_" }, { "strategy": "text", @@ -2733,16 +3419,16 @@ { "strategy": "css", "weight": 35, - "selector": "#react-aria6563487283-_r_4_" + "selector": "#react-aria8871071898-_r_4_" } ] }, "fields": [] }, "evidence": { - "startedAt": "2026-07-26T11:56:54.871Z", - "durationMs": 6736, - "canary": "RD_TEST_3BE33D", + "startedAt": "2026-07-26T13:51:23.044Z", + "durationMs": 6677, + "canary": "RD_TEST_080185", "network": [], "console": [], "pageErrors": [], @@ -2760,7 +3446,7 @@ "weight": 92, "matchCount": 1, "visibleCount": 1, - "elapsedMs": 6 + "elapsedMs": 7 } ], "chosenStrategy": "role", @@ -2768,8 +3454,8 @@ "retryCount": 0 }, "before": { - "at": 5507, - "url": "http://127.0.0.1:37441/config-server", + "at": 5457, + "url": "http://127.0.0.1:37451/config-server", "title": "Actual", "domHash": "0152be5d7ccd41ff", "canaryPresent": false, @@ -2844,8 +3530,8 @@ } }, "beforeAction": { - "at": 5526, - "url": "http://127.0.0.1:37441/config-server", + "at": 5476, + "url": "http://127.0.0.1:37451/config-server", "title": "Actual", "domHash": "0152be5d7ccd41ff", "canaryPresent": false, @@ -2921,10 +3607,10 @@ }, "networkSettled": true, "after": { - "at": 6732, - "url": "http://127.0.0.1:37441/config-server", + "at": 6673, + "url": "http://127.0.0.1:37451/config-server", "title": "Actual", - "domHash": "33eb3efeada5497f", + "domHash": "1567fe2c7abd4cc8", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -2943,7 +3629,7 @@ { "tag": "input", "type": "text", - "valueHash": "d4e9118720f52c01", + "valueHash": "fe19c923993f284f", "checked": false, "disabled": false, "visible": true @@ -2996,7 +3682,7 @@ ] } }, - "trace": "traces/962eef26f4be.zip", + "trace": "traces/635b2db2b3ad.zip", "snapshotIndex": "snapshots/RD-007.index.json" }, "verdict": "VERIFIED", @@ -3007,8 +3693,8 @@ { "id": "RD-008", "action": { - "id": "458802e154e4", - "pageUrl": "http://127.0.0.1:37441/", + "id": "b29e08bd9425", + "pageUrl": "http://127.0.0.1:37451/", "label": "guided tour", "activation": "click", "kind": "navigation", @@ -3081,8 +3767,8 @@ { "id": "RD-009", "action": { - "id": "0c2f149c5ab1", - "pageUrl": "http://127.0.0.1:37441/config-server", + "id": "a77a4a048f93", + "pageUrl": "http://127.0.0.1:37451/config-server", "label": "learn how to set one up", "activation": "click", "kind": "navigation", @@ -3155,21 +3841,21 @@ { "id": "RD-010", "action": { - "id": "83a872f40803", - "pageUrl": "http://127.0.0.1:37441/config-server", + "id": "add38cce56ec", + "pageUrl": "http://127.0.0.1:37451/config-server", "label": "Connect", "activation": "click", "kind": "external", "intent": "external", "risk": "external", "fingerprint": { - "selector": "#react-aria6563487283-_r_2_", + "selector": "#react-aria8871071898-_r_2_", "tag": "button", "ordinal": 2, "role": "button", "accessibleName": "Connect", "text": "Connect", - "id": "react-aria6563487283-_r_2_", + "id": "react-aria8871071898-_r_2_", "type": "button", "candidates": [ { @@ -3189,7 +3875,7 @@ { "strategy": "id", "weight": 80, - "selector": "#react-aria6563487283-_r_2_" + "selector": "#react-aria8871071898-_r_2_" }, { "strategy": "text", @@ -3200,7 +3886,7 @@ { "strategy": "css", "weight": 35, - "selector": "#react-aria6563487283-_r_2_" + "selector": "#react-aria8871071898-_r_2_" } ] }, @@ -3238,9 +3924,9 @@ ], "environment": { "status": "VALID", - "checkedAt": "2026-07-26T11:56:02.752Z", - "durationMs": 2705, - "targetUrl": "http://127.0.0.1:37441/", + "checkedAt": "2026-07-26T13:50:32.502Z", + "durationMs": 2669, + "targetUrl": "http://127.0.0.1:37451/", "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 0e3b899..e067ab1 100644 --- a/release/evidence/raw/ai-agent-cycle.scan.json +++ b/release/evidence/raw/ai-agent-cycle.scan.json @@ -1,9 +1,9 @@ { "schemaVersion": "1.0", - "scanId": "20260726T115844Z-3380", + "scanId": "20260726T135405Z-d811", "targetUrl": "http://127.0.0.1:37300/", - "startedAt": "2026-07-26T11:58:44.400Z", - "finishedAt": "2026-07-26T11:58:58.245Z", + "startedAt": "2026-07-26T13:54:05.601Z", + "finishedAt": "2026-07-26T13:54:19.315Z", "options": { "maxPages": 2, "maxActions": 20, @@ -391,9 +391,9 @@ "fields": [] }, "evidence": { - "startedAt": "2026-07-26T11:58:46.319Z", - "durationMs": 1870, - "canary": "RD_TEST_A843DD", + "startedAt": "2026-07-26T13:54:07.494Z", + "durationMs": 1854, + "canary": "RD_TEST_77D506", "network": [], "console": [], "pageErrors": [], @@ -419,7 +419,7 @@ "retryCount": 0 }, "before": { - "at": 1007, + "at": 997, "url": "http://127.0.0.1:37300/", "title": "Pocket Ledger", "domHash": "f9a40a92fafba7cb", @@ -496,7 +496,7 @@ } }, "beforeAction": { - "at": 1017, + "at": 1009, "url": "http://127.0.0.1:37300/", "title": "Pocket Ledger", "domHash": "f9a40a92fafba7cb", @@ -575,7 +575,7 @@ "networkSettled": true, "targetBusyAfter": false, "after": { - "at": 1865, + "at": 1850, "url": "http://127.0.0.1:37300/#main", "title": "Pocket Ledger", "domHash": "f9a40a92fafba7cb", @@ -698,9 +698,9 @@ "fields": [] }, "evidence": { - "startedAt": "2026-07-26T11:58:48.225Z", - "durationMs": 1867, - "canary": "RD_TEST_CFB5C6", + "startedAt": "2026-07-26T13:54:09.385Z", + "durationMs": 1844, + "canary": "RD_TEST_3035DE", "network": [], "console": [], "pageErrors": [], @@ -718,7 +718,7 @@ "weight": 80, "matchCount": 1, "visibleCount": 1, - "elapsedMs": 7 + "elapsedMs": 5 } ], "chosenStrategy": "id", @@ -726,7 +726,7 @@ "retryCount": 0 }, "before": { - "at": 1002, + "at": 987, "url": "http://127.0.0.1:37300/", "title": "Pocket Ledger", "domHash": "f9a40a92fafba7cb", @@ -803,7 +803,7 @@ } }, "beforeAction": { - "at": 1013, + "at": 996, "url": "http://127.0.0.1:37300/", "title": "Pocket Ledger", "domHash": "f9a40a92fafba7cb", @@ -882,7 +882,7 @@ "networkSettled": true, "targetBusyAfter": false, "after": { - "at": 1863, + "at": 1839, "url": "http://127.0.0.1:37300/", "title": "Pocket Ledger", "domHash": "1295db35f098cfe6", @@ -1027,19 +1027,19 @@ "fields": [] }, "evidence": { - "startedAt": "2026-07-26T11:58:50.127Z", - "durationMs": 2000, - "canary": "RD_TEST_0DC3BB", + "startedAt": "2026-07-26T13:54:11.275Z", + "durationMs": 1988, + "canary": "RD_TEST_F3AD67", "network": [ { "id": "net-1", "method": "POST", "url": "http://127.0.0.1:37300/api/counter/increment", "resourceType": "fetch", - "startedAt": 1041, + "startedAt": 1015, "status": 200, "ok": true, - "finishedAt": 1053, + "finishedAt": 1027, "contentType": "application/json", "resourceTypeHint": "increment" } @@ -1068,7 +1068,7 @@ "retryCount": 0 }, "before": { - "at": 995, + "at": 983, "url": "http://127.0.0.1:37300/", "title": "Pocket Ledger", "domHash": "f9a40a92fafba7cb", @@ -1145,7 +1145,7 @@ } }, "beforeAction": { - "at": 1005, + "at": 993, "url": "http://127.0.0.1:37300/", "title": "Pocket Ledger", "domHash": "f9a40a92fafba7cb", @@ -1224,7 +1224,7 @@ "networkSettled": true, "targetBusyAfter": false, "after": { - "at": 1905, + "at": 1896, "url": "http://127.0.0.1:37300/", "title": "Pocket Ledger", "domHash": "488a5461c8a14b07", @@ -1364,19 +1364,19 @@ "fields": [] }, "evidence": { - "startedAt": "2026-07-26T11:58:52.163Z", - "durationMs": 1995, - "canary": "RD_TEST_91A7D3", + "startedAt": "2026-07-26T13:54:13.296Z", + "durationMs": 1983, + "canary": "RD_TEST_728300", "network": [ { "id": "net-1", "method": "POST", "url": "http://127.0.0.1:37300/api/counter/decrement", "resourceType": "fetch", - "startedAt": 1019, + "startedAt": 1009, "status": 200, "ok": true, - "finishedAt": 1033, + "finishedAt": 1021, "contentType": "application/json", "resourceTypeHint": "decrement" } @@ -1397,7 +1397,7 @@ "weight": 92, "matchCount": 1, "visibleCount": 1, - "elapsedMs": 4 + "elapsedMs": 5 } ], "chosenStrategy": "role", @@ -1405,7 +1405,7 @@ "retryCount": 0 }, "before": { - "at": 986, + "at": 976, "url": "http://127.0.0.1:37300/", "title": "Pocket Ledger", "domHash": "814ba71c736aa26d", @@ -1482,7 +1482,7 @@ } }, "beforeAction": { - "at": 995, + "at": 985, "url": "http://127.0.0.1:37300/", "title": "Pocket Ledger", "domHash": "814ba71c736aa26d", @@ -1561,7 +1561,7 @@ "networkSettled": true, "targetBusyAfter": false, "after": { - "at": 1898, + "at": 1893, "url": "http://127.0.0.1:37300/", "title": "Pocket Ledger", "domHash": "fd7f4b7d86ba989a", @@ -1695,19 +1695,19 @@ ] }, "evidence": { - "startedAt": "2026-07-26T11:58:54.192Z", - "durationMs": 2019, - "canary": "RD_TEST_A2E7BF", + "startedAt": "2026-07-26T13:54:15.313Z", + "durationMs": 1986, + "canary": "RD_TEST_C22D49", "network": [ { "id": "net-1", "method": "POST", "url": "http://127.0.0.1:37300/api/receipts", "resourceType": "fetch", - "startedAt": 1040, + "startedAt": 1009, "status": 200, "ok": true, - "finishedAt": 1053, + "finishedAt": 1021, "contentType": "application/json", "resourceTypeHint": "receipts" } @@ -1720,7 +1720,7 @@ "selector": "#receipt", "name": "receipt", "type": "file", - "value": "RD_TEST_A2E7BF_1.txt", + "value": "RD_TEST_C22D49_1.txt", "redacted": false } ], @@ -1729,10 +1729,10 @@ "downloadEvidence": [], "uploads": [ { - "fileName": "RD_TEST_A2E7BF_1.txt", + "fileName": "RD_TEST_C22D49_1.txt", "contentType": "text/plain", "size": 41, - "contentHash": "ac377a08d548abcd", + "contentHash": "dbd519284388aa87", "containsCanary": true } ], @@ -1744,7 +1744,7 @@ "weight": 80, "matchCount": 1, "visibleCount": 1, - "elapsedMs": 4 + "elapsedMs": 5 } ], "chosenStrategy": "id", @@ -1752,7 +1752,7 @@ "retryCount": 0 }, "before": { - "at": 987, + "at": 969, "url": "http://127.0.0.1:37300/", "title": "Pocket Ledger", "domHash": "f9a40a92fafba7cb", @@ -1829,10 +1829,10 @@ } }, "beforeAction": { - "at": 1010, + "at": 989, "url": "http://127.0.0.1:37300/", "title": "Pocket Ledger", - "domHash": "6cafb323374a04e6", + "domHash": "b070da223c05fe4c", "canaryPresent": true, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -1881,7 +1881,7 @@ "tag": "input", "type": "file", "name": "receipt", - "valueHash": "e6665872a3aaf6d7", + "valueHash": "b0a0d5416b5e19ea", "checked": false, "disabled": false, "visible": true @@ -1908,10 +1908,10 @@ "networkSettled": true, "targetBusyAfter": false, "after": { - "at": 1924, + "at": 1893, "url": "http://127.0.0.1:37300/", "title": "Pocket Ledger", - "domHash": "c73026ca431bb2c9", + "domHash": "2382603d6a8ce862", "canaryPresent": true, "bodyCanaryPresent": true, "temporaryBlobUrls": 0, @@ -1923,9 +1923,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "53b1fb483d539da9", + "textHash": "9b0c842dc6136d8e", "visualHash": "46857e11c9fc209f", - "text": "Skip to content POCKET LEDGER A tiny record, kept reliably. Update the count, note a receipt, and export the current snapshot. View as Member Admin CURRENT TOTAL Counter 0 Increment Decrement RECEIPT NOTE Store safe file details Choose a plain-text receipt. Its contents are checked and discarded; only filename, size, and media type are retained. Text receipt Store receipt details Stored filename RD_TEST_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.", + "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_C22D49_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", @@ -2048,9 +2048,9 @@ "fields": [] }, "evidence": { - "startedAt": "2026-07-26T11:58:56.249Z", - "durationMs": 1977, - "canary": "RD_TEST_7D2CEF", + "startedAt": "2026-07-26T13:54:17.334Z", + "durationMs": 1961, + "canary": "RD_TEST_6FE5E2", "network": [], "console": [], "pageErrors": [], @@ -2064,7 +2064,7 @@ { "fileName": "pocket-ledger.csv", "size": 117, - "contentHash": "80d48d2d66bbaaf8d1c2fd46a3edc8161ff151f597c7b93848dde0a6d2913d91", + "contentHash": "30dbad307eecc4975535518e9c0942f45009110a6253571d763fafd23de7a43b", "containsCanary": false, "expectedFieldValues": 0, "matchedFieldValues": 0, @@ -2088,10 +2088,10 @@ "retryCount": 0 }, "before": { - "at": 1004, + "at": 983, "url": "http://127.0.0.1:37300/", "title": "Pocket Ledger", - "domHash": "7937b049ab65dfd1", + "domHash": "d67f7b54a898e78a", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -2103,9 +2103,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "cc5e71df737980b9", + "textHash": "0016192f2219d157", "visualHash": "46857e11c9fc209f", - "text": "Skip to content POCKET LEDGER A tiny record, kept reliably. Update the count, note a receipt, and export the current snapshot. View as Member Admin CURRENT TOTAL Counter 0 Increment Decrement RECEIPT NOTE Store safe file details Choose a plain-text receipt. Its contents are checked and discarded; only filename, size, and media type are retained. Text receipt Store receipt details Stored filename RD_TEST_A2E7BF_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_C22D49_1.txt PORTABLE SNAPSHOT Export current state Download a CSV containing the current counter and receipt metadata. Download CSV", "controls": [ { "tag": "select", @@ -2165,10 +2165,10 @@ } }, "beforeAction": { - "at": 1013, + "at": 991, "url": "http://127.0.0.1:37300/", "title": "Pocket Ledger", - "domHash": "7937b049ab65dfd1", + "domHash": "d67f7b54a898e78a", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -2180,9 +2180,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "cc5e71df737980b9", + "textHash": "0016192f2219d157", "visualHash": "46857e11c9fc209f", - "text": "Skip to content POCKET LEDGER A tiny record, kept reliably. Update the count, note a receipt, and export the current snapshot. View as Member Admin CURRENT TOTAL Counter 0 Increment Decrement RECEIPT NOTE Store safe file details Choose a plain-text receipt. Its contents are checked and discarded; only filename, size, and media type are retained. Text receipt Store receipt details Stored filename RD_TEST_A2E7BF_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_C22D49_1.txt PORTABLE SNAPSHOT Export current state Download a CSV containing the current counter and receipt metadata. Download CSV", "controls": [ { "tag": "select", @@ -2244,10 +2244,10 @@ "networkSettled": true, "targetBusyAfter": false, "after": { - "at": 1882, + "at": 1866, "url": "http://127.0.0.1:37300/", "title": "Pocket Ledger", - "domHash": "7937b049ab65dfd1", + "domHash": "d67f7b54a898e78a", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -2259,9 +2259,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "cc5e71df737980b9", + "textHash": "0016192f2219d157", "visualHash": "46857e11c9fc209f", - "text": "Skip to content POCKET LEDGER A tiny record, kept reliably. Update the count, note a receipt, and export the current snapshot. View as Member Admin CURRENT TOTAL Counter 0 Increment Decrement RECEIPT NOTE Store safe file details Choose a plain-text receipt. Its contents are checked and discarded; only filename, size, and media type are retained. Text receipt Store receipt details Stored filename RD_TEST_A2E7BF_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_C22D49_1.txt PORTABLE SNAPSHOT Export current state Download a CSV containing the current counter and receipt metadata. Download CSV", "controls": [ { "tag": "select", @@ -2332,8 +2332,8 @@ ], "environment": { "status": "VALID", - "checkedAt": "2026-07-26T11:58:44.466Z", - "durationMs": 865, + "checkedAt": "2026-07-26T13:54:05.672Z", + "durationMs": 857, "targetUrl": "http://127.0.0.1:37300/", "mainDocument": { "status": 200, diff --git a/release/evidence/raw/ai-agent-cycle/baseline.json b/release/evidence/raw/ai-agent-cycle/baseline.json index fbc5fee..d407ecb 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-26T12:00:21.418Z", + "generatedAt": "2026-07-26T13:54:52.119Z", "contracts": [ { "id": "increment-persistent-counter-6270", @@ -21,7 +21,7 @@ "stepCount": 2, "baseline": { "passed": true, - "verificationId": "20260726T120020Z-284a", + "verificationId": "20260726T135450Z-e8d2", "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 2cbe1f6..f2d2e3c 100644 --- a/release/evidence/raw/ai-agent-cycle/codex-session.json +++ b/release/evidence/raw/ai-agent-cycle/codex-session.json @@ -1,6 +1,6 @@ { "schemaVersion": "1.0", - "sessionId": "019f8770-219f-7612-81eb-98670009f693", + "sessionId": "phase-l-runtime-readiness-20260726", "originator": "Codex Desktop", "source": "exec", "modelProvider": "codex_local_access", @@ -13,14 +13,14 @@ { "tool": "verify_change", "passed": false, - "runId": "20260726T120154Z-2f1d", + "runId": "20260726T135544Z-c762", "selectedContracts": 1, "regressions": 1 }, { "tool": "verify_change", "passed": true, - "runId": "20260726T120249Z-44ab", + "runId": "20260726T135620Z-3035", "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 6b4f98e..a4466bf 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": "20260726T120154Z-9cb1", + "verificationId": "20260726T135544Z-465e", "contractId": "increment-persistent-counter-6270", "contractName": "Increment persistent counter", "browser": "chromium", @@ -8,8 +8,8 @@ "default" ], "deep": false, - "startedAt": "2026-07-26T12:01:54.265Z", - "finishedAt": "2026-07-26T12:01:55.612Z", + "startedAt": "2026-07-26T13:55:44.593Z", + "finishedAt": "2026-07-26T13:55:45.906Z", "passed": false, "steps": [ { @@ -17,7 +17,7 @@ "type": "navigate", "role": "default", "status": "passed", - "durationMs": 643, + "durationMs": 656, "reason": "Step and recorded expectations passed.", "assertions": [] }, @@ -26,7 +26,7 @@ "type": "click", "role": "default", "status": "failed", - "durationMs": 572, + "durationMs": 570, "reason": "One or more recorded expectations failed.", "locatorResolution": { "attempts": [ @@ -35,7 +35,7 @@ "weight": 92, "matchCount": 1, "visibleCount": 1, - "elapsedMs": 24 + "elapsedMs": 22 } ], "chosenStrategy": "role", diff --git a/release/evidence/raw/ai-agent-cycle/regression.json b/release/evidence/raw/ai-agent-cycle/regression.json index ff8212b..aad96cd 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": "20260726T120154Z-2f1d", - "baselineFile": "F:\\RealDone\\work\\phase-k-qualification\\pocket-project\\.realdone\\phase-k-baseline.json", - "generatedAt": "2026-07-26T12:01:55.691Z", + "runId": "20260726T135544Z-c762", + "baselineFile": "F:\\RealDone\\work\\phase-k-qualification\\pocket-project\\.realdone\\phase-l-baseline.json", + "generatedAt": "2026-07-26T13:55:46.941Z", "passed": false, "selectedContracts": 1, "regressions": 1, @@ -32,8 +32,8 @@ false ], "verificationId": [ - "20260726T120020Z-284a", - "20260726T120154Z-9cb1" + "20260726T135450Z-e8d2", + "20260726T135544Z-465e" ], "steps": { "1": { diff --git a/release/evidence/raw/ai-agent-cycle/repair.json b/release/evidence/raw/ai-agent-cycle/repair.json index 071fbe1..68063a8 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": "20260726T120249Z-44ab", - "baselineFile": "F:\\RealDone\\work\\phase-k-qualification\\pocket-project\\.realdone\\phase-k-baseline.json", - "generatedAt": "2026-07-26T12:02:50.684Z", + "runId": "20260726T135620Z-3035", + "baselineFile": "F:\\RealDone\\work\\phase-k-qualification\\pocket-project\\.realdone\\phase-l-baseline.json", + "generatedAt": "2026-07-26T13:56:23.296Z", "passed": true, "selectedContracts": 1, "regressions": 0, @@ -26,8 +26,8 @@ "0": { "baseline": { "verificationId": [ - "20260726T120020Z-284a", - "20260726T120249Z-2afe" + "20260726T135450Z-e8d2", + "20260726T135620Z-660b" ] } }, diff --git a/release/evidence/raw/ai-agent-cycle/role-verification.json b/release/evidence/raw/ai-agent-cycle/role-verification.json index 5f9c09b..8f04f5c 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": "20260726T115908Z-7a8a", + "verificationId": "20260726T135431Z-daaa", "contractId": "pocket-ledger-role-authorization", "contractName": "Member denial and admin visibility", "browser": "chromium", @@ -10,8 +10,8 @@ "member" ], "deep": true, - "startedAt": "2026-07-26T11:59:08.708Z", - "finishedAt": "2026-07-26T11:59:09.914Z", + "startedAt": "2026-07-26T13:54:31.800Z", + "finishedAt": "2026-07-26T13:54:32.776Z", "passed": true, "steps": [ { @@ -19,7 +19,7 @@ "type": "navigate", "role": "member", "status": "passed", - "durationMs": 1144, + "durationMs": 918, "reason": "Step and recorded expectations passed.", "assertions": [ { diff --git a/release/evidence/raw/conduit-postgres-cleanup.json b/release/evidence/raw/conduit-postgres-cleanup.json index 94cb1fd..82572f1 100644 --- a/release/evidence/raw/conduit-postgres-cleanup.json +++ b/release/evidence/raw/conduit-postgres-cleanup.json @@ -1,32 +1,29 @@ { "schemaVersion": "1.0", - "generatedAt": "2026-07-26T12:25:00.000Z", + "generatedAt": "2026-07-26T14:12:58.222Z", + "engineFingerprint": "3663ff0c5e291f6a54b335d5d33fb9035e4e4495785dd15d2f1923e97b4e9d74", "adapter": "postgresql", - "database": "conduit_phase_k", + "database": "conduit_phase_l", + "sourceScanIds": [ + "20260726T140645Z-88ef", + "20260726T140840Z-f37f", + "20260726T140939Z-e364", + "20260726T141104Z-e396" + ], "resources": [ - { - "resource": "signup-scan-user", - "status": "cleaned", - "cleanupKey": "server-generated-primary-key" - }, - { - "resource": "crud-qualification-articles", - "status": "cleaned", - "cleanupKey": "server-generated-primary-key" - }, - { - "resource": "qualification-tags", - "status": "cleaned", - "cleanupKey": "canary-prefix" - } + { "resource": "signup-scan-user", "status": "cleaned", "deletedRows": 1 }, + { "resource": "crud-extra-article", "status": "cleaned", "deletedRows": 1 }, + { "resource": "crud-tags", "status": "cleaned", "deletedRows": 2 }, + { "resource": "auth-fixture-user", "status": "cleaned", "deletedRows": 1 } ], - "deletedRows": 4, + "deletedRows": 5, "remainingQualificationUsers": 0, "remainingQualificationArticles": 0, "remainingQualificationComments": 0, "remainingQualificationTags": 0, - "totalUsersAfterCleanup": 5, - "totalRowsAfterCleanup": { + "remainingJoinRows": 0, + "baselineTotals": { + "users": 5, "articles": 0, "comments": 0, "tags": 0, @@ -34,6 +31,10 @@ "followers": 0, "tagList": 0 }, + "sourceResidualChecks": { + "postgrest": { "users": 5, "canaryUsers": 0, "articles": 0, "canaryArticles": 0 }, + "supabase": { "users": 5, "canaryUsers": 0, "articles": 0, "canaryArticles": 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 d3e1a27..0f4034f 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": "20260726T121518Z-1fab", - "targetUrl": "http://127.0.0.1:37223/#/editor", - "startedAt": "2026-07-26T12:15:18.227Z", - "finishedAt": "2026-07-26T12:15:53.728Z", + "scanId": "20260726T140840Z-f37f", + "targetUrl": "http://127.0.0.1:37233/#/editor", + "startedAt": "2026-07-26T14:08:40.322Z", + "finishedAt": "2026-07-26T14:09:15.759Z", "options": { "maxPages": 3, "maxActions": 50, @@ -41,12 +41,12 @@ }, "pages": [ { - "url": "http://127.0.0.1:37223/#/editor", + "url": "http://127.0.0.1:37233/#/editor", "title": "Conduit", "actions": [ { - "id": "1bf42ddc57a0", - "pageUrl": "http://127.0.0.1:37223/#/editor", + "id": "ebe458223aaa", + "pageUrl": "http://127.0.0.1:37233/#/editor", "label": "conduit", "activation": "click", "kind": "navigation", @@ -59,7 +59,7 @@ "role": "link", "accessibleName": "conduit", "text": "conduit", - "href": "http://127.0.0.1:37223/#/", + "href": "http://127.0.0.1:37233/#/", "candidates": [ { "strategy": "role", @@ -78,7 +78,7 @@ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37223/#/" + "value": "http://127.0.0.1:37233/#/" }, { "strategy": "text", @@ -96,8 +96,8 @@ "fields": [] }, { - "id": "d26ff438143d", - "pageUrl": "http://127.0.0.1:37223/#/editor", + "id": "9d5c9e4234ca", + "pageUrl": "http://127.0.0.1:37233/#/editor", "label": "Source code", "activation": "click", "kind": "navigation", @@ -147,8 +147,8 @@ "fields": [] }, { - "id": "53cf74a707f5", - "pageUrl": "http://127.0.0.1:37223/#/editor", + "id": "01ea020389a4", + "pageUrl": "http://127.0.0.1:37233/#/editor", "label": "Home", "activation": "click", "kind": "navigation", @@ -161,7 +161,7 @@ "role": "link", "accessibleName": "Home", "text": "Home", - "href": "http://127.0.0.1:37223/#/", + "href": "http://127.0.0.1:37233/#/", "candidates": [ { "strategy": "role", @@ -180,7 +180,7 @@ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37223/#/" + "value": "http://127.0.0.1:37233/#/" }, { "strategy": "text", @@ -198,8 +198,8 @@ "fields": [] }, { - "id": "f33e20a1aa27", - "pageUrl": "http://127.0.0.1:37223/#/editor", + "id": "ae5a7d20cdff", + "pageUrl": "http://127.0.0.1:37233/#/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:37223/#/editor", + "href": "http://127.0.0.1:37233/#/editor", "candidates": [ { "strategy": "role", @@ -231,7 +231,7 @@ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37223/#/editor" + "value": "http://127.0.0.1:37233/#/editor" }, { "strategy": "text", @@ -249,8 +249,8 @@ "fields": [] }, { - "id": "a6522be0fc1d", - "pageUrl": "http://127.0.0.1:37223/#/editor", + "id": "2426ce190789", + "pageUrl": "http://127.0.0.1:37233/#/editor", "label": "Publish Article", "activation": "submit", "kind": "mutation", @@ -316,8 +316,8 @@ ] }, { - "id": "663211a5be23", - "pageUrl": "http://127.0.0.1:37223/#/editor", + "id": "24398d13b7ae", + "pageUrl": "http://127.0.0.1:37233/#/editor", "label": "conduit", "activation": "click", "kind": "navigation", @@ -330,7 +330,7 @@ "role": "link", "accessibleName": "conduit", "text": "conduit", - "href": "http://127.0.0.1:37223/#/", + "href": "http://127.0.0.1:37233/#/", "candidates": [ { "strategy": "role", @@ -349,7 +349,7 @@ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37223/#/" + "value": "http://127.0.0.1:37233/#/" }, { "strategy": "text", @@ -367,8 +367,8 @@ "fields": [] }, { - "id": "7c82bc9fd8ce", - "pageUrl": "http://127.0.0.1:37223/#/editor", + "id": "260d6258654f", + "pageUrl": "http://127.0.0.1:37233/#/editor", "label": "Thinkster", "activation": "click", "kind": "navigation", @@ -418,8 +418,8 @@ "fields": [] }, { - "id": "ab9bf2cd0dfb", - "pageUrl": "http://127.0.0.1:37223/#/editor", + "id": "b541833da6e9", + "pageUrl": "http://127.0.0.1:37233/#/editor", "label": "Source code", "activation": "click", "kind": "navigation", @@ -471,12 +471,12 @@ ] }, { - "url": "http://127.0.0.1:37223/", + "url": "http://127.0.0.1:37233/", "title": "Conduit", "actions": [ { - "id": "92446496b665", - "pageUrl": "http://127.0.0.1:37223/", + "id": "070fba8120b1", + "pageUrl": "http://127.0.0.1:37233/", "label": "conduit", "activation": "click", "kind": "navigation", @@ -489,7 +489,7 @@ "role": "link", "accessibleName": "conduit", "text": "conduit", - "href": "http://127.0.0.1:37223/#/", + "href": "http://127.0.0.1:37233/#/", "candidates": [ { "strategy": "role", @@ -508,7 +508,7 @@ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37223/#/" + "value": "http://127.0.0.1:37233/#/" }, { "strategy": "text", @@ -526,8 +526,8 @@ "fields": [] }, { - "id": "dff655920243", - "pageUrl": "http://127.0.0.1:37223/", + "id": "ffceb40cfb20", + "pageUrl": "http://127.0.0.1:37233/", "label": "Source code", "activation": "click", "kind": "navigation", @@ -577,8 +577,8 @@ "fields": [] }, { - "id": "3800f03bc706", - "pageUrl": "http://127.0.0.1:37223/", + "id": "55104873d69e", + "pageUrl": "http://127.0.0.1:37233/", "label": "Home", "activation": "click", "kind": "navigation", @@ -591,7 +591,7 @@ "role": "link", "accessibleName": "Home", "text": "Home", - "href": "http://127.0.0.1:37223/#/", + "href": "http://127.0.0.1:37233/#/", "candidates": [ { "strategy": "role", @@ -610,7 +610,7 @@ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37223/#/" + "value": "http://127.0.0.1:37233/#/" }, { "strategy": "text", @@ -628,8 +628,8 @@ "fields": [] }, { - "id": "c88ed7554ce5", - "pageUrl": "http://127.0.0.1:37223/", + "id": "03f276fb1579", + "pageUrl": "http://127.0.0.1:37233/", "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:37223/#/editor", + "href": "http://127.0.0.1:37233/#/editor", "candidates": [ { "strategy": "role", @@ -661,7 +661,7 @@ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37223/#/editor" + "value": "http://127.0.0.1:37233/#/editor" }, { "strategy": "text", @@ -679,8 +679,8 @@ "fields": [] }, { - "id": "d61ab1459de8", - "pageUrl": "http://127.0.0.1:37223/", + "id": "3afde700c371", + "pageUrl": "http://127.0.0.1:37233/", "label": "Your Feed", "activation": "click", "kind": "local", @@ -725,8 +725,8 @@ "fields": [] }, { - "id": "a69f66f3ce86", - "pageUrl": "http://127.0.0.1:37223/", + "id": "3fd2dfe8a608", + "pageUrl": "http://127.0.0.1:37233/", "label": "Global Feed", "activation": "click", "kind": "local", @@ -771,8 +771,8 @@ "fields": [] }, { - "id": "9d442a70bdcb", - "pageUrl": "http://127.0.0.1:37223/", + "id": "7e6c799322ef", + "pageUrl": "http://127.0.0.1:37233/", "label": "conduit", "activation": "click", "kind": "navigation", @@ -785,7 +785,7 @@ "role": "link", "accessibleName": "conduit", "text": "conduit", - "href": "http://127.0.0.1:37223/#/", + "href": "http://127.0.0.1:37233/#/", "candidates": [ { "strategy": "role", @@ -804,7 +804,7 @@ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37223/#/" + "value": "http://127.0.0.1:37233/#/" }, { "strategy": "text", @@ -822,8 +822,8 @@ "fields": [] }, { - "id": "d0d3611360e0", - "pageUrl": "http://127.0.0.1:37223/", + "id": "9e62e4f6f98f", + "pageUrl": "http://127.0.0.1:37233/", "label": "Thinkster", "activation": "click", "kind": "navigation", @@ -873,8 +873,8 @@ "fields": [] }, { - "id": "aece598f17f5", - "pageUrl": "http://127.0.0.1:37223/", + "id": "0de5cae7c6fc", + "pageUrl": "http://127.0.0.1:37233/", "label": "Source code", "activation": "click", "kind": "navigation", @@ -930,8 +930,8 @@ { "id": "RD-001", "action": { - "id": "1bf42ddc57a0", - "pageUrl": "http://127.0.0.1:37223/#/editor", + "id": "ebe458223aaa", + "pageUrl": "http://127.0.0.1:37233/#/editor", "label": "conduit", "activation": "click", "kind": "navigation", @@ -944,7 +944,7 @@ "role": "link", "accessibleName": "conduit", "text": "conduit", - "href": "http://127.0.0.1:37223/#/", + "href": "http://127.0.0.1:37233/#/", "candidates": [ { "strategy": "role", @@ -963,7 +963,7 @@ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37223/#/" + "value": "http://127.0.0.1:37233/#/" }, { "strategy": "text", @@ -981,31 +981,31 @@ "fields": [] }, "evidence": { - "startedAt": "2026-07-26T12:15:23.416Z", - "durationMs": 2587, - "canary": "RD_TEST_7E5EC1", + "startedAt": "2026-07-26T14:08:45.626Z", + "durationMs": 2565, + "canary": "RD_TEST_3F62CA", "network": [ { "id": "net-1", "method": "GET", - "url": "http://127.0.0.1:37223/api/articles/feed?limit=3&&offset=0", + "url": "http://127.0.0.1:37233/api/articles/feed?limit=3&&offset=0", "resourceType": "xhr", - "startedAt": 1608, + "startedAt": 1598, "status": 200, "ok": true, - "finishedAt": 1614, + "finishedAt": 1606, "contentType": "application/json", "resourceTypeHint": "feed" }, { "id": "net-2", "method": "GET", - "url": "http://127.0.0.1:37223/api/tags", + "url": "http://127.0.0.1:37233/api/tags", "resourceType": "xhr", - "startedAt": 1609, + "startedAt": 1598, "status": 200, "ok": true, - "finishedAt": 1613, + "finishedAt": 1604, "contentType": "application/json", "resourceTypeHint": "tags" } @@ -1032,14 +1032,14 @@ "weight": 92, "matchCount": 2, "visibleCount": 2, - "elapsedMs": 9 + "elapsedMs": 11 }, { "strategy": "role", "weight": 82, "matchCount": 2, "visibleCount": 2, - "elapsedMs": 7 + "elapsedMs": 8 }, { "strategy": "href", @@ -1053,14 +1053,14 @@ "weight": 60, "matchCount": 2, "visibleCount": 2, - "elapsedMs": 7 + "elapsedMs": 8 }, { "strategy": "css", "weight": 35, "matchCount": 1, "visibleCount": 1, - "elapsedMs": 6 + "elapsedMs": 5 } ], "chosenStrategy": "css", @@ -1068,10 +1068,10 @@ "retryCount": 0 }, "before": { - "at": 1561, - "url": "http://127.0.0.1:37223/#/editor", + "at": 1555, + "url": "http://127.0.0.1:37233/#/editor", "title": "Conduit", - "domHash": "c936833dbedd7df2", + "domHash": "a01e944d4b62d184", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -1083,9 +1083,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "d0c4b4fdb77a11e9", + "textHash": "e1abb484093cff92", "visualHash": "b85410fa0ea5a358", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_CRUD_OWNER Publish Article conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "input", @@ -1137,7 +1137,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -1148,10 +1148,10 @@ } }, "beforeAction": { - "at": 1577, - "url": "http://127.0.0.1:37223/#/editor", + "at": 1567, + "url": "http://127.0.0.1:37233/#/editor", "title": "Conduit", - "domHash": "c936833dbedd7df2", + "domHash": "a01e944d4b62d184", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -1163,9 +1163,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "d0c4b4fdb77a11e9", + "textHash": "e1abb484093cff92", "visualHash": "b85410fa0ea5a358", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_CRUD_OWNER Publish Article conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "input", @@ -1217,7 +1217,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -1230,10 +1230,10 @@ "networkSettled": true, "targetBusyAfter": false, "after": { - "at": 2583, - "url": "http://127.0.0.1:37223/#/", + "at": 2561, + "url": "http://127.0.0.1:37233/#/", "title": "Conduit", - "domHash": "b5f3eaaec75e7b4d", + "domHash": "fedb25d24bcf0a2a", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -1245,9 +1245,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "8f037986f2b00a1b", + "textHash": "d034f773390f8f42", "visualHash": "dfad2167a8f7c17f", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_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", @@ -1271,7 +1271,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -1299,8 +1299,8 @@ { "id": "RD-002", "action": { - "id": "53cf74a707f5", - "pageUrl": "http://127.0.0.1:37223/#/editor", + "id": "01ea020389a4", + "pageUrl": "http://127.0.0.1:37233/#/editor", "label": "Home", "activation": "click", "kind": "navigation", @@ -1313,7 +1313,7 @@ "role": "link", "accessibleName": "Home", "text": "Home", - "href": "http://127.0.0.1:37223/#/", + "href": "http://127.0.0.1:37233/#/", "candidates": [ { "strategy": "role", @@ -1332,7 +1332,7 @@ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37223/#/" + "value": "http://127.0.0.1:37233/#/" }, { "strategy": "text", @@ -1350,31 +1350,31 @@ "fields": [] }, "evidence": { - "startedAt": "2026-07-26T12:15:26.053Z", - "durationMs": 2526, - "canary": "RD_TEST_9C0CBB", + "startedAt": "2026-07-26T14:08:48.248Z", + "durationMs": 2499, + "canary": "RD_TEST_069354", "network": [ { "id": "net-1", "method": "GET", - "url": "http://127.0.0.1:37223/api/articles/feed?limit=3&&offset=0", + "url": "http://127.0.0.1:37233/api/articles/feed?limit=3&&offset=0", "resourceType": "xhr", - "startedAt": 1554, + "startedAt": 1539, "status": 200, "ok": true, - "finishedAt": 1560, + "finishedAt": 1545, "contentType": "application/json", "resourceTypeHint": "feed" }, { "id": "net-2", "method": "GET", - "url": "http://127.0.0.1:37223/api/tags", + "url": "http://127.0.0.1:37233/api/tags", "resourceType": "xhr", - "startedAt": 1555, + "startedAt": 1539, "status": 200, "ok": true, - "finishedAt": 1559, + "finishedAt": 1544, "contentType": "application/json", "resourceTypeHint": "tags" } @@ -1416,10 +1416,10 @@ "retryCount": 0 }, "before": { - "at": 1517, - "url": "http://127.0.0.1:37223/#/editor", + "at": 1494, + "url": "http://127.0.0.1:37233/#/editor", "title": "Conduit", - "domHash": "c936833dbedd7df2", + "domHash": "a01e944d4b62d184", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -1431,9 +1431,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "d0c4b4fdb77a11e9", + "textHash": "e1abb484093cff92", "visualHash": "b85410fa0ea5a358", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_CRUD_OWNER Publish Article conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "input", @@ -1485,7 +1485,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -1496,10 +1496,10 @@ } }, "beforeAction": { - "at": 1526, - "url": "http://127.0.0.1:37223/#/editor", + "at": 1504, + "url": "http://127.0.0.1:37233/#/editor", "title": "Conduit", - "domHash": "c936833dbedd7df2", + "domHash": "a01e944d4b62d184", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -1511,9 +1511,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "d0c4b4fdb77a11e9", + "textHash": "e1abb484093cff92", "visualHash": "b85410fa0ea5a358", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_CRUD_OWNER Publish Article conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "input", @@ -1565,7 +1565,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -1578,10 +1578,10 @@ "networkSettled": true, "targetBusyAfter": false, "after": { - "at": 2522, - "url": "http://127.0.0.1:37223/#/", + "at": 2496, + "url": "http://127.0.0.1:37233/#/", "title": "Conduit", - "domHash": "b5f3eaaec75e7b4d", + "domHash": "fedb25d24bcf0a2a", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -1593,9 +1593,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "8f037986f2b00a1b", + "textHash": "d034f773390f8f42", "visualHash": "dfad2167a8f7c17f", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_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", @@ -1619,7 +1619,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -1647,8 +1647,8 @@ { "id": "RD-003", "action": { - "id": "a6522be0fc1d", - "pageUrl": "http://127.0.0.1:37223/#/editor", + "id": "2426ce190789", + "pageUrl": "http://127.0.0.1:37233/#/editor", "label": "Publish Article", "activation": "submit", "kind": "mutation", @@ -1714,19 +1714,19 @@ ] }, "evidence": { - "startedAt": "2026-07-26T12:15:28.705Z", - "durationMs": 7158, - "canary": "RD_TEST_F3F938", + "startedAt": "2026-07-26T14:08:50.858Z", + "durationMs": 6950, + "canary": "RD_TEST_234782", "network": [ { "id": "net-1", "method": "POST", - "url": "http://127.0.0.1:37223/api/articles", + "url": "http://127.0.0.1:37233/api/articles", "resourceType": "xhr", - "startedAt": 1657, + "startedAt": 1600, "status": 201, "ok": true, - "finishedAt": 1674, + "finishedAt": 1616, "contentType": "application/json", "resourceTypeHint": "articles" }, @@ -1735,70 +1735,70 @@ "method": "GET", "url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwlxdu.woff2", "resourceType": "font", - "startedAt": 1681, + "startedAt": 1624, "status": 200, "ok": true, - "finishedAt": 1727, + "finishedAt": 1669, "contentType": "font/woff2", "resourceTypeHint": "6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwlxdu.woff2" }, { "id": "net-3", "method": "GET", - "url": "http://127.0.0.1:37223/api/articles/rd-test-f3f938-1/comments", + "url": "http://127.0.0.1:37233/api/articles/rd-test-234782-1/comments", "resourceType": "xhr", - "startedAt": 1683, + "startedAt": 1626, "status": 200, "ok": true, - "finishedAt": 1692, + "finishedAt": 1633, "contentType": "application/json", "resourceTypeHint": "comments" }, { "id": "net-4", "method": "GET", - "url": "http://127.0.0.1:37223/api/articles/rd-test-f3f938-1", + "url": "http://127.0.0.1:37233/api/articles/rd-test-234782-1", "resourceType": "xhr", - "startedAt": 1684, + "startedAt": 1626, "status": 200, "ok": true, - "finishedAt": 1697, + "finishedAt": 1638, "contentType": "application/json", - "resourceTypeHint": "rd-test-f3f938-1" + "resourceTypeHint": "rd-test-234782-1" }, { "id": "net-5", "method": "GET", "url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwlxdu.woff2", "resourceType": "font", - "startedAt": 1714, + "startedAt": 1655, "status": 200, "ok": true, - "finishedAt": 1760, + "finishedAt": 1701, "contentType": "font/woff2", "resourceTypeHint": "6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwlxdu.woff2" }, { "id": "net-6", "method": "GET", - "url": "http://127.0.0.1:37223/", + "url": "http://127.0.0.1:37233/", "resourceType": "document", - "startedAt": 2746, + "startedAt": 2677, "status": 200, "ok": true, "contentType": "text/html", "resourceTypeHint": "resource", - "finishedAt": 2755 + "finishedAt": 2686 }, { "id": "net-7", "method": "GET", "url": "http://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css", "resourceType": "stylesheet", - "startedAt": 2753, + "startedAt": 2685, "status": 307, "ok": false, - "finishedAt": 2757, + "finishedAt": 2688, "location": "https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css", "resourceTypeHint": "ionicons.min.css" }, @@ -1807,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": 2754, + "startedAt": 2685, "status": 200, "ok": true, - "finishedAt": 2794, + "finishedAt": 2727, "contentType": "text/css", "resourceTypeHint": "css" }, { "id": "net-9", "method": "GET", - "url": "http://127.0.0.1:37223/assets/index-CLdavoKn.js", + "url": "http://127.0.0.1:37233/assets/index-CLdavoKn.js", "resourceType": "script", - "startedAt": 2754, + "startedAt": 2685, "status": 200, "ok": true, - "finishedAt": 2769, + "finishedAt": 2700, "contentType": "text/javascript", "resourceTypeHint": "index-CLdavoKn.js" }, { "id": "net-10", "method": "GET", - "url": "http://127.0.0.1:37223/assets/index-De1Lwdlm.css", + "url": "http://127.0.0.1:37233/assets/index-De1Lwdlm.css", "resourceType": "stylesheet", - "startedAt": 2755, + "startedAt": 2686, "status": 200, "ok": true, - "finishedAt": 2761, + "finishedAt": 2691, "contentType": "text/css", "resourceTypeHint": "index-De1Lwdlm.css" }, @@ -1843,22 +1843,22 @@ "method": "GET", "url": "https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css", "resourceType": "stylesheet", - "startedAt": 2757, + "startedAt": 2688, "status": 200, "ok": true, - "finishedAt": 3047, "contentType": "text/css", - "resourceTypeHint": "ionicons.min.css" + "resourceTypeHint": "ionicons.min.css", + "finishedAt": 2842 }, { "id": "net-12", "method": "GET", "url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdu.woff2", "resourceType": "font", - "startedAt": 3057, + "startedAt": 2853, "status": 200, "ok": true, - "finishedAt": 3102, + "finishedAt": 2899, "contentType": "font/woff2", "resourceTypeHint": "6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdu.woff2" }, @@ -1867,10 +1867,10 @@ "method": "GET", "url": "https://code.ionicframework.com/ionicons/2.0.1/fonts/ionicons.ttf?v=2.0.1", "resourceType": "font", - "startedAt": 3057, + "startedAt": 2853, "status": 200, "ok": true, - "finishedAt": 3176, + "finishedAt": 2960, "contentType": "font/ttf", "resourceTypeHint": "ionicons.ttf" }, @@ -1879,10 +1879,10 @@ "method": "GET", "url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7l.woff2", "resourceType": "font", - "startedAt": 3058, + "startedAt": 2854, "status": 200, "ok": true, - "finishedAt": 3105, + "finishedAt": 2901, "contentType": "font/woff2", "resourceTypeHint": "6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7l.woff2" }, @@ -1891,10 +1891,10 @@ "method": "GET", "url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwlxdu.woff2", "resourceType": "font", - "startedAt": 3059, + "startedAt": 2855, "status": 200, "ok": true, - "finishedAt": 3104, + "finishedAt": 2901, "contentType": "font/woff2", "resourceTypeHint": "6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwlxdu.woff2" }, @@ -1903,46 +1903,46 @@ "method": "GET", "url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7nsDI.woff2", "resourceType": "font", - "startedAt": 3059, + "startedAt": 2855, "status": 200, "ok": true, - "finishedAt": 3155, + "finishedAt": 2954, "contentType": "font/woff2", "resourceTypeHint": "6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7nsDI.woff2" }, { "id": "net-17", "method": "GET", - "url": "http://127.0.0.1:37223/api/articles/rd-test-f3f938-1/comments", + "url": "http://127.0.0.1:37233/api/articles/rd-test-234782-1/comments", "resourceType": "xhr", - "startedAt": 3060, + "startedAt": 2856, "status": 200, "ok": true, - "finishedAt": 3068, + "finishedAt": 2863, "contentType": "application/json", "resourceTypeHint": "comments" }, { "id": "net-18", "method": "GET", - "url": "http://127.0.0.1:37223/api/articles/rd-test-f3f938-1", + "url": "http://127.0.0.1:37233/api/articles/rd-test-234782-1", "resourceType": "xhr", - "startedAt": 3061, + "startedAt": 2856, "status": 200, "ok": true, - "finishedAt": 3071, + "finishedAt": 2867, "contentType": "application/json", - "resourceTypeHint": "rd-test-f3f938-1" + "resourceTypeHint": "rd-test-234782-1" }, { "id": "net-19", "method": "GET", - "url": "http://127.0.0.1:37223/api/user", + "url": "http://127.0.0.1:37233/api/user", "resourceType": "xhr", - "startedAt": 3061, + "startedAt": 2856, "status": 200, "ok": true, - "finishedAt": 3069, + "finishedAt": 2865, "contentType": "application/json", "resourceTypeHint": "user" }, @@ -1951,34 +1951,34 @@ "method": "GET", "url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwlxdu.woff2", "resourceType": "font", - "startedAt": 3085, + "startedAt": 2877, "status": 200, "ok": true, - "finishedAt": 3143, + "finishedAt": 2941, "contentType": "font/woff2", "resourceTypeHint": "6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwlxdu.woff2" }, { "id": "net-21", "method": "GET", - "url": "http://127.0.0.1:37223/", + "url": "http://127.0.0.1:37233/", "resourceType": "document", - "startedAt": 3885, + "startedAt": 3680, "status": 200, "ok": true, "contentType": "text/html", "resourceTypeHint": "resource", - "finishedAt": 3893 + "finishedAt": 3688 }, { "id": "net-22", "method": "GET", "url": "http://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css", "resourceType": "stylesheet", - "startedAt": 3892, + "startedAt": 3686, "status": 307, "ok": false, - "finishedAt": 3895, + "finishedAt": 3690, "location": "https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css", "resourceTypeHint": "ionicons.min.css" }, @@ -1987,46 +1987,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": 3892, + "startedAt": 3687, "status": 200, "ok": true, - "finishedAt": 3929, + "finishedAt": 3730, "contentType": "text/css", "resourceTypeHint": "css" }, { "id": "net-24", "method": "GET", - "url": "http://127.0.0.1:37223/assets/index-CLdavoKn.js", + "url": "http://127.0.0.1:37233/assets/index-CLdavoKn.js", "resourceType": "script", - "startedAt": 3892, + "startedAt": 3687, "status": 200, "ok": true, - "finishedAt": 3910, + "finishedAt": 3701, "contentType": "text/javascript", "resourceTypeHint": "index-CLdavoKn.js" }, { "id": "net-25", "method": "GET", - "url": "http://127.0.0.1:37223/assets/index-De1Lwdlm.css", + "url": "http://127.0.0.1:37233/assets/index-De1Lwdlm.css", "resourceType": "stylesheet", - "startedAt": 3892, + "startedAt": 3687, "status": 200, "ok": true, - "finishedAt": 3897, "contentType": "text/css", - "resourceTypeHint": "index-De1Lwdlm.css" + "resourceTypeHint": "index-De1Lwdlm.css", + "finishedAt": 3693 }, { "id": "net-26", "method": "GET", "url": "https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css", "resourceType": "stylesheet", - "startedAt": 3895, + "startedAt": 3690, "status": 200, "ok": true, - "finishedAt": 3974, + "finishedAt": 3780, "contentType": "text/css", "resourceTypeHint": "ionicons.min.css" }, @@ -2035,10 +2035,10 @@ "method": "GET", "url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdu.woff2", "resourceType": "font", - "startedAt": 3983, + "startedAt": 3791, "status": 200, "ok": true, - "finishedAt": 4035, + "finishedAt": 3841, "contentType": "font/woff2", "resourceTypeHint": "6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdu.woff2" }, @@ -2047,10 +2047,10 @@ "method": "GET", "url": "https://code.ionicframework.com/ionicons/2.0.1/fonts/ionicons.ttf?v=2.0.1", "resourceType": "font", - "startedAt": 3984, + "startedAt": 3793, "status": 200, "ok": true, - "finishedAt": 4105, + "finishedAt": 3897, "contentType": "font/ttf", "resourceTypeHint": "ionicons.ttf" }, @@ -2059,10 +2059,10 @@ "method": "GET", "url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7l.woff2", "resourceType": "font", - "startedAt": 3985, + "startedAt": 3793, "status": 200, "ok": true, - "finishedAt": 4031, + "finishedAt": 3839, "contentType": "font/woff2", "resourceTypeHint": "6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7l.woff2" }, @@ -2071,10 +2071,10 @@ "method": "GET", "url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwlxdu.woff2", "resourceType": "font", - "startedAt": 3986, + "startedAt": 3793, "status": 200, "ok": true, - "finishedAt": 4034, + "finishedAt": 3842, "contentType": "font/woff2", "resourceTypeHint": "6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwlxdu.woff2" }, @@ -2083,58 +2083,58 @@ "method": "GET", "url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7nsDI.woff2", "resourceType": "font", - "startedAt": 3986, + "startedAt": 3793, "status": 200, "ok": true, - "finishedAt": 4034, + "finishedAt": 3841, "contentType": "font/woff2", "resourceTypeHint": "6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7nsDI.woff2" }, { "id": "net-32", "method": "GET", - "url": "http://127.0.0.1:37223/api/articles/rd-test-f3f938-1/comments", + "url": "http://127.0.0.1:37233/api/articles/rd-test-234782-1/comments", "resourceType": "xhr", - "startedAt": 3988, + "startedAt": 3795, "status": 200, "ok": true, - "finishedAt": 3995, + "finishedAt": 3802, "contentType": "application/json", "resourceTypeHint": "comments" }, { "id": "net-33", "method": "GET", - "url": "http://127.0.0.1:37223/api/articles/rd-test-f3f938-1", + "url": "http://127.0.0.1:37233/api/articles/rd-test-234782-1", "resourceType": "xhr", - "startedAt": 3988, + "startedAt": 3795, "status": 200, "ok": true, - "finishedAt": 4001, + "finishedAt": 3807, "contentType": "application/json", - "resourceTypeHint": "rd-test-f3f938-1" + "resourceTypeHint": "rd-test-234782-1" }, { "id": "net-34", "method": "GET", - "url": "http://127.0.0.1:37223/api/user", + "url": "http://127.0.0.1:37233/api/user", "resourceType": "xhr", - "startedAt": 3989, + "startedAt": 3796, "status": 200, "ok": true, "contentType": "application/json", "resourceTypeHint": "user", - "finishedAt": 3995 + "finishedAt": 3801 }, { "id": "net-35", "method": "GET", "url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwlxdu.woff2", "resourceType": "font", - "startedAt": 4003, + "startedAt": 3809, "status": 200, "ok": true, - "finishedAt": 4068, + "finishedAt": 3873, "contentType": "font/woff2", "resourceTypeHint": "6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwlxdu.woff2" } @@ -2147,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_F3F938_1", + "value": "RD_TEST_234782_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_F3F938_2", + "value": "RD_TEST_234782_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_F3F938_3", + "value": "RD_TEST_234782_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_F3F938_4", + "value": "RD_TEST_234782_4", "redacted": false } ], @@ -2190,7 +2190,7 @@ "weight": 60, "matchCount": 1, "visibleCount": 1, - "elapsedMs": 5 + "elapsedMs": 4 } ], "chosenStrategy": "text", @@ -2198,10 +2198,10 @@ "retryCount": 0 }, "before": { - "at": 1553, - "url": "http://127.0.0.1:37223/#/editor", + "at": 1490, + "url": "http://127.0.0.1:37233/#/editor", "title": "Conduit", - "domHash": "c936833dbedd7df2", + "domHash": "a01e944d4b62d184", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -2213,9 +2213,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "d0c4b4fdb77a11e9", + "textHash": "e1abb484093cff92", "visualHash": "b85410fa0ea5a358", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_CRUD_OWNER Publish Article conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "input", @@ -2267,7 +2267,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -2315,8 +2315,8 @@ "softDeleted": false }, { - "keyHash": "667da1af4b45220f", - "rowHash": "5c8f98476fb3bfca", + "keyHash": "75453dbfb3621178", + "rowHash": "2daa65787e249e4f", "softDeleted": false } ], @@ -2360,8 +2360,8 @@ "softDeleted": false }, { - "keyHash": "667da1af4b45220f", - "rowHash": "5c8f98476fb3bfca", + "keyHash": "75453dbfb3621178", + "rowHash": "2daa65787e249e4f", "softDeleted": false } ], @@ -2370,10 +2370,10 @@ ] }, "beforeAction": { - "at": 1611, - "url": "http://127.0.0.1:37223/#/editor", + "at": 1545, + "url": "http://127.0.0.1:37233/#/editor", "title": "Conduit", - "domHash": "eca152a0b620b6b9", + "domHash": "c4e7f971440d7ffe", "canaryPresent": true, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -2385,15 +2385,15 @@ "accessDenied": false }, "semanticDom": { - "textHash": "d0c4b4fdb77a11e9", + "textHash": "e1abb484093cff92", "visualHash": "b85410fa0ea5a358", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_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": "4edf37e7b916fb84", + "valueHash": "574a02f4d18dc395", "checked": false, "disabled": false, "visible": true @@ -2402,7 +2402,7 @@ "tag": "input", "type": "text", "name": "description", - "valueHash": "05c8c5ab3e5d145c", + "valueHash": "93d3f643798f25b7", "checked": false, "disabled": false, "visible": true @@ -2411,7 +2411,7 @@ "tag": "textarea", "type": "textarea", "name": "body", - "valueHash": "3e20dda6d23b3bfb", + "valueHash": "52e69a84da0e2f65", "disabled": false, "visible": true }, @@ -2419,7 +2419,7 @@ "tag": "input", "type": "text", "name": "tags", - "valueHash": "9b3570f9ddf845d4", + "valueHash": "ab16fe3c80ddcf68", "checked": false, "disabled": false, "visible": true @@ -2439,7 +2439,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -2453,10 +2453,10 @@ "networkSettled": true, "targetBusyAfter": false, "after": { - "at": 2740, - "url": "http://127.0.0.1:37223/#/article/rd-test-f3f938-1", + "at": 2671, + "url": "http://127.0.0.1:37233/#/article/rd-test-234782-1", "title": "Conduit", - "domHash": "228fd45ce63fe634", + "domHash": "8e14097635fb5d1a", "canaryPresent": true, "bodyCanaryPresent": true, "temporaryBlobUrls": 0, @@ -2468,9 +2468,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "3095f07e5155c8c4", + "textHash": "e5783f190b2b43ae", "visualHash": "471347ba69eaf940", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_CRUD_OWNER RD_TEST_234782_1 RD_PHASE_L_CRUD_OWNER July 26, 2026 Delete Article Edit Article RD_TEST_234782_3 RD_TEST_234782_4 RD_PHASE_L_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", @@ -2522,7 +2522,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -2539,7 +2539,7 @@ "rows": [ { "keyHash": "186347d9ea7673a2", - "rowHash": "6acb0748d78f5535", + "rowHash": "ec7c570ed4795046", "softDeleted": false } ], @@ -2576,8 +2576,8 @@ "softDeleted": false }, { - "keyHash": "667da1af4b45220f", - "rowHash": "5c8f98476fb3bfca", + "keyHash": "75453dbfb3621178", + "rowHash": "2daa65787e249e4f", "softDeleted": false } ], @@ -2590,7 +2590,7 @@ "rows": [ { "keyHash": "186347d9ea7673a2", - "rowHash": "6acb0748d78f5535", + "rowHash": "ec7c570ed4795046", "softDeleted": false } ], @@ -2627,8 +2627,8 @@ "softDeleted": false }, { - "keyHash": "667da1af4b45220f", - "rowHash": "5c8f98476fb3bfca", + "keyHash": "75453dbfb3621178", + "rowHash": "2daa65787e249e4f", "softDeleted": false } ], @@ -2637,10 +2637,10 @@ ] }, "afterRefresh": { - "at": 3882, - "url": "http://127.0.0.1:37223/#/article/rd-test-f3f938-1", + "at": 3676, + "url": "http://127.0.0.1:37233/#/article/rd-test-234782-1", "title": "Conduit", - "domHash": "228fd45ce63fe634", + "domHash": "8e14097635fb5d1a", "canaryPresent": true, "bodyCanaryPresent": true, "temporaryBlobUrls": 0, @@ -2652,9 +2652,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "3095f07e5155c8c4", + "textHash": "e5783f190b2b43ae", "visualHash": "471347ba69eaf940", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_CRUD_OWNER RD_TEST_234782_1 RD_PHASE_L_CRUD_OWNER July 26, 2026 Delete Article Edit Article RD_TEST_234782_3 RD_TEST_234782_4 RD_PHASE_L_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", @@ -2706,7 +2706,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -2717,10 +2717,10 @@ } }, "afterHardRefresh": { - "at": 4810, - "url": "http://127.0.0.1:37223/#/article/rd-test-f3f938-1", + "at": 4618, + "url": "http://127.0.0.1:37233/#/article/rd-test-234782-1", "title": "Conduit", - "domHash": "228fd45ce63fe634", + "domHash": "8e14097635fb5d1a", "canaryPresent": true, "bodyCanaryPresent": true, "temporaryBlobUrls": 0, @@ -2732,9 +2732,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "3095f07e5155c8c4", + "textHash": "e5783f190b2b43ae", "visualHash": "471347ba69eaf940", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_CRUD_OWNER RD_TEST_234782_1 RD_PHASE_L_CRUD_OWNER July 26, 2026 Delete Article Edit Article RD_TEST_234782_3 RD_TEST_234782_4 RD_PHASE_L_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", @@ -2786,7 +2786,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -2797,10 +2797,10 @@ } }, "afterNewTab": { - "at": 5810, - "url": "http://127.0.0.1:37223/#/editor", + "at": 5613, + "url": "http://127.0.0.1:37233/#/editor", "title": "Conduit", - "domHash": "c936833dbedd7df2", + "domHash": "a01e944d4b62d184", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -2812,9 +2812,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "d0c4b4fdb77a11e9", + "textHash": "e1abb484093cff92", "visualHash": "b85410fa0ea5a358", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_CRUD_OWNER Publish Article conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "input", @@ -2866,7 +2866,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -2877,10 +2877,10 @@ } }, "afterNewContext": { - "at": 7155, - "url": "http://127.0.0.1:37223/#/article/rd-test-f3f938-1", + "at": 6947, + "url": "http://127.0.0.1:37233/#/article/rd-test-234782-1", "title": "Conduit", - "domHash": "228fd45ce63fe634", + "domHash": "8e14097635fb5d1a", "canaryPresent": true, "bodyCanaryPresent": true, "temporaryBlobUrls": 0, @@ -2892,9 +2892,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "3095f07e5155c8c4", + "textHash": "e5783f190b2b43ae", "visualHash": "471347ba69eaf940", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_CRUD_OWNER RD_TEST_234782_1 RD_PHASE_L_CRUD_OWNER July 26, 2026 Delete Article Edit Article RD_TEST_234782_3 RD_TEST_234782_4 RD_PHASE_L_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", @@ -2946,7 +2946,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -3018,8 +3018,8 @@ { "id": "RD-004", "action": { - "id": "663211a5be23", - "pageUrl": "http://127.0.0.1:37223/#/editor", + "id": "24398d13b7ae", + "pageUrl": "http://127.0.0.1:37233/#/editor", "label": "conduit", "activation": "click", "kind": "navigation", @@ -3032,7 +3032,7 @@ "role": "link", "accessibleName": "conduit", "text": "conduit", - "href": "http://127.0.0.1:37223/#/", + "href": "http://127.0.0.1:37233/#/", "candidates": [ { "strategy": "role", @@ -3051,7 +3051,7 @@ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37223/#/" + "value": "http://127.0.0.1:37233/#/" }, { "strategy": "text", @@ -3069,31 +3069,31 @@ "fields": [] }, "evidence": { - "startedAt": "2026-07-26T12:15:35.951Z", - "durationMs": 2535, - "canary": "RD_TEST_278E60", + "startedAt": "2026-07-26T14:08:57.903Z", + "durationMs": 2517, + "canary": "RD_TEST_C7210C", "network": [ { "id": "net-1", "method": "GET", - "url": "http://127.0.0.1:37223/api/articles/feed?limit=3&&offset=0", + "url": "http://127.0.0.1:37233/api/articles/feed?limit=3&&offset=0", "resourceType": "xhr", - "startedAt": 1557, + "startedAt": 1550, "status": 200, "ok": true, - "finishedAt": 1566, + "finishedAt": 1556, "contentType": "application/json", "resourceTypeHint": "feed" }, { "id": "net-2", "method": "GET", - "url": "http://127.0.0.1:37223/api/tags", + "url": "http://127.0.0.1:37233/api/tags", "resourceType": "xhr", - "startedAt": 1558, + "startedAt": 1551, "status": 200, "ok": true, - "finishedAt": 1564, + "finishedAt": 1555, "contentType": "application/json", "resourceTypeHint": "tags" } @@ -3120,14 +3120,14 @@ "weight": 92, "matchCount": 2, "visibleCount": 2, - "elapsedMs": 8 + "elapsedMs": 7 }, { "strategy": "role", "weight": 82, "matchCount": 2, "visibleCount": 2, - "elapsedMs": 8 + "elapsedMs": 7 }, { "strategy": "href", @@ -3141,14 +3141,14 @@ "weight": 60, "matchCount": 2, "visibleCount": 2, - "elapsedMs": 7 + "elapsedMs": 6 }, { "strategy": "css", "weight": 35, "matchCount": 1, "visibleCount": 1, - "elapsedMs": 4 + "elapsedMs": 3 } ], "chosenStrategy": "css", @@ -3156,10 +3156,10 @@ "retryCount": 0 }, "before": { - "at": 1524, - "url": "http://127.0.0.1:37223/#/editor", + "at": 1514, + "url": "http://127.0.0.1:37233/#/editor", "title": "Conduit", - "domHash": "c936833dbedd7df2", + "domHash": "a01e944d4b62d184", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -3171,9 +3171,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "d0c4b4fdb77a11e9", + "textHash": "e1abb484093cff92", "visualHash": "b85410fa0ea5a358", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_CRUD_OWNER Publish Article conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "input", @@ -3225,7 +3225,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -3236,10 +3236,10 @@ } }, "beforeAction": { - "at": 1533, - "url": "http://127.0.0.1:37223/#/editor", + "at": 1522, + "url": "http://127.0.0.1:37233/#/editor", "title": "Conduit", - "domHash": "c936833dbedd7df2", + "domHash": "a01e944d4b62d184", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -3251,9 +3251,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "d0c4b4fdb77a11e9", + "textHash": "e1abb484093cff92", "visualHash": "b85410fa0ea5a358", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_CRUD_OWNER Publish Article conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "input", @@ -3305,7 +3305,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -3318,10 +3318,10 @@ "networkSettled": true, "targetBusyAfter": false, "after": { - "at": 2531, - "url": "http://127.0.0.1:37223/#/", + "at": 2513, + "url": "http://127.0.0.1:37233/#/", "title": "Conduit", - "domHash": "09a0c2dcd70a0114", + "domHash": "41eb930ac9c56f2e", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -3333,9 +3333,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "b0238cc5ff984bef", + "textHash": "7e40231cc730fb3f", "visualHash": "72ad38eb67085423", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_CRUD_OWNER Your Feed Global Feed Articles not available. Popular Tags RD_TEST_234782_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "button", @@ -3366,7 +3366,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -3394,8 +3394,8 @@ { "id": "RD-005", "action": { - "id": "92446496b665", - "pageUrl": "http://127.0.0.1:37223/", + "id": "070fba8120b1", + "pageUrl": "http://127.0.0.1:37233/", "label": "conduit", "activation": "click", "kind": "navigation", @@ -3408,7 +3408,7 @@ "role": "link", "accessibleName": "conduit", "text": "conduit", - "href": "http://127.0.0.1:37223/#/", + "href": "http://127.0.0.1:37233/#/", "candidates": [ { "strategy": "role", @@ -3427,7 +3427,7 @@ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37223/#/" + "value": "http://127.0.0.1:37233/#/" }, { "strategy": "text", @@ -3445,9 +3445,9 @@ "fields": [] }, "evidence": { - "startedAt": "2026-07-26T12:15:38.510Z", - "durationMs": 2523, - "canary": "RD_TEST_81BF70", + "startedAt": "2026-07-26T14:09:00.444Z", + "durationMs": 2579, + "canary": "RD_TEST_1DA4CF", "network": [], "console": [], "pageErrors": [], @@ -3507,10 +3507,10 @@ "retryCount": 0 }, "before": { - "at": 1519, - "url": "http://127.0.0.1:37223/", + "at": 1573, + "url": "http://127.0.0.1:37233/", "title": "Conduit", - "domHash": "09a0c2dcd70a0114", + "domHash": "41eb930ac9c56f2e", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -3522,9 +3522,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "b0238cc5ff984bef", + "textHash": "7e40231cc730fb3f", "visualHash": "72ad38eb67085423", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_CRUD_OWNER Your Feed Global Feed Articles not available. Popular Tags RD_TEST_234782_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "button", @@ -3555,7 +3555,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -3566,10 +3566,10 @@ } }, "beforeAction": { - "at": 1527, - "url": "http://127.0.0.1:37223/", + "at": 1581, + "url": "http://127.0.0.1:37233/", "title": "Conduit", - "domHash": "09a0c2dcd70a0114", + "domHash": "41eb930ac9c56f2e", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -3581,9 +3581,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "b0238cc5ff984bef", + "textHash": "7e40231cc730fb3f", "visualHash": "72ad38eb67085423", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_CRUD_OWNER Your Feed Global Feed Articles not available. Popular Tags RD_TEST_234782_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "button", @@ -3614,7 +3614,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -3627,10 +3627,10 @@ "networkSettled": true, "targetBusyAfter": false, "after": { - "at": 2519, - "url": "http://127.0.0.1:37223/#/", + "at": 2575, + "url": "http://127.0.0.1:37233/#/", "title": "Conduit", - "domHash": "09a0c2dcd70a0114", + "domHash": "41eb930ac9c56f2e", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -3642,9 +3642,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "b0238cc5ff984bef", + "textHash": "7e40231cc730fb3f", "visualHash": "72ad38eb67085423", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_CRUD_OWNER Your Feed Global Feed Articles not available. Popular Tags RD_TEST_234782_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "button", @@ -3675,7 +3675,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -3703,8 +3703,8 @@ { "id": "RD-006", "action": { - "id": "3800f03bc706", - "pageUrl": "http://127.0.0.1:37223/", + "id": "55104873d69e", + "pageUrl": "http://127.0.0.1:37233/", "label": "Home", "activation": "click", "kind": "navigation", @@ -3717,7 +3717,7 @@ "role": "link", "accessibleName": "Home", "text": "Home", - "href": "http://127.0.0.1:37223/#/", + "href": "http://127.0.0.1:37233/#/", "candidates": [ { "strategy": "role", @@ -3736,7 +3736,7 @@ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37223/#/" + "value": "http://127.0.0.1:37233/#/" }, { "strategy": "text", @@ -3754,9 +3754,9 @@ "fields": [] }, "evidence": { - "startedAt": "2026-07-26T12:15:41.061Z", - "durationMs": 2517, - "canary": "RD_TEST_FBE3AC", + "startedAt": "2026-07-26T14:09:03.046Z", + "durationMs": 2521, + "canary": "RD_TEST_2C90AB", "network": [], "console": [], "pageErrors": [], @@ -3780,14 +3780,14 @@ "weight": 92, "matchCount": 0, "visibleCount": 0, - "elapsedMs": 4 + "elapsedMs": 3 }, { "strategy": "role", "weight": 82, "matchCount": 1, "visibleCount": 1, - "elapsedMs": 5 + "elapsedMs": 9 } ], "chosenStrategy": "role", @@ -3795,10 +3795,10 @@ "retryCount": 0 }, "before": { - "at": 1510, - "url": "http://127.0.0.1:37223/", + "at": 1513, + "url": "http://127.0.0.1:37233/", "title": "Conduit", - "domHash": "09a0c2dcd70a0114", + "domHash": "41eb930ac9c56f2e", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -3810,9 +3810,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "b0238cc5ff984bef", + "textHash": "7e40231cc730fb3f", "visualHash": "72ad38eb67085423", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_CRUD_OWNER Your Feed Global Feed Articles not available. Popular Tags RD_TEST_234782_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "button", @@ -3843,7 +3843,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -3854,10 +3854,10 @@ } }, "beforeAction": { - "at": 1519, - "url": "http://127.0.0.1:37223/", + "at": 1522, + "url": "http://127.0.0.1:37233/", "title": "Conduit", - "domHash": "09a0c2dcd70a0114", + "domHash": "41eb930ac9c56f2e", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -3869,9 +3869,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "b0238cc5ff984bef", + "textHash": "7e40231cc730fb3f", "visualHash": "72ad38eb67085423", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_CRUD_OWNER Your Feed Global Feed Articles not available. Popular Tags RD_TEST_234782_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "button", @@ -3902,7 +3902,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -3915,10 +3915,10 @@ "networkSettled": true, "targetBusyAfter": false, "after": { - "at": 2513, - "url": "http://127.0.0.1:37223/#/", + "at": 2516, + "url": "http://127.0.0.1:37233/#/", "title": "Conduit", - "domHash": "09a0c2dcd70a0114", + "domHash": "41eb930ac9c56f2e", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -3930,9 +3930,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "b0238cc5ff984bef", + "textHash": "7e40231cc730fb3f", "visualHash": "72ad38eb67085423", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_CRUD_OWNER Your Feed Global Feed Articles not available. Popular Tags RD_TEST_234782_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "button", @@ -3963,7 +3963,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -3991,8 +3991,8 @@ { "id": "RD-007", "action": { - "id": "c88ed7554ce5", - "pageUrl": "http://127.0.0.1:37223/", + "id": "03f276fb1579", + "pageUrl": "http://127.0.0.1:37233/", "label": "New Article", "activation": "click", "kind": "navigation", @@ -4005,7 +4005,7 @@ "role": "link", "accessibleName": "New Article", "text": "New Article", - "href": "http://127.0.0.1:37223/#/editor", + "href": "http://127.0.0.1:37233/#/editor", "candidates": [ { "strategy": "role", @@ -4024,7 +4024,7 @@ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37223/#/editor" + "value": "http://127.0.0.1:37233/#/editor" }, { "strategy": "text", @@ -4042,9 +4042,9 @@ "fields": [] }, "evidence": { - "startedAt": "2026-07-26T12:15:43.604Z", - "durationMs": 2494, - "canary": "RD_TEST_BD6E18", + "startedAt": "2026-07-26T14:09:05.591Z", + "durationMs": 2506, + "canary": "RD_TEST_FA1EC4", "network": [], "console": [], "pageErrors": [], @@ -4083,10 +4083,10 @@ "retryCount": 0 }, "before": { - "at": 1469, - "url": "http://127.0.0.1:37223/", + "at": 1498, + "url": "http://127.0.0.1:37233/", "title": "Conduit", - "domHash": "09a0c2dcd70a0114", + "domHash": "41eb930ac9c56f2e", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -4098,9 +4098,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "b0238cc5ff984bef", + "textHash": "7e40231cc730fb3f", "visualHash": "72ad38eb67085423", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_CRUD_OWNER Your Feed Global Feed Articles not available. Popular Tags RD_TEST_234782_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "button", @@ -4131,7 +4131,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -4142,10 +4142,10 @@ } }, "beforeAction": { - "at": 1482, - "url": "http://127.0.0.1:37223/", + "at": 1507, + "url": "http://127.0.0.1:37233/", "title": "Conduit", - "domHash": "09a0c2dcd70a0114", + "domHash": "41eb930ac9c56f2e", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -4157,9 +4157,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "b0238cc5ff984bef", + "textHash": "7e40231cc730fb3f", "visualHash": "72ad38eb67085423", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_CRUD_OWNER Your Feed Global Feed Articles not available. Popular Tags RD_TEST_234782_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "button", @@ -4190,7 +4190,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -4203,10 +4203,10 @@ "networkSettled": true, "targetBusyAfter": false, "after": { - "at": 2488, - "url": "http://127.0.0.1:37223/#/editor", + "at": 2502, + "url": "http://127.0.0.1:37233/#/editor", "title": "Conduit", - "domHash": "c936833dbedd7df2", + "domHash": "a01e944d4b62d184", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -4218,9 +4218,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "d0c4b4fdb77a11e9", + "textHash": "e1abb484093cff92", "visualHash": "b85410fa0ea5a358", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_CRUD_OWNER Publish Article conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "input", @@ -4272,7 +4272,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -4300,8 +4300,8 @@ { "id": "RD-008", "action": { - "id": "d61ab1459de8", - "pageUrl": "http://127.0.0.1:37223/", + "id": "3afde700c371", + "pageUrl": "http://127.0.0.1:37233/", "label": "Your Feed", "activation": "click", "kind": "local", @@ -4346,19 +4346,19 @@ "fields": [] }, "evidence": { - "startedAt": "2026-07-26T12:15:46.123Z", - "durationMs": 2509, - "canary": "RD_TEST_442023", + "startedAt": "2026-07-26T14:09:08.125Z", + "durationMs": 2493, + "canary": "RD_TEST_5C4EA2", "network": [ { "id": "net-1", "method": "GET", - "url": "http://127.0.0.1:37223/api/articles/feed?limit=3&&offset=0", + "url": "http://127.0.0.1:37233/api/articles/feed?limit=3&&offset=0", "resourceType": "xhr", - "startedAt": 1537, + "startedAt": 1513, "status": 200, "ok": true, - "finishedAt": 1547, + "finishedAt": 1526, "contentType": "application/json", "resourceTypeHint": "feed" } @@ -4393,10 +4393,10 @@ "retryCount": 0 }, "before": { - "at": 1504, - "url": "http://127.0.0.1:37223/", + "at": 1482, + "url": "http://127.0.0.1:37233/", "title": "Conduit", - "domHash": "09a0c2dcd70a0114", + "domHash": "41eb930ac9c56f2e", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -4408,9 +4408,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "b0238cc5ff984bef", + "textHash": "7e40231cc730fb3f", "visualHash": "72ad38eb67085423", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_CRUD_OWNER Your Feed Global Feed Articles not available. Popular Tags RD_TEST_234782_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "button", @@ -4441,7 +4441,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -4452,10 +4452,10 @@ } }, "beforeAction": { - "at": 1513, - "url": "http://127.0.0.1:37223/", + "at": 1490, + "url": "http://127.0.0.1:37233/", "title": "Conduit", - "domHash": "09a0c2dcd70a0114", + "domHash": "41eb930ac9c56f2e", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -4467,9 +4467,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "b0238cc5ff984bef", + "textHash": "7e40231cc730fb3f", "visualHash": "72ad38eb67085423", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_CRUD_OWNER Your Feed Global Feed Articles not available. Popular Tags RD_TEST_234782_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "button", @@ -4500,7 +4500,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -4513,10 +4513,10 @@ "networkSettled": true, "targetBusyAfter": false, "after": { - "at": 2506, - "url": "http://127.0.0.1:37223/", + "at": 2489, + "url": "http://127.0.0.1:37233/", "title": "Conduit", - "domHash": "09a0c2dcd70a0114", + "domHash": "41eb930ac9c56f2e", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -4528,9 +4528,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "b0238cc5ff984bef", + "textHash": "7e40231cc730fb3f", "visualHash": "72ad38eb67085423", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_CRUD_OWNER Your Feed Global Feed Articles not available. Popular Tags RD_TEST_234782_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "button", @@ -4561,7 +4561,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -4589,8 +4589,8 @@ { "id": "RD-009", "action": { - "id": "a69f66f3ce86", - "pageUrl": "http://127.0.0.1:37223/", + "id": "3fd2dfe8a608", + "pageUrl": "http://127.0.0.1:37233/", "label": "Global Feed", "activation": "click", "kind": "local", @@ -4635,19 +4635,19 @@ "fields": [] }, "evidence": { - "startedAt": "2026-07-26T12:15:48.656Z", - "durationMs": 2507, - "canary": "RD_TEST_4BB6A5", + "startedAt": "2026-07-26T14:09:10.642Z", + "durationMs": 2557, + "canary": "RD_TEST_331B07", "network": [ { "id": "net-1", "method": "GET", - "url": "http://127.0.0.1:37223/api/articles?limit=3&&offset=0", + "url": "http://127.0.0.1:37233/api/articles?limit=3&&offset=0", "resourceType": "xhr", - "startedAt": 1469, + "startedAt": 1512, "status": 200, "ok": true, - "finishedAt": 1482, + "finishedAt": 1524, "contentType": "application/json", "resourceTypeHint": "articles" }, @@ -4656,10 +4656,10 @@ "method": "GET", "url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwlxdu.woff2", "resourceType": "font", - "startedAt": 1496, + "startedAt": 1537, "status": 200, "ok": true, - "finishedAt": 1541, + "finishedAt": 1580, "contentType": "font/woff2", "resourceTypeHint": "6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwlxdu.woff2" } @@ -4694,10 +4694,10 @@ "retryCount": 0 }, "before": { - "at": 1443, - "url": "http://127.0.0.1:37223/", + "at": 1481, + "url": "http://127.0.0.1:37233/", "title": "Conduit", - "domHash": "09a0c2dcd70a0114", + "domHash": "41eb930ac9c56f2e", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -4709,9 +4709,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "b0238cc5ff984bef", + "textHash": "7e40231cc730fb3f", "visualHash": "72ad38eb67085423", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_CRUD_OWNER Your Feed Global Feed Articles not available. Popular Tags RD_TEST_234782_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "button", @@ -4742,7 +4742,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -4753,10 +4753,10 @@ } }, "beforeAction": { - "at": 1452, - "url": "http://127.0.0.1:37223/", + "at": 1489, + "url": "http://127.0.0.1:37233/", "title": "Conduit", - "domHash": "09a0c2dcd70a0114", + "domHash": "41eb930ac9c56f2e", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -4768,9 +4768,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "b0238cc5ff984bef", + "textHash": "7e40231cc730fb3f", "visualHash": "72ad38eb67085423", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_CRUD_OWNER Your Feed Global Feed Articles not available. Popular Tags RD_TEST_234782_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "button", @@ -4801,7 +4801,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -4814,10 +4814,10 @@ "networkSettled": true, "targetBusyAfter": false, "after": { - "at": 2503, - "url": "http://127.0.0.1:37223/", + "at": 2553, + "url": "http://127.0.0.1:37233/", "title": "Conduit", - "domHash": "e4b4be49562e496e", + "domHash": "9c15e29684ee9c22", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -4829,9 +4829,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "3739616a12c17583", + "textHash": "8ed6812d47ad0485", "visualHash": "805f65e8f4aada8d", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_CRUD_OWNER Your Feed Global Feed RD_PHASE_L_CRUD_OWNER July 26, 2026 ( 0 ) RD_TEST_234782_1 RD_TEST_234782_2 Read more... RD_TEST_234782_4 1 Popular Tags RD_TEST_234782_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "button", @@ -4869,7 +4869,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -4897,8 +4897,8 @@ { "id": "RD-010", "action": { - "id": "9d442a70bdcb", - "pageUrl": "http://127.0.0.1:37223/", + "id": "7e6c799322ef", + "pageUrl": "http://127.0.0.1:37233/", "label": "conduit", "activation": "click", "kind": "navigation", @@ -4911,7 +4911,7 @@ "role": "link", "accessibleName": "conduit", "text": "conduit", - "href": "http://127.0.0.1:37223/#/", + "href": "http://127.0.0.1:37233/#/", "candidates": [ { "strategy": "role", @@ -4930,7 +4930,7 @@ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37223/#/" + "value": "http://127.0.0.1:37233/#/" }, { "strategy": "text", @@ -4948,9 +4948,9 @@ "fields": [] }, "evidence": { - "startedAt": "2026-07-26T12:15:51.187Z", - "durationMs": 2516, - "canary": "RD_TEST_C7F261", + "startedAt": "2026-07-26T14:09:13.222Z", + "durationMs": 2514, + "canary": "RD_TEST_C46FB4", "network": [], "console": [], "pageErrors": [], @@ -4974,7 +4974,7 @@ "weight": 92, "matchCount": 2, "visibleCount": 2, - "elapsedMs": 7 + "elapsedMs": 8 }, { "strategy": "role", @@ -4995,14 +4995,14 @@ "weight": 60, "matchCount": 2, "visibleCount": 2, - "elapsedMs": 7 + "elapsedMs": 6 }, { "strategy": "css", "weight": 35, "matchCount": 1, "visibleCount": 1, - "elapsedMs": 4 + "elapsedMs": 3 } ], "chosenStrategy": "css", @@ -5010,10 +5010,10 @@ "retryCount": 0 }, "before": { - "at": 1506, - "url": "http://127.0.0.1:37223/", + "at": 1507, + "url": "http://127.0.0.1:37233/", "title": "Conduit", - "domHash": "09a0c2dcd70a0114", + "domHash": "41eb930ac9c56f2e", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -5025,9 +5025,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "b0238cc5ff984bef", + "textHash": "7e40231cc730fb3f", "visualHash": "72ad38eb67085423", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_CRUD_OWNER Your Feed Global Feed Articles not available. Popular Tags RD_TEST_234782_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "button", @@ -5058,7 +5058,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -5070,9 +5070,9 @@ }, "beforeAction": { "at": 1515, - "url": "http://127.0.0.1:37223/", + "url": "http://127.0.0.1:37233/", "title": "Conduit", - "domHash": "09a0c2dcd70a0114", + "domHash": "41eb930ac9c56f2e", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -5084,9 +5084,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "b0238cc5ff984bef", + "textHash": "7e40231cc730fb3f", "visualHash": "72ad38eb67085423", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_CRUD_OWNER Your Feed Global Feed Articles not available. Popular Tags RD_TEST_234782_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "button", @@ -5117,7 +5117,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -5130,10 +5130,10 @@ "networkSettled": true, "targetBusyAfter": false, "after": { - "at": 2512, - "url": "http://127.0.0.1:37223/#/", + "at": 2510, + "url": "http://127.0.0.1:37233/#/", "title": "Conduit", - "domHash": "09a0c2dcd70a0114", + "domHash": "41eb930ac9c56f2e", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -5145,9 +5145,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "b0238cc5ff984bef", + "textHash": "7e40231cc730fb3f", "visualHash": "72ad38eb67085423", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_CRUD_OWNER Your Feed Global Feed Articles not available. Popular Tags RD_TEST_234782_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "button", @@ -5178,7 +5178,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -5206,8 +5206,8 @@ { "id": "RD-011", "action": { - "id": "d26ff438143d", - "pageUrl": "http://127.0.0.1:37223/#/editor", + "id": "9d5c9e4234ca", + "pageUrl": "http://127.0.0.1:37233/#/editor", "label": "Source code", "activation": "click", "kind": "navigation", @@ -5279,8 +5279,8 @@ { "id": "RD-012", "action": { - "id": "f33e20a1aa27", - "pageUrl": "http://127.0.0.1:37223/#/editor", + "id": "ae5a7d20cdff", + "pageUrl": "http://127.0.0.1:37233/#/editor", "label": "New Article", "activation": "click", "kind": "navigation", @@ -5293,7 +5293,7 @@ "role": "link", "accessibleName": "New Article", "text": "New Article", - "href": "http://127.0.0.1:37223/#/editor", + "href": "http://127.0.0.1:37233/#/editor", "candidates": [ { "strategy": "role", @@ -5312,7 +5312,7 @@ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37223/#/editor" + "value": "http://127.0.0.1:37233/#/editor" }, { "strategy": "text", @@ -5352,8 +5352,8 @@ { "id": "RD-013", "action": { - "id": "7c82bc9fd8ce", - "pageUrl": "http://127.0.0.1:37223/#/editor", + "id": "260d6258654f", + "pageUrl": "http://127.0.0.1:37233/#/editor", "label": "Thinkster", "activation": "click", "kind": "navigation", @@ -5425,8 +5425,8 @@ { "id": "RD-014", "action": { - "id": "ab9bf2cd0dfb", - "pageUrl": "http://127.0.0.1:37223/#/editor", + "id": "b541833da6e9", + "pageUrl": "http://127.0.0.1:37233/#/editor", "label": "Source code", "activation": "click", "kind": "navigation", @@ -5498,8 +5498,8 @@ { "id": "RD-015", "action": { - "id": "dff655920243", - "pageUrl": "http://127.0.0.1:37223/", + "id": "ffceb40cfb20", + "pageUrl": "http://127.0.0.1:37233/", "label": "Source code", "activation": "click", "kind": "navigation", @@ -5571,8 +5571,8 @@ { "id": "RD-016", "action": { - "id": "d0d3611360e0", - "pageUrl": "http://127.0.0.1:37223/", + "id": "9e62e4f6f98f", + "pageUrl": "http://127.0.0.1:37233/", "label": "Thinkster", "activation": "click", "kind": "navigation", @@ -5644,8 +5644,8 @@ { "id": "RD-017", "action": { - "id": "aece598f17f5", - "pageUrl": "http://127.0.0.1:37223/", + "id": "0de5cae7c6fc", + "pageUrl": "http://127.0.0.1:37233/", "label": "Source code", "activation": "click", "kind": "navigation", @@ -5717,9 +5717,9 @@ ], "environment": { "status": "VALID", - "checkedAt": "2026-07-26T12:15:18.289Z", - "durationMs": 2628, - "targetUrl": "http://127.0.0.1:37223/#/editor", + "checkedAt": "2026-07-26T14:08:40.384Z", + "durationMs": 2683, + "targetUrl": "http://127.0.0.1:37233/#/editor", "mainDocument": { "status": 200, "contentType": "text/html" diff --git a/release/evidence/raw/conduit-postgres-delete.scan.json b/release/evidence/raw/conduit-postgres-delete.scan.json index d7b92c9..43711f7 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": "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", + "scanId": "20260726T141104Z-e396", + "targetUrl": "http://127.0.0.1:37233/#/article/rd-test-dacc94-1", + "startedAt": "2026-07-26T14:11:04.332Z", + "finishedAt": "2026-07-26T14:12:21.413Z", "options": { "maxPages": 2, "maxActions": 50, @@ -41,12 +41,12 @@ }, "pages": [ { - "url": "http://127.0.0.1:37223/#/article/rd-test-4cbb5d-1", + "url": "http://127.0.0.1:37233/#/article/rd-test-dacc94-1", "title": "Conduit", "actions": [ { - "id": "7722bc8353e5", - "pageUrl": "http://127.0.0.1:37223/#/article/rd-test-4cbb5d-1", + "id": "cb81998fdf3d", + "pageUrl": "http://127.0.0.1:37233/#/article/rd-test-dacc94-1", "label": "conduit", "activation": "click", "kind": "navigation", @@ -59,7 +59,7 @@ "role": "link", "accessibleName": "conduit", "text": "conduit", - "href": "http://127.0.0.1:37223/#/", + "href": "http://127.0.0.1:37233/#/", "candidates": [ { "strategy": "role", @@ -78,7 +78,7 @@ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37223/#/" + "value": "http://127.0.0.1:37233/#/" }, { "strategy": "text", @@ -96,8 +96,8 @@ "fields": [] }, { - "id": "7ee6766cffc7", - "pageUrl": "http://127.0.0.1:37223/#/article/rd-test-4cbb5d-1", + "id": "4df1ffe5ccd8", + "pageUrl": "http://127.0.0.1:37233/#/article/rd-test-dacc94-1", "label": "Source code", "activation": "click", "kind": "navigation", @@ -147,8 +147,8 @@ "fields": [] }, { - "id": "d3ae75fea87d", - "pageUrl": "http://127.0.0.1:37223/#/article/rd-test-4cbb5d-1", + "id": "cdc7a28860cf", + "pageUrl": "http://127.0.0.1:37233/#/article/rd-test-dacc94-1", "label": "Home", "activation": "click", "kind": "navigation", @@ -161,7 +161,7 @@ "role": "link", "accessibleName": "Home", "text": "Home", - "href": "http://127.0.0.1:37223/#/", + "href": "http://127.0.0.1:37233/#/", "candidates": [ { "strategy": "role", @@ -180,7 +180,7 @@ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37223/#/" + "value": "http://127.0.0.1:37233/#/" }, { "strategy": "text", @@ -198,8 +198,8 @@ "fields": [] }, { - "id": "b87aecb8b12f", - "pageUrl": "http://127.0.0.1:37223/#/article/rd-test-4cbb5d-1", + "id": "71c8c264113a", + "pageUrl": "http://127.0.0.1:37233/#/article/rd-test-dacc94-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:37223/#/editor", + "href": "http://127.0.0.1:37233/#/editor", "candidates": [ { "strategy": "role", @@ -231,7 +231,7 @@ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37223/#/editor" + "value": "http://127.0.0.1:37233/#/editor" }, { "strategy": "text", @@ -249,9 +249,9 @@ "fields": [] }, { - "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", + "id": "287d80c0a6b5", + "pageUrl": "http://127.0.0.1:37233/#/article/rd-test-dacc94-1", + "label": "http://127.0.0.1:37233/#/profile/RD_PHASE_L_CRUD_OWNER", "activation": "click", "kind": "navigation", "intent": "navigate", @@ -261,12 +261,12 @@ "tag": "a", "ordinal": 4, "role": "link", - "href": "http://127.0.0.1:37223/#/profile/RD_PHASE_K_CRUD_OWNER", + "href": "http://127.0.0.1:37233/#/profile/RD_PHASE_L_CRUD_OWNER", "candidates": [ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37223/#/profile/RD_PHASE_K_CRUD_OWNER" + "value": "http://127.0.0.1:37233/#/profile/RD_PHASE_L_CRUD_OWNER" }, { "strategy": "css", @@ -278,9 +278,9 @@ "fields": [] }, { - "id": "73251912f965", - "pageUrl": "http://127.0.0.1:37223/#/article/rd-test-4cbb5d-1", - "label": "RD_PHASE_K_CRUD_OWNER", + "id": "7c19765c9fcf", + "pageUrl": "http://127.0.0.1:37233/#/article/rd-test-dacc94-1", + "label": "RD_PHASE_L_CRUD_OWNER", "activation": "click", "kind": "navigation", "intent": "navigate", @@ -290,33 +290,33 @@ "tag": "a", "ordinal": 5, "role": "link", - "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", + "accessibleName": "RD_PHASE_L_CRUD_OWNER", + "text": "RD_PHASE_L_CRUD_OWNER", + "href": "http://127.0.0.1:37233/#/profile/RD_PHASE_L_CRUD_OWNER", "candidates": [ { "strategy": "role", "weight": 92, "role": "link", - "name": "RD_PHASE_K_CRUD_OWNER", + "name": "RD_PHASE_L_CRUD_OWNER", "exact": true }, { "strategy": "role", "weight": 82, "role": "link", - "name": "RD_PHASE_K_CRUD_OWNER", + "name": "RD_PHASE_L_CRUD_OWNER", "exact": false }, { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37223/#/profile/RD_PHASE_K_CRUD_OWNER" + "value": "http://127.0.0.1:37233/#/profile/RD_PHASE_L_CRUD_OWNER" }, { "strategy": "text", "weight": 60, - "value": "RD_PHASE_K_CRUD_OWNER", + "value": "RD_PHASE_L_CRUD_OWNER", "exact": true }, { @@ -329,8 +329,8 @@ "fields": [] }, { - "id": "c15810d6e309", - "pageUrl": "http://127.0.0.1:37223/#/article/rd-test-4cbb5d-1", + "id": "faa1f55c72e5", + "pageUrl": "http://127.0.0.1:37233/#/article/rd-test-dacc94-1", "label": "Delete Article", "activation": "click", "kind": "mutation", @@ -375,8 +375,8 @@ "fields": [] }, { - "id": "6e951fb42425", - "pageUrl": "http://127.0.0.1:37223/#/article/rd-test-4cbb5d-1", + "id": "c2bb393af83c", + "pageUrl": "http://127.0.0.1:37233/#/article/rd-test-dacc94-1", "label": "Edit Article", "activation": "click", "kind": "mutation", @@ -421,9 +421,9 @@ "fields": [] }, { - "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", + "id": "660de6efc205", + "pageUrl": "http://127.0.0.1:37233/#/article/rd-test-dacc94-1", + "label": "http://127.0.0.1:37233/#/profile/RD_PHASE_L_CRUD_OWNER", "activation": "click", "kind": "navigation", "intent": "navigate", @@ -433,12 +433,12 @@ "tag": "a", "ordinal": 8, "role": "link", - "href": "http://127.0.0.1:37223/#/profile/RD_PHASE_K_CRUD_OWNER", + "href": "http://127.0.0.1:37233/#/profile/RD_PHASE_L_CRUD_OWNER", "candidates": [ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37223/#/profile/RD_PHASE_K_CRUD_OWNER" + "value": "http://127.0.0.1:37233/#/profile/RD_PHASE_L_CRUD_OWNER" }, { "strategy": "css", @@ -450,9 +450,9 @@ "fields": [] }, { - "id": "c17ee9d21303", - "pageUrl": "http://127.0.0.1:37223/#/article/rd-test-4cbb5d-1", - "label": "RD_PHASE_K_CRUD_OWNER", + "id": "ffddf6f2216f", + "pageUrl": "http://127.0.0.1:37233/#/article/rd-test-dacc94-1", + "label": "RD_PHASE_L_CRUD_OWNER", "activation": "click", "kind": "navigation", "intent": "navigate", @@ -462,33 +462,33 @@ "tag": "a", "ordinal": 9, "role": "link", - "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", + "accessibleName": "RD_PHASE_L_CRUD_OWNER", + "text": "RD_PHASE_L_CRUD_OWNER", + "href": "http://127.0.0.1:37233/#/profile/RD_PHASE_L_CRUD_OWNER", "candidates": [ { "strategy": "role", "weight": 92, "role": "link", - "name": "RD_PHASE_K_CRUD_OWNER", + "name": "RD_PHASE_L_CRUD_OWNER", "exact": true }, { "strategy": "role", "weight": 82, "role": "link", - "name": "RD_PHASE_K_CRUD_OWNER", + "name": "RD_PHASE_L_CRUD_OWNER", "exact": false }, { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37223/#/profile/RD_PHASE_K_CRUD_OWNER" + "value": "http://127.0.0.1:37233/#/profile/RD_PHASE_L_CRUD_OWNER" }, { "strategy": "text", "weight": 60, - "value": "RD_PHASE_K_CRUD_OWNER", + "value": "RD_PHASE_L_CRUD_OWNER", "exact": true }, { @@ -501,8 +501,8 @@ "fields": [] }, { - "id": "87f3ade5fa76", - "pageUrl": "http://127.0.0.1:37223/#/article/rd-test-4cbb5d-1", + "id": "6b119743445b", + "pageUrl": "http://127.0.0.1:37233/#/article/rd-test-dacc94-1", "label": "Delete Article", "activation": "click", "kind": "mutation", @@ -547,8 +547,8 @@ "fields": [] }, { - "id": "f95b5e51d8bf", - "pageUrl": "http://127.0.0.1:37223/#/article/rd-test-4cbb5d-1", + "id": "8f861b0e2353", + "pageUrl": "http://127.0.0.1:37233/#/article/rd-test-dacc94-1", "label": "Edit Article", "activation": "click", "kind": "mutation", @@ -593,8 +593,8 @@ "fields": [] }, { - "id": "7cb4078e8bd7", - "pageUrl": "http://127.0.0.1:37223/#/article/rd-test-4cbb5d-1", + "id": "f9ebc0b2b621", + "pageUrl": "http://127.0.0.1:37233/#/article/rd-test-dacc94-1", "label": "Post Comment", "activation": "submit", "kind": "mutation", @@ -632,8 +632,8 @@ ] }, { - "id": "b60b097d31b9", - "pageUrl": "http://127.0.0.1:37223/#/article/rd-test-4cbb5d-1", + "id": "36542a92f00e", + "pageUrl": "http://127.0.0.1:37233/#/article/rd-test-dacc94-1", "label": "conduit", "activation": "click", "kind": "navigation", @@ -646,7 +646,7 @@ "role": "link", "accessibleName": "conduit", "text": "conduit", - "href": "http://127.0.0.1:37223/#/", + "href": "http://127.0.0.1:37233/#/", "candidates": [ { "strategy": "role", @@ -665,7 +665,7 @@ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37223/#/" + "value": "http://127.0.0.1:37233/#/" }, { "strategy": "text", @@ -683,8 +683,8 @@ "fields": [] }, { - "id": "0a7e2dacea77", - "pageUrl": "http://127.0.0.1:37223/#/article/rd-test-4cbb5d-1", + "id": "50ecd76a40b7", + "pageUrl": "http://127.0.0.1:37233/#/article/rd-test-dacc94-1", "label": "Thinkster", "activation": "click", "kind": "navigation", @@ -734,8 +734,8 @@ "fields": [] }, { - "id": "8756e450c029", - "pageUrl": "http://127.0.0.1:37223/#/article/rd-test-4cbb5d-1", + "id": "fe2e3a764c1b", + "pageUrl": "http://127.0.0.1:37233/#/article/rd-test-dacc94-1", "label": "Source code", "activation": "click", "kind": "navigation", @@ -787,12 +787,12 @@ ] }, { - "url": "http://127.0.0.1:37223/", + "url": "http://127.0.0.1:37233/", "title": "Conduit", "actions": [ { - "id": "92446496b665", - "pageUrl": "http://127.0.0.1:37223/", + "id": "070fba8120b1", + "pageUrl": "http://127.0.0.1:37233/", "label": "conduit", "activation": "click", "kind": "navigation", @@ -805,7 +805,7 @@ "role": "link", "accessibleName": "conduit", "text": "conduit", - "href": "http://127.0.0.1:37223/#/", + "href": "http://127.0.0.1:37233/#/", "candidates": [ { "strategy": "role", @@ -824,7 +824,7 @@ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37223/#/" + "value": "http://127.0.0.1:37233/#/" }, { "strategy": "text", @@ -842,8 +842,8 @@ "fields": [] }, { - "id": "dff655920243", - "pageUrl": "http://127.0.0.1:37223/", + "id": "ffceb40cfb20", + "pageUrl": "http://127.0.0.1:37233/", "label": "Source code", "activation": "click", "kind": "navigation", @@ -893,8 +893,8 @@ "fields": [] }, { - "id": "3800f03bc706", - "pageUrl": "http://127.0.0.1:37223/", + "id": "55104873d69e", + "pageUrl": "http://127.0.0.1:37233/", "label": "Home", "activation": "click", "kind": "navigation", @@ -907,7 +907,7 @@ "role": "link", "accessibleName": "Home", "text": "Home", - "href": "http://127.0.0.1:37223/#/", + "href": "http://127.0.0.1:37233/#/", "candidates": [ { "strategy": "role", @@ -926,7 +926,7 @@ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37223/#/" + "value": "http://127.0.0.1:37233/#/" }, { "strategy": "text", @@ -944,8 +944,8 @@ "fields": [] }, { - "id": "c88ed7554ce5", - "pageUrl": "http://127.0.0.1:37223/", + "id": "03f276fb1579", + "pageUrl": "http://127.0.0.1:37233/", "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:37223/#/editor", + "href": "http://127.0.0.1:37233/#/editor", "candidates": [ { "strategy": "role", @@ -977,7 +977,7 @@ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37223/#/editor" + "value": "http://127.0.0.1:37233/#/editor" }, { "strategy": "text", @@ -995,8 +995,8 @@ "fields": [] }, { - "id": "d61ab1459de8", - "pageUrl": "http://127.0.0.1:37223/", + "id": "3afde700c371", + "pageUrl": "http://127.0.0.1:37233/", "label": "Your Feed", "activation": "click", "kind": "local", @@ -1041,8 +1041,8 @@ "fields": [] }, { - "id": "a69f66f3ce86", - "pageUrl": "http://127.0.0.1:37223/", + "id": "3fd2dfe8a608", + "pageUrl": "http://127.0.0.1:37233/", "label": "Global Feed", "activation": "click", "kind": "local", @@ -1087,9 +1087,9 @@ "fields": [] }, { - "id": "bb360e1fb2b4", - "pageUrl": "http://127.0.0.1:37223/", - "label": "RD_TEST_F3F938_4", + "id": "b304dd4621e3", + "pageUrl": "http://127.0.0.1:37233/", + "label": "RD_TEST_234782_4", "activation": "click", "kind": "local", "intent": "interact", @@ -1099,28 +1099,28 @@ "tag": "button", "ordinal": 6, "role": "button", - "accessibleName": "RD_TEST_F3F938_4", - "text": "RD_TEST_F3F938_4", + "accessibleName": "RD_TEST_234782_4", + "text": "RD_TEST_234782_4", "type": "submit", "candidates": [ { "strategy": "role", "weight": 92, "role": "button", - "name": "RD_TEST_F3F938_4", + "name": "RD_TEST_234782_4", "exact": true }, { "strategy": "role", "weight": 82, "role": "button", - "name": "RD_TEST_F3F938_4", + "name": "RD_TEST_234782_4", "exact": false }, { "strategy": "text", "weight": 60, - "value": "RD_TEST_F3F938_4", + "value": "RD_TEST_234782_4", "exact": true }, { @@ -1133,9 +1133,9 @@ "fields": [] }, { - "id": "bfa7e43fb614", - "pageUrl": "http://127.0.0.1:37223/", - "label": "RD_TEST_45949F_4", + "id": "4d8e606dcc7e", + "pageUrl": "http://127.0.0.1:37233/", + "label": "RD_TEST_1E34DD_4", "activation": "click", "kind": "local", "intent": "interact", @@ -1145,28 +1145,28 @@ "tag": "button", "ordinal": 7, "role": "button", - "accessibleName": "RD_TEST_45949F_4", - "text": "RD_TEST_45949F_4", + "accessibleName": "RD_TEST_1E34DD_4", + "text": "RD_TEST_1E34DD_4", "type": "submit", "candidates": [ { "strategy": "role", "weight": 92, "role": "button", - "name": "RD_TEST_45949F_4", + "name": "RD_TEST_1E34DD_4", "exact": true }, { "strategy": "role", "weight": 82, "role": "button", - "name": "RD_TEST_45949F_4", + "name": "RD_TEST_1E34DD_4", "exact": false }, { "strategy": "text", "weight": 60, - "value": "RD_TEST_45949F_4", + "value": "RD_TEST_1E34DD_4", "exact": true }, { @@ -1179,8 +1179,8 @@ "fields": [] }, { - "id": "9d442a70bdcb", - "pageUrl": "http://127.0.0.1:37223/", + "id": "7e6c799322ef", + "pageUrl": "http://127.0.0.1:37233/", "label": "conduit", "activation": "click", "kind": "navigation", @@ -1193,7 +1193,7 @@ "role": "link", "accessibleName": "conduit", "text": "conduit", - "href": "http://127.0.0.1:37223/#/", + "href": "http://127.0.0.1:37233/#/", "candidates": [ { "strategy": "role", @@ -1212,7 +1212,7 @@ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37223/#/" + "value": "http://127.0.0.1:37233/#/" }, { "strategy": "text", @@ -1230,8 +1230,8 @@ "fields": [] }, { - "id": "d0d3611360e0", - "pageUrl": "http://127.0.0.1:37223/", + "id": "9e62e4f6f98f", + "pageUrl": "http://127.0.0.1:37233/", "label": "Thinkster", "activation": "click", "kind": "navigation", @@ -1281,8 +1281,8 @@ "fields": [] }, { - "id": "aece598f17f5", - "pageUrl": "http://127.0.0.1:37223/", + "id": "0de5cae7c6fc", + "pageUrl": "http://127.0.0.1:37233/", "label": "Source code", "activation": "click", "kind": "navigation", @@ -1338,8 +1338,8 @@ { "id": "RD-001", "action": { - "id": "7722bc8353e5", - "pageUrl": "http://127.0.0.1:37223/#/article/rd-test-4cbb5d-1", + "id": "cb81998fdf3d", + "pageUrl": "http://127.0.0.1:37233/#/article/rd-test-dacc94-1", "label": "conduit", "activation": "click", "kind": "navigation", @@ -1352,7 +1352,7 @@ "role": "link", "accessibleName": "conduit", "text": "conduit", - "href": "http://127.0.0.1:37223/#/", + "href": "http://127.0.0.1:37233/#/", "candidates": [ { "strategy": "role", @@ -1371,7 +1371,7 @@ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37223/#/" + "value": "http://127.0.0.1:37233/#/" }, { "strategy": "text", @@ -1389,33 +1389,33 @@ "fields": [] }, "evidence": { - "startedAt": "2026-07-26T12:20:52.649Z", - "durationMs": 2542, - "canary": "RD_TEST_7D7117", + "startedAt": "2026-07-26T14:11:09.533Z", + "durationMs": 2585, + "canary": "RD_TEST_8C9DD4", "network": [ { "id": "net-1", "method": "GET", - "url": "http://127.0.0.1:37223/api/articles/feed?limit=3&&offset=0", + "url": "http://127.0.0.1:37233/api/articles/feed?limit=3&&offset=0", "resourceType": "xhr", - "startedAt": 1562, + "startedAt": 1612, "status": 200, "ok": true, - "finishedAt": 1569, + "finishedAt": 1619, "contentType": "application/json", "resourceTypeHint": "feed" }, { "id": "net-2", "method": "GET", - "url": "http://127.0.0.1:37223/api/tags", + "url": "http://127.0.0.1:37233/api/tags", "resourceType": "xhr", - "startedAt": 1563, + "startedAt": 1613, "status": 200, "ok": true, + "finishedAt": 1618, "contentType": "application/json", - "resourceTypeHint": "tags", - "finishedAt": 1569 + "resourceTypeHint": "tags" } ], "console": [], @@ -1447,7 +1447,7 @@ "weight": 82, "matchCount": 2, "visibleCount": 2, - "elapsedMs": 9 + "elapsedMs": 10 }, { "strategy": "href", @@ -1476,10 +1476,10 @@ "retryCount": 0 }, "before": { - "at": 1524, - "url": "http://127.0.0.1:37223/#/article/rd-test-4cbb5d-1", + "at": 1564, + "url": "http://127.0.0.1:37233/#/article/rd-test-dacc94-1", "title": "Conduit", - "domHash": "c816d12e48c21b02", + "domHash": "6254e4b0c385fe94", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -1491,9 +1491,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "f602366b1479175d", + "textHash": "438d5ecb4c67ce18", "visualHash": "471347ba69eaf940", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_CRUD_OWNER RD_TEST_DACC94_1 RD_PHASE_L_CRUD_OWNER July 26, 2026 Delete Article Edit Article RD_TEST_DACC94_3 RD_TEST_234782_4 RD_PHASE_L_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", @@ -1545,7 +1545,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -1556,10 +1556,10 @@ } }, "beforeAction": { - "at": 1535, - "url": "http://127.0.0.1:37223/#/article/rd-test-4cbb5d-1", + "at": 1575, + "url": "http://127.0.0.1:37233/#/article/rd-test-dacc94-1", "title": "Conduit", - "domHash": "c816d12e48c21b02", + "domHash": "6254e4b0c385fe94", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -1571,9 +1571,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "f602366b1479175d", + "textHash": "438d5ecb4c67ce18", "visualHash": "471347ba69eaf940", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_CRUD_OWNER RD_TEST_DACC94_1 RD_PHASE_L_CRUD_OWNER July 26, 2026 Delete Article Edit Article RD_TEST_DACC94_3 RD_TEST_234782_4 RD_PHASE_L_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", @@ -1625,7 +1625,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -1638,10 +1638,10 @@ "networkSettled": true, "targetBusyAfter": false, "after": { - "at": 2538, - "url": "http://127.0.0.1:37223/#/", + "at": 2581, + "url": "http://127.0.0.1:37233/#/", "title": "Conduit", - "domHash": "82970581dc3ba0ed", + "domHash": "209947a5decfaf00", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -1653,9 +1653,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "38646687161ebd53", + "textHash": "5b8b6ea8b3f6063c", "visualHash": "efa2f7065933782f", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_CRUD_OWNER Your Feed Global Feed Articles not available. Popular Tags RD_TEST_234782_4RD_TEST_1E34DD_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "button", @@ -1693,7 +1693,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -1721,8 +1721,8 @@ { "id": "RD-002", "action": { - "id": "d3ae75fea87d", - "pageUrl": "http://127.0.0.1:37223/#/article/rd-test-4cbb5d-1", + "id": "cdc7a28860cf", + "pageUrl": "http://127.0.0.1:37233/#/article/rd-test-dacc94-1", "label": "Home", "activation": "click", "kind": "navigation", @@ -1735,7 +1735,7 @@ "role": "link", "accessibleName": "Home", "text": "Home", - "href": "http://127.0.0.1:37223/#/", + "href": "http://127.0.0.1:37233/#/", "candidates": [ { "strategy": "role", @@ -1754,7 +1754,7 @@ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37223/#/" + "value": "http://127.0.0.1:37233/#/" }, { "strategy": "text", @@ -1772,31 +1772,31 @@ "fields": [] }, "evidence": { - "startedAt": "2026-07-26T12:20:55.246Z", - "durationMs": 2488, - "canary": "RD_TEST_3DA46B", + "startedAt": "2026-07-26T14:11:12.172Z", + "durationMs": 2520, + "canary": "RD_TEST_58F7D0", "network": [ { "id": "net-1", "method": "GET", - "url": "http://127.0.0.1:37223/api/articles/feed?limit=3&&offset=0", + "url": "http://127.0.0.1:37233/api/articles/feed?limit=3&&offset=0", "resourceType": "xhr", - "startedAt": 1534, + "startedAt": 1559, "status": 200, "ok": true, - "finishedAt": 1543, + "finishedAt": 1566, "contentType": "application/json", "resourceTypeHint": "feed" }, { "id": "net-2", "method": "GET", - "url": "http://127.0.0.1:37223/api/tags", + "url": "http://127.0.0.1:37233/api/tags", "resourceType": "xhr", - "startedAt": 1534, + "startedAt": 1560, "status": 200, "ok": true, - "finishedAt": 1539, + "finishedAt": 1565, "contentType": "application/json", "resourceTypeHint": "tags" } @@ -1830,7 +1830,7 @@ "weight": 82, "matchCount": 1, "visibleCount": 1, - "elapsedMs": 5 + "elapsedMs": 6 } ], "chosenStrategy": "role", @@ -1838,10 +1838,10 @@ "retryCount": 0 }, "before": { - "at": 1485, - "url": "http://127.0.0.1:37223/#/article/rd-test-4cbb5d-1", + "at": 1518, + "url": "http://127.0.0.1:37233/#/article/rd-test-dacc94-1", "title": "Conduit", - "domHash": "c816d12e48c21b02", + "domHash": "6254e4b0c385fe94", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -1853,9 +1853,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "f602366b1479175d", + "textHash": "438d5ecb4c67ce18", "visualHash": "471347ba69eaf940", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_CRUD_OWNER RD_TEST_DACC94_1 RD_PHASE_L_CRUD_OWNER July 26, 2026 Delete Article Edit Article RD_TEST_DACC94_3 RD_TEST_234782_4 RD_PHASE_L_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", @@ -1907,7 +1907,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -1918,10 +1918,10 @@ } }, "beforeAction": { - "at": 1495, - "url": "http://127.0.0.1:37223/#/article/rd-test-4cbb5d-1", + "at": 1528, + "url": "http://127.0.0.1:37233/#/article/rd-test-dacc94-1", "title": "Conduit", - "domHash": "c816d12e48c21b02", + "domHash": "6254e4b0c385fe94", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -1933,9 +1933,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "f602366b1479175d", + "textHash": "438d5ecb4c67ce18", "visualHash": "471347ba69eaf940", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_CRUD_OWNER RD_TEST_DACC94_1 RD_PHASE_L_CRUD_OWNER July 26, 2026 Delete Article Edit Article RD_TEST_DACC94_3 RD_TEST_234782_4 RD_PHASE_L_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", @@ -1987,7 +1987,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -2000,10 +2000,10 @@ "networkSettled": true, "targetBusyAfter": false, "after": { - "at": 2484, - "url": "http://127.0.0.1:37223/#/", + "at": 2515, + "url": "http://127.0.0.1:37233/#/", "title": "Conduit", - "domHash": "82970581dc3ba0ed", + "domHash": "209947a5decfaf00", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -2015,9 +2015,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "38646687161ebd53", + "textHash": "5b8b6ea8b3f6063c", "visualHash": "efa2f7065933782f", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_CRUD_OWNER Your Feed Global Feed Articles not available. Popular Tags RD_TEST_234782_4RD_TEST_1E34DD_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "button", @@ -2055,7 +2055,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -2083,8 +2083,8 @@ { "id": "RD-003", "action": { - "id": "b87aecb8b12f", - "pageUrl": "http://127.0.0.1:37223/#/article/rd-test-4cbb5d-1", + "id": "71c8c264113a", + "pageUrl": "http://127.0.0.1:37233/#/article/rd-test-dacc94-1", "label": "New Article", "activation": "click", "kind": "navigation", @@ -2097,7 +2097,7 @@ "role": "link", "accessibleName": "New Article", "text": "New Article", - "href": "http://127.0.0.1:37223/#/editor", + "href": "http://127.0.0.1:37233/#/editor", "candidates": [ { "strategy": "role", @@ -2116,7 +2116,7 @@ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37223/#/editor" + "value": "http://127.0.0.1:37233/#/editor" }, { "strategy": "text", @@ -2134,9 +2134,9 @@ "fields": [] }, "evidence": { - "startedAt": "2026-07-26T12:20:57.768Z", - "durationMs": 2529, - "canary": "RD_TEST_D50E93", + "startedAt": "2026-07-26T14:11:14.721Z", + "durationMs": 2530, + "canary": "RD_TEST_C86CA2", "network": [], "console": [], "pageErrors": [], @@ -2167,7 +2167,7 @@ "weight": 82, "matchCount": 1, "visibleCount": 1, - "elapsedMs": 6 + "elapsedMs": 5 } ], "chosenStrategy": "role", @@ -2175,10 +2175,10 @@ "retryCount": 0 }, "before": { - "at": 1510, - "url": "http://127.0.0.1:37223/#/article/rd-test-4cbb5d-1", + "at": 1526, + "url": "http://127.0.0.1:37233/#/article/rd-test-dacc94-1", "title": "Conduit", - "domHash": "c816d12e48c21b02", + "domHash": "6254e4b0c385fe94", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -2190,9 +2190,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "f602366b1479175d", + "textHash": "438d5ecb4c67ce18", "visualHash": "471347ba69eaf940", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_CRUD_OWNER RD_TEST_DACC94_1 RD_PHASE_L_CRUD_OWNER July 26, 2026 Delete Article Edit Article RD_TEST_DACC94_3 RD_TEST_234782_4 RD_PHASE_L_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", @@ -2244,7 +2244,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -2255,10 +2255,10 @@ } }, "beforeAction": { - "at": 1520, - "url": "http://127.0.0.1:37223/#/article/rd-test-4cbb5d-1", + "at": 1535, + "url": "http://127.0.0.1:37233/#/article/rd-test-dacc94-1", "title": "Conduit", - "domHash": "c816d12e48c21b02", + "domHash": "6254e4b0c385fe94", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -2270,9 +2270,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "f602366b1479175d", + "textHash": "438d5ecb4c67ce18", "visualHash": "471347ba69eaf940", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_CRUD_OWNER RD_TEST_DACC94_1 RD_PHASE_L_CRUD_OWNER July 26, 2026 Delete Article Edit Article RD_TEST_DACC94_3 RD_TEST_234782_4 RD_PHASE_L_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", @@ -2324,7 +2324,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -2337,10 +2337,10 @@ "networkSettled": true, "targetBusyAfter": false, "after": { - "at": 2525, - "url": "http://127.0.0.1:37223/#/editor", + "at": 2527, + "url": "http://127.0.0.1:37233/#/editor", "title": "Conduit", - "domHash": "c936833dbedd7df2", + "domHash": "a01e944d4b62d184", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -2352,9 +2352,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "d0c4b4fdb77a11e9", + "textHash": "e1abb484093cff92", "visualHash": "b85410fa0ea5a358", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_CRUD_OWNER Publish Article conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "input", @@ -2406,7 +2406,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -2434,9 +2434,9 @@ { "id": "RD-004", "action": { - "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", + "id": "287d80c0a6b5", + "pageUrl": "http://127.0.0.1:37233/#/article/rd-test-dacc94-1", + "label": "http://127.0.0.1:37233/#/profile/RD_PHASE_L_CRUD_OWNER", "activation": "click", "kind": "navigation", "intent": "navigate", @@ -2446,12 +2446,12 @@ "tag": "a", "ordinal": 4, "role": "link", - "href": "http://127.0.0.1:37223/#/profile/RD_PHASE_K_CRUD_OWNER", + "href": "http://127.0.0.1:37233/#/profile/RD_PHASE_L_CRUD_OWNER", "candidates": [ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37223/#/profile/RD_PHASE_K_CRUD_OWNER" + "value": "http://127.0.0.1:37233/#/profile/RD_PHASE_L_CRUD_OWNER" }, { "strategy": "css", @@ -2463,19 +2463,19 @@ "fields": [] }, "evidence": { - "startedAt": "2026-07-26T12:21:00.327Z", - "durationMs": 2485, - "canary": "RD_TEST_133A67", + "startedAt": "2026-07-26T14:11:17.280Z", + "durationMs": 2501, + "canary": "RD_TEST_F444A5", "network": [ { "id": "net-1", "method": "GET", - "url": "http://127.0.0.1:37223/api/articles?author=RD_PHASE_K_CRUD_OWNER&&limit=3&&offset=0", + "url": "http://127.0.0.1:37233/api/articles?author=RD_PHASE_L_CRUD_OWNER&&limit=3&&offset=0", "resourceType": "xhr", - "startedAt": 1502, + "startedAt": 1517, "status": 200, "ok": true, - "finishedAt": 1515, + "finishedAt": 1528, "contentType": "application/json", "resourceTypeHint": "articles" } @@ -2509,7 +2509,7 @@ "weight": 35, "matchCount": 1, "visibleCount": 1, - "elapsedMs": 5 + "elapsedMs": 4 } ], "chosenStrategy": "css", @@ -2517,10 +2517,10 @@ "retryCount": 0 }, "before": { - "at": 1468, - "url": "http://127.0.0.1:37223/#/article/rd-test-4cbb5d-1", + "at": 1484, + "url": "http://127.0.0.1:37233/#/article/rd-test-dacc94-1", "title": "Conduit", - "domHash": "c816d12e48c21b02", + "domHash": "6254e4b0c385fe94", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -2532,9 +2532,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "f602366b1479175d", + "textHash": "438d5ecb4c67ce18", "visualHash": "471347ba69eaf940", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_CRUD_OWNER RD_TEST_DACC94_1 RD_PHASE_L_CRUD_OWNER July 26, 2026 Delete Article Edit Article RD_TEST_DACC94_3 RD_TEST_234782_4 RD_PHASE_L_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", @@ -2586,7 +2586,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -2597,10 +2597,10 @@ } }, "beforeAction": { - "at": 1478, - "url": "http://127.0.0.1:37223/#/article/rd-test-4cbb5d-1", + "at": 1494, + "url": "http://127.0.0.1:37233/#/article/rd-test-dacc94-1", "title": "Conduit", - "domHash": "c816d12e48c21b02", + "domHash": "6254e4b0c385fe94", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -2612,9 +2612,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "f602366b1479175d", + "textHash": "438d5ecb4c67ce18", "visualHash": "471347ba69eaf940", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_CRUD_OWNER RD_TEST_DACC94_1 RD_PHASE_L_CRUD_OWNER July 26, 2026 Delete Article Edit Article RD_TEST_DACC94_3 RD_TEST_234782_4 RD_PHASE_L_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", @@ -2666,7 +2666,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -2678,10 +2678,10 @@ }, "networkSettled": true, "after": { - "at": 2480, - "url": "http://127.0.0.1:37223/#/profile/RD_PHASE_K_CRUD_OWNER", + "at": 2497, + "url": "http://127.0.0.1:37233/#/profile/RD_PHASE_L_CRUD_OWNER", "title": "Conduit", - "domHash": "685268f6519d190c", + "domHash": "7c86d4aa49de7697", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -2693,9 +2693,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "9bb35e91eb331515", + "textHash": "05abb391760a58a4", "visualHash": "51ee9543781f73ba", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_CRUD_OWNER RD_PHASE_L_CRUD_OWNER Edit Profile Settings My Articles Favorited Articles RD_PHASE_L_CRUD_OWNER July 26, 2026 ( 0 ) RD_TEST_1E34DD_1 RD_TEST_1E34DD_2 Read more... RD_TEST_1E34DD_4 RD_PHASE_L_CRUD_OWNER July 26, 2026 ( 0 ) RD_TEST_DACC94_1 RD_TEST_DACC94_2 Read more... RD_TEST_234782_4 1 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "button", @@ -2719,7 +2719,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -2747,9 +2747,9 @@ { "id": "RD-005", "action": { - "id": "73251912f965", - "pageUrl": "http://127.0.0.1:37223/#/article/rd-test-4cbb5d-1", - "label": "RD_PHASE_K_CRUD_OWNER", + "id": "7c19765c9fcf", + "pageUrl": "http://127.0.0.1:37233/#/article/rd-test-dacc94-1", + "label": "RD_PHASE_L_CRUD_OWNER", "activation": "click", "kind": "navigation", "intent": "navigate", @@ -2759,33 +2759,33 @@ "tag": "a", "ordinal": 5, "role": "link", - "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", + "accessibleName": "RD_PHASE_L_CRUD_OWNER", + "text": "RD_PHASE_L_CRUD_OWNER", + "href": "http://127.0.0.1:37233/#/profile/RD_PHASE_L_CRUD_OWNER", "candidates": [ { "strategy": "role", "weight": 92, "role": "link", - "name": "RD_PHASE_K_CRUD_OWNER", + "name": "RD_PHASE_L_CRUD_OWNER", "exact": true }, { "strategy": "role", "weight": 82, "role": "link", - "name": "RD_PHASE_K_CRUD_OWNER", + "name": "RD_PHASE_L_CRUD_OWNER", "exact": false }, { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37223/#/profile/RD_PHASE_K_CRUD_OWNER" + "value": "http://127.0.0.1:37233/#/profile/RD_PHASE_L_CRUD_OWNER" }, { "strategy": "text", "weight": 60, - "value": "RD_PHASE_K_CRUD_OWNER", + "value": "RD_PHASE_L_CRUD_OWNER", "exact": true }, { @@ -2798,19 +2798,19 @@ "fields": [] }, "evidence": { - "startedAt": "2026-07-26T12:21:02.838Z", - "durationMs": 2559, - "canary": "RD_TEST_EED027", + "startedAt": "2026-07-26T14:11:19.807Z", + "durationMs": 2540, + "canary": "RD_TEST_7D8CCB", "network": [ { "id": "net-1", "method": "GET", - "url": "http://127.0.0.1:37223/api/articles?author=RD_PHASE_K_CRUD_OWNER&&limit=3&&offset=0", + "url": "http://127.0.0.1:37233/api/articles?author=RD_PHASE_L_CRUD_OWNER&&limit=3&&offset=0", "resourceType": "xhr", - "startedAt": 1588, + "startedAt": 1555, "status": 200, "ok": true, - "finishedAt": 1598, + "finishedAt": 1565, "contentType": "application/json", "resourceTypeHint": "articles" } @@ -2851,21 +2851,21 @@ "weight": 72, "matchCount": 0, "visibleCount": 0, - "elapsedMs": 3 + "elapsedMs": 2 }, { "strategy": "text", "weight": 60, "matchCount": 3, "visibleCount": 3, - "elapsedMs": 8 + "elapsedMs": 9 }, { "strategy": "css", "weight": 35, "matchCount": 1, "visibleCount": 1, - "elapsedMs": 5 + "elapsedMs": 4 } ], "chosenStrategy": "css", @@ -2873,10 +2873,10 @@ "retryCount": 0 }, "before": { - "at": 1543, - "url": "http://127.0.0.1:37223/#/article/rd-test-4cbb5d-1", + "at": 1523, + "url": "http://127.0.0.1:37233/#/article/rd-test-dacc94-1", "title": "Conduit", - "domHash": "c816d12e48c21b02", + "domHash": "6254e4b0c385fe94", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -2888,9 +2888,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "f602366b1479175d", + "textHash": "438d5ecb4c67ce18", "visualHash": "471347ba69eaf940", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_CRUD_OWNER RD_TEST_DACC94_1 RD_PHASE_L_CRUD_OWNER July 26, 2026 Delete Article Edit Article RD_TEST_DACC94_3 RD_TEST_234782_4 RD_PHASE_L_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", @@ -2942,7 +2942,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -2953,10 +2953,10 @@ } }, "beforeAction": { - "at": 1552, - "url": "http://127.0.0.1:37223/#/article/rd-test-4cbb5d-1", + "at": 1532, + "url": "http://127.0.0.1:37233/#/article/rd-test-dacc94-1", "title": "Conduit", - "domHash": "c816d12e48c21b02", + "domHash": "6254e4b0c385fe94", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -2968,9 +2968,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "f602366b1479175d", + "textHash": "438d5ecb4c67ce18", "visualHash": "471347ba69eaf940", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_CRUD_OWNER RD_TEST_DACC94_1 RD_PHASE_L_CRUD_OWNER July 26, 2026 Delete Article Edit Article RD_TEST_DACC94_3 RD_TEST_234782_4 RD_PHASE_L_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", @@ -3022,7 +3022,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -3035,10 +3035,10 @@ "networkSettled": true, "targetBusyAfter": false, "after": { - "at": 2555, - "url": "http://127.0.0.1:37223/#/profile/RD_PHASE_K_CRUD_OWNER", + "at": 2535, + "url": "http://127.0.0.1:37233/#/profile/RD_PHASE_L_CRUD_OWNER", "title": "Conduit", - "domHash": "685268f6519d190c", + "domHash": "7c86d4aa49de7697", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -3050,9 +3050,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "9bb35e91eb331515", + "textHash": "05abb391760a58a4", "visualHash": "51ee9543781f73ba", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_CRUD_OWNER RD_PHASE_L_CRUD_OWNER Edit Profile Settings My Articles Favorited Articles RD_PHASE_L_CRUD_OWNER July 26, 2026 ( 0 ) RD_TEST_1E34DD_1 RD_TEST_1E34DD_2 Read more... RD_TEST_1E34DD_4 RD_PHASE_L_CRUD_OWNER July 26, 2026 ( 0 ) RD_TEST_DACC94_1 RD_TEST_DACC94_2 Read more... RD_TEST_234782_4 1 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "button", @@ -3076,7 +3076,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -3104,8 +3104,8 @@ { "id": "RD-006", "action": { - "id": "6e951fb42425", - "pageUrl": "http://127.0.0.1:37223/#/article/rd-test-4cbb5d-1", + "id": "c2bb393af83c", + "pageUrl": "http://127.0.0.1:37233/#/article/rd-test-dacc94-1", "label": "Edit Article", "activation": "click", "kind": "mutation", @@ -3150,31 +3150,31 @@ "fields": [] }, "evidence": { - "startedAt": "2026-07-26T12:21:05.526Z", - "durationMs": 7103, - "canary": "RD_TEST_D8AC8B", + "startedAt": "2026-07-26T14:11:22.472Z", + "durationMs": 7078, + "canary": "RD_TEST_1E55B4", "network": [ { "id": "net-1", "method": "GET", - "url": "http://127.0.0.1:37223/", + "url": "http://127.0.0.1:37233/", "resourceType": "document", - "startedAt": 2783, + "startedAt": 2814, "status": 200, "ok": true, "contentType": "text/html", "resourceTypeHint": "resource", - "finishedAt": 2791 + "finishedAt": 2821 }, { "id": "net-2", "method": "GET", "url": "http://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css", "resourceType": "stylesheet", - "startedAt": 2789, + "startedAt": 2820, "status": 307, "ok": false, - "finishedAt": 2792, + "finishedAt": 2823, "location": "https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css", "resourceTypeHint": "ionicons.min.css" }, @@ -3183,58 +3183,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": 2790, + "startedAt": 2821, "status": 200, "ok": true, - "finishedAt": 2841, + "finishedAt": 2859, "contentType": "text/css", "resourceTypeHint": "css" }, { "id": "net-4", "method": "GET", - "url": "http://127.0.0.1:37223/assets/index-CLdavoKn.js", + "url": "http://127.0.0.1:37233/assets/index-CLdavoKn.js", "resourceType": "script", - "startedAt": 2790, + "startedAt": 2821, "status": 200, "ok": true, - "finishedAt": 2804, + "finishedAt": 2834, "contentType": "text/javascript", "resourceTypeHint": "index-CLdavoKn.js" }, { "id": "net-5", "method": "GET", - "url": "http://127.0.0.1:37223/assets/index-De1Lwdlm.css", + "url": "http://127.0.0.1:37233/assets/index-De1Lwdlm.css", "resourceType": "stylesheet", - "startedAt": 2790, + "startedAt": 2821, "status": 200, "ok": true, - "finishedAt": 2796, "contentType": "text/css", - "resourceTypeHint": "index-De1Lwdlm.css" + "resourceTypeHint": "index-De1Lwdlm.css", + "finishedAt": 2826 }, { "id": "net-6", "method": "GET", "url": "https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css", "resourceType": "stylesheet", - "startedAt": 2793, + "startedAt": 2823, "status": 200, "ok": true, - "finishedAt": 3059, "contentType": "text/css", - "resourceTypeHint": "ionicons.min.css" + "resourceTypeHint": "ionicons.min.css", + "finishedAt": 2980 }, { "id": "net-7", "method": "GET", "url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdu.woff2", "resourceType": "font", - "startedAt": 3068, + "startedAt": 2990, "status": 200, "ok": true, - "finishedAt": 3114, + "finishedAt": 3037, "contentType": "font/woff2", "resourceTypeHint": "6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdu.woff2" }, @@ -3243,10 +3243,10 @@ "method": "GET", "url": "https://code.ionicframework.com/ionicons/2.0.1/fonts/ionicons.ttf?v=2.0.1", "resourceType": "font", - "startedAt": 3068, + "startedAt": 2991, "status": 200, "ok": true, - "finishedAt": 3179, + "finishedAt": 3115, "contentType": "font/ttf", "resourceTypeHint": "ionicons.ttf" }, @@ -3255,10 +3255,10 @@ "method": "GET", "url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7l.woff2", "resourceType": "font", - "startedAt": 3069, + "startedAt": 2991, "status": 200, "ok": true, - "finishedAt": 3120, + "finishedAt": 3038, "contentType": "font/woff2", "resourceTypeHint": "6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7l.woff2" }, @@ -3267,46 +3267,46 @@ "method": "GET", "url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7nsDI.woff2", "resourceType": "font", - "startedAt": 3069, + "startedAt": 2991, "status": 200, "ok": true, - "finishedAt": 3116, + "finishedAt": 3039, "contentType": "font/woff2", "resourceTypeHint": "6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7nsDI.woff2" }, { "id": "net-11", "method": "GET", - "url": "http://127.0.0.1:37223/api/user", + "url": "http://127.0.0.1:37233/api/user", "resourceType": "xhr", - "startedAt": 3071, + "startedAt": 2993, "status": 200, "ok": true, - "finishedAt": 3075, + "finishedAt": 2998, "contentType": "application/json", "resourceTypeHint": "user" }, { "id": "net-12", "method": "GET", - "url": "http://127.0.0.1:37223/", + "url": "http://127.0.0.1:37233/", "resourceType": "document", - "startedAt": 3888, + "startedAt": 3810, "status": 200, "ok": true, "contentType": "text/html", "resourceTypeHint": "resource", - "finishedAt": 3895 + "finishedAt": 3818 }, { "id": "net-13", "method": "GET", "url": "http://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css", "resourceType": "stylesheet", - "startedAt": 3893, + "startedAt": 3816, "status": 307, "ok": false, - "finishedAt": 3896, + "finishedAt": 3819, "location": "https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css", "resourceTypeHint": "ionicons.min.css" }, @@ -3315,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": 3894, + "startedAt": 3817, "status": 200, "ok": true, - "finishedAt": 3938, + "finishedAt": 3855, "contentType": "text/css", "resourceTypeHint": "css" }, { "id": "net-15", "method": "GET", - "url": "http://127.0.0.1:37223/assets/index-CLdavoKn.js", + "url": "http://127.0.0.1:37233/assets/index-CLdavoKn.js", "resourceType": "script", - "startedAt": 3894, + "startedAt": 3817, "status": 200, "ok": true, - "finishedAt": 3906, + "finishedAt": 3830, "contentType": "text/javascript", "resourceTypeHint": "index-CLdavoKn.js" }, { "id": "net-16", "method": "GET", - "url": "http://127.0.0.1:37223/assets/index-De1Lwdlm.css", + "url": "http://127.0.0.1:37233/assets/index-De1Lwdlm.css", "resourceType": "stylesheet", - "startedAt": 3894, + "startedAt": 3817, "status": 200, "ok": true, + "finishedAt": 3822, "contentType": "text/css", - "resourceTypeHint": "index-De1Lwdlm.css", - "finishedAt": 3899 + "resourceTypeHint": "index-De1Lwdlm.css" }, { "id": "net-17", "method": "GET", "url": "https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css", "resourceType": "stylesheet", - "startedAt": 3896, + "startedAt": 3819, "status": 200, "ok": true, - "finishedAt": 3969, + "finishedAt": 3916, "contentType": "text/css", "resourceTypeHint": "ionicons.min.css" }, @@ -3363,10 +3363,10 @@ "method": "GET", "url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdu.woff2", "resourceType": "font", - "startedAt": 3978, + "startedAt": 3924, "status": 200, "ok": true, - "finishedAt": 4030, + "finishedAt": 3970, "contentType": "font/woff2", "resourceTypeHint": "6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdu.woff2" }, @@ -3375,22 +3375,22 @@ "method": "GET", "url": "https://code.ionicframework.com/ionicons/2.0.1/fonts/ionicons.ttf?v=2.0.1", "resourceType": "font", - "startedAt": 3979, + "startedAt": 3925, "status": 200, "ok": true, + "finishedAt": 4044, "contentType": "font/ttf", - "resourceTypeHint": "ionicons.ttf", - "finishedAt": 4086 + "resourceTypeHint": "ionicons.ttf" }, { "id": "net-20", "method": "GET", "url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7l.woff2", "resourceType": "font", - "startedAt": 3979, + "startedAt": 3926, "status": 200, "ok": true, - "finishedAt": 4025, + "finishedAt": 3971, "contentType": "font/woff2", "resourceTypeHint": "6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7l.woff2" }, @@ -3399,22 +3399,22 @@ "method": "GET", "url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7nsDI.woff2", "resourceType": "font", - "startedAt": 3979, + "startedAt": 3926, "status": 200, "ok": true, - "finishedAt": 4024, + "finishedAt": 3973, "contentType": "font/woff2", "resourceTypeHint": "6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7nsDI.woff2" }, { "id": "net-22", "method": "GET", - "url": "http://127.0.0.1:37223/api/user", + "url": "http://127.0.0.1:37233/api/user", "resourceType": "xhr", - "startedAt": 3981, + "startedAt": 3927, "status": 200, "ok": true, - "finishedAt": 3985, + "finishedAt": 3931, "contentType": "application/json", "resourceTypeHint": "user" } @@ -3441,21 +3441,21 @@ "weight": 92, "matchCount": 0, "visibleCount": 0, - "elapsedMs": 3 + "elapsedMs": 2 }, { "strategy": "role", "weight": 82, "matchCount": 2, "visibleCount": 2, - "elapsedMs": 8 + "elapsedMs": 7 }, { "strategy": "text", "weight": 60, "matchCount": 2, "visibleCount": 2, - "elapsedMs": 8 + "elapsedMs": 7 }, { "strategy": "css", @@ -3470,10 +3470,10 @@ "retryCount": 0 }, "before": { - "at": 1505, - "url": "http://127.0.0.1:37223/#/article/rd-test-4cbb5d-1", + "at": 1538, + "url": "http://127.0.0.1:37233/#/article/rd-test-dacc94-1", "title": "Conduit", - "domHash": "c816d12e48c21b02", + "domHash": "6254e4b0c385fe94", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -3485,9 +3485,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "f602366b1479175d", + "textHash": "438d5ecb4c67ce18", "visualHash": "471347ba69eaf940", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_CRUD_OWNER RD_TEST_DACC94_1 RD_PHASE_L_CRUD_OWNER July 26, 2026 Delete Article Edit Article RD_TEST_DACC94_3 RD_TEST_234782_4 RD_PHASE_L_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", @@ -3539,7 +3539,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -3556,12 +3556,12 @@ "rows": [ { "keyHash": "186347d9ea7673a2", - "rowHash": "513a00e32394f4c2", + "rowHash": "0c12beb933a01c68", "softDeleted": false }, { "keyHash": "da7114755c3b82ba", - "rowHash": "a43fe358be8329c7", + "rowHash": "8f0ac8ad441fe2c9", "softDeleted": false } ], @@ -3598,8 +3598,8 @@ "softDeleted": false }, { - "keyHash": "667da1af4b45220f", - "rowHash": "5c8f98476fb3bfca", + "keyHash": "75453dbfb3621178", + "rowHash": "2daa65787e249e4f", "softDeleted": false } ], @@ -3612,12 +3612,12 @@ "rows": [ { "keyHash": "186347d9ea7673a2", - "rowHash": "513a00e32394f4c2", + "rowHash": "0c12beb933a01c68", "softDeleted": false }, { "keyHash": "da7114755c3b82ba", - "rowHash": "a43fe358be8329c7", + "rowHash": "8f0ac8ad441fe2c9", "softDeleted": false } ], @@ -3654,8 +3654,8 @@ "softDeleted": false }, { - "keyHash": "667da1af4b45220f", - "rowHash": "5c8f98476fb3bfca", + "keyHash": "75453dbfb3621178", + "rowHash": "2daa65787e249e4f", "softDeleted": false } ], @@ -3664,10 +3664,10 @@ ] }, "beforeAction": { - "at": 1516, - "url": "http://127.0.0.1:37223/#/article/rd-test-4cbb5d-1", + "at": 1547, + "url": "http://127.0.0.1:37233/#/article/rd-test-dacc94-1", "title": "Conduit", - "domHash": "c816d12e48c21b02", + "domHash": "6254e4b0c385fe94", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -3679,9 +3679,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "f602366b1479175d", + "textHash": "438d5ecb4c67ce18", "visualHash": "471347ba69eaf940", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_CRUD_OWNER RD_TEST_DACC94_1 RD_PHASE_L_CRUD_OWNER July 26, 2026 Delete Article Edit Article RD_TEST_DACC94_3 RD_TEST_234782_4 RD_PHASE_L_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", @@ -3733,7 +3733,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -3746,10 +3746,10 @@ "targetDisabledAfter": false, "networkSettled": true, "after": { - "at": 2777, - "url": "http://127.0.0.1:37223/#/editor/rd-test-4cbb5d-1", + "at": 2808, + "url": "http://127.0.0.1:37233/#/editor/rd-test-dacc94-1", "title": "Conduit", - "domHash": "433fc4cb832cca73", + "domHash": "cccacce675c5b9d7", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -3761,15 +3761,15 @@ "accessDenied": false }, "semanticDom": { - "textHash": "e17c5fa668856e91", + "textHash": "355f46d83ddde135", "visualHash": "b85410fa0ea5a358", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_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": "63a60e1888a32b7e", + "valueHash": "a48a84f5149688c1", "checked": false, "disabled": false, "visible": true @@ -3778,7 +3778,7 @@ "tag": "input", "type": "text", "name": "description", - "valueHash": "67d21f750d5684dd", + "valueHash": "ab4ef4afe044165b", "checked": false, "disabled": false, "visible": true @@ -3787,7 +3787,7 @@ "tag": "textarea", "type": "textarea", "name": "body", - "valueHash": "6424bfab43262088", + "valueHash": "f32e15eeddeea5e9", "disabled": false, "visible": true }, @@ -3795,7 +3795,7 @@ "tag": "input", "type": "text", "name": "tags", - "valueHash": "9b3570f9ddf845d4", + "valueHash": "ab16fe3c80ddcf68", "checked": false, "disabled": false, "visible": true @@ -3815,7 +3815,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -3832,12 +3832,12 @@ "rows": [ { "keyHash": "186347d9ea7673a2", - "rowHash": "513a00e32394f4c2", + "rowHash": "0c12beb933a01c68", "softDeleted": false }, { "keyHash": "da7114755c3b82ba", - "rowHash": "a43fe358be8329c7", + "rowHash": "8f0ac8ad441fe2c9", "softDeleted": false } ], @@ -3874,8 +3874,8 @@ "softDeleted": false }, { - "keyHash": "667da1af4b45220f", - "rowHash": "5c8f98476fb3bfca", + "keyHash": "75453dbfb3621178", + "rowHash": "2daa65787e249e4f", "softDeleted": false } ], @@ -3888,12 +3888,12 @@ "rows": [ { "keyHash": "186347d9ea7673a2", - "rowHash": "513a00e32394f4c2", + "rowHash": "0c12beb933a01c68", "softDeleted": false }, { "keyHash": "da7114755c3b82ba", - "rowHash": "a43fe358be8329c7", + "rowHash": "8f0ac8ad441fe2c9", "softDeleted": false } ], @@ -3930,8 +3930,8 @@ "softDeleted": false }, { - "keyHash": "667da1af4b45220f", - "rowHash": "5c8f98476fb3bfca", + "keyHash": "75453dbfb3621178", + "rowHash": "2daa65787e249e4f", "softDeleted": false } ], @@ -3940,10 +3940,10 @@ ] }, "afterRefresh": { - "at": 3884, - "url": "http://127.0.0.1:37223/#/editor/rd-test-4cbb5d-1", + "at": 3807, + "url": "http://127.0.0.1:37233/#/editor/rd-test-dacc94-1", "title": "Conduit", - "domHash": "433fc4cb832cca73", + "domHash": "cccacce675c5b9d7", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -3955,15 +3955,15 @@ "accessDenied": false }, "semanticDom": { - "textHash": "e17c5fa668856e91", + "textHash": "355f46d83ddde135", "visualHash": "b85410fa0ea5a358", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_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": "63a60e1888a32b7e", + "valueHash": "a48a84f5149688c1", "checked": false, "disabled": false, "visible": true @@ -3972,7 +3972,7 @@ "tag": "input", "type": "text", "name": "description", - "valueHash": "67d21f750d5684dd", + "valueHash": "ab4ef4afe044165b", "checked": false, "disabled": false, "visible": true @@ -3981,7 +3981,7 @@ "tag": "textarea", "type": "textarea", "name": "body", - "valueHash": "6424bfab43262088", + "valueHash": "f32e15eeddeea5e9", "disabled": false, "visible": true }, @@ -3989,7 +3989,7 @@ "tag": "input", "type": "text", "name": "tags", - "valueHash": "9b3570f9ddf845d4", + "valueHash": "ab16fe3c80ddcf68", "checked": false, "disabled": false, "visible": true @@ -4009,7 +4009,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -4020,10 +4020,10 @@ } }, "afterHardRefresh": { - "at": 4796, - "url": "http://127.0.0.1:37223/#/editor/rd-test-4cbb5d-1", + "at": 4752, + "url": "http://127.0.0.1:37233/#/editor/rd-test-dacc94-1", "title": "Conduit", - "domHash": "433fc4cb832cca73", + "domHash": "cccacce675c5b9d7", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -4035,15 +4035,15 @@ "accessDenied": false }, "semanticDom": { - "textHash": "e17c5fa668856e91", + "textHash": "355f46d83ddde135", "visualHash": "b85410fa0ea5a358", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_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": "63a60e1888a32b7e", + "valueHash": "a48a84f5149688c1", "checked": false, "disabled": false, "visible": true @@ -4052,7 +4052,7 @@ "tag": "input", "type": "text", "name": "description", - "valueHash": "67d21f750d5684dd", + "valueHash": "ab4ef4afe044165b", "checked": false, "disabled": false, "visible": true @@ -4061,7 +4061,7 @@ "tag": "textarea", "type": "textarea", "name": "body", - "valueHash": "6424bfab43262088", + "valueHash": "f32e15eeddeea5e9", "disabled": false, "visible": true }, @@ -4069,7 +4069,7 @@ "tag": "input", "type": "text", "name": "tags", - "valueHash": "9b3570f9ddf845d4", + "valueHash": "ab16fe3c80ddcf68", "checked": false, "disabled": false, "visible": true @@ -4089,7 +4089,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -4100,10 +4100,10 @@ } }, "afterNewTab": { - "at": 5797, - "url": "http://127.0.0.1:37223/#/article/rd-test-4cbb5d-1", + "at": 5747, + "url": "http://127.0.0.1:37233/#/article/rd-test-dacc94-1", "title": "Conduit", - "domHash": "c816d12e48c21b02", + "domHash": "6254e4b0c385fe94", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -4115,9 +4115,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "f602366b1479175d", + "textHash": "438d5ecb4c67ce18", "visualHash": "471347ba69eaf940", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_CRUD_OWNER RD_TEST_DACC94_1 RD_PHASE_L_CRUD_OWNER July 26, 2026 Delete Article Edit Article RD_TEST_DACC94_3 RD_TEST_234782_4 RD_PHASE_L_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", @@ -4169,7 +4169,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -4180,10 +4180,10 @@ } }, "afterNewContext": { - "at": 7099, - "url": "http://127.0.0.1:37223/#/editor/rd-test-4cbb5d-1", + "at": 7075, + "url": "http://127.0.0.1:37233/#/editor/rd-test-dacc94-1", "title": "Conduit", - "domHash": "433fc4cb832cca73", + "domHash": "cccacce675c5b9d7", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -4195,15 +4195,15 @@ "accessDenied": false }, "semanticDom": { - "textHash": "e17c5fa668856e91", + "textHash": "355f46d83ddde135", "visualHash": "b85410fa0ea5a358", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_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": "63a60e1888a32b7e", + "valueHash": "a48a84f5149688c1", "checked": false, "disabled": false, "visible": true @@ -4212,7 +4212,7 @@ "tag": "input", "type": "text", "name": "description", - "valueHash": "67d21f750d5684dd", + "valueHash": "ab4ef4afe044165b", "checked": false, "disabled": false, "visible": true @@ -4221,7 +4221,7 @@ "tag": "textarea", "type": "textarea", "name": "body", - "valueHash": "6424bfab43262088", + "valueHash": "f32e15eeddeea5e9", "disabled": false, "visible": true }, @@ -4229,7 +4229,7 @@ "tag": "input", "type": "text", "name": "tags", - "valueHash": "9b3570f9ddf845d4", + "valueHash": "ab16fe3c80ddcf68", "checked": false, "disabled": false, "visible": true @@ -4249,7 +4249,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -4316,9 +4316,9 @@ { "id": "RD-007", "action": { - "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", + "id": "660de6efc205", + "pageUrl": "http://127.0.0.1:37233/#/article/rd-test-dacc94-1", + "label": "http://127.0.0.1:37233/#/profile/RD_PHASE_L_CRUD_OWNER", "activation": "click", "kind": "navigation", "intent": "navigate", @@ -4328,12 +4328,12 @@ "tag": "a", "ordinal": 8, "role": "link", - "href": "http://127.0.0.1:37223/#/profile/RD_PHASE_K_CRUD_OWNER", + "href": "http://127.0.0.1:37233/#/profile/RD_PHASE_L_CRUD_OWNER", "candidates": [ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37223/#/profile/RD_PHASE_K_CRUD_OWNER" + "value": "http://127.0.0.1:37233/#/profile/RD_PHASE_L_CRUD_OWNER" }, { "strategy": "css", @@ -4345,19 +4345,19 @@ "fields": [] }, "evidence": { - "startedAt": "2026-07-26T12:21:12.708Z", - "durationMs": 2563, - "canary": "RD_TEST_B91DFA", + "startedAt": "2026-07-26T14:11:29.635Z", + "durationMs": 2540, + "canary": "RD_TEST_80B2B1", "network": [ { "id": "net-1", "method": "GET", - "url": "http://127.0.0.1:37223/api/articles?author=RD_PHASE_K_CRUD_OWNER&&limit=3&&offset=0", + "url": "http://127.0.0.1:37233/api/articles?author=RD_PHASE_L_CRUD_OWNER&&limit=3&&offset=0", "resourceType": "xhr", - "startedAt": 1570, + "startedAt": 1560, "status": 200, "ok": true, - "finishedAt": 1584, + "finishedAt": 1570, "contentType": "application/json", "resourceTypeHint": "articles" } @@ -4384,7 +4384,7 @@ "weight": 72, "matchCount": 0, "visibleCount": 0, - "elapsedMs": 3 + "elapsedMs": 2 }, { "strategy": "css", @@ -4399,10 +4399,10 @@ "retryCount": 0 }, "before": { - "at": 1529, - "url": "http://127.0.0.1:37223/#/article/rd-test-4cbb5d-1", + "at": 1522, + "url": "http://127.0.0.1:37233/#/article/rd-test-dacc94-1", "title": "Conduit", - "domHash": "c816d12e48c21b02", + "domHash": "6254e4b0c385fe94", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -4414,9 +4414,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "f602366b1479175d", + "textHash": "438d5ecb4c67ce18", "visualHash": "471347ba69eaf940", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_CRUD_OWNER RD_TEST_DACC94_1 RD_PHASE_L_CRUD_OWNER July 26, 2026 Delete Article Edit Article RD_TEST_DACC94_3 RD_TEST_234782_4 RD_PHASE_L_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", @@ -4468,7 +4468,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -4479,10 +4479,10 @@ } }, "beforeAction": { - "at": 1542, - "url": "http://127.0.0.1:37223/#/article/rd-test-4cbb5d-1", + "at": 1531, + "url": "http://127.0.0.1:37233/#/article/rd-test-dacc94-1", "title": "Conduit", - "domHash": "c816d12e48c21b02", + "domHash": "6254e4b0c385fe94", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -4494,9 +4494,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "f602366b1479175d", + "textHash": "438d5ecb4c67ce18", "visualHash": "471347ba69eaf940", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_CRUD_OWNER RD_TEST_DACC94_1 RD_PHASE_L_CRUD_OWNER July 26, 2026 Delete Article Edit Article RD_TEST_DACC94_3 RD_TEST_234782_4 RD_PHASE_L_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", @@ -4548,7 +4548,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -4560,10 +4560,10 @@ }, "networkSettled": true, "after": { - "at": 2558, - "url": "http://127.0.0.1:37223/#/profile/RD_PHASE_K_CRUD_OWNER", + "at": 2536, + "url": "http://127.0.0.1:37233/#/profile/RD_PHASE_L_CRUD_OWNER", "title": "Conduit", - "domHash": "685268f6519d190c", + "domHash": "7c86d4aa49de7697", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -4575,9 +4575,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "9bb35e91eb331515", + "textHash": "05abb391760a58a4", "visualHash": "51ee9543781f73ba", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_CRUD_OWNER RD_PHASE_L_CRUD_OWNER Edit Profile Settings My Articles Favorited Articles RD_PHASE_L_CRUD_OWNER July 26, 2026 ( 0 ) RD_TEST_1E34DD_1 RD_TEST_1E34DD_2 Read more... RD_TEST_1E34DD_4 RD_PHASE_L_CRUD_OWNER July 26, 2026 ( 0 ) RD_TEST_DACC94_1 RD_TEST_DACC94_2 Read more... RD_TEST_234782_4 1 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "button", @@ -4601,7 +4601,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -4629,9 +4629,9 @@ { "id": "RD-008", "action": { - "id": "c17ee9d21303", - "pageUrl": "http://127.0.0.1:37223/#/article/rd-test-4cbb5d-1", - "label": "RD_PHASE_K_CRUD_OWNER", + "id": "ffddf6f2216f", + "pageUrl": "http://127.0.0.1:37233/#/article/rd-test-dacc94-1", + "label": "RD_PHASE_L_CRUD_OWNER", "activation": "click", "kind": "navigation", "intent": "navigate", @@ -4641,33 +4641,33 @@ "tag": "a", "ordinal": 9, "role": "link", - "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", + "accessibleName": "RD_PHASE_L_CRUD_OWNER", + "text": "RD_PHASE_L_CRUD_OWNER", + "href": "http://127.0.0.1:37233/#/profile/RD_PHASE_L_CRUD_OWNER", "candidates": [ { "strategy": "role", "weight": 92, "role": "link", - "name": "RD_PHASE_K_CRUD_OWNER", + "name": "RD_PHASE_L_CRUD_OWNER", "exact": true }, { "strategy": "role", "weight": 82, "role": "link", - "name": "RD_PHASE_K_CRUD_OWNER", + "name": "RD_PHASE_L_CRUD_OWNER", "exact": false }, { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37223/#/profile/RD_PHASE_K_CRUD_OWNER" + "value": "http://127.0.0.1:37233/#/profile/RD_PHASE_L_CRUD_OWNER" }, { "strategy": "text", "weight": 60, - "value": "RD_PHASE_K_CRUD_OWNER", + "value": "RD_PHASE_L_CRUD_OWNER", "exact": true }, { @@ -4680,19 +4680,19 @@ "fields": [] }, "evidence": { - "startedAt": "2026-07-26T12:21:15.300Z", - "durationMs": 2542, - "canary": "RD_TEST_024A26", + "startedAt": "2026-07-26T14:11:32.210Z", + "durationMs": 2518, + "canary": "RD_TEST_DB0CAB", "network": [ { "id": "net-1", "method": "GET", - "url": "http://127.0.0.1:37223/api/articles?author=RD_PHASE_K_CRUD_OWNER&&limit=3&&offset=0", + "url": "http://127.0.0.1:37233/api/articles?author=RD_PHASE_L_CRUD_OWNER&&limit=3&&offset=0", "resourceType": "xhr", - "startedAt": 1612, + "startedAt": 1552, "status": 200, "ok": true, - "finishedAt": 1627, + "finishedAt": 1562, "contentType": "application/json", "resourceTypeHint": "articles" } @@ -4719,14 +4719,14 @@ "weight": 92, "matchCount": 4, "visibleCount": 4, - "elapsedMs": 14 + "elapsedMs": 13 }, { "strategy": "role", "weight": 82, "matchCount": 4, "visibleCount": 4, - "elapsedMs": 13 + "elapsedMs": 11 }, { "strategy": "href", @@ -4740,7 +4740,7 @@ "weight": 60, "matchCount": 3, "visibleCount": 3, - "elapsedMs": 10 + "elapsedMs": 9 }, { "strategy": "css", @@ -4755,10 +4755,10 @@ "retryCount": 0 }, "before": { - "at": 1563, - "url": "http://127.0.0.1:37223/#/article/rd-test-4cbb5d-1", + "at": 1514, + "url": "http://127.0.0.1:37233/#/article/rd-test-dacc94-1", "title": "Conduit", - "domHash": "c816d12e48c21b02", + "domHash": "6254e4b0c385fe94", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -4770,9 +4770,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "f602366b1479175d", + "textHash": "438d5ecb4c67ce18", "visualHash": "471347ba69eaf940", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_CRUD_OWNER RD_TEST_DACC94_1 RD_PHASE_L_CRUD_OWNER July 26, 2026 Delete Article Edit Article RD_TEST_DACC94_3 RD_TEST_234782_4 RD_PHASE_L_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", @@ -4824,7 +4824,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -4835,10 +4835,10 @@ } }, "beforeAction": { - "at": 1574, - "url": "http://127.0.0.1:37223/#/article/rd-test-4cbb5d-1", + "at": 1523, + "url": "http://127.0.0.1:37233/#/article/rd-test-dacc94-1", "title": "Conduit", - "domHash": "c816d12e48c21b02", + "domHash": "6254e4b0c385fe94", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -4850,9 +4850,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "f602366b1479175d", + "textHash": "438d5ecb4c67ce18", "visualHash": "471347ba69eaf940", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_CRUD_OWNER RD_TEST_DACC94_1 RD_PHASE_L_CRUD_OWNER July 26, 2026 Delete Article Edit Article RD_TEST_DACC94_3 RD_TEST_234782_4 RD_PHASE_L_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", @@ -4904,7 +4904,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -4916,10 +4916,10 @@ }, "networkSettled": true, "after": { - "at": 2539, - "url": "http://127.0.0.1:37223/#/profile/RD_PHASE_K_CRUD_OWNER", + "at": 2514, + "url": "http://127.0.0.1:37233/#/profile/RD_PHASE_L_CRUD_OWNER", "title": "Conduit", - "domHash": "685268f6519d190c", + "domHash": "7c86d4aa49de7697", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -4931,9 +4931,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "9bb35e91eb331515", + "textHash": "05abb391760a58a4", "visualHash": "51ee9543781f73ba", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_CRUD_OWNER RD_PHASE_L_CRUD_OWNER Edit Profile Settings My Articles Favorited Articles RD_PHASE_L_CRUD_OWNER July 26, 2026 ( 0 ) RD_TEST_1E34DD_1 RD_TEST_1E34DD_2 Read more... RD_TEST_1E34DD_4 RD_PHASE_L_CRUD_OWNER July 26, 2026 ( 0 ) RD_TEST_DACC94_1 RD_TEST_DACC94_2 Read more... RD_TEST_234782_4 1 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "button", @@ -4957,7 +4957,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -4985,8 +4985,8 @@ { "id": "RD-009", "action": { - "id": "f95b5e51d8bf", - "pageUrl": "http://127.0.0.1:37223/#/article/rd-test-4cbb5d-1", + "id": "8f861b0e2353", + "pageUrl": "http://127.0.0.1:37233/#/article/rd-test-dacc94-1", "label": "Edit Article", "activation": "click", "kind": "mutation", @@ -5031,31 +5031,31 @@ "fields": [] }, "evidence": { - "startedAt": "2026-07-26T12:21:17.910Z", - "durationMs": 7096, - "canary": "RD_TEST_47884A", + "startedAt": "2026-07-26T14:11:34.830Z", + "durationMs": 7080, + "canary": "RD_TEST_B27C0C", "network": [ { "id": "net-1", "method": "GET", - "url": "http://127.0.0.1:37223/", + "url": "http://127.0.0.1:37233/", "resourceType": "document", - "startedAt": 2801, + "startedAt": 2791, "status": 200, "ok": true, "contentType": "text/html", "resourceTypeHint": "resource", - "finishedAt": 2810 + "finishedAt": 2798 }, { "id": "net-2", "method": "GET", "url": "http://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css", "resourceType": "stylesheet", - "startedAt": 2808, + "startedAt": 2797, "status": 307, "ok": false, - "finishedAt": 2811, + "finishedAt": 2800, "location": "https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css", "resourceTypeHint": "ionicons.min.css" }, @@ -5064,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": 2808, + "startedAt": 2797, "status": 200, "ok": true, - "finishedAt": 2847, + "finishedAt": 2836, "contentType": "text/css", "resourceTypeHint": "css" }, { "id": "net-4", "method": "GET", - "url": "http://127.0.0.1:37223/assets/index-CLdavoKn.js", + "url": "http://127.0.0.1:37233/assets/index-CLdavoKn.js", "resourceType": "script", - "startedAt": 2808, + "startedAt": 2798, "status": 200, "ok": true, - "finishedAt": 2824, + "finishedAt": 2811, "contentType": "text/javascript", "resourceTypeHint": "index-CLdavoKn.js" }, { "id": "net-5", "method": "GET", - "url": "http://127.0.0.1:37223/assets/index-De1Lwdlm.css", + "url": "http://127.0.0.1:37233/assets/index-De1Lwdlm.css", "resourceType": "stylesheet", - "startedAt": 2809, + "startedAt": 2798, "status": 200, "ok": true, - "finishedAt": 2814, + "finishedAt": 2802, "contentType": "text/css", "resourceTypeHint": "index-De1Lwdlm.css" }, @@ -5100,22 +5100,22 @@ "method": "GET", "url": "https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css", "resourceType": "stylesheet", - "startedAt": 2811, + "startedAt": 2800, "status": 200, "ok": true, - "finishedAt": 3086, "contentType": "text/css", - "resourceTypeHint": "ionicons.min.css" + "resourceTypeHint": "ionicons.min.css", + "finishedAt": 2955 }, { "id": "net-7", "method": "GET", "url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdu.woff2", "resourceType": "font", - "startedAt": 3096, + "startedAt": 2965, "status": 200, "ok": true, - "finishedAt": 3143, + "finishedAt": 3011, "contentType": "font/woff2", "resourceTypeHint": "6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdu.woff2" }, @@ -5124,10 +5124,10 @@ "method": "GET", "url": "https://code.ionicframework.com/ionicons/2.0.1/fonts/ionicons.ttf?v=2.0.1", "resourceType": "font", - "startedAt": 3097, + "startedAt": 2965, "status": 200, "ok": true, - "finishedAt": 3214, + "finishedAt": 3146, "contentType": "font/ttf", "resourceTypeHint": "ionicons.ttf" }, @@ -5136,10 +5136,10 @@ "method": "GET", "url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7l.woff2", "resourceType": "font", - "startedAt": 3097, + "startedAt": 2966, "status": 200, "ok": true, - "finishedAt": 3150, + "finishedAt": 3014, "contentType": "font/woff2", "resourceTypeHint": "6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7l.woff2" }, @@ -5148,46 +5148,46 @@ "method": "GET", "url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7nsDI.woff2", "resourceType": "font", - "startedAt": 3097, + "startedAt": 2966, "status": 200, "ok": true, - "finishedAt": 3143, + "finishedAt": 3014, "contentType": "font/woff2", "resourceTypeHint": "6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7nsDI.woff2" }, { "id": "net-11", "method": "GET", - "url": "http://127.0.0.1:37223/api/user", + "url": "http://127.0.0.1:37233/api/user", "resourceType": "xhr", - "startedAt": 3098, + "startedAt": 2967, "status": 200, "ok": true, - "finishedAt": 3103, + "finishedAt": 2972, "contentType": "application/json", "resourceTypeHint": "user" }, { "id": "net-12", "method": "GET", - "url": "http://127.0.0.1:37223/", + "url": "http://127.0.0.1:37233/", "resourceType": "document", - "startedAt": 3929, + "startedAt": 3794, "status": 200, "ok": true, "contentType": "text/html", "resourceTypeHint": "resource", - "finishedAt": 3936 + "finishedAt": 3801 }, { "id": "net-13", "method": "GET", "url": "http://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css", "resourceType": "stylesheet", - "startedAt": 3935, + "startedAt": 3800, "status": 307, "ok": false, - "finishedAt": 3938, + "finishedAt": 3803, "location": "https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css", "resourceTypeHint": "ionicons.min.css" }, @@ -5196,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": 3935, + "startedAt": 3800, "status": 200, "ok": true, - "finishedAt": 3973, + "finishedAt": 3862, "contentType": "text/css", "resourceTypeHint": "css" }, { "id": "net-15", "method": "GET", - "url": "http://127.0.0.1:37223/assets/index-CLdavoKn.js", + "url": "http://127.0.0.1:37233/assets/index-CLdavoKn.js", "resourceType": "script", - "startedAt": 3935, + "startedAt": 3801, "status": 200, "ok": true, - "finishedAt": 3948, + "finishedAt": 3814, "contentType": "text/javascript", "resourceTypeHint": "index-CLdavoKn.js" }, { "id": "net-16", "method": "GET", - "url": "http://127.0.0.1:37223/assets/index-De1Lwdlm.css", + "url": "http://127.0.0.1:37233/assets/index-De1Lwdlm.css", "resourceType": "stylesheet", - "startedAt": 3936, + "startedAt": 3801, "status": 200, "ok": true, - "finishedAt": 3940, + "finishedAt": 3805, "contentType": "text/css", "resourceTypeHint": "index-De1Lwdlm.css" }, @@ -5232,22 +5232,22 @@ "method": "GET", "url": "https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css", "resourceType": "stylesheet", - "startedAt": 3938, + "startedAt": 3803, "status": 200, "ok": true, - "finishedAt": 4011, "contentType": "text/css", - "resourceTypeHint": "ionicons.min.css" + "resourceTypeHint": "ionicons.min.css", + "finishedAt": 3884 }, { "id": "net-18", "method": "GET", "url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdu.woff2", "resourceType": "font", - "startedAt": 4021, + "startedAt": 3892, "status": 200, "ok": true, - "finishedAt": 4073, + "finishedAt": 3939, "contentType": "font/woff2", "resourceTypeHint": "6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdu.woff2" }, @@ -5256,22 +5256,22 @@ "method": "GET", "url": "https://code.ionicframework.com/ionicons/2.0.1/fonts/ionicons.ttf?v=2.0.1", "resourceType": "font", - "startedAt": 4021, + "startedAt": 3893, "status": 200, "ok": true, + "finishedAt": 4009, "contentType": "font/ttf", - "resourceTypeHint": "ionicons.ttf", - "finishedAt": 4140 + "resourceTypeHint": "ionicons.ttf" }, { "id": "net-20", "method": "GET", "url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7l.woff2", "resourceType": "font", - "startedAt": 4022, + "startedAt": 3894, "status": 200, "ok": true, - "finishedAt": 4067, + "finishedAt": 3939, "contentType": "font/woff2", "resourceTypeHint": "6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7l.woff2" }, @@ -5280,22 +5280,22 @@ "method": "GET", "url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7nsDI.woff2", "resourceType": "font", - "startedAt": 4022, + "startedAt": 3894, "status": 200, "ok": true, - "finishedAt": 4068, + "finishedAt": 3940, "contentType": "font/woff2", "resourceTypeHint": "6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7nsDI.woff2" }, { "id": "net-22", "method": "GET", - "url": "http://127.0.0.1:37223/api/user", + "url": "http://127.0.0.1:37233/api/user", "resourceType": "xhr", - "startedAt": 4023, + "startedAt": 3895, "status": 200, "ok": true, - "finishedAt": 4027, + "finishedAt": 3899, "contentType": "application/json", "resourceTypeHint": "user" } @@ -5322,14 +5322,14 @@ "weight": 92, "matchCount": 0, "visibleCount": 0, - "elapsedMs": 2 + "elapsedMs": 3 }, { "strategy": "role", "weight": 82, "matchCount": 2, "visibleCount": 2, - "elapsedMs": 8 + "elapsedMs": 7 }, { "strategy": "text", @@ -5343,7 +5343,7 @@ "weight": 35, "matchCount": 1, "visibleCount": 1, - "elapsedMs": 5 + "elapsedMs": 4 } ], "chosenStrategy": "css", @@ -5351,10 +5351,10 @@ "retryCount": 0 }, "before": { - "at": 1514, - "url": "http://127.0.0.1:37223/#/article/rd-test-4cbb5d-1", + "at": 1527, + "url": "http://127.0.0.1:37233/#/article/rd-test-dacc94-1", "title": "Conduit", - "domHash": "c816d12e48c21b02", + "domHash": "6254e4b0c385fe94", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -5366,9 +5366,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "f602366b1479175d", + "textHash": "438d5ecb4c67ce18", "visualHash": "471347ba69eaf940", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_CRUD_OWNER RD_TEST_DACC94_1 RD_PHASE_L_CRUD_OWNER July 26, 2026 Delete Article Edit Article RD_TEST_DACC94_3 RD_TEST_234782_4 RD_PHASE_L_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", @@ -5420,7 +5420,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -5437,12 +5437,12 @@ "rows": [ { "keyHash": "186347d9ea7673a2", - "rowHash": "513a00e32394f4c2", + "rowHash": "0c12beb933a01c68", "softDeleted": false }, { "keyHash": "da7114755c3b82ba", - "rowHash": "a43fe358be8329c7", + "rowHash": "8f0ac8ad441fe2c9", "softDeleted": false } ], @@ -5479,8 +5479,8 @@ "softDeleted": false }, { - "keyHash": "667da1af4b45220f", - "rowHash": "5c8f98476fb3bfca", + "keyHash": "75453dbfb3621178", + "rowHash": "2daa65787e249e4f", "softDeleted": false } ], @@ -5493,12 +5493,12 @@ "rows": [ { "keyHash": "186347d9ea7673a2", - "rowHash": "513a00e32394f4c2", + "rowHash": "0c12beb933a01c68", "softDeleted": false }, { "keyHash": "da7114755c3b82ba", - "rowHash": "a43fe358be8329c7", + "rowHash": "8f0ac8ad441fe2c9", "softDeleted": false } ], @@ -5535,8 +5535,8 @@ "softDeleted": false }, { - "keyHash": "667da1af4b45220f", - "rowHash": "5c8f98476fb3bfca", + "keyHash": "75453dbfb3621178", + "rowHash": "2daa65787e249e4f", "softDeleted": false } ], @@ -5545,10 +5545,10 @@ ] }, "beforeAction": { - "at": 1524, - "url": "http://127.0.0.1:37223/#/article/rd-test-4cbb5d-1", + "at": 1536, + "url": "http://127.0.0.1:37233/#/article/rd-test-dacc94-1", "title": "Conduit", - "domHash": "c816d12e48c21b02", + "domHash": "6254e4b0c385fe94", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -5560,9 +5560,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "f602366b1479175d", + "textHash": "438d5ecb4c67ce18", "visualHash": "471347ba69eaf940", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_CRUD_OWNER RD_TEST_DACC94_1 RD_PHASE_L_CRUD_OWNER July 26, 2026 Delete Article Edit Article RD_TEST_DACC94_3 RD_TEST_234782_4 RD_PHASE_L_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", @@ -5614,7 +5614,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -5627,10 +5627,10 @@ "targetDisabledAfter": false, "networkSettled": true, "after": { - "at": 2795, - "url": "http://127.0.0.1:37223/#/editor/rd-test-4cbb5d-1", + "at": 2786, + "url": "http://127.0.0.1:37233/#/editor/rd-test-dacc94-1", "title": "Conduit", - "domHash": "433fc4cb832cca73", + "domHash": "cccacce675c5b9d7", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -5642,15 +5642,15 @@ "accessDenied": false }, "semanticDom": { - "textHash": "e17c5fa668856e91", + "textHash": "355f46d83ddde135", "visualHash": "b85410fa0ea5a358", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_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": "63a60e1888a32b7e", + "valueHash": "a48a84f5149688c1", "checked": false, "disabled": false, "visible": true @@ -5659,7 +5659,7 @@ "tag": "input", "type": "text", "name": "description", - "valueHash": "67d21f750d5684dd", + "valueHash": "ab4ef4afe044165b", "checked": false, "disabled": false, "visible": true @@ -5668,7 +5668,7 @@ "tag": "textarea", "type": "textarea", "name": "body", - "valueHash": "6424bfab43262088", + "valueHash": "f32e15eeddeea5e9", "disabled": false, "visible": true }, @@ -5676,7 +5676,7 @@ "tag": "input", "type": "text", "name": "tags", - "valueHash": "9b3570f9ddf845d4", + "valueHash": "ab16fe3c80ddcf68", "checked": false, "disabled": false, "visible": true @@ -5696,7 +5696,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -5713,12 +5713,12 @@ "rows": [ { "keyHash": "186347d9ea7673a2", - "rowHash": "513a00e32394f4c2", + "rowHash": "0c12beb933a01c68", "softDeleted": false }, { "keyHash": "da7114755c3b82ba", - "rowHash": "a43fe358be8329c7", + "rowHash": "8f0ac8ad441fe2c9", "softDeleted": false } ], @@ -5755,8 +5755,8 @@ "softDeleted": false }, { - "keyHash": "667da1af4b45220f", - "rowHash": "5c8f98476fb3bfca", + "keyHash": "75453dbfb3621178", + "rowHash": "2daa65787e249e4f", "softDeleted": false } ], @@ -5769,12 +5769,12 @@ "rows": [ { "keyHash": "186347d9ea7673a2", - "rowHash": "513a00e32394f4c2", + "rowHash": "0c12beb933a01c68", "softDeleted": false }, { "keyHash": "da7114755c3b82ba", - "rowHash": "a43fe358be8329c7", + "rowHash": "8f0ac8ad441fe2c9", "softDeleted": false } ], @@ -5811,8 +5811,8 @@ "softDeleted": false }, { - "keyHash": "667da1af4b45220f", - "rowHash": "5c8f98476fb3bfca", + "keyHash": "75453dbfb3621178", + "rowHash": "2daa65787e249e4f", "softDeleted": false } ], @@ -5821,10 +5821,10 @@ ] }, "afterRefresh": { - "at": 3926, - "url": "http://127.0.0.1:37223/#/editor/rd-test-4cbb5d-1", + "at": 3791, + "url": "http://127.0.0.1:37233/#/editor/rd-test-dacc94-1", "title": "Conduit", - "domHash": "433fc4cb832cca73", + "domHash": "cccacce675c5b9d7", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -5836,15 +5836,15 @@ "accessDenied": false }, "semanticDom": { - "textHash": "e17c5fa668856e91", + "textHash": "355f46d83ddde135", "visualHash": "b85410fa0ea5a358", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_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": "63a60e1888a32b7e", + "valueHash": "a48a84f5149688c1", "checked": false, "disabled": false, "visible": true @@ -5853,7 +5853,7 @@ "tag": "input", "type": "text", "name": "description", - "valueHash": "67d21f750d5684dd", + "valueHash": "ab4ef4afe044165b", "checked": false, "disabled": false, "visible": true @@ -5862,7 +5862,7 @@ "tag": "textarea", "type": "textarea", "name": "body", - "valueHash": "6424bfab43262088", + "valueHash": "f32e15eeddeea5e9", "disabled": false, "visible": true }, @@ -5870,7 +5870,7 @@ "tag": "input", "type": "text", "name": "tags", - "valueHash": "9b3570f9ddf845d4", + "valueHash": "ab16fe3c80ddcf68", "checked": false, "disabled": false, "visible": true @@ -5890,7 +5890,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -5901,10 +5901,10 @@ } }, "afterHardRefresh": { - "at": 4847, - "url": "http://127.0.0.1:37223/#/editor/rd-test-4cbb5d-1", + "at": 4720, + "url": "http://127.0.0.1:37233/#/editor/rd-test-dacc94-1", "title": "Conduit", - "domHash": "433fc4cb832cca73", + "domHash": "cccacce675c5b9d7", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -5916,15 +5916,15 @@ "accessDenied": false }, "semanticDom": { - "textHash": "e17c5fa668856e91", + "textHash": "355f46d83ddde135", "visualHash": "b85410fa0ea5a358", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_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": "63a60e1888a32b7e", + "valueHash": "a48a84f5149688c1", "checked": false, "disabled": false, "visible": true @@ -5933,7 +5933,7 @@ "tag": "input", "type": "text", "name": "description", - "valueHash": "67d21f750d5684dd", + "valueHash": "ab4ef4afe044165b", "checked": false, "disabled": false, "visible": true @@ -5942,7 +5942,7 @@ "tag": "textarea", "type": "textarea", "name": "body", - "valueHash": "6424bfab43262088", + "valueHash": "f32e15eeddeea5e9", "disabled": false, "visible": true }, @@ -5950,7 +5950,7 @@ "tag": "input", "type": "text", "name": "tags", - "valueHash": "9b3570f9ddf845d4", + "valueHash": "ab16fe3c80ddcf68", "checked": false, "disabled": false, "visible": true @@ -5970,7 +5970,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -5981,10 +5981,10 @@ } }, "afterNewTab": { - "at": 5849, - "url": "http://127.0.0.1:37223/#/article/rd-test-4cbb5d-1", + "at": 5735, + "url": "http://127.0.0.1:37233/#/article/rd-test-dacc94-1", "title": "Conduit", - "domHash": "c816d12e48c21b02", + "domHash": "6254e4b0c385fe94", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -5996,9 +5996,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "f602366b1479175d", + "textHash": "438d5ecb4c67ce18", "visualHash": "471347ba69eaf940", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_CRUD_OWNER RD_TEST_DACC94_1 RD_PHASE_L_CRUD_OWNER July 26, 2026 Delete Article Edit Article RD_TEST_DACC94_3 RD_TEST_234782_4 RD_PHASE_L_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", @@ -6050,7 +6050,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -6061,10 +6061,10 @@ } }, "afterNewContext": { - "at": 7093, - "url": "http://127.0.0.1:37223/#/editor/rd-test-4cbb5d-1", + "at": 7077, + "url": "http://127.0.0.1:37233/#/editor/rd-test-dacc94-1", "title": "Conduit", - "domHash": "433fc4cb832cca73", + "domHash": "cccacce675c5b9d7", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -6076,15 +6076,15 @@ "accessDenied": false }, "semanticDom": { - "textHash": "e17c5fa668856e91", + "textHash": "355f46d83ddde135", "visualHash": "b85410fa0ea5a358", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_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": "63a60e1888a32b7e", + "valueHash": "a48a84f5149688c1", "checked": false, "disabled": false, "visible": true @@ -6093,7 +6093,7 @@ "tag": "input", "type": "text", "name": "description", - "valueHash": "67d21f750d5684dd", + "valueHash": "ab4ef4afe044165b", "checked": false, "disabled": false, "visible": true @@ -6102,7 +6102,7 @@ "tag": "textarea", "type": "textarea", "name": "body", - "valueHash": "6424bfab43262088", + "valueHash": "f32e15eeddeea5e9", "disabled": false, "visible": true }, @@ -6110,7 +6110,7 @@ "tag": "input", "type": "text", "name": "tags", - "valueHash": "9b3570f9ddf845d4", + "valueHash": "ab16fe3c80ddcf68", "checked": false, "disabled": false, "visible": true @@ -6130,7 +6130,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -6197,8 +6197,8 @@ { "id": "RD-010", "action": { - "id": "7cb4078e8bd7", - "pageUrl": "http://127.0.0.1:37223/#/article/rd-test-4cbb5d-1", + "id": "f9ebc0b2b621", + "pageUrl": "http://127.0.0.1:37233/#/article/rd-test-dacc94-1", "label": "Post Comment", "activation": "submit", "kind": "mutation", @@ -6236,55 +6236,55 @@ ] }, "evidence": { - "startedAt": "2026-07-26T12:21:25.126Z", - "durationMs": 6931, - "canary": "RD_TEST_969A19", + "startedAt": "2026-07-26T14:11:42.029Z", + "durationMs": 6791, + "canary": "RD_TEST_FCABAF", "network": [ { "id": "net-1", "method": "POST", - "url": "http://127.0.0.1:37223/api/articles/rd-test-4cbb5d-1/comments", + "url": "http://127.0.0.1:37233/api/articles/rd-test-dacc94-1/comments", "resourceType": "xhr", - "startedAt": 1587, + "startedAt": 1552, "status": 201, "ok": true, - "finishedAt": 1599, + "finishedAt": 1564, "contentType": "application/json", "resourceTypeHint": "comments" }, { "id": "net-2", "method": "GET", - "url": "http://127.0.0.1:37223/api/articles/rd-test-4cbb5d-1/comments", + "url": "http://127.0.0.1:37233/api/articles/rd-test-dacc94-1/comments", "resourceType": "xhr", - "startedAt": 1600, + "startedAt": 1564, "status": 200, "ok": true, - "finishedAt": 1605, + "finishedAt": 1569, "contentType": "application/json", "resourceTypeHint": "comments" }, { "id": "net-3", "method": "GET", - "url": "http://127.0.0.1:37223/", + "url": "http://127.0.0.1:37233/", "resourceType": "document", - "startedAt": 2574, + "startedAt": 2540, "status": 200, "ok": true, "contentType": "text/html", "resourceTypeHint": "resource", - "finishedAt": 2581 + "finishedAt": 2547 }, { "id": "net-4", "method": "GET", "url": "http://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css", "resourceType": "stylesheet", - "startedAt": 2580, + "startedAt": 2546, "status": 307, "ok": false, - "finishedAt": 2583, + "finishedAt": 2549, "location": "https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css", "resourceTypeHint": "ionicons.min.css" }, @@ -6293,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": 2580, + "startedAt": 2546, "status": 200, "ok": true, - "finishedAt": 2620, + "finishedAt": 2585, "contentType": "text/css", "resourceTypeHint": "css" }, { "id": "net-6", "method": "GET", - "url": "http://127.0.0.1:37223/assets/index-CLdavoKn.js", + "url": "http://127.0.0.1:37233/assets/index-CLdavoKn.js", "resourceType": "script", - "startedAt": 2581, + "startedAt": 2546, "status": 200, "ok": true, - "finishedAt": 2593, + "finishedAt": 2560, "contentType": "text/javascript", "resourceTypeHint": "index-CLdavoKn.js" }, { "id": "net-7", "method": "GET", - "url": "http://127.0.0.1:37223/assets/index-De1Lwdlm.css", + "url": "http://127.0.0.1:37233/assets/index-De1Lwdlm.css", "resourceType": "stylesheet", - "startedAt": 2581, + "startedAt": 2547, "status": 200, "ok": true, - "finishedAt": 2586, + "finishedAt": 2552, "contentType": "text/css", "resourceTypeHint": "index-De1Lwdlm.css" }, @@ -6329,22 +6329,22 @@ "method": "GET", "url": "https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css", "resourceType": "stylesheet", - "startedAt": 2583, + "startedAt": 2549, "status": 200, "ok": true, - "finishedAt": 2844, "contentType": "text/css", - "resourceTypeHint": "ionicons.min.css" + "resourceTypeHint": "ionicons.min.css", + "finishedAt": 2694 }, { "id": "net-9", "method": "GET", "url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdu.woff2", "resourceType": "font", - "startedAt": 2852, + "startedAt": 2704, "status": 200, "ok": true, - "finishedAt": 2899, + "finishedAt": 2751, "contentType": "font/woff2", "resourceTypeHint": "6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdu.woff2" }, @@ -6353,10 +6353,10 @@ "method": "GET", "url": "https://code.ionicframework.com/ionicons/2.0.1/fonts/ionicons.ttf?v=2.0.1", "resourceType": "font", - "startedAt": 2852, + "startedAt": 2705, "status": 200, "ok": true, - "finishedAt": 2971, + "finishedAt": 2866, "contentType": "font/ttf", "resourceTypeHint": "ionicons.ttf" }, @@ -6365,10 +6365,10 @@ "method": "GET", "url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7l.woff2", "resourceType": "font", - "startedAt": 2852, + "startedAt": 2705, "status": 200, "ok": true, - "finishedAt": 2905, + "finishedAt": 2755, "contentType": "font/woff2", "resourceTypeHint": "6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7l.woff2" }, @@ -6377,10 +6377,10 @@ "method": "GET", "url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwlxdu.woff2", "resourceType": "font", - "startedAt": 2854, + "startedAt": 2705, "status": 200, "ok": true, - "finishedAt": 2903, + "finishedAt": 2755, "contentType": "font/woff2", "resourceTypeHint": "6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwlxdu.woff2" }, @@ -6389,46 +6389,46 @@ "method": "GET", "url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7nsDI.woff2", "resourceType": "font", - "startedAt": 2854, + "startedAt": 2706, "status": 200, "ok": true, - "finishedAt": 2902, + "finishedAt": 2754, "contentType": "font/woff2", "resourceTypeHint": "6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7nsDI.woff2" }, { "id": "net-14", "method": "GET", - "url": "http://127.0.0.1:37223/api/articles/rd-test-4cbb5d-1/comments", + "url": "http://127.0.0.1:37233/api/articles/rd-test-dacc94-1/comments", "resourceType": "xhr", - "startedAt": 2856, + "startedAt": 2707, "status": 200, "ok": true, - "finishedAt": 2865, + "finishedAt": 2716, "contentType": "application/json", "resourceTypeHint": "comments" }, { "id": "net-15", "method": "GET", - "url": "http://127.0.0.1:37223/api/articles/rd-test-4cbb5d-1", + "url": "http://127.0.0.1:37233/api/articles/rd-test-dacc94-1", "resourceType": "xhr", - "startedAt": 2856, + "startedAt": 2707, "status": 200, "ok": true, - "finishedAt": 2868, + "finishedAt": 2717, "contentType": "application/json", - "resourceTypeHint": "rd-test-4cbb5d-1" + "resourceTypeHint": "rd-test-dacc94-1" }, { "id": "net-16", "method": "GET", - "url": "http://127.0.0.1:37223/api/user", + "url": "http://127.0.0.1:37233/api/user", "resourceType": "xhr", - "startedAt": 2857, + "startedAt": 2708, "status": 200, "ok": true, - "finishedAt": 2862, + "finishedAt": 2714, "contentType": "application/json", "resourceTypeHint": "user" }, @@ -6437,34 +6437,34 @@ "method": "GET", "url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwlxdu.woff2", "resourceType": "font", - "startedAt": 2884, + "startedAt": 2732, "status": 200, "ok": true, - "finishedAt": 2929, + "finishedAt": 2776, "contentType": "font/woff2", "resourceTypeHint": "6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwlxdu.woff2" }, { "id": "net-18", "method": "GET", - "url": "http://127.0.0.1:37223/", + "url": "http://127.0.0.1:37233/", "resourceType": "document", - "startedAt": 3685, + "startedAt": 3528, "status": 200, "ok": true, "contentType": "text/html", "resourceTypeHint": "resource", - "finishedAt": 3693 + "finishedAt": 3536 }, { "id": "net-19", "method": "GET", "url": "http://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css", "resourceType": "stylesheet", - "startedAt": 3691, + "startedAt": 3534, "status": 307, "ok": false, - "finishedAt": 3695, + "finishedAt": 3538, "location": "https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css", "resourceTypeHint": "ionicons.min.css" }, @@ -6473,58 +6473,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": 3692, + "startedAt": 3535, "status": 200, "ok": true, - "finishedAt": 3730, + "finishedAt": 3576, "contentType": "text/css", "resourceTypeHint": "css" }, { "id": "net-21", "method": "GET", - "url": "http://127.0.0.1:37223/assets/index-CLdavoKn.js", + "url": "http://127.0.0.1:37233/assets/index-CLdavoKn.js", "resourceType": "script", - "startedAt": 3693, + "startedAt": 3535, "status": 200, "ok": true, - "finishedAt": 3706, + "finishedAt": 3552, "contentType": "text/javascript", "resourceTypeHint": "index-CLdavoKn.js" }, { "id": "net-22", "method": "GET", - "url": "http://127.0.0.1:37223/assets/index-De1Lwdlm.css", + "url": "http://127.0.0.1:37233/assets/index-De1Lwdlm.css", "resourceType": "stylesheet", - "startedAt": 3693, + "startedAt": 3536, "status": 200, "ok": true, "contentType": "text/css", "resourceTypeHint": "index-De1Lwdlm.css", - "finishedAt": 3698 + "finishedAt": 3540 }, { "id": "net-23", "method": "GET", "url": "https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css", "resourceType": "stylesheet", - "startedAt": 3695, + "startedAt": 3538, "status": 200, "ok": true, - "finishedAt": 3766, "contentType": "text/css", - "resourceTypeHint": "ionicons.min.css" + "resourceTypeHint": "ionicons.min.css", + "finishedAt": 3611 }, { "id": "net-24", "method": "GET", "url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdu.woff2", "resourceType": "font", - "startedAt": 3775, + "startedAt": 3621, "status": 200, "ok": true, - "finishedAt": 3824, + "finishedAt": 3668, "contentType": "font/woff2", "resourceTypeHint": "6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdu.woff2" }, @@ -6533,10 +6533,10 @@ "method": "GET", "url": "https://code.ionicframework.com/ionicons/2.0.1/fonts/ionicons.ttf?v=2.0.1", "resourceType": "font", - "startedAt": 3776, + "startedAt": 3621, "status": 200, "ok": true, - "finishedAt": 3891, + "finishedAt": 3735, "contentType": "font/ttf", "resourceTypeHint": "ionicons.ttf" }, @@ -6545,10 +6545,10 @@ "method": "GET", "url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7l.woff2", "resourceType": "font", - "startedAt": 3777, + "startedAt": 3623, "status": 200, "ok": true, - "finishedAt": 3827, + "finishedAt": 3672, "contentType": "font/woff2", "resourceTypeHint": "6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7l.woff2" }, @@ -6557,10 +6557,10 @@ "method": "GET", "url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwlxdu.woff2", "resourceType": "font", - "startedAt": 3777, + "startedAt": 3623, "status": 200, "ok": true, - "finishedAt": 3825, + "finishedAt": 3672, "contentType": "font/woff2", "resourceTypeHint": "6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwlxdu.woff2" }, @@ -6569,46 +6569,46 @@ "method": "GET", "url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7nsDI.woff2", "resourceType": "font", - "startedAt": 3777, + "startedAt": 3623, "status": 200, "ok": true, - "finishedAt": 3822, + "finishedAt": 3671, "contentType": "font/woff2", "resourceTypeHint": "6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7nsDI.woff2" }, { "id": "net-29", "method": "GET", - "url": "http://127.0.0.1:37223/api/articles/rd-test-4cbb5d-1/comments", + "url": "http://127.0.0.1:37233/api/articles/rd-test-dacc94-1/comments", "resourceType": "xhr", - "startedAt": 3779, + "startedAt": 3625, "status": 200, "ok": true, - "finishedAt": 3788, + "finishedAt": 3635, "contentType": "application/json", "resourceTypeHint": "comments" }, { "id": "net-30", "method": "GET", - "url": "http://127.0.0.1:37223/api/articles/rd-test-4cbb5d-1", + "url": "http://127.0.0.1:37233/api/articles/rd-test-dacc94-1", "resourceType": "xhr", - "startedAt": 3780, + "startedAt": 3626, "status": 200, "ok": true, - "finishedAt": 3788, + "finishedAt": 3635, "contentType": "application/json", - "resourceTypeHint": "rd-test-4cbb5d-1" + "resourceTypeHint": "rd-test-dacc94-1" }, { "id": "net-31", "method": "GET", - "url": "http://127.0.0.1:37223/api/user", + "url": "http://127.0.0.1:37233/api/user", "resourceType": "xhr", - "startedAt": 3780, + "startedAt": 3626, "status": 200, "ok": true, - "finishedAt": 3786, + "finishedAt": 3632, "contentType": "application/json", "resourceTypeHint": "user" }, @@ -6617,10 +6617,10 @@ "method": "GET", "url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwlxdu.woff2", "resourceType": "font", - "startedAt": 3798, + "startedAt": 3648, "status": 200, "ok": true, - "finishedAt": 3842, + "finishedAt": 3693, "contentType": "font/woff2", "resourceTypeHint": "6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwlxdu.woff2" } @@ -6633,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_969A19_1", + "value": "RD_TEST_FCABAF_1", "redacted": false } ], @@ -6663,10 +6663,10 @@ "retryCount": 0 }, "before": { - "at": 1520, - "url": "http://127.0.0.1:37223/#/article/rd-test-4cbb5d-1", + "at": 1493, + "url": "http://127.0.0.1:37233/#/article/rd-test-dacc94-1", "title": "Conduit", - "domHash": "c816d12e48c21b02", + "domHash": "6254e4b0c385fe94", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -6678,9 +6678,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "f602366b1479175d", + "textHash": "438d5ecb4c67ce18", "visualHash": "471347ba69eaf940", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_CRUD_OWNER RD_TEST_DACC94_1 RD_PHASE_L_CRUD_OWNER July 26, 2026 Delete Article Edit Article RD_TEST_DACC94_3 RD_TEST_234782_4 RD_PHASE_L_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", @@ -6732,7 +6732,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -6749,12 +6749,12 @@ "rows": [ { "keyHash": "186347d9ea7673a2", - "rowHash": "513a00e32394f4c2", + "rowHash": "0c12beb933a01c68", "softDeleted": false }, { "keyHash": "da7114755c3b82ba", - "rowHash": "a43fe358be8329c7", + "rowHash": "8f0ac8ad441fe2c9", "softDeleted": false } ], @@ -6791,8 +6791,8 @@ "softDeleted": false }, { - "keyHash": "667da1af4b45220f", - "rowHash": "5c8f98476fb3bfca", + "keyHash": "75453dbfb3621178", + "rowHash": "2daa65787e249e4f", "softDeleted": false } ], @@ -6805,12 +6805,12 @@ "rows": [ { "keyHash": "186347d9ea7673a2", - "rowHash": "513a00e32394f4c2", + "rowHash": "0c12beb933a01c68", "softDeleted": false }, { "keyHash": "da7114755c3b82ba", - "rowHash": "a43fe358be8329c7", + "rowHash": "8f0ac8ad441fe2c9", "softDeleted": false } ], @@ -6847,8 +6847,8 @@ "softDeleted": false }, { - "keyHash": "667da1af4b45220f", - "rowHash": "5c8f98476fb3bfca", + "keyHash": "75453dbfb3621178", + "rowHash": "2daa65787e249e4f", "softDeleted": false } ], @@ -6857,10 +6857,10 @@ ] }, "beforeAction": { - "at": 1542, - "url": "http://127.0.0.1:37223/#/article/rd-test-4cbb5d-1", + "at": 1515, + "url": "http://127.0.0.1:37233/#/article/rd-test-dacc94-1", "title": "Conduit", - "domHash": "c76d93dc4997bbda", + "domHash": "9027382b40eb1b59", "canaryPresent": true, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -6872,9 +6872,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "f602366b1479175d", + "textHash": "438d5ecb4c67ce18", "visualHash": "471347ba69eaf940", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_CRUD_OWNER RD_TEST_DACC94_1 RD_PHASE_L_CRUD_OWNER July 26, 2026 Delete Article Edit Article RD_TEST_DACC94_3 RD_TEST_234782_4 RD_PHASE_L_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", @@ -6907,7 +6907,7 @@ { "tag": "textarea", "type": "textarea", - "valueHash": "54f0e178c44efc24", + "valueHash": "49d9a027dadd74a5", "disabled": false, "visible": true }, @@ -6926,7 +6926,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -6940,10 +6940,10 @@ "networkSettled": true, "targetBusyAfter": false, "after": { - "at": 2568, - "url": "http://127.0.0.1:37223/#/article/rd-test-4cbb5d-1", + "at": 2535, + "url": "http://127.0.0.1:37233/#/article/rd-test-dacc94-1", "title": "Conduit", - "domHash": "710281541eea0bd2", + "domHash": "0414e444c50004d3", "canaryPresent": true, "bodyCanaryPresent": true, "temporaryBlobUrls": 0, @@ -6955,9 +6955,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "4bd57312372c61ab", + "textHash": "a163ca2ca1ba114c", "visualHash": "e92a3e18c194e797", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_CRUD_OWNER RD_TEST_DACC94_1 RD_PHASE_L_CRUD_OWNER July 26, 2026 Delete Article Edit Article RD_TEST_DACC94_3 RD_TEST_234782_4 RD_PHASE_L_CRUD_OWNER July 26, 2026 Delete Article Edit Article Post Comment RD_TEST_FCABAF_1 RD_PHASE_L_CRUD_OWNERJuly 26, 2026 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "button", @@ -7016,7 +7016,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -7033,12 +7033,12 @@ "rows": [ { "keyHash": "186347d9ea7673a2", - "rowHash": "513a00e32394f4c2", + "rowHash": "0c12beb933a01c68", "softDeleted": false }, { "keyHash": "da7114755c3b82ba", - "rowHash": "a43fe358be8329c7", + "rowHash": "8f0ac8ad441fe2c9", "softDeleted": false } ], @@ -7075,8 +7075,8 @@ "softDeleted": false }, { - "keyHash": "667da1af4b45220f", - "rowHash": "5c8f98476fb3bfca", + "keyHash": "75453dbfb3621178", + "rowHash": "2daa65787e249e4f", "softDeleted": false } ], @@ -7089,12 +7089,12 @@ "rows": [ { "keyHash": "186347d9ea7673a2", - "rowHash": "513a00e32394f4c2", + "rowHash": "0c12beb933a01c68", "softDeleted": false }, { "keyHash": "da7114755c3b82ba", - "rowHash": "a43fe358be8329c7", + "rowHash": "8f0ac8ad441fe2c9", "softDeleted": false } ], @@ -7131,8 +7131,8 @@ "softDeleted": false }, { - "keyHash": "667da1af4b45220f", - "rowHash": "5c8f98476fb3bfca", + "keyHash": "75453dbfb3621178", + "rowHash": "2daa65787e249e4f", "softDeleted": false } ], @@ -7141,10 +7141,10 @@ ] }, "afterRefresh": { - "at": 3682, - "url": "http://127.0.0.1:37223/#/article/rd-test-4cbb5d-1", + "at": 3525, + "url": "http://127.0.0.1:37233/#/article/rd-test-dacc94-1", "title": "Conduit", - "domHash": "710281541eea0bd2", + "domHash": "0414e444c50004d3", "canaryPresent": true, "bodyCanaryPresent": true, "temporaryBlobUrls": 0, @@ -7156,9 +7156,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "4bd57312372c61ab", + "textHash": "a163ca2ca1ba114c", "visualHash": "e92a3e18c194e797", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_CRUD_OWNER RD_TEST_DACC94_1 RD_PHASE_L_CRUD_OWNER July 26, 2026 Delete Article Edit Article RD_TEST_DACC94_3 RD_TEST_234782_4 RD_PHASE_L_CRUD_OWNER July 26, 2026 Delete Article Edit Article Post Comment RD_TEST_FCABAF_1 RD_PHASE_L_CRUD_OWNERJuly 26, 2026 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "button", @@ -7217,7 +7217,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -7228,10 +7228,10 @@ } }, "afterHardRefresh": { - "at": 4598, - "url": "http://127.0.0.1:37223/#/article/rd-test-4cbb5d-1", + "at": 4441, + "url": "http://127.0.0.1:37233/#/article/rd-test-dacc94-1", "title": "Conduit", - "domHash": "710281541eea0bd2", + "domHash": "0414e444c50004d3", "canaryPresent": true, "bodyCanaryPresent": true, "temporaryBlobUrls": 0, @@ -7243,9 +7243,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "4bd57312372c61ab", + "textHash": "a163ca2ca1ba114c", "visualHash": "e92a3e18c194e797", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_CRUD_OWNER RD_TEST_DACC94_1 RD_PHASE_L_CRUD_OWNER July 26, 2026 Delete Article Edit Article RD_TEST_DACC94_3 RD_TEST_234782_4 RD_PHASE_L_CRUD_OWNER July 26, 2026 Delete Article Edit Article Post Comment RD_TEST_FCABAF_1 RD_PHASE_L_CRUD_OWNERJuly 26, 2026 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "button", @@ -7304,7 +7304,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -7315,10 +7315,10 @@ } }, "afterNewTab": { - "at": 5590, - "url": "http://127.0.0.1:37223/#/article/rd-test-4cbb5d-1", + "at": 5454, + "url": "http://127.0.0.1:37233/#/article/rd-test-dacc94-1", "title": "Conduit", - "domHash": "710281541eea0bd2", + "domHash": "0414e444c50004d3", "canaryPresent": true, "bodyCanaryPresent": true, "temporaryBlobUrls": 0, @@ -7330,9 +7330,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "4bd57312372c61ab", + "textHash": "a163ca2ca1ba114c", "visualHash": "e92a3e18c194e797", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_CRUD_OWNER RD_TEST_DACC94_1 RD_PHASE_L_CRUD_OWNER July 26, 2026 Delete Article Edit Article RD_TEST_DACC94_3 RD_TEST_234782_4 RD_PHASE_L_CRUD_OWNER July 26, 2026 Delete Article Edit Article Post Comment RD_TEST_FCABAF_1 RD_PHASE_L_CRUD_OWNERJuly 26, 2026 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "button", @@ -7391,7 +7391,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -7402,10 +7402,10 @@ } }, "afterNewContext": { - "at": 6928, - "url": "http://127.0.0.1:37223/#/article/rd-test-4cbb5d-1", + "at": 6788, + "url": "http://127.0.0.1:37233/#/article/rd-test-dacc94-1", "title": "Conduit", - "domHash": "710281541eea0bd2", + "domHash": "0414e444c50004d3", "canaryPresent": true, "bodyCanaryPresent": true, "temporaryBlobUrls": 0, @@ -7417,9 +7417,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "4bd57312372c61ab", + "textHash": "a163ca2ca1ba114c", "visualHash": "e92a3e18c194e797", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_CRUD_OWNER RD_TEST_DACC94_1 RD_PHASE_L_CRUD_OWNER July 26, 2026 Delete Article Edit Article RD_TEST_DACC94_3 RD_TEST_234782_4 RD_PHASE_L_CRUD_OWNER July 26, 2026 Delete Article Edit Article Post Comment RD_TEST_FCABAF_1 RD_PHASE_L_CRUD_OWNERJuly 26, 2026 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "button", @@ -7478,7 +7478,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -7546,8 +7546,8 @@ { "id": "RD-011", "action": { - "id": "b60b097d31b9", - "pageUrl": "http://127.0.0.1:37223/#/article/rd-test-4cbb5d-1", + "id": "36542a92f00e", + "pageUrl": "http://127.0.0.1:37233/#/article/rd-test-dacc94-1", "label": "conduit", "activation": "click", "kind": "navigation", @@ -7560,7 +7560,7 @@ "role": "link", "accessibleName": "conduit", "text": "conduit", - "href": "http://127.0.0.1:37223/#/", + "href": "http://127.0.0.1:37233/#/", "candidates": [ { "strategy": "role", @@ -7579,7 +7579,7 @@ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37223/#/" + "value": "http://127.0.0.1:37233/#/" }, { "strategy": "text", @@ -7597,31 +7597,31 @@ "fields": [] }, "evidence": { - "startedAt": "2026-07-26T12:21:32.138Z", - "durationMs": 2561, - "canary": "RD_TEST_33BDBC", + "startedAt": "2026-07-26T14:11:48.896Z", + "durationMs": 2548, + "canary": "RD_TEST_1BD873", "network": [ { "id": "net-1", "method": "GET", - "url": "http://127.0.0.1:37223/api/articles/feed?limit=3&&offset=0", + "url": "http://127.0.0.1:37233/api/articles/feed?limit=3&&offset=0", "resourceType": "xhr", - "startedAt": 1574, + "startedAt": 1567, "status": 200, "ok": true, - "finishedAt": 1580, + "finishedAt": 1573, "contentType": "application/json", "resourceTypeHint": "feed" }, { "id": "net-2", "method": "GET", - "url": "http://127.0.0.1:37223/api/tags", + "url": "http://127.0.0.1:37233/api/tags", "resourceType": "xhr", - "startedAt": 1574, + "startedAt": 1567, "status": 200, "ok": true, - "finishedAt": 1579, + "finishedAt": 1572, "contentType": "application/json", "resourceTypeHint": "tags" } @@ -7648,14 +7648,14 @@ "weight": 92, "matchCount": 2, "visibleCount": 2, - "elapsedMs": 8 + "elapsedMs": 10 }, { "strategy": "role", "weight": 82, "matchCount": 2, "visibleCount": 2, - "elapsedMs": 7 + "elapsedMs": 8 }, { "strategy": "href", @@ -7684,10 +7684,10 @@ "retryCount": 0 }, "before": { - "at": 1541, - "url": "http://127.0.0.1:37223/#/article/rd-test-4cbb5d-1", + "at": 1531, + "url": "http://127.0.0.1:37233/#/article/rd-test-dacc94-1", "title": "Conduit", - "domHash": "710281541eea0bd2", + "domHash": "0414e444c50004d3", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -7699,9 +7699,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "4bd57312372c61ab", + "textHash": "a163ca2ca1ba114c", "visualHash": "e92a3e18c194e797", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_CRUD_OWNER RD_TEST_DACC94_1 RD_PHASE_L_CRUD_OWNER July 26, 2026 Delete Article Edit Article RD_TEST_DACC94_3 RD_TEST_234782_4 RD_PHASE_L_CRUD_OWNER July 26, 2026 Delete Article Edit Article Post Comment RD_TEST_FCABAF_1 RD_PHASE_L_CRUD_OWNERJuly 26, 2026 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "button", @@ -7760,7 +7760,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -7771,10 +7771,10 @@ } }, "beforeAction": { - "at": 1551, - "url": "http://127.0.0.1:37223/#/article/rd-test-4cbb5d-1", + "at": 1541, + "url": "http://127.0.0.1:37233/#/article/rd-test-dacc94-1", "title": "Conduit", - "domHash": "710281541eea0bd2", + "domHash": "0414e444c50004d3", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -7786,9 +7786,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "4bd57312372c61ab", + "textHash": "a163ca2ca1ba114c", "visualHash": "e92a3e18c194e797", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_CRUD_OWNER RD_TEST_DACC94_1 RD_PHASE_L_CRUD_OWNER July 26, 2026 Delete Article Edit Article RD_TEST_DACC94_3 RD_TEST_234782_4 RD_PHASE_L_CRUD_OWNER July 26, 2026 Delete Article Edit Article Post Comment RD_TEST_FCABAF_1 RD_PHASE_L_CRUD_OWNERJuly 26, 2026 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "button", @@ -7847,7 +7847,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -7860,10 +7860,10 @@ "networkSettled": true, "targetBusyAfter": false, "after": { - "at": 2557, - "url": "http://127.0.0.1:37223/#/", + "at": 2544, + "url": "http://127.0.0.1:37233/#/", "title": "Conduit", - "domHash": "82970581dc3ba0ed", + "domHash": "209947a5decfaf00", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -7875,9 +7875,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "38646687161ebd53", + "textHash": "5b8b6ea8b3f6063c", "visualHash": "efa2f7065933782f", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_CRUD_OWNER Your Feed Global Feed Articles not available. Popular Tags RD_TEST_234782_4RD_TEST_1E34DD_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "button", @@ -7915,7 +7915,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -7943,8 +7943,8 @@ { "id": "RD-012", "action": { - "id": "92446496b665", - "pageUrl": "http://127.0.0.1:37223/", + "id": "070fba8120b1", + "pageUrl": "http://127.0.0.1:37233/", "label": "conduit", "activation": "click", "kind": "navigation", @@ -7957,7 +7957,7 @@ "role": "link", "accessibleName": "conduit", "text": "conduit", - "href": "http://127.0.0.1:37223/#/", + "href": "http://127.0.0.1:37233/#/", "candidates": [ { "strategy": "role", @@ -7976,7 +7976,7 @@ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37223/#/" + "value": "http://127.0.0.1:37233/#/" }, { "strategy": "text", @@ -7994,9 +7994,9 @@ "fields": [] }, "evidence": { - "startedAt": "2026-07-26T12:21:34.726Z", - "durationMs": 2504, - "canary": "RD_TEST_87E65B", + "startedAt": "2026-07-26T14:11:51.471Z", + "durationMs": 2519, + "canary": "RD_TEST_0E0C8D", "network": [], "console": [], "pageErrors": [], @@ -8027,7 +8027,7 @@ "weight": 82, "matchCount": 2, "visibleCount": 2, - "elapsedMs": 6 + "elapsedMs": 7 }, { "strategy": "href", @@ -8056,10 +8056,10 @@ "retryCount": 0 }, "before": { - "at": 1500, - "url": "http://127.0.0.1:37223/", + "at": 1510, + "url": "http://127.0.0.1:37233/", "title": "Conduit", - "domHash": "82970581dc3ba0ed", + "domHash": "209947a5decfaf00", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -8071,9 +8071,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "38646687161ebd53", + "textHash": "5b8b6ea8b3f6063c", "visualHash": "efa2f7065933782f", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_CRUD_OWNER Your Feed Global Feed Articles not available. Popular Tags RD_TEST_234782_4RD_TEST_1E34DD_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "button", @@ -8111,7 +8111,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -8122,10 +8122,10 @@ } }, "beforeAction": { - "at": 1508, - "url": "http://127.0.0.1:37223/", + "at": 1519, + "url": "http://127.0.0.1:37233/", "title": "Conduit", - "domHash": "82970581dc3ba0ed", + "domHash": "209947a5decfaf00", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -8137,9 +8137,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "38646687161ebd53", + "textHash": "5b8b6ea8b3f6063c", "visualHash": "efa2f7065933782f", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_CRUD_OWNER Your Feed Global Feed Articles not available. Popular Tags RD_TEST_234782_4RD_TEST_1E34DD_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "button", @@ -8177,7 +8177,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -8190,10 +8190,10 @@ "networkSettled": true, "targetBusyAfter": false, "after": { - "at": 2501, - "url": "http://127.0.0.1:37223/#/", + "at": 2515, + "url": "http://127.0.0.1:37233/#/", "title": "Conduit", - "domHash": "82970581dc3ba0ed", + "domHash": "209947a5decfaf00", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -8205,9 +8205,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "38646687161ebd53", + "textHash": "5b8b6ea8b3f6063c", "visualHash": "efa2f7065933782f", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_CRUD_OWNER Your Feed Global Feed Articles not available. Popular Tags RD_TEST_234782_4RD_TEST_1E34DD_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "button", @@ -8245,7 +8245,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -8273,8 +8273,8 @@ { "id": "RD-013", "action": { - "id": "3800f03bc706", - "pageUrl": "http://127.0.0.1:37223/", + "id": "55104873d69e", + "pageUrl": "http://127.0.0.1:37233/", "label": "Home", "activation": "click", "kind": "navigation", @@ -8287,7 +8287,7 @@ "role": "link", "accessibleName": "Home", "text": "Home", - "href": "http://127.0.0.1:37223/#/", + "href": "http://127.0.0.1:37233/#/", "candidates": [ { "strategy": "role", @@ -8306,7 +8306,7 @@ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37223/#/" + "value": "http://127.0.0.1:37233/#/" }, { "strategy": "text", @@ -8324,9 +8324,9 @@ "fields": [] }, "evidence": { - "startedAt": "2026-07-26T12:21:37.253Z", - "durationMs": 2533, - "canary": "RD_TEST_64FDB2", + "startedAt": "2026-07-26T14:11:54.014Z", + "durationMs": 2544, + "canary": "RD_TEST_20B427", "network": [], "console": [], "pageErrors": [], @@ -8350,14 +8350,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", @@ -8365,10 +8365,10 @@ "retryCount": 0 }, "before": { - "at": 1527, - "url": "http://127.0.0.1:37223/", + "at": 1535, + "url": "http://127.0.0.1:37233/", "title": "Conduit", - "domHash": "82970581dc3ba0ed", + "domHash": "209947a5decfaf00", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -8380,9 +8380,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "38646687161ebd53", + "textHash": "5b8b6ea8b3f6063c", "visualHash": "efa2f7065933782f", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_CRUD_OWNER Your Feed Global Feed Articles not available. Popular Tags RD_TEST_234782_4RD_TEST_1E34DD_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "button", @@ -8420,7 +8420,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -8431,10 +8431,10 @@ } }, "beforeAction": { - "at": 1537, - "url": "http://127.0.0.1:37223/", + "at": 1544, + "url": "http://127.0.0.1:37233/", "title": "Conduit", - "domHash": "82970581dc3ba0ed", + "domHash": "209947a5decfaf00", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -8446,9 +8446,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "38646687161ebd53", + "textHash": "5b8b6ea8b3f6063c", "visualHash": "efa2f7065933782f", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_CRUD_OWNER Your Feed Global Feed Articles not available. Popular Tags RD_TEST_234782_4RD_TEST_1E34DD_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "button", @@ -8486,7 +8486,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -8499,10 +8499,10 @@ "networkSettled": true, "targetBusyAfter": false, "after": { - "at": 2529, - "url": "http://127.0.0.1:37223/#/", + "at": 2540, + "url": "http://127.0.0.1:37233/#/", "title": "Conduit", - "domHash": "82970581dc3ba0ed", + "domHash": "209947a5decfaf00", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -8514,9 +8514,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "38646687161ebd53", + "textHash": "5b8b6ea8b3f6063c", "visualHash": "efa2f7065933782f", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_CRUD_OWNER Your Feed Global Feed Articles not available. Popular Tags RD_TEST_234782_4RD_TEST_1E34DD_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "button", @@ -8554,7 +8554,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -8582,8 +8582,8 @@ { "id": "RD-014", "action": { - "id": "c88ed7554ce5", - "pageUrl": "http://127.0.0.1:37223/", + "id": "03f276fb1579", + "pageUrl": "http://127.0.0.1:37233/", "label": "New Article", "activation": "click", "kind": "navigation", @@ -8596,7 +8596,7 @@ "role": "link", "accessibleName": "New Article", "text": "New Article", - "href": "http://127.0.0.1:37223/#/editor", + "href": "http://127.0.0.1:37233/#/editor", "candidates": [ { "strategy": "role", @@ -8615,7 +8615,7 @@ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37223/#/editor" + "value": "http://127.0.0.1:37233/#/editor" }, { "strategy": "text", @@ -8633,9 +8633,9 @@ "fields": [] }, "evidence": { - "startedAt": "2026-07-26T12:21:39.810Z", - "durationMs": 2488, - "canary": "RD_TEST_437DFF", + "startedAt": "2026-07-26T14:11:56.587Z", + "durationMs": 2519, + "canary": "RD_TEST_781DB3", "network": [], "console": [], "pageErrors": [], @@ -8659,14 +8659,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", @@ -8674,10 +8674,10 @@ "retryCount": 0 }, "before": { - "at": 1471, - "url": "http://127.0.0.1:37223/", + "at": 1511, + "url": "http://127.0.0.1:37233/", "title": "Conduit", - "domHash": "82970581dc3ba0ed", + "domHash": "209947a5decfaf00", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -8689,9 +8689,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "38646687161ebd53", + "textHash": "5b8b6ea8b3f6063c", "visualHash": "efa2f7065933782f", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_CRUD_OWNER Your Feed Global Feed Articles not available. Popular Tags RD_TEST_234782_4RD_TEST_1E34DD_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "button", @@ -8729,7 +8729,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -8740,10 +8740,10 @@ } }, "beforeAction": { - "at": 1480, - "url": "http://127.0.0.1:37223/", + "at": 1520, + "url": "http://127.0.0.1:37233/", "title": "Conduit", - "domHash": "82970581dc3ba0ed", + "domHash": "209947a5decfaf00", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -8755,9 +8755,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "38646687161ebd53", + "textHash": "5b8b6ea8b3f6063c", "visualHash": "efa2f7065933782f", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_CRUD_OWNER Your Feed Global Feed Articles not available. Popular Tags RD_TEST_234782_4RD_TEST_1E34DD_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "button", @@ -8795,7 +8795,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -8808,10 +8808,10 @@ "networkSettled": true, "targetBusyAfter": false, "after": { - "at": 2482, - "url": "http://127.0.0.1:37223/#/editor", + "at": 2515, + "url": "http://127.0.0.1:37233/#/editor", "title": "Conduit", - "domHash": "c936833dbedd7df2", + "domHash": "a01e944d4b62d184", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -8823,9 +8823,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "d0c4b4fdb77a11e9", + "textHash": "e1abb484093cff92", "visualHash": "b85410fa0ea5a358", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_CRUD_OWNER Publish Article conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "input", @@ -8877,7 +8877,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -8905,8 +8905,8 @@ { "id": "RD-015", "action": { - "id": "d61ab1459de8", - "pageUrl": "http://127.0.0.1:37223/", + "id": "3afde700c371", + "pageUrl": "http://127.0.0.1:37233/", "label": "Your Feed", "activation": "click", "kind": "local", @@ -8951,19 +8951,19 @@ "fields": [] }, "evidence": { - "startedAt": "2026-07-26T12:21:42.326Z", - "durationMs": 2548, - "canary": "RD_TEST_CC1E74", + "startedAt": "2026-07-26T14:11:59.127Z", + "durationMs": 2524, + "canary": "RD_TEST_BA386F", "network": [ { "id": "net-1", "method": "GET", - "url": "http://127.0.0.1:37223/api/articles/feed?limit=3&&offset=0", + "url": "http://127.0.0.1:37233/api/articles/feed?limit=3&&offset=0", "resourceType": "xhr", - "startedAt": 1553, + "startedAt": 1536, "status": 200, "ok": true, - "finishedAt": 1564, + "finishedAt": 1548, "contentType": "application/json", "resourceTypeHint": "feed" } @@ -8998,10 +8998,10 @@ "retryCount": 0 }, "before": { - "at": 1517, - "url": "http://127.0.0.1:37223/", + "at": 1501, + "url": "http://127.0.0.1:37233/", "title": "Conduit", - "domHash": "82970581dc3ba0ed", + "domHash": "209947a5decfaf00", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -9013,9 +9013,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "38646687161ebd53", + "textHash": "5b8b6ea8b3f6063c", "visualHash": "efa2f7065933782f", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_CRUD_OWNER Your Feed Global Feed Articles not available. Popular Tags RD_TEST_234782_4RD_TEST_1E34DD_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "button", @@ -9053,7 +9053,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -9064,10 +9064,10 @@ } }, "beforeAction": { - "at": 1525, - "url": "http://127.0.0.1:37223/", + "at": 1510, + "url": "http://127.0.0.1:37233/", "title": "Conduit", - "domHash": "82970581dc3ba0ed", + "domHash": "209947a5decfaf00", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -9079,9 +9079,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "38646687161ebd53", + "textHash": "5b8b6ea8b3f6063c", "visualHash": "efa2f7065933782f", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_CRUD_OWNER Your Feed Global Feed Articles not available. Popular Tags RD_TEST_234782_4RD_TEST_1E34DD_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "button", @@ -9119,7 +9119,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -9132,10 +9132,10 @@ "networkSettled": true, "targetBusyAfter": false, "after": { - "at": 2544, - "url": "http://127.0.0.1:37223/", + "at": 2520, + "url": "http://127.0.0.1:37233/", "title": "Conduit", - "domHash": "82970581dc3ba0ed", + "domHash": "209947a5decfaf00", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -9147,9 +9147,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "38646687161ebd53", + "textHash": "5b8b6ea8b3f6063c", "visualHash": "efa2f7065933782f", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_CRUD_OWNER Your Feed Global Feed Articles not available. Popular Tags RD_TEST_234782_4RD_TEST_1E34DD_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "button", @@ -9187,7 +9187,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -9215,8 +9215,8 @@ { "id": "RD-016", "action": { - "id": "a69f66f3ce86", - "pageUrl": "http://127.0.0.1:37223/", + "id": "3fd2dfe8a608", + "pageUrl": "http://127.0.0.1:37233/", "label": "Global Feed", "activation": "click", "kind": "local", @@ -9261,19 +9261,19 @@ "fields": [] }, "evidence": { - "startedAt": "2026-07-26T12:21:44.899Z", - "durationMs": 2562, - "canary": "RD_TEST_8683AD", + "startedAt": "2026-07-26T14:12:01.674Z", + "durationMs": 2563, + "canary": "RD_TEST_045625", "network": [ { "id": "net-1", "method": "GET", - "url": "http://127.0.0.1:37223/api/articles?limit=3&&offset=0", + "url": "http://127.0.0.1:37233/api/articles?limit=3&&offset=0", "resourceType": "xhr", - "startedAt": 1529, + "startedAt": 1522, "status": 200, "ok": true, - "finishedAt": 1543, + "finishedAt": 1535, "contentType": "application/json", "resourceTypeHint": "articles" }, @@ -9282,10 +9282,10 @@ "method": "GET", "url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwlxdu.woff2", "resourceType": "font", - "startedAt": 1557, + "startedAt": 1550, "status": 200, "ok": true, - "finishedAt": 1608, + "finishedAt": 1601, "contentType": "font/woff2", "resourceTypeHint": "6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwlxdu.woff2" } @@ -9320,10 +9320,10 @@ "retryCount": 0 }, "before": { - "at": 1501, - "url": "http://127.0.0.1:37223/", + "at": 1485, + "url": "http://127.0.0.1:37233/", "title": "Conduit", - "domHash": "82970581dc3ba0ed", + "domHash": "209947a5decfaf00", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -9335,9 +9335,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "38646687161ebd53", + "textHash": "5b8b6ea8b3f6063c", "visualHash": "efa2f7065933782f", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_CRUD_OWNER Your Feed Global Feed Articles not available. Popular Tags RD_TEST_234782_4RD_TEST_1E34DD_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "button", @@ -9375,7 +9375,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -9386,10 +9386,10 @@ } }, "beforeAction": { - "at": 1509, - "url": "http://127.0.0.1:37223/", + "at": 1494, + "url": "http://127.0.0.1:37233/", "title": "Conduit", - "domHash": "82970581dc3ba0ed", + "domHash": "209947a5decfaf00", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -9401,9 +9401,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "38646687161ebd53", + "textHash": "5b8b6ea8b3f6063c", "visualHash": "efa2f7065933782f", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_CRUD_OWNER Your Feed Global Feed Articles not available. Popular Tags RD_TEST_234782_4RD_TEST_1E34DD_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "button", @@ -9441,7 +9441,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -9454,10 +9454,10 @@ "networkSettled": true, "targetBusyAfter": false, "after": { - "at": 2558, - "url": "http://127.0.0.1:37223/", + "at": 2559, + "url": "http://127.0.0.1:37233/", "title": "Conduit", - "domHash": "3780b5134c12e07d", + "domHash": "9c8ab54a772f343c", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -9469,9 +9469,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "b6b4d502cfa25c3d", + "textHash": "4d4e8c81bc86facf", "visualHash": "80775a8344dd3205", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_CRUD_OWNER Your Feed Global Feed RD_PHASE_L_CRUD_OWNER July 26, 2026 ( 0 ) RD_TEST_1E34DD_1 RD_TEST_1E34DD_2 Read more... RD_TEST_1E34DD_4 RD_PHASE_L_CRUD_OWNER July 26, 2026 ( 0 ) RD_TEST_DACC94_1 RD_TEST_DACC94_2 Read more... RD_TEST_234782_4 1 Popular Tags RD_TEST_234782_4RD_TEST_1E34DD_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "button", @@ -9523,7 +9523,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -9551,9 +9551,9 @@ { "id": "RD-017", "action": { - "id": "bb360e1fb2b4", - "pageUrl": "http://127.0.0.1:37223/", - "label": "RD_TEST_F3F938_4", + "id": "b304dd4621e3", + "pageUrl": "http://127.0.0.1:37233/", + "label": "RD_TEST_234782_4", "activation": "click", "kind": "local", "intent": "interact", @@ -9563,28 +9563,28 @@ "tag": "button", "ordinal": 6, "role": "button", - "accessibleName": "RD_TEST_F3F938_4", - "text": "RD_TEST_F3F938_4", + "accessibleName": "RD_TEST_234782_4", + "text": "RD_TEST_234782_4", "type": "submit", "candidates": [ { "strategy": "role", "weight": 92, "role": "button", - "name": "RD_TEST_F3F938_4", + "name": "RD_TEST_234782_4", "exact": true }, { "strategy": "role", "weight": 82, "role": "button", - "name": "RD_TEST_F3F938_4", + "name": "RD_TEST_234782_4", "exact": false }, { "strategy": "text", "weight": 60, - "value": "RD_TEST_F3F938_4", + "value": "RD_TEST_234782_4", "exact": true }, { @@ -9597,19 +9597,19 @@ "fields": [] }, "evidence": { - "startedAt": "2026-07-26T12:21:47.485Z", - "durationMs": 2573, - "canary": "RD_TEST_AF65C5", + "startedAt": "2026-07-26T14:12:04.261Z", + "durationMs": 2575, + "canary": "RD_TEST_FFD803", "network": [ { "id": "net-1", "method": "GET", - "url": "http://127.0.0.1:37223/api/articles?tag=RD_TEST_F3F938_4&&limit=3&&offset=0", + "url": "http://127.0.0.1:37233/api/articles?tag=RD_TEST_234782_4&&limit=3&&offset=0", "resourceType": "xhr", - "startedAt": 1528, + "startedAt": 1535, "status": 200, "ok": true, - "finishedAt": 1539, + "finishedAt": 1547, "contentType": "application/json", "resourceTypeHint": "articles" }, @@ -9618,10 +9618,10 @@ "method": "GET", "url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwlxdu.woff2", "resourceType": "font", - "startedAt": 1560, + "startedAt": 1568, "status": 200, "ok": true, - "finishedAt": 1609, + "finishedAt": 1617, "contentType": "font/woff2", "resourceTypeHint": "6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwlxdu.woff2" } @@ -9648,7 +9648,7 @@ "weight": 92, "matchCount": 1, "visibleCount": 1, - "elapsedMs": 5 + "elapsedMs": 4 } ], "chosenStrategy": "role", @@ -9656,10 +9656,10 @@ "retryCount": 0 }, "before": { - "at": 1496, - "url": "http://127.0.0.1:37223/", + "at": 1498, + "url": "http://127.0.0.1:37233/", "title": "Conduit", - "domHash": "82970581dc3ba0ed", + "domHash": "209947a5decfaf00", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -9671,9 +9671,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "38646687161ebd53", + "textHash": "5b8b6ea8b3f6063c", "visualHash": "efa2f7065933782f", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_CRUD_OWNER Your Feed Global Feed Articles not available. Popular Tags RD_TEST_234782_4RD_TEST_1E34DD_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "button", @@ -9711,7 +9711,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -9722,10 +9722,10 @@ } }, "beforeAction": { - "at": 1505, - "url": "http://127.0.0.1:37223/", + "at": 1506, + "url": "http://127.0.0.1:37233/", "title": "Conduit", - "domHash": "82970581dc3ba0ed", + "domHash": "209947a5decfaf00", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -9737,9 +9737,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "38646687161ebd53", + "textHash": "5b8b6ea8b3f6063c", "visualHash": "efa2f7065933782f", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_CRUD_OWNER Your Feed Global Feed Articles not available. Popular Tags RD_TEST_234782_4RD_TEST_1E34DD_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "button", @@ -9777,7 +9777,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -9790,10 +9790,10 @@ "networkSettled": true, "targetBusyAfter": false, "after": { - "at": 2569, - "url": "http://127.0.0.1:37223/", + "at": 2571, + "url": "http://127.0.0.1:37233/", "title": "Conduit", - "domHash": "dd24520a683efd9d", + "domHash": "4202f3e3eb4ca7f0", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -9805,9 +9805,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "a69a56246ba85121", + "textHash": "0fc716ae67158f36", "visualHash": "c3eb30fd4dc354f6", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_CRUD_OWNER Your Feed Global Feed RD_TEST_234782_4 RD_PHASE_L_CRUD_OWNER July 26, 2026 ( 0 ) RD_TEST_DACC94_1 RD_TEST_DACC94_2 Read more... RD_TEST_234782_4 1 Popular Tags RD_TEST_234782_4RD_TEST_1E34DD_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "button", @@ -9859,7 +9859,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -9887,9 +9887,9 @@ { "id": "RD-018", "action": { - "id": "bfa7e43fb614", - "pageUrl": "http://127.0.0.1:37223/", - "label": "RD_TEST_45949F_4", + "id": "4d8e606dcc7e", + "pageUrl": "http://127.0.0.1:37233/", + "label": "RD_TEST_1E34DD_4", "activation": "click", "kind": "local", "intent": "interact", @@ -9899,28 +9899,28 @@ "tag": "button", "ordinal": 7, "role": "button", - "accessibleName": "RD_TEST_45949F_4", - "text": "RD_TEST_45949F_4", + "accessibleName": "RD_TEST_1E34DD_4", + "text": "RD_TEST_1E34DD_4", "type": "submit", "candidates": [ { "strategy": "role", "weight": 92, "role": "button", - "name": "RD_TEST_45949F_4", + "name": "RD_TEST_1E34DD_4", "exact": true }, { "strategy": "role", "weight": 82, "role": "button", - "name": "RD_TEST_45949F_4", + "name": "RD_TEST_1E34DD_4", "exact": false }, { "strategy": "text", "weight": 60, - "value": "RD_TEST_45949F_4", + "value": "RD_TEST_1E34DD_4", "exact": true }, { @@ -9933,19 +9933,19 @@ "fields": [] }, "evidence": { - "startedAt": "2026-07-26T12:21:50.083Z", - "durationMs": 2591, - "canary": "RD_TEST_FDE3FF", + "startedAt": "2026-07-26T14:12:06.864Z", + "durationMs": 2584, + "canary": "RD_TEST_23E660", "network": [ { "id": "net-1", "method": "GET", - "url": "http://127.0.0.1:37223/api/articles?tag=RD_TEST_45949F_4&&limit=3&&offset=0", + "url": "http://127.0.0.1:37233/api/articles?tag=RD_TEST_1E34DD_4&&limit=3&&offset=0", "resourceType": "xhr", - "startedAt": 1529, + "startedAt": 1532, "status": 200, "ok": true, - "finishedAt": 1542, + "finishedAt": 1545, "contentType": "application/json", "resourceTypeHint": "articles" }, @@ -9954,10 +9954,10 @@ "method": "GET", "url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwlxdu.woff2", "resourceType": "font", - "startedAt": 1561, + "startedAt": 1564, "status": 200, "ok": true, - "finishedAt": 1612, + "finishedAt": 1609, "contentType": "font/woff2", "resourceTypeHint": "6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwlxdu.woff2" } @@ -9992,10 +9992,10 @@ "retryCount": 0 }, "before": { - "at": 1493, - "url": "http://127.0.0.1:37223/", + "at": 1503, + "url": "http://127.0.0.1:37233/", "title": "Conduit", - "domHash": "82970581dc3ba0ed", + "domHash": "209947a5decfaf00", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -10007,9 +10007,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "38646687161ebd53", + "textHash": "5b8b6ea8b3f6063c", "visualHash": "efa2f7065933782f", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_CRUD_OWNER Your Feed Global Feed Articles not available. Popular Tags RD_TEST_234782_4RD_TEST_1E34DD_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "button", @@ -10047,7 +10047,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -10058,10 +10058,10 @@ } }, "beforeAction": { - "at": 1501, - "url": "http://127.0.0.1:37223/", + "at": 1512, + "url": "http://127.0.0.1:37233/", "title": "Conduit", - "domHash": "82970581dc3ba0ed", + "domHash": "209947a5decfaf00", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -10073,9 +10073,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "38646687161ebd53", + "textHash": "5b8b6ea8b3f6063c", "visualHash": "efa2f7065933782f", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_CRUD_OWNER Your Feed Global Feed Articles not available. Popular Tags RD_TEST_234782_4RD_TEST_1E34DD_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "button", @@ -10113,7 +10113,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -10126,10 +10126,10 @@ "networkSettled": true, "targetBusyAfter": false, "after": { - "at": 2587, - "url": "http://127.0.0.1:37223/", + "at": 2581, + "url": "http://127.0.0.1:37233/", "title": "Conduit", - "domHash": "c1897e01e6d16909", + "domHash": "9a04165b7684b4d9", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -10141,9 +10141,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "4399221c47505117", + "textHash": "3dd88be6fce35756", "visualHash": "c3eb30fd4dc354f6", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_CRUD_OWNER Your Feed Global Feed RD_TEST_1E34DD_4 RD_PHASE_L_CRUD_OWNER July 26, 2026 ( 0 ) RD_TEST_1E34DD_1 RD_TEST_1E34DD_2 Read more... RD_TEST_1E34DD_4 1 Popular Tags RD_TEST_234782_4RD_TEST_1E34DD_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "button", @@ -10195,7 +10195,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -10223,8 +10223,8 @@ { "id": "RD-019", "action": { - "id": "9d442a70bdcb", - "pageUrl": "http://127.0.0.1:37223/", + "id": "7e6c799322ef", + "pageUrl": "http://127.0.0.1:37233/", "label": "conduit", "activation": "click", "kind": "navigation", @@ -10237,7 +10237,7 @@ "role": "link", "accessibleName": "conduit", "text": "conduit", - "href": "http://127.0.0.1:37223/#/", + "href": "http://127.0.0.1:37233/#/", "candidates": [ { "strategy": "role", @@ -10256,7 +10256,7 @@ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37223/#/" + "value": "http://127.0.0.1:37233/#/" }, { "strategy": "text", @@ -10274,9 +10274,9 @@ "fields": [] }, "evidence": { - "startedAt": "2026-07-26T12:21:52.697Z", - "durationMs": 2527, - "canary": "RD_TEST_6C1BA3", + "startedAt": "2026-07-26T14:12:09.472Z", + "durationMs": 2530, + "canary": "RD_TEST_1B4213", "network": [], "console": [], "pageErrors": [], @@ -10300,7 +10300,7 @@ "weight": 92, "matchCount": 2, "visibleCount": 2, - "elapsedMs": 8 + "elapsedMs": 7 }, { "strategy": "role", @@ -10314,14 +10314,14 @@ "weight": 72, "matchCount": 0, "visibleCount": 0, - "elapsedMs": 1 + "elapsedMs": 2 }, { "strategy": "text", "weight": 60, "matchCount": 2, "visibleCount": 2, - "elapsedMs": 7 + "elapsedMs": 6 }, { "strategy": "css", @@ -10336,10 +10336,10 @@ "retryCount": 0 }, "before": { - "at": 1524, - "url": "http://127.0.0.1:37223/", + "at": 1529, + "url": "http://127.0.0.1:37233/", "title": "Conduit", - "domHash": "82970581dc3ba0ed", + "domHash": "209947a5decfaf00", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -10351,9 +10351,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "38646687161ebd53", + "textHash": "5b8b6ea8b3f6063c", "visualHash": "efa2f7065933782f", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_CRUD_OWNER Your Feed Global Feed Articles not available. Popular Tags RD_TEST_234782_4RD_TEST_1E34DD_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "button", @@ -10391,7 +10391,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -10402,10 +10402,10 @@ } }, "beforeAction": { - "at": 1532, - "url": "http://127.0.0.1:37223/", + "at": 1537, + "url": "http://127.0.0.1:37233/", "title": "Conduit", - "domHash": "82970581dc3ba0ed", + "domHash": "209947a5decfaf00", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -10417,9 +10417,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "38646687161ebd53", + "textHash": "5b8b6ea8b3f6063c", "visualHash": "efa2f7065933782f", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_CRUD_OWNER Your Feed Global Feed Articles not available. Popular Tags RD_TEST_234782_4RD_TEST_1E34DD_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "button", @@ -10457,7 +10457,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -10470,10 +10470,10 @@ "networkSettled": true, "targetBusyAfter": false, "after": { - "at": 2523, - "url": "http://127.0.0.1:37223/#/", + "at": 2527, + "url": "http://127.0.0.1:37233/#/", "title": "Conduit", - "domHash": "82970581dc3ba0ed", + "domHash": "209947a5decfaf00", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -10485,9 +10485,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "38646687161ebd53", + "textHash": "5b8b6ea8b3f6063c", "visualHash": "efa2f7065933782f", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_CRUD_OWNER Your Feed Global Feed Articles not available. Popular Tags RD_TEST_234782_4RD_TEST_1E34DD_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "button", @@ -10525,7 +10525,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -10553,8 +10553,8 @@ { "id": "RD-020", "action": { - "id": "c15810d6e309", - "pageUrl": "http://127.0.0.1:37223/#/article/rd-test-4cbb5d-1", + "id": "faa1f55c72e5", + "pageUrl": "http://127.0.0.1:37233/#/article/rd-test-dacc94-1", "label": "Delete Article", "activation": "click", "kind": "mutation", @@ -10599,67 +10599,67 @@ "fields": [] }, "evidence": { - "startedAt": "2026-07-26T12:21:55.299Z", - "durationMs": 7172, - "canary": "RD_TEST_055E72", + "startedAt": "2026-07-26T14:12:12.071Z", + "durationMs": 7160, + "canary": "RD_TEST_F20F99", "network": [ { "id": "net-1", "method": "DELETE", - "url": "http://127.0.0.1:37223/api/articles/rd-test-4cbb5d-1/", + "url": "http://127.0.0.1:37233/api/articles/rd-test-dacc94-1/", "resourceType": "xhr", - "startedAt": 1565, + "startedAt": 1559, "status": 200, "ok": true, - "finishedAt": 1575, + "finishedAt": 1572, "contentType": "application/json", - "resourceTypeHint": "rd-test-4cbb5d-1" + "resourceTypeHint": "rd-test-dacc94-1" }, { "id": "net-2", "method": "GET", - "url": "http://127.0.0.1:37223/api/articles/feed?limit=3&&offset=0", + "url": "http://127.0.0.1:37233/api/articles/feed?limit=3&&offset=0", "resourceType": "xhr", - "startedAt": 1579, + "startedAt": 1575, "status": 200, "ok": true, - "finishedAt": 1584, + "finishedAt": 1580, "contentType": "application/json", "resourceTypeHint": "feed" }, { "id": "net-3", "method": "GET", - "url": "http://127.0.0.1:37223/api/tags", + "url": "http://127.0.0.1:37233/api/tags", "resourceType": "xhr", - "startedAt": 1579, + "startedAt": 1576, "status": 200, "ok": true, - "finishedAt": 1583, + "finishedAt": 1579, "contentType": "application/json", "resourceTypeHint": "tags" }, { "id": "net-4", "method": "GET", - "url": "http://127.0.0.1:37223/", + "url": "http://127.0.0.1:37233/", "resourceType": "document", - "startedAt": 2803, + "startedAt": 2794, "status": 200, "ok": true, "contentType": "text/html", "resourceTypeHint": "resource", - "finishedAt": 2811 + "finishedAt": 2801 }, { "id": "net-5", "method": "GET", "url": "http://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css", "resourceType": "stylesheet", - "startedAt": 2809, + "startedAt": 2799, "status": 307, "ok": false, - "finishedAt": 2813, + "finishedAt": 2802, "location": "https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css", "resourceTypeHint": "ionicons.min.css" }, @@ -10668,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": 2810, + "startedAt": 2800, "status": 200, "ok": true, - "finishedAt": 2849, + "finishedAt": 2838, "contentType": "text/css", "resourceTypeHint": "css" }, { "id": "net-7", "method": "GET", - "url": "http://127.0.0.1:37223/assets/index-CLdavoKn.js", + "url": "http://127.0.0.1:37233/assets/index-CLdavoKn.js", "resourceType": "script", - "startedAt": 2810, + "startedAt": 2800, "status": 200, "ok": true, - "finishedAt": 2824, + "finishedAt": 2813, "contentType": "text/javascript", "resourceTypeHint": "index-CLdavoKn.js" }, { "id": "net-8", "method": "GET", - "url": "http://127.0.0.1:37223/assets/index-De1Lwdlm.css", + "url": "http://127.0.0.1:37233/assets/index-De1Lwdlm.css", "resourceType": "stylesheet", - "startedAt": 2811, + "startedAt": 2800, "status": 200, "ok": true, - "finishedAt": 2817, + "finishedAt": 2805, "contentType": "text/css", "resourceTypeHint": "index-De1Lwdlm.css" }, @@ -10704,10 +10704,10 @@ "method": "GET", "url": "https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css", "resourceType": "stylesheet", - "startedAt": 2813, + "startedAt": 2802, "status": 200, "ok": true, - "finishedAt": 3094, + "finishedAt": 3086, "contentType": "text/css", "resourceTypeHint": "ionicons.min.css" }, @@ -10716,10 +10716,10 @@ "method": "GET", "url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdu.woff2", "resourceType": "font", - "startedAt": 3102, + "startedAt": 3094, "status": 200, "ok": true, - "finishedAt": 3148, + "finishedAt": 3141, "contentType": "font/woff2", "resourceTypeHint": "6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdu.woff2" }, @@ -10728,10 +10728,10 @@ "method": "GET", "url": "https://code.ionicframework.com/ionicons/2.0.1/fonts/ionicons.ttf?v=2.0.1", "resourceType": "font", - "startedAt": 3103, + "startedAt": 3095, "status": 200, "ok": true, - "finishedAt": 3211, + "finishedAt": 3228, "contentType": "font/ttf", "resourceTypeHint": "ionicons.ttf" }, @@ -10740,10 +10740,10 @@ "method": "GET", "url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7l.woff2", "resourceType": "font", - "startedAt": 3104, + "startedAt": 3095, "status": 200, "ok": true, - "finishedAt": 3155, + "finishedAt": 3145, "contentType": "font/woff2", "resourceTypeHint": "6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7l.woff2" }, @@ -10752,70 +10752,70 @@ "method": "GET", "url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7nsDI.woff2", "resourceType": "font", - "startedAt": 3104, + "startedAt": 3096, "status": 200, "ok": true, - "finishedAt": 3155, + "finishedAt": 3142, "contentType": "font/woff2", "resourceTypeHint": "6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7nsDI.woff2" }, { "id": "net-14", "method": "GET", - "url": "http://127.0.0.1:37223/api/articles/feed?limit=3&&offset=0", + "url": "http://127.0.0.1:37233/api/articles/feed?limit=3&&offset=0", "resourceType": "xhr", - "startedAt": 3105, + "startedAt": 3097, "status": 200, "ok": true, - "finishedAt": 3113, + "finishedAt": 3105, "contentType": "application/json", "resourceTypeHint": "feed" }, { "id": "net-15", "method": "GET", - "url": "http://127.0.0.1:37223/api/tags", + "url": "http://127.0.0.1:37233/api/tags", "resourceType": "xhr", - "startedAt": 3106, + "startedAt": 3098, "status": 200, "ok": true, + "finishedAt": 3103, "contentType": "application/json", - "resourceTypeHint": "tags", - "finishedAt": 3112 + "resourceTypeHint": "tags" }, { "id": "net-16", "method": "GET", - "url": "http://127.0.0.1:37223/api/user", + "url": "http://127.0.0.1:37233/api/user", "resourceType": "xhr", - "startedAt": 3106, + "startedAt": 3098, "status": 200, "ok": true, - "finishedAt": 3112, + "finishedAt": 3104, "contentType": "application/json", "resourceTypeHint": "user" }, { "id": "net-17", "method": "GET", - "url": "http://127.0.0.1:37223/", + "url": "http://127.0.0.1:37233/", "resourceType": "document", - "startedAt": 3935, + "startedAt": 3921, "status": 200, "ok": true, "contentType": "text/html", "resourceTypeHint": "resource", - "finishedAt": 3943 + "finishedAt": 3928 }, { "id": "net-18", "method": "GET", "url": "http://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css", "resourceType": "stylesheet", - "startedAt": 3942, + "startedAt": 3926, "status": 307, "ok": false, - "finishedAt": 3945, + "finishedAt": 3930, "location": "https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css", "resourceTypeHint": "ionicons.min.css" }, @@ -10824,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": 3942, + "startedAt": 3927, "status": 200, "ok": true, - "finishedAt": 3984, + "finishedAt": 3965, "contentType": "text/css", "resourceTypeHint": "css" }, { "id": "net-20", "method": "GET", - "url": "http://127.0.0.1:37223/assets/index-CLdavoKn.js", + "url": "http://127.0.0.1:37233/assets/index-CLdavoKn.js", "resourceType": "script", - "startedAt": 3942, + "startedAt": 3927, "status": 200, "ok": true, - "finishedAt": 3959, + "finishedAt": 3939, "contentType": "text/javascript", "resourceTypeHint": "index-CLdavoKn.js" }, { "id": "net-21", "method": "GET", - "url": "http://127.0.0.1:37223/assets/index-De1Lwdlm.css", + "url": "http://127.0.0.1:37233/assets/index-De1Lwdlm.css", "resourceType": "stylesheet", - "startedAt": 3943, + "startedAt": 3928, "status": 200, "ok": true, + "finishedAt": 3933, "contentType": "text/css", - "resourceTypeHint": "index-De1Lwdlm.css", - "finishedAt": 3947 + "resourceTypeHint": "index-De1Lwdlm.css" }, { "id": "net-22", "method": "GET", "url": "https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css", "resourceType": "stylesheet", - "startedAt": 3945, + "startedAt": 3930, "status": 200, "ok": true, - "finishedAt": 4023, + "finishedAt": 4009, "contentType": "text/css", "resourceTypeHint": "ionicons.min.css" }, @@ -10872,10 +10872,10 @@ "method": "GET", "url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdu.woff2", "resourceType": "font", - "startedAt": 4031, + "startedAt": 4017, "status": 200, "ok": true, - "finishedAt": 4082, + "finishedAt": 4067, "contentType": "font/woff2", "resourceTypeHint": "6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdu.woff2" }, @@ -10884,22 +10884,22 @@ "method": "GET", "url": "https://code.ionicframework.com/ionicons/2.0.1/fonts/ionicons.ttf?v=2.0.1", "resourceType": "font", - "startedAt": 4032, + "startedAt": 4018, "status": 200, "ok": true, - "finishedAt": 4135, "contentType": "font/ttf", - "resourceTypeHint": "ionicons.ttf" + "resourceTypeHint": "ionicons.ttf", + "finishedAt": 4147 }, { "id": "net-25", "method": "GET", "url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7l.woff2", "resourceType": "font", - "startedAt": 4032, + "startedAt": 4018, "status": 200, "ok": true, - "finishedAt": 4083, + "finishedAt": 4064, "contentType": "font/woff2", "resourceTypeHint": "6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7l.woff2" }, @@ -10908,46 +10908,46 @@ "method": "GET", "url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7nsDI.woff2", "resourceType": "font", - "startedAt": 4032, + "startedAt": 4018, "status": 200, "ok": true, - "finishedAt": 4077, + "finishedAt": 4063, "contentType": "font/woff2", "resourceTypeHint": "6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7nsDI.woff2" }, { "id": "net-27", "method": "GET", - "url": "http://127.0.0.1:37223/api/articles/feed?limit=3&&offset=0", + "url": "http://127.0.0.1:37233/api/articles/feed?limit=3&&offset=0", "resourceType": "xhr", - "startedAt": 4034, + "startedAt": 4020, "status": 200, "ok": true, - "finishedAt": 4042, + "finishedAt": 4027, "contentType": "application/json", "resourceTypeHint": "feed" }, { "id": "net-28", "method": "GET", - "url": "http://127.0.0.1:37223/api/tags", + "url": "http://127.0.0.1:37233/api/tags", "resourceType": "xhr", - "startedAt": 4034, + "startedAt": 4020, "status": 200, "ok": true, "contentType": "application/json", "resourceTypeHint": "tags", - "finishedAt": 4040 + "finishedAt": 4025 }, { "id": "net-29", "method": "GET", - "url": "http://127.0.0.1:37223/api/user", + "url": "http://127.0.0.1:37233/api/user", "resourceType": "xhr", - "startedAt": 4034, + "startedAt": 4020, "status": 200, "ok": true, - "finishedAt": 4040, + "finishedAt": 4026, "contentType": "application/json", "resourceTypeHint": "user" } @@ -10983,21 +10983,21 @@ "weight": 82, "matchCount": 2, "visibleCount": 2, - "elapsedMs": 8 + "elapsedMs": 7 }, { "strategy": "text", "weight": 60, "matchCount": 2, "visibleCount": 2, - "elapsedMs": 6 + "elapsedMs": 7 }, { "strategy": "css", "weight": 35, "matchCount": 1, "visibleCount": 1, - "elapsedMs": 5 + "elapsedMs": 4 } ], "chosenStrategy": "css", @@ -11005,10 +11005,10 @@ "retryCount": 0 }, "before": { - "at": 1496, - "url": "http://127.0.0.1:37223/#/article/rd-test-4cbb5d-1", + "at": 1489, + "url": "http://127.0.0.1:37233/#/article/rd-test-dacc94-1", "title": "Conduit", - "domHash": "710281541eea0bd2", + "domHash": "0414e444c50004d3", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -11020,9 +11020,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "4bd57312372c61ab", + "textHash": "a163ca2ca1ba114c", "visualHash": "e92a3e18c194e797", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_CRUD_OWNER RD_TEST_DACC94_1 RD_PHASE_L_CRUD_OWNER July 26, 2026 Delete Article Edit Article RD_TEST_DACC94_3 RD_TEST_234782_4 RD_PHASE_L_CRUD_OWNER July 26, 2026 Delete Article Edit Article Post Comment RD_TEST_FCABAF_1 RD_PHASE_L_CRUD_OWNERJuly 26, 2026 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "button", @@ -11081,7 +11081,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -11098,12 +11098,12 @@ "rows": [ { "keyHash": "186347d9ea7673a2", - "rowHash": "513a00e32394f4c2", + "rowHash": "0c12beb933a01c68", "softDeleted": false }, { "keyHash": "da7114755c3b82ba", - "rowHash": "a43fe358be8329c7", + "rowHash": "8f0ac8ad441fe2c9", "softDeleted": false } ], @@ -11140,8 +11140,8 @@ "softDeleted": false }, { - "keyHash": "667da1af4b45220f", - "rowHash": "5c8f98476fb3bfca", + "keyHash": "75453dbfb3621178", + "rowHash": "2daa65787e249e4f", "softDeleted": false } ], @@ -11154,12 +11154,12 @@ "rows": [ { "keyHash": "186347d9ea7673a2", - "rowHash": "513a00e32394f4c2", + "rowHash": "0c12beb933a01c68", "softDeleted": false }, { "keyHash": "da7114755c3b82ba", - "rowHash": "a43fe358be8329c7", + "rowHash": "8f0ac8ad441fe2c9", "softDeleted": false } ], @@ -11196,8 +11196,8 @@ "softDeleted": false }, { - "keyHash": "667da1af4b45220f", - "rowHash": "5c8f98476fb3bfca", + "keyHash": "75453dbfb3621178", + "rowHash": "2daa65787e249e4f", "softDeleted": false } ], @@ -11206,10 +11206,10 @@ ] }, "beforeAction": { - "at": 1510, - "url": "http://127.0.0.1:37223/#/article/rd-test-4cbb5d-1", + "at": 1502, + "url": "http://127.0.0.1:37233/#/article/rd-test-dacc94-1", "title": "Conduit", - "domHash": "710281541eea0bd2", + "domHash": "0414e444c50004d3", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -11221,9 +11221,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "4bd57312372c61ab", + "textHash": "a163ca2ca1ba114c", "visualHash": "e92a3e18c194e797", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_CRUD_OWNER RD_TEST_DACC94_1 RD_PHASE_L_CRUD_OWNER July 26, 2026 Delete Article Edit Article RD_TEST_DACC94_3 RD_TEST_234782_4 RD_PHASE_L_CRUD_OWNER July 26, 2026 Delete Article Edit Article Post Comment RD_TEST_FCABAF_1 RD_PHASE_L_CRUD_OWNERJuly 26, 2026 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "button", @@ -11282,7 +11282,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -11295,10 +11295,10 @@ "targetDisabledAfter": false, "networkSettled": true, "after": { - "at": 2797, - "url": "http://127.0.0.1:37223/#/", + "at": 2788, + "url": "http://127.0.0.1:37233/#/", "title": "Conduit", - "domHash": "82970581dc3ba0ed", + "domHash": "209947a5decfaf00", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -11310,9 +11310,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "38646687161ebd53", + "textHash": "5b8b6ea8b3f6063c", "visualHash": "efa2f7065933782f", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_CRUD_OWNER Your Feed Global Feed Articles not available. Popular Tags RD_TEST_234782_4RD_TEST_1E34DD_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "button", @@ -11350,7 +11350,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -11367,7 +11367,7 @@ "rows": [ { "keyHash": "da7114755c3b82ba", - "rowHash": "a43fe358be8329c7", + "rowHash": "8f0ac8ad441fe2c9", "softDeleted": false } ], @@ -11404,8 +11404,8 @@ "softDeleted": false }, { - "keyHash": "667da1af4b45220f", - "rowHash": "5c8f98476fb3bfca", + "keyHash": "75453dbfb3621178", + "rowHash": "2daa65787e249e4f", "softDeleted": false } ], @@ -11418,7 +11418,7 @@ "rows": [ { "keyHash": "da7114755c3b82ba", - "rowHash": "a43fe358be8329c7", + "rowHash": "8f0ac8ad441fe2c9", "softDeleted": false } ], @@ -11455,8 +11455,8 @@ "softDeleted": false }, { - "keyHash": "667da1af4b45220f", - "rowHash": "5c8f98476fb3bfca", + "keyHash": "75453dbfb3621178", + "rowHash": "2daa65787e249e4f", "softDeleted": false } ], @@ -11465,10 +11465,10 @@ ] }, "afterRefresh": { - "at": 3932, - "url": "http://127.0.0.1:37223/#/", + "at": 3919, + "url": "http://127.0.0.1:37233/#/", "title": "Conduit", - "domHash": "82970581dc3ba0ed", + "domHash": "209947a5decfaf00", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -11480,9 +11480,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "38646687161ebd53", + "textHash": "5b8b6ea8b3f6063c", "visualHash": "efa2f7065933782f", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_CRUD_OWNER Your Feed Global Feed Articles not available. Popular Tags RD_TEST_234782_4RD_TEST_1E34DD_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "button", @@ -11520,7 +11520,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -11531,10 +11531,10 @@ } }, "afterHardRefresh": { - "at": 4861, - "url": "http://127.0.0.1:37223/#/", + "at": 4843, + "url": "http://127.0.0.1:37233/#/", "title": "Conduit", - "domHash": "82970581dc3ba0ed", + "domHash": "209947a5decfaf00", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -11546,9 +11546,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "38646687161ebd53", + "textHash": "5b8b6ea8b3f6063c", "visualHash": "efa2f7065933782f", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_CRUD_OWNER Your Feed Global Feed Articles not available. Popular Tags RD_TEST_234782_4RD_TEST_1E34DD_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "button", @@ -11586,7 +11586,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -11597,8 +11597,8 @@ } }, "afterNewTab": { - "at": 5857, - "url": "http://127.0.0.1:37223/#/not-found", + "at": 5842, + "url": "http://127.0.0.1:37233/#/not-found", "title": "Conduit", "domHash": "cbdcb0acc42ff88a", "canaryPresent": false, @@ -11623,7 +11623,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -11634,10 +11634,10 @@ } }, "afterNewContext": { - "at": 7169, - "url": "http://127.0.0.1:37223/#/", + "at": 7157, + "url": "http://127.0.0.1:37233/#/", "title": "Conduit", - "domHash": "82970581dc3ba0ed", + "domHash": "209947a5decfaf00", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -11649,9 +11649,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "38646687161ebd53", + "textHash": "5b8b6ea8b3f6063c", "visualHash": "efa2f7065933782f", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_CRUD_OWNER Your Feed Global Feed Articles not available. Popular Tags RD_TEST_234782_4RD_TEST_1E34DD_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "button", @@ -11689,7 +11689,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -11761,8 +11761,8 @@ { "id": "RD-021", "action": { - "id": "87f3ade5fa76", - "pageUrl": "http://127.0.0.1:37223/#/article/rd-test-4cbb5d-1", + "id": "6b119743445b", + "pageUrl": "http://127.0.0.1:37233/#/article/rd-test-dacc94-1", "label": "Delete Article", "activation": "click", "kind": "mutation", @@ -11807,9 +11807,9 @@ "fields": [] }, "evidence": { - "startedAt": "2026-07-26T12:22:02.620Z", - "durationMs": 1994, - "canary": "RD_TEST_654880", + "startedAt": "2026-07-26T14:12:19.349Z", + "durationMs": 1975, + "canary": "RD_TEST_9105FA", "network": [], "console": [], "pageErrors": [], @@ -11869,14 +11869,14 @@ "weight": 82, "matchCount": 0, "visibleCount": 0, - "elapsedMs": 1 + "elapsedMs": 2 }, { "strategy": "text", "weight": 60, "matchCount": 0, "visibleCount": 0, - "elapsedMs": 2 + "elapsedMs": 1 }, { "strategy": "css", @@ -11904,7 +11904,7 @@ "weight": 60, "matchCount": 0, "visibleCount": 0, - "elapsedMs": 2 + "elapsedMs": 1 }, { "strategy": "css", @@ -11974,8 +11974,8 @@ { "id": "RD-022", "action": { - "id": "7ee6766cffc7", - "pageUrl": "http://127.0.0.1:37223/#/article/rd-test-4cbb5d-1", + "id": "4df1ffe5ccd8", + "pageUrl": "http://127.0.0.1:37233/#/article/rd-test-dacc94-1", "label": "Source code", "activation": "click", "kind": "navigation", @@ -12047,8 +12047,8 @@ { "id": "RD-023", "action": { - "id": "0a7e2dacea77", - "pageUrl": "http://127.0.0.1:37223/#/article/rd-test-4cbb5d-1", + "id": "50ecd76a40b7", + "pageUrl": "http://127.0.0.1:37233/#/article/rd-test-dacc94-1", "label": "Thinkster", "activation": "click", "kind": "navigation", @@ -12120,8 +12120,8 @@ { "id": "RD-024", "action": { - "id": "8756e450c029", - "pageUrl": "http://127.0.0.1:37223/#/article/rd-test-4cbb5d-1", + "id": "fe2e3a764c1b", + "pageUrl": "http://127.0.0.1:37233/#/article/rd-test-dacc94-1", "label": "Source code", "activation": "click", "kind": "navigation", @@ -12193,8 +12193,8 @@ { "id": "RD-025", "action": { - "id": "dff655920243", - "pageUrl": "http://127.0.0.1:37223/", + "id": "ffceb40cfb20", + "pageUrl": "http://127.0.0.1:37233/", "label": "Source code", "activation": "click", "kind": "navigation", @@ -12266,8 +12266,8 @@ { "id": "RD-026", "action": { - "id": "d0d3611360e0", - "pageUrl": "http://127.0.0.1:37223/", + "id": "9e62e4f6f98f", + "pageUrl": "http://127.0.0.1:37233/", "label": "Thinkster", "activation": "click", "kind": "navigation", @@ -12339,8 +12339,8 @@ { "id": "RD-027", "action": { - "id": "aece598f17f5", - "pageUrl": "http://127.0.0.1:37223/", + "id": "0de5cae7c6fc", + "pageUrl": "http://127.0.0.1:37233/", "label": "Source code", "activation": "click", "kind": "navigation", @@ -12412,9 +12412,9 @@ ], "environment": { "status": "VALID", - "checkedAt": "2026-07-26T12:20:47.452Z", - "durationMs": 2697, - "targetUrl": "http://127.0.0.1:37223/#/article/rd-test-4cbb5d-1", + "checkedAt": "2026-07-26T14:11:04.394Z", + "durationMs": 2665, + "targetUrl": "http://127.0.0.1:37233/#/article/rd-test-dacc94-1", "mainDocument": { "status": 200, "contentType": "text/html" diff --git a/release/evidence/raw/conduit-postgres-update.scan.json b/release/evidence/raw/conduit-postgres-update.scan.json index d546f01..6ca02dd 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": "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", + "scanId": "20260726T140939Z-e364", + "targetUrl": "http://127.0.0.1:37233/#/editor/rd-test-234782-1", + "startedAt": "2026-07-26T14:09:39.384Z", + "finishedAt": "2026-07-26T14:10:36.926Z", "options": { "maxPages": 3, "maxActions": 50, @@ -41,12 +41,12 @@ }, "pages": [ { - "url": "http://127.0.0.1:37223/#/editor/rd-test-497c2f-1", + "url": "http://127.0.0.1:37233/#/editor/rd-test-234782-1", "title": "Conduit", "actions": [ { - "id": "c6f3618390bd", - "pageUrl": "http://127.0.0.1:37223/#/editor/rd-test-497c2f-1", + "id": "98be5f25114a", + "pageUrl": "http://127.0.0.1:37233/#/editor/rd-test-234782-1", "label": "conduit", "activation": "click", "kind": "navigation", @@ -59,7 +59,7 @@ "role": "link", "accessibleName": "conduit", "text": "conduit", - "href": "http://127.0.0.1:37223/#/", + "href": "http://127.0.0.1:37233/#/", "candidates": [ { "strategy": "role", @@ -78,7 +78,7 @@ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37223/#/" + "value": "http://127.0.0.1:37233/#/" }, { "strategy": "text", @@ -96,8 +96,8 @@ "fields": [] }, { - "id": "ecbb56a1273c", - "pageUrl": "http://127.0.0.1:37223/#/editor/rd-test-497c2f-1", + "id": "43837c64db4b", + "pageUrl": "http://127.0.0.1:37233/#/editor/rd-test-234782-1", "label": "Source code", "activation": "click", "kind": "navigation", @@ -147,8 +147,8 @@ "fields": [] }, { - "id": "b98dcce76544", - "pageUrl": "http://127.0.0.1:37223/#/editor/rd-test-497c2f-1", + "id": "1a8bf663aceb", + "pageUrl": "http://127.0.0.1:37233/#/editor/rd-test-234782-1", "label": "Home", "activation": "click", "kind": "navigation", @@ -161,7 +161,7 @@ "role": "link", "accessibleName": "Home", "text": "Home", - "href": "http://127.0.0.1:37223/#/", + "href": "http://127.0.0.1:37233/#/", "candidates": [ { "strategy": "role", @@ -180,7 +180,7 @@ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37223/#/" + "value": "http://127.0.0.1:37233/#/" }, { "strategy": "text", @@ -198,8 +198,8 @@ "fields": [] }, { - "id": "e55333794c5c", - "pageUrl": "http://127.0.0.1:37223/#/editor/rd-test-497c2f-1", + "id": "1fa4cf3bed14", + "pageUrl": "http://127.0.0.1:37233/#/editor/rd-test-234782-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:37223/#/editor", + "href": "http://127.0.0.1:37233/#/editor", "candidates": [ { "strategy": "role", @@ -231,7 +231,7 @@ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37223/#/editor" + "value": "http://127.0.0.1:37233/#/editor" }, { "strategy": "text", @@ -249,8 +249,8 @@ "fields": [] }, { - "id": "37a2db3872a6", - "pageUrl": "http://127.0.0.1:37223/#/editor/rd-test-497c2f-1", + "id": "3eeae3af66a0", + "pageUrl": "http://127.0.0.1:37233/#/editor/rd-test-234782-1", "label": "Update Article", "activation": "submit", "kind": "mutation", @@ -284,7 +284,7 @@ "required": true, "disabled": false, "name": "title", - "label": "RD_TEST_497C2F_1", + "label": "RD_TEST_234782_1", "placeholder": "Article Title" }, { @@ -294,7 +294,7 @@ "required": true, "disabled": false, "name": "description", - "label": "RD_TEST_497C2F_2", + "label": "RD_TEST_234782_2", "placeholder": "What's this article about?" }, { @@ -313,14 +313,14 @@ "required": false, "disabled": false, "name": "tags", - "label": "RD_TEST_F3F938_4", + "label": "RD_TEST_234782_4", "placeholder": "Enter tags" } ] }, { - "id": "5bdab9ae6e65", - "pageUrl": "http://127.0.0.1:37223/#/editor/rd-test-497c2f-1", + "id": "dcded53b131b", + "pageUrl": "http://127.0.0.1:37233/#/editor/rd-test-234782-1", "label": "conduit", "activation": "click", "kind": "navigation", @@ -333,7 +333,7 @@ "role": "link", "accessibleName": "conduit", "text": "conduit", - "href": "http://127.0.0.1:37223/#/", + "href": "http://127.0.0.1:37233/#/", "candidates": [ { "strategy": "role", @@ -352,7 +352,7 @@ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37223/#/" + "value": "http://127.0.0.1:37233/#/" }, { "strategy": "text", @@ -370,8 +370,8 @@ "fields": [] }, { - "id": "4293b867b579", - "pageUrl": "http://127.0.0.1:37223/#/editor/rd-test-497c2f-1", + "id": "1281a1dba845", + "pageUrl": "http://127.0.0.1:37233/#/editor/rd-test-234782-1", "label": "Thinkster", "activation": "click", "kind": "navigation", @@ -421,8 +421,8 @@ "fields": [] }, { - "id": "8651bc066e40", - "pageUrl": "http://127.0.0.1:37223/#/editor/rd-test-497c2f-1", + "id": "f5e1fa59f2a3", + "pageUrl": "http://127.0.0.1:37233/#/editor/rd-test-234782-1", "label": "Source code", "activation": "click", "kind": "navigation", @@ -474,12 +474,12 @@ ] }, { - "url": "http://127.0.0.1:37223/", + "url": "http://127.0.0.1:37233/", "title": "Conduit", "actions": [ { - "id": "92446496b665", - "pageUrl": "http://127.0.0.1:37223/", + "id": "070fba8120b1", + "pageUrl": "http://127.0.0.1:37233/", "label": "conduit", "activation": "click", "kind": "navigation", @@ -492,7 +492,7 @@ "role": "link", "accessibleName": "conduit", "text": "conduit", - "href": "http://127.0.0.1:37223/#/", + "href": "http://127.0.0.1:37233/#/", "candidates": [ { "strategy": "role", @@ -511,7 +511,7 @@ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37223/#/" + "value": "http://127.0.0.1:37233/#/" }, { "strategy": "text", @@ -529,8 +529,8 @@ "fields": [] }, { - "id": "dff655920243", - "pageUrl": "http://127.0.0.1:37223/", + "id": "ffceb40cfb20", + "pageUrl": "http://127.0.0.1:37233/", "label": "Source code", "activation": "click", "kind": "navigation", @@ -580,8 +580,8 @@ "fields": [] }, { - "id": "3800f03bc706", - "pageUrl": "http://127.0.0.1:37223/", + "id": "55104873d69e", + "pageUrl": "http://127.0.0.1:37233/", "label": "Home", "activation": "click", "kind": "navigation", @@ -594,7 +594,7 @@ "role": "link", "accessibleName": "Home", "text": "Home", - "href": "http://127.0.0.1:37223/#/", + "href": "http://127.0.0.1:37233/#/", "candidates": [ { "strategy": "role", @@ -613,7 +613,7 @@ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37223/#/" + "value": "http://127.0.0.1:37233/#/" }, { "strategy": "text", @@ -631,8 +631,8 @@ "fields": [] }, { - "id": "c88ed7554ce5", - "pageUrl": "http://127.0.0.1:37223/", + "id": "03f276fb1579", + "pageUrl": "http://127.0.0.1:37233/", "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:37223/#/editor", + "href": "http://127.0.0.1:37233/#/editor", "candidates": [ { "strategy": "role", @@ -664,7 +664,7 @@ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37223/#/editor" + "value": "http://127.0.0.1:37233/#/editor" }, { "strategy": "text", @@ -682,8 +682,8 @@ "fields": [] }, { - "id": "d61ab1459de8", - "pageUrl": "http://127.0.0.1:37223/", + "id": "3afde700c371", + "pageUrl": "http://127.0.0.1:37233/", "label": "Your Feed", "activation": "click", "kind": "local", @@ -728,8 +728,8 @@ "fields": [] }, { - "id": "a69f66f3ce86", - "pageUrl": "http://127.0.0.1:37223/", + "id": "3fd2dfe8a608", + "pageUrl": "http://127.0.0.1:37233/", "label": "Global Feed", "activation": "click", "kind": "local", @@ -774,9 +774,9 @@ "fields": [] }, { - "id": "80706f2de1a4", - "pageUrl": "http://127.0.0.1:37223/", - "label": "RD_TEST_F3F938_4", + "id": "ba13285aa892", + "pageUrl": "http://127.0.0.1:37233/", + "label": "RD_TEST_234782_4", "activation": "click", "kind": "local", "intent": "interact", @@ -786,28 +786,28 @@ "tag": "button", "ordinal": 6, "role": "button", - "accessibleName": "RD_TEST_F3F938_4", - "text": "RD_TEST_F3F938_4", + "accessibleName": "RD_TEST_234782_4", + "text": "RD_TEST_234782_4", "type": "submit", "candidates": [ { "strategy": "role", "weight": 92, "role": "button", - "name": "RD_TEST_F3F938_4", + "name": "RD_TEST_234782_4", "exact": true }, { "strategy": "role", "weight": 82, "role": "button", - "name": "RD_TEST_F3F938_4", + "name": "RD_TEST_234782_4", "exact": false }, { "strategy": "text", "weight": 60, - "value": "RD_TEST_F3F938_4", + "value": "RD_TEST_234782_4", "exact": true }, { @@ -820,8 +820,8 @@ "fields": [] }, { - "id": "9d442a70bdcb", - "pageUrl": "http://127.0.0.1:37223/", + "id": "7e6c799322ef", + "pageUrl": "http://127.0.0.1:37233/", "label": "conduit", "activation": "click", "kind": "navigation", @@ -834,7 +834,7 @@ "role": "link", "accessibleName": "conduit", "text": "conduit", - "href": "http://127.0.0.1:37223/#/", + "href": "http://127.0.0.1:37233/#/", "candidates": [ { "strategy": "role", @@ -853,7 +853,7 @@ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37223/#/" + "value": "http://127.0.0.1:37233/#/" }, { "strategy": "text", @@ -871,8 +871,8 @@ "fields": [] }, { - "id": "d0d3611360e0", - "pageUrl": "http://127.0.0.1:37223/", + "id": "9e62e4f6f98f", + "pageUrl": "http://127.0.0.1:37233/", "label": "Thinkster", "activation": "click", "kind": "navigation", @@ -922,8 +922,8 @@ "fields": [] }, { - "id": "aece598f17f5", - "pageUrl": "http://127.0.0.1:37223/", + "id": "0de5cae7c6fc", + "pageUrl": "http://127.0.0.1:37233/", "label": "Source code", "activation": "click", "kind": "navigation", @@ -975,12 +975,12 @@ ] }, { - "url": "http://127.0.0.1:37223/#/editor", + "url": "http://127.0.0.1:37233/#/editor", "title": "Conduit", "actions": [ { - "id": "1bf42ddc57a0", - "pageUrl": "http://127.0.0.1:37223/#/editor", + "id": "ebe458223aaa", + "pageUrl": "http://127.0.0.1:37233/#/editor", "label": "conduit", "activation": "click", "kind": "navigation", @@ -993,7 +993,7 @@ "role": "link", "accessibleName": "conduit", "text": "conduit", - "href": "http://127.0.0.1:37223/#/", + "href": "http://127.0.0.1:37233/#/", "candidates": [ { "strategy": "role", @@ -1012,7 +1012,7 @@ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37223/#/" + "value": "http://127.0.0.1:37233/#/" }, { "strategy": "text", @@ -1030,8 +1030,8 @@ "fields": [] }, { - "id": "d26ff438143d", - "pageUrl": "http://127.0.0.1:37223/#/editor", + "id": "9d5c9e4234ca", + "pageUrl": "http://127.0.0.1:37233/#/editor", "label": "Source code", "activation": "click", "kind": "navigation", @@ -1081,8 +1081,8 @@ "fields": [] }, { - "id": "53cf74a707f5", - "pageUrl": "http://127.0.0.1:37223/#/editor", + "id": "01ea020389a4", + "pageUrl": "http://127.0.0.1:37233/#/editor", "label": "Home", "activation": "click", "kind": "navigation", @@ -1095,7 +1095,7 @@ "role": "link", "accessibleName": "Home", "text": "Home", - "href": "http://127.0.0.1:37223/#/", + "href": "http://127.0.0.1:37233/#/", "candidates": [ { "strategy": "role", @@ -1114,7 +1114,7 @@ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37223/#/" + "value": "http://127.0.0.1:37233/#/" }, { "strategy": "text", @@ -1132,8 +1132,8 @@ "fields": [] }, { - "id": "f33e20a1aa27", - "pageUrl": "http://127.0.0.1:37223/#/editor", + "id": "ae5a7d20cdff", + "pageUrl": "http://127.0.0.1:37233/#/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:37223/#/editor", + "href": "http://127.0.0.1:37233/#/editor", "candidates": [ { "strategy": "role", @@ -1165,7 +1165,7 @@ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37223/#/editor" + "value": "http://127.0.0.1:37233/#/editor" }, { "strategy": "text", @@ -1183,8 +1183,8 @@ "fields": [] }, { - "id": "a6522be0fc1d", - "pageUrl": "http://127.0.0.1:37223/#/editor", + "id": "2426ce190789", + "pageUrl": "http://127.0.0.1:37233/#/editor", "label": "Publish Article", "activation": "submit", "kind": "mutation", @@ -1250,8 +1250,8 @@ ] }, { - "id": "663211a5be23", - "pageUrl": "http://127.0.0.1:37223/#/editor", + "id": "24398d13b7ae", + "pageUrl": "http://127.0.0.1:37233/#/editor", "label": "conduit", "activation": "click", "kind": "navigation", @@ -1264,7 +1264,7 @@ "role": "link", "accessibleName": "conduit", "text": "conduit", - "href": "http://127.0.0.1:37223/#/", + "href": "http://127.0.0.1:37233/#/", "candidates": [ { "strategy": "role", @@ -1283,7 +1283,7 @@ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37223/#/" + "value": "http://127.0.0.1:37233/#/" }, { "strategy": "text", @@ -1301,8 +1301,8 @@ "fields": [] }, { - "id": "7c82bc9fd8ce", - "pageUrl": "http://127.0.0.1:37223/#/editor", + "id": "260d6258654f", + "pageUrl": "http://127.0.0.1:37233/#/editor", "label": "Thinkster", "activation": "click", "kind": "navigation", @@ -1352,8 +1352,8 @@ "fields": [] }, { - "id": "ab9bf2cd0dfb", - "pageUrl": "http://127.0.0.1:37223/#/editor", + "id": "b541833da6e9", + "pageUrl": "http://127.0.0.1:37233/#/editor", "label": "Source code", "activation": "click", "kind": "navigation", @@ -1409,8 +1409,8 @@ { "id": "RD-001", "action": { - "id": "c6f3618390bd", - "pageUrl": "http://127.0.0.1:37223/#/editor/rd-test-497c2f-1", + "id": "98be5f25114a", + "pageUrl": "http://127.0.0.1:37233/#/editor/rd-test-234782-1", "label": "conduit", "activation": "click", "kind": "navigation", @@ -1423,7 +1423,7 @@ "role": "link", "accessibleName": "conduit", "text": "conduit", - "href": "http://127.0.0.1:37223/#/", + "href": "http://127.0.0.1:37233/#/", "candidates": [ { "strategy": "role", @@ -1442,7 +1442,7 @@ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37223/#/" + "value": "http://127.0.0.1:37233/#/" }, { "strategy": "text", @@ -1460,31 +1460,31 @@ "fields": [] }, "evidence": { - "startedAt": "2026-07-26T12:19:30.787Z", - "durationMs": 2534, - "canary": "RD_TEST_2CE141", + "startedAt": "2026-07-26T14:09:46.903Z", + "durationMs": 2606, + "canary": "RD_TEST_D3E8EA", "network": [ { "id": "net-1", "method": "GET", - "url": "http://127.0.0.1:37223/api/articles/feed?limit=3&&offset=0", + "url": "http://127.0.0.1:37233/api/articles/feed?limit=3&&offset=0", "resourceType": "xhr", - "startedAt": 1559, + "startedAt": 1629, "status": 200, "ok": true, - "finishedAt": 1566, + "finishedAt": 1635, "contentType": "application/json", "resourceTypeHint": "feed" }, { "id": "net-2", "method": "GET", - "url": "http://127.0.0.1:37223/api/tags", + "url": "http://127.0.0.1:37233/api/tags", "resourceType": "xhr", - "startedAt": 1560, + "startedAt": 1630, "status": 200, "ok": true, - "finishedAt": 1564, + "finishedAt": 1634, "contentType": "application/json", "resourceTypeHint": "tags" } @@ -1532,14 +1532,14 @@ "weight": 60, "matchCount": 2, "visibleCount": 2, - "elapsedMs": 6 + "elapsedMs": 7 }, { "strategy": "css", "weight": 35, "matchCount": 1, "visibleCount": 1, - "elapsedMs": 5 + "elapsedMs": 4 } ], "chosenStrategy": "css", @@ -1547,10 +1547,10 @@ "retryCount": 0 }, "before": { - "at": 1516, - "url": "http://127.0.0.1:37223/#/editor/rd-test-497c2f-1", + "at": 1583, + "url": "http://127.0.0.1:37233/#/editor/rd-test-234782-1", "title": "Conduit", - "domHash": "5867e018f2185758", + "domHash": "ac86c3ebc6d2fcd8", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -1562,15 +1562,15 @@ "accessDenied": false }, "semanticDom": { - "textHash": "e17c5fa668856e91", + "textHash": "355f46d83ddde135", "visualHash": "b85410fa0ea5a358", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_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": "ad1b28d6d044eea2", + "valueHash": "574a02f4d18dc395", "checked": false, "disabled": false, "visible": true @@ -1579,7 +1579,7 @@ "tag": "input", "type": "text", "name": "description", - "valueHash": "68ff9e5e4c3ea2cf", + "valueHash": "93d3f643798f25b7", "checked": false, "disabled": false, "visible": true @@ -1588,7 +1588,7 @@ "tag": "textarea", "type": "textarea", "name": "body", - "valueHash": "d6e752b790aa51b6", + "valueHash": "52e69a84da0e2f65", "disabled": false, "visible": true }, @@ -1596,7 +1596,7 @@ "tag": "input", "type": "text", "name": "tags", - "valueHash": "9b3570f9ddf845d4", + "valueHash": "ab16fe3c80ddcf68", "checked": false, "disabled": false, "visible": true @@ -1616,7 +1616,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -1627,10 +1627,10 @@ } }, "beforeAction": { - "at": 1527, - "url": "http://127.0.0.1:37223/#/editor/rd-test-497c2f-1", + "at": 1594, + "url": "http://127.0.0.1:37233/#/editor/rd-test-234782-1", "title": "Conduit", - "domHash": "5867e018f2185758", + "domHash": "ac86c3ebc6d2fcd8", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -1642,15 +1642,15 @@ "accessDenied": false }, "semanticDom": { - "textHash": "e17c5fa668856e91", + "textHash": "355f46d83ddde135", "visualHash": "b85410fa0ea5a358", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_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": "ad1b28d6d044eea2", + "valueHash": "574a02f4d18dc395", "checked": false, "disabled": false, "visible": true @@ -1659,7 +1659,7 @@ "tag": "input", "type": "text", "name": "description", - "valueHash": "68ff9e5e4c3ea2cf", + "valueHash": "93d3f643798f25b7", "checked": false, "disabled": false, "visible": true @@ -1668,7 +1668,7 @@ "tag": "textarea", "type": "textarea", "name": "body", - "valueHash": "d6e752b790aa51b6", + "valueHash": "52e69a84da0e2f65", "disabled": false, "visible": true }, @@ -1676,7 +1676,7 @@ "tag": "input", "type": "text", "name": "tags", - "valueHash": "9b3570f9ddf845d4", + "valueHash": "ab16fe3c80ddcf68", "checked": false, "disabled": false, "visible": true @@ -1696,7 +1696,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -1709,10 +1709,10 @@ "networkSettled": true, "targetBusyAfter": false, "after": { - "at": 2529, - "url": "http://127.0.0.1:37223/#/", + "at": 2601, + "url": "http://127.0.0.1:37233/#/", "title": "Conduit", - "domHash": "09a0c2dcd70a0114", + "domHash": "41eb930ac9c56f2e", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -1724,9 +1724,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "b0238cc5ff984bef", + "textHash": "7e40231cc730fb3f", "visualHash": "72ad38eb67085423", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_CRUD_OWNER Your Feed Global Feed Articles not available. Popular Tags RD_TEST_234782_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "button", @@ -1757,7 +1757,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -1785,8 +1785,8 @@ { "id": "RD-002", "action": { - "id": "b98dcce76544", - "pageUrl": "http://127.0.0.1:37223/#/editor/rd-test-497c2f-1", + "id": "1a8bf663aceb", + "pageUrl": "http://127.0.0.1:37233/#/editor/rd-test-234782-1", "label": "Home", "activation": "click", "kind": "navigation", @@ -1799,7 +1799,7 @@ "role": "link", "accessibleName": "Home", "text": "Home", - "href": "http://127.0.0.1:37223/#/", + "href": "http://127.0.0.1:37233/#/", "candidates": [ { "strategy": "role", @@ -1818,7 +1818,7 @@ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37223/#/" + "value": "http://127.0.0.1:37233/#/" }, { "strategy": "text", @@ -1836,31 +1836,31 @@ "fields": [] }, "evidence": { - "startedAt": "2026-07-26T12:19:33.382Z", + "startedAt": "2026-07-26T14:09:49.559Z", "durationMs": 2517, - "canary": "RD_TEST_E90118", + "canary": "RD_TEST_BF25D1", "network": [ { "id": "net-1", "method": "GET", - "url": "http://127.0.0.1:37223/api/articles/feed?limit=3&&offset=0", + "url": "http://127.0.0.1:37233/api/articles/feed?limit=3&&offset=0", "resourceType": "xhr", - "startedAt": 1532, + "startedAt": 1542, "status": 200, "ok": true, - "finishedAt": 1539, + "finishedAt": 1549, "contentType": "application/json", "resourceTypeHint": "feed" }, { "id": "net-2", "method": "GET", - "url": "http://127.0.0.1:37223/api/tags", + "url": "http://127.0.0.1:37233/api/tags", "resourceType": "xhr", - "startedAt": 1533, + "startedAt": 1542, "status": 200, "ok": true, - "finishedAt": 1538, + "finishedAt": 1547, "contentType": "application/json", "resourceTypeHint": "tags" } @@ -1902,10 +1902,10 @@ "retryCount": 0 }, "before": { - "at": 1497, - "url": "http://127.0.0.1:37223/#/editor/rd-test-497c2f-1", + "at": 1503, + "url": "http://127.0.0.1:37233/#/editor/rd-test-234782-1", "title": "Conduit", - "domHash": "5867e018f2185758", + "domHash": "ac86c3ebc6d2fcd8", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -1917,15 +1917,15 @@ "accessDenied": false }, "semanticDom": { - "textHash": "e17c5fa668856e91", + "textHash": "355f46d83ddde135", "visualHash": "b85410fa0ea5a358", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_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": "ad1b28d6d044eea2", + "valueHash": "574a02f4d18dc395", "checked": false, "disabled": false, "visible": true @@ -1934,7 +1934,7 @@ "tag": "input", "type": "text", "name": "description", - "valueHash": "68ff9e5e4c3ea2cf", + "valueHash": "93d3f643798f25b7", "checked": false, "disabled": false, "visible": true @@ -1943,7 +1943,7 @@ "tag": "textarea", "type": "textarea", "name": "body", - "valueHash": "d6e752b790aa51b6", + "valueHash": "52e69a84da0e2f65", "disabled": false, "visible": true }, @@ -1951,7 +1951,7 @@ "tag": "input", "type": "text", "name": "tags", - "valueHash": "9b3570f9ddf845d4", + "valueHash": "ab16fe3c80ddcf68", "checked": false, "disabled": false, "visible": true @@ -1971,7 +1971,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -1982,10 +1982,10 @@ } }, "beforeAction": { - "at": 1507, - "url": "http://127.0.0.1:37223/#/editor/rd-test-497c2f-1", + "at": 1512, + "url": "http://127.0.0.1:37233/#/editor/rd-test-234782-1", "title": "Conduit", - "domHash": "5867e018f2185758", + "domHash": "ac86c3ebc6d2fcd8", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -1997,15 +1997,15 @@ "accessDenied": false }, "semanticDom": { - "textHash": "e17c5fa668856e91", + "textHash": "355f46d83ddde135", "visualHash": "b85410fa0ea5a358", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_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": "ad1b28d6d044eea2", + "valueHash": "574a02f4d18dc395", "checked": false, "disabled": false, "visible": true @@ -2014,7 +2014,7 @@ "tag": "input", "type": "text", "name": "description", - "valueHash": "68ff9e5e4c3ea2cf", + "valueHash": "93d3f643798f25b7", "checked": false, "disabled": false, "visible": true @@ -2023,7 +2023,7 @@ "tag": "textarea", "type": "textarea", "name": "body", - "valueHash": "d6e752b790aa51b6", + "valueHash": "52e69a84da0e2f65", "disabled": false, "visible": true }, @@ -2031,7 +2031,7 @@ "tag": "input", "type": "text", "name": "tags", - "valueHash": "9b3570f9ddf845d4", + "valueHash": "ab16fe3c80ddcf68", "checked": false, "disabled": false, "visible": true @@ -2051,7 +2051,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -2064,10 +2064,10 @@ "networkSettled": true, "targetBusyAfter": false, "after": { - "at": 2512, - "url": "http://127.0.0.1:37223/#/", + "at": 2513, + "url": "http://127.0.0.1:37233/#/", "title": "Conduit", - "domHash": "09a0c2dcd70a0114", + "domHash": "41eb930ac9c56f2e", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -2079,9 +2079,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "b0238cc5ff984bef", + "textHash": "7e40231cc730fb3f", "visualHash": "72ad38eb67085423", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_CRUD_OWNER Your Feed Global Feed Articles not available. Popular Tags RD_TEST_234782_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "button", @@ -2112,7 +2112,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -2140,8 +2140,8 @@ { "id": "RD-003", "action": { - "id": "e55333794c5c", - "pageUrl": "http://127.0.0.1:37223/#/editor/rd-test-497c2f-1", + "id": "1fa4cf3bed14", + "pageUrl": "http://127.0.0.1:37233/#/editor/rd-test-234782-1", "label": "New Article", "activation": "click", "kind": "navigation", @@ -2154,7 +2154,7 @@ "role": "link", "accessibleName": "New Article", "text": "New Article", - "href": "http://127.0.0.1:37223/#/editor", + "href": "http://127.0.0.1:37233/#/editor", "candidates": [ { "strategy": "role", @@ -2173,7 +2173,7 @@ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37223/#/editor" + "value": "http://127.0.0.1:37233/#/editor" }, { "strategy": "text", @@ -2191,9 +2191,9 @@ "fields": [] }, "evidence": { - "startedAt": "2026-07-26T12:19:35.928Z", - "durationMs": 2477, - "canary": "RD_TEST_15DA89", + "startedAt": "2026-07-26T14:09:52.111Z", + "durationMs": 2530, + "canary": "RD_TEST_D0F7FA", "network": [], "console": [], "pageErrors": [], @@ -2232,10 +2232,10 @@ "retryCount": 0 }, "before": { - "at": 1467, - "url": "http://127.0.0.1:37223/#/editor/rd-test-497c2f-1", + "at": 1520, + "url": "http://127.0.0.1:37233/#/editor/rd-test-234782-1", "title": "Conduit", - "domHash": "5867e018f2185758", + "domHash": "ac86c3ebc6d2fcd8", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -2247,15 +2247,15 @@ "accessDenied": false }, "semanticDom": { - "textHash": "e17c5fa668856e91", + "textHash": "355f46d83ddde135", "visualHash": "b85410fa0ea5a358", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_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": "ad1b28d6d044eea2", + "valueHash": "574a02f4d18dc395", "checked": false, "disabled": false, "visible": true @@ -2264,7 +2264,7 @@ "tag": "input", "type": "text", "name": "description", - "valueHash": "68ff9e5e4c3ea2cf", + "valueHash": "93d3f643798f25b7", "checked": false, "disabled": false, "visible": true @@ -2273,7 +2273,7 @@ "tag": "textarea", "type": "textarea", "name": "body", - "valueHash": "d6e752b790aa51b6", + "valueHash": "52e69a84da0e2f65", "disabled": false, "visible": true }, @@ -2281,7 +2281,7 @@ "tag": "input", "type": "text", "name": "tags", - "valueHash": "9b3570f9ddf845d4", + "valueHash": "ab16fe3c80ddcf68", "checked": false, "disabled": false, "visible": true @@ -2301,7 +2301,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -2312,10 +2312,10 @@ } }, "beforeAction": { - "at": 1477, - "url": "http://127.0.0.1:37223/#/editor/rd-test-497c2f-1", + "at": 1530, + "url": "http://127.0.0.1:37233/#/editor/rd-test-234782-1", "title": "Conduit", - "domHash": "5867e018f2185758", + "domHash": "ac86c3ebc6d2fcd8", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -2327,15 +2327,15 @@ "accessDenied": false }, "semanticDom": { - "textHash": "e17c5fa668856e91", + "textHash": "355f46d83ddde135", "visualHash": "b85410fa0ea5a358", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_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": "ad1b28d6d044eea2", + "valueHash": "574a02f4d18dc395", "checked": false, "disabled": false, "visible": true @@ -2344,7 +2344,7 @@ "tag": "input", "type": "text", "name": "description", - "valueHash": "68ff9e5e4c3ea2cf", + "valueHash": "93d3f643798f25b7", "checked": false, "disabled": false, "visible": true @@ -2353,7 +2353,7 @@ "tag": "textarea", "type": "textarea", "name": "body", - "valueHash": "d6e752b790aa51b6", + "valueHash": "52e69a84da0e2f65", "disabled": false, "visible": true }, @@ -2361,7 +2361,7 @@ "tag": "input", "type": "text", "name": "tags", - "valueHash": "9b3570f9ddf845d4", + "valueHash": "ab16fe3c80ddcf68", "checked": false, "disabled": false, "visible": true @@ -2381,7 +2381,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -2394,10 +2394,10 @@ "networkSettled": true, "targetBusyAfter": false, "after": { - "at": 2473, - "url": "http://127.0.0.1:37223/#/editor", + "at": 2526, + "url": "http://127.0.0.1:37233/#/editor", "title": "Conduit", - "domHash": "c936833dbedd7df2", + "domHash": "a01e944d4b62d184", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -2409,9 +2409,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "d0c4b4fdb77a11e9", + "textHash": "e1abb484093cff92", "visualHash": "b85410fa0ea5a358", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_CRUD_OWNER Publish Article conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "input", @@ -2463,7 +2463,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -2491,8 +2491,8 @@ { "id": "RD-004", "action": { - "id": "37a2db3872a6", - "pageUrl": "http://127.0.0.1:37223/#/editor/rd-test-497c2f-1", + "id": "3eeae3af66a0", + "pageUrl": "http://127.0.0.1:37233/#/editor/rd-test-234782-1", "label": "Update Article", "activation": "submit", "kind": "mutation", @@ -2526,7 +2526,7 @@ "required": true, "disabled": false, "name": "title", - "label": "RD_TEST_497C2F_1", + "label": "RD_TEST_234782_1", "placeholder": "Article Title" }, { @@ -2536,7 +2536,7 @@ "required": true, "disabled": false, "name": "description", - "label": "RD_TEST_497C2F_2", + "label": "RD_TEST_234782_2", "placeholder": "What's this article about?" }, { @@ -2555,97 +2555,97 @@ "required": false, "disabled": false, "name": "tags", - "label": "RD_TEST_F3F938_4", + "label": "RD_TEST_234782_4", "placeholder": "Enter tags" } ] }, "evidence": { - "startedAt": "2026-07-26T12:19:38.517Z", - "durationMs": 7141, - "canary": "RD_TEST_4CBB5D", + "startedAt": "2026-07-26T14:09:54.763Z", + "durationMs": 6973, + "canary": "RD_TEST_DACC94", "network": [ { "id": "net-1", "method": "PUT", - "url": "http://127.0.0.1:37223/api/articles/rd-test-497c2f-1", + "url": "http://127.0.0.1:37233/api/articles/rd-test-234782-1", "resourceType": "xhr", - "startedAt": 1636, + "startedAt": 1607, "status": 200, "ok": true, - "finishedAt": 1660, + "finishedAt": 1619, "contentType": "application/json", - "resourceTypeHint": "rd-test-497c2f-1" + "resourceTypeHint": "rd-test-234782-1" }, { "id": "net-2", "method": "GET", "url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwlxdu.woff2", "resourceType": "font", - "startedAt": 1669, + "startedAt": 1627, "status": 200, "ok": true, - "finishedAt": 1719, + "finishedAt": 1676, "contentType": "font/woff2", "resourceTypeHint": "6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwlxdu.woff2" }, { "id": "net-3", "method": "GET", - "url": "http://127.0.0.1:37223/api/articles/rd-test-4cbb5d-1/comments", + "url": "http://127.0.0.1:37233/api/articles/rd-test-dacc94-1/comments", "resourceType": "xhr", - "startedAt": 1670, + "startedAt": 1628, "status": 200, "ok": true, - "finishedAt": 1677, + "finishedAt": 1633, "contentType": "application/json", "resourceTypeHint": "comments" }, { "id": "net-4", "method": "GET", - "url": "http://127.0.0.1:37223/api/articles/rd-test-4cbb5d-1", + "url": "http://127.0.0.1:37233/api/articles/rd-test-dacc94-1", "resourceType": "xhr", - "startedAt": 1671, + "startedAt": 1629, "status": 200, "ok": true, - "finishedAt": 1681, + "finishedAt": 1637, "contentType": "application/json", - "resourceTypeHint": "rd-test-4cbb5d-1" + "resourceTypeHint": "rd-test-dacc94-1" }, { "id": "net-5", "method": "GET", "url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwlxdu.woff2", "resourceType": "font", - "startedAt": 1698, + "startedAt": 1652, "status": 200, "ok": true, - "finishedAt": 1747, + "finishedAt": 1699, "contentType": "font/woff2", "resourceTypeHint": "6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwlxdu.woff2" }, { "id": "net-6", "method": "GET", - "url": "http://127.0.0.1:37223/", + "url": "http://127.0.0.1:37233/", "resourceType": "document", - "startedAt": 2779, + "startedAt": 2679, "status": 200, "ok": true, "contentType": "text/html", "resourceTypeHint": "resource", - "finishedAt": 2787 + "finishedAt": 2690 }, { "id": "net-7", "method": "GET", "url": "http://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css", "resourceType": "stylesheet", - "startedAt": 2786, + "startedAt": 2686, "status": 307, "ok": false, - "finishedAt": 2789, + "finishedAt": 2691, "location": "https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css", "resourceTypeHint": "ionicons.min.css" }, @@ -2654,58 +2654,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": 2786, + "startedAt": 2688, "status": 200, "ok": true, - "finishedAt": 2829, + "finishedAt": 2733, "contentType": "text/css", "resourceTypeHint": "css" }, { "id": "net-9", "method": "GET", - "url": "http://127.0.0.1:37223/assets/index-CLdavoKn.js", + "url": "http://127.0.0.1:37233/assets/index-CLdavoKn.js", "resourceType": "script", - "startedAt": 2786, + "startedAt": 2688, "status": 200, "ok": true, - "finishedAt": 2800, + "finishedAt": 2714, "contentType": "text/javascript", "resourceTypeHint": "index-CLdavoKn.js" }, { "id": "net-10", "method": "GET", - "url": "http://127.0.0.1:37223/assets/index-De1Lwdlm.css", + "url": "http://127.0.0.1:37233/assets/index-De1Lwdlm.css", "resourceType": "stylesheet", - "startedAt": 2786, + "startedAt": 2688, "status": 200, "ok": true, - "finishedAt": 2792, "contentType": "text/css", - "resourceTypeHint": "index-De1Lwdlm.css" + "resourceTypeHint": "index-De1Lwdlm.css", + "finishedAt": 2695 }, { "id": "net-11", "method": "GET", "url": "https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css", "resourceType": "stylesheet", - "startedAt": 2789, + "startedAt": 2691, "status": 200, "ok": true, - "finishedAt": 3071, "contentType": "text/css", - "resourceTypeHint": "ionicons.min.css" + "resourceTypeHint": "ionicons.min.css", + "finishedAt": 2848 }, { "id": "net-12", "method": "GET", "url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdu.woff2", "resourceType": "font", - "startedAt": 3081, + "startedAt": 2861, "status": 200, "ok": true, - "finishedAt": 3128, + "finishedAt": 2910, "contentType": "font/woff2", "resourceTypeHint": "6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdu.woff2" }, @@ -2714,10 +2714,10 @@ "method": "GET", "url": "https://code.ionicframework.com/ionicons/2.0.1/fonts/ionicons.ttf?v=2.0.1", "resourceType": "font", - "startedAt": 3082, + "startedAt": 2861, "status": 200, "ok": true, - "finishedAt": 3194, + "finishedAt": 3028, "contentType": "font/ttf", "resourceTypeHint": "ionicons.ttf" }, @@ -2726,10 +2726,10 @@ "method": "GET", "url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7l.woff2", "resourceType": "font", - "startedAt": 3083, + "startedAt": 2863, "status": 200, "ok": true, - "finishedAt": 3134, + "finishedAt": 2915, "contentType": "font/woff2", "resourceTypeHint": "6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7l.woff2" }, @@ -2738,10 +2738,10 @@ "method": "GET", "url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwlxdu.woff2", "resourceType": "font", - "startedAt": 3083, + "startedAt": 2863, "status": 200, "ok": true, - "finishedAt": 3129, + "finishedAt": 2912, "contentType": "font/woff2", "resourceTypeHint": "6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwlxdu.woff2" }, @@ -2750,82 +2750,82 @@ "method": "GET", "url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7nsDI.woff2", "resourceType": "font", - "startedAt": 3084, + "startedAt": 2864, "status": 200, "ok": true, - "finishedAt": 3180, + "finishedAt": 2961, "contentType": "font/woff2", "resourceTypeHint": "6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7nsDI.woff2" }, { "id": "net-17", "method": "GET", - "url": "http://127.0.0.1:37223/api/articles/rd-test-4cbb5d-1/comments", + "url": "http://127.0.0.1:37233/api/articles/rd-test-dacc94-1/comments", "resourceType": "xhr", - "startedAt": 3088, + "startedAt": 2866, "status": 200, "ok": true, - "finishedAt": 3096, "contentType": "application/json", - "resourceTypeHint": "comments" + "resourceTypeHint": "comments", + "finishedAt": 2877 }, { "id": "net-18", "method": "GET", - "url": "http://127.0.0.1:37223/api/articles/rd-test-4cbb5d-1", + "url": "http://127.0.0.1:37233/api/articles/rd-test-dacc94-1", "resourceType": "xhr", - "startedAt": 3088, + "startedAt": 2866, "status": 200, "ok": true, - "finishedAt": 3101, + "finishedAt": 2881, "contentType": "application/json", - "resourceTypeHint": "rd-test-4cbb5d-1" + "resourceTypeHint": "rd-test-dacc94-1" }, { "id": "net-19", "method": "GET", - "url": "http://127.0.0.1:37223/api/user", + "url": "http://127.0.0.1:37233/api/user", "resourceType": "xhr", - "startedAt": 3089, + "startedAt": 2866, "status": 200, "ok": true, + "finishedAt": 2877, "contentType": "application/json", - "resourceTypeHint": "user", - "finishedAt": 3096 + "resourceTypeHint": "user" }, { "id": "net-20", "method": "GET", "url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwlxdu.woff2", "resourceType": "font", - "startedAt": 3106, + "startedAt": 2889, "status": 200, "ok": true, - "finishedAt": 3170, + "finishedAt": 2952, "contentType": "font/woff2", "resourceTypeHint": "6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwlxdu.woff2" }, { "id": "net-21", "method": "GET", - "url": "http://127.0.0.1:37223/", + "url": "http://127.0.0.1:37233/", "resourceType": "document", - "startedAt": 3905, + "startedAt": 3690, "status": 200, "ok": true, "contentType": "text/html", "resourceTypeHint": "resource", - "finishedAt": 3913 + "finishedAt": 3698 }, { "id": "net-22", "method": "GET", "url": "http://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css", "resourceType": "stylesheet", - "startedAt": 3911, + "startedAt": 3697, "status": 307, "ok": false, - "finishedAt": 3914, + "finishedAt": 3700, "location": "https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css", "resourceTypeHint": "ionicons.min.css" }, @@ -2834,58 +2834,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": 3912, + "startedAt": 3697, "status": 200, "ok": true, - "finishedAt": 3961, + "finishedAt": 3737, "contentType": "text/css", "resourceTypeHint": "css" }, { "id": "net-24", "method": "GET", - "url": "http://127.0.0.1:37223/assets/index-CLdavoKn.js", + "url": "http://127.0.0.1:37233/assets/index-CLdavoKn.js", "resourceType": "script", - "startedAt": 3912, + "startedAt": 3697, "status": 200, "ok": true, - "finishedAt": 3947, + "finishedAt": 3710, "contentType": "text/javascript", "resourceTypeHint": "index-CLdavoKn.js" }, { "id": "net-25", "method": "GET", - "url": "http://127.0.0.1:37223/assets/index-De1Lwdlm.css", + "url": "http://127.0.0.1:37233/assets/index-De1Lwdlm.css", "resourceType": "stylesheet", - "startedAt": 3912, + "startedAt": 3697, "status": 200, "ok": true, + "finishedAt": 3703, "contentType": "text/css", - "resourceTypeHint": "index-De1Lwdlm.css", - "finishedAt": 3917 + "resourceTypeHint": "index-De1Lwdlm.css" }, { "id": "net-26", "method": "GET", "url": "https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css", "resourceType": "stylesheet", - "startedAt": 3914, + "startedAt": 3700, "status": 200, "ok": true, - "finishedAt": 3990, "contentType": "text/css", - "resourceTypeHint": "ionicons.min.css" + "resourceTypeHint": "ionicons.min.css", + "finishedAt": 3783 }, { "id": "net-27", "method": "GET", "url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdu.woff2", "resourceType": "font", - "startedAt": 4002, + "startedAt": 3793, "status": 200, "ok": true, - "finishedAt": 4048, + "finishedAt": 3840, "contentType": "font/woff2", "resourceTypeHint": "6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdu.woff2" }, @@ -2894,10 +2894,10 @@ "method": "GET", "url": "https://code.ionicframework.com/ionicons/2.0.1/fonts/ionicons.ttf?v=2.0.1", "resourceType": "font", - "startedAt": 4003, + "startedAt": 3794, "status": 200, "ok": true, - "finishedAt": 4106, + "finishedAt": 3906, "contentType": "font/ttf", "resourceTypeHint": "ionicons.ttf" }, @@ -2906,10 +2906,10 @@ "method": "GET", "url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7l.woff2", "resourceType": "font", - "startedAt": 4003, + "startedAt": 3795, "status": 200, "ok": true, - "finishedAt": 4051, + "finishedAt": 3843, "contentType": "font/woff2", "resourceTypeHint": "6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7l.woff2" }, @@ -2918,10 +2918,10 @@ "method": "GET", "url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwlxdu.woff2", "resourceType": "font", - "startedAt": 4003, + "startedAt": 3795, "status": 200, "ok": true, - "finishedAt": 4054, + "finishedAt": 3846, "contentType": "font/woff2", "resourceTypeHint": "6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwlxdu.woff2" }, @@ -2930,46 +2930,46 @@ "method": "GET", "url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7nsDI.woff2", "resourceType": "font", - "startedAt": 4004, + "startedAt": 3795, "status": 200, "ok": true, - "finishedAt": 4051, + "finishedAt": 3843, "contentType": "font/woff2", "resourceTypeHint": "6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7nsDI.woff2" }, { "id": "net-32", "method": "GET", - "url": "http://127.0.0.1:37223/api/articles/rd-test-4cbb5d-1/comments", + "url": "http://127.0.0.1:37233/api/articles/rd-test-dacc94-1/comments", "resourceType": "xhr", - "startedAt": 4006, + "startedAt": 3797, "status": 200, "ok": true, - "finishedAt": 4015, + "finishedAt": 3806, "contentType": "application/json", "resourceTypeHint": "comments" }, { "id": "net-33", "method": "GET", - "url": "http://127.0.0.1:37223/api/articles/rd-test-4cbb5d-1", + "url": "http://127.0.0.1:37233/api/articles/rd-test-dacc94-1", "resourceType": "xhr", - "startedAt": 4007, + "startedAt": 3798, "status": 200, "ok": true, - "finishedAt": 4020, + "finishedAt": 3807, "contentType": "application/json", - "resourceTypeHint": "rd-test-4cbb5d-1" + "resourceTypeHint": "rd-test-dacc94-1" }, { "id": "net-34", "method": "GET", - "url": "http://127.0.0.1:37223/api/user", + "url": "http://127.0.0.1:37233/api/user", "resourceType": "xhr", - "startedAt": 4008, + "startedAt": 3798, "status": 200, "ok": true, - "finishedAt": 4013, + "finishedAt": 3804, "contentType": "application/json", "resourceTypeHint": "user" }, @@ -2978,10 +2978,10 @@ "method": "GET", "url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwlxdu.woff2", "resourceType": "font", - "startedAt": 4028, + "startedAt": 3819, "status": 200, "ok": true, - "finishedAt": 4093, + "finishedAt": 3887, "contentType": "font/woff2", "resourceTypeHint": "6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwlxdu.woff2" } @@ -2994,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_4CBB5D_1", + "value": "RD_TEST_DACC94_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_4CBB5D_2", + "value": "RD_TEST_DACC94_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_4CBB5D_3", + "value": "RD_TEST_DACC94_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_4CBB5D_4", + "value": "RD_TEST_DACC94_4", "redacted": false } ], @@ -3045,10 +3045,10 @@ "retryCount": 0 }, "before": { - "at": 1527, - "url": "http://127.0.0.1:37223/#/editor/rd-test-497c2f-1", + "at": 1507, + "url": "http://127.0.0.1:37233/#/editor/rd-test-234782-1", "title": "Conduit", - "domHash": "5867e018f2185758", + "domHash": "ac86c3ebc6d2fcd8", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -3060,15 +3060,15 @@ "accessDenied": false }, "semanticDom": { - "textHash": "e17c5fa668856e91", + "textHash": "355f46d83ddde135", "visualHash": "b85410fa0ea5a358", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_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": "ad1b28d6d044eea2", + "valueHash": "574a02f4d18dc395", "checked": false, "disabled": false, "visible": true @@ -3077,7 +3077,7 @@ "tag": "input", "type": "text", "name": "description", - "valueHash": "68ff9e5e4c3ea2cf", + "valueHash": "93d3f643798f25b7", "checked": false, "disabled": false, "visible": true @@ -3086,7 +3086,7 @@ "tag": "textarea", "type": "textarea", "name": "body", - "valueHash": "d6e752b790aa51b6", + "valueHash": "52e69a84da0e2f65", "disabled": false, "visible": true }, @@ -3094,7 +3094,7 @@ "tag": "input", "type": "text", "name": "tags", - "valueHash": "9b3570f9ddf845d4", + "valueHash": "ab16fe3c80ddcf68", "checked": false, "disabled": false, "visible": true @@ -3114,7 +3114,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -3131,7 +3131,7 @@ "rows": [ { "keyHash": "186347d9ea7673a2", - "rowHash": "e08d60723963559f", + "rowHash": "ec7c570ed4795046", "softDeleted": false } ], @@ -3168,8 +3168,8 @@ "softDeleted": false }, { - "keyHash": "667da1af4b45220f", - "rowHash": "5c8f98476fb3bfca", + "keyHash": "75453dbfb3621178", + "rowHash": "2daa65787e249e4f", "softDeleted": false } ], @@ -3182,7 +3182,7 @@ "rows": [ { "keyHash": "186347d9ea7673a2", - "rowHash": "e08d60723963559f", + "rowHash": "ec7c570ed4795046", "softDeleted": false } ], @@ -3219,8 +3219,8 @@ "softDeleted": false }, { - "keyHash": "667da1af4b45220f", - "rowHash": "5c8f98476fb3bfca", + "keyHash": "75453dbfb3621178", + "rowHash": "2daa65787e249e4f", "softDeleted": false } ], @@ -3229,10 +3229,10 @@ ] }, "beforeAction": { - "at": 1585, - "url": "http://127.0.0.1:37223/#/editor/rd-test-497c2f-1", + "at": 1562, + "url": "http://127.0.0.1:37233/#/editor/rd-test-234782-1", "title": "Conduit", - "domHash": "fb0f148e0262a52d", + "domHash": "438924e938639899", "canaryPresent": true, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -3244,15 +3244,15 @@ "accessDenied": false }, "semanticDom": { - "textHash": "e17c5fa668856e91", + "textHash": "355f46d83ddde135", "visualHash": "b85410fa0ea5a358", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_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": "63a60e1888a32b7e", + "valueHash": "a48a84f5149688c1", "checked": false, "disabled": false, "visible": true @@ -3261,7 +3261,7 @@ "tag": "input", "type": "text", "name": "description", - "valueHash": "67d21f750d5684dd", + "valueHash": "ab4ef4afe044165b", "checked": false, "disabled": false, "visible": true @@ -3270,7 +3270,7 @@ "tag": "textarea", "type": "textarea", "name": "body", - "valueHash": "6424bfab43262088", + "valueHash": "f32e15eeddeea5e9", "disabled": false, "visible": true }, @@ -3278,7 +3278,7 @@ "tag": "input", "type": "text", "name": "tags", - "valueHash": "345b2bdf40d8a3d5", + "valueHash": "28b40458d79bd86a", "checked": false, "disabled": false, "visible": true @@ -3298,7 +3298,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -3312,10 +3312,10 @@ "networkSettled": true, "targetBusyAfter": false, "after": { - "at": 2720, - "url": "http://127.0.0.1:37223/#/article/rd-test-4cbb5d-1", + "at": 2657, + "url": "http://127.0.0.1:37233/#/article/rd-test-dacc94-1", "title": "Conduit", - "domHash": "c816d12e48c21b02", + "domHash": "6254e4b0c385fe94", "canaryPresent": true, "bodyCanaryPresent": true, "temporaryBlobUrls": 0, @@ -3327,9 +3327,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "f602366b1479175d", + "textHash": "438d5ecb4c67ce18", "visualHash": "471347ba69eaf940", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_CRUD_OWNER RD_TEST_DACC94_1 RD_PHASE_L_CRUD_OWNER July 26, 2026 Delete Article Edit Article RD_TEST_DACC94_3 RD_TEST_234782_4 RD_PHASE_L_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", @@ -3381,7 +3381,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -3398,7 +3398,7 @@ "rows": [ { "keyHash": "186347d9ea7673a2", - "rowHash": "513a00e32394f4c2", + "rowHash": "0c12beb933a01c68", "softDeleted": false } ], @@ -3435,8 +3435,8 @@ "softDeleted": false }, { - "keyHash": "667da1af4b45220f", - "rowHash": "5c8f98476fb3bfca", + "keyHash": "75453dbfb3621178", + "rowHash": "2daa65787e249e4f", "softDeleted": false } ], @@ -3449,7 +3449,7 @@ "rows": [ { "keyHash": "186347d9ea7673a2", - "rowHash": "513a00e32394f4c2", + "rowHash": "0c12beb933a01c68", "softDeleted": false } ], @@ -3486,8 +3486,8 @@ "softDeleted": false }, { - "keyHash": "667da1af4b45220f", - "rowHash": "5c8f98476fb3bfca", + "keyHash": "75453dbfb3621178", + "rowHash": "2daa65787e249e4f", "softDeleted": false } ], @@ -3496,7 +3496,7 @@ ] }, "apiReadBack": { - "url": "http://127.0.0.1:37223/api/articles/rd-test-497c2f-1", + "url": "http://127.0.0.1:37233/api/articles/rd-test-234782-1", "status": 404, "ok": false, "canaryPresent": false, @@ -3504,10 +3504,10 @@ "matchedFieldValues": 0 }, "afterRefresh": { - "at": 3902, - "url": "http://127.0.0.1:37223/#/article/rd-test-4cbb5d-1", + "at": 3686, + "url": "http://127.0.0.1:37233/#/article/rd-test-dacc94-1", "title": "Conduit", - "domHash": "c816d12e48c21b02", + "domHash": "6254e4b0c385fe94", "canaryPresent": true, "bodyCanaryPresent": true, "temporaryBlobUrls": 0, @@ -3519,9 +3519,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "f602366b1479175d", + "textHash": "438d5ecb4c67ce18", "visualHash": "471347ba69eaf940", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_CRUD_OWNER RD_TEST_DACC94_1 RD_PHASE_L_CRUD_OWNER July 26, 2026 Delete Article Edit Article RD_TEST_DACC94_3 RD_TEST_234782_4 RD_PHASE_L_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", @@ -3573,7 +3573,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -3584,10 +3584,10 @@ } }, "afterHardRefresh": { - "at": 4833, - "url": "http://127.0.0.1:37223/#/article/rd-test-4cbb5d-1", + "at": 4619, + "url": "http://127.0.0.1:37233/#/article/rd-test-dacc94-1", "title": "Conduit", - "domHash": "c816d12e48c21b02", + "domHash": "6254e4b0c385fe94", "canaryPresent": true, "bodyCanaryPresent": true, "temporaryBlobUrls": 0, @@ -3599,9 +3599,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "f602366b1479175d", + "textHash": "438d5ecb4c67ce18", "visualHash": "471347ba69eaf940", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_CRUD_OWNER RD_TEST_DACC94_1 RD_PHASE_L_CRUD_OWNER July 26, 2026 Delete Article Edit Article RD_TEST_DACC94_3 RD_TEST_234782_4 RD_PHASE_L_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", @@ -3653,7 +3653,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -3664,10 +3664,10 @@ } }, "afterNewTab": { - "at": 5828, - "url": "http://127.0.0.1:37223/#/editor/rd-test-497c2f-1", + "at": 5610, + "url": "http://127.0.0.1:37233/#/editor/rd-test-234782-1", "title": "Conduit", - "domHash": "fbd8fc6dee7fc9dc", + "domHash": "1fbbbf3f4d479fd9", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -3679,9 +3679,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "e17c5fa668856e91", + "textHash": "355f46d83ddde135", "visualHash": "b85410fa0ea5a358", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_CRUD_OWNER Update Article conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "input", @@ -3733,7 +3733,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -3744,10 +3744,10 @@ } }, "afterNewContext": { - "at": 7139, - "url": "http://127.0.0.1:37223/#/article/rd-test-4cbb5d-1", + "at": 6971, + "url": "http://127.0.0.1:37233/#/article/rd-test-dacc94-1", "title": "Conduit", - "domHash": "c816d12e48c21b02", + "domHash": "6254e4b0c385fe94", "canaryPresent": true, "bodyCanaryPresent": true, "temporaryBlobUrls": 0, @@ -3759,9 +3759,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "f602366b1479175d", + "textHash": "438d5ecb4c67ce18", "visualHash": "471347ba69eaf940", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_CRUD_OWNER RD_TEST_DACC94_1 RD_PHASE_L_CRUD_OWNER July 26, 2026 Delete Article Edit Article RD_TEST_DACC94_3 RD_TEST_234782_4 RD_PHASE_L_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", @@ -3813,7 +3813,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -3885,8 +3885,8 @@ { "id": "RD-005", "action": { - "id": "5bdab9ae6e65", - "pageUrl": "http://127.0.0.1:37223/#/editor/rd-test-497c2f-1", + "id": "dcded53b131b", + "pageUrl": "http://127.0.0.1:37233/#/editor/rd-test-234782-1", "label": "conduit", "activation": "click", "kind": "navigation", @@ -3899,7 +3899,7 @@ "role": "link", "accessibleName": "conduit", "text": "conduit", - "href": "http://127.0.0.1:37223/#/", + "href": "http://127.0.0.1:37233/#/", "candidates": [ { "strategy": "role", @@ -3918,7 +3918,7 @@ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37223/#/" + "value": "http://127.0.0.1:37233/#/" }, { "strategy": "text", @@ -3936,31 +3936,31 @@ "fields": [] }, "evidence": { - "startedAt": "2026-07-26T12:19:45.755Z", - "durationMs": 2532, - "canary": "RD_TEST_2808D3", + "startedAt": "2026-07-26T14:10:01.831Z", + "durationMs": 2549, + "canary": "RD_TEST_259407", "network": [ { "id": "net-1", "method": "GET", - "url": "http://127.0.0.1:37223/api/articles/feed?limit=3&&offset=0", + "url": "http://127.0.0.1:37233/api/articles/feed?limit=3&&offset=0", "resourceType": "xhr", - "startedAt": 1543, + "startedAt": 1572, "status": 200, "ok": true, - "finishedAt": 1550, + "finishedAt": 1579, "contentType": "application/json", "resourceTypeHint": "feed" }, { "id": "net-2", "method": "GET", - "url": "http://127.0.0.1:37223/api/tags", + "url": "http://127.0.0.1:37233/api/tags", "resourceType": "xhr", - "startedAt": 1544, + "startedAt": 1572, "status": 200, "ok": true, - "finishedAt": 1549, + "finishedAt": 1578, "contentType": "application/json", "resourceTypeHint": "tags" } @@ -3994,7 +3994,7 @@ "weight": 82, "matchCount": 2, "visibleCount": 2, - "elapsedMs": 7 + "elapsedMs": 6 }, { "strategy": "href", @@ -4023,10 +4023,10 @@ "retryCount": 0 }, "before": { - "at": 1505, - "url": "http://127.0.0.1:37223/#/editor/rd-test-497c2f-1", + "at": 1539, + "url": "http://127.0.0.1:37233/#/editor/rd-test-234782-1", "title": "Conduit", - "domHash": "fbd8fc6dee7fc9dc", + "domHash": "1fbbbf3f4d479fd9", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -4038,9 +4038,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "e17c5fa668856e91", + "textHash": "355f46d83ddde135", "visualHash": "b85410fa0ea5a358", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_CRUD_OWNER Update Article conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "input", @@ -4092,7 +4092,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -4103,10 +4103,10 @@ } }, "beforeAction": { - "at": 1514, - "url": "http://127.0.0.1:37223/#/editor/rd-test-497c2f-1", + "at": 1547, + "url": "http://127.0.0.1:37233/#/editor/rd-test-234782-1", "title": "Conduit", - "domHash": "fbd8fc6dee7fc9dc", + "domHash": "1fbbbf3f4d479fd9", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -4118,9 +4118,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "e17c5fa668856e91", + "textHash": "355f46d83ddde135", "visualHash": "b85410fa0ea5a358", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_CRUD_OWNER Update Article conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "input", @@ -4172,7 +4172,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -4185,10 +4185,10 @@ "networkSettled": true, "targetBusyAfter": false, "after": { - "at": 2528, - "url": "http://127.0.0.1:37223/#/", + "at": 2544, + "url": "http://127.0.0.1:37233/#/", "title": "Conduit", - "domHash": "09a0c2dcd70a0114", + "domHash": "41eb930ac9c56f2e", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -4200,9 +4200,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "b0238cc5ff984bef", + "textHash": "7e40231cc730fb3f", "visualHash": "72ad38eb67085423", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_CRUD_OWNER Your Feed Global Feed Articles not available. Popular Tags RD_TEST_234782_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "button", @@ -4233,7 +4233,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -4261,8 +4261,8 @@ { "id": "RD-006", "action": { - "id": "92446496b665", - "pageUrl": "http://127.0.0.1:37223/", + "id": "070fba8120b1", + "pageUrl": "http://127.0.0.1:37233/", "label": "conduit", "activation": "click", "kind": "navigation", @@ -4275,7 +4275,7 @@ "role": "link", "accessibleName": "conduit", "text": "conduit", - "href": "http://127.0.0.1:37223/#/", + "href": "http://127.0.0.1:37233/#/", "candidates": [ { "strategy": "role", @@ -4294,7 +4294,7 @@ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37223/#/" + "value": "http://127.0.0.1:37233/#/" }, { "strategy": "text", @@ -4312,9 +4312,9 @@ "fields": [] }, "evidence": { - "startedAt": "2026-07-26T12:19:48.314Z", - "durationMs": 2570, - "canary": "RD_TEST_5E92F0", + "startedAt": "2026-07-26T14:10:04.404Z", + "durationMs": 2501, + "canary": "RD_TEST_A0909D", "network": [], "console": [], "pageErrors": [], @@ -4338,7 +4338,7 @@ "weight": 92, "matchCount": 2, "visibleCount": 2, - "elapsedMs": 9 + "elapsedMs": 8 }, { "strategy": "role", @@ -4352,21 +4352,21 @@ "weight": 72, "matchCount": 0, "visibleCount": 0, - "elapsedMs": 3 + "elapsedMs": 2 }, { "strategy": "text", "weight": 60, "matchCount": 2, "visibleCount": 2, - "elapsedMs": 7 + "elapsedMs": 6 }, { "strategy": "css", "weight": 35, "matchCount": 1, "visibleCount": 1, - "elapsedMs": 5 + "elapsedMs": 4 } ], "chosenStrategy": "css", @@ -4374,10 +4374,10 @@ "retryCount": 0 }, "before": { - "at": 1551, - "url": "http://127.0.0.1:37223/", + "at": 1492, + "url": "http://127.0.0.1:37233/", "title": "Conduit", - "domHash": "09a0c2dcd70a0114", + "domHash": "41eb930ac9c56f2e", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -4389,9 +4389,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "b0238cc5ff984bef", + "textHash": "7e40231cc730fb3f", "visualHash": "72ad38eb67085423", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_CRUD_OWNER Your Feed Global Feed Articles not available. Popular Tags RD_TEST_234782_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "button", @@ -4422,7 +4422,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -4433,10 +4433,10 @@ } }, "beforeAction": { - "at": 1562, - "url": "http://127.0.0.1:37223/", + "at": 1500, + "url": "http://127.0.0.1:37233/", "title": "Conduit", - "domHash": "09a0c2dcd70a0114", + "domHash": "41eb930ac9c56f2e", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -4448,9 +4448,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "b0238cc5ff984bef", + "textHash": "7e40231cc730fb3f", "visualHash": "72ad38eb67085423", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_CRUD_OWNER Your Feed Global Feed Articles not available. Popular Tags RD_TEST_234782_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "button", @@ -4481,7 +4481,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -4494,10 +4494,10 @@ "networkSettled": true, "targetBusyAfter": false, "after": { - "at": 2566, - "url": "http://127.0.0.1:37223/#/", + "at": 2497, + "url": "http://127.0.0.1:37233/#/", "title": "Conduit", - "domHash": "09a0c2dcd70a0114", + "domHash": "41eb930ac9c56f2e", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -4509,9 +4509,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "b0238cc5ff984bef", + "textHash": "7e40231cc730fb3f", "visualHash": "72ad38eb67085423", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_CRUD_OWNER Your Feed Global Feed Articles not available. Popular Tags RD_TEST_234782_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "button", @@ -4542,7 +4542,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -4570,8 +4570,8 @@ { "id": "RD-007", "action": { - "id": "3800f03bc706", - "pageUrl": "http://127.0.0.1:37223/", + "id": "55104873d69e", + "pageUrl": "http://127.0.0.1:37233/", "label": "Home", "activation": "click", "kind": "navigation", @@ -4584,7 +4584,7 @@ "role": "link", "accessibleName": "Home", "text": "Home", - "href": "http://127.0.0.1:37223/#/", + "href": "http://127.0.0.1:37233/#/", "candidates": [ { "strategy": "role", @@ -4603,7 +4603,7 @@ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37223/#/" + "value": "http://127.0.0.1:37233/#/" }, { "strategy": "text", @@ -4621,9 +4621,9 @@ "fields": [] }, "evidence": { - "startedAt": "2026-07-26T12:19:50.907Z", + "startedAt": "2026-07-26T14:10:06.929Z", "durationMs": 2525, - "canary": "RD_TEST_76D7AB", + "canary": "RD_TEST_2094CF", "network": [], "console": [], "pageErrors": [], @@ -4647,7 +4647,7 @@ "weight": 92, "matchCount": 0, "visibleCount": 0, - "elapsedMs": 2 + "elapsedMs": 3 }, { "strategy": "role", @@ -4662,10 +4662,10 @@ "retryCount": 0 }, "before": { - "at": 1508, - "url": "http://127.0.0.1:37223/", + "at": 1522, + "url": "http://127.0.0.1:37233/", "title": "Conduit", - "domHash": "09a0c2dcd70a0114", + "domHash": "41eb930ac9c56f2e", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -4677,9 +4677,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "b0238cc5ff984bef", + "textHash": "7e40231cc730fb3f", "visualHash": "72ad38eb67085423", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_CRUD_OWNER Your Feed Global Feed Articles not available. Popular Tags RD_TEST_234782_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "button", @@ -4710,7 +4710,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -4721,10 +4721,10 @@ } }, "beforeAction": { - "at": 1517, - "url": "http://127.0.0.1:37223/", + "at": 1531, + "url": "http://127.0.0.1:37233/", "title": "Conduit", - "domHash": "09a0c2dcd70a0114", + "domHash": "41eb930ac9c56f2e", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -4736,9 +4736,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "b0238cc5ff984bef", + "textHash": "7e40231cc730fb3f", "visualHash": "72ad38eb67085423", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_CRUD_OWNER Your Feed Global Feed Articles not available. Popular Tags RD_TEST_234782_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "button", @@ -4769,7 +4769,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -4783,9 +4783,9 @@ "targetBusyAfter": false, "after": { "at": 2521, - "url": "http://127.0.0.1:37223/#/", + "url": "http://127.0.0.1:37233/#/", "title": "Conduit", - "domHash": "09a0c2dcd70a0114", + "domHash": "41eb930ac9c56f2e", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -4797,9 +4797,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "b0238cc5ff984bef", + "textHash": "7e40231cc730fb3f", "visualHash": "72ad38eb67085423", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_CRUD_OWNER Your Feed Global Feed Articles not available. Popular Tags RD_TEST_234782_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "button", @@ -4830,7 +4830,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -4858,8 +4858,8 @@ { "id": "RD-008", "action": { - "id": "c88ed7554ce5", - "pageUrl": "http://127.0.0.1:37223/", + "id": "03f276fb1579", + "pageUrl": "http://127.0.0.1:37233/", "label": "New Article", "activation": "click", "kind": "navigation", @@ -4872,7 +4872,7 @@ "role": "link", "accessibleName": "New Article", "text": "New Article", - "href": "http://127.0.0.1:37223/#/editor", + "href": "http://127.0.0.1:37233/#/editor", "candidates": [ { "strategy": "role", @@ -4891,7 +4891,7 @@ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37223/#/editor" + "value": "http://127.0.0.1:37233/#/editor" }, { "strategy": "text", @@ -4909,9 +4909,9 @@ "fields": [] }, "evidence": { - "startedAt": "2026-07-26T12:19:53.456Z", - "durationMs": 2484, - "canary": "RD_TEST_B37B29", + "startedAt": "2026-07-26T14:10:09.478Z", + "durationMs": 2528, + "canary": "RD_TEST_619952", "network": [], "console": [], "pageErrors": [], @@ -4950,10 +4950,10 @@ "retryCount": 0 }, "before": { - "at": 1474, - "url": "http://127.0.0.1:37223/", + "at": 1505, + "url": "http://127.0.0.1:37233/", "title": "Conduit", - "domHash": "09a0c2dcd70a0114", + "domHash": "41eb930ac9c56f2e", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -4965,9 +4965,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "b0238cc5ff984bef", + "textHash": "7e40231cc730fb3f", "visualHash": "72ad38eb67085423", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_CRUD_OWNER Your Feed Global Feed Articles not available. Popular Tags RD_TEST_234782_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "button", @@ -4998,7 +4998,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -5009,10 +5009,10 @@ } }, "beforeAction": { - "at": 1483, - "url": "http://127.0.0.1:37223/", + "at": 1514, + "url": "http://127.0.0.1:37233/", "title": "Conduit", - "domHash": "09a0c2dcd70a0114", + "domHash": "41eb930ac9c56f2e", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -5024,9 +5024,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "b0238cc5ff984bef", + "textHash": "7e40231cc730fb3f", "visualHash": "72ad38eb67085423", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_CRUD_OWNER Your Feed Global Feed Articles not available. Popular Tags RD_TEST_234782_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "button", @@ -5057,7 +5057,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -5070,10 +5070,10 @@ "networkSettled": true, "targetBusyAfter": false, "after": { - "at": 2480, - "url": "http://127.0.0.1:37223/#/editor", + "at": 2524, + "url": "http://127.0.0.1:37233/#/editor", "title": "Conduit", - "domHash": "c936833dbedd7df2", + "domHash": "a01e944d4b62d184", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -5085,9 +5085,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "d0c4b4fdb77a11e9", + "textHash": "e1abb484093cff92", "visualHash": "b85410fa0ea5a358", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_CRUD_OWNER Publish Article conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "input", @@ -5139,7 +5139,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -5167,8 +5167,8 @@ { "id": "RD-009", "action": { - "id": "d61ab1459de8", - "pageUrl": "http://127.0.0.1:37223/", + "id": "3afde700c371", + "pageUrl": "http://127.0.0.1:37233/", "label": "Your Feed", "activation": "click", "kind": "local", @@ -5213,19 +5213,19 @@ "fields": [] }, "evidence": { - "startedAt": "2026-07-26T12:19:55.965Z", - "durationMs": 2583, - "canary": "RD_TEST_94D7A9", + "startedAt": "2026-07-26T14:10:12.027Z", + "durationMs": 2506, + "canary": "RD_TEST_65AE56", "network": [ { "id": "net-1", "method": "GET", - "url": "http://127.0.0.1:37223/api/articles/feed?limit=3&&offset=0", + "url": "http://127.0.0.1:37233/api/articles/feed?limit=3&&offset=0", "resourceType": "xhr", - "startedAt": 1584, + "startedAt": 1524, "status": 200, "ok": true, - "finishedAt": 1596, + "finishedAt": 1536, "contentType": "application/json", "resourceTypeHint": "feed" } @@ -5252,7 +5252,7 @@ "weight": 92, "matchCount": 1, "visibleCount": 1, - "elapsedMs": 4 + "elapsedMs": 8 } ], "chosenStrategy": "role", @@ -5260,10 +5260,10 @@ "retryCount": 0 }, "before": { - "at": 1553, - "url": "http://127.0.0.1:37223/", + "at": 1498, + "url": "http://127.0.0.1:37233/", "title": "Conduit", - "domHash": "09a0c2dcd70a0114", + "domHash": "41eb930ac9c56f2e", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -5275,9 +5275,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "b0238cc5ff984bef", + "textHash": "7e40231cc730fb3f", "visualHash": "72ad38eb67085423", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_CRUD_OWNER Your Feed Global Feed Articles not available. Popular Tags RD_TEST_234782_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "button", @@ -5308,7 +5308,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -5319,10 +5319,10 @@ } }, "beforeAction": { - "at": 1562, - "url": "http://127.0.0.1:37223/", + "at": 1506, + "url": "http://127.0.0.1:37233/", "title": "Conduit", - "domHash": "09a0c2dcd70a0114", + "domHash": "41eb930ac9c56f2e", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -5334,9 +5334,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "b0238cc5ff984bef", + "textHash": "7e40231cc730fb3f", "visualHash": "72ad38eb67085423", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_CRUD_OWNER Your Feed Global Feed Articles not available. Popular Tags RD_TEST_234782_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "button", @@ -5367,7 +5367,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -5380,10 +5380,10 @@ "networkSettled": true, "targetBusyAfter": false, "after": { - "at": 2578, - "url": "http://127.0.0.1:37223/", + "at": 2502, + "url": "http://127.0.0.1:37233/", "title": "Conduit", - "domHash": "09a0c2dcd70a0114", + "domHash": "41eb930ac9c56f2e", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -5395,9 +5395,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "b0238cc5ff984bef", + "textHash": "7e40231cc730fb3f", "visualHash": "72ad38eb67085423", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_CRUD_OWNER Your Feed Global Feed Articles not available. Popular Tags RD_TEST_234782_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "button", @@ -5428,7 +5428,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -5456,8 +5456,8 @@ { "id": "RD-010", "action": { - "id": "a69f66f3ce86", - "pageUrl": "http://127.0.0.1:37223/", + "id": "3fd2dfe8a608", + "pageUrl": "http://127.0.0.1:37233/", "label": "Global Feed", "activation": "click", "kind": "local", @@ -5502,19 +5502,19 @@ "fields": [] }, "evidence": { - "startedAt": "2026-07-26T12:19:58.570Z", - "durationMs": 2561, - "canary": "RD_TEST_7BA72F", + "startedAt": "2026-07-26T14:10:14.556Z", + "durationMs": 2562, + "canary": "RD_TEST_F9151B", "network": [ { "id": "net-1", "method": "GET", - "url": "http://127.0.0.1:37223/api/articles?limit=3&&offset=0", + "url": "http://127.0.0.1:37233/api/articles?limit=3&&offset=0", "resourceType": "xhr", - "startedAt": 1530, + "startedAt": 1529, "status": 200, "ok": true, - "finishedAt": 1542, + "finishedAt": 1540, "contentType": "application/json", "resourceTypeHint": "articles" }, @@ -5523,10 +5523,10 @@ "method": "GET", "url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwlxdu.woff2", "resourceType": "font", - "startedAt": 1558, + "startedAt": 1553, "status": 200, "ok": true, - "finishedAt": 1603, + "finishedAt": 1599, "contentType": "font/woff2", "resourceTypeHint": "6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwlxdu.woff2" } @@ -5561,10 +5561,10 @@ "retryCount": 0 }, "before": { - "at": 1486, - "url": "http://127.0.0.1:37223/", + "at": 1487, + "url": "http://127.0.0.1:37233/", "title": "Conduit", - "domHash": "09a0c2dcd70a0114", + "domHash": "41eb930ac9c56f2e", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -5576,9 +5576,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "b0238cc5ff984bef", + "textHash": "7e40231cc730fb3f", "visualHash": "72ad38eb67085423", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_CRUD_OWNER Your Feed Global Feed Articles not available. Popular Tags RD_TEST_234782_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "button", @@ -5609,7 +5609,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -5620,10 +5620,10 @@ } }, "beforeAction": { - "at": 1495, - "url": "http://127.0.0.1:37223/", + "at": 1496, + "url": "http://127.0.0.1:37233/", "title": "Conduit", - "domHash": "09a0c2dcd70a0114", + "domHash": "41eb930ac9c56f2e", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -5635,9 +5635,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "b0238cc5ff984bef", + "textHash": "7e40231cc730fb3f", "visualHash": "72ad38eb67085423", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_CRUD_OWNER Your Feed Global Feed Articles not available. Popular Tags RD_TEST_234782_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "button", @@ -5668,7 +5668,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -5682,9 +5682,9 @@ "targetBusyAfter": false, "after": { "at": 2557, - "url": "http://127.0.0.1:37223/", + "url": "http://127.0.0.1:37233/", "title": "Conduit", - "domHash": "dee3879a1a1dbac8", + "domHash": "b57b8484b9a6f691", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -5696,9 +5696,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "e68533de4d97da40", + "textHash": "cabd2f1953387ca5", "visualHash": "805f65e8f4aada8d", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_CRUD_OWNER Your Feed Global Feed RD_PHASE_L_CRUD_OWNER July 26, 2026 ( 0 ) RD_TEST_DACC94_1 RD_TEST_DACC94_2 Read more... RD_TEST_234782_4 1 Popular Tags RD_TEST_234782_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "button", @@ -5736,7 +5736,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -5764,9 +5764,9 @@ { "id": "RD-011", "action": { - "id": "80706f2de1a4", - "pageUrl": "http://127.0.0.1:37223/", - "label": "RD_TEST_F3F938_4", + "id": "ba13285aa892", + "pageUrl": "http://127.0.0.1:37233/", + "label": "RD_TEST_234782_4", "activation": "click", "kind": "local", "intent": "interact", @@ -5776,28 +5776,28 @@ "tag": "button", "ordinal": 6, "role": "button", - "accessibleName": "RD_TEST_F3F938_4", - "text": "RD_TEST_F3F938_4", + "accessibleName": "RD_TEST_234782_4", + "text": "RD_TEST_234782_4", "type": "submit", "candidates": [ { "strategy": "role", "weight": 92, "role": "button", - "name": "RD_TEST_F3F938_4", + "name": "RD_TEST_234782_4", "exact": true }, { "strategy": "role", "weight": 82, "role": "button", - "name": "RD_TEST_F3F938_4", + "name": "RD_TEST_234782_4", "exact": false }, { "strategy": "text", "weight": 60, - "value": "RD_TEST_F3F938_4", + "value": "RD_TEST_234782_4", "exact": true }, { @@ -5810,19 +5810,19 @@ "fields": [] }, "evidence": { - "startedAt": "2026-07-26T12:20:01.154Z", - "durationMs": 2573, - "canary": "RD_TEST_588F4F", + "startedAt": "2026-07-26T14:10:17.144Z", + "durationMs": 2542, + "canary": "RD_TEST_F9D220", "network": [ { "id": "net-1", "method": "GET", - "url": "http://127.0.0.1:37223/api/articles?tag=RD_TEST_F3F938_4&&limit=3&&offset=0", + "url": "http://127.0.0.1:37233/api/articles?tag=RD_TEST_234782_4&&limit=3&&offset=0", "resourceType": "xhr", - "startedAt": 1529, + "startedAt": 1509, "status": 200, "ok": true, - "finishedAt": 1541, + "finishedAt": 1520, "contentType": "application/json", "resourceTypeHint": "articles" }, @@ -5831,10 +5831,10 @@ "method": "GET", "url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwlxdu.woff2", "resourceType": "font", - "startedAt": 1561, + "startedAt": 1539, "status": 200, "ok": true, - "finishedAt": 1610, + "finishedAt": 1583, "contentType": "font/woff2", "resourceTypeHint": "6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwlxdu.woff2" } @@ -5869,10 +5869,10 @@ "retryCount": 0 }, "before": { - "at": 1503, - "url": "http://127.0.0.1:37223/", + "at": 1482, + "url": "http://127.0.0.1:37233/", "title": "Conduit", - "domHash": "09a0c2dcd70a0114", + "domHash": "41eb930ac9c56f2e", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -5884,9 +5884,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "b0238cc5ff984bef", + "textHash": "7e40231cc730fb3f", "visualHash": "72ad38eb67085423", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_CRUD_OWNER Your Feed Global Feed Articles not available. Popular Tags RD_TEST_234782_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "button", @@ -5917,7 +5917,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -5928,10 +5928,10 @@ } }, "beforeAction": { - "at": 1511, - "url": "http://127.0.0.1:37223/", + "at": 1490, + "url": "http://127.0.0.1:37233/", "title": "Conduit", - "domHash": "09a0c2dcd70a0114", + "domHash": "41eb930ac9c56f2e", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -5943,9 +5943,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "b0238cc5ff984bef", + "textHash": "7e40231cc730fb3f", "visualHash": "72ad38eb67085423", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_CRUD_OWNER Your Feed Global Feed Articles not available. Popular Tags RD_TEST_234782_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "button", @@ -5976,7 +5976,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -5989,10 +5989,10 @@ "networkSettled": true, "targetBusyAfter": false, "after": { - "at": 2569, - "url": "http://127.0.0.1:37223/", + "at": 2538, + "url": "http://127.0.0.1:37233/", "title": "Conduit", - "domHash": "98916d5a3fb4447b", + "domHash": "cc08af20a45966c0", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -6004,9 +6004,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "2e4a77d533a13af0", + "textHash": "3958995872c46dde", "visualHash": "95abe9be32f407d5", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_CRUD_OWNER Your Feed Global Feed RD_TEST_234782_4 RD_PHASE_L_CRUD_OWNER July 26, 2026 ( 0 ) RD_TEST_DACC94_1 RD_TEST_DACC94_2 Read more... RD_TEST_234782_4 1 Popular Tags RD_TEST_234782_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "button", @@ -6051,7 +6051,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -6079,8 +6079,8 @@ { "id": "RD-012", "action": { - "id": "9d442a70bdcb", - "pageUrl": "http://127.0.0.1:37223/", + "id": "7e6c799322ef", + "pageUrl": "http://127.0.0.1:37233/", "label": "conduit", "activation": "click", "kind": "navigation", @@ -6093,7 +6093,7 @@ "role": "link", "accessibleName": "conduit", "text": "conduit", - "href": "http://127.0.0.1:37223/#/", + "href": "http://127.0.0.1:37233/#/", "candidates": [ { "strategy": "role", @@ -6112,7 +6112,7 @@ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37223/#/" + "value": "http://127.0.0.1:37233/#/" }, { "strategy": "text", @@ -6130,9 +6130,9 @@ "fields": [] }, "evidence": { - "startedAt": "2026-07-26T12:20:03.760Z", - "durationMs": 2512, - "canary": "RD_TEST_1FF4B1", + "startedAt": "2026-07-26T14:10:19.710Z", + "durationMs": 2508, + "canary": "RD_TEST_5F6E16", "network": [], "console": [], "pageErrors": [], @@ -6163,28 +6163,28 @@ "weight": 82, "matchCount": 2, "visibleCount": 2, - "elapsedMs": 7 + "elapsedMs": 6 }, { "strategy": "href", "weight": 72, "matchCount": 0, "visibleCount": 0, - "elapsedMs": 1 + "elapsedMs": 2 }, { "strategy": "text", "weight": 60, "matchCount": 2, "visibleCount": 2, - "elapsedMs": 7 + "elapsedMs": 6 }, { "strategy": "css", "weight": 35, "matchCount": 1, "visibleCount": 1, - "elapsedMs": 5 + "elapsedMs": 4 } ], "chosenStrategy": "css", @@ -6192,10 +6192,10 @@ "retryCount": 0 }, "before": { - "at": 1515, - "url": "http://127.0.0.1:37223/", + "at": 1502, + "url": "http://127.0.0.1:37233/", "title": "Conduit", - "domHash": "09a0c2dcd70a0114", + "domHash": "41eb930ac9c56f2e", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -6207,9 +6207,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "b0238cc5ff984bef", + "textHash": "7e40231cc730fb3f", "visualHash": "72ad38eb67085423", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_CRUD_OWNER Your Feed Global Feed Articles not available. Popular Tags RD_TEST_234782_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "button", @@ -6240,7 +6240,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -6251,10 +6251,10 @@ } }, "beforeAction": { - "at": 1524, - "url": "http://127.0.0.1:37223/", + "at": 1511, + "url": "http://127.0.0.1:37233/", "title": "Conduit", - "domHash": "09a0c2dcd70a0114", + "domHash": "41eb930ac9c56f2e", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -6266,9 +6266,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "b0238cc5ff984bef", + "textHash": "7e40231cc730fb3f", "visualHash": "72ad38eb67085423", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_CRUD_OWNER Your Feed Global Feed Articles not available. Popular Tags RD_TEST_234782_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "button", @@ -6299,7 +6299,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -6312,10 +6312,10 @@ "networkSettled": true, "targetBusyAfter": false, "after": { - "at": 2508, - "url": "http://127.0.0.1:37223/#/", + "at": 2504, + "url": "http://127.0.0.1:37233/#/", "title": "Conduit", - "domHash": "09a0c2dcd70a0114", + "domHash": "41eb930ac9c56f2e", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -6327,9 +6327,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "b0238cc5ff984bef", + "textHash": "7e40231cc730fb3f", "visualHash": "72ad38eb67085423", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_CRUD_OWNER Your Feed Global Feed Articles not available. Popular Tags RD_TEST_234782_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "button", @@ -6360,7 +6360,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -6388,8 +6388,8 @@ { "id": "RD-013", "action": { - "id": "1bf42ddc57a0", - "pageUrl": "http://127.0.0.1:37223/#/editor", + "id": "ebe458223aaa", + "pageUrl": "http://127.0.0.1:37233/#/editor", "label": "conduit", "activation": "click", "kind": "navigation", @@ -6402,7 +6402,7 @@ "role": "link", "accessibleName": "conduit", "text": "conduit", - "href": "http://127.0.0.1:37223/#/", + "href": "http://127.0.0.1:37233/#/", "candidates": [ { "strategy": "role", @@ -6421,7 +6421,7 @@ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37223/#/" + "value": "http://127.0.0.1:37233/#/" }, { "strategy": "text", @@ -6439,31 +6439,31 @@ "fields": [] }, "evidence": { - "startedAt": "2026-07-26T12:20:06.296Z", - "durationMs": 2535, - "canary": "RD_TEST_14BC82", + "startedAt": "2026-07-26T14:10:22.241Z", + "durationMs": 2520, + "canary": "RD_TEST_685271", "network": [ { "id": "net-1", "method": "GET", - "url": "http://127.0.0.1:37223/api/articles/feed?limit=3&&offset=0", + "url": "http://127.0.0.1:37233/api/articles/feed?limit=3&&offset=0", "resourceType": "xhr", - "startedAt": 1565, + "startedAt": 1559, "status": 200, "ok": true, - "finishedAt": 1573, + "finishedAt": 1567, "contentType": "application/json", "resourceTypeHint": "feed" }, { "id": "net-2", "method": "GET", - "url": "http://127.0.0.1:37223/api/tags", + "url": "http://127.0.0.1:37233/api/tags", "resourceType": "xhr", - "startedAt": 1565, + "startedAt": 1559, "status": 200, "ok": true, - "finishedAt": 1569, + "finishedAt": 1564, "contentType": "application/json", "resourceTypeHint": "tags" } @@ -6511,14 +6511,14 @@ "weight": 60, "matchCount": 2, "visibleCount": 2, - "elapsedMs": 7 + "elapsedMs": 6 }, { "strategy": "css", "weight": 35, "matchCount": 1, "visibleCount": 1, - "elapsedMs": 3 + "elapsedMs": 4 } ], "chosenStrategy": "css", @@ -6526,10 +6526,10 @@ "retryCount": 0 }, "before": { - "at": 1524, - "url": "http://127.0.0.1:37223/#/editor", + "at": 1518, + "url": "http://127.0.0.1:37233/#/editor", "title": "Conduit", - "domHash": "c936833dbedd7df2", + "domHash": "a01e944d4b62d184", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -6541,9 +6541,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "d0c4b4fdb77a11e9", + "textHash": "e1abb484093cff92", "visualHash": "b85410fa0ea5a358", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_CRUD_OWNER Publish Article conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "input", @@ -6595,7 +6595,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -6606,10 +6606,10 @@ } }, "beforeAction": { - "at": 1533, - "url": "http://127.0.0.1:37223/#/editor", + "at": 1527, + "url": "http://127.0.0.1:37233/#/editor", "title": "Conduit", - "domHash": "c936833dbedd7df2", + "domHash": "a01e944d4b62d184", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -6621,9 +6621,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "d0c4b4fdb77a11e9", + "textHash": "e1abb484093cff92", "visualHash": "b85410fa0ea5a358", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_CRUD_OWNER Publish Article conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "input", @@ -6675,7 +6675,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -6688,10 +6688,10 @@ "networkSettled": true, "targetBusyAfter": false, "after": { - "at": 2531, - "url": "http://127.0.0.1:37223/#/", + "at": 2516, + "url": "http://127.0.0.1:37233/#/", "title": "Conduit", - "domHash": "09a0c2dcd70a0114", + "domHash": "41eb930ac9c56f2e", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -6703,9 +6703,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "b0238cc5ff984bef", + "textHash": "7e40231cc730fb3f", "visualHash": "72ad38eb67085423", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_CRUD_OWNER Your Feed Global Feed Articles not available. Popular Tags RD_TEST_234782_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "button", @@ -6736,7 +6736,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -6764,8 +6764,8 @@ { "id": "RD-014", "action": { - "id": "53cf74a707f5", - "pageUrl": "http://127.0.0.1:37223/#/editor", + "id": "01ea020389a4", + "pageUrl": "http://127.0.0.1:37233/#/editor", "label": "Home", "activation": "click", "kind": "navigation", @@ -6778,7 +6778,7 @@ "role": "link", "accessibleName": "Home", "text": "Home", - "href": "http://127.0.0.1:37223/#/", + "href": "http://127.0.0.1:37233/#/", "candidates": [ { "strategy": "role", @@ -6797,7 +6797,7 @@ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37223/#/" + "value": "http://127.0.0.1:37233/#/" }, { "strategy": "text", @@ -6815,31 +6815,31 @@ "fields": [] }, "evidence": { - "startedAt": "2026-07-26T12:20:08.852Z", - "durationMs": 2514, - "canary": "RD_TEST_C8A6EC", + "startedAt": "2026-07-26T14:10:24.782Z", + "durationMs": 2490, + "canary": "RD_TEST_B3832D", "network": [ { "id": "net-1", "method": "GET", - "url": "http://127.0.0.1:37223/api/articles/feed?limit=3&&offset=0", + "url": "http://127.0.0.1:37233/api/articles/feed?limit=3&&offset=0", "resourceType": "xhr", - "startedAt": 1545, + "startedAt": 1516, "status": 200, "ok": true, - "finishedAt": 1553, + "finishedAt": 1521, "contentType": "application/json", "resourceTypeHint": "feed" }, { "id": "net-2", "method": "GET", - "url": "http://127.0.0.1:37223/api/tags", + "url": "http://127.0.0.1:37233/api/tags", "resourceType": "xhr", - "startedAt": 1546, + "startedAt": 1517, "status": 200, "ok": true, - "finishedAt": 1552, + "finishedAt": 1521, "contentType": "application/json", "resourceTypeHint": "tags" } @@ -6866,14 +6866,14 @@ "weight": 92, "matchCount": 0, "visibleCount": 0, - "elapsedMs": 3 + "elapsedMs": 2 }, { "strategy": "role", "weight": 82, "matchCount": 1, "visibleCount": 1, - "elapsedMs": 6 + "elapsedMs": 5 } ], "chosenStrategy": "role", @@ -6881,10 +6881,10 @@ "retryCount": 0 }, "before": { - "at": 1497, - "url": "http://127.0.0.1:37223/#/editor", + "at": 1472, + "url": "http://127.0.0.1:37233/#/editor", "title": "Conduit", - "domHash": "c936833dbedd7df2", + "domHash": "a01e944d4b62d184", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -6896,9 +6896,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "d0c4b4fdb77a11e9", + "textHash": "e1abb484093cff92", "visualHash": "b85410fa0ea5a358", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_CRUD_OWNER Publish Article conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "input", @@ -6950,7 +6950,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -6961,10 +6961,10 @@ } }, "beforeAction": { - "at": 1507, - "url": "http://127.0.0.1:37223/#/editor", + "at": 1481, + "url": "http://127.0.0.1:37233/#/editor", "title": "Conduit", - "domHash": "c936833dbedd7df2", + "domHash": "a01e944d4b62d184", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -6976,9 +6976,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "d0c4b4fdb77a11e9", + "textHash": "e1abb484093cff92", "visualHash": "b85410fa0ea5a358", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_CRUD_OWNER Publish Article conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "input", @@ -7030,7 +7030,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -7043,10 +7043,10 @@ "networkSettled": true, "targetBusyAfter": false, "after": { - "at": 2510, - "url": "http://127.0.0.1:37223/#/", + "at": 2486, + "url": "http://127.0.0.1:37233/#/", "title": "Conduit", - "domHash": "09a0c2dcd70a0114", + "domHash": "41eb930ac9c56f2e", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -7058,9 +7058,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "b0238cc5ff984bef", + "textHash": "7e40231cc730fb3f", "visualHash": "72ad38eb67085423", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_CRUD_OWNER Your Feed Global Feed Articles not available. Popular Tags RD_TEST_234782_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "button", @@ -7091,7 +7091,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -7119,8 +7119,8 @@ { "id": "RD-015", "action": { - "id": "a6522be0fc1d", - "pageUrl": "http://127.0.0.1:37223/#/editor", + "id": "2426ce190789", + "pageUrl": "http://127.0.0.1:37233/#/editor", "label": "Publish Article", "activation": "submit", "kind": "mutation", @@ -7186,19 +7186,19 @@ ] }, "evidence": { - "startedAt": "2026-07-26T12:20:11.444Z", - "durationMs": 6980, - "canary": "RD_TEST_45949F", + "startedAt": "2026-07-26T14:10:27.342Z", + "durationMs": 6904, + "canary": "RD_TEST_1E34DD", "network": [ { "id": "net-1", "method": "POST", - "url": "http://127.0.0.1:37223/api/articles", + "url": "http://127.0.0.1:37233/api/articles", "resourceType": "xhr", - "startedAt": 1573, + "startedAt": 1611, "status": 201, "ok": true, - "finishedAt": 1588, + "finishedAt": 1625, "contentType": "application/json", "resourceTypeHint": "articles" }, @@ -7207,70 +7207,70 @@ "method": "GET", "url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwlxdu.woff2", "resourceType": "font", - "startedAt": 1594, + "startedAt": 1632, "status": 200, "ok": true, - "finishedAt": 1643, + "finishedAt": 1683, "contentType": "font/woff2", "resourceTypeHint": "6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwlxdu.woff2" }, { "id": "net-3", "method": "GET", - "url": "http://127.0.0.1:37223/api/articles/rd-test-45949f-1/comments", + "url": "http://127.0.0.1:37233/api/articles/rd-test-1e34dd-1/comments", "resourceType": "xhr", - "startedAt": 1595, + "startedAt": 1634, "status": 200, "ok": true, - "finishedAt": 1601, + "finishedAt": 1641, "contentType": "application/json", "resourceTypeHint": "comments" }, { "id": "net-4", "method": "GET", - "url": "http://127.0.0.1:37223/api/articles/rd-test-45949f-1", + "url": "http://127.0.0.1:37233/api/articles/rd-test-1e34dd-1", "resourceType": "xhr", - "startedAt": 1596, + "startedAt": 1635, "status": 200, "ok": true, - "finishedAt": 1605, + "finishedAt": 1644, "contentType": "application/json", - "resourceTypeHint": "rd-test-45949f-1" + "resourceTypeHint": "rd-test-1e34dd-1" }, { "id": "net-5", "method": "GET", "url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwlxdu.woff2", "resourceType": "font", - "startedAt": 1621, + "startedAt": 1662, "status": 200, "ok": true, - "finishedAt": 1667, + "finishedAt": 1708, "contentType": "font/woff2", "resourceTypeHint": "6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwlxdu.woff2" }, { "id": "net-6", "method": "GET", - "url": "http://127.0.0.1:37223/", + "url": "http://127.0.0.1:37233/", "resourceType": "document", - "startedAt": 2646, + "startedAt": 2684, "status": 200, "ok": true, "contentType": "text/html", "resourceTypeHint": "resource", - "finishedAt": 2656 + "finishedAt": 2692 }, { "id": "net-7", "method": "GET", "url": "http://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css", "resourceType": "stylesheet", - "startedAt": 2653, + "startedAt": 2690, "status": 307, "ok": false, - "finishedAt": 2657, + "finishedAt": 2693, "location": "https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css", "resourceTypeHint": "ionicons.min.css" }, @@ -7279,34 +7279,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": 2654, + "startedAt": 2691, "status": 200, "ok": true, - "finishedAt": 2696, + "finishedAt": 2730, "contentType": "text/css", "resourceTypeHint": "css" }, { "id": "net-9", "method": "GET", - "url": "http://127.0.0.1:37223/assets/index-CLdavoKn.js", + "url": "http://127.0.0.1:37233/assets/index-CLdavoKn.js", "resourceType": "script", - "startedAt": 2654, + "startedAt": 2691, "status": 200, "ok": true, - "finishedAt": 2668, + "finishedAt": 2703, "contentType": "text/javascript", "resourceTypeHint": "index-CLdavoKn.js" }, { "id": "net-10", "method": "GET", - "url": "http://127.0.0.1:37223/assets/index-De1Lwdlm.css", + "url": "http://127.0.0.1:37233/assets/index-De1Lwdlm.css", "resourceType": "stylesheet", - "startedAt": 2655, + "startedAt": 2691, "status": 200, "ok": true, - "finishedAt": 2661, + "finishedAt": 2696, "contentType": "text/css", "resourceTypeHint": "index-De1Lwdlm.css" }, @@ -7315,22 +7315,22 @@ "method": "GET", "url": "https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css", "resourceType": "stylesheet", - "startedAt": 2657, + "startedAt": 2693, "status": 200, "ok": true, - "finishedAt": 2915, "contentType": "text/css", - "resourceTypeHint": "ionicons.min.css" + "resourceTypeHint": "ionicons.min.css", + "finishedAt": 2846 }, { "id": "net-12", "method": "GET", "url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdu.woff2", "resourceType": "font", - "startedAt": 2923, + "startedAt": 2856, "status": 200, "ok": true, - "finishedAt": 2969, + "finishedAt": 2903, "contentType": "font/woff2", "resourceTypeHint": "6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdu.woff2" }, @@ -7339,10 +7339,10 @@ "method": "GET", "url": "https://code.ionicframework.com/ionicons/2.0.1/fonts/ionicons.ttf?v=2.0.1", "resourceType": "font", - "startedAt": 2924, + "startedAt": 2857, "status": 200, "ok": true, - "finishedAt": 3032, + "finishedAt": 2967, "contentType": "font/ttf", "resourceTypeHint": "ionicons.ttf" }, @@ -7351,10 +7351,10 @@ "method": "GET", "url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7l.woff2", "resourceType": "font", - "startedAt": 2925, + "startedAt": 2858, "status": 200, "ok": true, - "finishedAt": 2975, + "finishedAt": 2909, "contentType": "font/woff2", "resourceTypeHint": "6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7l.woff2" }, @@ -7363,10 +7363,10 @@ "method": "GET", "url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwlxdu.woff2", "resourceType": "font", - "startedAt": 2925, + "startedAt": 2858, "status": 200, "ok": true, - "finishedAt": 2971, + "finishedAt": 2905, "contentType": "font/woff2", "resourceTypeHint": "6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwlxdu.woff2" }, @@ -7375,82 +7375,82 @@ "method": "GET", "url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7nsDI.woff2", "resourceType": "font", - "startedAt": 2925, + "startedAt": 2858, "status": 200, "ok": true, - "finishedAt": 3022, + "finishedAt": 2955, "contentType": "font/woff2", "resourceTypeHint": "6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7nsDI.woff2" }, { "id": "net-17", "method": "GET", - "url": "http://127.0.0.1:37223/api/articles/rd-test-45949f-1/comments", + "url": "http://127.0.0.1:37233/api/articles/rd-test-1e34dd-1/comments", "resourceType": "xhr", - "startedAt": 2927, + "startedAt": 2860, "status": 200, "ok": true, - "finishedAt": 2934, + "finishedAt": 2868, "contentType": "application/json", "resourceTypeHint": "comments" }, { "id": "net-18", "method": "GET", - "url": "http://127.0.0.1:37223/api/articles/rd-test-45949f-1", + "url": "http://127.0.0.1:37233/api/articles/rd-test-1e34dd-1", "resourceType": "xhr", - "startedAt": 2928, + "startedAt": 2860, "status": 200, "ok": true, - "finishedAt": 2938, + "finishedAt": 2869, "contentType": "application/json", - "resourceTypeHint": "rd-test-45949f-1" + "resourceTypeHint": "rd-test-1e34dd-1" }, { "id": "net-19", "method": "GET", - "url": "http://127.0.0.1:37223/api/user", + "url": "http://127.0.0.1:37233/api/user", "resourceType": "xhr", - "startedAt": 2928, + "startedAt": 2861, "status": 200, "ok": true, - "finishedAt": 2935, "contentType": "application/json", - "resourceTypeHint": "user" + "resourceTypeHint": "user", + "finishedAt": 2866 }, { "id": "net-20", "method": "GET", "url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwlxdu.woff2", "resourceType": "font", - "startedAt": 2952, + "startedAt": 2873, "status": 200, "ok": true, - "finishedAt": 3011, + "finishedAt": 2945, "contentType": "font/woff2", "resourceTypeHint": "6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwlxdu.woff2" }, { "id": "net-21", "method": "GET", - "url": "http://127.0.0.1:37223/", + "url": "http://127.0.0.1:37233/", "resourceType": "document", - "startedAt": 3752, + "startedAt": 3678, "status": 200, "ok": true, "contentType": "text/html", "resourceTypeHint": "resource", - "finishedAt": 3760 + "finishedAt": 3685 }, { "id": "net-22", "method": "GET", "url": "http://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css", "resourceType": "stylesheet", - "startedAt": 3759, + "startedAt": 3683, "status": 307, "ok": false, - "finishedAt": 3762, + "finishedAt": 3686, "location": "https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css", "resourceTypeHint": "ionicons.min.css" }, @@ -7459,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": 3759, + "startedAt": 3684, "status": 200, "ok": true, - "finishedAt": 3802, + "finishedAt": 3728, "contentType": "text/css", "resourceTypeHint": "css" }, { "id": "net-24", "method": "GET", - "url": "http://127.0.0.1:37223/assets/index-CLdavoKn.js", + "url": "http://127.0.0.1:37233/assets/index-CLdavoKn.js", "resourceType": "script", - "startedAt": 3759, + "startedAt": 3684, "status": 200, "ok": true, - "finishedAt": 3773, + "finishedAt": 3696, "contentType": "text/javascript", "resourceTypeHint": "index-CLdavoKn.js" }, { "id": "net-25", "method": "GET", - "url": "http://127.0.0.1:37223/assets/index-De1Lwdlm.css", + "url": "http://127.0.0.1:37233/assets/index-De1Lwdlm.css", "resourceType": "stylesheet", - "startedAt": 3760, + "startedAt": 3684, "status": 200, "ok": true, - "finishedAt": 3766, + "finishedAt": 3689, "contentType": "text/css", "resourceTypeHint": "index-De1Lwdlm.css" }, @@ -7495,10 +7495,10 @@ "method": "GET", "url": "https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css", "resourceType": "stylesheet", - "startedAt": 3762, + "startedAt": 3687, "status": 200, "ok": true, - "finishedAt": 3835, + "finishedAt": 3780, "contentType": "text/css", "resourceTypeHint": "ionicons.min.css" }, @@ -7507,10 +7507,10 @@ "method": "GET", "url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdu.woff2", "resourceType": "font", - "startedAt": 3845, + "startedAt": 3789, "status": 200, "ok": true, - "finishedAt": 3892, + "finishedAt": 3839, "contentType": "font/woff2", "resourceTypeHint": "6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdu.woff2" }, @@ -7519,10 +7519,10 @@ "method": "GET", "url": "https://code.ionicframework.com/ionicons/2.0.1/fonts/ionicons.ttf?v=2.0.1", "resourceType": "font", - "startedAt": 3846, + "startedAt": 3790, "status": 200, "ok": true, - "finishedAt": 3954, + "finishedAt": 3899, "contentType": "font/ttf", "resourceTypeHint": "ionicons.ttf" }, @@ -7531,10 +7531,10 @@ "method": "GET", "url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7l.woff2", "resourceType": "font", - "startedAt": 3847, + "startedAt": 3791, "status": 200, "ok": true, - "finishedAt": 3895, + "finishedAt": 3836, "contentType": "font/woff2", "resourceTypeHint": "6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7l.woff2" }, @@ -7543,10 +7543,10 @@ "method": "GET", "url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwlxdu.woff2", "resourceType": "font", - "startedAt": 3847, + "startedAt": 3791, "status": 200, "ok": true, - "finishedAt": 3897, + "finishedAt": 3843, "contentType": "font/woff2", "resourceTypeHint": "6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwlxdu.woff2" }, @@ -7555,58 +7555,58 @@ "method": "GET", "url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7nsDI.woff2", "resourceType": "font", - "startedAt": 3848, + "startedAt": 3791, "status": 200, "ok": true, - "finishedAt": 3895, + "finishedAt": 3840, "contentType": "font/woff2", "resourceTypeHint": "6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7nsDI.woff2" }, { "id": "net-32", "method": "GET", - "url": "http://127.0.0.1:37223/api/articles/rd-test-45949f-1/comments", + "url": "http://127.0.0.1:37233/api/articles/rd-test-1e34dd-1/comments", "resourceType": "xhr", - "startedAt": 3850, + "startedAt": 3793, "status": 200, "ok": true, - "finishedAt": 3859, + "finishedAt": 3801, "contentType": "application/json", "resourceTypeHint": "comments" }, { "id": "net-33", "method": "GET", - "url": "http://127.0.0.1:37223/api/articles/rd-test-45949f-1", + "url": "http://127.0.0.1:37233/api/articles/rd-test-1e34dd-1", "resourceType": "xhr", - "startedAt": 3851, + "startedAt": 3793, "status": 200, "ok": true, - "finishedAt": 3861, + "finishedAt": 3802, "contentType": "application/json", - "resourceTypeHint": "rd-test-45949f-1" + "resourceTypeHint": "rd-test-1e34dd-1" }, { "id": "net-34", "method": "GET", - "url": "http://127.0.0.1:37223/api/user", + "url": "http://127.0.0.1:37233/api/user", "resourceType": "xhr", - "startedAt": 3851, + "startedAt": 3793, "status": 200, "ok": true, - "finishedAt": 3857, "contentType": "application/json", - "resourceTypeHint": "user" + "resourceTypeHint": "user", + "finishedAt": 3800 }, { "id": "net-35", "method": "GET", "url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwlxdu.woff2", "resourceType": "font", - "startedAt": 3867, + "startedAt": 3805, "status": 200, "ok": true, - "finishedAt": 3933, + "finishedAt": 3870, "contentType": "font/woff2", "resourceTypeHint": "6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwlxdu.woff2" } @@ -7619,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_45949F_1", + "value": "RD_TEST_1E34DD_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_45949F_2", + "value": "RD_TEST_1E34DD_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_45949F_3", + "value": "RD_TEST_1E34DD_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_45949F_4", + "value": "RD_TEST_1E34DD_4", "redacted": false } ], @@ -7662,7 +7662,7 @@ "weight": 60, "matchCount": 1, "visibleCount": 1, - "elapsedMs": 5 + "elapsedMs": 6 } ], "chosenStrategy": "text", @@ -7670,10 +7670,10 @@ "retryCount": 0 }, "before": { - "at": 1472, - "url": "http://127.0.0.1:37223/#/editor", + "at": 1508, + "url": "http://127.0.0.1:37233/#/editor", "title": "Conduit", - "domHash": "c936833dbedd7df2", + "domHash": "a01e944d4b62d184", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -7685,9 +7685,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "d0c4b4fdb77a11e9", + "textHash": "e1abb484093cff92", "visualHash": "b85410fa0ea5a358", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_CRUD_OWNER Publish Article conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "input", @@ -7739,7 +7739,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -7756,7 +7756,7 @@ "rows": [ { "keyHash": "186347d9ea7673a2", - "rowHash": "513a00e32394f4c2", + "rowHash": "0c12beb933a01c68", "softDeleted": false } ], @@ -7793,8 +7793,8 @@ "softDeleted": false }, { - "keyHash": "667da1af4b45220f", - "rowHash": "5c8f98476fb3bfca", + "keyHash": "75453dbfb3621178", + "rowHash": "2daa65787e249e4f", "softDeleted": false } ], @@ -7807,7 +7807,7 @@ "rows": [ { "keyHash": "186347d9ea7673a2", - "rowHash": "513a00e32394f4c2", + "rowHash": "0c12beb933a01c68", "softDeleted": false } ], @@ -7844,8 +7844,8 @@ "softDeleted": false }, { - "keyHash": "667da1af4b45220f", - "rowHash": "5c8f98476fb3bfca", + "keyHash": "75453dbfb3621178", + "rowHash": "2daa65787e249e4f", "softDeleted": false } ], @@ -7854,10 +7854,10 @@ ] }, "beforeAction": { - "at": 1525, - "url": "http://127.0.0.1:37223/#/editor", + "at": 1565, + "url": "http://127.0.0.1:37233/#/editor", "title": "Conduit", - "domHash": "65af1d2ea7b617ef", + "domHash": "71c59c8f3380fc70", "canaryPresent": true, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -7869,15 +7869,15 @@ "accessDenied": false }, "semanticDom": { - "textHash": "d0c4b4fdb77a11e9", + "textHash": "e1abb484093cff92", "visualHash": "b85410fa0ea5a358", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_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": "9af386305dcabcbe", + "valueHash": "589ae865f68e7a04", "checked": false, "disabled": false, "visible": true @@ -7886,7 +7886,7 @@ "tag": "input", "type": "text", "name": "description", - "valueHash": "b06e64fc9b78efc3", + "valueHash": "6ebf8bfd9fe44d70", "checked": false, "disabled": false, "visible": true @@ -7895,7 +7895,7 @@ "tag": "textarea", "type": "textarea", "name": "body", - "valueHash": "cff0250006ad2053", + "valueHash": "788c60d52792e78e", "disabled": false, "visible": true }, @@ -7903,7 +7903,7 @@ "tag": "input", "type": "text", "name": "tags", - "valueHash": "396822fa8e888ce0", + "valueHash": "88d2c36018febb88", "checked": false, "disabled": false, "visible": true @@ -7923,7 +7923,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -7937,10 +7937,10 @@ "networkSettled": true, "targetBusyAfter": false, "after": { - "at": 2639, - "url": "http://127.0.0.1:37223/#/article/rd-test-45949f-1", + "at": 2678, + "url": "http://127.0.0.1:37233/#/article/rd-test-1e34dd-1", "title": "Conduit", - "domHash": "263b32055f567ffa", + "domHash": "e258f1b690fb070d", "canaryPresent": true, "bodyCanaryPresent": true, "temporaryBlobUrls": 0, @@ -7952,9 +7952,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "92798a4716147d2c", + "textHash": "f05f8d85521bd3e6", "visualHash": "471347ba69eaf940", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_CRUD_OWNER RD_TEST_1E34DD_1 RD_PHASE_L_CRUD_OWNER July 26, 2026 Delete Article Edit Article RD_TEST_1E34DD_3 RD_TEST_1E34DD_4 RD_PHASE_L_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", @@ -8006,7 +8006,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -8023,12 +8023,12 @@ "rows": [ { "keyHash": "186347d9ea7673a2", - "rowHash": "513a00e32394f4c2", + "rowHash": "0c12beb933a01c68", "softDeleted": false }, { "keyHash": "da7114755c3b82ba", - "rowHash": "a43fe358be8329c7", + "rowHash": "8f0ac8ad441fe2c9", "softDeleted": false } ], @@ -8065,8 +8065,8 @@ "softDeleted": false }, { - "keyHash": "667da1af4b45220f", - "rowHash": "5c8f98476fb3bfca", + "keyHash": "75453dbfb3621178", + "rowHash": "2daa65787e249e4f", "softDeleted": false } ], @@ -8079,12 +8079,12 @@ "rows": [ { "keyHash": "186347d9ea7673a2", - "rowHash": "513a00e32394f4c2", + "rowHash": "0c12beb933a01c68", "softDeleted": false }, { "keyHash": "da7114755c3b82ba", - "rowHash": "a43fe358be8329c7", + "rowHash": "8f0ac8ad441fe2c9", "softDeleted": false } ], @@ -8121,8 +8121,8 @@ "softDeleted": false }, { - "keyHash": "667da1af4b45220f", - "rowHash": "5c8f98476fb3bfca", + "keyHash": "75453dbfb3621178", + "rowHash": "2daa65787e249e4f", "softDeleted": false } ], @@ -8131,10 +8131,10 @@ ] }, "afterRefresh": { - "at": 3749, - "url": "http://127.0.0.1:37223/#/article/rd-test-45949f-1", + "at": 3675, + "url": "http://127.0.0.1:37233/#/article/rd-test-1e34dd-1", "title": "Conduit", - "domHash": "263b32055f567ffa", + "domHash": "e258f1b690fb070d", "canaryPresent": true, "bodyCanaryPresent": true, "temporaryBlobUrls": 0, @@ -8146,9 +8146,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "92798a4716147d2c", + "textHash": "f05f8d85521bd3e6", "visualHash": "471347ba69eaf940", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_CRUD_OWNER RD_TEST_1E34DD_1 RD_PHASE_L_CRUD_OWNER July 26, 2026 Delete Article Edit Article RD_TEST_1E34DD_3 RD_TEST_1E34DD_4 RD_PHASE_L_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", @@ -8200,7 +8200,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -8211,10 +8211,10 @@ } }, "afterHardRefresh": { - "at": 4676, - "url": "http://127.0.0.1:37223/#/article/rd-test-45949f-1", + "at": 4618, + "url": "http://127.0.0.1:37233/#/article/rd-test-1e34dd-1", "title": "Conduit", - "domHash": "263b32055f567ffa", + "domHash": "e258f1b690fb070d", "canaryPresent": true, "bodyCanaryPresent": true, "temporaryBlobUrls": 0, @@ -8226,9 +8226,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "92798a4716147d2c", + "textHash": "f05f8d85521bd3e6", "visualHash": "471347ba69eaf940", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_CRUD_OWNER RD_TEST_1E34DD_1 RD_PHASE_L_CRUD_OWNER July 26, 2026 Delete Article Edit Article RD_TEST_1E34DD_3 RD_TEST_1E34DD_4 RD_PHASE_L_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", @@ -8280,7 +8280,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -8291,10 +8291,10 @@ } }, "afterNewTab": { - "at": 5654, - "url": "http://127.0.0.1:37223/#/editor", + "at": 5598, + "url": "http://127.0.0.1:37233/#/editor", "title": "Conduit", - "domHash": "c936833dbedd7df2", + "domHash": "a01e944d4b62d184", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -8306,9 +8306,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "d0c4b4fdb77a11e9", + "textHash": "e1abb484093cff92", "visualHash": "b85410fa0ea5a358", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_CRUD_OWNER Publish Article conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "input", @@ -8360,7 +8360,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -8371,10 +8371,10 @@ } }, "afterNewContext": { - "at": 6976, - "url": "http://127.0.0.1:37223/#/article/rd-test-45949f-1", + "at": 6901, + "url": "http://127.0.0.1:37233/#/article/rd-test-1e34dd-1", "title": "Conduit", - "domHash": "263b32055f567ffa", + "domHash": "e258f1b690fb070d", "canaryPresent": true, "bodyCanaryPresent": true, "temporaryBlobUrls": 0, @@ -8386,9 +8386,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "92798a4716147d2c", + "textHash": "f05f8d85521bd3e6", "visualHash": "471347ba69eaf940", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_CRUD_OWNER RD_TEST_1E34DD_1 RD_PHASE_L_CRUD_OWNER July 26, 2026 Delete Article Edit Article RD_TEST_1E34DD_3 RD_TEST_1E34DD_4 RD_PHASE_L_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", @@ -8440,7 +8440,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -8512,8 +8512,8 @@ { "id": "RD-016", "action": { - "id": "663211a5be23", - "pageUrl": "http://127.0.0.1:37223/#/editor", + "id": "24398d13b7ae", + "pageUrl": "http://127.0.0.1:37233/#/editor", "label": "conduit", "activation": "click", "kind": "navigation", @@ -8526,7 +8526,7 @@ "role": "link", "accessibleName": "conduit", "text": "conduit", - "href": "http://127.0.0.1:37223/#/", + "href": "http://127.0.0.1:37233/#/", "candidates": [ { "strategy": "role", @@ -8545,7 +8545,7 @@ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37223/#/" + "value": "http://127.0.0.1:37233/#/" }, { "strategy": "text", @@ -8563,31 +8563,31 @@ "fields": [] }, "evidence": { - "startedAt": "2026-07-26T12:20:18.508Z", - "durationMs": 2504, - "canary": "RD_TEST_DEF33C", + "startedAt": "2026-07-26T14:10:34.338Z", + "durationMs": 2563, + "canary": "RD_TEST_07AF52", "network": [ { "id": "net-1", "method": "GET", - "url": "http://127.0.0.1:37223/api/articles/feed?limit=3&&offset=0", + "url": "http://127.0.0.1:37233/api/articles/feed?limit=3&&offset=0", "resourceType": "xhr", - "startedAt": 1537, + "startedAt": 1576, "status": 200, "ok": true, - "finishedAt": 1543, + "finishedAt": 1582, "contentType": "application/json", "resourceTypeHint": "feed" }, { "id": "net-2", "method": "GET", - "url": "http://127.0.0.1:37223/api/tags", + "url": "http://127.0.0.1:37233/api/tags", "resourceType": "xhr", - "startedAt": 1538, + "startedAt": 1576, "status": 200, "ok": true, - "finishedAt": 1542, + "finishedAt": 1581, "contentType": "application/json", "resourceTypeHint": "tags" } @@ -8614,14 +8614,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", @@ -8635,7 +8635,7 @@ "weight": 60, "matchCount": 2, "visibleCount": 2, - "elapsedMs": 5 + "elapsedMs": 6 }, { "strategy": "css", @@ -8650,10 +8650,10 @@ "retryCount": 0 }, "before": { - "at": 1498, - "url": "http://127.0.0.1:37223/#/editor", + "at": 1538, + "url": "http://127.0.0.1:37233/#/editor", "title": "Conduit", - "domHash": "c936833dbedd7df2", + "domHash": "a01e944d4b62d184", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -8665,9 +8665,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "d0c4b4fdb77a11e9", + "textHash": "e1abb484093cff92", "visualHash": "b85410fa0ea5a358", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_CRUD_OWNER Publish Article conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "input", @@ -8719,7 +8719,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -8730,10 +8730,10 @@ } }, "beforeAction": { - "at": 1506, - "url": "http://127.0.0.1:37223/#/editor", + "at": 1547, + "url": "http://127.0.0.1:37233/#/editor", "title": "Conduit", - "domHash": "c936833dbedd7df2", + "domHash": "a01e944d4b62d184", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -8745,9 +8745,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "d0c4b4fdb77a11e9", + "textHash": "e1abb484093cff92", "visualHash": "b85410fa0ea5a358", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_CRUD_OWNER Publish Article conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "input", @@ -8799,7 +8799,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -8812,10 +8812,10 @@ "networkSettled": true, "targetBusyAfter": false, "after": { - "at": 2500, - "url": "http://127.0.0.1:37223/#/", + "at": 2559, + "url": "http://127.0.0.1:37233/#/", "title": "Conduit", - "domHash": "82970581dc3ba0ed", + "domHash": "209947a5decfaf00", "canaryPresent": false, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -8827,9 +8827,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "38646687161ebd53", + "textHash": "5b8b6ea8b3f6063c", "visualHash": "efa2f7065933782f", - "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", + "text": "conduit Source code Home New Article RD_PHASE_L_CRUD_OWNER Your Feed Global Feed Articles not available. Popular Tags RD_TEST_234782_4RD_TEST_1E34DD_4 conduit An interactive learning project from Thinkster. Code & design licensed under MIT. Source code", "controls": [ { "tag": "button", @@ -8867,7 +8867,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "2dae499c83c06299", + "valueHash": "adb8333974fd6b57", "containsCanary": false } ], @@ -8895,8 +8895,8 @@ { "id": "RD-017", "action": { - "id": "ecbb56a1273c", - "pageUrl": "http://127.0.0.1:37223/#/editor/rd-test-497c2f-1", + "id": "43837c64db4b", + "pageUrl": "http://127.0.0.1:37233/#/editor/rd-test-234782-1", "label": "Source code", "activation": "click", "kind": "navigation", @@ -8968,8 +8968,8 @@ { "id": "RD-018", "action": { - "id": "4293b867b579", - "pageUrl": "http://127.0.0.1:37223/#/editor/rd-test-497c2f-1", + "id": "1281a1dba845", + "pageUrl": "http://127.0.0.1:37233/#/editor/rd-test-234782-1", "label": "Thinkster", "activation": "click", "kind": "navigation", @@ -9041,8 +9041,8 @@ { "id": "RD-019", "action": { - "id": "8651bc066e40", - "pageUrl": "http://127.0.0.1:37223/#/editor/rd-test-497c2f-1", + "id": "f5e1fa59f2a3", + "pageUrl": "http://127.0.0.1:37233/#/editor/rd-test-234782-1", "label": "Source code", "activation": "click", "kind": "navigation", @@ -9114,8 +9114,8 @@ { "id": "RD-020", "action": { - "id": "dff655920243", - "pageUrl": "http://127.0.0.1:37223/", + "id": "ffceb40cfb20", + "pageUrl": "http://127.0.0.1:37233/", "label": "Source code", "activation": "click", "kind": "navigation", @@ -9187,8 +9187,8 @@ { "id": "RD-021", "action": { - "id": "d0d3611360e0", - "pageUrl": "http://127.0.0.1:37223/", + "id": "9e62e4f6f98f", + "pageUrl": "http://127.0.0.1:37233/", "label": "Thinkster", "activation": "click", "kind": "navigation", @@ -9260,8 +9260,8 @@ { "id": "RD-022", "action": { - "id": "aece598f17f5", - "pageUrl": "http://127.0.0.1:37223/", + "id": "0de5cae7c6fc", + "pageUrl": "http://127.0.0.1:37233/", "label": "Source code", "activation": "click", "kind": "navigation", @@ -9333,8 +9333,8 @@ { "id": "RD-023", "action": { - "id": "d26ff438143d", - "pageUrl": "http://127.0.0.1:37223/#/editor", + "id": "9d5c9e4234ca", + "pageUrl": "http://127.0.0.1:37233/#/editor", "label": "Source code", "activation": "click", "kind": "navigation", @@ -9406,8 +9406,8 @@ { "id": "RD-024", "action": { - "id": "f33e20a1aa27", - "pageUrl": "http://127.0.0.1:37223/#/editor", + "id": "ae5a7d20cdff", + "pageUrl": "http://127.0.0.1:37233/#/editor", "label": "New Article", "activation": "click", "kind": "navigation", @@ -9420,7 +9420,7 @@ "role": "link", "accessibleName": "New Article", "text": "New Article", - "href": "http://127.0.0.1:37223/#/editor", + "href": "http://127.0.0.1:37233/#/editor", "candidates": [ { "strategy": "role", @@ -9439,7 +9439,7 @@ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37223/#/editor" + "value": "http://127.0.0.1:37233/#/editor" }, { "strategy": "text", @@ -9479,8 +9479,8 @@ { "id": "RD-025", "action": { - "id": "7c82bc9fd8ce", - "pageUrl": "http://127.0.0.1:37223/#/editor", + "id": "260d6258654f", + "pageUrl": "http://127.0.0.1:37233/#/editor", "label": "Thinkster", "activation": "click", "kind": "navigation", @@ -9552,8 +9552,8 @@ { "id": "RD-026", "action": { - "id": "ab9bf2cd0dfb", - "pageUrl": "http://127.0.0.1:37223/#/editor", + "id": "b541833da6e9", + "pageUrl": "http://127.0.0.1:37233/#/editor", "label": "Source code", "activation": "click", "kind": "navigation", @@ -9625,9 +9625,9 @@ ], "environment": { "status": "VALID", - "checkedAt": "2026-07-26T12:19:23.343Z", - "durationMs": 3991, - "targetUrl": "http://127.0.0.1:37223/#/editor/rd-test-497c2f-1", + "checkedAt": "2026-07-26T14:09:39.447Z", + "durationMs": 4016, + "targetUrl": "http://127.0.0.1:37233/#/editor/rd-test-234782-1", "mainDocument": { "status": 200, "contentType": "text/html" diff --git a/release/evidence/raw/conduit-sources.scan.json b/release/evidence/raw/conduit-sources.scan.json index ac0e901..b94242c 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": "20260726T121026Z-1d20", - "targetUrl": "http://127.0.0.1:37223/", - "startedAt": "2026-07-26T12:10:26.292Z", - "finishedAt": "2026-07-26T12:11:30.879Z", + "scanId": "20260726T140645Z-88ef", + "targetUrl": "http://127.0.0.1:37233/", + "startedAt": "2026-07-26T14:06:45.355Z", + "finishedAt": "2026-07-26T14:07:47.069Z", "options": { "maxPages": 10, "maxActions": 100, @@ -41,12 +41,12 @@ }, "pages": [ { - "url": "http://127.0.0.1:37223/", + "url": "http://127.0.0.1:37233/", "title": "Conduit", "actions": [ { - "id": "92446496b665", - "pageUrl": "http://127.0.0.1:37223/", + "id": "070fba8120b1", + "pageUrl": "http://127.0.0.1:37233/", "label": "conduit", "activation": "click", "kind": "navigation", @@ -59,7 +59,7 @@ "role": "link", "accessibleName": "conduit", "text": "conduit", - "href": "http://127.0.0.1:37223/#/", + "href": "http://127.0.0.1:37233/#/", "candidates": [ { "strategy": "role", @@ -78,7 +78,7 @@ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37223/#/" + "value": "http://127.0.0.1:37233/#/" }, { "strategy": "text", @@ -96,8 +96,8 @@ "fields": [] }, { - "id": "dff655920243", - "pageUrl": "http://127.0.0.1:37223/", + "id": "ffceb40cfb20", + "pageUrl": "http://127.0.0.1:37233/", "label": "Source code", "activation": "click", "kind": "navigation", @@ -147,8 +147,8 @@ "fields": [] }, { - "id": "3800f03bc706", - "pageUrl": "http://127.0.0.1:37223/", + "id": "55104873d69e", + "pageUrl": "http://127.0.0.1:37233/", "label": "Home", "activation": "click", "kind": "navigation", @@ -161,7 +161,7 @@ "role": "link", "accessibleName": "Home", "text": "Home", - "href": "http://127.0.0.1:37223/#/", + "href": "http://127.0.0.1:37233/#/", "candidates": [ { "strategy": "role", @@ -180,7 +180,7 @@ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37223/#/" + "value": "http://127.0.0.1:37233/#/" }, { "strategy": "text", @@ -198,8 +198,8 @@ "fields": [] }, { - "id": "8cb6c7751826", - "pageUrl": "http://127.0.0.1:37223/", + "id": "44d967df5598", + "pageUrl": "http://127.0.0.1:37233/", "label": "Login", "activation": "click", "kind": "navigation", @@ -212,7 +212,7 @@ "role": "link", "accessibleName": "Login", "text": "Login", - "href": "http://127.0.0.1:37223/#/login", + "href": "http://127.0.0.1:37233/#/login", "candidates": [ { "strategy": "role", @@ -231,7 +231,7 @@ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37223/#/login" + "value": "http://127.0.0.1:37233/#/login" }, { "strategy": "text", @@ -249,8 +249,8 @@ "fields": [] }, { - "id": "1774d9e8a069", - "pageUrl": "http://127.0.0.1:37223/", + "id": "584e8d1c72ae", + "pageUrl": "http://127.0.0.1:37233/", "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:37223/#/register", + "href": "http://127.0.0.1:37233/#/register", "candidates": [ { "strategy": "role", @@ -282,7 +282,7 @@ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37223/#/register" + "value": "http://127.0.0.1:37233/#/register" }, { "strategy": "text", @@ -300,8 +300,8 @@ "fields": [] }, { - "id": "09cafc4ba90b", - "pageUrl": "http://127.0.0.1:37223/", + "id": "3423ae6a28dc", + "pageUrl": "http://127.0.0.1:37233/", "label": "Global Feed", "activation": "click", "kind": "local", @@ -346,8 +346,8 @@ "fields": [] }, { - "id": "9d442a70bdcb", - "pageUrl": "http://127.0.0.1:37223/", + "id": "7e6c799322ef", + "pageUrl": "http://127.0.0.1:37233/", "label": "conduit", "activation": "click", "kind": "navigation", @@ -360,7 +360,7 @@ "role": "link", "accessibleName": "conduit", "text": "conduit", - "href": "http://127.0.0.1:37223/#/", + "href": "http://127.0.0.1:37233/#/", "candidates": [ { "strategy": "role", @@ -379,7 +379,7 @@ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37223/#/" + "value": "http://127.0.0.1:37233/#/" }, { "strategy": "text", @@ -397,8 +397,8 @@ "fields": [] }, { - "id": "d0d3611360e0", - "pageUrl": "http://127.0.0.1:37223/", + "id": "9e62e4f6f98f", + "pageUrl": "http://127.0.0.1:37233/", "label": "Thinkster", "activation": "click", "kind": "navigation", @@ -448,8 +448,8 @@ "fields": [] }, { - "id": "aece598f17f5", - "pageUrl": "http://127.0.0.1:37223/", + "id": "0de5cae7c6fc", + "pageUrl": "http://127.0.0.1:37233/", "label": "Source code", "activation": "click", "kind": "navigation", @@ -501,12 +501,12 @@ ] }, { - "url": "http://127.0.0.1:37223/#/login", + "url": "http://127.0.0.1:37233/#/login", "title": "Conduit", "actions": [ { - "id": "97381194cc19", - "pageUrl": "http://127.0.0.1:37223/#/login", + "id": "392117f7deb4", + "pageUrl": "http://127.0.0.1:37233/#/login", "label": "conduit", "activation": "click", "kind": "navigation", @@ -519,7 +519,7 @@ "role": "link", "accessibleName": "conduit", "text": "conduit", - "href": "http://127.0.0.1:37223/#/", + "href": "http://127.0.0.1:37233/#/", "candidates": [ { "strategy": "role", @@ -538,7 +538,7 @@ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37223/#/" + "value": "http://127.0.0.1:37233/#/" }, { "strategy": "text", @@ -556,8 +556,8 @@ "fields": [] }, { - "id": "0bbdd763f574", - "pageUrl": "http://127.0.0.1:37223/#/login", + "id": "8b4be386902b", + "pageUrl": "http://127.0.0.1:37233/#/login", "label": "Source code", "activation": "click", "kind": "navigation", @@ -607,8 +607,8 @@ "fields": [] }, { - "id": "545fb8d98a00", - "pageUrl": "http://127.0.0.1:37223/#/login", + "id": "08384ebe708a", + "pageUrl": "http://127.0.0.1:37233/#/login", "label": "Home", "activation": "click", "kind": "navigation", @@ -621,7 +621,7 @@ "role": "link", "accessibleName": "Home", "text": "Home", - "href": "http://127.0.0.1:37223/#/", + "href": "http://127.0.0.1:37233/#/", "candidates": [ { "strategy": "role", @@ -640,7 +640,7 @@ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37223/#/" + "value": "http://127.0.0.1:37233/#/" }, { "strategy": "text", @@ -658,8 +658,8 @@ "fields": [] }, { - "id": "8cf8ab594a99", - "pageUrl": "http://127.0.0.1:37223/#/login", + "id": "f6ff19bc7217", + "pageUrl": "http://127.0.0.1:37233/#/login", "label": "Login", "activation": "click", "kind": "navigation", @@ -672,7 +672,7 @@ "role": "link", "accessibleName": "Login", "text": "Login", - "href": "http://127.0.0.1:37223/#/login", + "href": "http://127.0.0.1:37233/#/login", "candidates": [ { "strategy": "role", @@ -691,7 +691,7 @@ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37223/#/login" + "value": "http://127.0.0.1:37233/#/login" }, { "strategy": "text", @@ -709,8 +709,8 @@ "fields": [] }, { - "id": "ac0e58264fcd", - "pageUrl": "http://127.0.0.1:37223/#/login", + "id": "b906a2b18d91", + "pageUrl": "http://127.0.0.1:37233/#/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:37223/#/register", + "href": "http://127.0.0.1:37233/#/register", "candidates": [ { "strategy": "role", @@ -742,7 +742,7 @@ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37223/#/register" + "value": "http://127.0.0.1:37233/#/register" }, { "strategy": "text", @@ -760,8 +760,8 @@ "fields": [] }, { - "id": "112eec96f4d0", - "pageUrl": "http://127.0.0.1:37223/#/login", + "id": "93d717301073", + "pageUrl": "http://127.0.0.1:37233/#/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:37223/#/register", + "href": "http://127.0.0.1:37233/#/register", "candidates": [ { "strategy": "role", @@ -793,7 +793,7 @@ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37223/#/register" + "value": "http://127.0.0.1:37233/#/register" }, { "strategy": "text", @@ -811,8 +811,8 @@ "fields": [] }, { - "id": "6063811d0486", - "pageUrl": "http://127.0.0.1:37223/#/login", + "id": "813251d6087a", + "pageUrl": "http://127.0.0.1:37233/#/login", "label": "Login", "activation": "submit", "kind": "mutation", @@ -861,8 +861,8 @@ ] }, { - "id": "d04cd10dca74", - "pageUrl": "http://127.0.0.1:37223/#/login", + "id": "20a5828e78ae", + "pageUrl": "http://127.0.0.1:37233/#/login", "label": "conduit", "activation": "click", "kind": "navigation", @@ -875,7 +875,7 @@ "role": "link", "accessibleName": "conduit", "text": "conduit", - "href": "http://127.0.0.1:37223/#/", + "href": "http://127.0.0.1:37233/#/", "candidates": [ { "strategy": "role", @@ -894,7 +894,7 @@ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37223/#/" + "value": "http://127.0.0.1:37233/#/" }, { "strategy": "text", @@ -912,8 +912,8 @@ "fields": [] }, { - "id": "f0f10953de61", - "pageUrl": "http://127.0.0.1:37223/#/login", + "id": "456eee3f64e7", + "pageUrl": "http://127.0.0.1:37233/#/login", "label": "Thinkster", "activation": "click", "kind": "navigation", @@ -963,8 +963,8 @@ "fields": [] }, { - "id": "f819daae696d", - "pageUrl": "http://127.0.0.1:37223/#/login", + "id": "ce780cc0c672", + "pageUrl": "http://127.0.0.1:37233/#/login", "label": "Source code", "activation": "click", "kind": "navigation", @@ -1016,12 +1016,12 @@ ] }, { - "url": "http://127.0.0.1:37223/#/register", + "url": "http://127.0.0.1:37233/#/register", "title": "Conduit", "actions": [ { - "id": "44108ba71372", - "pageUrl": "http://127.0.0.1:37223/#/register", + "id": "5f1e2f74a545", + "pageUrl": "http://127.0.0.1:37233/#/register", "label": "conduit", "activation": "click", "kind": "navigation", @@ -1034,7 +1034,7 @@ "role": "link", "accessibleName": "conduit", "text": "conduit", - "href": "http://127.0.0.1:37223/#/", + "href": "http://127.0.0.1:37233/#/", "candidates": [ { "strategy": "role", @@ -1053,7 +1053,7 @@ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37223/#/" + "value": "http://127.0.0.1:37233/#/" }, { "strategy": "text", @@ -1071,8 +1071,8 @@ "fields": [] }, { - "id": "03a023e83ccc", - "pageUrl": "http://127.0.0.1:37223/#/register", + "id": "6facba696850", + "pageUrl": "http://127.0.0.1:37233/#/register", "label": "Source code", "activation": "click", "kind": "navigation", @@ -1122,8 +1122,8 @@ "fields": [] }, { - "id": "54a211837ad5", - "pageUrl": "http://127.0.0.1:37223/#/register", + "id": "9e58c0cdfcb5", + "pageUrl": "http://127.0.0.1:37233/#/register", "label": "Home", "activation": "click", "kind": "navigation", @@ -1136,7 +1136,7 @@ "role": "link", "accessibleName": "Home", "text": "Home", - "href": "http://127.0.0.1:37223/#/", + "href": "http://127.0.0.1:37233/#/", "candidates": [ { "strategy": "role", @@ -1155,7 +1155,7 @@ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37223/#/" + "value": "http://127.0.0.1:37233/#/" }, { "strategy": "text", @@ -1173,8 +1173,8 @@ "fields": [] }, { - "id": "8aa975887dd0", - "pageUrl": "http://127.0.0.1:37223/#/register", + "id": "84cea636280e", + "pageUrl": "http://127.0.0.1:37233/#/register", "label": "Login", "activation": "click", "kind": "navigation", @@ -1187,7 +1187,7 @@ "role": "link", "accessibleName": "Login", "text": "Login", - "href": "http://127.0.0.1:37223/#/login", + "href": "http://127.0.0.1:37233/#/login", "candidates": [ { "strategy": "role", @@ -1206,7 +1206,7 @@ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37223/#/login" + "value": "http://127.0.0.1:37233/#/login" }, { "strategy": "text", @@ -1224,8 +1224,8 @@ "fields": [] }, { - "id": "c336224b8b96", - "pageUrl": "http://127.0.0.1:37223/#/register", + "id": "c64deb5dab0f", + "pageUrl": "http://127.0.0.1:37233/#/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:37223/#/register", + "href": "http://127.0.0.1:37233/#/register", "candidates": [ { "strategy": "role", @@ -1257,7 +1257,7 @@ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37223/#/register" + "value": "http://127.0.0.1:37233/#/register" }, { "strategy": "text", @@ -1275,8 +1275,8 @@ "fields": [] }, { - "id": "f918c5327d24", - "pageUrl": "http://127.0.0.1:37223/#/register", + "id": "4e474a6f1a3e", + "pageUrl": "http://127.0.0.1:37233/#/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:37223/#/login", + "href": "http://127.0.0.1:37233/#/login", "candidates": [ { "strategy": "role", @@ -1308,7 +1308,7 @@ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37223/#/login" + "value": "http://127.0.0.1:37233/#/login" }, { "strategy": "text", @@ -1326,8 +1326,8 @@ "fields": [] }, { - "id": "02c10884e578", - "pageUrl": "http://127.0.0.1:37223/#/register", + "id": "32701b584bba", + "pageUrl": "http://127.0.0.1:37233/#/register", "label": "Sign up", "activation": "submit", "kind": "mutation", @@ -1384,8 +1384,8 @@ ] }, { - "id": "2a8d30d118d1", - "pageUrl": "http://127.0.0.1:37223/#/register", + "id": "26bdd4d35a14", + "pageUrl": "http://127.0.0.1:37233/#/register", "label": "conduit", "activation": "click", "kind": "navigation", @@ -1398,7 +1398,7 @@ "role": "link", "accessibleName": "conduit", "text": "conduit", - "href": "http://127.0.0.1:37223/#/", + "href": "http://127.0.0.1:37233/#/", "candidates": [ { "strategy": "role", @@ -1417,7 +1417,7 @@ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37223/#/" + "value": "http://127.0.0.1:37233/#/" }, { "strategy": "text", @@ -1435,8 +1435,8 @@ "fields": [] }, { - "id": "4c473c1e6971", - "pageUrl": "http://127.0.0.1:37223/#/register", + "id": "9e18b41d35f0", + "pageUrl": "http://127.0.0.1:37233/#/register", "label": "Thinkster", "activation": "click", "kind": "navigation", @@ -1486,8 +1486,8 @@ "fields": [] }, { - "id": "3fb2e5e3bcbe", - "pageUrl": "http://127.0.0.1:37223/#/register", + "id": "1a70937e7cb5", + "pageUrl": "http://127.0.0.1:37233/#/register", "label": "Source code", "activation": "click", "kind": "navigation", @@ -1543,8 +1543,8 @@ { "id": "RD-001", "action": { - "id": "92446496b665", - "pageUrl": "http://127.0.0.1:37223/", + "id": "070fba8120b1", + "pageUrl": "http://127.0.0.1:37233/", "label": "conduit", "activation": "click", "kind": "navigation", @@ -1557,7 +1557,7 @@ "role": "link", "accessibleName": "conduit", "text": "conduit", - "href": "http://127.0.0.1:37223/#/", + "href": "http://127.0.0.1:37233/#/", "candidates": [ { "strategy": "role", @@ -1576,7 +1576,7 @@ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37223/#/" + "value": "http://127.0.0.1:37233/#/" }, { "strategy": "text", @@ -1594,9 +1594,9 @@ "fields": [] }, "evidence": { - "startedAt": "2026-07-26T12:10:36.416Z", - "durationMs": 2508, - "canary": "RD_TEST_8404BC", + "startedAt": "2026-07-26T14:06:52.676Z", + "durationMs": 2530, + "canary": "RD_TEST_C4FA76", "network": [], "console": [], "pageErrors": [], @@ -1621,7 +1621,7 @@ "weight": 82, "matchCount": 2, "visibleCount": 2, - "elapsedMs": 6 + "elapsedMs": 7 }, { "strategy": "href", @@ -1635,7 +1635,7 @@ "weight": 60, "matchCount": 3, "visibleCount": 3, - "elapsedMs": 10 + "elapsedMs": 8 }, { "strategy": "css", @@ -1650,8 +1650,8 @@ "retryCount": 0 }, "before": { - "at": 1495, - "url": "http://127.0.0.1:37223/", + "at": 1517, + "url": "http://127.0.0.1:37233/", "title": "Conduit", "domHash": "3c44d4d1ff59317a", "canaryPresent": false, @@ -1689,8 +1689,8 @@ } }, "beforeAction": { - "at": 1505, - "url": "http://127.0.0.1:37223/", + "at": 1528, + "url": "http://127.0.0.1:37233/", "title": "Conduit", "domHash": "3c44d4d1ff59317a", "canaryPresent": false, @@ -1730,8 +1730,8 @@ "networkSettled": true, "targetBusyAfter": false, "after": { - "at": 2504, - "url": "http://127.0.0.1:37223/#/", + "at": 2525, + "url": "http://127.0.0.1:37233/#/", "title": "Conduit", "domHash": "3c44d4d1ff59317a", "canaryPresent": false, @@ -1768,7 +1768,7 @@ "indexedDb": [] } }, - "trace": "traces/92446496b665.zip", + "trace": "traces/070fba8120b1.zip", "snapshotIndex": "snapshots/RD-001.index.json" }, "verdict": "VERIFIED", @@ -1779,8 +1779,8 @@ { "id": "RD-002", "action": { - "id": "3800f03bc706", - "pageUrl": "http://127.0.0.1:37223/", + "id": "55104873d69e", + "pageUrl": "http://127.0.0.1:37233/", "label": "Home", "activation": "click", "kind": "navigation", @@ -1793,7 +1793,7 @@ "role": "link", "accessibleName": "Home", "text": "Home", - "href": "http://127.0.0.1:37223/#/", + "href": "http://127.0.0.1:37233/#/", "candidates": [ { "strategy": "role", @@ -1812,7 +1812,7 @@ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37223/#/" + "value": "http://127.0.0.1:37233/#/" }, { "strategy": "text", @@ -1830,9 +1830,9 @@ "fields": [] }, "evidence": { - "startedAt": "2026-07-26T12:10:38.973Z", - "durationMs": 2498, - "canary": "RD_TEST_F7AC47", + "startedAt": "2026-07-26T14:06:55.253Z", + "durationMs": 2502, + "canary": "RD_TEST_335CCD", "network": [], "console": [], "pageErrors": [], @@ -1857,7 +1857,7 @@ "weight": 82, "matchCount": 1, "visibleCount": 1, - "elapsedMs": 4 + "elapsedMs": 5 } ], "chosenStrategy": "role", @@ -1865,8 +1865,8 @@ "retryCount": 0 }, "before": { - "at": 1479, - "url": "http://127.0.0.1:37223/", + "at": 1489, + "url": "http://127.0.0.1:37233/", "title": "Conduit", "domHash": "3c44d4d1ff59317a", "canaryPresent": false, @@ -1904,8 +1904,8 @@ } }, "beforeAction": { - "at": 1487, - "url": "http://127.0.0.1:37223/", + "at": 1497, + "url": "http://127.0.0.1:37233/", "title": "Conduit", "domHash": "3c44d4d1ff59317a", "canaryPresent": false, @@ -1945,8 +1945,8 @@ "networkSettled": true, "targetBusyAfter": false, "after": { - "at": 2494, - "url": "http://127.0.0.1:37223/#/", + "at": 2498, + "url": "http://127.0.0.1:37233/#/", "title": "Conduit", "domHash": "3c44d4d1ff59317a", "canaryPresent": false, @@ -1983,7 +1983,7 @@ "indexedDb": [] } }, - "trace": "traces/3800f03bc706.zip", + "trace": "traces/55104873d69e.zip", "snapshotIndex": "snapshots/RD-002.index.json" }, "verdict": "VERIFIED", @@ -1994,8 +1994,8 @@ { "id": "RD-003", "action": { - "id": "8cb6c7751826", - "pageUrl": "http://127.0.0.1:37223/", + "id": "44d967df5598", + "pageUrl": "http://127.0.0.1:37233/", "label": "Login", "activation": "click", "kind": "navigation", @@ -2008,7 +2008,7 @@ "role": "link", "accessibleName": "Login", "text": "Login", - "href": "http://127.0.0.1:37223/#/login", + "href": "http://127.0.0.1:37233/#/login", "candidates": [ { "strategy": "role", @@ -2027,7 +2027,7 @@ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37223/#/login" + "value": "http://127.0.0.1:37233/#/login" }, { "strategy": "text", @@ -2045,9 +2045,9 @@ "fields": [] }, "evidence": { - "startedAt": "2026-07-26T12:10:41.501Z", - "durationMs": 2493, - "canary": "RD_TEST_E49633", + "startedAt": "2026-07-26T14:06:57.786Z", + "durationMs": 2448, + "canary": "RD_TEST_0EB31F", "network": [], "console": [], "pageErrors": [], @@ -2080,8 +2080,8 @@ "retryCount": 0 }, "before": { - "at": 1482, - "url": "http://127.0.0.1:37223/", + "at": 1447, + "url": "http://127.0.0.1:37233/", "title": "Conduit", "domHash": "3c44d4d1ff59317a", "canaryPresent": false, @@ -2119,8 +2119,8 @@ } }, "beforeAction": { - "at": 1492, - "url": "http://127.0.0.1:37223/", + "at": 1457, + "url": "http://127.0.0.1:37233/", "title": "Conduit", "domHash": "3c44d4d1ff59317a", "canaryPresent": false, @@ -2160,8 +2160,8 @@ "networkSettled": true, "targetBusyAfter": false, "after": { - "at": 2489, - "url": "http://127.0.0.1:37223/#/login", + "at": 2444, + "url": "http://127.0.0.1:37233/#/login", "title": "Conduit", "domHash": "c659be8900b0e706", "canaryPresent": false, @@ -2216,7 +2216,7 @@ "indexedDb": [] } }, - "trace": "traces/8cb6c7751826.zip", + "trace": "traces/44d967df5598.zip", "snapshotIndex": "snapshots/RD-003.index.json" }, "verdict": "VERIFIED", @@ -2227,8 +2227,8 @@ { "id": "RD-004", "action": { - "id": "1774d9e8a069", - "pageUrl": "http://127.0.0.1:37223/", + "id": "584e8d1c72ae", + "pageUrl": "http://127.0.0.1:37233/", "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:37223/#/register", + "href": "http://127.0.0.1:37233/#/register", "candidates": [ { "strategy": "role", @@ -2260,7 +2260,7 @@ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37223/#/register" + "value": "http://127.0.0.1:37233/#/register" }, { "strategy": "text", @@ -2278,9 +2278,9 @@ "fields": [] }, "evidence": { - "startedAt": "2026-07-26T12:10:44.042Z", - "durationMs": 2453, - "canary": "RD_TEST_7397DC", + "startedAt": "2026-07-26T14:07:00.276Z", + "durationMs": 2483, + "canary": "RD_TEST_6CE21B", "network": [], "console": [], "pageErrors": [], @@ -2298,7 +2298,7 @@ "weight": 92, "matchCount": 1, "visibleCount": 1, - "elapsedMs": 6 + "elapsedMs": 5 } ], "chosenStrategy": "role", @@ -2306,8 +2306,8 @@ "retryCount": 0 }, "before": { - "at": 1458, - "url": "http://127.0.0.1:37223/", + "at": 1470, + "url": "http://127.0.0.1:37233/", "title": "Conduit", "domHash": "3c44d4d1ff59317a", "canaryPresent": false, @@ -2345,8 +2345,8 @@ } }, "beforeAction": { - "at": 1467, - "url": "http://127.0.0.1:37223/", + "at": 1479, + "url": "http://127.0.0.1:37233/", "title": "Conduit", "domHash": "3c44d4d1ff59317a", "canaryPresent": false, @@ -2386,8 +2386,8 @@ "networkSettled": true, "targetBusyAfter": false, "after": { - "at": 2449, - "url": "http://127.0.0.1:37223/#/register", + "at": 2479, + "url": "http://127.0.0.1:37233/#/register", "title": "Conduit", "domHash": "1f4fa65964895f4c", "canaryPresent": false, @@ -2451,7 +2451,7 @@ "indexedDb": [] } }, - "trace": "traces/1774d9e8a069.zip", + "trace": "traces/584e8d1c72ae.zip", "snapshotIndex": "snapshots/RD-004.index.json" }, "verdict": "VERIFIED", @@ -2462,8 +2462,8 @@ { "id": "RD-005", "action": { - "id": "09cafc4ba90b", - "pageUrl": "http://127.0.0.1:37223/", + "id": "3423ae6a28dc", + "pageUrl": "http://127.0.0.1:37233/", "label": "Global Feed", "activation": "click", "kind": "local", @@ -2508,19 +2508,19 @@ "fields": [] }, "evidence": { - "startedAt": "2026-07-26T12:10:46.538Z", - "durationMs": 2505, - "canary": "RD_TEST_784A17", + "startedAt": "2026-07-26T14:07:02.802Z", + "durationMs": 2538, + "canary": "RD_TEST_6AD4F9", "network": [ { "id": "net-1", "method": "GET", - "url": "http://127.0.0.1:37223/api/articles?limit=3&&offset=0", + "url": "http://127.0.0.1:37233/api/articles?limit=3&&offset=0", "resourceType": "xhr", - "startedAt": 1487, + "startedAt": 1512, "status": 200, "ok": true, - "finishedAt": 1496, + "finishedAt": 1520, "contentType": "application/json", "resourceTypeHint": "articles" } @@ -2549,8 +2549,8 @@ "retryCount": 0 }, "before": { - "at": 1449, - "url": "http://127.0.0.1:37223/", + "at": 1468, + "url": "http://127.0.0.1:37233/", "title": "Conduit", "domHash": "3c44d4d1ff59317a", "canaryPresent": false, @@ -2588,8 +2588,8 @@ } }, "beforeAction": { - "at": 1459, - "url": "http://127.0.0.1:37223/", + "at": 1481, + "url": "http://127.0.0.1:37233/", "title": "Conduit", "domHash": "3c44d4d1ff59317a", "canaryPresent": false, @@ -2629,8 +2629,8 @@ "networkSettled": true, "targetBusyAfter": false, "after": { - "at": 2475, - "url": "http://127.0.0.1:37223/", + "at": 2491, + "url": "http://127.0.0.1:37233/", "title": "Conduit", "domHash": "3c44d4d1ff59317a", "canaryPresent": false, @@ -2667,8 +2667,8 @@ "indexedDb": [] } }, - "screenshot": "screenshots/09cafc4ba90b-after.png", - "trace": "traces/09cafc4ba90b.zip", + "screenshot": "screenshots/3423ae6a28dc-after.png", + "trace": "traces/3423ae6a28dc.zip", "snapshotIndex": "snapshots/RD-005.index.json" }, "verdict": "VERIFIED", @@ -2679,8 +2679,8 @@ { "id": "RD-006", "action": { - "id": "9d442a70bdcb", - "pageUrl": "http://127.0.0.1:37223/", + "id": "7e6c799322ef", + "pageUrl": "http://127.0.0.1:37233/", "label": "conduit", "activation": "click", "kind": "navigation", @@ -2693,7 +2693,7 @@ "role": "link", "accessibleName": "conduit", "text": "conduit", - "href": "http://127.0.0.1:37223/#/", + "href": "http://127.0.0.1:37233/#/", "candidates": [ { "strategy": "role", @@ -2712,7 +2712,7 @@ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37223/#/" + "value": "http://127.0.0.1:37233/#/" }, { "strategy": "text", @@ -2730,9 +2730,9 @@ "fields": [] }, "evidence": { - "startedAt": "2026-07-26T12:10:49.084Z", - "durationMs": 2458, - "canary": "RD_TEST_F15AFB", + "startedAt": "2026-07-26T14:07:05.373Z", + "durationMs": 2500, + "canary": "RD_TEST_3E4127", "network": [], "console": [], "pageErrors": [], @@ -2750,7 +2750,7 @@ "weight": 92, "matchCount": 2, "visibleCount": 2, - "elapsedMs": 7 + "elapsedMs": 8 }, { "strategy": "role", @@ -2771,14 +2771,14 @@ "weight": 60, "matchCount": 3, "visibleCount": 3, - "elapsedMs": 8 + "elapsedMs": 7 }, { "strategy": "css", "weight": 35, "matchCount": 1, "visibleCount": 1, - "elapsedMs": 3 + "elapsedMs": 4 } ], "chosenStrategy": "css", @@ -2786,8 +2786,8 @@ "retryCount": 0 }, "before": { - "at": 1452, - "url": "http://127.0.0.1:37223/", + "at": 1492, + "url": "http://127.0.0.1:37233/", "title": "Conduit", "domHash": "3c44d4d1ff59317a", "canaryPresent": false, @@ -2825,8 +2825,8 @@ } }, "beforeAction": { - "at": 1460, - "url": "http://127.0.0.1:37223/", + "at": 1501, + "url": "http://127.0.0.1:37233/", "title": "Conduit", "domHash": "3c44d4d1ff59317a", "canaryPresent": false, @@ -2866,8 +2866,8 @@ "networkSettled": true, "targetBusyAfter": false, "after": { - "at": 2454, - "url": "http://127.0.0.1:37223/#/", + "at": 2496, + "url": "http://127.0.0.1:37233/#/", "title": "Conduit", "domHash": "3c44d4d1ff59317a", "canaryPresent": false, @@ -2904,7 +2904,7 @@ "indexedDb": [] } }, - "trace": "traces/9d442a70bdcb.zip", + "trace": "traces/7e6c799322ef.zip", "snapshotIndex": "snapshots/RD-006.index.json" }, "verdict": "VERIFIED", @@ -2915,8 +2915,8 @@ { "id": "RD-007", "action": { - "id": "97381194cc19", - "pageUrl": "http://127.0.0.1:37223/#/login", + "id": "392117f7deb4", + "pageUrl": "http://127.0.0.1:37233/#/login", "label": "conduit", "activation": "click", "kind": "navigation", @@ -2929,7 +2929,7 @@ "role": "link", "accessibleName": "conduit", "text": "conduit", - "href": "http://127.0.0.1:37223/#/", + "href": "http://127.0.0.1:37233/#/", "candidates": [ { "strategy": "role", @@ -2948,7 +2948,7 @@ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37223/#/" + "value": "http://127.0.0.1:37233/#/" }, { "strategy": "text", @@ -2966,31 +2966,31 @@ "fields": [] }, "evidence": { - "startedAt": "2026-07-26T12:10:51.575Z", - "durationMs": 2489, - "canary": "RD_TEST_BD2F46", + "startedAt": "2026-07-26T14:07:07.898Z", + "durationMs": 2465, + "canary": "RD_TEST_A4D73D", "network": [ { "id": "net-1", "method": "GET", - "url": "http://127.0.0.1:37223/api/articles?limit=3&&offset=0", + "url": "http://127.0.0.1:37233/api/articles?limit=3&&offset=0", "resourceType": "xhr", - "startedAt": 1501, + "startedAt": 1495, "status": 200, "ok": true, - "finishedAt": 1514, "contentType": "application/json", - "resourceTypeHint": "articles" + "resourceTypeHint": "articles", + "finishedAt": 1500 }, { "id": "net-2", "method": "GET", - "url": "http://127.0.0.1:37223/api/tags", + "url": "http://127.0.0.1:37233/api/tags", "resourceType": "xhr", - "startedAt": 1503, + "startedAt": 1496, "status": 200, "ok": true, - "finishedAt": 1514, + "finishedAt": 1501, "contentType": "application/json", "resourceTypeHint": "tags" } @@ -3018,7 +3018,7 @@ "weight": 82, "matchCount": 2, "visibleCount": 2, - "elapsedMs": 7 + "elapsedMs": 6 }, { "strategy": "href", @@ -3047,8 +3047,8 @@ "retryCount": 0 }, "before": { - "at": 1455, - "url": "http://127.0.0.1:37223/#/login", + "at": 1457, + "url": "http://127.0.0.1:37233/#/login", "title": "Conduit", "domHash": "c659be8900b0e706", "canaryPresent": false, @@ -3104,8 +3104,8 @@ } }, "beforeAction": { - "at": 1464, - "url": "http://127.0.0.1:37223/#/login", + "at": 1465, + "url": "http://127.0.0.1:37233/#/login", "title": "Conduit", "domHash": "c659be8900b0e706", "canaryPresent": false, @@ -3163,8 +3163,8 @@ "networkSettled": true, "targetBusyAfter": false, "after": { - "at": 2485, - "url": "http://127.0.0.1:37223/#/", + "at": 2461, + "url": "http://127.0.0.1:37233/#/", "title": "Conduit", "domHash": "3c44d4d1ff59317a", "canaryPresent": false, @@ -3201,7 +3201,7 @@ "indexedDb": [] } }, - "trace": "traces/97381194cc19.zip", + "trace": "traces/392117f7deb4.zip", "snapshotIndex": "snapshots/RD-007.index.json" }, "verdict": "VERIFIED", @@ -3212,8 +3212,8 @@ { "id": "RD-008", "action": { - "id": "545fb8d98a00", - "pageUrl": "http://127.0.0.1:37223/#/login", + "id": "08384ebe708a", + "pageUrl": "http://127.0.0.1:37233/#/login", "label": "Home", "activation": "click", "kind": "navigation", @@ -3226,7 +3226,7 @@ "role": "link", "accessibleName": "Home", "text": "Home", - "href": "http://127.0.0.1:37223/#/", + "href": "http://127.0.0.1:37233/#/", "candidates": [ { "strategy": "role", @@ -3245,7 +3245,7 @@ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37223/#/" + "value": "http://127.0.0.1:37233/#/" }, { "strategy": "text", @@ -3263,31 +3263,31 @@ "fields": [] }, "evidence": { - "startedAt": "2026-07-26T12:10:54.113Z", - "durationMs": 2460, - "canary": "RD_TEST_FCB9BF", + "startedAt": "2026-07-26T14:07:10.411Z", + "durationMs": 2464, + "canary": "RD_TEST_96B6BE", "network": [ { "id": "net-1", "method": "GET", - "url": "http://127.0.0.1:37223/api/articles?limit=3&&offset=0", + "url": "http://127.0.0.1:37233/api/articles?limit=3&&offset=0", "resourceType": "xhr", - "startedAt": 1493, + "startedAt": 1484, "status": 200, "ok": true, + "finishedAt": 1495, "contentType": "application/json", - "resourceTypeHint": "articles", - "finishedAt": 1498 + "resourceTypeHint": "articles" }, { "id": "net-2", "method": "GET", - "url": "http://127.0.0.1:37223/api/tags", + "url": "http://127.0.0.1:37233/api/tags", "resourceType": "xhr", - "startedAt": 1494, + "startedAt": 1484, "status": 200, "ok": true, - "finishedAt": 1499, + "finishedAt": 1495, "contentType": "application/json", "resourceTypeHint": "tags" } @@ -3323,8 +3323,8 @@ "retryCount": 0 }, "before": { - "at": 1454, - "url": "http://127.0.0.1:37223/#/login", + "at": 1432, + "url": "http://127.0.0.1:37233/#/login", "title": "Conduit", "domHash": "c659be8900b0e706", "canaryPresent": false, @@ -3380,8 +3380,8 @@ } }, "beforeAction": { - "at": 1464, - "url": "http://127.0.0.1:37223/#/login", + "at": 1442, + "url": "http://127.0.0.1:37233/#/login", "title": "Conduit", "domHash": "c659be8900b0e706", "canaryPresent": false, @@ -3439,8 +3439,8 @@ "networkSettled": true, "targetBusyAfter": false, "after": { - "at": 2457, - "url": "http://127.0.0.1:37223/#/", + "at": 2460, + "url": "http://127.0.0.1:37233/#/", "title": "Conduit", "domHash": "3c44d4d1ff59317a", "canaryPresent": false, @@ -3477,7 +3477,7 @@ "indexedDb": [] } }, - "trace": "traces/545fb8d98a00.zip", + "trace": "traces/08384ebe708a.zip", "snapshotIndex": "snapshots/RD-008.index.json" }, "verdict": "VERIFIED", @@ -3488,8 +3488,8 @@ { "id": "RD-009", "action": { - "id": "ac0e58264fcd", - "pageUrl": "http://127.0.0.1:37223/#/login", + "id": "b906a2b18d91", + "pageUrl": "http://127.0.0.1:37233/#/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:37223/#/register", + "href": "http://127.0.0.1:37233/#/register", "candidates": [ { "strategy": "role", @@ -3521,7 +3521,7 @@ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37223/#/register" + "value": "http://127.0.0.1:37233/#/register" }, { "strategy": "text", @@ -3539,9 +3539,9 @@ "fields": [] }, "evidence": { - "startedAt": "2026-07-26T12:10:56.623Z", - "durationMs": 2477, - "canary": "RD_TEST_DFE794", + "startedAt": "2026-07-26T14:07:12.923Z", + "durationMs": 2489, + "canary": "RD_TEST_616A24", "network": [], "console": [], "pageErrors": [], @@ -3559,7 +3559,7 @@ "weight": 92, "matchCount": 1, "visibleCount": 1, - "elapsedMs": 6 + "elapsedMs": 5 } ], "chosenStrategy": "role", @@ -3567,8 +3567,8 @@ "retryCount": 0 }, "before": { - "at": 1462, - "url": "http://127.0.0.1:37223/#/login", + "at": 1472, + "url": "http://127.0.0.1:37233/#/login", "title": "Conduit", "domHash": "c659be8900b0e706", "canaryPresent": false, @@ -3624,8 +3624,8 @@ } }, "beforeAction": { - "at": 1471, - "url": "http://127.0.0.1:37223/#/login", + "at": 1481, + "url": "http://127.0.0.1:37233/#/login", "title": "Conduit", "domHash": "c659be8900b0e706", "canaryPresent": false, @@ -3683,8 +3683,8 @@ "networkSettled": true, "targetBusyAfter": false, "after": { - "at": 2473, - "url": "http://127.0.0.1:37223/#/register", + "at": 2485, + "url": "http://127.0.0.1:37233/#/register", "title": "Conduit", "domHash": "1f4fa65964895f4c", "canaryPresent": false, @@ -3748,7 +3748,7 @@ "indexedDb": [] } }, - "trace": "traces/ac0e58264fcd.zip", + "trace": "traces/b906a2b18d91.zip", "snapshotIndex": "snapshots/RD-009.index.json" }, "verdict": "VERIFIED", @@ -3759,8 +3759,8 @@ { "id": "RD-010", "action": { - "id": "112eec96f4d0", - "pageUrl": "http://127.0.0.1:37223/#/login", + "id": "93d717301073", + "pageUrl": "http://127.0.0.1:37233/#/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:37223/#/register", + "href": "http://127.0.0.1:37233/#/register", "candidates": [ { "strategy": "role", @@ -3792,7 +3792,7 @@ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37223/#/register" + "value": "http://127.0.0.1:37233/#/register" }, { "strategy": "text", @@ -3810,9 +3810,9 @@ "fields": [] }, "evidence": { - "startedAt": "2026-07-26T12:10:59.140Z", - "durationMs": 2462, - "canary": "RD_TEST_55D796", + "startedAt": "2026-07-26T14:07:15.454Z", + "durationMs": 2450, + "canary": "RD_TEST_E1EFD4", "network": [], "console": [], "pageErrors": [], @@ -3830,7 +3830,7 @@ "weight": 92, "matchCount": 1, "visibleCount": 1, - "elapsedMs": 6 + "elapsedMs": 5 } ], "chosenStrategy": "role", @@ -3838,8 +3838,8 @@ "retryCount": 0 }, "before": { - "at": 1447, - "url": "http://127.0.0.1:37223/#/login", + "at": 1440, + "url": "http://127.0.0.1:37233/#/login", "title": "Conduit", "domHash": "c659be8900b0e706", "canaryPresent": false, @@ -3895,8 +3895,8 @@ } }, "beforeAction": { - "at": 1455, - "url": "http://127.0.0.1:37223/#/login", + "at": 1449, + "url": "http://127.0.0.1:37233/#/login", "title": "Conduit", "domHash": "c659be8900b0e706", "canaryPresent": false, @@ -3954,8 +3954,8 @@ "networkSettled": true, "targetBusyAfter": false, "after": { - "at": 2458, - "url": "http://127.0.0.1:37223/#/register", + "at": 2446, + "url": "http://127.0.0.1:37233/#/register", "title": "Conduit", "domHash": "1f4fa65964895f4c", "canaryPresent": false, @@ -4019,7 +4019,7 @@ "indexedDb": [] } }, - "trace": "traces/112eec96f4d0.zip", + "trace": "traces/93d717301073.zip", "snapshotIndex": "snapshots/RD-010.index.json" }, "verdict": "VERIFIED", @@ -4030,8 +4030,8 @@ { "id": "RD-011", "action": { - "id": "6063811d0486", - "pageUrl": "http://127.0.0.1:37223/#/login", + "id": "813251d6087a", + "pageUrl": "http://127.0.0.1:37233/#/login", "label": "Login", "activation": "submit", "kind": "mutation", @@ -4080,20 +4080,20 @@ ] }, "evidence": { - "startedAt": "2026-07-26T12:11:01.787Z", - "durationMs": 6921, - "canary": "RD_TEST_BF941C", + "startedAt": "2026-07-26T14:07:18.031Z", + "durationMs": 6786, + "canary": "RD_TEST_E2263C", "network": [ { "id": "net-1", "method": "POST", - "url": "http://127.0.0.1:37223/api/users/login", + "url": "http://127.0.0.1:37233/api/users/login", "resourceType": "xhr", - "startedAt": 1538, + "startedAt": 1563, "status": 404, "ok": false, "contentType": "application/json", - "finishedAt": 1556, + "finishedAt": 1610, "resourceTypeHint": "login" }, { @@ -4101,34 +4101,34 @@ "method": "GET", "url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwlxdu.woff2", "resourceType": "font", - "startedAt": 1566, + "startedAt": 1614, "status": 200, "ok": true, - "finishedAt": 1611, + "finishedAt": 1659, "contentType": "font/woff2", "resourceTypeHint": "6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwlxdu.woff2" }, { "id": "net-3", "method": "GET", - "url": "http://127.0.0.1:37223/", + "url": "http://127.0.0.1:37233/", "resourceType": "document", - "startedAt": 2584, + "startedAt": 2625, "status": 200, "ok": true, "contentType": "text/html", "resourceTypeHint": "resource", - "finishedAt": 2592 + "finishedAt": 2633 }, { "id": "net-4", "method": "GET", "url": "http://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css", "resourceType": "stylesheet", - "startedAt": 2590, + "startedAt": 2631, "status": 307, "ok": false, - "finishedAt": 2594, + "finishedAt": 2634, "location": "https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css", "resourceTypeHint": "ionicons.min.css" }, @@ -4137,58 +4137,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": 2590, + "startedAt": 2632, "status": 200, "ok": true, - "finishedAt": 2630, + "finishedAt": 2671, "contentType": "text/css", "resourceTypeHint": "css" }, { "id": "net-6", "method": "GET", - "url": "http://127.0.0.1:37223/assets/index-CLdavoKn.js", + "url": "http://127.0.0.1:37233/assets/index-CLdavoKn.js", "resourceType": "script", - "startedAt": 2591, + "startedAt": 2632, "status": 200, "ok": true, - "finishedAt": 2603, + "finishedAt": 2645, "contentType": "text/javascript", "resourceTypeHint": "index-CLdavoKn.js" }, { "id": "net-7", "method": "GET", - "url": "http://127.0.0.1:37223/assets/index-De1Lwdlm.css", + "url": "http://127.0.0.1:37233/assets/index-De1Lwdlm.css", "resourceType": "stylesheet", - "startedAt": 2591, + "startedAt": 2632, "status": 200, "ok": true, + "finishedAt": 2637, "contentType": "text/css", - "resourceTypeHint": "index-De1Lwdlm.css", - "finishedAt": 2597 + "resourceTypeHint": "index-De1Lwdlm.css" }, { "id": "net-8", "method": "GET", "url": "https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css", "resourceType": "stylesheet", - "startedAt": 2594, + "startedAt": 2634, "status": 200, "ok": true, - "finishedAt": 2892, "contentType": "text/css", - "resourceTypeHint": "ionicons.min.css" + "resourceTypeHint": "ionicons.min.css", + "finishedAt": 2790 }, { "id": "net-9", "method": "GET", "url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdu.woff2", "resourceType": "font", - "startedAt": 2899, + "startedAt": 2798, "status": 200, "ok": true, - "finishedAt": 2949, + "finishedAt": 2844, "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": 2900, + "startedAt": 2798, "status": 200, "ok": true, - "finishedAt": 3005, + "finishedAt": 2976, "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": 2901, + "startedAt": 2799, "status": 200, "ok": true, - "finishedAt": 2946, + "finishedAt": 2844, "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": 2901, + "startedAt": 2799, "status": 200, "ok": true, - "finishedAt": 2945, + "finishedAt": 2845, "contentType": "font/woff2", "resourceTypeHint": "6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7nsDI.woff2" }, { "id": "net-13", "method": "GET", - "url": "http://127.0.0.1:37223/", + "url": "http://127.0.0.1:37233/", "resourceType": "document", - "startedAt": 3730, + "startedAt": 3626, "status": 200, "ok": true, "contentType": "text/html", "resourceTypeHint": "resource", - "finishedAt": 3738 + "finishedAt": 3633 }, { "id": "net-14", "method": "GET", "url": "http://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css", "resourceType": "stylesheet", - "startedAt": 3736, + "startedAt": 3631, "status": 307, "ok": false, - "finishedAt": 3739, + "finishedAt": 3634, "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": 3737, + "startedAt": 3632, "status": 200, "ok": true, - "finishedAt": 3782, "contentType": "text/css", - "resourceTypeHint": "css" + "resourceTypeHint": "css", + "finishedAt": 3682 }, { "id": "net-16", "method": "GET", - "url": "http://127.0.0.1:37223/assets/index-CLdavoKn.js", + "url": "http://127.0.0.1:37233/assets/index-CLdavoKn.js", "resourceType": "script", - "startedAt": 3737, + "startedAt": 3632, "status": 200, "ok": true, - "finishedAt": 3751, + "finishedAt": 3644, "contentType": "text/javascript", "resourceTypeHint": "index-CLdavoKn.js" }, { "id": "net-17", "method": "GET", - "url": "http://127.0.0.1:37223/assets/index-De1Lwdlm.css", + "url": "http://127.0.0.1:37233/assets/index-De1Lwdlm.css", "resourceType": "stylesheet", - "startedAt": 3737, + "startedAt": 3632, "status": 200, "ok": true, + "finishedAt": 3637, "contentType": "text/css", - "resourceTypeHint": "index-De1Lwdlm.css", - "finishedAt": 3743 + "resourceTypeHint": "index-De1Lwdlm.css" }, { "id": "net-18", "method": "GET", "url": "https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css", "resourceType": "stylesheet", - "startedAt": 3739, + "startedAt": 3634, "status": 200, "ok": true, - "finishedAt": 3821, "contentType": "text/css", - "resourceTypeHint": "ionicons.min.css" + "resourceTypeHint": "ionicons.min.css", + "finishedAt": 3713 }, { "id": "net-19", "method": "GET", "url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdu.woff2", "resourceType": "font", - "startedAt": 3829, + "startedAt": 3721, "status": 200, "ok": true, - "finishedAt": 3875, + "finishedAt": 3768, "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": 3830, + "startedAt": 3722, "status": 200, "ok": true, - "finishedAt": 3936, + "finishedAt": 3840, "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": 3831, + "startedAt": 3722, "status": 200, "ok": true, - "finishedAt": 3877, + "finishedAt": 3768, "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": 3831, + "startedAt": 3722, "status": 200, "ok": true, - "finishedAt": 3876, + "finishedAt": 3767, "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": 1554 + "at": 1608 } ], "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_bf941c_1@example.test", + "value": "rd-rd_test_e2263c_1@example.test", "redacted": false }, { @@ -4407,8 +4407,8 @@ "retryCount": 0 }, "before": { - "at": 1456, - "url": "http://127.0.0.1:37223/#/login", + "at": 1480, + "url": "http://127.0.0.1:37233/#/login", "title": "Conduit", "domHash": "c659be8900b0e706", "canaryPresent": false, @@ -4546,10 +4546,10 @@ ] }, "beforeAction": { - "at": 1491, - "url": "http://127.0.0.1:37223/#/login", + "at": 1513, + "url": "http://127.0.0.1:37233/#/login", "title": "Conduit", - "domHash": "9d6e0a6267c1a93c", + "domHash": "bfcfa645647efde1", "canaryPresent": true, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -4569,7 +4569,7 @@ "tag": "input", "type": "email", "name": "email", - "valueHash": "77823b680469c7c5", + "valueHash": "e672b37db4c7d5ba", "checked": false, "disabled": false, "visible": true @@ -4606,10 +4606,10 @@ "networkSettled": true, "targetBusyAfter": false, "after": { - "at": 2577, - "url": "http://127.0.0.1:37223/#/login", + "at": 2620, + "url": "http://127.0.0.1:37233/#/login", "title": "Conduit", - "domHash": "7a2c53603b8c376f", + "domHash": "adfe3a2a72fe790a", "canaryPresent": true, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -4629,7 +4629,7 @@ "tag": "input", "type": "email", "name": "email", - "valueHash": "77823b680469c7c5", + "valueHash": "e672b37db4c7d5ba", "checked": false, "disabled": false, "visible": true @@ -4745,8 +4745,8 @@ ] }, "afterRefresh": { - "at": 3726, - "url": "http://127.0.0.1:37223/#/login", + "at": 3623, + "url": "http://127.0.0.1:37233/#/login", "title": "Conduit", "domHash": "c659be8900b0e706", "canaryPresent": false, @@ -4802,8 +4802,8 @@ } }, "afterHardRefresh": { - "at": 4647, - "url": "http://127.0.0.1:37223/#/login", + "at": 4536, + "url": "http://127.0.0.1:37233/#/login", "title": "Conduit", "domHash": "c659be8900b0e706", "canaryPresent": false, @@ -4859,8 +4859,8 @@ } }, "afterNewTab": { - "at": 5656, - "url": "http://127.0.0.1:37223/#/login", + "at": 5529, + "url": "http://127.0.0.1:37233/#/login", "title": "Conduit", "domHash": "c659be8900b0e706", "canaryPresent": false, @@ -4916,8 +4916,8 @@ } }, "afterNewContext": { - "at": 6918, - "url": "http://127.0.0.1:37223/#/login", + "at": 6784, + "url": "http://127.0.0.1:37233/#/login", "title": "Conduit", "domHash": "c659be8900b0e706", "canaryPresent": false, @@ -5030,8 +5030,8 @@ { "id": "RD-012", "action": { - "id": "d04cd10dca74", - "pageUrl": "http://127.0.0.1:37223/#/login", + "id": "20a5828e78ae", + "pageUrl": "http://127.0.0.1:37233/#/login", "label": "conduit", "activation": "click", "kind": "navigation", @@ -5044,7 +5044,7 @@ "role": "link", "accessibleName": "conduit", "text": "conduit", - "href": "http://127.0.0.1:37223/#/", + "href": "http://127.0.0.1:37233/#/", "candidates": [ { "strategy": "role", @@ -5063,7 +5063,7 @@ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37223/#/" + "value": "http://127.0.0.1:37233/#/" }, { "strategy": "text", @@ -5081,31 +5081,31 @@ "fields": [] }, "evidence": { - "startedAt": "2026-07-26T12:11:08.795Z", - "durationMs": 2503, - "canary": "RD_TEST_37D25A", + "startedAt": "2026-07-26T14:07:24.922Z", + "durationMs": 2511, + "canary": "RD_TEST_086E22", "network": [ { "id": "net-1", "method": "GET", - "url": "http://127.0.0.1:37223/api/articles?limit=3&&offset=0", + "url": "http://127.0.0.1:37233/api/articles?limit=3&&offset=0", "resourceType": "xhr", - "startedAt": 1541, + "startedAt": 1536, "status": 200, "ok": true, - "finishedAt": 1550, "contentType": "application/json", - "resourceTypeHint": "articles" + "resourceTypeHint": "articles", + "finishedAt": 1543 }, { "id": "net-2", "method": "GET", - "url": "http://127.0.0.1:37223/api/tags", + "url": "http://127.0.0.1:37233/api/tags", "resourceType": "xhr", - "startedAt": 1542, + "startedAt": 1537, "status": 200, "ok": true, - "finishedAt": 1550, + "finishedAt": 1544, "contentType": "application/json", "resourceTypeHint": "tags" } @@ -5126,14 +5126,14 @@ "weight": 92, "matchCount": 2, "visibleCount": 2, - "elapsedMs": 8 + "elapsedMs": 7 }, { "strategy": "role", "weight": 82, "matchCount": 2, "visibleCount": 2, - "elapsedMs": 7 + "elapsedMs": 6 }, { "strategy": "href", @@ -5162,8 +5162,8 @@ "retryCount": 0 }, "before": { - "at": 1490, - "url": "http://127.0.0.1:37223/#/login", + "at": 1496, + "url": "http://127.0.0.1:37233/#/login", "title": "Conduit", "domHash": "c659be8900b0e706", "canaryPresent": false, @@ -5219,8 +5219,8 @@ } }, "beforeAction": { - "at": 1502, - "url": "http://127.0.0.1:37223/#/login", + "at": 1504, + "url": "http://127.0.0.1:37233/#/login", "title": "Conduit", "domHash": "c659be8900b0e706", "canaryPresent": false, @@ -5278,8 +5278,8 @@ "networkSettled": true, "targetBusyAfter": false, "after": { - "at": 2499, - "url": "http://127.0.0.1:37223/#/", + "at": 2507, + "url": "http://127.0.0.1:37233/#/", "title": "Conduit", "domHash": "3c44d4d1ff59317a", "canaryPresent": false, @@ -5316,7 +5316,7 @@ "indexedDb": [] } }, - "trace": "traces/d04cd10dca74.zip", + "trace": "traces/20a5828e78ae.zip", "snapshotIndex": "snapshots/RD-012.index.json" }, "verdict": "VERIFIED", @@ -5327,8 +5327,8 @@ { "id": "RD-013", "action": { - "id": "44108ba71372", - "pageUrl": "http://127.0.0.1:37223/#/register", + "id": "5f1e2f74a545", + "pageUrl": "http://127.0.0.1:37233/#/register", "label": "conduit", "activation": "click", "kind": "navigation", @@ -5341,7 +5341,7 @@ "role": "link", "accessibleName": "conduit", "text": "conduit", - "href": "http://127.0.0.1:37223/#/", + "href": "http://127.0.0.1:37233/#/", "candidates": [ { "strategy": "role", @@ -5360,7 +5360,7 @@ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37223/#/" + "value": "http://127.0.0.1:37233/#/" }, { "strategy": "text", @@ -5378,31 +5378,31 @@ "fields": [] }, "evidence": { - "startedAt": "2026-07-26T12:11:11.352Z", - "durationMs": 2472, - "canary": "RD_TEST_DD3DB1", + "startedAt": "2026-07-26T14:07:27.480Z", + "durationMs": 2482, + "canary": "RD_TEST_CF81DC", "network": [ { "id": "net-1", "method": "GET", - "url": "http://127.0.0.1:37223/api/articles?limit=3&&offset=0", + "url": "http://127.0.0.1:37233/api/articles?limit=3&&offset=0", "resourceType": "xhr", - "startedAt": 1534, + "startedAt": 1504, "status": 200, "ok": true, - "finishedAt": 1544, + "finishedAt": 1513, "contentType": "application/json", "resourceTypeHint": "articles" }, { "id": "net-2", "method": "GET", - "url": "http://127.0.0.1:37223/api/tags", + "url": "http://127.0.0.1:37233/api/tags", "resourceType": "xhr", - "startedAt": 1535, + "startedAt": 1505, "status": 200, "ok": true, - "finishedAt": 1542, + "finishedAt": 1511, "contentType": "application/json", "resourceTypeHint": "tags" } @@ -5423,7 +5423,7 @@ "weight": 92, "matchCount": 2, "visibleCount": 2, - "elapsedMs": 9 + "elapsedMs": 8 }, { "strategy": "role", @@ -5444,7 +5444,7 @@ "weight": 60, "matchCount": 2, "visibleCount": 2, - "elapsedMs": 7 + "elapsedMs": 5 }, { "strategy": "css", @@ -5459,8 +5459,8 @@ "retryCount": 0 }, "before": { - "at": 1485, - "url": "http://127.0.0.1:37223/#/register", + "at": 1468, + "url": "http://127.0.0.1:37233/#/register", "title": "Conduit", "domHash": "1f4fa65964895f4c", "canaryPresent": false, @@ -5525,8 +5525,8 @@ } }, "beforeAction": { - "at": 1495, - "url": "http://127.0.0.1:37223/#/register", + "at": 1477, + "url": "http://127.0.0.1:37233/#/register", "title": "Conduit", "domHash": "1f4fa65964895f4c", "canaryPresent": false, @@ -5593,8 +5593,8 @@ "networkSettled": true, "targetBusyAfter": false, "after": { - "at": 2468, - "url": "http://127.0.0.1:37223/#/", + "at": 2478, + "url": "http://127.0.0.1:37233/#/", "title": "Conduit", "domHash": "3c44d4d1ff59317a", "canaryPresent": false, @@ -5631,7 +5631,7 @@ "indexedDb": [] } }, - "trace": "traces/44108ba71372.zip", + "trace": "traces/5f1e2f74a545.zip", "snapshotIndex": "snapshots/RD-013.index.json" }, "verdict": "VERIFIED", @@ -5642,8 +5642,8 @@ { "id": "RD-014", "action": { - "id": "54a211837ad5", - "pageUrl": "http://127.0.0.1:37223/#/register", + "id": "9e58c0cdfcb5", + "pageUrl": "http://127.0.0.1:37233/#/register", "label": "Home", "activation": "click", "kind": "navigation", @@ -5656,7 +5656,7 @@ "role": "link", "accessibleName": "Home", "text": "Home", - "href": "http://127.0.0.1:37223/#/", + "href": "http://127.0.0.1:37233/#/", "candidates": [ { "strategy": "role", @@ -5675,7 +5675,7 @@ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37223/#/" + "value": "http://127.0.0.1:37233/#/" }, { "strategy": "text", @@ -5693,33 +5693,33 @@ "fields": [] }, "evidence": { - "startedAt": "2026-07-26T12:11:13.878Z", - "durationMs": 2450, - "canary": "RD_TEST_DA3D37", + "startedAt": "2026-07-26T14:07:30.003Z", + "durationMs": 2430, + "canary": "RD_TEST_63C0D1", "network": [ { "id": "net-1", "method": "GET", - "url": "http://127.0.0.1:37223/api/articles?limit=3&&offset=0", + "url": "http://127.0.0.1:37233/api/articles?limit=3&&offset=0", "resourceType": "xhr", - "startedAt": 1494, + "startedAt": 1456, "status": 200, "ok": true, - "finishedAt": 1501, + "finishedAt": 1462, "contentType": "application/json", "resourceTypeHint": "articles" }, { "id": "net-2", "method": "GET", - "url": "http://127.0.0.1:37223/api/tags", + "url": "http://127.0.0.1:37233/api/tags", "resourceType": "xhr", - "startedAt": 1495, + "startedAt": 1457, "status": 200, "ok": true, - "finishedAt": 1500, "contentType": "application/json", - "resourceTypeHint": "tags" + "resourceTypeHint": "tags", + "finishedAt": 1462 } ], "console": [], @@ -5745,7 +5745,7 @@ "weight": 82, "matchCount": 1, "visibleCount": 1, - "elapsedMs": 5 + "elapsedMs": 4 } ], "chosenStrategy": "role", @@ -5753,8 +5753,8 @@ "retryCount": 0 }, "before": { - "at": 1447, - "url": "http://127.0.0.1:37223/#/register", + "at": 1411, + "url": "http://127.0.0.1:37233/#/register", "title": "Conduit", "domHash": "1f4fa65964895f4c", "canaryPresent": false, @@ -5819,8 +5819,8 @@ } }, "beforeAction": { - "at": 1456, - "url": "http://127.0.0.1:37223/#/register", + "at": 1420, + "url": "http://127.0.0.1:37233/#/register", "title": "Conduit", "domHash": "1f4fa65964895f4c", "canaryPresent": false, @@ -5887,8 +5887,8 @@ "networkSettled": true, "targetBusyAfter": false, "after": { - "at": 2446, - "url": "http://127.0.0.1:37223/#/", + "at": 2427, + "url": "http://127.0.0.1:37233/#/", "title": "Conduit", "domHash": "3c44d4d1ff59317a", "canaryPresent": false, @@ -5925,7 +5925,7 @@ "indexedDb": [] } }, - "trace": "traces/54a211837ad5.zip", + "trace": "traces/9e58c0cdfcb5.zip", "snapshotIndex": "snapshots/RD-014.index.json" }, "verdict": "VERIFIED", @@ -5936,8 +5936,8 @@ { "id": "RD-015", "action": { - "id": "8aa975887dd0", - "pageUrl": "http://127.0.0.1:37223/#/register", + "id": "84cea636280e", + "pageUrl": "http://127.0.0.1:37233/#/register", "label": "Login", "activation": "click", "kind": "navigation", @@ -5950,7 +5950,7 @@ "role": "link", "accessibleName": "Login", "text": "Login", - "href": "http://127.0.0.1:37223/#/login", + "href": "http://127.0.0.1:37233/#/login", "candidates": [ { "strategy": "role", @@ -5969,7 +5969,7 @@ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37223/#/login" + "value": "http://127.0.0.1:37233/#/login" }, { "strategy": "text", @@ -5987,9 +5987,9 @@ "fields": [] }, "evidence": { - "startedAt": "2026-07-26T12:11:16.380Z", - "durationMs": 2421, - "canary": "RD_TEST_D4ADFC", + "startedAt": "2026-07-26T14:07:32.474Z", + "durationMs": 2469, + "canary": "RD_TEST_8F1187", "network": [], "console": [], "pageErrors": [], @@ -6007,7 +6007,7 @@ "weight": 92, "matchCount": 0, "visibleCount": 0, - "elapsedMs": 3 + "elapsedMs": 2 }, { "strategy": "role", @@ -6022,8 +6022,8 @@ "retryCount": 0 }, "before": { - "at": 1436, - "url": "http://127.0.0.1:37223/#/register", + "at": 1451, + "url": "http://127.0.0.1:37233/#/register", "title": "Conduit", "domHash": "1f4fa65964895f4c", "canaryPresent": false, @@ -6088,8 +6088,8 @@ } }, "beforeAction": { - "at": 1444, - "url": "http://127.0.0.1:37223/#/register", + "at": 1459, + "url": "http://127.0.0.1:37233/#/register", "title": "Conduit", "domHash": "1f4fa65964895f4c", "canaryPresent": false, @@ -6156,8 +6156,8 @@ "networkSettled": true, "targetBusyAfter": false, "after": { - "at": 2417, - "url": "http://127.0.0.1:37223/#/login", + "at": 2465, + "url": "http://127.0.0.1:37233/#/login", "title": "Conduit", "domHash": "c659be8900b0e706", "canaryPresent": false, @@ -6212,7 +6212,7 @@ "indexedDb": [] } }, - "trace": "traces/8aa975887dd0.zip", + "trace": "traces/84cea636280e.zip", "snapshotIndex": "snapshots/RD-015.index.json" }, "verdict": "VERIFIED", @@ -6223,8 +6223,8 @@ { "id": "RD-016", "action": { - "id": "f918c5327d24", - "pageUrl": "http://127.0.0.1:37223/#/register", + "id": "4e474a6f1a3e", + "pageUrl": "http://127.0.0.1:37233/#/register", "label": "Sign in to your account", "activation": "click", "kind": "navigation", @@ -6237,7 +6237,7 @@ "role": "link", "accessibleName": "Sign in to your account", "text": "Sign in to your account", - "href": "http://127.0.0.1:37223/#/login", + "href": "http://127.0.0.1:37233/#/login", "candidates": [ { "strategy": "role", @@ -6256,7 +6256,7 @@ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37223/#/login" + "value": "http://127.0.0.1:37233/#/login" }, { "strategy": "text", @@ -6274,9 +6274,9 @@ "fields": [] }, "evidence": { - "startedAt": "2026-07-26T12:11:18.843Z", - "durationMs": 2449, - "canary": "RD_TEST_36EBE3", + "startedAt": "2026-07-26T14:07:35.006Z", + "durationMs": 2504, + "canary": "RD_TEST_56343B", "network": [], "console": [], "pageErrors": [], @@ -6294,7 +6294,7 @@ "weight": 92, "matchCount": 1, "visibleCount": 1, - "elapsedMs": 5 + "elapsedMs": 6 } ], "chosenStrategy": "role", @@ -6302,8 +6302,8 @@ "retryCount": 0 }, "before": { - "at": 1436, - "url": "http://127.0.0.1:37223/#/register", + "at": 1493, + "url": "http://127.0.0.1:37233/#/register", "title": "Conduit", "domHash": "1f4fa65964895f4c", "canaryPresent": false, @@ -6368,8 +6368,8 @@ } }, "beforeAction": { - "at": 1445, - "url": "http://127.0.0.1:37223/#/register", + "at": 1502, + "url": "http://127.0.0.1:37233/#/register", "title": "Conduit", "domHash": "1f4fa65964895f4c", "canaryPresent": false, @@ -6436,8 +6436,8 @@ "networkSettled": true, "targetBusyAfter": false, "after": { - "at": 2445, - "url": "http://127.0.0.1:37223/#/login", + "at": 2500, + "url": "http://127.0.0.1:37233/#/login", "title": "Conduit", "domHash": "c659be8900b0e706", "canaryPresent": false, @@ -6492,7 +6492,7 @@ "indexedDb": [] } }, - "trace": "traces/f918c5327d24.zip", + "trace": "traces/4e474a6f1a3e.zip", "snapshotIndex": "snapshots/RD-016.index.json" }, "verdict": "VERIFIED", @@ -6503,8 +6503,8 @@ { "id": "RD-017", "action": { - "id": "02c10884e578", - "pageUrl": "http://127.0.0.1:37223/#/register", + "id": "32701b584bba", + "pageUrl": "http://127.0.0.1:37233/#/register", "label": "Sign up", "activation": "submit", "kind": "mutation", @@ -6561,79 +6561,79 @@ ] }, "evidence": { - "startedAt": "2026-07-26T12:11:21.378Z", - "durationMs": 6888, - "canary": "RD_TEST_01716F", + "startedAt": "2026-07-26T14:07:37.594Z", + "durationMs": 6772, + "canary": "RD_TEST_D3C056", "network": [ { "id": "net-1", "method": "POST", - "url": "http://127.0.0.1:37223/api/users", + "url": "http://127.0.0.1:37233/api/users", "resourceType": "xhr", - "startedAt": 1547, + "startedAt": 1533, "status": 201, "ok": true, - "finishedAt": 1612, + "finishedAt": 1595, "contentType": "application/json", "resourceTypeHint": "users" }, { "id": "net-2", "method": "GET", - "url": "http://127.0.0.1:37223/api/user", + "url": "http://127.0.0.1:37233/api/user", "resourceType": "xhr", - "startedAt": 1616, + "startedAt": 1599, "status": 200, "ok": true, - "finishedAt": 1622, + "finishedAt": 1604, "contentType": "application/json", "resourceTypeHint": "user" }, { "id": "net-3", "method": "GET", - "url": "http://127.0.0.1:37223/api/articles/feed?limit=3&&offset=0", + "url": "http://127.0.0.1:37233/api/articles/feed?limit=3&&offset=0", "resourceType": "xhr", - "startedAt": 1620, + "startedAt": 1601, "status": 200, "ok": true, - "finishedAt": 1628, + "finishedAt": 1609, "contentType": "application/json", "resourceTypeHint": "feed" }, { "id": "net-4", "method": "GET", - "url": "http://127.0.0.1:37223/api/tags", + "url": "http://127.0.0.1:37233/api/tags", "resourceType": "xhr", - "startedAt": 1621, + "startedAt": 1602, "status": 200, "ok": true, - "finishedAt": 1627, + "finishedAt": 1607, "contentType": "application/json", "resourceTypeHint": "tags" }, { "id": "net-5", "method": "GET", - "url": "http://127.0.0.1:37223/", + "url": "http://127.0.0.1:37233/", "resourceType": "document", - "startedAt": 2558, + "startedAt": 2588, "status": 200, "ok": true, "contentType": "text/html", "resourceTypeHint": "resource", - "finishedAt": 2566 + "finishedAt": 2596 }, { "id": "net-6", "method": "GET", "url": "http://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css", "resourceType": "stylesheet", - "startedAt": 2564, + "startedAt": 2594, "status": 307, "ok": false, - "finishedAt": 2567, + "finishedAt": 2597, "location": "https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css", "resourceTypeHint": "ionicons.min.css" }, @@ -6642,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": 2565, + "startedAt": 2595, "status": 200, "ok": true, - "finishedAt": 2602, + "finishedAt": 2633, "contentType": "text/css", "resourceTypeHint": "css" }, { "id": "net-8", "method": "GET", - "url": "http://127.0.0.1:37223/assets/index-CLdavoKn.js", + "url": "http://127.0.0.1:37233/assets/index-CLdavoKn.js", "resourceType": "script", - "startedAt": 2565, + "startedAt": 2595, "status": 200, "ok": true, - "finishedAt": 2578, + "finishedAt": 2608, "contentType": "text/javascript", "resourceTypeHint": "index-CLdavoKn.js" }, { "id": "net-9", "method": "GET", - "url": "http://127.0.0.1:37223/assets/index-De1Lwdlm.css", + "url": "http://127.0.0.1:37233/assets/index-De1Lwdlm.css", "resourceType": "stylesheet", - "startedAt": 2565, + "startedAt": 2595, "status": 200, "ok": true, - "finishedAt": 2571, + "finishedAt": 2600, "contentType": "text/css", "resourceTypeHint": "index-De1Lwdlm.css" }, @@ -6678,22 +6678,22 @@ "method": "GET", "url": "https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css", "resourceType": "stylesheet", - "startedAt": 2567, + "startedAt": 2597, "status": 200, "ok": true, - "finishedAt": 2815, "contentType": "text/css", - "resourceTypeHint": "ionicons.min.css" + "resourceTypeHint": "ionicons.min.css", + "finishedAt": 2751 }, { "id": "net-11", "method": "GET", "url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdu.woff2", "resourceType": "font", - "startedAt": 2825, + "startedAt": 2761, "status": 200, "ok": true, - "finishedAt": 2872, + "finishedAt": 2814, "contentType": "font/woff2", "resourceTypeHint": "6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdu.woff2" }, @@ -6702,10 +6702,10 @@ "method": "GET", "url": "https://code.ionicframework.com/ionicons/2.0.1/fonts/ionicons.ttf?v=2.0.1", "resourceType": "font", - "startedAt": 2825, + "startedAt": 2761, "status": 200, "ok": true, - "finishedAt": 2933, + "finishedAt": 2884, "contentType": "font/ttf", "resourceTypeHint": "ionicons.ttf" }, @@ -6714,10 +6714,10 @@ "method": "GET", "url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7l.woff2", "resourceType": "font", - "startedAt": 2826, + "startedAt": 2762, "status": 200, "ok": true, - "finishedAt": 2872, + "finishedAt": 2808, "contentType": "font/woff2", "resourceTypeHint": "6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7l.woff2" }, @@ -6726,70 +6726,70 @@ "method": "GET", "url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7nsDI.woff2", "resourceType": "font", - "startedAt": 2827, + "startedAt": 2763, "status": 200, "ok": true, - "finishedAt": 2873, + "finishedAt": 2809, "contentType": "font/woff2", "resourceTypeHint": "6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7nsDI.woff2" }, { "id": "net-15", "method": "GET", - "url": "http://127.0.0.1:37223/api/articles/feed?limit=3&&offset=0", + "url": "http://127.0.0.1:37233/api/articles/feed?limit=3&&offset=0", "resourceType": "xhr", - "startedAt": 2828, + "startedAt": 2764, "status": 200, "ok": true, - "finishedAt": 2836, + "finishedAt": 2772, "contentType": "application/json", "resourceTypeHint": "feed" }, { "id": "net-16", "method": "GET", - "url": "http://127.0.0.1:37223/api/tags", + "url": "http://127.0.0.1:37233/api/tags", "resourceType": "xhr", - "startedAt": 2828, + "startedAt": 2764, "status": 200, "ok": true, - "finishedAt": 2835, + "finishedAt": 2770, "contentType": "application/json", "resourceTypeHint": "tags" }, { "id": "net-17", "method": "GET", - "url": "http://127.0.0.1:37223/api/user", + "url": "http://127.0.0.1:37233/api/user", "resourceType": "xhr", - "startedAt": 2829, + "startedAt": 2764, "status": 200, "ok": true, - "finishedAt": 2836, + "finishedAt": 2771, "contentType": "application/json", "resourceTypeHint": "user" }, { "id": "net-18", "method": "GET", - "url": "http://127.0.0.1:37223/", + "url": "http://127.0.0.1:37233/", "resourceType": "document", - "startedAt": 3648, + "startedAt": 3584, "status": 200, "ok": true, "contentType": "text/html", "resourceTypeHint": "resource", - "finishedAt": 3656 + "finishedAt": 3592 }, { "id": "net-19", "method": "GET", "url": "http://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css", "resourceType": "stylesheet", - "startedAt": 3655, + "startedAt": 3589, "status": 307, "ok": false, - "finishedAt": 3658, + "finishedAt": 3592, "location": "https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css", "resourceTypeHint": "ionicons.min.css" }, @@ -6798,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": 3655, + "startedAt": 3590, "status": 200, "ok": true, - "finishedAt": 3694, + "finishedAt": 3631, "contentType": "text/css", "resourceTypeHint": "css" }, { "id": "net-21", "method": "GET", - "url": "http://127.0.0.1:37223/assets/index-CLdavoKn.js", + "url": "http://127.0.0.1:37233/assets/index-CLdavoKn.js", "resourceType": "script", - "startedAt": 3655, + "startedAt": 3591, "status": 200, "ok": true, - "finishedAt": 3669, + "finishedAt": 3602, "contentType": "text/javascript", "resourceTypeHint": "index-CLdavoKn.js" }, { "id": "net-22", "method": "GET", - "url": "http://127.0.0.1:37223/assets/index-De1Lwdlm.css", + "url": "http://127.0.0.1:37233/assets/index-De1Lwdlm.css", "resourceType": "stylesheet", - "startedAt": 3656, + "startedAt": 3591, "status": 200, "ok": true, + "finishedAt": 3596, "contentType": "text/css", - "resourceTypeHint": "index-De1Lwdlm.css", - "finishedAt": 3661 + "resourceTypeHint": "index-De1Lwdlm.css" }, { "id": "net-23", "method": "GET", "url": "https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css", "resourceType": "stylesheet", - "startedAt": 3658, + "startedAt": 3592, "status": 200, "ok": true, - "finishedAt": 3729, + "finishedAt": 3684, "contentType": "text/css", "resourceTypeHint": "ionicons.min.css" }, @@ -6846,10 +6846,10 @@ "method": "GET", "url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdu.woff2", "resourceType": "font", - "startedAt": 3739, + "startedAt": 3691, "status": 200, "ok": true, - "finishedAt": 3787, + "finishedAt": 3741, "contentType": "font/woff2", "resourceTypeHint": "6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdu.woff2" }, @@ -6858,22 +6858,22 @@ "method": "GET", "url": "https://code.ionicframework.com/ionicons/2.0.1/fonts/ionicons.ttf?v=2.0.1", "resourceType": "font", - "startedAt": 3740, + "startedAt": 3692, "status": 200, "ok": true, - "finishedAt": 3853, "contentType": "font/ttf", - "resourceTypeHint": "ionicons.ttf" + "resourceTypeHint": "ionicons.ttf", + "finishedAt": 3818 }, { "id": "net-26", "method": "GET", "url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7l.woff2", "resourceType": "font", - "startedAt": 3741, + "startedAt": 3692, "status": 200, "ok": true, - "finishedAt": 3789, + "finishedAt": 3739, "contentType": "font/woff2", "resourceTypeHint": "6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7l.woff2" }, @@ -6882,46 +6882,46 @@ "method": "GET", "url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7nsDI.woff2", "resourceType": "font", - "startedAt": 3741, + "startedAt": 3693, "status": 200, "ok": true, - "finishedAt": 3789, + "finishedAt": 3738, "contentType": "font/woff2", "resourceTypeHint": "6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7nsDI.woff2" }, { "id": "net-28", "method": "GET", - "url": "http://127.0.0.1:37223/api/articles/feed?limit=3&&offset=0", + "url": "http://127.0.0.1:37233/api/articles/feed?limit=3&&offset=0", "resourceType": "xhr", - "startedAt": 3743, + "startedAt": 3694, "status": 200, "ok": true, - "finishedAt": 3755, + "finishedAt": 3702, "contentType": "application/json", "resourceTypeHint": "feed" }, { "id": "net-29", "method": "GET", - "url": "http://127.0.0.1:37223/api/tags", + "url": "http://127.0.0.1:37233/api/tags", "resourceType": "xhr", - "startedAt": 3744, + "startedAt": 3695, "status": 200, "ok": true, "contentType": "application/json", "resourceTypeHint": "tags", - "finishedAt": 3752 + "finishedAt": 3701 }, { "id": "net-30", "method": "GET", - "url": "http://127.0.0.1:37223/api/user", + "url": "http://127.0.0.1:37233/api/user", "resourceType": "xhr", - "startedAt": 3744, + "startedAt": 3695, "status": 200, "ok": true, - "finishedAt": 3752, + "finishedAt": 3701, "contentType": "application/json", "resourceTypeHint": "user" } @@ -6934,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_01716F_1", + "value": "RD_TEST_D3C056_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_01716f_2@example.test", + "value": "rd-rd_test_d3c056_2@example.test", "redacted": false }, { @@ -6970,14 +6970,14 @@ "weight": 60, "matchCount": 3, "visibleCount": 3, - "elapsedMs": 8 + "elapsedMs": 9 }, { "strategy": "css", "weight": 35, "matchCount": 1, "visibleCount": 1, - "elapsedMs": 5 + "elapsedMs": 3 } ], "chosenStrategy": "css", @@ -6986,7 +6986,7 @@ }, "before": { "at": 1446, - "url": "http://127.0.0.1:37223/#/register", + "url": "http://127.0.0.1:37233/#/register", "title": "Conduit", "domHash": "1f4fa65964895f4c", "canaryPresent": false, @@ -7133,10 +7133,10 @@ ] }, "beforeAction": { - "at": 1491, - "url": "http://127.0.0.1:37223/#/register", + "at": 1488, + "url": "http://127.0.0.1:37233/#/register", "title": "Conduit", - "domHash": "f7e37a17967a1252", + "domHash": "b9159dafc3ee9e48", "canaryPresent": true, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -7156,7 +7156,7 @@ "tag": "input", "type": "text", "name": "username", - "valueHash": "8450b5b7333cbf6c", + "valueHash": "c0868b05a741290d", "checked": false, "disabled": false, "visible": true @@ -7165,7 +7165,7 @@ "tag": "input", "type": "email", "name": "email", - "valueHash": "f0cdb63ef3fb8771", + "valueHash": "4364263abb6579c3", "checked": false, "disabled": false, "visible": true @@ -7201,10 +7201,10 @@ "targetDisabledAfter": false, "networkSettled": true, "after": { - "at": 2552, - "url": "http://127.0.0.1:37223/#/", + "at": 2583, + "url": "http://127.0.0.1:37233/#/", "title": "Conduit", - "domHash": "8b2e58fe2316a8ae", + "domHash": "dec60dfe03ee8f3c", "canaryPresent": true, "bodyCanaryPresent": true, "temporaryBlobUrls": 0, @@ -7216,9 +7216,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "fe51bea8e4825cf7", + "textHash": "191c19b8bb8c695a", "visualHash": "dfad2167a8f7c17f", - "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", + "text": "conduit Source code Home New Article RD_TEST_D3C056_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", @@ -7242,7 +7242,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "ff9e6e4f40f223eb", + "valueHash": "e9a259c18ee9acb9", "containsCanary": true } ], @@ -7291,7 +7291,7 @@ }, { "keyHash": "2766c815d1c00dbe", - "rowHash": "2eb93efc98f08969", + "rowHash": "8eb7baae4f7f0c5b", "softDeleted": false } ], @@ -7336,7 +7336,7 @@ }, { "keyHash": "2766c815d1c00dbe", - "rowHash": "2eb93efc98f08969", + "rowHash": "8eb7baae4f7f0c5b", "softDeleted": false } ], @@ -7345,10 +7345,10 @@ ] }, "afterRefresh": { - "at": 3645, - "url": "http://127.0.0.1:37223/#/", + "at": 3581, + "url": "http://127.0.0.1:37233/#/", "title": "Conduit", - "domHash": "8b2e58fe2316a8ae", + "domHash": "dec60dfe03ee8f3c", "canaryPresent": true, "bodyCanaryPresent": true, "temporaryBlobUrls": 0, @@ -7360,9 +7360,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "fe51bea8e4825cf7", + "textHash": "191c19b8bb8c695a", "visualHash": "dfad2167a8f7c17f", - "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", + "text": "conduit Source code Home New Article RD_TEST_D3C056_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", @@ -7386,7 +7386,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "ff9e6e4f40f223eb", + "valueHash": "e9a259c18ee9acb9", "containsCanary": true } ], @@ -7397,10 +7397,10 @@ } }, "afterHardRefresh": { - "at": 4563, - "url": "http://127.0.0.1:37223/#/", + "at": 4514, + "url": "http://127.0.0.1:37233/#/", "title": "Conduit", - "domHash": "8b2e58fe2316a8ae", + "domHash": "dec60dfe03ee8f3c", "canaryPresent": true, "bodyCanaryPresent": true, "temporaryBlobUrls": 0, @@ -7412,9 +7412,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "fe51bea8e4825cf7", + "textHash": "191c19b8bb8c695a", "visualHash": "dfad2167a8f7c17f", - "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", + "text": "conduit Source code Home New Article RD_TEST_D3C056_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", @@ -7438,7 +7438,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "ff9e6e4f40f223eb", + "valueHash": "e9a259c18ee9acb9", "containsCanary": true } ], @@ -7449,10 +7449,10 @@ } }, "afterNewTab": { - "at": 5557, - "url": "http://127.0.0.1:37223/#/register", + "at": 5511, + "url": "http://127.0.0.1:37233/#/register", "title": "Conduit", - "domHash": "b014a878f9592542", + "domHash": "525fb0a86a9da2b6", "canaryPresent": true, "bodyCanaryPresent": true, "temporaryBlobUrls": 0, @@ -7464,9 +7464,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "9bcbc6aec3788892", + "textHash": "97efe6f05f4b2929", "visualHash": "4ab503dc0bf627e7", - "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", + "text": "conduit Source code Home New Article RD_TEST_D3C056_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", @@ -7510,7 +7510,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "ff9e6e4f40f223eb", + "valueHash": "e9a259c18ee9acb9", "containsCanary": true } ], @@ -7521,8 +7521,8 @@ } }, "afterNewContext": { - "at": 6885, - "url": "http://127.0.0.1:37223/#/", + "at": 6769, + "url": "http://127.0.0.1:37233/#/", "title": "Conduit", "domHash": "3c44d4d1ff59317a", "canaryPresent": false, @@ -7622,8 +7622,8 @@ { "id": "RD-018", "action": { - "id": "2a8d30d118d1", - "pageUrl": "http://127.0.0.1:37223/#/register", + "id": "26bdd4d35a14", + "pageUrl": "http://127.0.0.1:37233/#/register", "label": "conduit", "activation": "click", "kind": "navigation", @@ -7636,7 +7636,7 @@ "role": "link", "accessibleName": "conduit", "text": "conduit", - "href": "http://127.0.0.1:37223/#/", + "href": "http://127.0.0.1:37233/#/", "candidates": [ { "strategy": "role", @@ -7655,7 +7655,7 @@ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37223/#/" + "value": "http://127.0.0.1:37233/#/" }, { "strategy": "text", @@ -7673,33 +7673,33 @@ "fields": [] }, "evidence": { - "startedAt": "2026-07-26T12:11:28.354Z", - "durationMs": 2482, - "canary": "RD_TEST_AE27D6", + "startedAt": "2026-07-26T14:07:44.566Z", + "durationMs": 2458, + "canary": "RD_TEST_6C37BD", "network": [ { "id": "net-1", "method": "GET", - "url": "http://127.0.0.1:37223/api/articles?limit=3&&offset=0", + "url": "http://127.0.0.1:37233/api/articles?limit=3&&offset=0", "resourceType": "xhr", - "startedAt": 1517, + "startedAt": 1491, "status": 200, "ok": true, - "finishedAt": 1523, + "finishedAt": 1496, "contentType": "application/json", "resourceTypeHint": "articles" }, { "id": "net-2", "method": "GET", - "url": "http://127.0.0.1:37223/api/tags", + "url": "http://127.0.0.1:37233/api/tags", "resourceType": "xhr", - "startedAt": 1517, + "startedAt": 1492, "status": 200, "ok": true, "contentType": "application/json", "resourceTypeHint": "tags", - "finishedAt": 1522 + "finishedAt": 1496 } ], "console": [], @@ -7718,14 +7718,14 @@ "weight": 92, "matchCount": 2, "visibleCount": 2, - "elapsedMs": 8 + "elapsedMs": 7 }, { "strategy": "role", "weight": 82, "matchCount": 2, "visibleCount": 2, - "elapsedMs": 6 + "elapsedMs": 7 }, { "strategy": "href", @@ -7739,7 +7739,7 @@ "weight": 60, "matchCount": 2, "visibleCount": 2, - "elapsedMs": 7 + "elapsedMs": 5 }, { "strategy": "css", @@ -7754,8 +7754,8 @@ "retryCount": 0 }, "before": { - "at": 1478, - "url": "http://127.0.0.1:37223/#/register", + "at": 1448, + "url": "http://127.0.0.1:37233/#/register", "title": "Conduit", "domHash": "1f4fa65964895f4c", "canaryPresent": false, @@ -7820,8 +7820,8 @@ } }, "beforeAction": { - "at": 1487, - "url": "http://127.0.0.1:37223/#/register", + "at": 1456, + "url": "http://127.0.0.1:37233/#/register", "title": "Conduit", "domHash": "1f4fa65964895f4c", "canaryPresent": false, @@ -7888,8 +7888,8 @@ "networkSettled": true, "targetBusyAfter": false, "after": { - "at": 2478, - "url": "http://127.0.0.1:37223/#/", + "at": 2454, + "url": "http://127.0.0.1:37233/#/", "title": "Conduit", "domHash": "3c44d4d1ff59317a", "canaryPresent": false, @@ -7926,7 +7926,7 @@ "indexedDb": [] } }, - "trace": "traces/2a8d30d118d1.zip", + "trace": "traces/26bdd4d35a14.zip", "snapshotIndex": "snapshots/RD-018.index.json" }, "verdict": "VERIFIED", @@ -7937,8 +7937,8 @@ { "id": "RD-019", "action": { - "id": "dff655920243", - "pageUrl": "http://127.0.0.1:37223/", + "id": "ffceb40cfb20", + "pageUrl": "http://127.0.0.1:37233/", "label": "Source code", "activation": "click", "kind": "navigation", @@ -8010,8 +8010,8 @@ { "id": "RD-020", "action": { - "id": "d0d3611360e0", - "pageUrl": "http://127.0.0.1:37223/", + "id": "9e62e4f6f98f", + "pageUrl": "http://127.0.0.1:37233/", "label": "Thinkster", "activation": "click", "kind": "navigation", @@ -8083,8 +8083,8 @@ { "id": "RD-021", "action": { - "id": "aece598f17f5", - "pageUrl": "http://127.0.0.1:37223/", + "id": "0de5cae7c6fc", + "pageUrl": "http://127.0.0.1:37233/", "label": "Source code", "activation": "click", "kind": "navigation", @@ -8156,8 +8156,8 @@ { "id": "RD-022", "action": { - "id": "0bbdd763f574", - "pageUrl": "http://127.0.0.1:37223/#/login", + "id": "8b4be386902b", + "pageUrl": "http://127.0.0.1:37233/#/login", "label": "Source code", "activation": "click", "kind": "navigation", @@ -8229,8 +8229,8 @@ { "id": "RD-023", "action": { - "id": "8cf8ab594a99", - "pageUrl": "http://127.0.0.1:37223/#/login", + "id": "f6ff19bc7217", + "pageUrl": "http://127.0.0.1:37233/#/login", "label": "Login", "activation": "click", "kind": "navigation", @@ -8243,7 +8243,7 @@ "role": "link", "accessibleName": "Login", "text": "Login", - "href": "http://127.0.0.1:37223/#/login", + "href": "http://127.0.0.1:37233/#/login", "candidates": [ { "strategy": "role", @@ -8262,7 +8262,7 @@ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37223/#/login" + "value": "http://127.0.0.1:37233/#/login" }, { "strategy": "text", @@ -8302,8 +8302,8 @@ { "id": "RD-024", "action": { - "id": "f0f10953de61", - "pageUrl": "http://127.0.0.1:37223/#/login", + "id": "456eee3f64e7", + "pageUrl": "http://127.0.0.1:37233/#/login", "label": "Thinkster", "activation": "click", "kind": "navigation", @@ -8375,8 +8375,8 @@ { "id": "RD-025", "action": { - "id": "f819daae696d", - "pageUrl": "http://127.0.0.1:37223/#/login", + "id": "ce780cc0c672", + "pageUrl": "http://127.0.0.1:37233/#/login", "label": "Source code", "activation": "click", "kind": "navigation", @@ -8448,8 +8448,8 @@ { "id": "RD-026", "action": { - "id": "03a023e83ccc", - "pageUrl": "http://127.0.0.1:37223/#/register", + "id": "6facba696850", + "pageUrl": "http://127.0.0.1:37233/#/register", "label": "Source code", "activation": "click", "kind": "navigation", @@ -8521,8 +8521,8 @@ { "id": "RD-027", "action": { - "id": "c336224b8b96", - "pageUrl": "http://127.0.0.1:37223/#/register", + "id": "c64deb5dab0f", + "pageUrl": "http://127.0.0.1:37233/#/register", "label": "Sign up", "activation": "click", "kind": "navigation", @@ -8535,7 +8535,7 @@ "role": "link", "accessibleName": "Sign up", "text": "Sign up", - "href": "http://127.0.0.1:37223/#/register", + "href": "http://127.0.0.1:37233/#/register", "candidates": [ { "strategy": "role", @@ -8554,7 +8554,7 @@ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37223/#/register" + "value": "http://127.0.0.1:37233/#/register" }, { "strategy": "text", @@ -8594,8 +8594,8 @@ { "id": "RD-028", "action": { - "id": "4c473c1e6971", - "pageUrl": "http://127.0.0.1:37223/#/register", + "id": "9e18b41d35f0", + "pageUrl": "http://127.0.0.1:37233/#/register", "label": "Thinkster", "activation": "click", "kind": "navigation", @@ -8667,8 +8667,8 @@ { "id": "RD-029", "action": { - "id": "3fb2e5e3bcbe", - "pageUrl": "http://127.0.0.1:37223/#/register", + "id": "1a70937e7cb5", + "pageUrl": "http://127.0.0.1:37233/#/register", "label": "Source code", "activation": "click", "kind": "navigation", @@ -8740,9 +8740,9 @@ ], "environment": { "status": "VALID", - "checkedAt": "2026-07-26T12:10:26.356Z", - "durationMs": 6553, - "targetUrl": "http://127.0.0.1:37223/", + "checkedAt": "2026-07-26T14:06:45.427Z", + "durationMs": 3929, + "targetUrl": "http://127.0.0.1:37233/", "mainDocument": { "status": 200, "contentType": "text/html" diff --git a/release/evidence/raw/conduit.scan.json b/release/evidence/raw/conduit.scan.json index 7ff6ecb..b93f4a6 100644 --- a/release/evidence/raw/conduit.scan.json +++ b/release/evidence/raw/conduit.scan.json @@ -1,9 +1,9 @@ { "schemaVersion": "1.0", - "scanId": "20260726T120053Z-d309", - "targetUrl": "http://127.0.0.1:37221/", - "startedAt": "2026-07-26T12:00:53.368Z", - "finishedAt": "2026-07-26T12:01:54.713Z", + "scanId": "20260726T140120Z-f665", + "targetUrl": "http://127.0.0.1:37231/", + "startedAt": "2026-07-26T14:01:20.693Z", + "finishedAt": "2026-07-26T14:02:24.694Z", "options": { "maxPages": 10, "maxActions": 100, @@ -41,12 +41,12 @@ }, "pages": [ { - "url": "http://127.0.0.1:37221/", + "url": "http://127.0.0.1:37231/", "title": "Conduit", "actions": [ { - "id": "42af6e3916f3", - "pageUrl": "http://127.0.0.1:37221/", + "id": "179e55d3db00", + "pageUrl": "http://127.0.0.1:37231/", "label": "conduit", "activation": "click", "kind": "navigation", @@ -59,7 +59,7 @@ "role": "link", "accessibleName": "conduit", "text": "conduit", - "href": "http://127.0.0.1:37221/#/", + "href": "http://127.0.0.1:37231/#/", "candidates": [ { "strategy": "role", @@ -78,7 +78,7 @@ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37221/#/" + "value": "http://127.0.0.1:37231/#/" }, { "strategy": "text", @@ -96,8 +96,8 @@ "fields": [] }, { - "id": "5bbc1db21d2a", - "pageUrl": "http://127.0.0.1:37221/", + "id": "bd03feaa17a3", + "pageUrl": "http://127.0.0.1:37231/", "label": "Source code", "activation": "click", "kind": "navigation", @@ -147,8 +147,8 @@ "fields": [] }, { - "id": "bc96ab4e29fc", - "pageUrl": "http://127.0.0.1:37221/", + "id": "a5b2a622810d", + "pageUrl": "http://127.0.0.1:37231/", "label": "Home", "activation": "click", "kind": "navigation", @@ -161,7 +161,7 @@ "role": "link", "accessibleName": "Home", "text": "Home", - "href": "http://127.0.0.1:37221/#/", + "href": "http://127.0.0.1:37231/#/", "candidates": [ { "strategy": "role", @@ -180,7 +180,7 @@ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37221/#/" + "value": "http://127.0.0.1:37231/#/" }, { "strategy": "text", @@ -198,8 +198,8 @@ "fields": [] }, { - "id": "8fc7adf8cf6e", - "pageUrl": "http://127.0.0.1:37221/", + "id": "9ae4993858c6", + "pageUrl": "http://127.0.0.1:37231/", "label": "Login", "activation": "click", "kind": "navigation", @@ -212,7 +212,7 @@ "role": "link", "accessibleName": "Login", "text": "Login", - "href": "http://127.0.0.1:37221/#/login", + "href": "http://127.0.0.1:37231/#/login", "candidates": [ { "strategy": "role", @@ -231,7 +231,7 @@ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37221/#/login" + "value": "http://127.0.0.1:37231/#/login" }, { "strategy": "text", @@ -249,8 +249,8 @@ "fields": [] }, { - "id": "164a03519e8d", - "pageUrl": "http://127.0.0.1:37221/", + "id": "03f173197c10", + "pageUrl": "http://127.0.0.1:37231/", "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:37221/#/register", + "href": "http://127.0.0.1:37231/#/register", "candidates": [ { "strategy": "role", @@ -282,7 +282,7 @@ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37221/#/register" + "value": "http://127.0.0.1:37231/#/register" }, { "strategy": "text", @@ -300,8 +300,8 @@ "fields": [] }, { - "id": "91185e92b6f7", - "pageUrl": "http://127.0.0.1:37221/", + "id": "08f39e84af00", + "pageUrl": "http://127.0.0.1:37231/", "label": "Global Feed", "activation": "click", "kind": "local", @@ -346,8 +346,8 @@ "fields": [] }, { - "id": "5f0dab4a212e", - "pageUrl": "http://127.0.0.1:37221/", + "id": "240731ba8009", + "pageUrl": "http://127.0.0.1:37231/", "label": "conduit", "activation": "click", "kind": "navigation", @@ -360,7 +360,7 @@ "role": "link", "accessibleName": "conduit", "text": "conduit", - "href": "http://127.0.0.1:37221/#/", + "href": "http://127.0.0.1:37231/#/", "candidates": [ { "strategy": "role", @@ -379,7 +379,7 @@ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37221/#/" + "value": "http://127.0.0.1:37231/#/" }, { "strategy": "text", @@ -397,8 +397,8 @@ "fields": [] }, { - "id": "565566fdbfc2", - "pageUrl": "http://127.0.0.1:37221/", + "id": "6d211da34bba", + "pageUrl": "http://127.0.0.1:37231/", "label": "Thinkster", "activation": "click", "kind": "navigation", @@ -448,8 +448,8 @@ "fields": [] }, { - "id": "22c0f93a3b99", - "pageUrl": "http://127.0.0.1:37221/", + "id": "a0a032e7a5b4", + "pageUrl": "http://127.0.0.1:37231/", "label": "Source code", "activation": "click", "kind": "navigation", @@ -501,12 +501,12 @@ ] }, { - "url": "http://127.0.0.1:37221/#/login", + "url": "http://127.0.0.1:37231/#/login", "title": "Conduit", "actions": [ { - "id": "d00c3c49909e", - "pageUrl": "http://127.0.0.1:37221/#/login", + "id": "9114fcfdd048", + "pageUrl": "http://127.0.0.1:37231/#/login", "label": "conduit", "activation": "click", "kind": "navigation", @@ -519,7 +519,7 @@ "role": "link", "accessibleName": "conduit", "text": "conduit", - "href": "http://127.0.0.1:37221/#/", + "href": "http://127.0.0.1:37231/#/", "candidates": [ { "strategy": "role", @@ -538,7 +538,7 @@ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37221/#/" + "value": "http://127.0.0.1:37231/#/" }, { "strategy": "text", @@ -556,8 +556,8 @@ "fields": [] }, { - "id": "a14c21ba2796", - "pageUrl": "http://127.0.0.1:37221/#/login", + "id": "ec41a0192731", + "pageUrl": "http://127.0.0.1:37231/#/login", "label": "Source code", "activation": "click", "kind": "navigation", @@ -607,8 +607,8 @@ "fields": [] }, { - "id": "618e17be243c", - "pageUrl": "http://127.0.0.1:37221/#/login", + "id": "b3a8622fbee3", + "pageUrl": "http://127.0.0.1:37231/#/login", "label": "Home", "activation": "click", "kind": "navigation", @@ -621,7 +621,7 @@ "role": "link", "accessibleName": "Home", "text": "Home", - "href": "http://127.0.0.1:37221/#/", + "href": "http://127.0.0.1:37231/#/", "candidates": [ { "strategy": "role", @@ -640,7 +640,7 @@ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37221/#/" + "value": "http://127.0.0.1:37231/#/" }, { "strategy": "text", @@ -658,8 +658,8 @@ "fields": [] }, { - "id": "a97311e1dff1", - "pageUrl": "http://127.0.0.1:37221/#/login", + "id": "ba7c5e18684c", + "pageUrl": "http://127.0.0.1:37231/#/login", "label": "Login", "activation": "click", "kind": "navigation", @@ -672,7 +672,7 @@ "role": "link", "accessibleName": "Login", "text": "Login", - "href": "http://127.0.0.1:37221/#/login", + "href": "http://127.0.0.1:37231/#/login", "candidates": [ { "strategy": "role", @@ -691,7 +691,7 @@ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37221/#/login" + "value": "http://127.0.0.1:37231/#/login" }, { "strategy": "text", @@ -709,8 +709,8 @@ "fields": [] }, { - "id": "95b09f480e07", - "pageUrl": "http://127.0.0.1:37221/#/login", + "id": "e503c3971ee4", + "pageUrl": "http://127.0.0.1:37231/#/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:37221/#/register", + "href": "http://127.0.0.1:37231/#/register", "candidates": [ { "strategy": "role", @@ -742,7 +742,7 @@ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37221/#/register" + "value": "http://127.0.0.1:37231/#/register" }, { "strategy": "text", @@ -760,8 +760,8 @@ "fields": [] }, { - "id": "28f52f75932f", - "pageUrl": "http://127.0.0.1:37221/#/login", + "id": "d7bb403f31db", + "pageUrl": "http://127.0.0.1:37231/#/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:37221/#/register", + "href": "http://127.0.0.1:37231/#/register", "candidates": [ { "strategy": "role", @@ -793,7 +793,7 @@ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37221/#/register" + "value": "http://127.0.0.1:37231/#/register" }, { "strategy": "text", @@ -811,8 +811,8 @@ "fields": [] }, { - "id": "95e44ee989af", - "pageUrl": "http://127.0.0.1:37221/#/login", + "id": "ea77cc23a3ee", + "pageUrl": "http://127.0.0.1:37231/#/login", "label": "Login", "activation": "submit", "kind": "mutation", @@ -861,8 +861,8 @@ ] }, { - "id": "794e0c18aff0", - "pageUrl": "http://127.0.0.1:37221/#/login", + "id": "07725cd9afb9", + "pageUrl": "http://127.0.0.1:37231/#/login", "label": "conduit", "activation": "click", "kind": "navigation", @@ -875,7 +875,7 @@ "role": "link", "accessibleName": "conduit", "text": "conduit", - "href": "http://127.0.0.1:37221/#/", + "href": "http://127.0.0.1:37231/#/", "candidates": [ { "strategy": "role", @@ -894,7 +894,7 @@ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37221/#/" + "value": "http://127.0.0.1:37231/#/" }, { "strategy": "text", @@ -912,8 +912,8 @@ "fields": [] }, { - "id": "5117246bc5ce", - "pageUrl": "http://127.0.0.1:37221/#/login", + "id": "56309d5c2223", + "pageUrl": "http://127.0.0.1:37231/#/login", "label": "Thinkster", "activation": "click", "kind": "navigation", @@ -963,8 +963,8 @@ "fields": [] }, { - "id": "d605ffbad857", - "pageUrl": "http://127.0.0.1:37221/#/login", + "id": "cf416aa62080", + "pageUrl": "http://127.0.0.1:37231/#/login", "label": "Source code", "activation": "click", "kind": "navigation", @@ -1016,12 +1016,12 @@ ] }, { - "url": "http://127.0.0.1:37221/#/register", + "url": "http://127.0.0.1:37231/#/register", "title": "Conduit", "actions": [ { - "id": "82d8b258667a", - "pageUrl": "http://127.0.0.1:37221/#/register", + "id": "cdb2ccb8cb6e", + "pageUrl": "http://127.0.0.1:37231/#/register", "label": "conduit", "activation": "click", "kind": "navigation", @@ -1034,7 +1034,7 @@ "role": "link", "accessibleName": "conduit", "text": "conduit", - "href": "http://127.0.0.1:37221/#/", + "href": "http://127.0.0.1:37231/#/", "candidates": [ { "strategy": "role", @@ -1053,7 +1053,7 @@ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37221/#/" + "value": "http://127.0.0.1:37231/#/" }, { "strategy": "text", @@ -1071,8 +1071,8 @@ "fields": [] }, { - "id": "86c5ce218834", - "pageUrl": "http://127.0.0.1:37221/#/register", + "id": "058252891f16", + "pageUrl": "http://127.0.0.1:37231/#/register", "label": "Source code", "activation": "click", "kind": "navigation", @@ -1122,8 +1122,8 @@ "fields": [] }, { - "id": "974fd9c7acc8", - "pageUrl": "http://127.0.0.1:37221/#/register", + "id": "3d6e0da61a22", + "pageUrl": "http://127.0.0.1:37231/#/register", "label": "Home", "activation": "click", "kind": "navigation", @@ -1136,7 +1136,7 @@ "role": "link", "accessibleName": "Home", "text": "Home", - "href": "http://127.0.0.1:37221/#/", + "href": "http://127.0.0.1:37231/#/", "candidates": [ { "strategy": "role", @@ -1155,7 +1155,7 @@ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37221/#/" + "value": "http://127.0.0.1:37231/#/" }, { "strategy": "text", @@ -1173,8 +1173,8 @@ "fields": [] }, { - "id": "bf800e4ddf63", - "pageUrl": "http://127.0.0.1:37221/#/register", + "id": "0eb209f92212", + "pageUrl": "http://127.0.0.1:37231/#/register", "label": "Login", "activation": "click", "kind": "navigation", @@ -1187,7 +1187,7 @@ "role": "link", "accessibleName": "Login", "text": "Login", - "href": "http://127.0.0.1:37221/#/login", + "href": "http://127.0.0.1:37231/#/login", "candidates": [ { "strategy": "role", @@ -1206,7 +1206,7 @@ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37221/#/login" + "value": "http://127.0.0.1:37231/#/login" }, { "strategy": "text", @@ -1224,8 +1224,8 @@ "fields": [] }, { - "id": "1dd44725c1d0", - "pageUrl": "http://127.0.0.1:37221/#/register", + "id": "73f6c6cf31b9", + "pageUrl": "http://127.0.0.1:37231/#/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:37221/#/register", + "href": "http://127.0.0.1:37231/#/register", "candidates": [ { "strategy": "role", @@ -1257,7 +1257,7 @@ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37221/#/register" + "value": "http://127.0.0.1:37231/#/register" }, { "strategy": "text", @@ -1275,8 +1275,8 @@ "fields": [] }, { - "id": "50015942fa59", - "pageUrl": "http://127.0.0.1:37221/#/register", + "id": "466cc14e3c93", + "pageUrl": "http://127.0.0.1:37231/#/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:37221/#/login", + "href": "http://127.0.0.1:37231/#/login", "candidates": [ { "strategy": "role", @@ -1308,7 +1308,7 @@ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37221/#/login" + "value": "http://127.0.0.1:37231/#/login" }, { "strategy": "text", @@ -1326,8 +1326,8 @@ "fields": [] }, { - "id": "69097d25d757", - "pageUrl": "http://127.0.0.1:37221/#/register", + "id": "17cb32663fc1", + "pageUrl": "http://127.0.0.1:37231/#/register", "label": "Sign up", "activation": "submit", "kind": "mutation", @@ -1384,8 +1384,8 @@ ] }, { - "id": "b978b9f51ea5", - "pageUrl": "http://127.0.0.1:37221/#/register", + "id": "8a6a6bb11245", + "pageUrl": "http://127.0.0.1:37231/#/register", "label": "conduit", "activation": "click", "kind": "navigation", @@ -1398,7 +1398,7 @@ "role": "link", "accessibleName": "conduit", "text": "conduit", - "href": "http://127.0.0.1:37221/#/", + "href": "http://127.0.0.1:37231/#/", "candidates": [ { "strategy": "role", @@ -1417,7 +1417,7 @@ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37221/#/" + "value": "http://127.0.0.1:37231/#/" }, { "strategy": "text", @@ -1435,8 +1435,8 @@ "fields": [] }, { - "id": "6572fb8425d7", - "pageUrl": "http://127.0.0.1:37221/#/register", + "id": "aabc4e6e0ea8", + "pageUrl": "http://127.0.0.1:37231/#/register", "label": "Thinkster", "activation": "click", "kind": "navigation", @@ -1486,8 +1486,8 @@ "fields": [] }, { - "id": "fcc1043fc9f2", - "pageUrl": "http://127.0.0.1:37221/#/register", + "id": "72973c605a99", + "pageUrl": "http://127.0.0.1:37231/#/register", "label": "Source code", "activation": "click", "kind": "navigation", @@ -1543,8 +1543,8 @@ { "id": "RD-001", "action": { - "id": "42af6e3916f3", - "pageUrl": "http://127.0.0.1:37221/", + "id": "179e55d3db00", + "pageUrl": "http://127.0.0.1:37231/", "label": "conduit", "activation": "click", "kind": "navigation", @@ -1557,7 +1557,7 @@ "role": "link", "accessibleName": "conduit", "text": "conduit", - "href": "http://127.0.0.1:37221/#/", + "href": "http://127.0.0.1:37231/#/", "candidates": [ { "strategy": "role", @@ -1576,7 +1576,7 @@ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37221/#/" + "value": "http://127.0.0.1:37231/#/" }, { "strategy": "text", @@ -1594,9 +1594,9 @@ "fields": [] }, "evidence": { - "startedAt": "2026-07-26T12:01:00.609Z", - "durationMs": 2522, - "canary": "RD_TEST_B19622", + "startedAt": "2026-07-26T14:01:30.707Z", + "durationMs": 2531, + "canary": "RD_TEST_3BE492", "network": [], "console": [], "pageErrors": [], @@ -1614,7 +1614,7 @@ "weight": 92, "matchCount": 2, "visibleCount": 2, - "elapsedMs": 9 + "elapsedMs": 10 }, { "strategy": "role", @@ -1635,14 +1635,14 @@ "weight": 60, "matchCount": 3, "visibleCount": 3, - "elapsedMs": 8 + "elapsedMs": 9 }, { "strategy": "css", "weight": 35, "matchCount": 1, "visibleCount": 1, - "elapsedMs": 4 + "elapsedMs": 5 } ], "chosenStrategy": "css", @@ -1650,8 +1650,8 @@ "retryCount": 0 }, "before": { - "at": 1515, - "url": "http://127.0.0.1:37221/", + "at": 1516, + "url": "http://127.0.0.1:37231/", "title": "Conduit", "domHash": "3c44d4d1ff59317a", "canaryPresent": false, @@ -1689,8 +1689,8 @@ } }, "beforeAction": { - "at": 1526, - "url": "http://127.0.0.1:37221/", + "at": 1527, + "url": "http://127.0.0.1:37231/", "title": "Conduit", "domHash": "3c44d4d1ff59317a", "canaryPresent": false, @@ -1730,8 +1730,8 @@ "networkSettled": true, "targetBusyAfter": false, "after": { - "at": 2519, - "url": "http://127.0.0.1:37221/#/", + "at": 2525, + "url": "http://127.0.0.1:37231/#/", "title": "Conduit", "domHash": "3c44d4d1ff59317a", "canaryPresent": false, @@ -1768,7 +1768,7 @@ "indexedDb": [] } }, - "trace": "traces/42af6e3916f3.zip", + "trace": "traces/179e55d3db00.zip", "snapshotIndex": "snapshots/RD-001.index.json" }, "verdict": "VERIFIED", @@ -1779,8 +1779,8 @@ { "id": "RD-002", "action": { - "id": "bc96ab4e29fc", - "pageUrl": "http://127.0.0.1:37221/", + "id": "a5b2a622810d", + "pageUrl": "http://127.0.0.1:37231/", "label": "Home", "activation": "click", "kind": "navigation", @@ -1793,7 +1793,7 @@ "role": "link", "accessibleName": "Home", "text": "Home", - "href": "http://127.0.0.1:37221/#/", + "href": "http://127.0.0.1:37231/#/", "candidates": [ { "strategy": "role", @@ -1812,7 +1812,7 @@ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37221/#/" + "value": "http://127.0.0.1:37231/#/" }, { "strategy": "text", @@ -1830,9 +1830,9 @@ "fields": [] }, "evidence": { - "startedAt": "2026-07-26T12:01:03.177Z", - "durationMs": 2454, - "canary": "RD_TEST_500554", + "startedAt": "2026-07-26T14:01:33.296Z", + "durationMs": 2471, + "canary": "RD_TEST_448FEF", "network": [], "console": [], "pageErrors": [], @@ -1857,7 +1857,7 @@ "weight": 82, "matchCount": 1, "visibleCount": 1, - "elapsedMs": 5 + "elapsedMs": 4 } ], "chosenStrategy": "role", @@ -1865,8 +1865,8 @@ "retryCount": 0 }, "before": { - "at": 1448, - "url": "http://127.0.0.1:37221/", + "at": 1462, + "url": "http://127.0.0.1:37231/", "title": "Conduit", "domHash": "3c44d4d1ff59317a", "canaryPresent": false, @@ -1904,8 +1904,8 @@ } }, "beforeAction": { - "at": 1457, - "url": "http://127.0.0.1:37221/", + "at": 1470, + "url": "http://127.0.0.1:37231/", "title": "Conduit", "domHash": "3c44d4d1ff59317a", "canaryPresent": false, @@ -1945,8 +1945,8 @@ "networkSettled": true, "targetBusyAfter": false, "after": { - "at": 2450, - "url": "http://127.0.0.1:37221/#/", + "at": 2467, + "url": "http://127.0.0.1:37231/#/", "title": "Conduit", "domHash": "3c44d4d1ff59317a", "canaryPresent": false, @@ -1983,7 +1983,7 @@ "indexedDb": [] } }, - "trace": "traces/bc96ab4e29fc.zip", + "trace": "traces/a5b2a622810d.zip", "snapshotIndex": "snapshots/RD-002.index.json" }, "verdict": "VERIFIED", @@ -1994,8 +1994,8 @@ { "id": "RD-003", "action": { - "id": "8fc7adf8cf6e", - "pageUrl": "http://127.0.0.1:37221/", + "id": "9ae4993858c6", + "pageUrl": "http://127.0.0.1:37231/", "label": "Login", "activation": "click", "kind": "navigation", @@ -2008,7 +2008,7 @@ "role": "link", "accessibleName": "Login", "text": "Login", - "href": "http://127.0.0.1:37221/#/login", + "href": "http://127.0.0.1:37231/#/login", "candidates": [ { "strategy": "role", @@ -2027,7 +2027,7 @@ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37221/#/login" + "value": "http://127.0.0.1:37231/#/login" }, { "strategy": "text", @@ -2045,9 +2045,9 @@ "fields": [] }, "evidence": { - "startedAt": "2026-07-26T12:01:05.665Z", - "durationMs": 2475, - "canary": "RD_TEST_29B056", + "startedAt": "2026-07-26T14:01:35.801Z", + "durationMs": 2484, + "canary": "RD_TEST_0FBD15", "network": [], "console": [], "pageErrors": [], @@ -2072,7 +2072,7 @@ "weight": 82, "matchCount": 1, "visibleCount": 1, - "elapsedMs": 5 + "elapsedMs": 4 } ], "chosenStrategy": "role", @@ -2080,8 +2080,8 @@ "retryCount": 0 }, "before": { - "at": 1456, - "url": "http://127.0.0.1:37221/", + "at": 1477, + "url": "http://127.0.0.1:37231/", "title": "Conduit", "domHash": "3c44d4d1ff59317a", "canaryPresent": false, @@ -2119,8 +2119,8 @@ } }, "beforeAction": { - "at": 1465, - "url": "http://127.0.0.1:37221/", + "at": 1486, + "url": "http://127.0.0.1:37231/", "title": "Conduit", "domHash": "3c44d4d1ff59317a", "canaryPresent": false, @@ -2160,8 +2160,8 @@ "networkSettled": true, "targetBusyAfter": false, "after": { - "at": 2471, - "url": "http://127.0.0.1:37221/#/login", + "at": 2480, + "url": "http://127.0.0.1:37231/#/login", "title": "Conduit", "domHash": "c659be8900b0e706", "canaryPresent": false, @@ -2216,7 +2216,7 @@ "indexedDb": [] } }, - "trace": "traces/8fc7adf8cf6e.zip", + "trace": "traces/9ae4993858c6.zip", "snapshotIndex": "snapshots/RD-003.index.json" }, "verdict": "VERIFIED", @@ -2227,8 +2227,8 @@ { "id": "RD-004", "action": { - "id": "164a03519e8d", - "pageUrl": "http://127.0.0.1:37221/", + "id": "03f173197c10", + "pageUrl": "http://127.0.0.1:37231/", "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:37221/#/register", + "href": "http://127.0.0.1:37231/#/register", "candidates": [ { "strategy": "role", @@ -2260,7 +2260,7 @@ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37221/#/register" + "value": "http://127.0.0.1:37231/#/register" }, { "strategy": "text", @@ -2278,9 +2278,9 @@ "fields": [] }, "evidence": { - "startedAt": "2026-07-26T12:01:08.183Z", - "durationMs": 2490, - "canary": "RD_TEST_FAE050", + "startedAt": "2026-07-26T14:01:38.332Z", + "durationMs": 2460, + "canary": "RD_TEST_D8FF69", "network": [], "console": [], "pageErrors": [], @@ -2306,8 +2306,8 @@ "retryCount": 0 }, "before": { - "at": 1478, - "url": "http://127.0.0.1:37221/", + "at": 1459, + "url": "http://127.0.0.1:37231/", "title": "Conduit", "domHash": "3c44d4d1ff59317a", "canaryPresent": false, @@ -2345,8 +2345,8 @@ } }, "beforeAction": { - "at": 1488, - "url": "http://127.0.0.1:37221/", + "at": 1468, + "url": "http://127.0.0.1:37231/", "title": "Conduit", "domHash": "3c44d4d1ff59317a", "canaryPresent": false, @@ -2386,8 +2386,8 @@ "networkSettled": true, "targetBusyAfter": false, "after": { - "at": 2486, - "url": "http://127.0.0.1:37221/#/register", + "at": 2455, + "url": "http://127.0.0.1:37231/#/register", "title": "Conduit", "domHash": "1f4fa65964895f4c", "canaryPresent": false, @@ -2451,7 +2451,7 @@ "indexedDb": [] } }, - "trace": "traces/164a03519e8d.zip", + "trace": "traces/03f173197c10.zip", "snapshotIndex": "snapshots/RD-004.index.json" }, "verdict": "VERIFIED", @@ -2462,8 +2462,8 @@ { "id": "RD-005", "action": { - "id": "91185e92b6f7", - "pageUrl": "http://127.0.0.1:37221/", + "id": "08f39e84af00", + "pageUrl": "http://127.0.0.1:37231/", "label": "Global Feed", "activation": "click", "kind": "local", @@ -2508,19 +2508,19 @@ "fields": [] }, "evidence": { - "startedAt": "2026-07-26T12:01:10.719Z", - "durationMs": 2489, - "canary": "RD_TEST_E66E47", + "startedAt": "2026-07-26T14:01:40.840Z", + "durationMs": 2538, + "canary": "RD_TEST_890592", "network": [ { "id": "net-1", "method": "GET", - "url": "http://127.0.0.1:37221/api/articles?limit=3&&offset=0", + "url": "http://127.0.0.1:37231/api/articles?limit=3&&offset=0", "resourceType": "xhr", - "startedAt": 1478, + "startedAt": 1536, "status": 200, "ok": true, - "finishedAt": 1488, + "finishedAt": 1544, "contentType": "application/json", "resourceTypeHint": "articles" } @@ -2541,7 +2541,7 @@ "weight": 92, "matchCount": 1, "visibleCount": 1, - "elapsedMs": 4 + "elapsedMs": 5 } ], "chosenStrategy": "role", @@ -2549,8 +2549,8 @@ "retryCount": 0 }, "before": { - "at": 1449, - "url": "http://127.0.0.1:37221/", + "at": 1494, + "url": "http://127.0.0.1:37231/", "title": "Conduit", "domHash": "3c44d4d1ff59317a", "canaryPresent": false, @@ -2588,8 +2588,8 @@ } }, "beforeAction": { - "at": 1458, - "url": "http://127.0.0.1:37221/", + "at": 1503, + "url": "http://127.0.0.1:37231/", "title": "Conduit", "domHash": "3c44d4d1ff59317a", "canaryPresent": false, @@ -2629,8 +2629,8 @@ "networkSettled": true, "targetBusyAfter": false, "after": { - "at": 2459, - "url": "http://127.0.0.1:37221/", + "at": 2510, + "url": "http://127.0.0.1:37231/", "title": "Conduit", "domHash": "3c44d4d1ff59317a", "canaryPresent": false, @@ -2667,8 +2667,8 @@ "indexedDb": [] } }, - "screenshot": "screenshots/91185e92b6f7-after.png", - "trace": "traces/91185e92b6f7.zip", + "screenshot": "screenshots/08f39e84af00-after.png", + "trace": "traces/08f39e84af00.zip", "snapshotIndex": "snapshots/RD-005.index.json" }, "verdict": "VERIFIED", @@ -2679,8 +2679,8 @@ { "id": "RD-006", "action": { - "id": "5f0dab4a212e", - "pageUrl": "http://127.0.0.1:37221/", + "id": "240731ba8009", + "pageUrl": "http://127.0.0.1:37231/", "label": "conduit", "activation": "click", "kind": "navigation", @@ -2693,7 +2693,7 @@ "role": "link", "accessibleName": "conduit", "text": "conduit", - "href": "http://127.0.0.1:37221/#/", + "href": "http://127.0.0.1:37231/#/", "candidates": [ { "strategy": "role", @@ -2712,7 +2712,7 @@ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37221/#/" + "value": "http://127.0.0.1:37231/#/" }, { "strategy": "text", @@ -2730,9 +2730,9 @@ "fields": [] }, "evidence": { - "startedAt": "2026-07-26T12:01:13.241Z", - "durationMs": 2481, - "canary": "RD_TEST_CDA00E", + "startedAt": "2026-07-26T14:01:43.414Z", + "durationMs": 2464, + "canary": "RD_TEST_3A4105", "network": [], "console": [], "pageErrors": [], @@ -2750,7 +2750,7 @@ "weight": 92, "matchCount": 2, "visibleCount": 2, - "elapsedMs": 9 + "elapsedMs": 7 }, { "strategy": "role", @@ -2778,7 +2778,7 @@ "weight": 35, "matchCount": 1, "visibleCount": 1, - "elapsedMs": 5 + "elapsedMs": 4 } ], "chosenStrategy": "css", @@ -2786,8 +2786,8 @@ "retryCount": 0 }, "before": { - "at": 1485, - "url": "http://127.0.0.1:37221/", + "at": 1465, + "url": "http://127.0.0.1:37231/", "title": "Conduit", "domHash": "3c44d4d1ff59317a", "canaryPresent": false, @@ -2825,8 +2825,8 @@ } }, "beforeAction": { - "at": 1493, - "url": "http://127.0.0.1:37221/", + "at": 1474, + "url": "http://127.0.0.1:37231/", "title": "Conduit", "domHash": "3c44d4d1ff59317a", "canaryPresent": false, @@ -2866,8 +2866,8 @@ "networkSettled": true, "targetBusyAfter": false, "after": { - "at": 2477, - "url": "http://127.0.0.1:37221/#/", + "at": 2461, + "url": "http://127.0.0.1:37231/#/", "title": "Conduit", "domHash": "3c44d4d1ff59317a", "canaryPresent": false, @@ -2904,7 +2904,7 @@ "indexedDb": [] } }, - "trace": "traces/5f0dab4a212e.zip", + "trace": "traces/240731ba8009.zip", "snapshotIndex": "snapshots/RD-006.index.json" }, "verdict": "VERIFIED", @@ -2915,8 +2915,8 @@ { "id": "RD-007", "action": { - "id": "d00c3c49909e", - "pageUrl": "http://127.0.0.1:37221/#/login", + "id": "9114fcfdd048", + "pageUrl": "http://127.0.0.1:37231/#/login", "label": "conduit", "activation": "click", "kind": "navigation", @@ -2929,7 +2929,7 @@ "role": "link", "accessibleName": "conduit", "text": "conduit", - "href": "http://127.0.0.1:37221/#/", + "href": "http://127.0.0.1:37231/#/", "candidates": [ { "strategy": "role", @@ -2948,7 +2948,7 @@ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37221/#/" + "value": "http://127.0.0.1:37231/#/" }, { "strategy": "text", @@ -2966,31 +2966,31 @@ "fields": [] }, "evidence": { - "startedAt": "2026-07-26T12:01:15.750Z", - "durationMs": 2488, - "canary": "RD_TEST_B64F6F", + "startedAt": "2026-07-26T14:01:45.924Z", + "durationMs": 2489, + "canary": "RD_TEST_6C1884", "network": [ { "id": "net-1", "method": "GET", - "url": "http://127.0.0.1:37221/api/articles?limit=3&&offset=0", + "url": "http://127.0.0.1:37231/api/articles?limit=3&&offset=0", "resourceType": "xhr", - "startedAt": 1546, + "startedAt": 1516, "status": 200, "ok": true, "contentType": "application/json", "resourceTypeHint": "articles", - "finishedAt": 1551 + "finishedAt": 1522 }, { "id": "net-2", "method": "GET", - "url": "http://127.0.0.1:37221/api/tags", + "url": "http://127.0.0.1:37231/api/tags", "resourceType": "xhr", - "startedAt": 1546, + "startedAt": 1516, "status": 200, "ok": true, - "finishedAt": 1552, + "finishedAt": 1523, "contentType": "application/json", "resourceTypeHint": "tags" } @@ -3011,14 +3011,14 @@ "weight": 92, "matchCount": 2, "visibleCount": 2, - "elapsedMs": 8 + "elapsedMs": 9 }, { "strategy": "role", "weight": 82, "matchCount": 2, "visibleCount": 2, - "elapsedMs": 6 + "elapsedMs": 8 }, { "strategy": "href", @@ -3032,7 +3032,7 @@ "weight": 60, "matchCount": 2, "visibleCount": 2, - "elapsedMs": 6 + "elapsedMs": 7 }, { "strategy": "css", @@ -3047,8 +3047,8 @@ "retryCount": 0 }, "before": { - "at": 1497, - "url": "http://127.0.0.1:37221/#/login", + "at": 1468, + "url": "http://127.0.0.1:37231/#/login", "title": "Conduit", "domHash": "c659be8900b0e706", "canaryPresent": false, @@ -3104,8 +3104,8 @@ } }, "beforeAction": { - "at": 1506, - "url": "http://127.0.0.1:37221/#/login", + "at": 1478, + "url": "http://127.0.0.1:37231/#/login", "title": "Conduit", "domHash": "c659be8900b0e706", "canaryPresent": false, @@ -3163,8 +3163,8 @@ "networkSettled": true, "targetBusyAfter": false, "after": { - "at": 2484, - "url": "http://127.0.0.1:37221/#/", + "at": 2485, + "url": "http://127.0.0.1:37231/#/", "title": "Conduit", "domHash": "3c44d4d1ff59317a", "canaryPresent": false, @@ -3201,7 +3201,7 @@ "indexedDb": [] } }, - "trace": "traces/d00c3c49909e.zip", + "trace": "traces/9114fcfdd048.zip", "snapshotIndex": "snapshots/RD-007.index.json" }, "verdict": "VERIFIED", @@ -3212,8 +3212,8 @@ { "id": "RD-008", "action": { - "id": "618e17be243c", - "pageUrl": "http://127.0.0.1:37221/#/login", + "id": "b3a8622fbee3", + "pageUrl": "http://127.0.0.1:37231/#/login", "label": "Home", "activation": "click", "kind": "navigation", @@ -3226,7 +3226,7 @@ "role": "link", "accessibleName": "Home", "text": "Home", - "href": "http://127.0.0.1:37221/#/", + "href": "http://127.0.0.1:37231/#/", "candidates": [ { "strategy": "role", @@ -3245,7 +3245,7 @@ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37221/#/" + "value": "http://127.0.0.1:37231/#/" }, { "strategy": "text", @@ -3263,31 +3263,31 @@ "fields": [] }, "evidence": { - "startedAt": "2026-07-26T12:01:18.299Z", - "durationMs": 2467, - "canary": "RD_TEST_C4734F", + "startedAt": "2026-07-26T14:01:48.462Z", + "durationMs": 2453, + "canary": "RD_TEST_1329E9", "network": [ { "id": "net-1", "method": "GET", - "url": "http://127.0.0.1:37221/api/articles?limit=3&&offset=0", + "url": "http://127.0.0.1:37231/api/articles?limit=3&&offset=0", "resourceType": "xhr", - "startedAt": 1496, + "startedAt": 1482, "status": 200, "ok": true, + "finishedAt": 1489, "contentType": "application/json", - "resourceTypeHint": "articles", - "finishedAt": 1501 + "resourceTypeHint": "articles" }, { "id": "net-2", "method": "GET", - "url": "http://127.0.0.1:37221/api/tags", + "url": "http://127.0.0.1:37231/api/tags", "resourceType": "xhr", - "startedAt": 1496, + "startedAt": 1483, "status": 200, "ok": true, - "finishedAt": 1502, + "finishedAt": 1489, "contentType": "application/json", "resourceTypeHint": "tags" } @@ -3308,14 +3308,14 @@ "weight": 92, "matchCount": 0, "visibleCount": 0, - "elapsedMs": 3 + "elapsedMs": 4 }, { "strategy": "role", "weight": 82, "matchCount": 1, "visibleCount": 1, - "elapsedMs": 5 + "elapsedMs": 4 } ], "chosenStrategy": "role", @@ -3323,8 +3323,8 @@ "retryCount": 0 }, "before": { - "at": 1457, - "url": "http://127.0.0.1:37221/#/login", + "at": 1442, + "url": "http://127.0.0.1:37231/#/login", "title": "Conduit", "domHash": "c659be8900b0e706", "canaryPresent": false, @@ -3380,8 +3380,8 @@ } }, "beforeAction": { - "at": 1465, - "url": "http://127.0.0.1:37221/#/login", + "at": 1451, + "url": "http://127.0.0.1:37231/#/login", "title": "Conduit", "domHash": "c659be8900b0e706", "canaryPresent": false, @@ -3439,8 +3439,8 @@ "networkSettled": true, "targetBusyAfter": false, "after": { - "at": 2463, - "url": "http://127.0.0.1:37221/#/", + "at": 2448, + "url": "http://127.0.0.1:37231/#/", "title": "Conduit", "domHash": "3c44d4d1ff59317a", "canaryPresent": false, @@ -3477,7 +3477,7 @@ "indexedDb": [] } }, - "trace": "traces/618e17be243c.zip", + "trace": "traces/b3a8622fbee3.zip", "snapshotIndex": "snapshots/RD-008.index.json" }, "verdict": "VERIFIED", @@ -3488,8 +3488,8 @@ { "id": "RD-009", "action": { - "id": "95b09f480e07", - "pageUrl": "http://127.0.0.1:37221/#/login", + "id": "e503c3971ee4", + "pageUrl": "http://127.0.0.1:37231/#/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:37221/#/register", + "href": "http://127.0.0.1:37231/#/register", "candidates": [ { "strategy": "role", @@ -3521,7 +3521,7 @@ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37221/#/register" + "value": "http://127.0.0.1:37231/#/register" }, { "strategy": "text", @@ -3539,9 +3539,9 @@ "fields": [] }, "evidence": { - "startedAt": "2026-07-26T12:01:20.818Z", - "durationMs": 2493, - "canary": "RD_TEST_DB40F3", + "startedAt": "2026-07-26T14:01:50.966Z", + "durationMs": 2471, + "canary": "RD_TEST_5E8DE3", "network": [], "console": [], "pageErrors": [], @@ -3559,7 +3559,7 @@ "weight": 92, "matchCount": 1, "visibleCount": 1, - "elapsedMs": 6 + "elapsedMs": 7 } ], "chosenStrategy": "role", @@ -3567,8 +3567,8 @@ "retryCount": 0 }, "before": { - "at": 1464, - "url": "http://127.0.0.1:37221/#/login", + "at": 1460, + "url": "http://127.0.0.1:37231/#/login", "title": "Conduit", "domHash": "c659be8900b0e706", "canaryPresent": false, @@ -3624,8 +3624,8 @@ } }, "beforeAction": { - "at": 1473, - "url": "http://127.0.0.1:37221/#/login", + "at": 1471, + "url": "http://127.0.0.1:37231/#/login", "title": "Conduit", "domHash": "c659be8900b0e706", "canaryPresent": false, @@ -3683,8 +3683,8 @@ "networkSettled": true, "targetBusyAfter": false, "after": { - "at": 2485, - "url": "http://127.0.0.1:37221/#/register", + "at": 2467, + "url": "http://127.0.0.1:37231/#/register", "title": "Conduit", "domHash": "1f4fa65964895f4c", "canaryPresent": false, @@ -3748,7 +3748,7 @@ "indexedDb": [] } }, - "trace": "traces/95b09f480e07.zip", + "trace": "traces/e503c3971ee4.zip", "snapshotIndex": "snapshots/RD-009.index.json" }, "verdict": "VERIFIED", @@ -3759,8 +3759,8 @@ { "id": "RD-010", "action": { - "id": "28f52f75932f", - "pageUrl": "http://127.0.0.1:37221/#/login", + "id": "d7bb403f31db", + "pageUrl": "http://127.0.0.1:37231/#/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:37221/#/register", + "href": "http://127.0.0.1:37231/#/register", "candidates": [ { "strategy": "role", @@ -3792,7 +3792,7 @@ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37221/#/register" + "value": "http://127.0.0.1:37231/#/register" }, { "strategy": "text", @@ -3810,9 +3810,9 @@ "fields": [] }, "evidence": { - "startedAt": "2026-07-26T12:01:23.358Z", - "durationMs": 2475, - "canary": "RD_TEST_927837", + "startedAt": "2026-07-26T14:01:53.477Z", + "durationMs": 2464, + "canary": "RD_TEST_A3C996", "network": [], "console": [], "pageErrors": [], @@ -3838,8 +3838,8 @@ "retryCount": 0 }, "before": { - "at": 1463, - "url": "http://127.0.0.1:37221/#/login", + "at": 1449, + "url": "http://127.0.0.1:37231/#/login", "title": "Conduit", "domHash": "c659be8900b0e706", "canaryPresent": false, @@ -3895,8 +3895,8 @@ } }, "beforeAction": { - "at": 1472, - "url": "http://127.0.0.1:37221/#/login", + "at": 1458, + "url": "http://127.0.0.1:37231/#/login", "title": "Conduit", "domHash": "c659be8900b0e706", "canaryPresent": false, @@ -3954,8 +3954,8 @@ "networkSettled": true, "targetBusyAfter": false, "after": { - "at": 2471, - "url": "http://127.0.0.1:37221/#/register", + "at": 2459, + "url": "http://127.0.0.1:37231/#/register", "title": "Conduit", "domHash": "1f4fa65964895f4c", "canaryPresent": false, @@ -4019,7 +4019,7 @@ "indexedDb": [] } }, - "trace": "traces/28f52f75932f.zip", + "trace": "traces/d7bb403f31db.zip", "snapshotIndex": "snapshots/RD-010.index.json" }, "verdict": "VERIFIED", @@ -4030,8 +4030,8 @@ { "id": "RD-011", "action": { - "id": "95e44ee989af", - "pageUrl": "http://127.0.0.1:37221/#/login", + "id": "ea77cc23a3ee", + "pageUrl": "http://127.0.0.1:37231/#/login", "label": "Login", "activation": "submit", "kind": "mutation", @@ -4080,20 +4080,20 @@ ] }, "evidence": { - "startedAt": "2026-07-26T12:01:25.876Z", - "durationMs": 6772, - "canary": "RD_TEST_8846BC", + "startedAt": "2026-07-26T14:01:55.996Z", + "durationMs": 6783, + "canary": "RD_TEST_3DCC3B", "network": [ { "id": "net-1", "method": "POST", - "url": "http://127.0.0.1:37221/api/users/login", + "url": "http://127.0.0.1:37231/api/users/login", "resourceType": "xhr", - "startedAt": 1557, + "startedAt": 1527, "status": 404, "ok": false, "contentType": "application/json", - "finishedAt": 1576, + "finishedAt": 1583, "resourceTypeHint": "login" }, { @@ -4101,17 +4101,17 @@ "method": "GET", "url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwlxdu.woff2", "resourceType": "font", - "startedAt": 1583, + "startedAt": 1591, "status": 200, "ok": true, - "finishedAt": 1639, + "finishedAt": 1637, "contentType": "font/woff2", "resourceTypeHint": "6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwlxdu.woff2" }, { "id": "net-3", "method": "GET", - "url": "http://127.0.0.1:37221/", + "url": "http://127.0.0.1:37231/", "resourceType": "document", "startedAt": 2608, "status": 200, @@ -4128,7 +4128,7 @@ "startedAt": 2614, "status": 307, "ok": false, - "finishedAt": 2617, + "finishedAt": 2618, "location": "https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css", "resourceTypeHint": "ionicons.min.css" }, @@ -4140,14 +4140,14 @@ "startedAt": 2615, "status": 200, "ok": true, - "finishedAt": 2655, + "finishedAt": 2653, "contentType": "text/css", "resourceTypeHint": "css" }, { "id": "net-6", "method": "GET", - "url": "http://127.0.0.1:37221/assets/index-CLdavoKn.js", + "url": "http://127.0.0.1:37231/assets/index-CLdavoKn.js", "resourceType": "script", "startedAt": 2615, "status": 200, @@ -4159,9 +4159,9 @@ { "id": "net-7", "method": "GET", - "url": "http://127.0.0.1:37221/assets/index-De1Lwdlm.css", + "url": "http://127.0.0.1:37231/assets/index-De1Lwdlm.css", "resourceType": "stylesheet", - "startedAt": 2616, + "startedAt": 2615, "status": 200, "ok": true, "finishedAt": 2621, @@ -4173,22 +4173,22 @@ "method": "GET", "url": "https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css", "resourceType": "stylesheet", - "startedAt": 2617, + "startedAt": 2618, "status": 200, "ok": true, "contentType": "text/css", "resourceTypeHint": "ionicons.min.css", - "finishedAt": 2765 + "finishedAt": 2766 }, { "id": "net-9", "method": "GET", "url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdu.woff2", "resourceType": "font", - "startedAt": 2772, + "startedAt": 2775, "status": 200, "ok": true, - "finishedAt": 2827, + "finishedAt": 2822, "contentType": "font/woff2", "resourceTypeHint": "6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdu.woff2" }, @@ -4197,22 +4197,22 @@ "method": "GET", "url": "https://code.ionicframework.com/ionicons/2.0.1/fonts/ionicons.ttf?v=2.0.1", "resourceType": "font", - "startedAt": 2773, + "startedAt": 2775, "status": 200, "ok": true, - "finishedAt": 2936, "contentType": "font/ttf", - "resourceTypeHint": "ionicons.ttf" + "resourceTypeHint": "ionicons.ttf", + "finishedAt": 2893 }, { "id": "net-11", "method": "GET", "url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7l.woff2", "resourceType": "font", - "startedAt": 2774, + "startedAt": 2776, "status": 200, "ok": true, - "finishedAt": 2819, + "finishedAt": 2821, "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": 2774, + "startedAt": 2776, "status": 200, "ok": true, - "finishedAt": 2819, + "finishedAt": 2826, "contentType": "font/woff2", "resourceTypeHint": "6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7nsDI.woff2" }, { "id": "net-13", "method": "GET", - "url": "http://127.0.0.1:37221/", + "url": "http://127.0.0.1:37231/", "resourceType": "document", - "startedAt": 3598, + "startedAt": 3605, "status": 200, "ok": true, "contentType": "text/html", "resourceTypeHint": "resource", - "finishedAt": 3607 + "finishedAt": 3615 }, { "id": "net-14", "method": "GET", "url": "http://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css", "resourceType": "stylesheet", - "startedAt": 3605, + "startedAt": 3613, "status": 307, "ok": false, - "finishedAt": 3608, + "finishedAt": 3617, "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": 3606, + "startedAt": 3614, "status": 200, "ok": true, - "finishedAt": 3645, + "finishedAt": 3655, "contentType": "text/css", "resourceTypeHint": "css" }, { "id": "net-16", "method": "GET", - "url": "http://127.0.0.1:37221/assets/index-CLdavoKn.js", + "url": "http://127.0.0.1:37231/assets/index-CLdavoKn.js", "resourceType": "script", - "startedAt": 3606, + "startedAt": 3614, "status": 200, "ok": true, - "finishedAt": 3619, + "finishedAt": 3628, "contentType": "text/javascript", "resourceTypeHint": "index-CLdavoKn.js" }, { "id": "net-17", "method": "GET", - "url": "http://127.0.0.1:37221/assets/index-De1Lwdlm.css", + "url": "http://127.0.0.1:37231/assets/index-De1Lwdlm.css", "resourceType": "stylesheet", - "startedAt": 3606, + "startedAt": 3614, "status": 200, "ok": true, "contentType": "text/css", "resourceTypeHint": "index-De1Lwdlm.css", - "finishedAt": 3611 + "finishedAt": 3619 }, { "id": "net-18", "method": "GET", "url": "https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css", "resourceType": "stylesheet", - "startedAt": 3608, + "startedAt": 3617, "status": 200, "ok": true, + "finishedAt": 3697, "contentType": "text/css", - "resourceTypeHint": "ionicons.min.css", - "finishedAt": 3686 + "resourceTypeHint": "ionicons.min.css" }, { "id": "net-19", "method": "GET", "url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdu.woff2", "resourceType": "font", - "startedAt": 3694, + "startedAt": 3705, "status": 200, "ok": true, - "finishedAt": 3749, + "finishedAt": 3750, "contentType": "font/woff2", "resourceTypeHint": "6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdu.woff2" }, @@ -4317,22 +4317,22 @@ "method": "GET", "url": "https://code.ionicframework.com/ionicons/2.0.1/fonts/ionicons.ttf?v=2.0.1", "resourceType": "font", - "startedAt": 3695, + "startedAt": 3706, "status": 200, "ok": true, - "finishedAt": 3808, "contentType": "font/ttf", - "resourceTypeHint": "ionicons.ttf" + "resourceTypeHint": "ionicons.ttf", + "finishedAt": 3823 }, { "id": "net-21", "method": "GET", "url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7l.woff2", "resourceType": "font", - "startedAt": 3695, + "startedAt": 3706, "status": 200, "ok": true, - "finishedAt": 3740, + "finishedAt": 3751, "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": 3695, + "startedAt": 3706, "status": 200, "ok": true, - "finishedAt": 3741, + "finishedAt": 3752, "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": 1574 + "at": 1581 } ], "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_8846bc_1@example.test", + "value": "rd-rd_test_3dcc3b_1@example.test", "redacted": false }, { @@ -4392,14 +4392,14 @@ "weight": 60, "matchCount": 2, "visibleCount": 2, - "elapsedMs": 11 + "elapsedMs": 6 }, { "strategy": "css", "weight": 35, "matchCount": 1, "visibleCount": 1, - "elapsedMs": 6 + "elapsedMs": 4 } ], "chosenStrategy": "css", @@ -4407,8 +4407,8 @@ "retryCount": 0 }, "before": { - "at": 1460, - "url": "http://127.0.0.1:37221/#/login", + "at": 1455, + "url": "http://127.0.0.1:37231/#/login", "title": "Conduit", "domHash": "c659be8900b0e706", "canaryPresent": false, @@ -4512,27 +4512,27 @@ "rows": [ { "keyHash": "186347d9ea7673a2", - "rowHash": "959c2e8bd7b6e2cf", + "rowHash": "284d36d0ae89c51e", "softDeleted": false }, { "keyHash": "da7114755c3b82ba", - "rowHash": "8db9a59c5612cb81", + "rowHash": "1c4585496db46f77", "softDeleted": false }, { "keyHash": "84cf60166b2ca345", - "rowHash": "52c2d2fcddde83d5", + "rowHash": "96e5c92d8eaef698", "softDeleted": false }, { "keyHash": "9ef59241e15425e0", - "rowHash": "320ff3d9d68f6896", + "rowHash": "4875f45bcd1a45ce", "softDeleted": false }, { "keyHash": "82a8445b12df5a29", - "rowHash": "6f62fc7542931048", + "rowHash": "de9ae54d3a239fce", "softDeleted": false } ], @@ -4541,10 +4541,10 @@ ] }, "beforeAction": { - "at": 1498, - "url": "http://127.0.0.1:37221/#/login", + "at": 1487, + "url": "http://127.0.0.1:37231/#/login", "title": "Conduit", - "domHash": "a511a40526161e42", + "domHash": "2f754b78b325d64e", "canaryPresent": true, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -4564,7 +4564,7 @@ "tag": "input", "type": "email", "name": "email", - "valueHash": "28278071a8bb768c", + "valueHash": "a5264cebc092838e", "checked": false, "disabled": false, "visible": true @@ -4602,9 +4602,9 @@ "targetBusyAfter": false, "after": { "at": 2602, - "url": "http://127.0.0.1:37221/#/login", + "url": "http://127.0.0.1:37231/#/login", "title": "Conduit", - "domHash": "5ab371c08797d412", + "domHash": "dc050152b6e68307", "canaryPresent": true, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -4624,7 +4624,7 @@ "tag": "input", "type": "email", "name": "email", - "valueHash": "28278071a8bb768c", + "valueHash": "a5264cebc092838e", "checked": false, "disabled": false, "visible": true @@ -4706,27 +4706,27 @@ "rows": [ { "keyHash": "186347d9ea7673a2", - "rowHash": "959c2e8bd7b6e2cf", + "rowHash": "284d36d0ae89c51e", "softDeleted": false }, { "keyHash": "da7114755c3b82ba", - "rowHash": "8db9a59c5612cb81", + "rowHash": "1c4585496db46f77", "softDeleted": false }, { "keyHash": "84cf60166b2ca345", - "rowHash": "52c2d2fcddde83d5", + "rowHash": "96e5c92d8eaef698", "softDeleted": false }, { "keyHash": "9ef59241e15425e0", - "rowHash": "320ff3d9d68f6896", + "rowHash": "4875f45bcd1a45ce", "softDeleted": false }, { "keyHash": "82a8445b12df5a29", - "rowHash": "6f62fc7542931048", + "rowHash": "de9ae54d3a239fce", "softDeleted": false } ], @@ -4735,8 +4735,8 @@ ] }, "afterRefresh": { - "at": 3595, - "url": "http://127.0.0.1:37221/#/login", + "at": 3602, + "url": "http://127.0.0.1:37231/#/login", "title": "Conduit", "domHash": "c659be8900b0e706", "canaryPresent": false, @@ -4792,8 +4792,8 @@ } }, "afterHardRefresh": { - "at": 4512, - "url": "http://127.0.0.1:37221/#/login", + "at": 4522, + "url": "http://127.0.0.1:37231/#/login", "title": "Conduit", "domHash": "c659be8900b0e706", "canaryPresent": false, @@ -4849,8 +4849,8 @@ } }, "afterNewTab": { - "at": 5496, - "url": "http://127.0.0.1:37221/#/login", + "at": 5516, + "url": "http://127.0.0.1:37231/#/login", "title": "Conduit", "domHash": "c659be8900b0e706", "canaryPresent": false, @@ -4906,8 +4906,8 @@ } }, "afterNewContext": { - "at": 6768, - "url": "http://127.0.0.1:37221/#/login", + "at": 6780, + "url": "http://127.0.0.1:37231/#/login", "title": "Conduit", "domHash": "c659be8900b0e706", "canaryPresent": false, @@ -5047,8 +5047,8 @@ { "id": "RD-012", "action": { - "id": "794e0c18aff0", - "pageUrl": "http://127.0.0.1:37221/#/login", + "id": "07725cd9afb9", + "pageUrl": "http://127.0.0.1:37231/#/login", "label": "conduit", "activation": "click", "kind": "navigation", @@ -5061,7 +5061,7 @@ "role": "link", "accessibleName": "conduit", "text": "conduit", - "href": "http://127.0.0.1:37221/#/", + "href": "http://127.0.0.1:37231/#/", "candidates": [ { "strategy": "role", @@ -5080,7 +5080,7 @@ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37221/#/" + "value": "http://127.0.0.1:37231/#/" }, { "strategy": "text", @@ -5098,31 +5098,31 @@ "fields": [] }, "evidence": { - "startedAt": "2026-07-26T12:01:32.726Z", - "durationMs": 2493, - "canary": "RD_TEST_90DA8A", + "startedAt": "2026-07-26T14:02:02.828Z", + "durationMs": 2516, + "canary": "RD_TEST_F47F80", "network": [ { "id": "net-1", "method": "GET", - "url": "http://127.0.0.1:37221/api/articles?limit=3&&offset=0", + "url": "http://127.0.0.1:37231/api/articles?limit=3&&offset=0", "resourceType": "xhr", - "startedAt": 1518, + "startedAt": 1535, "status": 200, "ok": true, "contentType": "application/json", "resourceTypeHint": "articles", - "finishedAt": 1524 + "finishedAt": 1542 }, { "id": "net-2", "method": "GET", - "url": "http://127.0.0.1:37221/api/tags", + "url": "http://127.0.0.1:37231/api/tags", "resourceType": "xhr", - "startedAt": 1519, + "startedAt": 1536, "status": 200, "ok": true, - "finishedAt": 1525, + "finishedAt": 1542, "contentType": "application/json", "resourceTypeHint": "tags" } @@ -5143,14 +5143,14 @@ "weight": 92, "matchCount": 2, "visibleCount": 2, - "elapsedMs": 8 + "elapsedMs": 7 }, { "strategy": "role", "weight": 82, "matchCount": 2, "visibleCount": 2, - "elapsedMs": 6 + "elapsedMs": 7 }, { "strategy": "href", @@ -5171,7 +5171,7 @@ "weight": 35, "matchCount": 1, "visibleCount": 1, - "elapsedMs": 3 + "elapsedMs": 4 } ], "chosenStrategy": "css", @@ -5179,8 +5179,8 @@ "retryCount": 0 }, "before": { - "at": 1477, - "url": "http://127.0.0.1:37221/#/login", + "at": 1497, + "url": "http://127.0.0.1:37231/#/login", "title": "Conduit", "domHash": "c659be8900b0e706", "canaryPresent": false, @@ -5236,8 +5236,8 @@ } }, "beforeAction": { - "at": 1485, - "url": "http://127.0.0.1:37221/#/login", + "at": 1505, + "url": "http://127.0.0.1:37231/#/login", "title": "Conduit", "domHash": "c659be8900b0e706", "canaryPresent": false, @@ -5295,8 +5295,8 @@ "networkSettled": true, "targetBusyAfter": false, "after": { - "at": 2489, - "url": "http://127.0.0.1:37221/#/", + "at": 2513, + "url": "http://127.0.0.1:37231/#/", "title": "Conduit", "domHash": "3c44d4d1ff59317a", "canaryPresent": false, @@ -5333,7 +5333,7 @@ "indexedDb": [] } }, - "trace": "traces/794e0c18aff0.zip", + "trace": "traces/07725cd9afb9.zip", "snapshotIndex": "snapshots/RD-012.index.json" }, "verdict": "VERIFIED", @@ -5344,8 +5344,8 @@ { "id": "RD-013", "action": { - "id": "82d8b258667a", - "pageUrl": "http://127.0.0.1:37221/#/register", + "id": "cdb2ccb8cb6e", + "pageUrl": "http://127.0.0.1:37231/#/register", "label": "conduit", "activation": "click", "kind": "navigation", @@ -5358,7 +5358,7 @@ "role": "link", "accessibleName": "conduit", "text": "conduit", - "href": "http://127.0.0.1:37221/#/", + "href": "http://127.0.0.1:37231/#/", "candidates": [ { "strategy": "role", @@ -5377,7 +5377,7 @@ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37221/#/" + "value": "http://127.0.0.1:37231/#/" }, { "strategy": "text", @@ -5395,31 +5395,31 @@ "fields": [] }, "evidence": { - "startedAt": "2026-07-26T12:01:35.262Z", - "durationMs": 2484, - "canary": "RD_TEST_FA1017", + "startedAt": "2026-07-26T14:02:05.393Z", + "durationMs": 2437, + "canary": "RD_TEST_1FA921", "network": [ { "id": "net-1", "method": "GET", - "url": "http://127.0.0.1:37221/api/articles?limit=3&&offset=0", + "url": "http://127.0.0.1:37231/api/articles?limit=3&&offset=0", "resourceType": "xhr", - "startedAt": 1515, + "startedAt": 1495, "status": 200, "ok": true, "contentType": "application/json", "resourceTypeHint": "articles", - "finishedAt": 1520 + "finishedAt": 1502 }, { "id": "net-2", "method": "GET", - "url": "http://127.0.0.1:37221/api/tags", + "url": "http://127.0.0.1:37231/api/tags", "resourceType": "xhr", - "startedAt": 1515, + "startedAt": 1496, "status": 200, "ok": true, - "finishedAt": 1521, + "finishedAt": 1502, "contentType": "application/json", "resourceTypeHint": "tags" } @@ -5440,7 +5440,7 @@ "weight": 92, "matchCount": 2, "visibleCount": 2, - "elapsedMs": 8 + "elapsedMs": 7 }, { "strategy": "role", @@ -5468,7 +5468,7 @@ "weight": 35, "matchCount": 1, "visibleCount": 1, - "elapsedMs": 4 + "elapsedMs": 3 } ], "chosenStrategy": "css", @@ -5476,8 +5476,8 @@ "retryCount": 0 }, "before": { - "at": 1478, - "url": "http://127.0.0.1:37221/#/register", + "at": 1456, + "url": "http://127.0.0.1:37231/#/register", "title": "Conduit", "domHash": "1f4fa65964895f4c", "canaryPresent": false, @@ -5542,8 +5542,8 @@ } }, "beforeAction": { - "at": 1487, - "url": "http://127.0.0.1:37221/#/register", + "at": 1464, + "url": "http://127.0.0.1:37231/#/register", "title": "Conduit", "domHash": "1f4fa65964895f4c", "canaryPresent": false, @@ -5610,8 +5610,8 @@ "networkSettled": true, "targetBusyAfter": false, "after": { - "at": 2480, - "url": "http://127.0.0.1:37221/#/", + "at": 2433, + "url": "http://127.0.0.1:37231/#/", "title": "Conduit", "domHash": "3c44d4d1ff59317a", "canaryPresent": false, @@ -5648,7 +5648,7 @@ "indexedDb": [] } }, - "trace": "traces/82d8b258667a.zip", + "trace": "traces/cdb2ccb8cb6e.zip", "snapshotIndex": "snapshots/RD-013.index.json" }, "verdict": "VERIFIED", @@ -5659,8 +5659,8 @@ { "id": "RD-014", "action": { - "id": "974fd9c7acc8", - "pageUrl": "http://127.0.0.1:37221/#/register", + "id": "3d6e0da61a22", + "pageUrl": "http://127.0.0.1:37231/#/register", "label": "Home", "activation": "click", "kind": "navigation", @@ -5673,7 +5673,7 @@ "role": "link", "accessibleName": "Home", "text": "Home", - "href": "http://127.0.0.1:37221/#/", + "href": "http://127.0.0.1:37231/#/", "candidates": [ { "strategy": "role", @@ -5692,7 +5692,7 @@ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37221/#/" + "value": "http://127.0.0.1:37231/#/" }, { "strategy": "text", @@ -5710,31 +5710,31 @@ "fields": [] }, "evidence": { - "startedAt": "2026-07-26T12:01:37.779Z", - "durationMs": 2476, - "canary": "RD_TEST_C29A62", + "startedAt": "2026-07-26T14:02:07.862Z", + "durationMs": 2433, + "canary": "RD_TEST_A508E2", "network": [ { "id": "net-1", "method": "GET", - "url": "http://127.0.0.1:37221/api/articles?limit=3&&offset=0", + "url": "http://127.0.0.1:37231/api/articles?limit=3&&offset=0", "resourceType": "xhr", - "startedAt": 1515, + "startedAt": 1478, "status": 200, "ok": true, "contentType": "application/json", "resourceTypeHint": "articles", - "finishedAt": 1522 + "finishedAt": 1485 }, { "id": "net-2", "method": "GET", - "url": "http://127.0.0.1:37221/api/tags", + "url": "http://127.0.0.1:37231/api/tags", "resourceType": "xhr", - "startedAt": 1515, + "startedAt": 1479, "status": 200, "ok": true, - "finishedAt": 1522, + "finishedAt": 1485, "contentType": "application/json", "resourceTypeHint": "tags" } @@ -5770,8 +5770,8 @@ "retryCount": 0 }, "before": { - "at": 1473, - "url": "http://127.0.0.1:37221/#/register", + "at": 1442, + "url": "http://127.0.0.1:37231/#/register", "title": "Conduit", "domHash": "1f4fa65964895f4c", "canaryPresent": false, @@ -5836,8 +5836,8 @@ } }, "beforeAction": { - "at": 1482, - "url": "http://127.0.0.1:37221/#/register", + "at": 1450, + "url": "http://127.0.0.1:37231/#/register", "title": "Conduit", "domHash": "1f4fa65964895f4c", "canaryPresent": false, @@ -5904,8 +5904,8 @@ "networkSettled": true, "targetBusyAfter": false, "after": { - "at": 2473, - "url": "http://127.0.0.1:37221/#/", + "at": 2430, + "url": "http://127.0.0.1:37231/#/", "title": "Conduit", "domHash": "3c44d4d1ff59317a", "canaryPresent": false, @@ -5942,7 +5942,7 @@ "indexedDb": [] } }, - "trace": "traces/974fd9c7acc8.zip", + "trace": "traces/3d6e0da61a22.zip", "snapshotIndex": "snapshots/RD-014.index.json" }, "verdict": "VERIFIED", @@ -5953,8 +5953,8 @@ { "id": "RD-015", "action": { - "id": "bf800e4ddf63", - "pageUrl": "http://127.0.0.1:37221/#/register", + "id": "0eb209f92212", + "pageUrl": "http://127.0.0.1:37231/#/register", "label": "Login", "activation": "click", "kind": "navigation", @@ -5967,7 +5967,7 @@ "role": "link", "accessibleName": "Login", "text": "Login", - "href": "http://127.0.0.1:37221/#/login", + "href": "http://127.0.0.1:37231/#/login", "candidates": [ { "strategy": "role", @@ -5986,7 +5986,7 @@ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37221/#/login" + "value": "http://127.0.0.1:37231/#/login" }, { "strategy": "text", @@ -6004,9 +6004,9 @@ "fields": [] }, "evidence": { - "startedAt": "2026-07-26T12:01:40.299Z", - "durationMs": 2432, - "canary": "RD_TEST_CA8CA7", + "startedAt": "2026-07-26T14:02:10.330Z", + "durationMs": 2441, + "canary": "RD_TEST_50702B", "network": [], "console": [], "pageErrors": [], @@ -6031,7 +6031,7 @@ "weight": 82, "matchCount": 1, "visibleCount": 1, - "elapsedMs": 5 + "elapsedMs": 4 } ], "chosenStrategy": "role", @@ -6039,8 +6039,8 @@ "retryCount": 0 }, "before": { - "at": 1426, - "url": "http://127.0.0.1:37221/#/register", + "at": 1424, + "url": "http://127.0.0.1:37231/#/register", "title": "Conduit", "domHash": "1f4fa65964895f4c", "canaryPresent": false, @@ -6105,8 +6105,8 @@ } }, "beforeAction": { - "at": 1435, - "url": "http://127.0.0.1:37221/#/register", + "at": 1432, + "url": "http://127.0.0.1:37231/#/register", "title": "Conduit", "domHash": "1f4fa65964895f4c", "canaryPresent": false, @@ -6173,8 +6173,8 @@ "networkSettled": true, "targetBusyAfter": false, "after": { - "at": 2428, - "url": "http://127.0.0.1:37221/#/login", + "at": 2438, + "url": "http://127.0.0.1:37231/#/login", "title": "Conduit", "domHash": "c659be8900b0e706", "canaryPresent": false, @@ -6229,7 +6229,7 @@ "indexedDb": [] } }, - "trace": "traces/bf800e4ddf63.zip", + "trace": "traces/0eb209f92212.zip", "snapshotIndex": "snapshots/RD-015.index.json" }, "verdict": "VERIFIED", @@ -6240,8 +6240,8 @@ { "id": "RD-016", "action": { - "id": "50015942fa59", - "pageUrl": "http://127.0.0.1:37221/#/register", + "id": "466cc14e3c93", + "pageUrl": "http://127.0.0.1:37231/#/register", "label": "Sign in to your account", "activation": "click", "kind": "navigation", @@ -6254,7 +6254,7 @@ "role": "link", "accessibleName": "Sign in to your account", "text": "Sign in to your account", - "href": "http://127.0.0.1:37221/#/login", + "href": "http://127.0.0.1:37231/#/login", "candidates": [ { "strategy": "role", @@ -6273,7 +6273,7 @@ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37221/#/login" + "value": "http://127.0.0.1:37231/#/login" }, { "strategy": "text", @@ -6291,9 +6291,9 @@ "fields": [] }, "evidence": { - "startedAt": "2026-07-26T12:01:42.766Z", - "durationMs": 2451, - "canary": "RD_TEST_2C6A9B", + "startedAt": "2026-07-26T14:02:12.827Z", + "durationMs": 2462, + "canary": "RD_TEST_DE0C08", "network": [], "console": [], "pageErrors": [], @@ -6319,8 +6319,8 @@ "retryCount": 0 }, "before": { - "at": 1437, - "url": "http://127.0.0.1:37221/#/register", + "at": 1452, + "url": "http://127.0.0.1:37231/#/register", "title": "Conduit", "domHash": "1f4fa65964895f4c", "canaryPresent": false, @@ -6385,8 +6385,8 @@ } }, "beforeAction": { - "at": 1446, - "url": "http://127.0.0.1:37221/#/register", + "at": 1461, + "url": "http://127.0.0.1:37231/#/register", "title": "Conduit", "domHash": "1f4fa65964895f4c", "canaryPresent": false, @@ -6453,8 +6453,8 @@ "networkSettled": true, "targetBusyAfter": false, "after": { - "at": 2446, - "url": "http://127.0.0.1:37221/#/login", + "at": 2458, + "url": "http://127.0.0.1:37231/#/login", "title": "Conduit", "domHash": "c659be8900b0e706", "canaryPresent": false, @@ -6509,7 +6509,7 @@ "indexedDb": [] } }, - "trace": "traces/50015942fa59.zip", + "trace": "traces/466cc14e3c93.zip", "snapshotIndex": "snapshots/RD-016.index.json" }, "verdict": "VERIFIED", @@ -6520,8 +6520,8 @@ { "id": "RD-017", "action": { - "id": "69097d25d757", - "pageUrl": "http://127.0.0.1:37221/#/register", + "id": "17cb32663fc1", + "pageUrl": "http://127.0.0.1:37231/#/register", "label": "Sign up", "activation": "submit", "kind": "mutation", @@ -6578,79 +6578,79 @@ ] }, "evidence": { - "startedAt": "2026-07-26T12:01:45.263Z", - "durationMs": 6886, - "canary": "RD_TEST_6A1BAD", + "startedAt": "2026-07-26T14:02:15.333Z", + "durationMs": 6810, + "canary": "RD_TEST_39DFD0", "network": [ { "id": "net-1", "method": "POST", - "url": "http://127.0.0.1:37221/api/users", + "url": "http://127.0.0.1:37231/api/users", "resourceType": "xhr", - "startedAt": 1536, + "startedAt": 1558, "status": 201, "ok": true, - "finishedAt": 1673, + "finishedAt": 1687, "contentType": "application/json", "resourceTypeHint": "users" }, { "id": "net-2", "method": "GET", - "url": "http://127.0.0.1:37221/api/user", + "url": "http://127.0.0.1:37231/api/user", "resourceType": "xhr", - "startedAt": 1678, + "startedAt": 1692, "status": 200, "ok": true, - "finishedAt": 1684, + "finishedAt": 1698, "contentType": "application/json", "resourceTypeHint": "user" }, { "id": "net-3", "method": "GET", - "url": "http://127.0.0.1:37221/api/articles/feed?limit=3&&offset=0", + "url": "http://127.0.0.1:37231/api/articles/feed?limit=3&&offset=0", "resourceType": "xhr", - "startedAt": 1681, + "startedAt": 1694, "status": 200, "ok": true, - "finishedAt": 1689, + "finishedAt": 1704, "contentType": "application/json", "resourceTypeHint": "feed" }, { "id": "net-4", "method": "GET", - "url": "http://127.0.0.1:37221/api/tags", + "url": "http://127.0.0.1:37231/api/tags", "resourceType": "xhr", - "startedAt": 1681, + "startedAt": 1695, "status": 200, "ok": true, - "finishedAt": 1686, + "finishedAt": 1701, "contentType": "application/json", "resourceTypeHint": "tags" }, { "id": "net-5", "method": "GET", - "url": "http://127.0.0.1:37221/", + "url": "http://127.0.0.1:37231/", "resourceType": "document", - "startedAt": 2677, + "startedAt": 2635, "status": 200, "ok": true, "contentType": "text/html", "resourceTypeHint": "resource", - "finishedAt": 2685 + "finishedAt": 2643 }, { "id": "net-6", "method": "GET", "url": "http://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css", "resourceType": "stylesheet", - "startedAt": 2683, + "startedAt": 2641, "status": 307, "ok": false, - "finishedAt": 2687, + "finishedAt": 2644, "location": "https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css", "resourceTypeHint": "ionicons.min.css" }, @@ -6659,34 +6659,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": 2684, + "startedAt": 2642, "status": 200, "ok": true, - "finishedAt": 2722, "contentType": "text/css", - "resourceTypeHint": "css" + "resourceTypeHint": "css", + "finishedAt": 2680 }, { "id": "net-8", "method": "GET", - "url": "http://127.0.0.1:37221/assets/index-CLdavoKn.js", + "url": "http://127.0.0.1:37231/assets/index-CLdavoKn.js", "resourceType": "script", - "startedAt": 2684, + "startedAt": 2642, "status": 200, "ok": true, - "finishedAt": 2698, + "finishedAt": 2655, "contentType": "text/javascript", "resourceTypeHint": "index-CLdavoKn.js" }, { "id": "net-9", "method": "GET", - "url": "http://127.0.0.1:37221/assets/index-De1Lwdlm.css", + "url": "http://127.0.0.1:37231/assets/index-De1Lwdlm.css", "resourceType": "stylesheet", - "startedAt": 2685, + "startedAt": 2642, "status": 200, "ok": true, - "finishedAt": 2691, + "finishedAt": 2648, "contentType": "text/css", "resourceTypeHint": "index-De1Lwdlm.css" }, @@ -6695,22 +6695,22 @@ "method": "GET", "url": "https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css", "resourceType": "stylesheet", - "startedAt": 2687, + "startedAt": 2644, "status": 200, "ok": true, "contentType": "text/css", "resourceTypeHint": "ionicons.min.css", - "finishedAt": 2837 + "finishedAt": 2797 }, { "id": "net-11", "method": "GET", "url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdu.woff2", "resourceType": "font", - "startedAt": 2847, + "startedAt": 2807, "status": 200, "ok": true, - "finishedAt": 2897, + "finishedAt": 2853, "contentType": "font/woff2", "resourceTypeHint": "6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdu.woff2" }, @@ -6719,10 +6719,10 @@ "method": "GET", "url": "https://code.ionicframework.com/ionicons/2.0.1/fonts/ionicons.ttf?v=2.0.1", "resourceType": "font", - "startedAt": 2847, + "startedAt": 2808, "status": 200, "ok": true, - "finishedAt": 3005, + "finishedAt": 2922, "contentType": "font/ttf", "resourceTypeHint": "ionicons.ttf" }, @@ -6731,10 +6731,10 @@ "method": "GET", "url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7l.woff2", "resourceType": "font", - "startedAt": 2848, + "startedAt": 2808, "status": 200, "ok": true, - "finishedAt": 2894, + "finishedAt": 2854, "contentType": "font/woff2", "resourceTypeHint": "6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7l.woff2" }, @@ -6743,70 +6743,70 @@ "method": "GET", "url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7nsDI.woff2", "resourceType": "font", - "startedAt": 2849, + "startedAt": 2808, "status": 200, "ok": true, - "finishedAt": 2896, + "finishedAt": 2855, "contentType": "font/woff2", "resourceTypeHint": "6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7nsDI.woff2" }, { "id": "net-15", "method": "GET", - "url": "http://127.0.0.1:37221/api/articles/feed?limit=3&&offset=0", + "url": "http://127.0.0.1:37231/api/articles/feed?limit=3&&offset=0", "resourceType": "xhr", - "startedAt": 2850, + "startedAt": 2810, "status": 200, "ok": true, - "finishedAt": 2859, + "finishedAt": 2818, "contentType": "application/json", "resourceTypeHint": "feed" }, { "id": "net-16", "method": "GET", - "url": "http://127.0.0.1:37221/api/tags", + "url": "http://127.0.0.1:37231/api/tags", "resourceType": "xhr", - "startedAt": 2850, + "startedAt": 2810, "status": 200, "ok": true, "contentType": "application/json", "resourceTypeHint": "tags", - "finishedAt": 2857 + "finishedAt": 2816 }, { "id": "net-17", "method": "GET", - "url": "http://127.0.0.1:37221/api/user", + "url": "http://127.0.0.1:37231/api/user", "resourceType": "xhr", - "startedAt": 2850, + "startedAt": 2810, "status": 200, "ok": true, - "finishedAt": 2857, + "finishedAt": 2817, "contentType": "application/json", "resourceTypeHint": "user" }, { "id": "net-18", "method": "GET", - "url": "http://127.0.0.1:37221/", + "url": "http://127.0.0.1:37231/", "resourceType": "document", - "startedAt": 3679, + "startedAt": 3627, "status": 200, "ok": true, "contentType": "text/html", "resourceTypeHint": "resource", - "finishedAt": 3687 + "finishedAt": 3634 }, { "id": "net-19", "method": "GET", "url": "http://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css", "resourceType": "stylesheet", - "startedAt": 3685, + "startedAt": 3632, "status": 307, "ok": false, - "finishedAt": 3689, + "finishedAt": 3636, "location": "https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css", "resourceTypeHint": "ionicons.min.css" }, @@ -6815,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": 3686, + "startedAt": 3633, "status": 200, "ok": true, - "finishedAt": 3724, + "finishedAt": 3678, "contentType": "text/css", "resourceTypeHint": "css" }, { "id": "net-21", "method": "GET", - "url": "http://127.0.0.1:37221/assets/index-CLdavoKn.js", + "url": "http://127.0.0.1:37231/assets/index-CLdavoKn.js", "resourceType": "script", - "startedAt": 3686, + "startedAt": 3634, "status": 200, "ok": true, - "finishedAt": 3702, + "finishedAt": 3646, "contentType": "text/javascript", "resourceTypeHint": "index-CLdavoKn.js" }, { "id": "net-22", "method": "GET", - "url": "http://127.0.0.1:37221/assets/index-De1Lwdlm.css", + "url": "http://127.0.0.1:37231/assets/index-De1Lwdlm.css", "resourceType": "stylesheet", - "startedAt": 3687, + "startedAt": 3634, "status": 200, "ok": true, - "finishedAt": 3694, + "finishedAt": 3639, "contentType": "text/css", "resourceTypeHint": "index-De1Lwdlm.css" }, @@ -6851,22 +6851,22 @@ "method": "GET", "url": "https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css", "resourceType": "stylesheet", - "startedAt": 3689, + "startedAt": 3636, "status": 200, "ok": true, + "finishedAt": 3722, "contentType": "text/css", - "resourceTypeHint": "ionicons.min.css", - "finishedAt": 3767 + "resourceTypeHint": "ionicons.min.css" }, { "id": "net-24", "method": "GET", "url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdu.woff2", "resourceType": "font", - "startedAt": 3778, + "startedAt": 3730, "status": 200, "ok": true, - "finishedAt": 3829, + "finishedAt": 3776, "contentType": "font/woff2", "resourceTypeHint": "6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdu.woff2" }, @@ -6875,10 +6875,10 @@ "method": "GET", "url": "https://code.ionicframework.com/ionicons/2.0.1/fonts/ionicons.ttf?v=2.0.1", "resourceType": "font", - "startedAt": 3778, + "startedAt": 3731, "status": 200, "ok": true, - "finishedAt": 3885, + "finishedAt": 3835, "contentType": "font/ttf", "resourceTypeHint": "ionicons.ttf" }, @@ -6887,10 +6887,10 @@ "method": "GET", "url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7l.woff2", "resourceType": "font", - "startedAt": 3779, + "startedAt": 3731, "status": 200, "ok": true, - "finishedAt": 3825, + "finishedAt": 3777, "contentType": "font/woff2", "resourceTypeHint": "6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7l.woff2" }, @@ -6899,46 +6899,46 @@ "method": "GET", "url": "http://fonts.gstatic.com/s/sourcesanspro/v23/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7nsDI.woff2", "resourceType": "font", - "startedAt": 3780, + "startedAt": 3731, "status": 200, "ok": true, - "finishedAt": 3826, + "finishedAt": 3779, "contentType": "font/woff2", "resourceTypeHint": "6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7nsDI.woff2" }, { "id": "net-28", "method": "GET", - "url": "http://127.0.0.1:37221/api/articles/feed?limit=3&&offset=0", + "url": "http://127.0.0.1:37231/api/articles/feed?limit=3&&offset=0", "resourceType": "xhr", - "startedAt": 3781, + "startedAt": 3733, "status": 200, "ok": true, - "finishedAt": 3790, + "finishedAt": 3742, "contentType": "application/json", "resourceTypeHint": "feed" }, { "id": "net-29", "method": "GET", - "url": "http://127.0.0.1:37221/api/tags", + "url": "http://127.0.0.1:37231/api/tags", "resourceType": "xhr", - "startedAt": 3781, + "startedAt": 3733, "status": 200, "ok": true, "contentType": "application/json", "resourceTypeHint": "tags", - "finishedAt": 3787 + "finishedAt": 3739 }, { "id": "net-30", "method": "GET", - "url": "http://127.0.0.1:37221/api/user", + "url": "http://127.0.0.1:37231/api/user", "resourceType": "xhr", - "startedAt": 3782, + "startedAt": 3734, "status": 200, "ok": true, - "finishedAt": 3788, + "finishedAt": 3740, "contentType": "application/json", "resourceTypeHint": "user" } @@ -6951,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_6A1BAD_1", + "value": "RD_TEST_39DFD0_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_6a1bad_2@example.test", + "value": "rd-rd_test_39dfd0_2@example.test", "redacted": false }, { @@ -6987,14 +6987,14 @@ "weight": 60, "matchCount": 3, "visibleCount": 3, - "elapsedMs": 8 + "elapsedMs": 9 }, { "strategy": "css", "weight": 35, "matchCount": 1, "visibleCount": 1, - "elapsedMs": 5 + "elapsedMs": 4 } ], "chosenStrategy": "css", @@ -7002,8 +7002,8 @@ "retryCount": 0 }, "before": { - "at": 1444, - "url": "http://127.0.0.1:37221/#/register", + "at": 1461, + "url": "http://127.0.0.1:37231/#/register", "title": "Conduit", "domHash": "1f4fa65964895f4c", "canaryPresent": false, @@ -7116,27 +7116,27 @@ "rows": [ { "keyHash": "186347d9ea7673a2", - "rowHash": "959c2e8bd7b6e2cf", + "rowHash": "284d36d0ae89c51e", "softDeleted": false }, { "keyHash": "da7114755c3b82ba", - "rowHash": "8db9a59c5612cb81", + "rowHash": "1c4585496db46f77", "softDeleted": false }, { "keyHash": "84cf60166b2ca345", - "rowHash": "52c2d2fcddde83d5", + "rowHash": "96e5c92d8eaef698", "softDeleted": false }, { "keyHash": "9ef59241e15425e0", - "rowHash": "320ff3d9d68f6896", + "rowHash": "4875f45bcd1a45ce", "softDeleted": false }, { "keyHash": "82a8445b12df5a29", - "rowHash": "6f62fc7542931048", + "rowHash": "de9ae54d3a239fce", "softDeleted": false } ], @@ -7145,10 +7145,10 @@ ] }, "beforeAction": { - "at": 1491, - "url": "http://127.0.0.1:37221/#/register", + "at": 1508, + "url": "http://127.0.0.1:37231/#/register", "title": "Conduit", - "domHash": "24c27ef71e1565e9", + "domHash": "c12da6ceab24dcfe", "canaryPresent": true, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -7168,7 +7168,7 @@ "tag": "input", "type": "text", "name": "username", - "valueHash": "49b21136a9219627", + "valueHash": "8f5f128798131bb6", "checked": false, "disabled": false, "visible": true @@ -7177,7 +7177,7 @@ "tag": "input", "type": "email", "name": "email", - "valueHash": "1a3edaa9d85b62ed", + "valueHash": "489c8c49e645b36a", "checked": false, "disabled": false, "visible": true @@ -7213,10 +7213,10 @@ "targetDisabledAfter": false, "networkSettled": true, "after": { - "at": 2671, - "url": "http://127.0.0.1:37221/#/", + "at": 2630, + "url": "http://127.0.0.1:37231/#/", "title": "Conduit", - "domHash": "54d4dd2d1b68ba9a", + "domHash": "6fe5d4897e98251d", "canaryPresent": true, "bodyCanaryPresent": true, "temporaryBlobUrls": 0, @@ -7228,9 +7228,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "7da3caa19a4f1d03", + "textHash": "d6583284ab3bb192", "visualHash": "dfad2167a8f7c17f", - "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", + "text": "conduit Source code Home New Article RD_TEST_39DFD0_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", @@ -7254,7 +7254,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "75a6b768acef1423", + "valueHash": "164b822160506af9", "containsCanary": true } ], @@ -7313,32 +7313,32 @@ "rows": [ { "keyHash": "186347d9ea7673a2", - "rowHash": "959c2e8bd7b6e2cf", + "rowHash": "284d36d0ae89c51e", "softDeleted": false }, { "keyHash": "da7114755c3b82ba", - "rowHash": "8db9a59c5612cb81", + "rowHash": "1c4585496db46f77", "softDeleted": false }, { "keyHash": "84cf60166b2ca345", - "rowHash": "52c2d2fcddde83d5", + "rowHash": "96e5c92d8eaef698", "softDeleted": false }, { "keyHash": "9ef59241e15425e0", - "rowHash": "320ff3d9d68f6896", + "rowHash": "4875f45bcd1a45ce", "softDeleted": false }, { "keyHash": "82a8445b12df5a29", - "rowHash": "6f62fc7542931048", + "rowHash": "de9ae54d3a239fce", "softDeleted": false }, { "keyHash": "2766c815d1c00dbe", - "rowHash": "696f240f4333528c", + "rowHash": "e5c39d18ae511f52", "softDeleted": false } ], @@ -7347,10 +7347,10 @@ ] }, "afterRefresh": { - "at": 3676, - "url": "http://127.0.0.1:37221/#/", + "at": 3624, + "url": "http://127.0.0.1:37231/#/", "title": "Conduit", - "domHash": "54d4dd2d1b68ba9a", + "domHash": "6fe5d4897e98251d", "canaryPresent": true, "bodyCanaryPresent": true, "temporaryBlobUrls": 0, @@ -7362,9 +7362,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "7da3caa19a4f1d03", + "textHash": "d6583284ab3bb192", "visualHash": "dfad2167a8f7c17f", - "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", + "text": "conduit Source code Home New Article RD_TEST_39DFD0_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", @@ -7388,7 +7388,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "75a6b768acef1423", + "valueHash": "164b822160506af9", "containsCanary": true } ], @@ -7399,10 +7399,10 @@ } }, "afterHardRefresh": { - "at": 4596, - "url": "http://127.0.0.1:37221/#/", + "at": 4560, + "url": "http://127.0.0.1:37231/#/", "title": "Conduit", - "domHash": "54d4dd2d1b68ba9a", + "domHash": "6fe5d4897e98251d", "canaryPresent": true, "bodyCanaryPresent": true, "temporaryBlobUrls": 0, @@ -7414,9 +7414,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "7da3caa19a4f1d03", + "textHash": "d6583284ab3bb192", "visualHash": "dfad2167a8f7c17f", - "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", + "text": "conduit Source code Home New Article RD_TEST_39DFD0_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", @@ -7440,7 +7440,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "75a6b768acef1423", + "valueHash": "164b822160506af9", "containsCanary": true } ], @@ -7451,10 +7451,10 @@ } }, "afterNewTab": { - "at": 5605, - "url": "http://127.0.0.1:37221/#/register", + "at": 5547, + "url": "http://127.0.0.1:37231/#/register", "title": "Conduit", - "domHash": "92fdbcd56b4904fe", + "domHash": "94d6fcb1491e2954", "canaryPresent": true, "bodyCanaryPresent": true, "temporaryBlobUrls": 0, @@ -7466,9 +7466,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "d75d631341acd66a", + "textHash": "2d9f9e717063abd6", "visualHash": "4ab503dc0bf627e7", - "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", + "text": "conduit Source code Home New Article RD_TEST_39DFD0_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", @@ -7512,7 +7512,7 @@ "local": [ { "key": "loggedUser", - "valueHash": "75a6b768acef1423", + "valueHash": "164b822160506af9", "containsCanary": true } ], @@ -7523,8 +7523,8 @@ } }, "afterNewContext": { - "at": 6883, - "url": "http://127.0.0.1:37221/#/", + "at": 6807, + "url": "http://127.0.0.1:37231/#/", "title": "Conduit", "domHash": "3c44d4d1ff59317a", "canaryPresent": false, @@ -7649,8 +7649,8 @@ { "id": "RD-018", "action": { - "id": "b978b9f51ea5", - "pageUrl": "http://127.0.0.1:37221/#/register", + "id": "8a6a6bb11245", + "pageUrl": "http://127.0.0.1:37231/#/register", "label": "conduit", "activation": "click", "kind": "navigation", @@ -7663,7 +7663,7 @@ "role": "link", "accessibleName": "conduit", "text": "conduit", - "href": "http://127.0.0.1:37221/#/", + "href": "http://127.0.0.1:37231/#/", "candidates": [ { "strategy": "role", @@ -7682,7 +7682,7 @@ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37221/#/" + "value": "http://127.0.0.1:37231/#/" }, { "strategy": "text", @@ -7700,31 +7700,31 @@ "fields": [] }, "evidence": { - "startedAt": "2026-07-26T12:01:52.179Z", - "durationMs": 2492, - "canary": "RD_TEST_E60A0E", + "startedAt": "2026-07-26T14:02:22.172Z", + "durationMs": 2482, + "canary": "RD_TEST_AAEF83", "network": [ { "id": "net-1", "method": "GET", - "url": "http://127.0.0.1:37221/api/articles?limit=3&&offset=0", + "url": "http://127.0.0.1:37231/api/articles?limit=3&&offset=0", "resourceType": "xhr", - "startedAt": 1520, + "startedAt": 1514, "status": 200, "ok": true, "contentType": "application/json", "resourceTypeHint": "articles", - "finishedAt": 1526 + "finishedAt": 1519 }, { "id": "net-2", "method": "GET", - "url": "http://127.0.0.1:37221/api/tags", + "url": "http://127.0.0.1:37231/api/tags", "resourceType": "xhr", - "startedAt": 1520, + "startedAt": 1514, "status": 200, "ok": true, - "finishedAt": 1527, + "finishedAt": 1520, "contentType": "application/json", "resourceTypeHint": "tags" } @@ -7745,7 +7745,7 @@ "weight": 92, "matchCount": 2, "visibleCount": 2, - "elapsedMs": 8 + "elapsedMs": 7 }, { "strategy": "role", @@ -7759,14 +7759,14 @@ "weight": 72, "matchCount": 0, "visibleCount": 0, - "elapsedMs": 3 + "elapsedMs": 2 }, { "strategy": "text", "weight": 60, "matchCount": 2, "visibleCount": 2, - "elapsedMs": 6 + "elapsedMs": 5 }, { "strategy": "css", @@ -7781,8 +7781,8 @@ "retryCount": 0 }, "before": { - "at": 1478, - "url": "http://127.0.0.1:37221/#/register", + "at": 1474, + "url": "http://127.0.0.1:37231/#/register", "title": "Conduit", "domHash": "1f4fa65964895f4c", "canaryPresent": false, @@ -7847,8 +7847,8 @@ } }, "beforeAction": { - "at": 1489, - "url": "http://127.0.0.1:37221/#/register", + "at": 1482, + "url": "http://127.0.0.1:37231/#/register", "title": "Conduit", "domHash": "1f4fa65964895f4c", "canaryPresent": false, @@ -7915,8 +7915,8 @@ "networkSettled": true, "targetBusyAfter": false, "after": { - "at": 2487, - "url": "http://127.0.0.1:37221/#/", + "at": 2478, + "url": "http://127.0.0.1:37231/#/", "title": "Conduit", "domHash": "3c44d4d1ff59317a", "canaryPresent": false, @@ -7953,7 +7953,7 @@ "indexedDb": [] } }, - "trace": "traces/b978b9f51ea5.zip", + "trace": "traces/8a6a6bb11245.zip", "snapshotIndex": "snapshots/RD-018.index.json" }, "verdict": "VERIFIED", @@ -7964,8 +7964,8 @@ { "id": "RD-019", "action": { - "id": "5bbc1db21d2a", - "pageUrl": "http://127.0.0.1:37221/", + "id": "bd03feaa17a3", + "pageUrl": "http://127.0.0.1:37231/", "label": "Source code", "activation": "click", "kind": "navigation", @@ -8037,8 +8037,8 @@ { "id": "RD-020", "action": { - "id": "565566fdbfc2", - "pageUrl": "http://127.0.0.1:37221/", + "id": "6d211da34bba", + "pageUrl": "http://127.0.0.1:37231/", "label": "Thinkster", "activation": "click", "kind": "navigation", @@ -8110,8 +8110,8 @@ { "id": "RD-021", "action": { - "id": "22c0f93a3b99", - "pageUrl": "http://127.0.0.1:37221/", + "id": "a0a032e7a5b4", + "pageUrl": "http://127.0.0.1:37231/", "label": "Source code", "activation": "click", "kind": "navigation", @@ -8183,8 +8183,8 @@ { "id": "RD-022", "action": { - "id": "a14c21ba2796", - "pageUrl": "http://127.0.0.1:37221/#/login", + "id": "ec41a0192731", + "pageUrl": "http://127.0.0.1:37231/#/login", "label": "Source code", "activation": "click", "kind": "navigation", @@ -8256,8 +8256,8 @@ { "id": "RD-023", "action": { - "id": "a97311e1dff1", - "pageUrl": "http://127.0.0.1:37221/#/login", + "id": "ba7c5e18684c", + "pageUrl": "http://127.0.0.1:37231/#/login", "label": "Login", "activation": "click", "kind": "navigation", @@ -8270,7 +8270,7 @@ "role": "link", "accessibleName": "Login", "text": "Login", - "href": "http://127.0.0.1:37221/#/login", + "href": "http://127.0.0.1:37231/#/login", "candidates": [ { "strategy": "role", @@ -8289,7 +8289,7 @@ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37221/#/login" + "value": "http://127.0.0.1:37231/#/login" }, { "strategy": "text", @@ -8329,8 +8329,8 @@ { "id": "RD-024", "action": { - "id": "5117246bc5ce", - "pageUrl": "http://127.0.0.1:37221/#/login", + "id": "56309d5c2223", + "pageUrl": "http://127.0.0.1:37231/#/login", "label": "Thinkster", "activation": "click", "kind": "navigation", @@ -8402,8 +8402,8 @@ { "id": "RD-025", "action": { - "id": "d605ffbad857", - "pageUrl": "http://127.0.0.1:37221/#/login", + "id": "cf416aa62080", + "pageUrl": "http://127.0.0.1:37231/#/login", "label": "Source code", "activation": "click", "kind": "navigation", @@ -8475,8 +8475,8 @@ { "id": "RD-026", "action": { - "id": "86c5ce218834", - "pageUrl": "http://127.0.0.1:37221/#/register", + "id": "058252891f16", + "pageUrl": "http://127.0.0.1:37231/#/register", "label": "Source code", "activation": "click", "kind": "navigation", @@ -8548,8 +8548,8 @@ { "id": "RD-027", "action": { - "id": "1dd44725c1d0", - "pageUrl": "http://127.0.0.1:37221/#/register", + "id": "73f6c6cf31b9", + "pageUrl": "http://127.0.0.1:37231/#/register", "label": "Sign up", "activation": "click", "kind": "navigation", @@ -8562,7 +8562,7 @@ "role": "link", "accessibleName": "Sign up", "text": "Sign up", - "href": "http://127.0.0.1:37221/#/register", + "href": "http://127.0.0.1:37231/#/register", "candidates": [ { "strategy": "role", @@ -8581,7 +8581,7 @@ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37221/#/register" + "value": "http://127.0.0.1:37231/#/register" }, { "strategy": "text", @@ -8621,8 +8621,8 @@ { "id": "RD-028", "action": { - "id": "6572fb8425d7", - "pageUrl": "http://127.0.0.1:37221/#/register", + "id": "aabc4e6e0ea8", + "pageUrl": "http://127.0.0.1:37231/#/register", "label": "Thinkster", "activation": "click", "kind": "navigation", @@ -8694,8 +8694,8 @@ { "id": "RD-029", "action": { - "id": "fcc1043fc9f2", - "pageUrl": "http://127.0.0.1:37221/#/register", + "id": "72973c605a99", + "pageUrl": "http://127.0.0.1:37231/#/register", "label": "Source code", "activation": "click", "kind": "navigation", @@ -8767,9 +8767,9 @@ ], "environment": { "status": "VALID", - "checkedAt": "2026-07-26T12:00:53.431Z", - "durationMs": 3868, - "targetUrl": "http://127.0.0.1:37221/", + "checkedAt": "2026-07-26T14:01:20.754Z", + "durationMs": 6639, + "targetUrl": "http://127.0.0.1:37231/", "mainDocument": { "status": 200, "contentType": "text/html" diff --git a/release/evidence/raw/todomvc.scan.json b/release/evidence/raw/todomvc.scan.json index ce93b45..2ce7fd9 100644 --- a/release/evidence/raw/todomvc.scan.json +++ b/release/evidence/raw/todomvc.scan.json @@ -1,9 +1,9 @@ { "schemaVersion": "1.0", - "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", + "scanId": "20260726T134853Z-47e8", + "targetUrl": "http://127.0.0.1:37284/examples/react/dist/", + "startedAt": "2026-07-26T13:48:53.035Z", + "finishedAt": "2026-07-26T13:49:09.836Z", "options": { "maxPages": 2, "maxActions": 20, @@ -41,12 +41,12 @@ }, "pages": [ { - "url": "http://127.0.0.1:37283/examples/react/dist/", + "url": "http://127.0.0.1:37284/examples/react/dist/", "title": "TodoMVC: React", "actions": [ { - "id": "9ac8dbc159e7", - "pageUrl": "http://127.0.0.1:37283/examples/react/dist/", + "id": "f85be54ac3eb", + "pageUrl": "http://127.0.0.1:37284/examples/react/dist/", "label": "Source", "activation": "click", "kind": "navigation", @@ -96,8 +96,8 @@ "fields": [] }, { - "id": "9f4f92ac737d", - "pageUrl": "http://127.0.0.1:37283/examples/react/dist/", + "id": "c4ca43576734", + "pageUrl": "http://127.0.0.1:37284/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:37283/examples/typescript-react", + "href": "http://127.0.0.1:37284/examples/typescript-react", "candidates": [ { "strategy": "role", @@ -129,7 +129,7 @@ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37283/examples/typescript-react" + "value": "http://127.0.0.1:37284/examples/typescript-react" }, { "strategy": "text", @@ -147,8 +147,8 @@ "fields": [] }, { - "id": "d27ce1a03cb0", - "pageUrl": "http://127.0.0.1:37283/examples/react/dist/", + "id": "8989e6c2cf9b", + "pageUrl": "http://127.0.0.1:37284/examples/react/dist/", "label": "Source", "activation": "click", "kind": "navigation", @@ -198,8 +198,8 @@ "fields": [] }, { - "id": "29db713886c2", - "pageUrl": "http://127.0.0.1:37283/examples/react/dist/", + "id": "cccb6b478db0", + "pageUrl": "http://127.0.0.1:37284/examples/react/dist/", "label": "React", "activation": "click", "kind": "navigation", @@ -249,8 +249,8 @@ "fields": [] }, { - "id": "eccf6b967826", - "pageUrl": "http://127.0.0.1:37283/examples/react/dist/", + "id": "0c04efa2901a", + "pageUrl": "http://127.0.0.1:37284/examples/react/dist/", "label": "Quick Start", "activation": "click", "kind": "navigation", @@ -300,8 +300,8 @@ "fields": [] }, { - "id": "f878b6858e5d", - "pageUrl": "http://127.0.0.1:37283/examples/react/dist/", + "id": "0e3e18deca36", + "pageUrl": "http://127.0.0.1:37284/examples/react/dist/", "label": "API Reference", "activation": "click", "kind": "navigation", @@ -351,8 +351,8 @@ "fields": [] }, { - "id": "afd015151450", - "pageUrl": "http://127.0.0.1:37283/examples/react/dist/", + "id": "acb28d95632b", + "pageUrl": "http://127.0.0.1:37284/examples/react/dist/", "label": "Philosophy", "activation": "click", "kind": "navigation", @@ -402,8 +402,8 @@ "fields": [] }, { - "id": "8c4be2fb33db", - "pageUrl": "http://127.0.0.1:37283/examples/react/dist/", + "id": "e375c9cf4c34", + "pageUrl": "http://127.0.0.1:37284/examples/react/dist/", "label": "React Community", "activation": "click", "kind": "navigation", @@ -453,8 +453,8 @@ "fields": [] }, { - "id": "1b6f4a454671", - "pageUrl": "http://127.0.0.1:37283/examples/react/dist/", + "id": "a2fcb4b49175", + "pageUrl": "http://127.0.0.1:37284/examples/react/dist/", "label": "ReactJS on Stack Overflow", "activation": "click", "kind": "navigation", @@ -504,8 +504,8 @@ "fields": [] }, { - "id": "3f270358be40", - "pageUrl": "http://127.0.0.1:37283/examples/react/dist/", + "id": "d3aab82b1296", + "pageUrl": "http://127.0.0.1:37284/examples/react/dist/", "label": "let us know", "activation": "click", "kind": "navigation", @@ -555,8 +555,8 @@ "fields": [] }, { - "id": "e957c1f1e5e2", - "pageUrl": "http://127.0.0.1:37283/examples/react/dist/", + "id": "f5d0222fba68", + "pageUrl": "http://127.0.0.1:37284/examples/react/dist/", "label": "New Todo Input", "activation": "enter", "kind": "mutation", @@ -611,8 +611,8 @@ ] }, { - "id": "37d7f38e833b", - "pageUrl": "http://127.0.0.1:37283/examples/react/dist/", + "id": "1f2c42ff7bab", + "pageUrl": "http://127.0.0.1:37284/examples/react/dist/", "label": "TodoMVC", "activation": "click", "kind": "navigation", @@ -664,12 +664,12 @@ ] }, { - "url": "http://127.0.0.1:37283/examples/typescript-react/#/", + "url": "http://127.0.0.1:37284/examples/typescript-react/#/", "title": "React • TodoMVC", "actions": [ { - "id": "1260f3607e7e", - "pageUrl": "http://127.0.0.1:37283/examples/typescript-react/#/", + "id": "2dc1f434d9d2", + "pageUrl": "http://127.0.0.1:37284/examples/typescript-react/#/", "label": "What needs to be done?", "activation": "enter", "kind": "mutation", @@ -716,8 +716,8 @@ ] }, { - "id": "ce870c13823a", - "pageUrl": "http://127.0.0.1:37283/examples/typescript-react/#/", + "id": "cd570a42997e", + "pageUrl": "http://127.0.0.1:37284/examples/typescript-react/#/", "label": "Remo H. Jansen", "activation": "click", "kind": "navigation", @@ -767,8 +767,8 @@ "fields": [] }, { - "id": "6c513ec8d217", - "pageUrl": "http://127.0.0.1:37283/examples/typescript-react/#/", + "id": "6f223b3d3c3c", + "pageUrl": "http://127.0.0.1:37284/examples/typescript-react/#/", "label": "TodoMVC", "activation": "click", "kind": "navigation", @@ -824,8 +824,8 @@ { "id": "RD-001", "action": { - "id": "9f4f92ac737d", - "pageUrl": "http://127.0.0.1:37283/examples/react/dist/", + "id": "c4ca43576734", + "pageUrl": "http://127.0.0.1:37284/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:37283/examples/typescript-react", + "href": "http://127.0.0.1:37284/examples/typescript-react", "candidates": [ { "strategy": "role", @@ -857,7 +857,7 @@ { "strategy": "href", "weight": 72, - "value": "http://127.0.0.1:37283/examples/typescript-react" + "value": "http://127.0.0.1:37284/examples/typescript-react" }, { "strategy": "text", @@ -875,79 +875,79 @@ "fields": [] }, "evidence": { - "startedAt": "2026-07-26T11:54:54.117Z", - "durationMs": 1999, - "canary": "RD_TEST_403A2C", + "startedAt": "2026-07-26T13:48:56.919Z", + "durationMs": 2036, + "canary": "RD_TEST_35316C", "network": [ { "id": "net-1", "method": "GET", - "url": "http://127.0.0.1:37283/examples/typescript-react", + "url": "http://127.0.0.1:37284/examples/typescript-react", "resourceType": "document", - "startedAt": 1061, + "startedAt": 1069, "status": 301, "ok": false, - "finishedAt": 1065, - "location": "http://127.0.0.1:37283/examples/typescript-react/", + "finishedAt": 1073, + "location": "http://127.0.0.1:37284/examples/typescript-react/", "resourceTypeHint": "typescript-react" }, { "id": "net-2", "method": "GET", - "url": "http://127.0.0.1:37283/examples/typescript-react/", + "url": "http://127.0.0.1:37284/examples/typescript-react/", "resourceType": "document", - "startedAt": 1066, + "startedAt": 1073, "status": 200, "ok": true, "contentType": "text/html", "resourceTypeHint": "typescript-react", - "finishedAt": 1073 + "finishedAt": 1082 }, { "id": "net-3", "method": "GET", - "url": "http://127.0.0.1:37283/examples/typescript-react/node_modules/todomvc-common/base.css", + "url": "http://127.0.0.1:37284/examples/typescript-react/node_modules/todomvc-common/base.css", "resourceType": "stylesheet", - "startedAt": 1071, + "startedAt": 1080, "status": 200, "ok": true, - "finishedAt": 1080, + "finishedAt": 1090, "contentType": "text/css", "resourceTypeHint": "base.css" }, { "id": "net-4", "method": "GET", - "url": "http://127.0.0.1:37283/examples/typescript-react/node_modules/todomvc-app-css/index.css", + "url": "http://127.0.0.1:37284/examples/typescript-react/node_modules/todomvc-app-css/index.css", "resourceType": "stylesheet", - "startedAt": 1072, + "startedAt": 1080, "status": 200, "ok": true, - "finishedAt": 1080, + "finishedAt": 1091, "contentType": "text/css", "resourceTypeHint": "index.css" }, { "id": "net-5", "method": "GET", - "url": "http://127.0.0.1:37283/examples/typescript-react/node_modules/director/build/director.js", + "url": "http://127.0.0.1:37284/examples/typescript-react/node_modules/director/build/director.js", "resourceType": "script", - "startedAt": 1072, + "startedAt": 1080, "status": 200, "ok": true, - "finishedAt": 1083, + "finishedAt": 1096, "contentType": "application/javascript", "resourceTypeHint": "director.js" }, { "id": "net-6", "method": "GET", - "url": "http://127.0.0.1:37283/examples/typescript-react/js/bundle.js", + "url": "http://127.0.0.1:37284/examples/typescript-react/js/bundle.js", "resourceType": "script", - "startedAt": 1072, + "startedAt": 1081, "status": 200, "ok": true, - "finishedAt": 1091, + "finishedAt": 1103, "contentType": "application/javascript", "resourceTypeHint": "bundle.js" } @@ -976,8 +976,8 @@ "retryCount": 0 }, "before": { - "at": 1014, - "url": "http://127.0.0.1:37283/examples/react/dist/", + "at": 1025, + "url": "http://127.0.0.1:37284/examples/react/dist/", "title": "TodoMVC: React", "domHash": "84ea4bd670111ab8", "canaryPresent": false, @@ -1031,8 +1031,8 @@ } }, "beforeAction": { - "at": 1025, - "url": "http://127.0.0.1:37283/examples/react/dist/", + "at": 1036, + "url": "http://127.0.0.1:37284/examples/react/dist/", "title": "TodoMVC: React", "domHash": "84ea4bd670111ab8", "canaryPresent": false, @@ -1087,8 +1087,8 @@ }, "networkSettled": true, "after": { - "at": 1989, - "url": "http://127.0.0.1:37283/examples/typescript-react/#/", + "at": 2027, + "url": "http://127.0.0.1:37284/examples/typescript-react/#/", "title": "React • TodoMVC", "domHash": "12538a75df36416c", "canaryPresent": false, @@ -1126,7 +1126,7 @@ "indexedDb": [] } }, - "trace": "traces/9f4f92ac737d.zip", + "trace": "traces/c4ca43576734.zip", "snapshotIndex": "snapshots/RD-001.index.json" }, "verdict": "VERIFIED", @@ -1137,8 +1137,8 @@ { "id": "RD-002", "action": { - "id": "e957c1f1e5e2", - "pageUrl": "http://127.0.0.1:37283/examples/react/dist/", + "id": "f5d0222fba68", + "pageUrl": "http://127.0.0.1:37284/examples/react/dist/", "label": "New Todo Input", "activation": "enter", "kind": "mutation", @@ -1193,127 +1193,127 @@ ] }, "evidence": { - "startedAt": "2026-07-26T11:54:56.171Z", - "durationMs": 5240, - "canary": "RD_TEST_D70A8C", + "startedAt": "2026-07-26T13:48:59.006Z", + "durationMs": 5190, + "canary": "RD_TEST_8691BC", "network": [ { "id": "net-1", "method": "GET", - "url": "http://127.0.0.1:37283/examples/react/dist/", + "url": "http://127.0.0.1:37284/examples/react/dist/", "resourceType": "document", - "startedAt": 1999, + "startedAt": 1986, "status": 200, "ok": true, "contentType": "text/html", "resourceTypeHint": "dist", - "finishedAt": 2009 + "finishedAt": 1995 }, { "id": "net-2", "method": "GET", - "url": "http://127.0.0.1:37283/examples/react/dist/app.bundle.js", + "url": "http://127.0.0.1:37284/examples/react/dist/app.bundle.js", "resourceType": "script", - "startedAt": 2008, + "startedAt": 1994, "status": 200, "ok": true, - "finishedAt": 2045, + "finishedAt": 2016, "contentType": "application/javascript", "resourceTypeHint": "app.bundle.js" }, { "id": "net-3", "method": "GET", - "url": "http://127.0.0.1:37283/examples/react/dist/app.css", + "url": "http://127.0.0.1:37284/examples/react/dist/app.css", "resourceType": "stylesheet", - "startedAt": 2008, + "startedAt": 1994, "status": 200, "ok": true, - "finishedAt": 2041, + "finishedAt": 2012, "contentType": "text/css", "resourceTypeHint": "app.css" }, { "id": "net-4", "method": "GET", - "url": "http://127.0.0.1:37283/examples/react/dist/base.js", + "url": "http://127.0.0.1:37284/examples/react/dist/base.js", "resourceType": "script", - "startedAt": 2008, + "startedAt": 1995, "status": 200, "ok": true, - "finishedAt": 2041, + "finishedAt": 2012, "contentType": "application/javascript", "resourceTypeHint": "base.js" }, { "id": "net-5", "method": "GET", - "url": "http://127.0.0.1:37283/learn.json", + "url": "http://127.0.0.1:37284/learn.json", "resourceType": "xhr", - "startedAt": 2041, + "startedAt": 2013, "status": 200, "ok": true, - "finishedAt": 2047, + "finishedAt": 2018, "contentType": "application/json", "resourceTypeHint": "learn.json" }, { "id": "net-6", "method": "GET", - "url": "http://127.0.0.1:37283/examples/react/dist/", + "url": "http://127.0.0.1:37284/examples/react/dist/", "resourceType": "document", - "startedAt": 2846, + "startedAt": 2805, "status": 200, "ok": true, "contentType": "text/html", "resourceTypeHint": "dist", - "finishedAt": 2856 + "finishedAt": 2813 }, { "id": "net-7", "method": "GET", - "url": "http://127.0.0.1:37283/examples/react/dist/app.bundle.js", + "url": "http://127.0.0.1:37284/examples/react/dist/app.bundle.js", "resourceType": "script", - "startedAt": 2855, + "startedAt": 2812, "status": 200, "ok": true, - "finishedAt": 2876, + "finishedAt": 2830, "contentType": "application/javascript", "resourceTypeHint": "app.bundle.js" }, { "id": "net-8", "method": "GET", - "url": "http://127.0.0.1:37283/examples/react/dist/app.css", + "url": "http://127.0.0.1:37284/examples/react/dist/app.css", "resourceType": "stylesheet", - "startedAt": 2855, + "startedAt": 2813, "status": 200, "ok": true, - "finishedAt": 2871, + "finishedAt": 2825, "contentType": "text/css", "resourceTypeHint": "app.css" }, { "id": "net-9", "method": "GET", - "url": "http://127.0.0.1:37283/examples/react/dist/base.js", + "url": "http://127.0.0.1:37284/examples/react/dist/base.js", "resourceType": "script", - "startedAt": 2856, + "startedAt": 2813, "status": 200, "ok": true, - "finishedAt": 2871, + "finishedAt": 2826, "contentType": "application/javascript", "resourceTypeHint": "base.js" }, { "id": "net-10", "method": "GET", - "url": "http://127.0.0.1:37283/learn.json", + "url": "http://127.0.0.1:37284/learn.json", "resourceType": "xhr", - "startedAt": 2872, + "startedAt": 2827, "status": 200, "ok": true, - "finishedAt": 2878, + "finishedAt": 2841, "contentType": "application/json", "resourceTypeHint": "learn.json" } @@ -1326,7 +1326,7 @@ "selector": "[data-testid=\"text-input\"]", "name": "New Todo Input", "type": "text", - "value": "RD_TEST_D70A8C_1", + "value": "RD_TEST_8691BC_1", "redacted": false } ], @@ -1350,8 +1350,8 @@ "retryCount": 0 }, "before": { - "at": 1007, - "url": "http://127.0.0.1:37283/examples/react/dist/", + "at": 1006, + "url": "http://127.0.0.1:37284/examples/react/dist/", "title": "TodoMVC: React", "domHash": "84ea4bd670111ab8", "canaryPresent": false, @@ -1406,9 +1406,9 @@ }, "beforeAction": { "at": 1028, - "url": "http://127.0.0.1:37283/examples/react/dist/", + "url": "http://127.0.0.1:37284/examples/react/dist/", "title": "TodoMVC: React", - "domHash": "c62fd56f1fc0e853", + "domHash": "8a8952ea45c6334b", "canaryPresent": true, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -1427,7 +1427,7 @@ { "tag": "input", "type": "text", - "valueHash": "73dbdb224878d029", + "valueHash": "78904e153bf21263", "checked": false, "disabled": false, "visible": true @@ -1463,10 +1463,10 @@ "networkSettled": true, "targetBusyAfter": false, "after": { - "at": 1939, - "url": "http://127.0.0.1:37283/examples/react/dist/", + "at": 1929, + "url": "http://127.0.0.1:37284/examples/react/dist/", "title": "TodoMVC: React", - "domHash": "0b2bcaf9882415b0", + "domHash": "798e2fd4140da53d", "canaryPresent": true, "bodyCanaryPresent": true, "temporaryBlobUrls": 0, @@ -1478,9 +1478,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "17db458f1a76e8d1", + "textHash": "929a835322da9fd6", "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_D70A8C_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_8691BC_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/e957c1f1e5e2-after.png", + "screenshot": "screenshots/f5d0222fba68-after.png", "afterRefresh": { - "at": 2776, - "url": "http://127.0.0.1:37283/examples/react/dist/", + "at": 2743, + "url": "http://127.0.0.1:37284/examples/react/dist/", "title": "TodoMVC: React", "domHash": "84ea4bd670111ab8", "canaryPresent": false, @@ -1588,10 +1588,10 @@ "indexedDb": [] } }, - "refreshScreenshot": "screenshots/e957c1f1e5e2-refresh.png", + "refreshScreenshot": "screenshots/f5d0222fba68-refresh.png", "afterHardRefresh": { - "at": 3609, - "url": "http://127.0.0.1:37283/examples/react/dist/", + "at": 3556, + "url": "http://127.0.0.1:37284/examples/react/dist/", "title": "TodoMVC: React", "domHash": "84ea4bd670111ab8", "canaryPresent": false, @@ -1645,8 +1645,8 @@ } }, "afterNewTab": { - "at": 4437, - "url": "http://127.0.0.1:37283/examples/react/dist/", + "at": 4398, + "url": "http://127.0.0.1:37284/examples/react/dist/", "title": "TodoMVC: React", "domHash": "84ea4bd670111ab8", "canaryPresent": false, @@ -1700,8 +1700,8 @@ } }, "afterNewContext": { - "at": 5238, - "url": "http://127.0.0.1:37283/examples/react/dist/", + "at": 5188, + "url": "http://127.0.0.1:37284/examples/react/dist/", "title": "TodoMVC: React", "domHash": "84ea4bd670111ab8", "canaryPresent": false, @@ -1755,7 +1755,7 @@ } }, "persistenceScope": "MEMORY_ONLY", - "trace": "traces/e957c1f1e5e2.zip", + "trace": "traces/f5d0222fba68.zip", "snapshotIndex": "snapshots/RD-002.index.json" }, "verdict": "EPHEMERAL", @@ -1782,8 +1782,8 @@ { "id": "RD-003", "action": { - "id": "1260f3607e7e", - "pageUrl": "http://127.0.0.1:37283/examples/typescript-react/#/", + "id": "2dc1f434d9d2", + "pageUrl": "http://127.0.0.1:37284/examples/typescript-react/#/", "label": "What needs to be done?", "activation": "enter", "kind": "mutation", @@ -1830,127 +1830,127 @@ ] }, "evidence": { - "startedAt": "2026-07-26T11:55:01.482Z", - "durationMs": 5373, - "canary": "RD_TEST_95D181", + "startedAt": "2026-07-26T13:49:04.262Z", + "durationMs": 5353, + "canary": "RD_TEST_06E59E", "network": [ { "id": "net-1", "method": "GET", - "url": "http://127.0.0.1:37283/examples/typescript-react/", + "url": "http://127.0.0.1:37284/examples/typescript-react/", "resourceType": "document", - "startedAt": 1995, + "startedAt": 2022, "status": 200, "ok": true, "contentType": "text/html", "resourceTypeHint": "typescript-react", - "finishedAt": 2003 + "finishedAt": 2030 }, { "id": "net-2", "method": "GET", - "url": "http://127.0.0.1:37283/examples/typescript-react/node_modules/todomvc-common/base.css", + "url": "http://127.0.0.1:37284/examples/typescript-react/node_modules/todomvc-common/base.css", "resourceType": "stylesheet", - "startedAt": 2001, + "startedAt": 2028, "status": 200, "ok": true, - "finishedAt": 2007, + "finishedAt": 2033, "contentType": "text/css", "resourceTypeHint": "base.css" }, { "id": "net-3", "method": "GET", - "url": "http://127.0.0.1:37283/examples/typescript-react/node_modules/todomvc-app-css/index.css", + "url": "http://127.0.0.1:37284/examples/typescript-react/node_modules/todomvc-app-css/index.css", "resourceType": "stylesheet", - "startedAt": 2002, + "startedAt": 2029, "status": 200, "ok": true, - "finishedAt": 2013, "contentType": "text/css", - "resourceTypeHint": "index.css" + "resourceTypeHint": "index.css", + "finishedAt": 2035 }, { "id": "net-4", "method": "GET", - "url": "http://127.0.0.1:37283/examples/typescript-react/node_modules/director/build/director.js", + "url": "http://127.0.0.1:37284/examples/typescript-react/node_modules/director/build/director.js", "resourceType": "script", - "startedAt": 2002, + "startedAt": 2030, "status": 200, "ok": true, - "finishedAt": 2017, + "finishedAt": 2036, "contentType": "application/javascript", "resourceTypeHint": "director.js" }, { "id": "net-5", "method": "GET", - "url": "http://127.0.0.1:37283/examples/typescript-react/js/bundle.js", + "url": "http://127.0.0.1:37284/examples/typescript-react/js/bundle.js", "resourceType": "script", - "startedAt": 2002, + "startedAt": 2030, "status": 200, "ok": true, - "finishedAt": 2026, + "finishedAt": 2046, "contentType": "application/javascript", "resourceTypeHint": "bundle.js" }, { "id": "net-6", "method": "GET", - "url": "http://127.0.0.1:37283/examples/typescript-react/", + "url": "http://127.0.0.1:37284/examples/typescript-react/", "resourceType": "document", - "startedAt": 2826, + "startedAt": 2839, "status": 200, "ok": true, "contentType": "text/html", "resourceTypeHint": "typescript-react", - "finishedAt": 2835 + "finishedAt": 2847 }, { "id": "net-7", "method": "GET", - "url": "http://127.0.0.1:37283/examples/typescript-react/node_modules/todomvc-common/base.css", + "url": "http://127.0.0.1:37284/examples/typescript-react/node_modules/todomvc-common/base.css", "resourceType": "stylesheet", - "startedAt": 2833, + "startedAt": 2846, "status": 200, "ok": true, - "finishedAt": 2857, "contentType": "text/css", - "resourceTypeHint": "base.css" + "resourceTypeHint": "base.css", + "finishedAt": 2851 }, { "id": "net-8", "method": "GET", - "url": "http://127.0.0.1:37283/examples/typescript-react/node_modules/todomvc-app-css/index.css", + "url": "http://127.0.0.1:37284/examples/typescript-react/node_modules/todomvc-app-css/index.css", "resourceType": "stylesheet", - "startedAt": 2833, + "startedAt": 2846, "status": 200, "ok": true, - "finishedAt": 2858, "contentType": "text/css", - "resourceTypeHint": "index.css" + "resourceTypeHint": "index.css", + "finishedAt": 2852 }, { "id": "net-9", "method": "GET", - "url": "http://127.0.0.1:37283/examples/typescript-react/node_modules/director/build/director.js", + "url": "http://127.0.0.1:37284/examples/typescript-react/node_modules/director/build/director.js", "resourceType": "script", - "startedAt": 2834, + "startedAt": 2846, "status": 200, "ok": true, - "finishedAt": 2860, "contentType": "application/javascript", - "resourceTypeHint": "director.js" + "resourceTypeHint": "director.js", + "finishedAt": 2853 }, { "id": "net-10", "method": "GET", - "url": "http://127.0.0.1:37283/examples/typescript-react/js/bundle.js", + "url": "http://127.0.0.1:37284/examples/typescript-react/js/bundle.js", "resourceType": "script", - "startedAt": 2834, + "startedAt": 2847, "status": 200, "ok": true, - "finishedAt": 2869, + "finishedAt": 2864, "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_95D181_1", + "value": "RD_TEST_06E59E_1", "redacted": false } ], @@ -1979,7 +1979,7 @@ "weight": 92, "matchCount": 1, "visibleCount": 1, - "elapsedMs": 5 + "elapsedMs": 4 } ], "chosenStrategy": "role", @@ -1987,8 +1987,8 @@ "retryCount": 0 }, "before": { - "at": 1025, - "url": "http://127.0.0.1:37283/examples/typescript-react/#/", + "at": 1050, + "url": "http://127.0.0.1:37284/examples/typescript-react/#/", "title": "React • TodoMVC", "domHash": "12538a75df36416c", "canaryPresent": false, @@ -2027,10 +2027,10 @@ } }, "beforeAction": { - "at": 1044, - "url": "http://127.0.0.1:37283/examples/typescript-react/#/", + "at": 1069, + "url": "http://127.0.0.1:37284/examples/typescript-react/#/", "title": "React • TodoMVC", - "domHash": "f52ff3ff4dd0b78e", + "domHash": "e24bcb2a3205d1fb", "canaryPresent": true, "bodyCanaryPresent": false, "temporaryBlobUrls": 0, @@ -2049,7 +2049,7 @@ { "tag": "input", "type": "text", - "valueHash": "a388db81e7653c35", + "valueHash": "c279e711dabb7353", "checked": false, "disabled": false, "visible": true @@ -2070,10 +2070,10 @@ "networkSettled": true, "targetBusyAfter": false, "after": { - "at": 1952, - "url": "http://127.0.0.1:37283/examples/typescript-react/#/", + "at": 1978, + "url": "http://127.0.0.1:37284/examples/typescript-react/#/", "title": "React • TodoMVC", - "domHash": "557ee857eac68706", + "domHash": "fef344fe19d84004", "canaryPresent": true, "bodyCanaryPresent": true, "temporaryBlobUrls": 0, @@ -2085,9 +2085,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "806486b6f04bcbeb", + "textHash": "3d299371c615bd1c", "visualHash": "23536a708be967a8", - "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", + "text": "todos Mark all as complete RD_TEST_06E59E_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": "a388db81e7653c35", + "valueHash": "c279e711dabb7353", "checked": false, "disabled": false, "visible": false @@ -2136,7 +2136,7 @@ "local": [ { "key": "react-todos", - "valueHash": "ccb00384ee5f1c62", + "valueHash": "f34836af102b9029", "containsCanary": true } ], @@ -2146,12 +2146,12 @@ "indexedDb": [] } }, - "screenshot": "screenshots/1260f3607e7e-after.png", + "screenshot": "screenshots/2dc1f434d9d2-after.png", "afterRefresh": { - "at": 2780, - "url": "http://127.0.0.1:37283/examples/typescript-react/#/", + "at": 2798, + "url": "http://127.0.0.1:37284/examples/typescript-react/#/", "title": "React • TodoMVC", - "domHash": "557ee857eac68706", + "domHash": "fef344fe19d84004", "canaryPresent": true, "bodyCanaryPresent": true, "temporaryBlobUrls": 0, @@ -2163,9 +2163,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "806486b6f04bcbeb", + "textHash": "3d299371c615bd1c", "visualHash": "23536a708be967a8", - "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", + "text": "todos Mark all as complete RD_TEST_06E59E_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": "a388db81e7653c35", + "valueHash": "c279e711dabb7353", "checked": false, "disabled": false, "visible": false @@ -2214,7 +2214,7 @@ "local": [ { "key": "react-todos", - "valueHash": "ccb00384ee5f1c62", + "valueHash": "f34836af102b9029", "containsCanary": true } ], @@ -2224,12 +2224,12 @@ "indexedDb": [] } }, - "refreshScreenshot": "screenshots/1260f3607e7e-refresh.png", + "refreshScreenshot": "screenshots/2dc1f434d9d2-refresh.png", "afterHardRefresh": { - "at": 3631, - "url": "http://127.0.0.1:37283/examples/typescript-react/#/", + "at": 3627, + "url": "http://127.0.0.1:37284/examples/typescript-react/#/", "title": "React • TodoMVC", - "domHash": "557ee857eac68706", + "domHash": "fef344fe19d84004", "canaryPresent": true, "bodyCanaryPresent": true, "temporaryBlobUrls": 0, @@ -2241,9 +2241,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "806486b6f04bcbeb", + "textHash": "3d299371c615bd1c", "visualHash": "23536a708be967a8", - "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", + "text": "todos Mark all as complete RD_TEST_06E59E_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": "a388db81e7653c35", + "valueHash": "c279e711dabb7353", "checked": false, "disabled": false, "visible": false @@ -2292,7 +2292,7 @@ "local": [ { "key": "react-todos", - "valueHash": "ccb00384ee5f1c62", + "valueHash": "f34836af102b9029", "containsCanary": true } ], @@ -2303,10 +2303,10 @@ } }, "afterNewTab": { - "at": 4532, - "url": "http://127.0.0.1:37283/examples/typescript-react/#/", + "at": 4539, + "url": "http://127.0.0.1:37284/examples/typescript-react/#/", "title": "React • TodoMVC", - "domHash": "557ee857eac68706", + "domHash": "fef344fe19d84004", "canaryPresent": true, "bodyCanaryPresent": true, "temporaryBlobUrls": 0, @@ -2318,9 +2318,9 @@ "accessDenied": false }, "semanticDom": { - "textHash": "806486b6f04bcbeb", + "textHash": "3d299371c615bd1c", "visualHash": "23536a708be967a8", - "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", + "text": "todos Mark all as complete RD_TEST_06E59E_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": "a388db81e7653c35", + "valueHash": "c279e711dabb7353", "checked": false, "disabled": false, "visible": false @@ -2369,7 +2369,7 @@ "local": [ { "key": "react-todos", - "valueHash": "ccb00384ee5f1c62", + "valueHash": "f34836af102b9029", "containsCanary": true } ], @@ -2380,8 +2380,8 @@ } }, "afterNewContext": { - "at": 5369, - "url": "http://127.0.0.1:37283/examples/typescript-react/#/", + "at": 5351, + "url": "http://127.0.0.1:37284/examples/typescript-react/#/", "title": "React • TodoMVC", "domHash": "12538a75df36416c", "canaryPresent": false, @@ -2420,7 +2420,7 @@ } }, "persistenceScope": "BROWSER_LOCAL", - "trace": "traces/1260f3607e7e.zip", + "trace": "traces/2dc1f434d9d2.zip", "snapshotIndex": "snapshots/RD-003.index.json" }, "verdict": "BROWSER_LOCAL", @@ -2442,8 +2442,8 @@ { "id": "RD-004", "action": { - "id": "9ac8dbc159e7", - "pageUrl": "http://127.0.0.1:37283/examples/react/dist/", + "id": "f85be54ac3eb", + "pageUrl": "http://127.0.0.1:37284/examples/react/dist/", "label": "Source", "activation": "click", "kind": "navigation", @@ -2515,8 +2515,8 @@ { "id": "RD-005", "action": { - "id": "d27ce1a03cb0", - "pageUrl": "http://127.0.0.1:37283/examples/react/dist/", + "id": "8989e6c2cf9b", + "pageUrl": "http://127.0.0.1:37284/examples/react/dist/", "label": "Source", "activation": "click", "kind": "navigation", @@ -2588,8 +2588,8 @@ { "id": "RD-006", "action": { - "id": "29db713886c2", - "pageUrl": "http://127.0.0.1:37283/examples/react/dist/", + "id": "cccb6b478db0", + "pageUrl": "http://127.0.0.1:37284/examples/react/dist/", "label": "React", "activation": "click", "kind": "navigation", @@ -2661,8 +2661,8 @@ { "id": "RD-007", "action": { - "id": "eccf6b967826", - "pageUrl": "http://127.0.0.1:37283/examples/react/dist/", + "id": "0c04efa2901a", + "pageUrl": "http://127.0.0.1:37284/examples/react/dist/", "label": "Quick Start", "activation": "click", "kind": "navigation", @@ -2734,8 +2734,8 @@ { "id": "RD-008", "action": { - "id": "f878b6858e5d", - "pageUrl": "http://127.0.0.1:37283/examples/react/dist/", + "id": "0e3e18deca36", + "pageUrl": "http://127.0.0.1:37284/examples/react/dist/", "label": "API Reference", "activation": "click", "kind": "navigation", @@ -2807,8 +2807,8 @@ { "id": "RD-009", "action": { - "id": "afd015151450", - "pageUrl": "http://127.0.0.1:37283/examples/react/dist/", + "id": "acb28d95632b", + "pageUrl": "http://127.0.0.1:37284/examples/react/dist/", "label": "Philosophy", "activation": "click", "kind": "navigation", @@ -2880,8 +2880,8 @@ { "id": "RD-010", "action": { - "id": "8c4be2fb33db", - "pageUrl": "http://127.0.0.1:37283/examples/react/dist/", + "id": "e375c9cf4c34", + "pageUrl": "http://127.0.0.1:37284/examples/react/dist/", "label": "React Community", "activation": "click", "kind": "navigation", @@ -2953,8 +2953,8 @@ { "id": "RD-011", "action": { - "id": "1b6f4a454671", - "pageUrl": "http://127.0.0.1:37283/examples/react/dist/", + "id": "a2fcb4b49175", + "pageUrl": "http://127.0.0.1:37284/examples/react/dist/", "label": "ReactJS on Stack Overflow", "activation": "click", "kind": "navigation", @@ -3026,8 +3026,8 @@ { "id": "RD-012", "action": { - "id": "3f270358be40", - "pageUrl": "http://127.0.0.1:37283/examples/react/dist/", + "id": "d3aab82b1296", + "pageUrl": "http://127.0.0.1:37284/examples/react/dist/", "label": "let us know", "activation": "click", "kind": "navigation", @@ -3099,8 +3099,8 @@ { "id": "RD-013", "action": { - "id": "37d7f38e833b", - "pageUrl": "http://127.0.0.1:37283/examples/react/dist/", + "id": "1f2c42ff7bab", + "pageUrl": "http://127.0.0.1:37284/examples/react/dist/", "label": "TodoMVC", "activation": "click", "kind": "navigation", @@ -3172,8 +3172,8 @@ { "id": "RD-014", "action": { - "id": "ce870c13823a", - "pageUrl": "http://127.0.0.1:37283/examples/typescript-react/#/", + "id": "cd570a42997e", + "pageUrl": "http://127.0.0.1:37284/examples/typescript-react/#/", "label": "Remo H. Jansen", "activation": "click", "kind": "navigation", @@ -3245,8 +3245,8 @@ { "id": "RD-015", "action": { - "id": "6c513ec8d217", - "pageUrl": "http://127.0.0.1:37283/examples/typescript-react/#/", + "id": "6f223b3d3c3c", + "pageUrl": "http://127.0.0.1:37284/examples/typescript-react/#/", "label": "TodoMVC", "activation": "click", "kind": "navigation", @@ -3318,9 +3318,9 @@ ], "environment": { "status": "VALID", - "checkedAt": "2026-07-26T11:54:50.484Z", - "durationMs": 1719, - "targetUrl": "http://127.0.0.1:37283/examples/react/dist/", + "checkedAt": "2026-07-26T13:48:53.119Z", + "durationMs": 1734, + "targetUrl": "http://127.0.0.1:37284/examples/react/dist/", "mainDocument": { "status": 200, "contentType": "text/html" diff --git a/release/evidence/todomvc.json b/release/evidence/todomvc.json index f58728e..e6cfd10 100644 --- a/release/evidence/todomvc.json +++ b/release/evidence/todomvc.json @@ -1,7 +1,7 @@ { "schemaVersion": "1.0", - "generatedAt": "2026-07-26T12:05:00.000Z", - "engineFingerprint": "4625a9ccdcec3484a0251ad00253a719fb04a81c8ce552b1d77763f3deccef94", + "generatedAt": "2026-07-26T14:00:00.000Z", + "engineFingerprint": "3663ff0c5e291f6a54b335d5d33fb9035e4e4495785dd15d2f1923e97b4e9d74", "case": { "name": "TodoMVC React", "repository": "tastejs/todomvc", @@ -12,9 +12,9 @@ "capabilities": [] }, "scan": { - "scanId": "20260726T115450Z-9640", + "scanId": "20260726T134853Z-47e8", "sourceArtifact": "release/evidence/raw/todomvc.scan.json", - "sourceSha256": "d3183f2eb37c9c8cbadc12756fcdbffe48d6160fdec4e476384653567bb92508", + "sourceSha256": "8893576012dd4ca119e5573292baccbcb2d31eed8b8f9bd47d3c9ebe41f05590", "environmentStatus": "VALID", "truncated": false, "pagesDiscovered": 2, diff --git a/release/external-cases.json b/release/external-cases.json index b2d6bc6..4bcce5a 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": "2e7c36f2e31f9b959e3bfe16ac89dce9910ce467c4a41e97c435384268a4e391", - "engineFingerprint": "4625a9ccdcec3484a0251ad00253a719fb04a81c8ce552b1d77763f3deccef94", + "evidenceSha256": "9bfd323ac2daf616f07030d26d41bd188de731e0ba9e1b7b2a6711cb4375c6a8", + "engineFingerprint": "3663ff0c5e291f6a54b335d5d33fb9035e4e4495785dd15d2f1923e97b4e9d74", "status": "passed", "environmentValid": true, "severeRegressions": 0, @@ -16,8 +16,8 @@ "repository": "actualbudget/actual", "pinnedCommit": "7325498af773d591a7bc70d5af16d3912f566654", "evidenceFile": "release/evidence/actual-budget.json", - "evidenceSha256": "acc57550626f4b4a2c78d360eaff97fa88a97617b64f2e76c3bbc455c73d9b86", - "engineFingerprint": "4625a9ccdcec3484a0251ad00253a719fb04a81c8ce552b1d77763f3deccef94", + "evidenceSha256": "1df1ce35bee3e4553a3c41c1299cc7c978a0f96bda21f42a7c4992b1750aa498", + "engineFingerprint": "3663ff0c5e291f6a54b335d5d33fb9035e4e4495785dd15d2f1923e97b4e9d74", "status": "passed", "environmentValid": true, "severeRegressions": 0, @@ -28,8 +28,8 @@ "repository": "TonyMckes/conduit-realworld-example-app", "pinnedCommit": "5e127d8569b300e0a21dc2c20ea680da4967b1aa", "evidenceFile": "release/evidence/conduit.json", - "evidenceSha256": "2112b4941fcaf6a9c15717513ac2c28a72e801f097200d72eebe1ad2f08f16b0", - "engineFingerprint": "4625a9ccdcec3484a0251ad00253a719fb04a81c8ce552b1d77763f3deccef94", + "evidenceSha256": "1a0b443491a2bc969e8f8f5814db3f2e52862453382b726779320c828b655639", + "engineFingerprint": "3663ff0c5e291f6a54b335d5d33fb9035e4e4495785dd15d2f1923e97b4e9d74", "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": "0c2c6441ab769a56a0e68200a08ae403f51002c144476882c40e91cdc6cef159", - "engineFingerprint": "4625a9ccdcec3484a0251ad00253a719fb04a81c8ce552b1d77763f3deccef94", + "evidenceSha256": "49a73b6b885669f7d5b9a3ae9a0f2d8604f5923e2286d46d0e08db074a9bf7a5", + "engineFingerprint": "3663ff0c5e291f6a54b335d5d33fb9035e4e4495785dd15d2f1923e97b4e9d74", "status": "passed", "environmentValid": true, "severeRegressions": 0, @@ -59,8 +59,8 @@ "repository": "local/Pocket-Ledger", "pinnedCommit": "fab4847595ec9edff4442fd93d622d5f8ca7d519", "evidenceFile": "release/evidence/ai-agent-cycle.json", - "evidenceSha256": "730ef7c779c25fb39a494b36b0fa2f77b074e86f70b61fe57d10ab2e193254e2", - "engineFingerprint": "4625a9ccdcec3484a0251ad00253a719fb04a81c8ce552b1d77763f3deccef94", + "evidenceSha256": "c07e6f34bfb1ac316dc99cba9306feda858377b564b283e262c5b6a04a45b7c3", + "engineFingerprint": "3663ff0c5e291f6a54b335d5d33fb9035e4e4495785dd15d2f1923e97b4e9d74", "status": "passed", "environmentValid": true, "severeRegressions": 0, diff --git a/src/application/managed-scan.ts b/src/application/managed-scan.ts index 25354e5..a0ec95c 100644 --- a/src/application/managed-scan.ts +++ b/src/application/managed-scan.ts @@ -12,6 +12,7 @@ export interface ManagedScanRequest { manageRuntime: boolean; runtimeMode: RuntimeMode; runtimeRestarts: number; + runtimeStartupTimeoutMs?: number; healthEndpoint?: string; scanOptions: Omit; } @@ -56,7 +57,7 @@ export async function runManagedScan( cwd: projectRoot, command, healthUrl: new URL(request.healthEndpoint ?? profile.healthEndpoint, targetUrl).toString(), - healthTimeoutMs: options.environmentTimeoutMs ?? 10_000, + healthTimeoutMs: request.runtimeStartupTimeoutMs ?? options.environmentTimeoutMs ?? 10_000, restartLimit: request.runtimeRestarts, logFile: path.join(projectRoot, ".realdone", "runtime.log"), ...(request.runtimeMode === "docker" diff --git a/src/cli.ts b/src/cli.ts index 024ce88..f167eed 100644 --- a/src/cli.ts +++ b/src/cli.ts @@ -168,6 +168,7 @@ program .option("--manage-runtime", "start and stop the target project around the scan", false) .option("--runtime-mode ", "managed runtime mode: development, production, or docker", runtimeMode, "development") .option("--runtime-restarts ", "restart target crashes up to this count", nonNegativeInteger, 1) + .option("--runtime-startup-timeout ", "managed runtime health-check timeout", positiveInteger, 30_000) .option("--health-endpoint ", "application health endpoint") .option("--environment-timeout ", "environment bootstrap and render timeout", positiveInteger, 10_000) .option("--accept-environment-risk", "continue after recording an invalid environment", false) @@ -233,6 +234,7 @@ program manageRuntime: Boolean(values.manageRuntime), runtimeMode: values.runtimeMode as RuntimeMode, runtimeRestarts: Number(values.runtimeRestarts), + runtimeStartupTimeoutMs: Number(values.runtimeStartupTimeout), ...(values.healthEndpoint ? { healthEndpoint: String(values.healthEndpoint) } : {}), scanOptions: options, }, progressLine); diff --git a/src/mcp/server.ts b/src/mcp/server.ts index fe7256f..f2cc5c3 100644 --- a/src/mcp/server.ts +++ b/src/mcp/server.ts @@ -162,6 +162,7 @@ export function createRealDoneMcpServer(options: RealDoneMcpServerOptions = {}): maxPages: z.number().int().min(1).max(100).optional(), maxActions: z.number().int().min(1).max(1_000).optional(), maxDurationMs: z.number().int().min(10_000).max(1_800_000).optional(), + runtimeStartupTimeoutMs: z.number().int().min(1_000).max(300_000).optional().describe("Maximum wait for a managed project runtime to pass its health check."), sqlite: relativePathSchema.optional().describe("Project-relative SQLite file for value-free source snapshots."), databaseConfigs: z.array(relativePathSchema).max(20).optional().describe("Project-relative built-in source adapter configs."), providerConfigs: z.array(relativePathSchema).max(20).optional().describe("Project-relative automatic read-only provider adapter configs."), @@ -185,6 +186,7 @@ export function createRealDoneMcpServer(options: RealDoneMcpServerOptions = {}): manageRuntime: !input.url, runtimeMode: "development", runtimeRestarts: 1, + runtimeStartupTimeoutMs: input.runtimeStartupTimeoutMs ?? 30_000, scanOptions: { outputRoot: projectPath(projectRoot, ".realdone/reports"), headed: false, diff --git a/src/runtime/manager.ts b/src/runtime/manager.ts index 221a0a5..3833dc3 100644 --- a/src/runtime/manager.ts +++ b/src/runtime/manager.ts @@ -85,6 +85,9 @@ export class RuntimeManager { if (!Number.isInteger(options.restartLimit) || options.restartLimit < 0) { throw new Error("Runtime restartLimit must be a non-negative integer."); } + if (!Number.isInteger(options.healthTimeoutMs) || options.healthTimeoutMs <= 0) { + throw new Error("Runtime healthTimeoutMs must be a positive integer."); + } this.options = { ...options, cwd: path.resolve(options.cwd) }; this.#snapshot = { state: "idle", @@ -120,7 +123,10 @@ export class RuntimeManager { stdio: ["ignore", "pipe", "pipe"], }); this.#child = child; - if (child.pid) this.#snapshot.pid = child.pid; + if (child.pid) { + this.#snapshot.pid = child.pid; + void this.#writeLog("runtime", `Spawned ${commandText(command)} as PID ${child.pid}.`); + } child.stdout?.on("data", (chunk) => void this.#writeLog("stdout", String(chunk))); child.stderr?.on("data", (chunk) => void this.#writeLog("stderr", String(chunk))); child.once("error", (error) => { @@ -165,7 +171,8 @@ export class RuntimeManager { } const recentLogs = this.#snapshot.logs.slice(-8); const diagnostic = recentLogs.length > 0 ? `\nRecent runtime logs:\n${recentLogs.join("\n")}` : ""; - throw new Error(`Managed runtime did not become healthy at ${this.options.healthUrl}: ${lastError}${diagnostic}`); + const processState = `state=${this.#snapshot.state}; pid=${this.#snapshot.pid ?? "none"}; restarts=${this.#snapshot.restarts}/${this.options.restartLimit}`; + throw new Error(`Managed runtime did not become healthy at ${this.options.healthUrl} within ${this.options.healthTimeoutMs}ms: ${lastError}\nRuntime process: ${processState}${diagnostic}`); } async start(): Promise { diff --git a/test/cli.test.ts b/test/cli.test.ts index 38cf9a4..fa74040 100644 --- a/test/cli.test.ts +++ b/test/cli.test.ts @@ -48,7 +48,7 @@ test("CLI help exposes deep and advanced verification controls", async () => { const scan = await cli("scan", "--help"); assert.equal(commandPassed(scan), true, scan.stderr); assert.match(scan.stdout, /omit it to discover and\s+run the current project/i); - for (const option of ["--yes", "--full", "--deep", "--trace", "--trace-on-failure", "--video", "--policy", "--storage-state", "--browser-path", "--manage-runtime", "--environment-timeout", "--allow-iframe", "--sqlite", "--database-config", "--provider-config"]) { + for (const option of ["--yes", "--full", "--deep", "--trace", "--trace-on-failure", "--video", "--policy", "--storage-state", "--browser-path", "--manage-runtime", "--runtime-startup-timeout", "--environment-timeout", "--allow-iframe", "--sqlite", "--database-config", "--provider-config"]) { assert.ok(scan.stdout.includes(option), `scan help is missing ${option}`); } diff --git a/test/mcp.test.ts b/test/mcp.test.ts index 24318a0..1d4939c 100644 --- a/test/mcp.test.ts +++ b/test/mcp.test.ts @@ -114,10 +114,12 @@ test("MCP exposes the shared RealDone core and keeps AI scans fail-closed", asyn assert.equal(observedRequest.scanOptions.allowExternal, false); assert.equal(observedRequest.scanOptions.maxPages, 2); assert.equal(observedRequest.scanOptions.maxActions, 3); + assert.equal(observedRequest.runtimeStartupTimeoutMs, 30_000); assert.deepEqual(observedRequest.scanOptions.sourceAdapters, []); - await client.callTool({ name: "scan", arguments: { url: "http://127.0.0.1:3000", maxPages: 1, maxActions: 1, sqlite: "app.db", providerConfigs: ["providers.json"], sourceSnapshotLimit: 5 } }); + await client.callTool({ name: "scan", arguments: { url: "http://127.0.0.1:3000", maxPages: 1, maxActions: 1, runtimeStartupTimeoutMs: 45_000, sqlite: "app.db", providerConfigs: ["providers.json"], sourceSnapshotLimit: 5 } }); assert.equal(observedRequest.manageRuntime, false); + assert.equal(observedRequest.runtimeStartupTimeoutMs, 45_000); assert.equal((observedRequest.scanOptions.sourceAdapters as Array<{ kind: string }>)[0]?.kind, "sqlite"); assert.equal(observedRequest.scanOptions.sourceSnapshotLimit, 5); assert.ok(observedRequest.scanOptions.providerVerifier); diff --git a/test/runtime.test.ts b/test/runtime.test.ts index 8f12af6..137ace0 100644 --- a/test/runtime.test.ts +++ b/test/runtime.test.ts @@ -68,6 +68,59 @@ test("managed runtime performs only the configured number of crash restarts", { } }); +test("managed runtime startup timeout is bounded while a delayed healthy control still passes", { timeout: 10_000 }, async () => { + const root = await mkdtemp(path.join(tmpdir(), "realdone-runtime-startup-timeout-")); + const script = `const http=require('node:http');const port=Number(process.argv[1]);const delay=Number(process.argv[2]);setTimeout(()=>http.createServer((req,res)=>{res.writeHead(200);res.end('ready')}).listen(port,'127.0.0.1'),delay)`; + const brokenPort = await availablePort(); + const broken = new RuntimeManager({ + cwd: root, + command: { executable: process.execPath, args: ["-e", script, String(brokenPort), "500"], source: "delayed startup broken case" }, + healthUrl: `http://127.0.0.1:${brokenPort}/health`, + healthTimeoutMs: 100, + restartLimit: 0, + }); + try { + await assert.rejects( + () => broken.start(), + (error: Error) => { + assert.match(error.message, /within 100ms/); + assert.match(error.message, /Runtime process: state=starting; pid=\d+; restarts=0\/0/); + assert.match(error.message, /Spawned .* as PID \d+/); + return true; + }, + ); + } finally { + await broken.stop(); + } + + const controlPort = await availablePort(); + const control = new RuntimeManager({ + cwd: root, + command: { executable: process.execPath, args: ["-e", script, String(controlPort), "100"], source: "delayed startup control" }, + healthUrl: `http://127.0.0.1:${controlPort}/health`, + healthTimeoutMs: 3_000, + restartLimit: 0, + }); + try { + const started = await control.start(); + assert.equal(started.state, "healthy"); + assert.equal(await fetch(`http://127.0.0.1:${controlPort}/health`).then((response) => response.text()), "ready"); + } finally { + await control.stop(); + await rm(root, { recursive: true, force: true }); + } +}); + +test("managed runtime rejects invalid startup timeout configuration", () => { + assert.throws(() => new RuntimeManager({ + cwd: ".", + command: { executable: process.execPath, args: ["-e", ""], source: "invalid timeout" }, + healthUrl: "http://127.0.0.1:1/health", + healthTimeoutMs: 0, + restartLimit: 0, + }), /healthTimeoutMs must be a positive integer/); +}); + test("managed runtime health failures include bounded redacted startup diagnostics", { timeout: 10_000 }, async () => { const root = await mkdtemp(path.join(tmpdir(), "realdone-runtime-diagnostic-")); const port = await availablePort(); diff --git a/test/smoke.mjs b/test/smoke.mjs index d3b93b5..b1c04e0 100644 --- a/test/smoke.mjs +++ b/test/smoke.mjs @@ -1,5 +1,6 @@ import assert from "node:assert/strict"; import { access, mkdir, mkdtemp, readFile, readdir, rm, writeFile } from "node:fs/promises"; +import { createServer } from "node:http"; import { tmpdir } from "node:os"; import path from "node:path"; import { spawn } from "node:child_process"; @@ -22,6 +23,15 @@ import { scanArtifactSecrets } from "../dist/release/artifacts.js"; import { checkArtifactSchemaCompatibility } from "../dist/release/schema.js"; import { BuiltinProviderHost } from "../dist/providers/builtin.js"; +async function availablePort() { + const server = createServer(); + await new Promise((resolve) => server.listen(0, "127.0.0.1", resolve)); + const address = server.address(); + if (!address || typeof address === "string") throw new Error("Could not reserve a local port."); + await new Promise((resolve, reject) => server.close((error) => error ? reject(error) : resolve())); + return address.port; +} + async function startFixture() { const child = spawn(process.execPath, [path.resolve("benchmarks/fixture-app/server.mjs")], { stdio: ["ignore", "pipe", "inherit"], @@ -399,14 +409,16 @@ try { assert.equal(managedReport.findings[0]?.evidence.afterAppRestart?.canaryPresent, true); assert.equal(managedReport.findings[0]?.evidence.apiReadBack?.canaryPresent, true); const managedProject = path.join(outputRoot, "mcp-managed-app"); + const managedPort = await availablePort(); await mkdir(managedProject, { recursive: true }); await writeFile(path.join(managedProject, "package.json"), JSON.stringify({ name: "realdone-mcp-managed-smoke", private: true, packageManager: "npm@10.9.0", - scripts: { start: "node server.mjs --port 41238" }, + scripts: { start: `node delayed-start.mjs --port ${managedPort}` }, }, null, 2)); await writeFile(path.join(managedProject, "server.mjs"), await readFile(path.resolve("benchmarks/managed-app/server.mjs"))); + await writeFile(path.join(managedProject, "delayed-start.mjs"), "setTimeout(() => import('./server.mjs'), 11_000);\n"); const mcpClient = new Client({ name: "realdone-smoke", version: "1.0.0" }); const mcpTransport = new StdioClientTransport({ command: process.execPath, @@ -416,6 +428,15 @@ try { }); await mcpClient.connect(mcpTransport); try { + const timedOutMcpScan = await mcpClient.callTool({ + name: "scan", + arguments: { maxPages: 1, maxActions: 1, maxDurationMs: 60_000, runtimeStartupTimeoutMs: 1_000 }, + }); + assert.equal(timedOutMcpScan.isError, true); + assert.match(JSON.stringify(timedOutMcpScan.content), /within 1000ms/); + assert.match(JSON.stringify(timedOutMcpScan.content), /Runtime process: state=starting; pid=\d+; restarts=0\/1/); + await assert.rejects(() => fetch(`http://127.0.0.1:${managedPort}/health`), /fetch failed/); + const mcpScan = await mcpClient.callTool({ name: "scan", arguments: { maxPages: 1, maxActions: 2, maxDurationMs: 60_000, traceOnFailure: true }, @@ -426,7 +447,7 @@ try { } finally { await mcpClient.close(); } - await assert.rejects(() => fetch("http://127.0.0.1:41238/health"), /fetch failed/); + await assert.rejects(() => fetch(`http://127.0.0.1:${managedPort}/health`), /fetch failed/); const cliScan = await runCommand({ executable: process.execPath, args: [