From c1817607b4e9dd75a2c42f73753185d1c9764a1e Mon Sep 17 00:00:00 2001 From: Sylvain Duchesne Date: Mon, 3 Aug 2026 13:53:32 +0200 Subject: [PATCH] Migrate Festipod onto the rebuilt @ng-eventually/client surface MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The SDK was rebuilt: reading is possession instead of an ACL, `Nuri` and `ReadCap` are template literal types, the cross-account fan-out is gone, and so is the global discovery index. Repair the typecheck gate FIRST — it was checking nothing. Under TypeScript 6 the deprecated `baseUrl` is reported as an ERROR that aborts compilation, so `tsc --noEmit` exited 0 having verified nothing, behind a single line that reads like a harmless warning. Dropping `baseUrl` (paths resolve relative to the file since 4.4) makes the gate real again — and it immediately surfaced 33 errors, three of which had been dormant for a long time. Types: 18 sites fixed AT THE SOURCE — the functions that produce a NURI now return `Nuri` — with `isNuri` guards only at genuine boundaries (an `@id` read back from a document, an argument coming from a Cucumber step). No cast, no `@ts-ignore`: silencing the compiler here would have removed the very guarantee the new types provide. Capabilities: the ACL is gone. `grantRead`/`protectedDocsOf`/`canRead`/ `makePublic` give way to `capFor`/`shareCap`/`publishRepoLink`, and `open` loses its `owner` argument. `declareConnections` now shares the caps of its OWN protected documents to each neighbour's wallet inbox. Discovery is REMOVED, not postponed: there is no discovery in the target model, a reader reaches a document only by following a link it was given. The module and its call sites are gone; the scenario is suspended with a comment saying what will bring it back — a Festipod DIRECTORY document, whose link the app knows. Kept rather than deleted: the product need has not gone away. Verification, and a correction to how it was measured. The @data baseline (20/22) had been taken on a bloated test wallet: 93 MB against a threshold documented around 99 MB, with the run stretching from 18 to 23 minutes. Restarting from a fresh profile drops it to 9m37 and turns BOTH baseline failures green — including the cold-reconnection one, which confirms the SDK's claim that a fresh session reads its own documents back with nothing re-declared. So the reference itself was degraded, on both sides of the comparison. Real state: typecheck 0, @ui 7/7, @data 20/21. The single failure is understood and left standing: the protected-connections probe reads the protected STORE document as a stand-in for an entity. Sharing a store cap would hand over its entire contents, present and future — precisely the gesture the model refuses. The scenario's own title says "the protected ENTITY"; the probe is what took the shortcut, and it is what has to change. --- .project/concepts/app-architecture/_debt.md | 7 + .project/concepts/bdd-testing/_debt.md | 8 + .project/concepts/data-layer/_debt.md | 10 + .project/concepts/tech-stack/_debt.md | 7 + reports/cucumber-report.html | 26 +- reports/cucumber-report.json | 9436 ++--------------- .../features/decouverte-publique.feature | 9 +- .../event/steps/data/reconnexion.steps.ts | 3 +- src/shared/context/FestipodDataContext.tsx | 93 +- src/shared/data/discovery.ts | 91 - src/shared/data/entityWrites.ts | 7 +- src/shared/data/registration.ts | 35 +- src/shared/test-harness/harness-ng.tsx | 233 +- src/shared/utils/connections.ts | 62 +- src/shared/utils/ngBootstrap.ts | 17 +- src/shared/utils/ngSession.ts | 5 +- src/shared/utils/storeRegistry.ts | 37 +- tsconfig.json | 5 +- 18 files changed, 1489 insertions(+), 8602 deletions(-) create mode 100644 .project/concepts/app-architecture/_debt.md create mode 100644 .project/concepts/bdd-testing/_debt.md create mode 100644 .project/concepts/data-layer/_debt.md create mode 100644 .project/concepts/tech-stack/_debt.md delete mode 100644 src/shared/data/discovery.ts diff --git a/.project/concepts/app-architecture/_debt.md b/.project/concepts/app-architecture/_debt.md new file mode 100644 index 0000000..992b96a --- /dev/null +++ b/.project/concepts/app-architecture/_debt.md @@ -0,0 +1,7 @@ +# Doc-debt — app-architecture + +> Presence of a block = doc to update. Processed → delete the block; no blocks left → delete this file. +> One block = one "big change": `why` + `files` + `verify` (leaves to review). + +## Raw markers (consolidate into blocks, then delete) +- TOUCHED src/shared/context/FestipodDataContext.tsx @2026-08-03 (session 0b064e8b-1717-421f-a20e-a4318ad217b1) diff --git a/.project/concepts/bdd-testing/_debt.md b/.project/concepts/bdd-testing/_debt.md new file mode 100644 index 0000000..ae5adfd --- /dev/null +++ b/.project/concepts/bdd-testing/_debt.md @@ -0,0 +1,8 @@ +# Doc-debt — bdd-testing + +> Presence of a block = doc to update. Processed → delete the block; no blocks left → delete this file. +> One block = one "big change": `why` + `files` + `verify` (leaves to review). + +## Raw markers (consolidate into blocks, then delete) +- TOUCHED src/modules/event/steps/data/reconnexion.steps.ts @2026-08-03 (session 0b064e8b-1717-421f-a20e-a4318ad217b1) +- TOUCHED src/shared/test-harness/harness-ng.tsx @2026-08-03 (session 0b064e8b-1717-421f-a20e-a4318ad217b1) diff --git a/.project/concepts/data-layer/_debt.md b/.project/concepts/data-layer/_debt.md new file mode 100644 index 0000000..49f74a8 --- /dev/null +++ b/.project/concepts/data-layer/_debt.md @@ -0,0 +1,10 @@ +# Doc-debt — data-layer + +> Presence of a block = doc to update. Processed → delete the block; no blocks left → delete this file. +> One block = one "big change": `why` + `files` + `verify` (leaves to review). + +## Raw markers (consolidate into blocks, then delete) +- TOUCHED src/shared/data/entityWrites.ts @2026-08-03 (session 0b064e8b-1717-421f-a20e-a4318ad217b1) +- TOUCHED src/shared/utils/ngBootstrap.ts @2026-08-03 (session 0b064e8b-1717-421f-a20e-a4318ad217b1) +- TOUCHED src/shared/utils/ngSession.ts @2026-08-03 (session 0b064e8b-1717-421f-a20e-a4318ad217b1) +- TOUCHED src/shared/context/FestipodDataContext.tsx @2026-08-03 (session 0b064e8b-1717-421f-a20e-a4318ad217b1) diff --git a/.project/concepts/tech-stack/_debt.md b/.project/concepts/tech-stack/_debt.md new file mode 100644 index 0000000..3ed8dea --- /dev/null +++ b/.project/concepts/tech-stack/_debt.md @@ -0,0 +1,7 @@ +# Doc-debt — tech-stack + +> Presence of a block = doc to update. Processed → delete the block; no blocks left → delete this file. +> One block = one "big change": `why` + `files` + `verify` (leaves to review). + +## Raw markers (consolidate into blocks, then delete) +- TOUCHED tsconfig.json @2026-08-03 (session 0b064e8b-1717-421f-a20e-a4318ad217b1) diff --git a/reports/cucumber-report.html b/reports/cucumber-report.html index cfe79fb..fedcea4 100644 --- a/reports/cucumber-report.html +++ b/reports/cucumber-report.html @@ -10,32 +10,36 @@ .pxVX2l9BxVWm4JEeXcyx{background-color:rgba(0,0,0,0);font-size:inherit;padding:0;border:none;color:var(--cucumber-anchor-color, oklch(62.3% 0.214 259.815deg));cursor:pointer}.pxVX2l9BxVWm4JEeXcyx:disabled{cursor:unset} .c6WkhEkppIypeQsD6C5Q{color:var(--cucumber-code-text-color, oklch(27.9% 0.041 260.031deg))} .INglpKYwlqbsFlrN9pqQ{display:flex;align-items:stretch;justify-content:flex-start;width:100%;border:1px solid var(--cucumber-panel-accent-color, oklch(92.9% 0.013 255.508deg));margin:0}.INglpKYwlqbsFlrN9pqQ+.INglpKYwlqbsFlrN9pqQ{border-top:none}.q4I4KQeRNZhiDVU6qbkf{display:flex;align-items:flex-start;gap:.5em;font-size:1.125em;padding:1rem}.q4I4KQeRNZhiDVU6qbkf+.q4I4KQeRNZhiDVU6qbkf{border-left:1px solid var(--cucumber-panel-accent-color, oklch(92.9% 0.013 255.508deg))}.q4I4KQeRNZhiDVU6qbkf>svg{height:1.25em}.q4I4KQeRNZhiDVU6qbkf a{color:var(--cucumber-anchor-color, oklch(62.3% 0.214 259.815deg))}.c_N2BFZd47O6g_rzGB8d{display:inline-flex;gap:.25em}.c_N2BFZd47O6g_rzGB8d>svg{height:1.25em} -.BwofVgr4bvqutHBqcwXg[data-status=PASSED]{stroke:oklch(.723 .219 149.579)}.BwofVgr4bvqutHBqcwXg[data-status=SKIPPED]{stroke:oklch(.623 .214 259.815)}.BwofVgr4bvqutHBqcwXg[data-status=PENDING]{stroke:oklch(.795 .184 86.047)}.BwofVgr4bvqutHBqcwXg[data-status=UNDEFINED]{stroke:oklch(.795 .184 86.047)}.BwofVgr4bvqutHBqcwXg[data-status=AMBIGUOUS]{stroke:oklch(.554 .046 257.417)}.BwofVgr4bvqutHBqcwXg[data-status=FAILED]{stroke:oklch(.637 .237 25.331)}.BwofVgr4bvqutHBqcwXg[data-status=UNKNOWN]{stroke:oklch(.554 .046 257.417)} +.BwofVgr4bvqutHBqcwXg[data-status=PASSED]{stroke:oklch(.723 .219 149.579)}.BwofVgr4bvqutHBqcwXg[data-status=SKIPPED]{stroke:oklch(.795 .184 86.047)}.BwofVgr4bvqutHBqcwXg[data-status=PENDING]{stroke:oklch(.715 .143 215.221)}.BwofVgr4bvqutHBqcwXg[data-status=UNDEFINED]{stroke:oklch(.623 .214 259.815)}.BwofVgr4bvqutHBqcwXg[data-status=AMBIGUOUS]{stroke:oklch(.667 .295 322.15)}.BwofVgr4bvqutHBqcwXg[data-status=FAILED]{stroke:oklch(.637 .237 25.331)}.BwofVgr4bvqutHBqcwXg[data-status=UNKNOWN]{stroke:oklch(.554 .046 257.417)} .Oaiqq57uSB_Ioxk6K6in{font-style:italic} .gUbOxW8Yux5FNeSfsI2O{position:relative;display:flex;align-items:center}.AEvAM9M_0ZxmJghPdVQs{color:var(--cucumber-anchor-color, oklch(62.3% 0.214 259.815deg));opacity:0;transition:all .35s ease-in-out;position:absolute;font-size:.75em;left:var(--cucumber-anchor-offset, -1.333em)}.gUbOxW8Yux5FNeSfsI2O:hover .AEvAM9M_0ZxmJghPdVQs{opacity:1} -.gXG0xG1TJk_4pdoSxoAf{white-space:pre-wrap;font-size:.875em;padding:.666em .75em;border-radius:.25em;margin:0;overflow-x:auto;background-color:var(--cucumber-error-background-color, oklch(97.1% 0.013 17.38deg));color:var(--cucumber-error-text-color, oklch(44.4% 0.177 26.899deg))} -.J2h_F2WM3WVOOjWSISvA{position:relative;white-space:pre-wrap;font-size:.875em;padding:.666em .75em;border-radius:.25em;margin:0;overflow-x:auto;background-color:var(--cucumber-code-background-color, oklch(98.4% 0.003 247.858deg));color:var(--cucumber-code-text-color, oklch(27.9% 0.041 260.031deg))}.Csls2DZsTVl5_RDKgLID{padding-left:3.25em}.Csls2DZsTVl5_RDKgLID::before{content:"Log";position:absolute;top:.666em;left:.75em;text-transform:uppercase;font-weight:bold;color:var(--cucumber-parameter-color, oklch(62.3% 0.214 259.815deg));opacity:.75}.BL_UrJNG5vfwcNU6hhPj{margin-right:.75em;opacity:.333}.zKWxtTmik48Yw6hm6NJT{max-width:100%;margin-top:.5em}.Kwg8ACzZ14UJrwu6pQDG{list-style:none;display:flex;flex-direction:column;align-items:flex-start;padding:0;margin:0}.Kwg8ACzZ14UJrwu6pQDG a{text-decoration:none;color:var(--cucumber-anchor-color, oklch(62.3% 0.214 259.815deg))}.Kwg8ACzZ14UJrwu6pQDG svg{margin-right:.5em} +.mdP1Fs69_KSHS1uo9zsH{position:absolute;top:.5em;right:.5em;color:var(--cucumber-error-text-color, oklch(44.4% 0.177 26.899deg))}.gXG0xG1TJk_4pdoSxoAf{position:relative;width:fit-content;overflow-x:auto;background-color:var(--cucumber-error-background-color, oklch(97.1% 0.013 17.38deg));color:var(--cucumber-error-text-color, oklch(44.4% 0.177 26.899deg))}.gXG0xG1TJk_4pdoSxoAf pre{white-space:pre-wrap;font-size:.875em;padding:.666em 2.25em .666em .75em;border-radius:.25em;margin:0} +.tq0f0GqySwOtK3h2K_A8{position:absolute;top:.5em;right:.5em}.J2h_F2WM3WVOOjWSISvA{position:relative;width:fit-content;overflow-x:auto;background-color:var(--cucumber-code-background-color, oklch(98.4% 0.003 247.858deg));color:var(--cucumber-code-text-color, oklch(27.9% 0.041 260.031deg))}.J2h_F2WM3WVOOjWSISvA pre{white-space:pre-wrap;font-size:.875em;padding:.666em 2.25em .666em .75em;border-radius:.25em;margin:0}.Csls2DZsTVl5_RDKgLID{padding-left:3.25em}.Csls2DZsTVl5_RDKgLID::before{content:"Log";position:absolute;top:.666em;left:.75em;text-transform:uppercase;font-weight:bold;color:var(--cucumber-parameter-color, oklch(62.3% 0.214 259.815deg));opacity:.75}.BL_UrJNG5vfwcNU6hhPj{margin-right:.75em;opacity:.333}.zKWxtTmik48Yw6hm6NJT{max-width:100%;margin-top:.5em}.Kwg8ACzZ14UJrwu6pQDG{list-style:none;display:flex;flex-direction:column;align-items:flex-start;padding:0;margin:0}.Kwg8ACzZ14UJrwu6pQDG a{text-decoration:none;color:var(--cucumber-anchor-color, oklch(62.3% 0.214 259.815deg))}.Kwg8ACzZ14UJrwu6pQDG svg{margin-right:.5em} .pzfx7tCRXyytC6g9SDxg{display:flex;align-items:center;gap:4px;background-color:rgba(0,0,0,0);color:var(--cucumber-anchor-color, oklch(62.3% 0.214 259.815deg));font-family:inherit;font-size:inherit;padding:0;border:0;margin:0 0 .5em 0;cursor:pointer}.pzfx7tCRXyytC6g9SDxg:hover,.pzfx7tCRXyytC6g9SDxg:focus{text-decoration:underline} .IWgpmOz8r6Wj2YWzioT1{padding:0;margin:1em}.IWgpmOz8r6Wj2YWzioT1 a{color:var(--cucumber-anchor-color, oklch(62.3% 0.214 259.815deg))}.IWgpmOz8r6Wj2YWzioT1 p{margin:1em 0} -.KqWCaxcpp4sxz7A20RLA{font-weight:bold;color:var(--cucumber-keyword-color, oklch(37.9% 0.146 265.522deg));margin-right:.25em} +.KqWCaxcpp4sxz7A20RLA{font-weight:bold;color:var(--cucumber-keyword-color, oklch(37.9% 0.146 265.522deg))} .vf7CPB8kAcns60tKI7vY{display:inline-block;font-weight:normal;padding:0;margin:0}h1.vf7CPB8kAcns60tKI7vY,h2.vf7CPB8kAcns60tKI7vY{font-size:1.25em}h3.vf7CPB8kAcns60tKI7vY,h4.vf7CPB8kAcns60tKI7vY{font-size:1em} .vIGVFeZhSpvtjMv28qFg{padding:0;margin:1em}.vIGVFeZhSpvtjMv28qFg>*+*{margin-top:1em} .MNkrrVMCDeB7mTXs5do4{border-collapse:collapse;margin:0}.MNkrrVMCDeB7mTXs5do4 thead tr{border-bottom:6px solid rgba(0,0,0,0)}.MNkrrVMCDeB7mTXs5do4 tr+tr{border-top:6px solid rgba(0,0,0,0)}.MNkrrVMCDeB7mTXs5do4 th,.MNkrrVMCDeB7mTXs5do4 td{padding:.4em .6em;border-width:2px;border-style:solid;border-top:none;border-bottom:none;border-color:var(--cucumber-keyword-color, oklch(37.9% 0.146 265.522deg));color:var(--cucumber-parameter-color, oklch(62.3% 0.214 259.815deg))} .buWCECLHpnDfpwKwugOX{color:var(--cucumber-docstring-color, oklch(51.1% 0.096 186.391deg));padding-bottom:.25em;margin:0;overflow-x:auto}.buWCECLHpnDfpwKwugOX::before,.buWCECLHpnDfpwKwugOX::after{content:'"""';display:block;transform:translateY(0.25em)}.buWCECLHpnDfpwKwugOX::before{padding-bottom:.25em}.buWCECLHpnDfpwKwugOX::after{padding-top:.25em} .bdo_0mnlVrjstWwURN_U>*+*{margin-top:.25rem !important}.QHoEFjljz7WuzDTlcxtS{list-style:none;padding:0;margin:0}.QHoEFjljz7WuzDTlcxtS>*+*{margin-top:.25rem !important}.PM07KHjXy4tyt02ZIRR9{background-color:rgba(0,0,0,0);color:var(--cucumber-code-text-color, oklch(55.4% 0.046 257.417deg));font-size:inherit;padding:0;border:none;cursor:pointer;display:flex;gap:.25rem} +.alrzzeeVK2CC5nU9lSGq{padding:0;margin:0;list-style:none}.alrzzeeVK2CC5nU9lSGq>*+*{margin-top:.25em}.HGK0o1TCMeS7ZliWJSVL>*+*{margin-left:.5em}.WlN4S4eLg_3sZqn4137A{color:var(--cucumber-parameter-color, oklch(62.3% 0.214 259.815deg));font-size:inherit} +.fw_IyAhp5RKMXwj0XFXz{padding:0;margin:0;font-size:.875em;font-style:italic} +.dMLaBV0ggbqOGqSdfzct{background-color:var(--cucumber-code-background-color, oklch(98.4% 0.003 247.858deg));color:var(--cucumber-code-text-color, oklch(27.9% 0.041 260.031deg));font-size:.75em;padding:.1em .2em;border:1px solid var(--cucumber-panel-accent-color, oklch(92.9% 0.013 255.508deg));border-radius:.25em} .edfkWjj2ntzTtX_SoMvo{list-style:none;padding:0;margin:0}.edfkWjj2ntzTtX_SoMvo>*+*{margin-top:.25rem !important} .vycyimC_oqrDv1GE7BAM{display:inline-block;background-color:var(--cucumber-panel-background-color, oklch(96.8% 0.007 247.896deg));color:var(--cucumber-panel-text-color, oklch(27.9% 0.041 260.031deg));font-size:.75em;padding:.1em .2em;border:1px solid var(--cucumber-panel-accent-color, oklch(92.9% 0.013 255.508deg));border-radius:.25em} -.H0Xd4e_jD5aZvmMndTN8{display:flex;width:100%;gap:.25rem}.K0kO4YUCUMTXFsyihZJS{padding-top:.1em}.zuJ1cF585gImCsGolIBS>*{vertical-align:middle}.zuJ1cF585gImCsGolIBS>*+*{margin-left:.5em}.lsDxmKIPTK47mTluAXGP{font-size:1em;display:inline;font-weight:normal;padding:0;margin:0}.QmsppVqfVUd5coRVVFWR{margin-left:1.125rem}.QmsppVqfVUd5coRVVFWR>*{margin-top:.25rem !important} +.H0Xd4e_jD5aZvmMndTN8{display:flex;width:100%;gap:.25rem}.K0kO4YUCUMTXFsyihZJS{padding-top:.1em}.zuJ1cF585gImCsGolIBS>*{vertical-align:middle}.zuJ1cF585gImCsGolIBS>*+*{margin-left:.5em}.lsDxmKIPTK47mTluAXGP{font-size:1em;display:inline;font-weight:normal;padding:0;margin:0}.QmsppVqfVUd5coRVVFWR{margin-left:1.375rem}.QmsppVqfVUd5coRVVFWR>*{margin-top:.25rem !important} +.Td7SwBLMQhs4Crfk_idA{position:relative;white-space:pre-wrap;width:fit-content;font-size:.875em;padding:.666em .75em;border-radius:.25em;margin:0;overflow-x:auto;background-color:var(--cucumber-code-background-color, oklch(98.4% 0.003 247.858deg));color:var(--cucumber-code-text-color, oklch(27.9% 0.041 260.031deg))} .R_7odAGRh9ZWASbUwK3j{margin-left:1em}.v14cxiblK9ByIxo2kEol{color:var(--cucumber-code-text-color, oklch(55.4% 0.046 257.417deg))} .FbgC7RSK7PrGGsNDRAl2{padding:0;margin:0}.QRN0XyDjb8RR6B4I3C5w{display:inline;list-style-type:none;padding:8px 0;color:var(--cucumber-tag-color, oklch(68.1% 0.162 75.834deg))}.QRN0XyDjb8RR6B4I3C5w:not(:last-child){margin-right:10px} .jraSbOu3Xpk7mbUgodqc{font-weight:normal;color:var(--cucumber-parameter-color, oklch(62.3% 0.214 259.815deg))} -.j0ln79cSlRB4hNiHeXjH[data-status=PASSED]{color:oklch(.723 .219 149.579/.75)}.j0ln79cSlRB4hNiHeXjH[data-status=SKIPPED]{color:oklch(.623 .214 259.815/.75)}.j0ln79cSlRB4hNiHeXjH[data-status=PENDING]{color:oklch(.795 .184 86.047/.75)}.j0ln79cSlRB4hNiHeXjH[data-status=UNDEFINED]{color:oklch(.795 .184 86.047/.75)}.j0ln79cSlRB4hNiHeXjH[data-status=AMBIGUOUS]{color:oklch(.554 .046 257.417/.75)}.j0ln79cSlRB4hNiHeXjH[data-status=FAILED]{color:oklch(.637 .237 25.331/.75)}.j0ln79cSlRB4hNiHeXjH[data-status=UNKNOWN]{color:oklch(.554 .046 257.417/.75)} -.dJtIMyvphlx0qcgDTsiw{padding-top:.35em;padding-left:.5em;padding-right:.5em}._DWYkpBnRy0q3wD_cPXP{border:1px solid var(--cucumber-panel-accent-color, oklch(92.9% 0.013 255.508deg));border-radius:2px}.hVQDgniLRt16264Or_sz+.hVQDgniLRt16264Or_sz{border-top:1px solid var(--cucumber-panel-accent-color, oklch(92.9% 0.013 255.508deg))}.omlGxKKs7QCFoxDylyVa{box-sizing:border-box;width:100%;padding:.75em 1em;border:none;background-color:var(--cucumber-panel-background-color, oklch(96.8% 0.007 247.896deg));color:var(--cucumber-panel-text-color, oklch(27.9% 0.041 260.031deg));cursor:pointer;text-align:left}.omlGxKKs7QCFoxDylyVa:hover{background-color:var(--cucumber-panel-accent-color, oklch(92.9% 0.013 255.508deg))}.snUD7AwgaJEwdlEfbiV7{transform-origin:center center;transition:transform .2s linear}.omlGxKKs7QCFoxDylyVa[aria-expanded=true] .snUD7AwgaJEwdlEfbiV7,.omlGxKKs7QCFoxDylyVa[aria-selected=true] .snUD7AwgaJEwdlEfbiV7{transform:rotate(90deg)}.ap4P3VymU3aDnwQDmlUR{padding:1.25em} +.j0ln79cSlRB4hNiHeXjH[data-status=PASSED]{color:oklch(.723 .219 149.579/.75)}.j0ln79cSlRB4hNiHeXjH[data-status=SKIPPED]{color:oklch(.795 .184 86.047/.75)}.j0ln79cSlRB4hNiHeXjH[data-status=PENDING]{color:oklch(.715 .143 215.221/.75)}.j0ln79cSlRB4hNiHeXjH[data-status=UNDEFINED]{color:oklch(.623 .214 259.815/.75)}.j0ln79cSlRB4hNiHeXjH[data-status=AMBIGUOUS]{color:oklch(.667 .295 322.15/.75)}.j0ln79cSlRB4hNiHeXjH[data-status=FAILED]{color:oklch(.637 .237 25.331/.75)}.j0ln79cSlRB4hNiHeXjH[data-status=UNKNOWN]{color:oklch(.554 .046 257.417/.75)} +.dJtIMyvphlx0qcgDTsiw{padding-top:.35em;padding-left:.5em;padding-right:.5em}._DWYkpBnRy0q3wD_cPXP{border:1px solid var(--cucumber-panel-accent-color, oklch(92.9% 0.013 255.508deg));border-radius:2px}.NiTgoJ2osTdd9ekMbuOe+.NiTgoJ2osTdd9ekMbuOe{border-top:1px solid var(--cucumber-panel-accent-color, oklch(92.9% 0.013 255.508deg))}.j6ezg8gp2KiCjwpBj2o2{font-size:inherit;padding:0;margin:0}.Ix097x7j7ygWAXCxXREK{box-sizing:border-box;font-family:inherit;font-size:inherit;width:100%;padding:.75em 1em;border:none;background-color:var(--cucumber-panel-background-color, oklch(96.8% 0.007 247.896deg));color:var(--cucumber-panel-text-color, oklch(27.9% 0.041 260.031deg));cursor:pointer;text-align:left}.Ix097x7j7ygWAXCxXREK:hover,.Ix097x7j7ygWAXCxXREK:focus{background-color:var(--cucumber-panel-accent-color, oklch(92.9% 0.013 255.508deg))}.YjmABOm7sHVIkloURH91{transform-origin:center center;transition:transform .2s linear}.Ix097x7j7ygWAXCxXREK[aria-expanded=true] .YjmABOm7sHVIkloURH91{transform:rotate(90deg)}.xB2ut0kjc8LpmLjQcdVS{padding:1.25em} .e6vRERKmUvqlkzGENGls>section:not(:last-child){margin-bottom:1.5em}.LlidDuvzOTY5uh8qYixE{font-size:1.25em;margin:1em 0} -.L1JsHArbuiVEpWD3i79e{box-sizing:border-box;width:100%;min-width:20em;max-width:50vw;height:1.5em;padding:0;font-family:inherit;font-size:inherit;background-color:rgba(0,0,0,0);color:inherit;border:1px solid rgba(0,0,0,0)}.yyGLBA4NyGoLRusggZBg{display:flex;flex-wrap:wrap;align-items:center;gap:.5em;list-style:none;padding:0;margin:0}.JxRnwQjoDw3X3DvU_BzQ{position:relative;font-size:.75em}.fzXxSolmNDNTERvPtDqh{position:absolute;top:.125em;left:.5em;width:1em;height:1em;padding:0;margin:0;opacity:0;cursor:pointer}.PpXi4yubNz6W4qVlLiNQ{padding:.333em .5em;border-radius:.333em;text-transform:uppercase;white-space:nowrap;cursor:pointer}.PpXi4yubNz6W4qVlLiNQ[data-status=PASSED]{background-color:oklch(.723 .219 149.579/.334)}.PpXi4yubNz6W4qVlLiNQ[data-status=PASSED] svg{color:oklch(.723 .219 149.579)}.PpXi4yubNz6W4qVlLiNQ[data-status=SKIPPED]{background-color:oklch(.623 .214 259.815/.334)}.PpXi4yubNz6W4qVlLiNQ[data-status=SKIPPED] svg{color:oklch(.623 .214 259.815)}.PpXi4yubNz6W4qVlLiNQ[data-status=PENDING]{background-color:oklch(.795 .184 86.047/.334)}.PpXi4yubNz6W4qVlLiNQ[data-status=PENDING] svg{color:oklch(.795 .184 86.047)}.PpXi4yubNz6W4qVlLiNQ[data-status=UNDEFINED]{background-color:oklch(.795 .184 86.047/.334)}.PpXi4yubNz6W4qVlLiNQ[data-status=UNDEFINED] svg{color:oklch(.795 .184 86.047)}.PpXi4yubNz6W4qVlLiNQ[data-status=AMBIGUOUS]{background-color:oklch(.554 .046 257.417/.334)}.PpXi4yubNz6W4qVlLiNQ[data-status=AMBIGUOUS] svg{color:oklch(.554 .046 257.417)}.PpXi4yubNz6W4qVlLiNQ[data-status=FAILED]{background-color:oklch(.637 .237 25.331/.334)}.PpXi4yubNz6W4qVlLiNQ[data-status=FAILED] svg{color:oklch(.637 .237 25.331)}.PpXi4yubNz6W4qVlLiNQ[data-status=UNKNOWN]{background-color:oklch(.554 .046 257.417/.334)}.PpXi4yubNz6W4qVlLiNQ[data-status=UNKNOWN] svg{color:oklch(.554 .046 257.417)}.fzXxSolmNDNTERvPtDqh:not(:checked)+.PpXi4yubNz6W4qVlLiNQ{opacity:.666}.fzXxSolmNDNTERvPtDqh:not(:checked)+.PpXi4yubNz6W4qVlLiNQ svg{opacity:0}.PpXi4yubNz6W4qVlLiNQ>*+*{margin-left:.25em} +.L1JsHArbuiVEpWD3i79e{box-sizing:border-box;width:100%;min-width:20em;max-width:50vw;height:1.5em;padding:0;font-family:inherit;font-size:inherit;background-color:rgba(0,0,0,0);color:inherit;border:1px solid rgba(0,0,0,0)}.yyGLBA4NyGoLRusggZBg{display:flex;flex-wrap:wrap;align-items:center;gap:.5em;list-style:none;padding:0;margin:0}.JxRnwQjoDw3X3DvU_BzQ{position:relative;font-size:.75em}.fzXxSolmNDNTERvPtDqh{position:absolute;top:.125em;left:.5em;width:1em;height:1em;padding:0;margin:0;opacity:0;cursor:pointer}.PpXi4yubNz6W4qVlLiNQ{padding:.333em .5em;border-radius:.333em;text-transform:uppercase;white-space:nowrap;cursor:pointer}.PpXi4yubNz6W4qVlLiNQ[data-status=PASSED]{background-color:oklch(.723 .219 149.579/.334)}.PpXi4yubNz6W4qVlLiNQ[data-status=PASSED] svg{color:oklch(.723 .219 149.579)}.PpXi4yubNz6W4qVlLiNQ[data-status=SKIPPED]{background-color:oklch(.795 .184 86.047/.334)}.PpXi4yubNz6W4qVlLiNQ[data-status=SKIPPED] svg{color:oklch(.795 .184 86.047)}.PpXi4yubNz6W4qVlLiNQ[data-status=PENDING]{background-color:oklch(.715 .143 215.221/.334)}.PpXi4yubNz6W4qVlLiNQ[data-status=PENDING] svg{color:oklch(.715 .143 215.221)}.PpXi4yubNz6W4qVlLiNQ[data-status=UNDEFINED]{background-color:oklch(.623 .214 259.815/.334)}.PpXi4yubNz6W4qVlLiNQ[data-status=UNDEFINED] svg{color:oklch(.623 .214 259.815)}.PpXi4yubNz6W4qVlLiNQ[data-status=AMBIGUOUS]{background-color:oklch(.667 .295 322.15/.334)}.PpXi4yubNz6W4qVlLiNQ[data-status=AMBIGUOUS] svg{color:oklch(.667 .295 322.15)}.PpXi4yubNz6W4qVlLiNQ[data-status=FAILED]{background-color:oklch(.637 .237 25.331/.334)}.PpXi4yubNz6W4qVlLiNQ[data-status=FAILED] svg{color:oklch(.637 .237 25.331)}.PpXi4yubNz6W4qVlLiNQ[data-status=UNKNOWN]{background-color:oklch(.554 .046 257.417/.334)}.PpXi4yubNz6W4qVlLiNQ[data-status=UNKNOWN] svg{color:oklch(.554 .046 257.417)}.fzXxSolmNDNTERvPtDqh:not(:checked)+.PpXi4yubNz6W4qVlLiNQ{opacity:.666}.fzXxSolmNDNTERvPtDqh:not(:checked)+.PpXi4yubNz6W4qVlLiNQ svg{opacity:0}.PpXi4yubNz6W4qVlLiNQ>*+*{margin-left:.25em} .oMOuN6kTIUDg0c0jbV_R{display:flex;width:100%;gap:.25rem}.EE1WZNfwKQInl05qqcwR{padding-top:.1em}.r_iva8BXALZLizBBR5tA>*{vertical-align:middle}.r_iva8BXALZLizBBR5tA>*+*{margin-left:.5em}.biOLPk5qSObTBnsjzRa2{font-size:1em;display:inline;font-weight:normal;padding:0;margin:0}.oiM0oqoVIMRPrYkUwBs5{margin-left:1.125rem}.oiM0oqoVIMRPrYkUwBs5>*{margin-top:.25rem !important} .lFziJrIfSg3vCR9juQvK{font-style:italic}.tAbzjbRSI3sIfhvk43bT{padding:0;list-style:none}.tAbzjbRSI3sIfhvk43bT>li{list-style:none}.tAbzjbRSI3sIfhvk43bT>li:not(:empty){padding:.125em 0} -.jGf5f1r0vW6ApPrFIznv{list-style:none;display:flex;width:100%;padding:0;margin:0}.VlpRuYBlXtcShawgxgzA{box-sizing:border-box;flex-grow:1;min-width:11em;padding:.333em 2.5em;background-color:#000;color:#fff;white-space:nowrap;text-align:center;text-transform:uppercase}.VlpRuYBlXtcShawgxgzA[data-status=PASSED]{background-color:oklch(.723 .219 149.579)}.VlpRuYBlXtcShawgxgzA[data-status=SKIPPED]{background-color:oklch(.623 .214 259.815)}.VlpRuYBlXtcShawgxgzA[data-status=PENDING]{background-color:oklch(.795 .184 86.047)}.VlpRuYBlXtcShawgxgzA[data-status=UNDEFINED]{background-color:oklch(.795 .184 86.047)}.VlpRuYBlXtcShawgxgzA[data-status=AMBIGUOUS]{background-color:oklch(.554 .046 257.417)}.VlpRuYBlXtcShawgxgzA[data-status=FAILED]{background-color:oklch(.637 .237 25.331)}.VlpRuYBlXtcShawgxgzA[data-status=UNKNOWN]{background-color:oklch(.554 .046 257.417)} +.jGf5f1r0vW6ApPrFIznv{list-style:none;display:flex;width:100%;padding:0;margin:0}.VlpRuYBlXtcShawgxgzA{box-sizing:border-box;flex-grow:1;min-width:11em;padding:.333em 2.5em;background-color:#000;color:#fff;white-space:nowrap;text-align:center;text-transform:uppercase}.VlpRuYBlXtcShawgxgzA[data-status=PASSED]{background-color:oklch(.723 .219 149.579)}.VlpRuYBlXtcShawgxgzA[data-status=SKIPPED]{background-color:oklch(.795 .184 86.047)}.VlpRuYBlXtcShawgxgzA[data-status=PENDING]{background-color:oklch(.715 .143 215.221)}.VlpRuYBlXtcShawgxgzA[data-status=UNDEFINED]{background-color:oklch(.623 .214 259.815)}.VlpRuYBlXtcShawgxgzA[data-status=AMBIGUOUS]{background-color:oklch(.667 .295 322.15)}.VlpRuYBlXtcShawgxgzA[data-status=FAILED]{background-color:oklch(.637 .237 25.331)}.VlpRuYBlXtcShawgxgzA[data-status=UNKNOWN]{background-color:oklch(.554 .046 257.417)}