9968 lines
655 KiB
YAML
9968 lines
655 KiB
YAML
- generic [ref=e1]:
|
|
- generic [ref=e2]:
|
|
- navigation "Navigationsleiste" [ref=e3]:
|
|
- generic [ref=e4]:
|
|
- link "Startseite" [ref=e5] [cursor=pointer]:
|
|
- /url: /
|
|
- img [ref=e6]
|
|
- button "Navigationsmenü" [ref=e8] [cursor=pointer]:
|
|
- img [ref=e9]
|
|
- main "Comparing b7907bd69d...03514b9e5b" [ref=e11]:
|
|
- generic [ref=e12]:
|
|
- generic [ref=e14]:
|
|
- generic [ref=e15]:
|
|
- img [ref=e17]
|
|
- generic [ref=e20]:
|
|
- link "ahmido" [ref=e21] [cursor=pointer]:
|
|
- /url: /ahmido
|
|
- text: /
|
|
- link "TenantAtlas" [ref=e22] [cursor=pointer]:
|
|
- /url: /ahmido/TenantAtlas
|
|
- generic [ref=e23]:
|
|
- link "RSS Feed" [ref=e24] [cursor=pointer]:
|
|
- /url: /ahmido/TenantAtlas.rss
|
|
- img [ref=e25]
|
|
- generic "Melde dich an, um dieses Repository zu beobachten." [ref=e28] [cursor=pointer]:
|
|
- button "Beobachten" [disabled]:
|
|
- img
|
|
- generic: Beobachten
|
|
- link "1" [ref=e29]:
|
|
- /url: /ahmido/TenantAtlas/watchers
|
|
- generic "Bitte melde dich an, um dieses Repository zu favorisieren." [ref=e31] [cursor=pointer]:
|
|
- button "Favorisieren" [disabled]:
|
|
- img
|
|
- generic: Favorisieren
|
|
- link "0" [ref=e32]:
|
|
- /url: /ahmido/TenantAtlas/stars
|
|
- generic "Bitte melde dich an, um dieses Repository zu forken." [ref=e33]:
|
|
- generic:
|
|
- img
|
|
- link "0" [ref=e34] [cursor=pointer]:
|
|
- /url: /ahmido/TenantAtlas/forks
|
|
- navigation [ref=e36]:
|
|
- generic [ref=e37]:
|
|
- link "Code" [ref=e38] [cursor=pointer]:
|
|
- /url: /ahmido/TenantAtlas
|
|
- img [ref=e39]
|
|
- generic [ref=e41]: Code
|
|
- link "Issues" [ref=e42] [cursor=pointer]:
|
|
- /url: /ahmido/TenantAtlas/issues
|
|
- img [ref=e43]
|
|
- generic [ref=e46]: Issues
|
|
- link "Pull-Requests" [ref=e47] [cursor=pointer]:
|
|
- /url: /ahmido/TenantAtlas/pulls
|
|
- img [ref=e48]
|
|
- generic [ref=e50]: Pull-Requests
|
|
- link "Actions" [ref=e51] [cursor=pointer]:
|
|
- /url: /ahmido/TenantAtlas/actions
|
|
- img [ref=e52]
|
|
- generic [ref=e54]: Actions
|
|
- link "Pakete" [ref=e55] [cursor=pointer]:
|
|
- /url: /ahmido/TenantAtlas/packages
|
|
- img [ref=e56]
|
|
- generic [ref=e58]: Pakete
|
|
- link "Projekte 1" [ref=e59] [cursor=pointer]:
|
|
- /url: /ahmido/TenantAtlas/projects
|
|
- img [ref=e60]
|
|
- generic [ref=e62]: Projekte
|
|
- generic [ref=e63]: "1"
|
|
- button "Weitere Einträge" [expanded] [ref=e64] [cursor=pointer]:
|
|
- img [ref=e65]
|
|
- generic [ref=e68]:
|
|
- heading "Commits vergleichen" [level=2] [ref=e69]
|
|
- generic [ref=e70]:
|
|
- link "Head und Base vertauschen" [ref=e71] [cursor=pointer]:
|
|
- /url: /ahmido/TenantAtlas/compare/358-operationrun-queue-truth-foundation...platform-dev
|
|
- img [ref=e72]
|
|
- combobox [ref=e74] [cursor=pointer]:
|
|
- generic [ref=e75]:
|
|
- generic [ref=e76]: "Ziel: ahmido:platform-dev"
|
|
- menu [ref=e77]
|
|
- link "..." [ref=e79] [cursor=pointer]:
|
|
- /url: /ahmido/TenantAtlas/compare/platform-dev..358-operationrun-queue-truth-foundation
|
|
- img [ref=e80]
|
|
- generic [ref=e82]: ...
|
|
- combobox [ref=e83] [cursor=pointer]:
|
|
- generic [ref=e84]:
|
|
- generic [ref=e85]: "pullen von: ahmido:358-operationrun-queue-truth-foundation"
|
|
- menu [ref=e86]
|
|
- generic [ref=e88]:
|
|
- heading "1 Commits platform-d ... 358-operat" [level=4] [ref=e89]:
|
|
- generic [ref=e90]: 1 Commits
|
|
- generic [ref=e91]:
|
|
- link "platform-d" [ref=e92] [cursor=pointer]:
|
|
- /url: /ahmido/TenantAtlas/commit/b7907bd69d169bd4b3bf37e1ee9d9e4478c7cb13
|
|
- text: ...
|
|
- link "358-operat" [ref=e93] [cursor=pointer]:
|
|
- /url: /ahmido/TenantAtlas/commit/03514b9e5b2addf53d5441f0fc122ccef0b51999
|
|
- table [ref=e95]:
|
|
- rowgroup [ref=e96]:
|
|
- row "Autor Nachricht Datum" [ref=e97]:
|
|
- columnheader "Autor" [ref=e98]
|
|
- columnheader "Nachricht" [ref=e99]
|
|
- columnheader "Datum" [ref=e100]
|
|
- columnheader [ref=e101]
|
|
- rowgroup [ref=e102]:
|
|
- 'row "Ahmed Darrazi Ahmed Darrazi feat: implement operation run queue truth foundation (spec 358) 6. Juni 2026, 1:27 PM MESZ Hash kopieren An diesem Punkt im Verlauf anzeigen" [ref=e9903]':
|
|
- cell "Ahmed Darrazi Ahmed Darrazi" [ref=e104]:
|
|
- generic [ref=e105]:
|
|
- img "Ahmed Darrazi" [ref=e106]
|
|
- generic [ref=e107]: Ahmed Darrazi
|
|
- 'cell "feat: implement operation run queue truth foundation (spec 358)" [ref=e108]':
|
|
- 'generic "feat: implement operation run queue truth foundation (spec 358)" [ref=e110]':
|
|
- 'link "feat: implement operation run queue truth foundation (spec 358)" [ref=e111] [cursor=pointer]':
|
|
- /url: /ahmido/TenantAtlas/commit/03514b9e5b2addf53d5441f0fc122ccef0b51999
|
|
- cell "6. Juni 2026, 1:27 PM MESZ" [ref=e9904]: 2026-06-06 13:27:48 +02:00vor 1 Minute
|
|
- cell "Hash kopieren An diesem Punkt im Verlauf anzeigen" [ref=e113]:
|
|
- button "Hash kopieren" [ref=e114] [cursor=pointer]:
|
|
- img [ref=e115]
|
|
- link "An diesem Punkt im Verlauf anzeigen" [ref=e118] [cursor=pointer]:
|
|
- /url: /ahmido/TenantAtlas/src/commit/03514b9e5b2addf53d5441f0fc122ccef0b51999
|
|
- img [ref=e119]
|
|
- generic [ref=e121]:
|
|
- generic [ref=e123]:
|
|
- combobox "Leerzeichen" [ref=e124] [cursor=pointer]:
|
|
- img [ref=e125]
|
|
- link "Geteilte Ansicht" [ref=e127] [cursor=pointer]:
|
|
- /url: "?style=split&whitespace=show-all&show-outdated="
|
|
- img [ref=e128]
|
|
- menu "Diff-Optionen" [ref=e130] [cursor=pointer]:
|
|
- img [ref=e131]
|
|
- generic [ref=e134]:
|
|
- generic [ref=e135]:
|
|
- 'heading "9 9 Änderungen: 8 Ergänzungen und 1 Löschungen apps/platform/app/Support/OpsUx/OperationRunProgressContract.php Datei anzeigen" [level=4] [ref=e136]':
|
|
- generic [ref=e137]:
|
|
- button [ref=e138] [cursor=pointer]:
|
|
- img [ref=e139]
|
|
- generic [ref=e141]:
|
|
- text: "9"
|
|
- 'generic "9 Änderungen: 8 Ergänzungen und 1 Löschungen" [ref=e142]'
|
|
- generic [ref=e144]:
|
|
- link "apps/platform/app/Support/OpsUx/OperationRunProgressContract.php" [ref=e145] [cursor=pointer]:
|
|
- /url: "#diff-af8b87c456c4a94716646dc84feac12360c69971"
|
|
- button [ref=e146] [cursor=pointer]:
|
|
- img [ref=e147]
|
|
- link "Datei anzeigen" [ref=e151] [cursor=pointer]:
|
|
- /url: /ahmido/TenantAtlas/src/commit/03514b9e5b2addf53d5441f0fc122ccef0b51999/apps/platform/app/Support/OpsUx/OperationRunProgressContract.php
|
|
- table [ref=e154]:
|
|
- rowgroup [ref=e161]:
|
|
- 'row "@ -38,6 +38,13 @@ public static function forRun(OperationRun $run): array" [ref=e162]':
|
|
- cell [ref=e163]:
|
|
- button [ref=e165] [cursor=pointer]:
|
|
- img [ref=e166]
|
|
- cell [ref=e168]
|
|
- cell [ref=e169]
|
|
- 'cell "@ -38,6 +38,13 @@ public static function forRun(OperationRun $run): array" [ref=e170]':
|
|
- code [ref=e171]: "@ -38,6 +38,13 @@ public static function forRun(OperationRun $run): array"
|
|
- 'row "38 38 $context = is_array($run->context) ? $run->context : [];" [ref=e172]':
|
|
- cell "38" [ref=e173]: "38"
|
|
- cell "38" [ref=e174]: "38"
|
|
- cell [ref=e175]
|
|
- cell [ref=e176]
|
|
- 'cell "$context = is_array($run->context) ? $run->context : [];" [ref=e177]':
|
|
- code [ref=e178]: "$context = is_array($run->context) ? $run->context : [];"
|
|
- row "39 39 $capability = self::capabilityForRun($run, $summaryCounts, $context);" [ref=e179]:
|
|
- cell "39" [ref=e180]: "39"
|
|
- cell "39" [ref=e181]: "39"
|
|
- cell [ref=e182]
|
|
- cell [ref=e183]
|
|
- cell "$capability = self::capabilityForRun($run, $summaryCounts, $context);" [ref=e184]:
|
|
- code [ref=e185]: $capability = self::capabilityForRun($run, $summaryCounts, $context);
|
|
- row "40 40" [ref=e186]:
|
|
- cell "40" [ref=e187]: "40"
|
|
- cell "40" [ref=e188]: "40"
|
|
- cell [ref=e189]
|
|
- cell [ref=e190]
|
|
- cell [ref=e191]:
|
|
- code
|
|
- 'row "41 + if ($run->isCurrentlyActive() && $run->freshnessState()->isLikelyStale()) {" [ref=e192]':
|
|
- cell [ref=e193]
|
|
- cell "41" [ref=e194]: "41"
|
|
- cell [ref=e195]
|
|
- cell "+" [ref=e196]:
|
|
- generic [ref=e197]: +
|
|
- 'cell "if ($run->isCurrentlyActive() && $run->freshnessState()->isLikelyStale()) {" [ref=e198]':
|
|
- code [ref=e199]: "if ($run->isCurrentlyActive() && $run->freshnessState()->isLikelyStale()) {"
|
|
- row "42 + return self::indeterminateModel(" [ref=e200]:
|
|
- cell [ref=e201]
|
|
- cell "42" [ref=e202]: "42"
|
|
- cell [ref=e203]
|
|
- cell "+" [ref=e204]:
|
|
- generic [ref=e205]: +
|
|
- cell "return self::indeterminateModel(" [ref=e206]:
|
|
- code [ref=e207]: return self::indeterminateModel(
|
|
- row "43 + $capability," [ref=e208]:
|
|
- cell [ref=e209]
|
|
- cell "43" [ref=e210]: "43"
|
|
- cell [ref=e211]
|
|
- cell "+" [ref=e212]:
|
|
- generic [ref=e213]: +
|
|
- cell "$capability," [ref=e214]:
|
|
- code [ref=e215]: $capability,
|
|
- row "44 + RunDurationInsights::stuckGuidance($run) ?? 'Past the lifecycle window. Review worker health and logs before retrying.'," [ref=e216]:
|
|
- cell [ref=e217]
|
|
- cell "44" [ref=e218]: "44"
|
|
- cell [ref=e219]
|
|
- cell "+" [ref=e220]:
|
|
- generic [ref=e221]: +
|
|
- cell "RunDurationInsights::stuckGuidance($run) ?? 'Past the lifecycle window. Review worker health and logs before retrying.'," [ref=e222]:
|
|
- code [ref=e223]: RunDurationInsights::stuckGuidance($run) ?? 'Past the lifecycle window. Review worker health and logs before retrying.',
|
|
- row "45 + );" [ref=e224]:
|
|
- cell [ref=e225]
|
|
- cell "45" [ref=e226]: "45"
|
|
- cell [ref=e227]
|
|
- cell "+" [ref=e228]:
|
|
- generic [ref=e229]: +
|
|
- cell ");" [ref=e230]:
|
|
- code [ref=e231]: );
|
|
- 'row "46 + }" [ref=e232]':
|
|
- cell [ref=e233]
|
|
- cell "46" [ref=e234]: "46"
|
|
- cell [ref=e235]
|
|
- cell "+" [ref=e236]:
|
|
- generic [ref=e237]: +
|
|
- 'cell "}" [ref=e238]':
|
|
- code [ref=e239]: "}"
|
|
- row "47 +" [ref=e240]:
|
|
- cell [ref=e241]
|
|
- cell "47" [ref=e242]: "47"
|
|
- cell [ref=e243]
|
|
- cell "+" [ref=e244]:
|
|
- generic [ref=e245]: +
|
|
- cell [ref=e246]:
|
|
- code
|
|
- 'row "41 48 return match ($capability) {" [ref=e247]':
|
|
- cell "41" [ref=e248]: "41"
|
|
- cell "48" [ref=e249]: "48"
|
|
- cell [ref=e250]
|
|
- cell [ref=e251]
|
|
- 'cell "return match ($capability) {" [ref=e252]':
|
|
- code [ref=e253]: "return match ($capability) {"
|
|
- row "42 49 self::COUNTED => self::countedModel($summaryCounts)," [ref=e254]:
|
|
- cell "42" [ref=e255]: "42"
|
|
- cell "49" [ref=e256]: "49"
|
|
- cell [ref=e257]
|
|
- cell [ref=e258]
|
|
- cell "self::COUNTED => self::countedModel($summaryCounts)," [ref=e259]:
|
|
- code [ref=e260]: self::COUNTED => self::countedModel($summaryCounts),
|
|
- row "43 50 self::PHASED => self::phasedModel($run, $context)," [ref=e261]:
|
|
- cell "43" [ref=e262]: "43"
|
|
- cell "50" [ref=e263]: "50"
|
|
- cell [ref=e264]
|
|
- cell [ref=e265]
|
|
- cell "self::PHASED => self::phasedModel($run, $context)," [ref=e266]:
|
|
- code [ref=e267]: self::PHASED => self::phasedModel($run, $context),
|
|
- 'row "@ -411,4 +418,4 @@ private static function intOrNull(mixed $value): ?int" [ref=e268]':
|
|
- cell [ref=e269]:
|
|
- generic [ref=e270]:
|
|
- button [ref=e271] [cursor=pointer]:
|
|
- img [ref=e272]
|
|
- button [ref=e274] [cursor=pointer]:
|
|
- img [ref=e275]
|
|
- cell [ref=e277]
|
|
- cell [ref=e278]
|
|
- 'cell "@ -411,4 +418,4 @@ private static function intOrNull(mixed $value): ?int" [ref=e279]':
|
|
- code [ref=e280]: "@ -411,4 +418,4 @@ private static function intOrNull(mixed $value): ?int"
|
|
- 'row "411 418 {" [ref=e281]':
|
|
- cell "411" [ref=e282]: "411"
|
|
- cell "418" [ref=e283]: "418"
|
|
- cell [ref=e284]
|
|
- cell [ref=e285]
|
|
- 'cell "{" [ref=e286]':
|
|
- code [ref=e287]: "{"
|
|
- 'row "412 419 return is_int($value) ? $value : null;" [ref=e288]':
|
|
- cell "412" [ref=e289]: "412"
|
|
- cell "419" [ref=e290]: "419"
|
|
- cell [ref=e291]
|
|
- cell [ref=e292]
|
|
- 'cell "return is_int($value) ? $value : null;" [ref=e293]':
|
|
- code [ref=e294]: "return is_int($value) ? $value : null;"
|
|
- 'row "413 420 }" [ref=e295]':
|
|
- cell "413" [ref=e296]: "413"
|
|
- cell "420" [ref=e297]: "420"
|
|
- cell [ref=e298]
|
|
- cell [ref=e299]
|
|
- 'cell "}" [ref=e300]':
|
|
- code [ref=e301]: "}"
|
|
- 'row "414 - }" [ref=e302]':
|
|
- cell "414" [ref=e303]: "414"
|
|
- cell [ref=e304]
|
|
- cell [ref=e305]
|
|
- cell "-" [ref=e306]:
|
|
- generic [ref=e307]: "-"
|
|
- 'cell "}" [ref=e308]':
|
|
- code [ref=e309]: "}"
|
|
- 'row "421 + }" [ref=e310]':
|
|
- cell [ref=e311]
|
|
- cell "421" [ref=e312]: "421"
|
|
- cell [ref=e313]
|
|
- cell "+" [ref=e314]:
|
|
- generic [ref=e315]: +
|
|
- 'cell "}" [ref=e316]':
|
|
- code [ref=e317]: "}"
|
|
- row [ref=e318]:
|
|
- cell [ref=e319]
|
|
- cell [ref=e320]
|
|
- cell [ref=e321]
|
|
- cell [ref=e322]:
|
|
- code
|
|
- generic [ref=e323]:
|
|
- 'heading "3 3 Änderungen: 2 Ergänzungen und 1 Löschungen apps/platform/app/Support/OpsUx/OperationUxPresenter.php Datei anzeigen" [level=4] [ref=e324]':
|
|
- generic [ref=e325]:
|
|
- button [ref=e326] [cursor=pointer]:
|
|
- img [ref=e327]
|
|
- generic [ref=e329]:
|
|
- text: "3"
|
|
- 'generic "3 Änderungen: 2 Ergänzungen und 1 Löschungen" [ref=e330]'
|
|
- generic [ref=e332]:
|
|
- link "apps/platform/app/Support/OpsUx/OperationUxPresenter.php" [ref=e333] [cursor=pointer]:
|
|
- /url: "#diff-1c19add1fd95c0b4bd4495ffc27d46c971c67709"
|
|
- button [ref=e334] [cursor=pointer]:
|
|
- img [ref=e335]
|
|
- link "Datei anzeigen" [ref=e339] [cursor=pointer]:
|
|
- /url: /ahmido/TenantAtlas/src/commit/03514b9e5b2addf53d5441f0fc122ccef0b51999/apps/platform/app/Support/OpsUx/OperationUxPresenter.php
|
|
- table [ref=e342]:
|
|
- rowgroup [ref=e349]:
|
|
- 'row "@ -201,7 +201,8 @@ private static function buildSurfaceGuidance(OperationRun $run): ?string" [ref=e350]':
|
|
- cell [ref=e351]:
|
|
- button [ref=e353] [cursor=pointer]:
|
|
- img [ref=e354]
|
|
- cell [ref=e356]
|
|
- cell [ref=e357]
|
|
- 'cell "@ -201,7 +201,8 @@ private static function buildSurfaceGuidance(OperationRun $run): ?string" [ref=e358]':
|
|
- code [ref=e359]: "@ -201,7 +201,8 @@ private static function buildSurfaceGuidance(OperationRun $run): ?string"
|
|
- row "201 201 $freshnessState = self::freshnessState($run);" [ref=e360]:
|
|
- cell "201" [ref=e361]: "201"
|
|
- cell "201" [ref=e362]: "201"
|
|
- cell [ref=e363]
|
|
- cell [ref=e364]
|
|
- cell "$freshnessState = self::freshnessState($run);" [ref=e365]:
|
|
- code [ref=e366]: $freshnessState = self::freshnessState($run);
|
|
- row "202 202" [ref=e367]:
|
|
- cell "202" [ref=e368]: "202"
|
|
- cell "202" [ref=e369]: "202"
|
|
- cell [ref=e370]
|
|
- cell [ref=e371]
|
|
- cell [ref=e372]:
|
|
- code
|
|
- 'row "203 203 if ($freshnessState->isLikelyStale()) {" [ref=e373]':
|
|
- cell "203" [ref=e374]: "203"
|
|
- cell "203" [ref=e375]: "203"
|
|
- cell [ref=e376]
|
|
- cell [ref=e377]
|
|
- 'cell "if ($freshnessState->isLikelyStale()) {" [ref=e378]':
|
|
- code [ref=e379]: "if ($freshnessState->isLikelyStale()) {"
|
|
- row "204 - return 'This operation is past its lifecycle window. Review worker health and logs before retrying from the start surface.';" [ref=e380]:
|
|
- cell "204" [ref=e381]: "204"
|
|
- cell [ref=e382]
|
|
- cell [ref=e383]
|
|
- cell "-" [ref=e384]:
|
|
- generic [ref=e385]: "-"
|
|
- cell "return 'This operation is past its lifecycle window. Review worker health and logs before retrying from the start surface.';" [ref=e386]:
|
|
- code [ref=e387]: return 'This operation is past its lifecycle window. Review worker health and logs before retrying from the start surface.';
|
|
- row "204 + return RunDurationInsights::stuckGuidance($run)" [ref=e388]:
|
|
- cell [ref=e389]
|
|
- cell "204" [ref=e390]: "204"
|
|
- cell [ref=e391]
|
|
- cell "+" [ref=e392]:
|
|
- generic [ref=e393]: +
|
|
- cell "return RunDurationInsights::stuckGuidance($run)" [ref=e394]:
|
|
- code [ref=e395]: return RunDurationInsights::stuckGuidance($run)
|
|
- row "205 + ?? 'Past the lifecycle window. Review worker health and logs before retrying.';" [ref=e396]:
|
|
- cell [ref=e397]
|
|
- cell "205" [ref=e398]: "205"
|
|
- cell [ref=e399]
|
|
- cell "+" [ref=e400]:
|
|
- generic [ref=e401]: +
|
|
- cell "?? 'Past the lifecycle window. Review worker health and logs before retrying.';" [ref=e402]:
|
|
- code [ref=e403]: "?? 'Past the lifecycle window. Review worker health and logs before retrying.';"
|
|
- 'row "205 206 }" [ref=e404]':
|
|
- cell "205" [ref=e405]: "205"
|
|
- cell "206" [ref=e406]: "206"
|
|
- cell [ref=e407]
|
|
- cell [ref=e408]
|
|
- 'cell "}" [ref=e409]':
|
|
- code [ref=e410]: "}"
|
|
- row "206 207" [ref=e411]:
|
|
- cell "206" [ref=e412]: "206"
|
|
- cell "207" [ref=e413]: "207"
|
|
- cell [ref=e414]
|
|
- cell [ref=e415]
|
|
- cell [ref=e416]:
|
|
- code
|
|
- 'row "207 208 if ($freshnessState->isReconciledFailed()) {" [ref=e417]':
|
|
- cell "207" [ref=e418]: "207"
|
|
- cell "208" [ref=e419]: "208"
|
|
- cell [ref=e420]
|
|
- cell [ref=e421]
|
|
- 'cell "if ($freshnessState->isReconciledFailed()) {" [ref=e422]':
|
|
- code [ref=e423]: "if ($freshnessState->isReconciledFailed()) {"
|
|
- row [ref=e424]:
|
|
- cell [ref=e425]:
|
|
- button [ref=e427] [cursor=pointer]:
|
|
- img [ref=e428]
|
|
- cell [ref=e430]
|
|
- cell [ref=e431]
|
|
- cell [ref=e432]:
|
|
- code
|
|
- generic [ref=e433]:
|
|
- 'heading "9 9 Änderungen: 7 Ergänzungen und 2 Löschungen apps/platform/resources/views/livewire/bulk-operation-progress.blade.php Datei anzeigen" [level=4] [ref=e434]':
|
|
- generic [ref=e435]:
|
|
- button [ref=e436] [cursor=pointer]:
|
|
- img [ref=e437]
|
|
- generic [ref=e439]:
|
|
- text: "9"
|
|
- 'generic "9 Änderungen: 7 Ergänzungen und 2 Löschungen" [ref=e440]'
|
|
- generic [ref=e442]:
|
|
- link "apps/platform/resources/views/livewire/bulk-operation-progress.blade.php" [ref=e443] [cursor=pointer]:
|
|
- /url: "#diff-3037cccd64c0a0bbd6b4146e8fefb38b64c8633e"
|
|
- button [ref=e444] [cursor=pointer]:
|
|
- img [ref=e445]
|
|
- link "Datei anzeigen" [ref=e449] [cursor=pointer]:
|
|
- /url: /ahmido/TenantAtlas/src/commit/03514b9e5b2addf53d5441f0fc122ccef0b51999/apps/platform/resources/views/livewire/bulk-operation-progress.blade.php
|
|
- table [ref=e452]:
|
|
- rowgroup [ref=e459]:
|
|
- row "@ -13,8 +13,14 @@" [ref=e460]:
|
|
- cell [ref=e461]:
|
|
- button [ref=e463] [cursor=pointer]:
|
|
- img [ref=e464]
|
|
- cell [ref=e466]
|
|
- cell [ref=e467]
|
|
- cell "@ -13,8 +13,14 @@" [ref=e468]:
|
|
- code [ref=e469]: "@ -13,8 +13,14 @@"
|
|
- 'row "13 13 $operationsIndexUrl = $tenant ? \\App\\Support\\OpsUx\\OperationRunUrl::index($tenant) : null;" [ref=e470]':
|
|
- cell "13" [ref=e471]: "13"
|
|
- cell "13" [ref=e472]: "13"
|
|
- cell [ref=e473]
|
|
- cell [ref=e474]
|
|
- 'cell "$operationsIndexUrl = $tenant ? \\App\\Support\\OpsUx\\OperationRunUrl::index($tenant) : null;" [ref=e475]':
|
|
- code [ref=e476]: "$operationsIndexUrl = $tenant ? \\App\\Support\\OpsUx\\OperationRunUrl::index($tenant) : null;"
|
|
- 'row "14 14 $primaryActionLabel = $usesCollectivePrimaryAction ? ''Review operations'' : ''View operation'';" [ref=e477]':
|
|
- cell "14" [ref=e478]: "14"
|
|
- cell "14" [ref=e479]: "14"
|
|
- cell [ref=e480]
|
|
- cell [ref=e481]
|
|
- 'cell "$primaryActionLabel = $usesCollectivePrimaryAction ? ''Review operations'' : ''View operation'';" [ref=e482]':
|
|
- code [ref=e483]: "$primaryActionLabel = $usesCollectivePrimaryAction ? 'Review operations' : 'View operation';"
|
|
- 'row "15 15 $bannerTitle = $hasActiveVisibleRuns && ! $hasTerminalVisibleRuns ? ''Active operations'' : ''Operation updates'';" [ref=e484]':
|
|
- cell "15" [ref=e485]: "15"
|
|
- cell "15" [ref=e486]: "15"
|
|
- cell [ref=e487]
|
|
- cell [ref=e488]
|
|
- 'cell "$bannerTitle = $hasActiveVisibleRuns && ! $hasTerminalVisibleRuns ? ''Active operations'' : ''Operation updates'';" [ref=e489]':
|
|
- code [ref=e490]: "$bannerTitle = $hasActiveVisibleRuns && ! $hasTerminalVisibleRuns ? 'Active operations' : 'Operation updates';"
|
|
- row "16 + $hasStaleActiveVisibleRuns = $runs->contains(" [ref=e491]:
|
|
- cell [ref=e492]
|
|
- cell "16" [ref=e493]: "16"
|
|
- cell [ref=e494]
|
|
- cell "+" [ref=e495]:
|
|
- generic [ref=e496]: +
|
|
- cell "$hasStaleActiveVisibleRuns = $runs->contains(" [ref=e497]:
|
|
- code [ref=e498]: $hasStaleActiveVisibleRuns = $runs->contains(
|
|
- 'row "17 + fn ($run): bool => $run instanceof \\App\\Models\\OperationRun" [ref=e499]':
|
|
- cell [ref=e500]
|
|
- cell "17" [ref=e501]: "17"
|
|
- cell [ref=e502]
|
|
- cell "+" [ref=e503]:
|
|
- generic [ref=e504]: +
|
|
- 'cell "fn ($run): bool => $run instanceof \\App\\Models\\OperationRun" [ref=e505]':
|
|
- code [ref=e506]: "fn ($run): bool => $run instanceof \\App\\Models\\OperationRun"
|
|
- row "18 + && $run->isCurrentlyActive()" [ref=e507]:
|
|
- cell [ref=e508]
|
|
- cell "18" [ref=e509]: "18"
|
|
- cell [ref=e510]
|
|
- cell "+" [ref=e511]:
|
|
- generic [ref=e512]: +
|
|
- cell "&& $run->isCurrentlyActive()" [ref=e513]:
|
|
- code [ref=e514]: "&& $run->isCurrentlyActive()"
|
|
- row "19 + && $run->problemClass() === \\App\\Models\\OperationRun::PROBLEM_CLASS_ACTIVE_STALE_ATTENTION" [ref=e515]:
|
|
- cell [ref=e516]
|
|
- cell "19" [ref=e517]: "19"
|
|
- cell [ref=e518]
|
|
- cell "+" [ref=e519]:
|
|
- generic [ref=e520]: +
|
|
- cell "&& $run->problemClass() === \\App\\Models\\OperationRun::PROBLEM_CLASS_ACTIVE_STALE_ATTENTION" [ref=e521]:
|
|
- code [ref=e522]: "&& $run->problemClass() === \\App\\Models\\OperationRun::PROBLEM_CLASS_ACTIVE_STALE_ATTENTION"
|
|
- row "20 + );" [ref=e523]:
|
|
- cell [ref=e524]
|
|
- cell "20" [ref=e525]: "20"
|
|
- cell [ref=e526]
|
|
- cell "+" [ref=e527]:
|
|
- generic [ref=e528]: +
|
|
- cell ");" [ref=e529]:
|
|
- code [ref=e530]: );
|
|
- 'row "16 21 $bannerHelper = match (true) {" [ref=e531]':
|
|
- cell "16" [ref=e532]: "16"
|
|
- cell "21" [ref=e533]: "21"
|
|
- cell [ref=e534]
|
|
- cell [ref=e535]
|
|
- 'cell "$bannerHelper = match (true) {" [ref=e536]':
|
|
- code [ref=e537]: "$bannerHelper = match (true) {"
|
|
- row "17 22 $hasActiveVisibleRuns && $hasTerminalFollowUpVisibleRuns => 'Active and recent operation updates that may need review.'," [ref=e538]:
|
|
- cell "17" [ref=e539]: "17"
|
|
- cell "22" [ref=e540]: "22"
|
|
- cell [ref=e541]
|
|
- cell [ref=e542]
|
|
- cell "$hasActiveVisibleRuns && $hasTerminalFollowUpVisibleRuns => 'Active and recent operation updates that may need review.'," [ref=e543]:
|
|
- code [ref=e544]: $hasActiveVisibleRuns && $hasTerminalFollowUpVisibleRuns => 'Active and recent operation updates that may need review.',
|
|
- row "23 + $hasStaleActiveVisibleRuns => 'One or more active operations are past their lifecycle window and need review.'," [ref=e545]:
|
|
- cell [ref=e546]
|
|
- cell "23" [ref=e547]: "23"
|
|
- cell [ref=e548]
|
|
- cell "+" [ref=e549]:
|
|
- generic [ref=e550]: +
|
|
- cell "$hasStaleActiveVisibleRuns => 'One or more active operations are past their lifecycle window and need review.'," [ref=e551]:
|
|
- code [ref=e552]: $hasStaleActiveVisibleRuns => 'One or more active operations are past their lifecycle window and need review.',
|
|
- row "18 24 $hasActiveVisibleRuns => 'Queued and running work stays here until diagnostics are needed.'," [ref=e553]:
|
|
- cell "18" [ref=e554]: "18"
|
|
- cell "24" [ref=e555]: "24"
|
|
- cell [ref=e556]
|
|
- cell [ref=e557]
|
|
- cell "$hasActiveVisibleRuns => 'Queued and running work stays here until diagnostics are needed.'," [ref=e558]:
|
|
- code [ref=e559]: $hasActiveVisibleRuns => 'Queued and running work stays here until diagnostics are needed.',
|
|
- row "19 25 $hasTerminalFollowUpVisibleRuns => 'Recent operation updates that may need review.'," [ref=e560]:
|
|
- cell "19" [ref=e561]: "19"
|
|
- cell "25" [ref=e562]: "25"
|
|
- cell [ref=e563]
|
|
- cell [ref=e564]
|
|
- cell "$hasTerminalFollowUpVisibleRuns => 'Recent operation updates that may need review.'," [ref=e565]:
|
|
- code [ref=e566]: $hasTerminalFollowUpVisibleRuns => 'Recent operation updates that may need review.',
|
|
- row "20 26 $hasTerminalVisibleRuns => 'Successful operation updates stay briefly visible so you can confirm completion and keep working.'," [ref=e567]:
|
|
- cell "20" [ref=e568]: "20"
|
|
- cell "26" [ref=e569]: "26"
|
|
- cell [ref=e570]
|
|
- cell [ref=e571]
|
|
- cell "$hasTerminalVisibleRuns => 'Successful operation updates stay briefly visible so you can confirm completion and keep working.'," [ref=e572]:
|
|
- code [ref=e573]: $hasTerminalVisibleRuns => 'Successful operation updates stay briefly visible so you can confirm completion and keep working.',
|
|
- row "@ -111,8 +117,7 @@ class=\"inline-flex items-center justify-center rounded-lg border border-transpar" [ref=e574]:
|
|
- cell [ref=e575]:
|
|
- generic [ref=e576]:
|
|
- button [ref=e577] [cursor=pointer]:
|
|
- img [ref=e578]
|
|
- button [ref=e580] [cursor=pointer]:
|
|
- img [ref=e581]
|
|
- cell [ref=e583]
|
|
- cell [ref=e584]
|
|
- cell "@ -111,8 +117,7 @@ class=\"inline-flex items-center justify-center rounded-lg border border-transpar" [ref=e585]:
|
|
- code [ref=e586]: "@ -111,8 +117,7 @@ class=\"inline-flex items-center justify-center rounded-lg border border-transpar"
|
|
- row "111 117 $progress = \\App\\Support\\OpsUx\\OperationRunProgressContract::forRun($run);" [ref=e587]:
|
|
- cell "111" [ref=e588]: "111"
|
|
- cell "117" [ref=e589]: "117"
|
|
- cell [ref=e590]
|
|
- cell [ref=e591]
|
|
- cell "$progress = \\App\\Support\\OpsUx\\OperationRunProgressContract::forRun($run);" [ref=e592]:
|
|
- code [ref=e593]: $progress = \App\Support\OpsUx\OperationRunProgressContract::forRun($run);
|
|
- row "112 118 $hasDeterminateProgress = $progress['display'] === 'counted';" [ref=e594]:
|
|
- cell "112" [ref=e595]: "112"
|
|
- cell "118" [ref=e596]: "118"
|
|
- cell [ref=e597]
|
|
- cell [ref=e598]
|
|
- cell "$hasDeterminateProgress = $progress['display'] === 'counted';" [ref=e599]:
|
|
- code [ref=e600]: $hasDeterminateProgress = $progress['display'] === 'counted';
|
|
- row "113 119 $lifecycleAttention = \\App\\Support\\OpsUx\\OperationUxPresenter::lifecycleAttentionSummary($run);" [ref=e601]:
|
|
- cell "113" [ref=e602]: "113"
|
|
- cell "119" [ref=e603]: "119"
|
|
- cell [ref=e604]
|
|
- cell [ref=e605]
|
|
- cell "$lifecycleAttention = \\App\\Support\\OpsUx\\OperationUxPresenter::lifecycleAttentionSummary($run);" [ref=e606]:
|
|
- code [ref=e607]: $lifecycleAttention = \App\Support\OpsUx\OperationUxPresenter::lifecycleAttentionSummary($run);
|
|
- row "114 - $showsLifecycleAttention = $lifecycleAttention !== null" [ref=e608]:
|
|
- cell "114" [ref=e609]: "114"
|
|
- cell [ref=e610]
|
|
- cell [ref=e611]
|
|
- cell "-" [ref=e612]:
|
|
- generic [ref=e613]: "-"
|
|
- cell "$showsLifecycleAttention = $lifecycleAttention !== null" [ref=e614]:
|
|
- code [ref=e615]: $showsLifecycleAttention = $lifecycleAttention !== null
|
|
- row "115 - && ($lifecycleAttention !== 'Likely stale' || $run->status === 'queued' || ! $hasDeterminateProgress);" [ref=e616]:
|
|
- cell "115" [ref=e617]: "115"
|
|
- cell [ref=e618]
|
|
- cell [ref=e619]
|
|
- cell "-" [ref=e620]:
|
|
- generic [ref=e621]: "-"
|
|
- cell "&& ($lifecycleAttention !== 'Likely stale' || $run->status === 'queued' || ! $hasDeterminateProgress);" [ref=e622]:
|
|
- code [ref=e623]: "&& ($lifecycleAttention !== 'Likely stale' || $run->status === 'queued' || ! $hasDeterminateProgress);"
|
|
- row "120 + $showsLifecycleAttention = $lifecycleAttention !== null;" [ref=e624]:
|
|
- cell [ref=e625]
|
|
- cell "120" [ref=e626]: "120"
|
|
- cell [ref=e627]
|
|
- cell "+" [ref=e628]:
|
|
- generic [ref=e629]: +
|
|
- cell "$showsLifecycleAttention = $lifecycleAttention !== null;" [ref=e630]:
|
|
- code [ref=e631]: $showsLifecycleAttention = $lifecycleAttention !== null;
|
|
- row "116 121 $progressLabel = $progress['label'];" [ref=e632]:
|
|
- cell "116" [ref=e633]: "116"
|
|
- cell "121" [ref=e634]: "121"
|
|
- cell [ref=e635]
|
|
- cell [ref=e636]
|
|
- cell "$progressLabel = $progress['label'];" [ref=e637]:
|
|
- code [ref=e638]: $progressLabel = $progress['label'];
|
|
- row "117 122 $progressPercent = $progress['percent'];" [ref=e639]:
|
|
- cell "117" [ref=e640]: "117"
|
|
- cell "122" [ref=e641]: "122"
|
|
- cell [ref=e642]
|
|
- cell [ref=e643]
|
|
- cell "$progressPercent = $progress['percent'];" [ref=e644]:
|
|
- code [ref=e645]: $progressPercent = $progress['percent'];
|
|
- row "118 123 $showsIndeterminateProgress = $progress['display'] === 'indeterminate';" [ref=e646]:
|
|
- cell "118" [ref=e647]: "118"
|
|
- cell "123" [ref=e648]: "123"
|
|
- cell [ref=e649]
|
|
- cell [ref=e650]
|
|
- cell "$showsIndeterminateProgress = $progress['display'] === 'indeterminate';" [ref=e651]:
|
|
- code [ref=e652]: $showsIndeterminateProgress = $progress['display'] === 'indeterminate';
|
|
- row [ref=e653]:
|
|
- cell [ref=e654]:
|
|
- button [ref=e656] [cursor=pointer]:
|
|
- img [ref=e657]
|
|
- cell [ref=e659]
|
|
- cell [ref=e660]
|
|
- cell [ref=e661]:
|
|
- code
|
|
- generic [ref=e662]:
|
|
- 'heading "28 28 Änderungen: 28 Ergänzungen und 0 Löschungen apps/platform/tests/Feature/Filament/OperationRunEnterpriseDetailPageTest.php Datei anzeigen" [level=4] [ref=e663]':
|
|
- generic [ref=e664]:
|
|
- button [ref=e665] [cursor=pointer]:
|
|
- img [ref=e666]
|
|
- generic [ref=e668]:
|
|
- text: "28"
|
|
- 'generic "28 Änderungen: 28 Ergänzungen und 0 Löschungen" [ref=e669]'
|
|
- generic [ref=e671]:
|
|
- link "apps/platform/tests/Feature/Filament/OperationRunEnterpriseDetailPageTest.php" [ref=e672] [cursor=pointer]:
|
|
- /url: "#diff-5e29ae6c499f78190dc7c64c7cf044bb0a43e995"
|
|
- button [ref=e673] [cursor=pointer]:
|
|
- img [ref=e674]
|
|
- link "Datei anzeigen" [ref=e678] [cursor=pointer]:
|
|
- /url: /ahmido/TenantAtlas/src/commit/03514b9e5b2addf53d5441f0fc122ccef0b51999/apps/platform/tests/Feature/Filament/OperationRunEnterpriseDetailPageTest.php
|
|
- table [ref=e681]:
|
|
- rowgroup [ref=e688]:
|
|
- 'row "@ -243,6 +243,34 @@ function baselineCompareGapContext(array $overrides = []): array" [ref=e689]':
|
|
- cell [ref=e690]:
|
|
- button [ref=e692] [cursor=pointer]:
|
|
- img [ref=e693]
|
|
- cell [ref=e695]
|
|
- cell [ref=e696]
|
|
- 'cell "@ -243,6 +243,34 @@ function baselineCompareGapContext(array $overrides = []): array" [ref=e697]':
|
|
- code [ref=e698]: "@ -243,6 +243,34 @@ function baselineCompareGapContext(array $overrides = []): array"
|
|
- row "243 243 ->and($bannerPosition)->toBeLessThan($decisionPosition);" [ref=e699]:
|
|
- cell "243" [ref=e700]: "243"
|
|
- cell "243" [ref=e701]: "243"
|
|
- cell [ref=e702]
|
|
- cell [ref=e703]
|
|
- cell "->and($bannerPosition)->toBeLessThan($decisionPosition);" [ref=e704]:
|
|
- code [ref=e705]: "->and($bannerPosition)->toBeLessThan($decisionPosition);"
|
|
- 'row "244 244 });" [ref=e706]':
|
|
- cell "244" [ref=e707]: "244"
|
|
- cell "244" [ref=e708]: "244"
|
|
- cell [ref=e709]
|
|
- cell [ref=e710]
|
|
- 'cell "});" [ref=e711]':
|
|
- code [ref=e712]: "});"
|
|
- row "245 245" [ref=e713]:
|
|
- cell "245" [ref=e714]: "245"
|
|
- cell "245" [ref=e715]: "245"
|
|
- cell [ref=e716]
|
|
- cell [ref=e717]
|
|
- cell [ref=e718]:
|
|
- code
|
|
- 'row "246 + it(''keeps stale canonical detail aligned with lifecycle guidance instead of ordinary queued copy'', function (): void {" [ref=e719]':
|
|
- cell [ref=e720]
|
|
- cell "246" [ref=e721]: "246"
|
|
- cell [ref=e722]
|
|
- cell "+" [ref=e723]:
|
|
- generic [ref=e724]: +
|
|
- 'cell "it(''keeps stale canonical detail aligned with lifecycle guidance instead of ordinary queued copy'', function (): void {" [ref=e725]':
|
|
- code [ref=e726]: "it('keeps stale canonical detail aligned with lifecycle guidance instead of ordinary queued copy', function (): void {"
|
|
- 'row "247 + [$user, $tenant] = createUserWithTenant(role: ''owner'');" [ref=e727]':
|
|
- cell [ref=e728]
|
|
- cell "247" [ref=e729]: "247"
|
|
- cell [ref=e730]
|
|
- cell "+" [ref=e731]:
|
|
- generic [ref=e732]: +
|
|
- 'cell "[$user, $tenant] = createUserWithTenant(role: ''owner'');" [ref=e733]':
|
|
- code [ref=e734]: "[$user, $tenant] = createUserWithTenant(role: 'owner');"
|
|
- row "248 +" [ref=e735]:
|
|
- cell [ref=e736]
|
|
- cell "248" [ref=e737]: "248"
|
|
- cell [ref=e738]
|
|
- cell "+" [ref=e739]:
|
|
- generic [ref=e740]: +
|
|
- cell [ref=e741]:
|
|
- code
|
|
- row "249 + setAdminPanelContext();" [ref=e742]:
|
|
- cell [ref=e743]
|
|
- cell "249" [ref=e744]: "249"
|
|
- cell [ref=e745]
|
|
- cell "+" [ref=e746]:
|
|
- generic [ref=e747]: +
|
|
- cell "setAdminPanelContext();" [ref=e748]:
|
|
- code [ref=e749]: setAdminPanelContext();
|
|
- row "250 +" [ref=e750]:
|
|
- cell [ref=e751]
|
|
- cell "250" [ref=e752]: "250"
|
|
- cell [ref=e753]
|
|
- cell "+" [ref=e754]:
|
|
- generic [ref=e755]: +
|
|
- cell [ref=e756]:
|
|
- code
|
|
- row "251 + $run = OperationRun::factory()->create([" [ref=e757]:
|
|
- cell [ref=e758]
|
|
- cell "251" [ref=e759]: "251"
|
|
- cell [ref=e760]
|
|
- cell "+" [ref=e761]:
|
|
- generic [ref=e762]: +
|
|
- cell "$run = OperationRun::factory()->create([" [ref=e763]:
|
|
- code [ref=e764]: $run = OperationRun::factory()->create([
|
|
- row "252 + 'workspace_id' => (int) $tenant->workspace_id," [ref=e765]:
|
|
- cell [ref=e766]
|
|
- cell "252" [ref=e767]: "252"
|
|
- cell [ref=e768]
|
|
- cell "+" [ref=e769]:
|
|
- generic [ref=e770]: +
|
|
- cell "'workspace_id' => (int) $tenant->workspace_id," [ref=e771]:
|
|
- code [ref=e772]: "'workspace_id' => (int) $tenant->workspace_id,"
|
|
- row "253 + 'managed_environment_id' => (int) $tenant->getKey()," [ref=e773]:
|
|
- cell [ref=e774]
|
|
- cell "253" [ref=e775]: "253"
|
|
- cell [ref=e776]
|
|
- cell "+" [ref=e777]:
|
|
- generic [ref=e778]: +
|
|
- cell "'managed_environment_id' => (int) $tenant->getKey()," [ref=e779]:
|
|
- code [ref=e780]: "'managed_environment_id' => (int) $tenant->getKey(),"
|
|
- row "254 + 'type' => 'inventory_sync'," [ref=e781]:
|
|
- cell [ref=e782]
|
|
- cell "254" [ref=e783]: "254"
|
|
- cell [ref=e784]
|
|
- cell "+" [ref=e785]:
|
|
- generic [ref=e786]: +
|
|
- cell "'type' => 'inventory_sync'," [ref=e787]:
|
|
- code [ref=e788]: "'type' => 'inventory_sync',"
|
|
- row "255 + 'status' => OperationRunStatus::Queued->value," [ref=e789]:
|
|
- cell [ref=e790]
|
|
- cell "255" [ref=e791]: "255"
|
|
- cell [ref=e792]
|
|
- cell "+" [ref=e793]:
|
|
- generic [ref=e794]: +
|
|
- cell "'status' => OperationRunStatus::Queued->value," [ref=e795]:
|
|
- code [ref=e796]: "'status' => OperationRunStatus::Queued->value,"
|
|
- row "256 + 'outcome' => OperationRunOutcome::Pending->value," [ref=e797]:
|
|
- cell [ref=e798]
|
|
- cell "256" [ref=e799]: "256"
|
|
- cell [ref=e800]
|
|
- cell "+" [ref=e801]:
|
|
- generic [ref=e802]: +
|
|
- cell "'outcome' => OperationRunOutcome::Pending->value," [ref=e803]:
|
|
- code [ref=e804]: "'outcome' => OperationRunOutcome::Pending->value,"
|
|
- row "257 + 'created_at' => now()->subWeeks(2)," [ref=e805]:
|
|
- cell [ref=e806]
|
|
- cell "257" [ref=e807]: "257"
|
|
- cell [ref=e808]
|
|
- cell "+" [ref=e809]:
|
|
- generic [ref=e810]: +
|
|
- cell "'created_at' => now()->subWeeks(2)," [ref=e811]:
|
|
- code [ref=e812]: "'created_at' => now()->subWeeks(2),"
|
|
- row "258 + ]);" [ref=e813]:
|
|
- cell [ref=e814]
|
|
- cell "258" [ref=e815]: "258"
|
|
- cell [ref=e816]
|
|
- cell "+" [ref=e817]:
|
|
- generic [ref=e818]: +
|
|
- cell "]);" [ref=e819]:
|
|
- code [ref=e820]: "]);"
|
|
- row "259 +" [ref=e821]:
|
|
- cell [ref=e822]
|
|
- cell "259" [ref=e823]: "259"
|
|
- cell [ref=e824]
|
|
- cell "+" [ref=e825]:
|
|
- generic [ref=e826]: +
|
|
- cell [ref=e827]:
|
|
- code
|
|
- row "260 + $response = $this->actingAs($user)" [ref=e828]:
|
|
- cell [ref=e829]
|
|
- cell "260" [ref=e830]: "260"
|
|
- cell [ref=e831]
|
|
- cell "+" [ref=e832]:
|
|
- generic [ref=e833]: +
|
|
- cell "$response = $this->actingAs($user)" [ref=e834]:
|
|
- code [ref=e835]: $response = $this->actingAs($user)
|
|
- row "261 + ->withSession([WorkspaceContext::SESSION_KEY => (int) $tenant->workspace_id])" [ref=e836]:
|
|
- cell [ref=e837]
|
|
- cell "261" [ref=e838]: "261"
|
|
- cell [ref=e839]
|
|
- cell "+" [ref=e840]:
|
|
- generic [ref=e841]: +
|
|
- cell "->withSession([WorkspaceContext::SESSION_KEY => (int) $tenant->workspace_id])" [ref=e842]:
|
|
- code [ref=e843]: "->withSession([WorkspaceContext::SESSION_KEY => (int) $tenant->workspace_id])"
|
|
- row "262 + ->get(\\App\\Support\\OperationRunLinks::tenantlessView($run))" [ref=e844]:
|
|
- cell [ref=e845]
|
|
- cell "262" [ref=e846]: "262"
|
|
- cell [ref=e847]
|
|
- cell "+" [ref=e848]:
|
|
- generic [ref=e849]: +
|
|
- cell "->get(\\App\\Support\\OperationRunLinks::tenantlessView($run))" [ref=e850]:
|
|
- code [ref=e851]: "->get(\\App\\Support\\OperationRunLinks::tenantlessView($run))"
|
|
- row "263 + ->assertOk()" [ref=e852]:
|
|
- cell [ref=e853]
|
|
- cell "263" [ref=e854]: "263"
|
|
- cell [ref=e855]
|
|
- cell "+" [ref=e856]:
|
|
- generic [ref=e857]: +
|
|
- cell "->assertOk()" [ref=e858]:
|
|
- code [ref=e859]: "->assertOk()"
|
|
- row "264 + ->assertSee('Likely stale operation')" [ref=e860]:
|
|
- cell [ref=e861]
|
|
- cell "264" [ref=e862]: "264"
|
|
- cell [ref=e863]
|
|
- cell "+" [ref=e864]:
|
|
- generic [ref=e865]: +
|
|
- cell "->assertSee('Likely stale operation')" [ref=e866]:
|
|
- code [ref=e867]: "->assertSee('Likely stale operation')"
|
|
- row "265 + ->assertSee('Decision');" [ref=e868]:
|
|
- cell [ref=e869]
|
|
- cell "265" [ref=e870]: "265"
|
|
- cell [ref=e871]
|
|
- cell "+" [ref=e872]:
|
|
- generic [ref=e873]: +
|
|
- cell "->assertSee('Decision');" [ref=e874]:
|
|
- code [ref=e875]: "->assertSee('Decision');"
|
|
- row "266 +" [ref=e876]:
|
|
- cell [ref=e877]
|
|
- cell "266" [ref=e878]: "266"
|
|
- cell [ref=e879]
|
|
- cell "+" [ref=e880]:
|
|
- generic [ref=e881]: +
|
|
- cell [ref=e882]:
|
|
- code
|
|
- row "267 + $pageText = visiblePageText($response);" [ref=e883]:
|
|
- cell [ref=e884]
|
|
- cell "267" [ref=e885]: "267"
|
|
- cell [ref=e886]
|
|
- cell "+" [ref=e887]:
|
|
- generic [ref=e888]: +
|
|
- cell "$pageText = visiblePageText($response);" [ref=e889]:
|
|
- code [ref=e890]: $pageText = visiblePageText($response);
|
|
- row "268 +" [ref=e891]:
|
|
- cell [ref=e892]
|
|
- cell "268" [ref=e893]: "268"
|
|
- cell [ref=e894]
|
|
- cell "+" [ref=e895]:
|
|
- generic [ref=e896]: +
|
|
- cell [ref=e897]:
|
|
- code
|
|
- row "269 + expect($pageText)->toContain('past its lifecycle window')" [ref=e898]:
|
|
- cell [ref=e899]
|
|
- cell "269" [ref=e900]: "269"
|
|
- cell [ref=e901]
|
|
- cell "+" [ref=e902]:
|
|
- generic [ref=e903]: +
|
|
- cell "expect($pageText)->toContain('past its lifecycle window')" [ref=e904]:
|
|
- code [ref=e905]: expect($pageText)->toContain('past its lifecycle window')
|
|
- row "270 + ->not->toContain('No action needed yet. The operation is waiting for a worker.')" [ref=e906]:
|
|
- cell [ref=e907]
|
|
- cell "270" [ref=e908]: "270"
|
|
- cell [ref=e909]
|
|
- cell "+" [ref=e910]:
|
|
- generic [ref=e911]: +
|
|
- cell "->not->toContain('No action needed yet. The operation is waiting for a worker.')" [ref=e912]:
|
|
- code [ref=e913]: "->not->toContain('No action needed yet. The operation is waiting for a worker.')"
|
|
- row "271 + ->not->toContain('Waiting for worker.');" [ref=e914]:
|
|
- cell [ref=e915]
|
|
- cell "271" [ref=e916]: "271"
|
|
- cell [ref=e917]
|
|
- cell "+" [ref=e918]:
|
|
- generic [ref=e919]: +
|
|
- cell "->not->toContain('Waiting for worker.');" [ref=e920]:
|
|
- code [ref=e921]: "->not->toContain('Waiting for worker.');"
|
|
- 'row "272 + });" [ref=e922]':
|
|
- cell [ref=e923]
|
|
- cell "272" [ref=e924]: "272"
|
|
- cell [ref=e925]
|
|
- cell "+" [ref=e926]:
|
|
- generic [ref=e927]: +
|
|
- 'cell "});" [ref=e928]':
|
|
- code [ref=e929]: "});"
|
|
- row "273 +" [ref=e930]:
|
|
- cell [ref=e931]
|
|
- cell "273" [ref=e932]: "273"
|
|
- cell [ref=e933]
|
|
- cell "+" [ref=e934]:
|
|
- generic [ref=e935]: +
|
|
- cell [ref=e936]:
|
|
- code
|
|
- 'row "246 274 it(''renders explicit sparse-data fallbacks for operation runs'', function (): void {" [ref=e937]':
|
|
- cell "246" [ref=e938]: "246"
|
|
- cell "274" [ref=e939]: "274"
|
|
- cell [ref=e940]
|
|
- cell [ref=e941]
|
|
- 'cell "it(''renders explicit sparse-data fallbacks for operation runs'', function (): void {" [ref=e942]':
|
|
- code [ref=e943]: "it('renders explicit sparse-data fallbacks for operation runs', function (): void {"
|
|
- row "247 275 $workspace = Workspace::factory()->create();" [ref=e944]:
|
|
- cell "247" [ref=e945]: "247"
|
|
- cell "275" [ref=e946]: "275"
|
|
- cell [ref=e947]
|
|
- cell [ref=e948]
|
|
- cell "$workspace = Workspace::factory()->create();" [ref=e949]:
|
|
- code [ref=e950]: $workspace = Workspace::factory()->create();
|
|
- row "248 276 $user = User::factory()->create();" [ref=e951]:
|
|
- cell "248" [ref=e952]: "248"
|
|
- cell "276" [ref=e953]: "276"
|
|
- cell [ref=e954]
|
|
- cell [ref=e955]
|
|
- cell "$user = User::factory()->create();" [ref=e956]:
|
|
- code [ref=e957]: $user = User::factory()->create();
|
|
- row [ref=e958]:
|
|
- cell [ref=e959]:
|
|
- button [ref=e961] [cursor=pointer]:
|
|
- img [ref=e962]
|
|
- cell [ref=e964]
|
|
- cell [ref=e965]
|
|
- cell [ref=e966]:
|
|
- code
|
|
- generic [ref=e967]:
|
|
- 'heading "26 26 Änderungen: 26 Ergänzungen und 0 Löschungen apps/platform/tests/Feature/Monitoring/MonitoringOperationsTest.php Datei anzeigen" [level=4] [ref=e968]':
|
|
- generic [ref=e969]:
|
|
- button [ref=e970] [cursor=pointer]:
|
|
- img [ref=e971]
|
|
- generic [ref=e973]:
|
|
- text: "26"
|
|
- 'generic "26 Änderungen: 26 Ergänzungen und 0 Löschungen" [ref=e974]'
|
|
- generic [ref=e976]:
|
|
- link "apps/platform/tests/Feature/Monitoring/MonitoringOperationsTest.php" [ref=e977] [cursor=pointer]:
|
|
- /url: "#diff-4ad868f31240549fa538ce94de7e0c20c547e7da"
|
|
- button [ref=e978] [cursor=pointer]:
|
|
- img [ref=e979]
|
|
- link "Datei anzeigen" [ref=e983] [cursor=pointer]:
|
|
- /url: /ahmido/TenantAtlas/src/commit/03514b9e5b2addf53d5441f0fc122ccef0b51999/apps/platform/tests/Feature/Monitoring/MonitoringOperationsTest.php
|
|
- table [ref=e986]:
|
|
- rowgroup [ref=e993]:
|
|
- row "@ -115,3 +115,29 @@" [ref=e994]:
|
|
- cell [ref=e995]:
|
|
- button [ref=e997] [cursor=pointer]:
|
|
- img [ref=e998]
|
|
- cell [ref=e1000]
|
|
- cell [ref=e1001]
|
|
- cell "@ -115,3 +115,29 @@" [ref=e1002]:
|
|
- code [ref=e1003]: "@ -115,3 +115,29 @@"
|
|
- row "115 115 ->assertDontSee('Operation finished Unknown')" [ref=e1004]:
|
|
- cell "115" [ref=e1005]: "115"
|
|
- cell "115" [ref=e1006]: "115"
|
|
- cell [ref=e1007]
|
|
- cell [ref=e1008]
|
|
- cell "->assertDontSee('Operation finished Unknown')" [ref=e1009]:
|
|
- code [ref=e1010]: "->assertDontSee('Operation finished Unknown')"
|
|
- row "116 116 ->assertDontSee('Completed with follow-up Unknown');" [ref=e1011]:
|
|
- cell "116" [ref=e1012]: "116"
|
|
- cell "116" [ref=e1013]: "116"
|
|
- cell [ref=e1014]
|
|
- cell [ref=e1015]
|
|
- cell "->assertDontSee('Completed with follow-up Unknown');" [ref=e1016]:
|
|
- code [ref=e1017]: "->assertDontSee('Completed with follow-up Unknown');"
|
|
- 'row "117 117 });" [ref=e1018]':
|
|
- cell "117" [ref=e1019]: "117"
|
|
- cell "117" [ref=e1020]: "117"
|
|
- cell [ref=e1021]
|
|
- cell [ref=e1022]
|
|
- 'cell "});" [ref=e1023]':
|
|
- code [ref=e1024]: "});"
|
|
- row "118 +" [ref=e1025]:
|
|
- cell [ref=e1026]
|
|
- cell "118" [ref=e1027]: "118"
|
|
- cell [ref=e1028]
|
|
- cell "+" [ref=e1029]:
|
|
- generic [ref=e1030]: +
|
|
- cell [ref=e1031]:
|
|
- code
|
|
- 'row "119 + it(''subordinates stale running progress to lifecycle guidance on the operations workbench'', function (): void {" [ref=e1032]':
|
|
- cell [ref=e1033]
|
|
- cell "119" [ref=e1034]: "119"
|
|
- cell [ref=e1035]
|
|
- cell "+" [ref=e1036]:
|
|
- generic [ref=e1037]: +
|
|
- 'cell "it(''subordinates stale running progress to lifecycle guidance on the operations workbench'', function (): void {" [ref=e1038]':
|
|
- code [ref=e1039]: "it('subordinates stale running progress to lifecycle guidance on the operations workbench', function (): void {"
|
|
- 'row "120 + [$user, $tenant] = createUserWithTenant(role: ''owner'');" [ref=e1040]':
|
|
- cell [ref=e1041]
|
|
- cell "120" [ref=e1042]: "120"
|
|
- cell [ref=e1043]
|
|
- cell "+" [ref=e1044]:
|
|
- generic [ref=e1045]: +
|
|
- 'cell "[$user, $tenant] = createUserWithTenant(role: ''owner'');" [ref=e1046]':
|
|
- code [ref=e1047]: "[$user, $tenant] = createUserWithTenant(role: 'owner');"
|
|
- row "121 +" [ref=e1048]:
|
|
- cell [ref=e1049]
|
|
- cell "121" [ref=e1050]: "121"
|
|
- cell [ref=e1051]
|
|
- cell "+" [ref=e1052]:
|
|
- generic [ref=e1053]: +
|
|
- cell [ref=e1054]:
|
|
- code
|
|
- row "122 + OperationRun::factory()->create([" [ref=e1055]:
|
|
- cell [ref=e1056]
|
|
- cell "122" [ref=e1057]: "122"
|
|
- cell [ref=e1058]
|
|
- cell "+" [ref=e1059]:
|
|
- generic [ref=e1060]: +
|
|
- cell "OperationRun::factory()->create([" [ref=e1061]:
|
|
- code [ref=e1062]: OperationRun::factory()->create([
|
|
- row "123 + 'managed_environment_id' => (int) $tenant->getKey()," [ref=e1063]:
|
|
- cell [ref=e1064]
|
|
- cell "123" [ref=e1065]: "123"
|
|
- cell [ref=e1066]
|
|
- cell "+" [ref=e1067]:
|
|
- generic [ref=e1068]: +
|
|
- cell "'managed_environment_id' => (int) $tenant->getKey()," [ref=e1069]:
|
|
- code [ref=e1070]: "'managed_environment_id' => (int) $tenant->getKey(),"
|
|
- row "124 + 'workspace_id' => (int) $tenant->workspace_id," [ref=e1071]:
|
|
- cell [ref=e1072]
|
|
- cell "124" [ref=e1073]: "124"
|
|
- cell [ref=e1074]
|
|
- cell "+" [ref=e1075]:
|
|
- generic [ref=e1076]: +
|
|
- cell "'workspace_id' => (int) $tenant->workspace_id," [ref=e1077]:
|
|
- code [ref=e1078]: "'workspace_id' => (int) $tenant->workspace_id,"
|
|
- row "125 + 'type' => 'inventory_sync'," [ref=e1079]:
|
|
- cell [ref=e1080]
|
|
- cell "125" [ref=e1081]: "125"
|
|
- cell [ref=e1082]
|
|
- cell "+" [ref=e1083]:
|
|
- generic [ref=e1084]: +
|
|
- cell "'type' => 'inventory_sync'," [ref=e1085]:
|
|
- code [ref=e1086]: "'type' => 'inventory_sync',"
|
|
- row "126 + 'status' => 'running'," [ref=e1087]:
|
|
- cell [ref=e1088]
|
|
- cell "126" [ref=e1089]: "126"
|
|
- cell [ref=e1090]
|
|
- cell "+" [ref=e1091]:
|
|
- generic [ref=e1092]: +
|
|
- cell "'status' => 'running'," [ref=e1093]:
|
|
- code [ref=e1094]: "'status' => 'running',"
|
|
- row "127 + 'outcome' => 'pending'," [ref=e1095]:
|
|
- cell [ref=e1096]
|
|
- cell "127" [ref=e1097]: "127"
|
|
- cell [ref=e1098]
|
|
- cell "+" [ref=e1099]:
|
|
- generic [ref=e1100]: +
|
|
- cell "'outcome' => 'pending'," [ref=e1101]:
|
|
- code [ref=e1102]: "'outcome' => 'pending',"
|
|
- row "128 + 'summary_counts' => [" [ref=e1103]:
|
|
- cell [ref=e1104]
|
|
- cell "128" [ref=e1105]: "128"
|
|
- cell [ref=e1106]
|
|
- cell "+" [ref=e1107]:
|
|
- generic [ref=e1108]: +
|
|
- cell "'summary_counts' => [" [ref=e1109]:
|
|
- code [ref=e1110]: "'summary_counts' => ["
|
|
- row "129 + 'total' => 10," [ref=e1111]:
|
|
- cell [ref=e1112]
|
|
- cell "129" [ref=e1113]: "129"
|
|
- cell [ref=e1114]
|
|
- cell "+" [ref=e1115]:
|
|
- generic [ref=e1116]: +
|
|
- cell "'total' => 10," [ref=e1117]:
|
|
- code [ref=e1118]: "'total' => 10,"
|
|
- row "130 + 'processed' => 4," [ref=e1119]:
|
|
- cell [ref=e1120]
|
|
- cell "130" [ref=e1121]: "130"
|
|
- cell [ref=e1122]
|
|
- cell "+" [ref=e1123]:
|
|
- generic [ref=e1124]: +
|
|
- cell "'processed' => 4," [ref=e1125]:
|
|
- code [ref=e1126]: "'processed' => 4,"
|
|
- row "131 + ]," [ref=e1127]:
|
|
- cell [ref=e1128]
|
|
- cell "131" [ref=e1129]: "131"
|
|
- cell [ref=e1130]
|
|
- cell "+" [ref=e1131]:
|
|
- generic [ref=e1132]: +
|
|
- cell "]," [ref=e1133]:
|
|
- code [ref=e1134]: "],"
|
|
- row "132 + 'started_at' => now()->subWeeks(2)," [ref=e1135]:
|
|
- cell [ref=e1136]
|
|
- cell "132" [ref=e1137]: "132"
|
|
- cell [ref=e1138]
|
|
- cell "+" [ref=e1139]:
|
|
- generic [ref=e1140]: +
|
|
- cell "'started_at' => now()->subWeeks(2)," [ref=e1141]:
|
|
- code [ref=e1142]: "'started_at' => now()->subWeeks(2),"
|
|
- row "133 + 'created_at' => now()->subWeeks(2)," [ref=e1143]:
|
|
- cell [ref=e1144]
|
|
- cell "133" [ref=e1145]: "133"
|
|
- cell [ref=e1146]
|
|
- cell "+" [ref=e1147]:
|
|
- generic [ref=e1148]: +
|
|
- cell "'created_at' => now()->subWeeks(2)," [ref=e1149]:
|
|
- code [ref=e1150]: "'created_at' => now()->subWeeks(2),"
|
|
- row "134 + ]);" [ref=e1151]:
|
|
- cell [ref=e1152]
|
|
- cell "134" [ref=e1153]: "134"
|
|
- cell [ref=e1154]
|
|
- cell "+" [ref=e1155]:
|
|
- generic [ref=e1156]: +
|
|
- cell "]);" [ref=e1157]:
|
|
- code [ref=e1158]: "]);"
|
|
- row "135 +" [ref=e1159]:
|
|
- cell [ref=e1160]
|
|
- cell "135" [ref=e1161]: "135"
|
|
- cell [ref=e1162]
|
|
- cell "+" [ref=e1163]:
|
|
- generic [ref=e1164]: +
|
|
- cell [ref=e1165]:
|
|
- code
|
|
- row "136 + $this->actingAs($user)" [ref=e1166]:
|
|
- cell [ref=e1167]
|
|
- cell "136" [ref=e1168]: "136"
|
|
- cell [ref=e1169]
|
|
- cell "+" [ref=e1170]:
|
|
- generic [ref=e1171]: +
|
|
- cell "$this->actingAs($user)" [ref=e1172]:
|
|
- code [ref=e1173]: $this->actingAs($user)
|
|
- row "137 + ->withSession([WorkspaceContext::SESSION_KEY => (int) $tenant->workspace_id])" [ref=e1174]:
|
|
- cell [ref=e1175]
|
|
- cell "137" [ref=e1176]: "137"
|
|
- cell [ref=e1177]
|
|
- cell "+" [ref=e1178]:
|
|
- generic [ref=e1179]: +
|
|
- cell "->withSession([WorkspaceContext::SESSION_KEY => (int) $tenant->workspace_id])" [ref=e1180]:
|
|
- code [ref=e1181]: "->withSession([WorkspaceContext::SESSION_KEY => (int) $tenant->workspace_id])"
|
|
- row "138 + ->get(\\App\\Support\\OperationRunLinks::index())" [ref=e1182]:
|
|
- cell [ref=e1183]
|
|
- cell "138" [ref=e1184]: "138"
|
|
- cell [ref=e1185]
|
|
- cell "+" [ref=e1186]:
|
|
- generic [ref=e1187]: +
|
|
- cell "->get(\\App\\Support\\OperationRunLinks::index())" [ref=e1188]:
|
|
- code [ref=e1189]: "->get(\\App\\Support\\OperationRunLinks::index())"
|
|
- row "139 + ->assertOk()" [ref=e1190]:
|
|
- cell [ref=e1191]
|
|
- cell "139" [ref=e1192]: "139"
|
|
- cell [ref=e1193]
|
|
- cell "+" [ref=e1194]:
|
|
- generic [ref=e1195]: +
|
|
- cell "->assertOk()" [ref=e1196]:
|
|
- code [ref=e1197]: "->assertOk()"
|
|
- row "140 + ->assertSee('Past the lifecycle window. Review worker health and logs before retrying.')" [ref=e1198]:
|
|
- cell [ref=e1199]
|
|
- cell "140" [ref=e1200]: "140"
|
|
- cell [ref=e1201]
|
|
- cell "+" [ref=e1202]:
|
|
- generic [ref=e1203]: +
|
|
- cell "->assertSee('Past the lifecycle window. Review worker health and logs before retrying.')" [ref=e1204]:
|
|
- code [ref=e1205]: "->assertSee('Past the lifecycle window. Review worker health and logs before retrying.')"
|
|
- row "141 + ->assertDontSee('4 / 10 processed (40%)')" [ref=e1206]:
|
|
- cell [ref=e1207]
|
|
- cell "141" [ref=e1208]: "141"
|
|
- cell [ref=e1209]
|
|
- cell "+" [ref=e1210]:
|
|
- generic [ref=e1211]: +
|
|
- cell "->assertDontSee('4 / 10 processed (40%)')" [ref=e1212]:
|
|
- code [ref=e1213]: "->assertDontSee('4 / 10 processed (40%)')"
|
|
- row "142 + ->assertDontSee('Progress details pending.');" [ref=e1214]:
|
|
- cell [ref=e1215]
|
|
- cell "142" [ref=e1216]: "142"
|
|
- cell [ref=e1217]
|
|
- cell "+" [ref=e1218]:
|
|
- generic [ref=e1219]: +
|
|
- cell "->assertDontSee('Progress details pending.');" [ref=e1220]:
|
|
- code [ref=e1221]: "->assertDontSee('Progress details pending.');"
|
|
- 'row "143 + });" [ref=e1222]':
|
|
- cell [ref=e1223]
|
|
- cell "143" [ref=e1224]: "143"
|
|
- cell [ref=e1225]
|
|
- cell "+" [ref=e1226]:
|
|
- generic [ref=e1227]: +
|
|
- 'cell "});" [ref=e1228]':
|
|
- code [ref=e1229]: "});"
|
|
- row [ref=e1230]:
|
|
- cell [ref=e1231]
|
|
- cell [ref=e1232]
|
|
- cell [ref=e1233]
|
|
- cell [ref=e1234]:
|
|
- code
|
|
- generic [ref=e1235]:
|
|
- 'heading "6 6 Änderungen: 5 Ergänzungen und 1 Löschungen apps/platform/tests/Feature/Monitoring/OperationLifecycleFreshnessPresentationTest.php Datei anzeigen" [level=4] [ref=e1236]':
|
|
- generic [ref=e1237]:
|
|
- button [ref=e1238] [cursor=pointer]:
|
|
- img [ref=e1239]
|
|
- generic [ref=e1241]:
|
|
- text: "6"
|
|
- 'generic "6 Änderungen: 5 Ergänzungen und 1 Löschungen" [ref=e1242]'
|
|
- generic [ref=e1244]:
|
|
- link "apps/platform/tests/Feature/Monitoring/OperationLifecycleFreshnessPresentationTest.php" [ref=e1245] [cursor=pointer]:
|
|
- /url: "#diff-47ac8fb6334ab7b20743abbd9ef0a58338ba9eaf"
|
|
- button [ref=e1246] [cursor=pointer]:
|
|
- img [ref=e1247]
|
|
- link "Datei anzeigen" [ref=e1251] [cursor=pointer]:
|
|
- /url: /ahmido/TenantAtlas/src/commit/03514b9e5b2addf53d5441f0fc122ccef0b51999/apps/platform/tests/Feature/Monitoring/OperationLifecycleFreshnessPresentationTest.php
|
|
- table [ref=e1254]:
|
|
- rowgroup [ref=e1261]:
|
|
- row "@ -45,6 +45,8 @@" [ref=e1262]:
|
|
- cell [ref=e1263]:
|
|
- button [ref=e1265] [cursor=pointer]:
|
|
- img [ref=e1266]
|
|
- cell [ref=e1268]
|
|
- cell [ref=e1269]
|
|
- cell "@ -45,6 +45,8 @@" [ref=e1270]:
|
|
- code [ref=e1271]: "@ -45,6 +45,8 @@"
|
|
- row "45 45 ->get(\\App\\Support\\OperationRunLinks::index())" [ref=e1272]:
|
|
- cell "45" [ref=e1273]: "45"
|
|
- cell "45" [ref=e1274]: "45"
|
|
- cell [ref=e1275]
|
|
- cell [ref=e1276]
|
|
- cell "->get(\\App\\Support\\OperationRunLinks::index())" [ref=e1277]:
|
|
- code [ref=e1278]: "->get(\\App\\Support\\OperationRunLinks::index())"
|
|
- row "46 46 ->assertOk()" [ref=e1279]:
|
|
- cell "46" [ref=e1280]: "46"
|
|
- cell "46" [ref=e1281]: "46"
|
|
- cell [ref=e1282]
|
|
- cell [ref=e1283]
|
|
- cell "->assertOk()" [ref=e1284]:
|
|
- code [ref=e1285]: "->assertOk()"
|
|
- row "47 47 ->assertSee('Likely stale')" [ref=e1286]:
|
|
- cell "47" [ref=e1287]: "47"
|
|
- cell "47" [ref=e1288]: "47"
|
|
- cell [ref=e1289]
|
|
- cell [ref=e1290]
|
|
- cell "->assertSee('Likely stale')" [ref=e1291]:
|
|
- code [ref=e1292]: "->assertSee('Likely stale')"
|
|
- row "48 + ->assertSee('Past the lifecycle window. Review worker health and logs before retrying.')" [ref=e1293]:
|
|
- cell [ref=e1294]
|
|
- cell "48" [ref=e1295]: "48"
|
|
- cell [ref=e1296]
|
|
- cell "+" [ref=e1297]:
|
|
- generic [ref=e1298]: +
|
|
- cell "->assertSee('Past the lifecycle window. Review worker health and logs before retrying.')" [ref=e1299]:
|
|
- code [ref=e1300]: "->assertSee('Past the lifecycle window. Review worker health and logs before retrying.')"
|
|
- row "49 + ->assertDontSee('Progress details pending.')" [ref=e1301]:
|
|
- cell [ref=e1302]
|
|
- cell "49" [ref=e1303]: "49"
|
|
- cell [ref=e1304]
|
|
- cell "+" [ref=e1305]:
|
|
- generic [ref=e1306]: +
|
|
- cell "->assertDontSee('Progress details pending.')" [ref=e1307]:
|
|
- code [ref=e1308]: "->assertDontSee('Progress details pending.')"
|
|
- row "48 50 ->assertSee('belong in terminal follow-up');" [ref=e1309]:
|
|
- cell "48" [ref=e1310]: "48"
|
|
- cell "50" [ref=e1311]: "50"
|
|
- cell [ref=e1312]
|
|
- cell [ref=e1313]
|
|
- cell "->assertSee('belong in terminal follow-up');" [ref=e1314]:
|
|
- code [ref=e1315]: "->assertSee('belong in terminal follow-up');"
|
|
- row "49 51" [ref=e1316]:
|
|
- cell "49" [ref=e1317]: "49"
|
|
- cell "51" [ref=e1318]: "51"
|
|
- cell [ref=e1319]
|
|
- cell [ref=e1320]
|
|
- cell [ref=e1321]:
|
|
- code
|
|
- row "50 52 $this->actingAs($user)" [ref=e1322]:
|
|
- cell "50" [ref=e1323]: "50"
|
|
- cell "52" [ref=e1324]: "52"
|
|
- cell [ref=e1325]
|
|
- cell [ref=e1326]
|
|
- cell "$this->actingAs($user)" [ref=e1327]:
|
|
- code [ref=e1328]: $this->actingAs($user)
|
|
- row "@ -58,7 +60,9 @@" [ref=e1329]:
|
|
- cell [ref=e1330]:
|
|
- button [ref=e1332] [cursor=pointer]:
|
|
- img [ref=e1333]
|
|
- cell [ref=e1335]
|
|
- cell [ref=e1336]
|
|
- cell "@ -58,7 +60,9 @@" [ref=e1337]:
|
|
- code [ref=e1338]: "@ -58,7 +60,9 @@"
|
|
- row "58 60 ->withSession([WorkspaceContext::SESSION_KEY => (int) $tenant->workspace_id])" [ref=e1339]:
|
|
- cell "58" [ref=e1340]: "58"
|
|
- cell "60" [ref=e1341]: "60"
|
|
- cell [ref=e1342]
|
|
- cell [ref=e1343]
|
|
- cell "->withSession([WorkspaceContext::SESSION_KEY => (int) $tenant->workspace_id])" [ref=e1344]:
|
|
- code [ref=e1345]: "->withSession([WorkspaceContext::SESSION_KEY => (int) $tenant->workspace_id])"
|
|
- row "59 61 ->get(\\App\\Support\\OperationRunLinks::tenantlessView($staleRun))" [ref=e1346]:
|
|
- cell "59" [ref=e1347]: "59"
|
|
- cell "61" [ref=e1348]: "61"
|
|
- cell [ref=e1349]
|
|
- cell [ref=e1350]
|
|
- cell "->get(\\App\\Support\\OperationRunLinks::tenantlessView($staleRun))" [ref=e1351]:
|
|
- code [ref=e1352]: "->get(\\App\\Support\\OperationRunLinks::tenantlessView($staleRun))"
|
|
- row "60 62 ->assertOk()" [ref=e1353]:
|
|
- cell "60" [ref=e1354]: "60"
|
|
- cell "62" [ref=e1355]: "62"
|
|
- cell [ref=e1356]
|
|
- cell [ref=e1357]
|
|
- cell "->assertOk()" [ref=e1358]:
|
|
- code [ref=e1359]: "->assertOk()"
|
|
- row "61 - ->assertSee('Likely stale operation');" [ref=e1360]:
|
|
- cell "61" [ref=e1361]: "61"
|
|
- cell [ref=e1362]
|
|
- cell [ref=e1363]
|
|
- cell "-" [ref=e1364]:
|
|
- generic [ref=e1365]: "-"
|
|
- cell "->assertSee('Likely stale operation');" [ref=e1366]:
|
|
- code [ref=e1367]: "->assertSee('Likely stale operation');"
|
|
- row "63 + ->assertSee('Likely stale operation')" [ref=e1368]:
|
|
- cell [ref=e1369]
|
|
- cell "63" [ref=e1370]: "63"
|
|
- cell [ref=e1371]
|
|
- cell "+" [ref=e1372]:
|
|
- generic [ref=e1373]: +
|
|
- cell "->assertSee('Likely stale operation')" [ref=e1374]:
|
|
- code [ref=e1375]: "->assertSee('Likely stale operation')"
|
|
- row "64 + ->assertDontSee('No action needed yet. The operation is currently in progress.')" [ref=e1376]:
|
|
- cell [ref=e1377]
|
|
- cell "64" [ref=e1378]: "64"
|
|
- cell [ref=e1379]
|
|
- cell "+" [ref=e1380]:
|
|
- generic [ref=e1381]: +
|
|
- cell "->assertDontSee('No action needed yet. The operation is currently in progress.')" [ref=e1382]:
|
|
- code [ref=e1383]: "->assertDontSee('No action needed yet. The operation is currently in progress.')"
|
|
- row "65 + ->assertDontSee('Progress details pending.');" [ref=e1384]:
|
|
- cell [ref=e1385]
|
|
- cell "65" [ref=e1386]: "65"
|
|
- cell [ref=e1387]
|
|
- cell "+" [ref=e1388]:
|
|
- generic [ref=e1389]: +
|
|
- cell "->assertDontSee('Progress details pending.');" [ref=e1390]:
|
|
- code [ref=e1391]: "->assertDontSee('Progress details pending.');"
|
|
- 'row "62 66 });" [ref=e1392]':
|
|
- cell "62" [ref=e1393]: "62"
|
|
- cell "66" [ref=e1394]: "66"
|
|
- cell [ref=e1395]
|
|
- cell [ref=e1396]
|
|
- 'cell "});" [ref=e1397]':
|
|
- code [ref=e1398]: "});"
|
|
- row "63 67" [ref=e1399]:
|
|
- cell "63" [ref=e1400]: "63"
|
|
- cell "67" [ref=e1401]: "67"
|
|
- cell [ref=e1402]
|
|
- cell [ref=e1403]
|
|
- cell [ref=e1404]:
|
|
- code
|
|
- 'row "64 68 it(''renders lifecycle outcome fallbacks when historical runs are missing stored outcomes'', function (): void {" [ref=e1405]':
|
|
- cell "64" [ref=e1406]: "64"
|
|
- cell "68" [ref=e1407]: "68"
|
|
- cell [ref=e1408]
|
|
- cell [ref=e1409]
|
|
- 'cell "it(''renders lifecycle outcome fallbacks when historical runs are missing stored outcomes'', function (): void {" [ref=e1410]':
|
|
- code [ref=e1411]: "it('renders lifecycle outcome fallbacks when historical runs are missing stored outcomes', function (): void {"
|
|
- row [ref=e1412]:
|
|
- cell [ref=e1413]:
|
|
- button [ref=e1415] [cursor=pointer]:
|
|
- img [ref=e1416]
|
|
- cell [ref=e1418]
|
|
- cell [ref=e1419]
|
|
- cell [ref=e1420]:
|
|
- code
|
|
- generic [ref=e1421]:
|
|
- 'heading "29 29 Änderungen: 29 Ergänzungen und 0 Löschungen apps/platform/tests/Feature/MonitoringOperationsTest.php Datei anzeigen" [level=4] [ref=e1422]':
|
|
- generic [ref=e1423]:
|
|
- button [ref=e1424] [cursor=pointer]:
|
|
- img [ref=e1425]
|
|
- generic [ref=e1427]:
|
|
- text: "29"
|
|
- 'generic "29 Änderungen: 29 Ergänzungen und 0 Löschungen" [ref=e1428]'
|
|
- generic [ref=e1430]:
|
|
- link "apps/platform/tests/Feature/MonitoringOperationsTest.php" [ref=e1431] [cursor=pointer]:
|
|
- /url: "#diff-d10bc881823900fad101572aee338ca92084fb34"
|
|
- button [ref=e1432] [cursor=pointer]:
|
|
- img [ref=e1433]
|
|
- link "Datei anzeigen" [ref=e1437] [cursor=pointer]:
|
|
- /url: /ahmido/TenantAtlas/src/commit/03514b9e5b2addf53d5441f0fc122ccef0b51999/apps/platform/tests/Feature/MonitoringOperationsTest.php
|
|
- table [ref=e1440]:
|
|
- rowgroup [ref=e1447]:
|
|
- row "@ -186,3 +186,32 @@" [ref=e1448]:
|
|
- cell [ref=e1449]:
|
|
- button [ref=e1451] [cursor=pointer]:
|
|
- img [ref=e1452]
|
|
- cell [ref=e1454]
|
|
- cell [ref=e1455]
|
|
- cell "@ -186,3 +186,32 @@" [ref=e1456]:
|
|
- code [ref=e1457]: "@ -186,3 +186,32 @@"
|
|
- row "186 186 ->toContain('data-shared-detail-family=\"verification-report\"')" [ref=e1458]:
|
|
- cell "186" [ref=e1459]: "186"
|
|
- cell "186" [ref=e1460]: "186"
|
|
- cell [ref=e1461]
|
|
- cell [ref=e1462]
|
|
- cell "->toContain('data-shared-detail-family=\"verification-report\"')" [ref=e1463]:
|
|
- code [ref=e1464]: "->toContain('data-shared-detail-family=\"verification-report\"')"
|
|
- row "187 187 ->toContain('data-host-kind=\"operation_run_detail\"');" [ref=e1465]:
|
|
- cell "187" [ref=e1466]: "187"
|
|
- cell "187" [ref=e1467]: "187"
|
|
- cell [ref=e1468]
|
|
- cell [ref=e1469]
|
|
- cell "->toContain('data-host-kind=\"operation_run_detail\"');" [ref=e1470]:
|
|
- code [ref=e1471]: "->toContain('data-host-kind=\"operation_run_detail\"');"
|
|
- 'row "188 188 });" [ref=e1472]':
|
|
- cell "188" [ref=e1473]: "188"
|
|
- cell "188" [ref=e1474]: "188"
|
|
- cell [ref=e1475]
|
|
- cell [ref=e1476]
|
|
- 'cell "});" [ref=e1477]':
|
|
- code [ref=e1478]: "});"
|
|
- row "189 +" [ref=e1479]:
|
|
- cell [ref=e1480]
|
|
- cell "189" [ref=e1481]: "189"
|
|
- cell [ref=e1482]
|
|
- cell "+" [ref=e1483]:
|
|
- generic [ref=e1484]: +
|
|
- cell [ref=e1485]:
|
|
- code
|
|
- 'row "190 + it(''keeps workspace monitoring guidance stale-first when an active run is beyond its lifecycle window'', function (): void {" [ref=e1486]':
|
|
- cell [ref=e1487]
|
|
- cell "190" [ref=e1488]: "190"
|
|
- cell [ref=e1489]
|
|
- cell "+" [ref=e1490]:
|
|
- generic [ref=e1491]: +
|
|
- 'cell "it(''keeps workspace monitoring guidance stale-first when an active run is beyond its lifecycle window'', function (): void {" [ref=e1492]':
|
|
- code [ref=e1493]: "it('keeps workspace monitoring guidance stale-first when an active run is beyond its lifecycle window', function (): void {"
|
|
- row "191 + $tenant = ManagedEnvironment::factory()->create();" [ref=e1494]:
|
|
- cell [ref=e1495]
|
|
- cell "191" [ref=e1496]: "191"
|
|
- cell [ref=e1497]
|
|
- cell "+" [ref=e1498]:
|
|
- generic [ref=e1499]: +
|
|
- cell "$tenant = ManagedEnvironment::factory()->create();" [ref=e1500]:
|
|
- code [ref=e1501]: $tenant = ManagedEnvironment::factory()->create();
|
|
- 'row "192 + [$user, $tenant] = createUserWithTenant($tenant, role: ''owner'');" [ref=e1502]':
|
|
- cell [ref=e1503]
|
|
- cell "192" [ref=e1504]: "192"
|
|
- cell [ref=e1505]
|
|
- cell "+" [ref=e1506]:
|
|
- generic [ref=e1507]: +
|
|
- 'cell "[$user, $tenant] = createUserWithTenant($tenant, role: ''owner'');" [ref=e1508]':
|
|
- code [ref=e1509]: "[$user, $tenant] = createUserWithTenant($tenant, role: 'owner');"
|
|
- row "193 +" [ref=e1510]:
|
|
- cell [ref=e1511]
|
|
- cell "193" [ref=e1512]: "193"
|
|
- cell [ref=e1513]
|
|
- cell "+" [ref=e1514]:
|
|
- generic [ref=e1515]: +
|
|
- cell [ref=e1516]:
|
|
- code
|
|
- row "194 + OperationRun::factory()->create([" [ref=e1517]:
|
|
- cell [ref=e1518]
|
|
- cell "194" [ref=e1519]: "194"
|
|
- cell [ref=e1520]
|
|
- cell "+" [ref=e1521]:
|
|
- generic [ref=e1522]: +
|
|
- cell "OperationRun::factory()->create([" [ref=e1523]:
|
|
- code [ref=e1524]: OperationRun::factory()->create([
|
|
- row "195 + 'managed_environment_id' => (int) $tenant->getKey()," [ref=e1525]:
|
|
- cell [ref=e1526]
|
|
- cell "195" [ref=e1527]: "195"
|
|
- cell [ref=e1528]
|
|
- cell "+" [ref=e1529]:
|
|
- generic [ref=e1530]: +
|
|
- cell "'managed_environment_id' => (int) $tenant->getKey()," [ref=e1531]:
|
|
- code [ref=e1532]: "'managed_environment_id' => (int) $tenant->getKey(),"
|
|
- row "196 + 'workspace_id' => (int) $tenant->workspace_id," [ref=e1533]:
|
|
- cell [ref=e1534]
|
|
- cell "196" [ref=e1535]: "196"
|
|
- cell [ref=e1536]
|
|
- cell "+" [ref=e1537]:
|
|
- generic [ref=e1538]: +
|
|
- cell "'workspace_id' => (int) $tenant->workspace_id," [ref=e1539]:
|
|
- code [ref=e1540]: "'workspace_id' => (int) $tenant->workspace_id,"
|
|
- row "197 + 'type' => 'inventory_sync'," [ref=e1541]:
|
|
- cell [ref=e1542]
|
|
- cell "197" [ref=e1543]: "197"
|
|
- cell [ref=e1544]
|
|
- cell "+" [ref=e1545]:
|
|
- generic [ref=e1546]: +
|
|
- cell "'type' => 'inventory_sync'," [ref=e1547]:
|
|
- code [ref=e1548]: "'type' => 'inventory_sync',"
|
|
- row "198 + 'status' => 'running'," [ref=e1549]:
|
|
- cell [ref=e1550]
|
|
- cell "198" [ref=e1551]: "198"
|
|
- cell [ref=e1552]
|
|
- cell "+" [ref=e1553]:
|
|
- generic [ref=e1554]: +
|
|
- cell "'status' => 'running'," [ref=e1555]:
|
|
- code [ref=e1556]: "'status' => 'running',"
|
|
- row "199 + 'outcome' => 'pending'," [ref=e1557]:
|
|
- cell [ref=e1558]
|
|
- cell "199" [ref=e1559]: "199"
|
|
- cell [ref=e1560]
|
|
- cell "+" [ref=e1561]:
|
|
- generic [ref=e1562]: +
|
|
- cell "'outcome' => 'pending'," [ref=e1563]:
|
|
- code [ref=e1564]: "'outcome' => 'pending',"
|
|
- row "200 + 'summary_counts' => [" [ref=e1565]:
|
|
- cell [ref=e1566]
|
|
- cell "200" [ref=e1567]: "200"
|
|
- cell [ref=e1568]
|
|
- cell "+" [ref=e1569]:
|
|
- generic [ref=e1570]: +
|
|
- cell "'summary_counts' => [" [ref=e1571]:
|
|
- code [ref=e1572]: "'summary_counts' => ["
|
|
- row "201 + 'total' => 10," [ref=e1573]:
|
|
- cell [ref=e1574]
|
|
- cell "201" [ref=e1575]: "201"
|
|
- cell [ref=e1576]
|
|
- cell "+" [ref=e1577]:
|
|
- generic [ref=e1578]: +
|
|
- cell "'total' => 10," [ref=e1579]:
|
|
- code [ref=e1580]: "'total' => 10,"
|
|
- row "202 + 'processed' => 4," [ref=e1581]:
|
|
- cell [ref=e1582]
|
|
- cell "202" [ref=e1583]: "202"
|
|
- cell [ref=e1584]
|
|
- cell "+" [ref=e1585]:
|
|
- generic [ref=e1586]: +
|
|
- cell "'processed' => 4," [ref=e1587]:
|
|
- code [ref=e1588]: "'processed' => 4,"
|
|
- row "203 + ]," [ref=e1589]:
|
|
- cell [ref=e1590]
|
|
- cell "203" [ref=e1591]: "203"
|
|
- cell [ref=e1592]
|
|
- cell "+" [ref=e1593]:
|
|
- generic [ref=e1594]: +
|
|
- cell "]," [ref=e1595]:
|
|
- code [ref=e1596]: "],"
|
|
- row "204 + 'started_at' => now()->subWeeks(2)," [ref=e1597]:
|
|
- cell [ref=e1598]
|
|
- cell "204" [ref=e1599]: "204"
|
|
- cell [ref=e1600]
|
|
- cell "+" [ref=e1601]:
|
|
- generic [ref=e1602]: +
|
|
- cell "'started_at' => now()->subWeeks(2)," [ref=e1603]:
|
|
- code [ref=e1604]: "'started_at' => now()->subWeeks(2),"
|
|
- row "205 + 'created_at' => now()->subWeeks(2)," [ref=e1605]:
|
|
- cell [ref=e1606]
|
|
- cell "205" [ref=e1607]: "205"
|
|
- cell [ref=e1608]
|
|
- cell "+" [ref=e1609]:
|
|
- generic [ref=e1610]: +
|
|
- cell "'created_at' => now()->subWeeks(2)," [ref=e1611]:
|
|
- code [ref=e1612]: "'created_at' => now()->subWeeks(2),"
|
|
- row "206 + ]);" [ref=e1613]:
|
|
- cell [ref=e1614]
|
|
- cell "206" [ref=e1615]: "206"
|
|
- cell [ref=e1616]
|
|
- cell "+" [ref=e1617]:
|
|
- generic [ref=e1618]: +
|
|
- cell "]);" [ref=e1619]:
|
|
- code [ref=e1620]: "]);"
|
|
- row "207 +" [ref=e1621]:
|
|
- cell [ref=e1622]
|
|
- cell "207" [ref=e1623]: "207"
|
|
- cell [ref=e1624]
|
|
- cell "+" [ref=e1625]:
|
|
- generic [ref=e1626]: +
|
|
- cell [ref=e1627]:
|
|
- code
|
|
- row "208 + Filament::setTenant(null, true);" [ref=e1628]:
|
|
- cell [ref=e1629]
|
|
- cell "208" [ref=e1630]: "208"
|
|
- cell [ref=e1631]
|
|
- cell "+" [ref=e1632]:
|
|
- generic [ref=e1633]: +
|
|
- cell "Filament::setTenant(null, true);" [ref=e1634]:
|
|
- code [ref=e1635]: Filament::setTenant(null, true);
|
|
- row "209 +" [ref=e1636]:
|
|
- cell [ref=e1637]
|
|
- cell "209" [ref=e1638]: "209"
|
|
- cell [ref=e1639]
|
|
- cell "+" [ref=e1640]:
|
|
- generic [ref=e1641]: +
|
|
- cell [ref=e1642]:
|
|
- code
|
|
- row "210 + $this->actingAs($user)" [ref=e1643]:
|
|
- cell [ref=e1644]
|
|
- cell "210" [ref=e1645]: "210"
|
|
- cell [ref=e1646]
|
|
- cell "+" [ref=e1647]:
|
|
- generic [ref=e1648]: +
|
|
- cell "$this->actingAs($user)" [ref=e1649]:
|
|
- code [ref=e1650]: $this->actingAs($user)
|
|
- row "211 + ->withSession([WorkspaceContext::SESSION_KEY => (int) $tenant->workspace_id])" [ref=e1651]:
|
|
- cell [ref=e1652]
|
|
- cell "211" [ref=e1653]: "211"
|
|
- cell [ref=e1654]
|
|
- cell "+" [ref=e1655]:
|
|
- generic [ref=e1656]: +
|
|
- cell "->withSession([WorkspaceContext::SESSION_KEY => (int) $tenant->workspace_id])" [ref=e1657]:
|
|
- code [ref=e1658]: "->withSession([WorkspaceContext::SESSION_KEY => (int) $tenant->workspace_id])"
|
|
- row "212 + ->get(route('admin.operations.index', ['workspace' => $tenant->workspace]))" [ref=e1659]:
|
|
- cell [ref=e1660]
|
|
- cell "212" [ref=e1661]: "212"
|
|
- cell [ref=e1662]
|
|
- cell "+" [ref=e1663]:
|
|
- generic [ref=e1664]: +
|
|
- cell "->get(route('admin.operations.index', ['workspace' => $tenant->workspace]))" [ref=e1665]:
|
|
- code [ref=e1666]: "->get(route('admin.operations.index', ['workspace' => $tenant->workspace]))"
|
|
- row "213 + ->assertSuccessful()" [ref=e1667]:
|
|
- cell [ref=e1668]
|
|
- cell "213" [ref=e1669]: "213"
|
|
- cell [ref=e1670]
|
|
- cell "+" [ref=e1671]:
|
|
- generic [ref=e1672]: +
|
|
- cell "->assertSuccessful()" [ref=e1673]:
|
|
- code [ref=e1674]: "->assertSuccessful()"
|
|
- row "214 + ->assertSee('Past the lifecycle window. Review worker health and logs before retrying.')" [ref=e1675]:
|
|
- cell [ref=e1676]
|
|
- cell "214" [ref=e1677]: "214"
|
|
- cell [ref=e1678]
|
|
- cell "+" [ref=e1679]:
|
|
- generic [ref=e1680]: +
|
|
- cell "->assertSee('Past the lifecycle window. Review worker health and logs before retrying.')" [ref=e1681]:
|
|
- code [ref=e1682]: "->assertSee('Past the lifecycle window. Review worker health and logs before retrying.')"
|
|
- row "215 + ->assertDontSee('4 / 10 processed (40%)')" [ref=e1683]:
|
|
- cell [ref=e1684]
|
|
- cell "215" [ref=e1685]: "215"
|
|
- cell [ref=e1686]
|
|
- cell "+" [ref=e1687]:
|
|
- generic [ref=e1688]: +
|
|
- cell "->assertDontSee('4 / 10 processed (40%)')" [ref=e1689]:
|
|
- code [ref=e1690]: "->assertDontSee('4 / 10 processed (40%)')"
|
|
- row "216 + ->assertDontSee('Progress details pending.');" [ref=e1691]:
|
|
- cell [ref=e1692]
|
|
- cell "216" [ref=e1693]: "216"
|
|
- cell [ref=e1694]
|
|
- cell "+" [ref=e1695]:
|
|
- generic [ref=e1696]: +
|
|
- cell "->assertDontSee('Progress details pending.');" [ref=e1697]:
|
|
- code [ref=e1698]: "->assertDontSee('Progress details pending.');"
|
|
- 'row "217 + });" [ref=e1699]':
|
|
- cell [ref=e1700]
|
|
- cell "217" [ref=e1701]: "217"
|
|
- cell [ref=e1702]
|
|
- cell "+" [ref=e1703]:
|
|
- generic [ref=e1704]: +
|
|
- 'cell "});" [ref=e1705]':
|
|
- code [ref=e1706]: "});"
|
|
- row [ref=e1707]:
|
|
- cell [ref=e1708]
|
|
- cell [ref=e1709]
|
|
- cell [ref=e1710]
|
|
- cell [ref=e1711]:
|
|
- code
|
|
- generic [ref=e1712]:
|
|
- 'heading "34 34 Änderungen: 34 Ergänzungen und 0 Löschungen apps/platform/tests/Feature/Operations/TenantlessOperationRunViewerTest.php Datei anzeigen" [level=4] [ref=e1713]':
|
|
- generic [ref=e1714]:
|
|
- button [ref=e1715] [cursor=pointer]:
|
|
- img [ref=e1716]
|
|
- generic [ref=e1718]:
|
|
- text: "34"
|
|
- 'generic "34 Änderungen: 34 Ergänzungen und 0 Löschungen" [ref=e1719]'
|
|
- generic [ref=e1721]:
|
|
- link "apps/platform/tests/Feature/Operations/TenantlessOperationRunViewerTest.php" [ref=e1722] [cursor=pointer]:
|
|
- /url: "#diff-78926fcd2b4b82100aa7ab7f37b294989c0693e0"
|
|
- button [ref=e1723] [cursor=pointer]:
|
|
- img [ref=e1724]
|
|
- link "Datei anzeigen" [ref=e1728] [cursor=pointer]:
|
|
- /url: /ahmido/TenantAtlas/src/commit/03514b9e5b2addf53d5441f0fc122ccef0b51999/apps/platform/tests/Feature/Operations/TenantlessOperationRunViewerTest.php
|
|
- table [ref=e1731]:
|
|
- rowgroup [ref=e1738]:
|
|
- row "@ -272,6 +272,40 @@" [ref=e1739]:
|
|
- cell [ref=e1740]:
|
|
- button [ref=e1742] [cursor=pointer]:
|
|
- img [ref=e1743]
|
|
- cell [ref=e1745]
|
|
- cell [ref=e1746]
|
|
- cell "@ -272,6 +272,40 @@" [ref=e1747]:
|
|
- code [ref=e1748]: "@ -272,6 +272,40 @@"
|
|
- row "272 272 expect(mb_substr_count($pageText, 'Automatically reconciled'))->toBe(1);" [ref=e1749]:
|
|
- cell "272" [ref=e1750]: "272"
|
|
- cell "272" [ref=e1751]: "272"
|
|
- cell [ref=e1752]
|
|
- cell [ref=e1753]
|
|
- cell "expect(mb_substr_count($pageText, 'Automatically reconciled'))->toBe(1);" [ref=e1754]:
|
|
- code [ref=e1755]: expect(mb_substr_count($pageText, 'Automatically reconciled'))->toBe(1);
|
|
- 'row "273 273 });" [ref=e1756]':
|
|
- cell "273" [ref=e1757]: "273"
|
|
- cell "273" [ref=e1758]: "273"
|
|
- cell [ref=e1759]
|
|
- cell [ref=e1760]
|
|
- 'cell "});" [ref=e1761]':
|
|
- code [ref=e1762]: "});"
|
|
- row "274 274" [ref=e1763]:
|
|
- cell "274" [ref=e1764]: "274"
|
|
- cell "274" [ref=e1765]: "274"
|
|
- cell [ref=e1766]
|
|
- cell [ref=e1767]
|
|
- cell [ref=e1768]:
|
|
- code
|
|
- 'row "275 + it(''keeps stale active detail aligned with lifecycle guidance when determinate progress data exists'', function (): void {" [ref=e1769]':
|
|
- cell [ref=e1770]
|
|
- cell "275" [ref=e1771]: "275"
|
|
- cell [ref=e1772]
|
|
- cell "+" [ref=e1773]:
|
|
- generic [ref=e1774]: +
|
|
- 'cell "it(''keeps stale active detail aligned with lifecycle guidance when determinate progress data exists'', function (): void {" [ref=e1775]':
|
|
- code [ref=e1776]: "it('keeps stale active detail aligned with lifecycle guidance when determinate progress data exists', function (): void {"
|
|
- row "276 + $tenant = ManagedEnvironment::factory()->create();" [ref=e1777]:
|
|
- cell [ref=e1778]
|
|
- cell "276" [ref=e1779]: "276"
|
|
- cell [ref=e1780]
|
|
- cell "+" [ref=e1781]:
|
|
- generic [ref=e1782]: +
|
|
- cell "$tenant = ManagedEnvironment::factory()->create();" [ref=e1783]:
|
|
- code [ref=e1784]: $tenant = ManagedEnvironment::factory()->create();
|
|
- 'row "277 + [$user, $tenant] = createUserWithTenant(tenant: $tenant, role: ''owner'');" [ref=e1785]':
|
|
- cell [ref=e1786]
|
|
- cell "277" [ref=e1787]: "277"
|
|
- cell [ref=e1788]
|
|
- cell "+" [ref=e1789]:
|
|
- generic [ref=e1790]: +
|
|
- 'cell "[$user, $tenant] = createUserWithTenant(tenant: $tenant, role: ''owner'');" [ref=e1791]':
|
|
- code [ref=e1792]: "[$user, $tenant] = createUserWithTenant(tenant: $tenant, role: 'owner');"
|
|
- row "278 +" [ref=e1793]:
|
|
- cell [ref=e1794]
|
|
- cell "278" [ref=e1795]: "278"
|
|
- cell [ref=e1796]
|
|
- cell "+" [ref=e1797]:
|
|
- generic [ref=e1798]: +
|
|
- cell [ref=e1799]:
|
|
- code
|
|
- row "279 + $run = OperationRun::factory()->create([" [ref=e1800]:
|
|
- cell [ref=e1801]
|
|
- cell "279" [ref=e1802]: "279"
|
|
- cell [ref=e1803]
|
|
- cell "+" [ref=e1804]:
|
|
- generic [ref=e1805]: +
|
|
- cell "$run = OperationRun::factory()->create([" [ref=e1806]:
|
|
- code [ref=e1807]: $run = OperationRun::factory()->create([
|
|
- row "280 + 'managed_environment_id' => (int) $tenant->getKey()," [ref=e1808]:
|
|
- cell [ref=e1809]
|
|
- cell "280" [ref=e1810]: "280"
|
|
- cell [ref=e1811]
|
|
- cell "+" [ref=e1812]:
|
|
- generic [ref=e1813]: +
|
|
- cell "'managed_environment_id' => (int) $tenant->getKey()," [ref=e1814]:
|
|
- code [ref=e1815]: "'managed_environment_id' => (int) $tenant->getKey(),"
|
|
- row "281 + 'workspace_id' => (int) $tenant->workspace_id," [ref=e1816]:
|
|
- cell [ref=e1817]
|
|
- cell "281" [ref=e1818]: "281"
|
|
- cell [ref=e1819]
|
|
- cell "+" [ref=e1820]:
|
|
- generic [ref=e1821]: +
|
|
- cell "'workspace_id' => (int) $tenant->workspace_id," [ref=e1822]:
|
|
- code [ref=e1823]: "'workspace_id' => (int) $tenant->workspace_id,"
|
|
- row "282 + 'user_id' => (int) $user->getKey()," [ref=e1824]:
|
|
- cell [ref=e1825]
|
|
- cell "282" [ref=e1826]: "282"
|
|
- cell [ref=e1827]
|
|
- cell "+" [ref=e1828]:
|
|
- generic [ref=e1829]: +
|
|
- cell "'user_id' => (int) $user->getKey()," [ref=e1830]:
|
|
- code [ref=e1831]: "'user_id' => (int) $user->getKey(),"
|
|
- row "283 + 'type' => 'inventory_sync'," [ref=e1832]:
|
|
- cell [ref=e1833]
|
|
- cell "283" [ref=e1834]: "283"
|
|
- cell [ref=e1835]
|
|
- cell "+" [ref=e1836]:
|
|
- generic [ref=e1837]: +
|
|
- cell "'type' => 'inventory_sync'," [ref=e1838]:
|
|
- code [ref=e1839]: "'type' => 'inventory_sync',"
|
|
- row "284 + 'status' => OperationRunStatus::Running->value," [ref=e1840]:
|
|
- cell [ref=e1841]
|
|
- cell "284" [ref=e1842]: "284"
|
|
- cell [ref=e1843]
|
|
- cell "+" [ref=e1844]:
|
|
- generic [ref=e1845]: +
|
|
- cell "'status' => OperationRunStatus::Running->value," [ref=e1846]:
|
|
- code [ref=e1847]: "'status' => OperationRunStatus::Running->value,"
|
|
- row "285 + 'outcome' => OperationRunOutcome::Pending->value," [ref=e1848]:
|
|
- cell [ref=e1849]
|
|
- cell "285" [ref=e1850]: "285"
|
|
- cell [ref=e1851]
|
|
- cell "+" [ref=e1852]:
|
|
- generic [ref=e1853]: +
|
|
- cell "'outcome' => OperationRunOutcome::Pending->value," [ref=e1854]:
|
|
- code [ref=e1855]: "'outcome' => OperationRunOutcome::Pending->value,"
|
|
- row "286 + 'summary_counts' => [" [ref=e1856]:
|
|
- cell [ref=e1857]
|
|
- cell "286" [ref=e1858]: "286"
|
|
- cell [ref=e1859]
|
|
- cell "+" [ref=e1860]:
|
|
- generic [ref=e1861]: +
|
|
- cell "'summary_counts' => [" [ref=e1862]:
|
|
- code [ref=e1863]: "'summary_counts' => ["
|
|
- row "287 + 'total' => 10," [ref=e1864]:
|
|
- cell [ref=e1865]
|
|
- cell "287" [ref=e1866]: "287"
|
|
- cell [ref=e1867]
|
|
- cell "+" [ref=e1868]:
|
|
- generic [ref=e1869]: +
|
|
- cell "'total' => 10," [ref=e1870]:
|
|
- code [ref=e1871]: "'total' => 10,"
|
|
- row "288 + 'processed' => 4," [ref=e1872]:
|
|
- cell [ref=e1873]
|
|
- cell "288" [ref=e1874]: "288"
|
|
- cell [ref=e1875]
|
|
- cell "+" [ref=e1876]:
|
|
- generic [ref=e1877]: +
|
|
- cell "'processed' => 4," [ref=e1878]:
|
|
- code [ref=e1879]: "'processed' => 4,"
|
|
- row "289 + ]," [ref=e1880]:
|
|
- cell [ref=e1881]
|
|
- cell "289" [ref=e1882]: "289"
|
|
- cell [ref=e1883]
|
|
- cell "+" [ref=e1884]:
|
|
- generic [ref=e1885]: +
|
|
- cell "]," [ref=e1886]:
|
|
- code [ref=e1887]: "],"
|
|
- row "290 + 'started_at' => now()->subWeeks(2)," [ref=e1888]:
|
|
- cell [ref=e1889]
|
|
- cell "290" [ref=e1890]: "290"
|
|
- cell [ref=e1891]
|
|
- cell "+" [ref=e1892]:
|
|
- generic [ref=e1893]: +
|
|
- cell "'started_at' => now()->subWeeks(2)," [ref=e1894]:
|
|
- code [ref=e1895]: "'started_at' => now()->subWeeks(2),"
|
|
- row "291 + 'created_at' => now()->subWeeks(2)," [ref=e1896]:
|
|
- cell [ref=e1897]
|
|
- cell "291" [ref=e1898]: "291"
|
|
- cell [ref=e1899]
|
|
- cell "+" [ref=e1900]:
|
|
- generic [ref=e1901]: +
|
|
- cell "'created_at' => now()->subWeeks(2)," [ref=e1902]:
|
|
- code [ref=e1903]: "'created_at' => now()->subWeeks(2),"
|
|
- row "292 + ]);" [ref=e1904]:
|
|
- cell [ref=e1905]
|
|
- cell "292" [ref=e1906]: "292"
|
|
- cell [ref=e1907]
|
|
- cell "+" [ref=e1908]:
|
|
- generic [ref=e1909]: +
|
|
- cell "]);" [ref=e1910]:
|
|
- code [ref=e1911]: "]);"
|
|
- row "293 +" [ref=e1912]:
|
|
- cell [ref=e1913]
|
|
- cell "293" [ref=e1914]: "293"
|
|
- cell [ref=e1915]
|
|
- cell "+" [ref=e1916]:
|
|
- generic [ref=e1917]: +
|
|
- cell [ref=e1918]:
|
|
- code
|
|
- row "294 + Filament::setTenant(null, true);" [ref=e1919]:
|
|
- cell [ref=e1920]
|
|
- cell "294" [ref=e1921]: "294"
|
|
- cell [ref=e1922]
|
|
- cell "+" [ref=e1923]:
|
|
- generic [ref=e1924]: +
|
|
- cell "Filament::setTenant(null, true);" [ref=e1925]:
|
|
- code [ref=e1926]: Filament::setTenant(null, true);
|
|
- row "295 +" [ref=e1927]:
|
|
- cell [ref=e1928]
|
|
- cell "295" [ref=e1929]: "295"
|
|
- cell [ref=e1930]
|
|
- cell "+" [ref=e1931]:
|
|
- generic [ref=e1932]: +
|
|
- cell [ref=e1933]:
|
|
- code
|
|
- row "296 + $this->actingAs($user)" [ref=e1934]:
|
|
- cell [ref=e1935]
|
|
- cell "296" [ref=e1936]: "296"
|
|
- cell [ref=e1937]
|
|
- cell "+" [ref=e1938]:
|
|
- generic [ref=e1939]: +
|
|
- cell "$this->actingAs($user)" [ref=e1940]:
|
|
- code [ref=e1941]: $this->actingAs($user)
|
|
- row "297 + ->withSession([" [ref=e1942]:
|
|
- cell [ref=e1943]
|
|
- cell "297" [ref=e1944]: "297"
|
|
- cell [ref=e1945]
|
|
- cell "+" [ref=e1946]:
|
|
- generic [ref=e1947]: +
|
|
- cell "->withSession([" [ref=e1948]:
|
|
- code [ref=e1949]: "->withSession(["
|
|
- row "298 + WorkspaceContext::SESSION_KEY => (int) $tenant->workspace_id," [ref=e1950]:
|
|
- cell [ref=e1951]
|
|
- cell "298" [ref=e1952]: "298"
|
|
- cell [ref=e1953]
|
|
- cell "+" [ref=e1954]:
|
|
- generic [ref=e1955]: +
|
|
- cell "WorkspaceContext::SESSION_KEY => (int) $tenant->workspace_id," [ref=e1956]:
|
|
- code [ref=e1957]: WorkspaceContext::SESSION_KEY => (int) $tenant->workspace_id,
|
|
- row "299 + ])" [ref=e1958]:
|
|
- cell [ref=e1959]
|
|
- cell "299" [ref=e1960]: "299"
|
|
- cell [ref=e1961]
|
|
- cell "+" [ref=e1962]:
|
|
- generic [ref=e1963]: +
|
|
- cell "])" [ref=e1964]:
|
|
- code [ref=e1965]: "])"
|
|
- row "300 + ->get(OperationRunLinks::tenantlessView((int) $run->getKey()))" [ref=e1966]:
|
|
- cell [ref=e1967]
|
|
- cell "300" [ref=e1968]: "300"
|
|
- cell [ref=e1969]
|
|
- cell "+" [ref=e1970]:
|
|
- generic [ref=e1971]: +
|
|
- cell "->get(OperationRunLinks::tenantlessView((int) $run->getKey()))" [ref=e1972]:
|
|
- code [ref=e1973]: "->get(OperationRunLinks::tenantlessView((int) $run->getKey()))"
|
|
- row "301 + ->assertSuccessful()" [ref=e1974]:
|
|
- cell [ref=e1975]
|
|
- cell "301" [ref=e1976]: "301"
|
|
- cell [ref=e1977]
|
|
- cell "+" [ref=e1978]:
|
|
- generic [ref=e1979]: +
|
|
- cell "->assertSuccessful()" [ref=e1980]:
|
|
- code [ref=e1981]: "->assertSuccessful()"
|
|
- row "302 + ->assertSee('Likely stale operation')" [ref=e1982]:
|
|
- cell [ref=e1983]
|
|
- cell "302" [ref=e1984]: "302"
|
|
- cell [ref=e1985]
|
|
- cell "+" [ref=e1986]:
|
|
- generic [ref=e1987]: +
|
|
- cell "->assertSee('Likely stale operation')" [ref=e1988]:
|
|
- code [ref=e1989]: "->assertSee('Likely stale operation')"
|
|
- row "303 + ->assertSee('past its lifecycle window')" [ref=e1990]:
|
|
- cell [ref=e1991]
|
|
- cell "303" [ref=e1992]: "303"
|
|
- cell [ref=e1993]
|
|
- cell "+" [ref=e1994]:
|
|
- generic [ref=e1995]: +
|
|
- cell "->assertSee('past its lifecycle window')" [ref=e1996]:
|
|
- code [ref=e1997]: "->assertSee('past its lifecycle window')"
|
|
- row "304 + ->assertDontSee('No action needed yet. The operation is currently in progress.')" [ref=e1998]:
|
|
- cell [ref=e1999]
|
|
- cell "304" [ref=e2000]: "304"
|
|
- cell [ref=e2001]
|
|
- cell "+" [ref=e2002]:
|
|
- generic [ref=e2003]: +
|
|
- cell "->assertDontSee('No action needed yet. The operation is currently in progress.')" [ref=e2004]:
|
|
- code [ref=e2005]: "->assertDontSee('No action needed yet. The operation is currently in progress.')"
|
|
- row "305 + ->assertDontSee('4 / 10 processed (40%)')" [ref=e2006]:
|
|
- cell [ref=e2007]
|
|
- cell "305" [ref=e2008]: "305"
|
|
- cell [ref=e2009]
|
|
- cell "+" [ref=e2010]:
|
|
- generic [ref=e2011]: +
|
|
- cell "->assertDontSee('4 / 10 processed (40%)')" [ref=e2012]:
|
|
- code [ref=e2013]: "->assertDontSee('4 / 10 processed (40%)')"
|
|
- row "306 + ->assertDontSee('Progress details pending.');" [ref=e2014]:
|
|
- cell [ref=e2015]
|
|
- cell "306" [ref=e2016]: "306"
|
|
- cell [ref=e2017]
|
|
- cell "+" [ref=e2018]:
|
|
- generic [ref=e2019]: +
|
|
- cell "->assertDontSee('Progress details pending.');" [ref=e2020]:
|
|
- code [ref=e2021]: "->assertDontSee('Progress details pending.');"
|
|
- 'row "307 + });" [ref=e2022]':
|
|
- cell [ref=e2023]
|
|
- cell "307" [ref=e2024]: "307"
|
|
- cell [ref=e2025]
|
|
- cell "+" [ref=e2026]:
|
|
- generic [ref=e2027]: +
|
|
- 'cell "});" [ref=e2028]':
|
|
- code [ref=e2029]: "});"
|
|
- row "308 +" [ref=e2030]:
|
|
- cell [ref=e2031]
|
|
- cell "308" [ref=e2032]: "308"
|
|
- cell [ref=e2033]
|
|
- cell "+" [ref=e2034]:
|
|
- generic [ref=e2035]: +
|
|
- cell [ref=e2036]:
|
|
- code
|
|
- 'row "275 309 it(''keeps a canonical run viewer accessible when the remembered environment differs from the run tenant'', function (): void {" [ref=e2037]':
|
|
- cell "275" [ref=e2038]: "275"
|
|
- cell "309" [ref=e2039]: "309"
|
|
- cell [ref=e2040]
|
|
- cell [ref=e2041]
|
|
- 'cell "it(''keeps a canonical run viewer accessible when the remembered environment differs from the run tenant'', function (): void {" [ref=e2042]':
|
|
- code [ref=e2043]: "it('keeps a canonical run viewer accessible when the remembered environment differs from the run tenant', function (): void {"
|
|
- row "276 310 $workspace = Workspace::factory()->create();" [ref=e2044]:
|
|
- cell "276" [ref=e2045]: "276"
|
|
- cell "310" [ref=e2046]: "310"
|
|
- cell [ref=e2047]
|
|
- cell [ref=e2048]
|
|
- cell "$workspace = Workspace::factory()->create();" [ref=e2049]:
|
|
- code [ref=e2050]: $workspace = Workspace::factory()->create();
|
|
- row "277 311 $tenantA = ManagedEnvironment::factory()->for($workspace)->create();" [ref=e2051]:
|
|
- cell "277" [ref=e2052]: "277"
|
|
- cell "311" [ref=e2053]: "311"
|
|
- cell [ref=e2054]
|
|
- cell [ref=e2055]
|
|
- cell "$tenantA = ManagedEnvironment::factory()->for($workspace)->create();" [ref=e2056]:
|
|
- code [ref=e2057]: $tenantA = ManagedEnvironment::factory()->for($workspace)->create();
|
|
- row [ref=e2058]:
|
|
- cell [ref=e2059]:
|
|
- button [ref=e2061] [cursor=pointer]:
|
|
- img [ref=e2062]
|
|
- cell [ref=e2064]
|
|
- cell [ref=e2065]
|
|
- cell [ref=e2066]:
|
|
- code
|
|
- generic [ref=e2067]:
|
|
- 'heading "66 66 Änderungen: 65 Ergänzungen und 1 Löschungen apps/platform/tests/Feature/OpsUx/ActivityFeedbackSurfaceTest.php Datei anzeigen" [level=4] [ref=e2068]':
|
|
- generic [ref=e2069]:
|
|
- button [ref=e2070] [cursor=pointer]:
|
|
- img [ref=e2071]
|
|
- generic [ref=e2073]:
|
|
- text: "66"
|
|
- 'generic "66 Änderungen: 65 Ergänzungen und 1 Löschungen" [ref=e2074]'
|
|
- generic [ref=e2076]:
|
|
- link "apps/platform/tests/Feature/OpsUx/ActivityFeedbackSurfaceTest.php" [ref=e2077] [cursor=pointer]:
|
|
- /url: "#diff-19902a15f70a89998c7c6940d74722850b9e746f"
|
|
- button [ref=e2078] [cursor=pointer]:
|
|
- img [ref=e2079]
|
|
- link "Datei anzeigen" [ref=e2083] [cursor=pointer]:
|
|
- /url: /ahmido/TenantAtlas/src/commit/03514b9e5b2addf53d5441f0fc122ccef0b51999/apps/platform/tests/Feature/OpsUx/ActivityFeedbackSurfaceTest.php
|
|
- table [ref=e2086]:
|
|
- rowgroup [ref=e2093]:
|
|
- row "@ -344,7 +344,7 @@" [ref=e2094]:
|
|
- cell [ref=e2095]:
|
|
- button [ref=e2097] [cursor=pointer]:
|
|
- img [ref=e2098]
|
|
- cell [ref=e2100]
|
|
- cell [ref=e2101]
|
|
- cell "@ -344,7 +344,7 @@" [ref=e2102]:
|
|
- code [ref=e2103]: "@ -344,7 +344,7 @@"
|
|
- row "344 344 'total' => 10," [ref=e2104]:
|
|
- cell "344" [ref=e2105]: "344"
|
|
- cell "344" [ref=e2106]: "344"
|
|
- cell [ref=e2107]
|
|
- cell [ref=e2108]
|
|
- cell "'total' => 10," [ref=e2109]:
|
|
- code [ref=e2110]: "'total' => 10,"
|
|
- row "345 345 'processed' => 4," [ref=e2111]:
|
|
- cell "345" [ref=e2112]: "345"
|
|
- cell "345" [ref=e2113]: "345"
|
|
- cell [ref=e2114]
|
|
- cell [ref=e2115]
|
|
- cell "'processed' => 4," [ref=e2116]:
|
|
- code [ref=e2117]: "'processed' => 4,"
|
|
- row "346 346 ]," [ref=e2118]:
|
|
- cell "346" [ref=e2119]: "346"
|
|
- cell "346" [ref=e2120]: "346"
|
|
- cell [ref=e2121]
|
|
- cell [ref=e2122]
|
|
- cell "]," [ref=e2123]:
|
|
- code [ref=e2124]: "],"
|
|
- row "347 - 'started_at' => now()->subWeeks(2)," [ref=e2125]:
|
|
- cell "347" [ref=e2126]: "347"
|
|
- cell [ref=e2127]
|
|
- cell [ref=e2128]
|
|
- cell "-" [ref=e2129]:
|
|
- generic [ref=e2130]: "-"
|
|
- cell "'started_at' => now()->subWeeks(2)," [ref=e2131]:
|
|
- code [ref=e2132]:
|
|
- text: "'started_at' => now()->sub"
|
|
- generic [ref=e2133]: Weeks(2
|
|
- text: ),
|
|
- row "347 + 'started_at' => now()->subMinute()," [ref=e2134]:
|
|
- cell [ref=e2135]
|
|
- cell "347" [ref=e2136]: "347"
|
|
- cell [ref=e2137]
|
|
- cell "+" [ref=e2138]:
|
|
- generic [ref=e2139]: +
|
|
- cell "'started_at' => now()->subMinute()," [ref=e2140]:
|
|
- code [ref=e2141]:
|
|
- text: "'started_at' => now()->sub"
|
|
- generic [ref=e2142]: Minute(
|
|
- text: ),
|
|
- row "348 348 ]);" [ref=e2143]:
|
|
- cell "348" [ref=e2144]: "348"
|
|
- cell "348" [ref=e2145]: "348"
|
|
- cell [ref=e2146]
|
|
- cell [ref=e2147]
|
|
- cell "]);" [ref=e2148]:
|
|
- code [ref=e2149]: "]);"
|
|
- row "349 349" [ref=e2150]:
|
|
- cell "349" [ref=e2151]: "349"
|
|
- cell "349" [ref=e2152]: "349"
|
|
- cell [ref=e2153]
|
|
- cell [ref=e2154]
|
|
- cell [ref=e2155]:
|
|
- code
|
|
- row "350 350 $component = Livewire::actingAs($user)" [ref=e2156]:
|
|
- cell "350" [ref=e2157]: "350"
|
|
- cell "350" [ref=e2158]: "350"
|
|
- cell [ref=e2159]
|
|
- cell [ref=e2160]
|
|
- cell "$component = Livewire::actingAs($user)" [ref=e2161]:
|
|
- code [ref=e2162]: $component = Livewire::actingAs($user)
|
|
- row "@ -364,6 +364,70 @@" [ref=e2163]:
|
|
- cell [ref=e2164]:
|
|
- button [ref=e2166] [cursor=pointer]:
|
|
- img [ref=e2167]
|
|
- cell [ref=e2169]
|
|
- cell [ref=e2170]
|
|
- cell "@ -364,6 +364,70 @@" [ref=e2171]:
|
|
- code [ref=e2172]: "@ -364,6 +364,70 @@"
|
|
- row "364 364 ->and($html)->not->toContain('Likely stale');" [ref=e2173]:
|
|
- cell "364" [ref=e2174]: "364"
|
|
- cell "364" [ref=e2175]: "364"
|
|
- cell [ref=e2176]
|
|
- cell [ref=e2177]
|
|
- cell "->and($html)->not->toContain('Likely stale');" [ref=e2178]:
|
|
- code [ref=e2179]: "->and($html)->not->toContain('Likely stale');"
|
|
- 'row "365 365 })->group(''ops-ux'');" [ref=e2180]':
|
|
- cell "365" [ref=e2181]: "365"
|
|
- cell "365" [ref=e2182]: "365"
|
|
- cell [ref=e2183]
|
|
- cell [ref=e2184]
|
|
- 'cell "})->group(''ops-ux'');" [ref=e2185]':
|
|
- code [ref=e2186]: "})->group('ops-ux');"
|
|
- row "366 366" [ref=e2187]:
|
|
- cell "366" [ref=e2188]: "366"
|
|
- cell "366" [ref=e2189]: "366"
|
|
- cell [ref=e2190]
|
|
- cell [ref=e2191]
|
|
- cell [ref=e2192]:
|
|
- code
|
|
- 'row "367 + it(''renders stale queued activity with lifecycle guidance instead of ordinary waiting copy'', function (): void {" [ref=e2193]':
|
|
- cell [ref=e2194]
|
|
- cell "367" [ref=e2195]: "367"
|
|
- cell [ref=e2196]
|
|
- cell "+" [ref=e2197]:
|
|
- generic [ref=e2198]: +
|
|
- 'cell "it(''renders stale queued activity with lifecycle guidance instead of ordinary waiting copy'', function (): void {" [ref=e2199]':
|
|
- code [ref=e2200]: "it('renders stale queued activity with lifecycle guidance instead of ordinary waiting copy', function (): void {"
|
|
- 'row "368 + [$user, $tenant] = createUserWithTenant(role: ''owner'');" [ref=e2201]':
|
|
- cell [ref=e2202]
|
|
- cell "368" [ref=e2203]: "368"
|
|
- cell [ref=e2204]
|
|
- cell "+" [ref=e2205]:
|
|
- generic [ref=e2206]: +
|
|
- 'cell "[$user, $tenant] = createUserWithTenant(role: ''owner'');" [ref=e2207]':
|
|
- code [ref=e2208]: "[$user, $tenant] = createUserWithTenant(role: 'owner');"
|
|
- row "369 +" [ref=e2209]:
|
|
- cell [ref=e2210]
|
|
- cell "369" [ref=e2211]: "369"
|
|
- cell [ref=e2212]
|
|
- cell "+" [ref=e2213]:
|
|
- generic [ref=e2214]: +
|
|
- cell [ref=e2215]:
|
|
- code
|
|
- row "370 + $this->actingAs($user);" [ref=e2216]:
|
|
- cell [ref=e2217]
|
|
- cell "370" [ref=e2218]: "370"
|
|
- cell [ref=e2219]
|
|
- cell "+" [ref=e2220]:
|
|
- generic [ref=e2221]: +
|
|
- cell "$this->actingAs($user);" [ref=e2222]:
|
|
- code [ref=e2223]: $this->actingAs($user);
|
|
- row "371 + Filament::setTenant($tenant, true);" [ref=e2224]:
|
|
- cell [ref=e2225]
|
|
- cell "371" [ref=e2226]: "371"
|
|
- cell [ref=e2227]
|
|
- cell "+" [ref=e2228]:
|
|
- generic [ref=e2229]: +
|
|
- cell "Filament::setTenant($tenant, true);" [ref=e2230]:
|
|
- code [ref=e2231]: Filament::setTenant($tenant, true);
|
|
- row "372 +" [ref=e2232]:
|
|
- cell [ref=e2233]
|
|
- cell "372" [ref=e2234]: "372"
|
|
- cell [ref=e2235]
|
|
- cell "+" [ref=e2236]:
|
|
- generic [ref=e2237]: +
|
|
- cell [ref=e2238]:
|
|
- code
|
|
- row "373 + OperationRun::factory()->create([" [ref=e2239]:
|
|
- cell [ref=e2240]
|
|
- cell "373" [ref=e2241]: "373"
|
|
- cell [ref=e2242]
|
|
- cell "+" [ref=e2243]:
|
|
- generic [ref=e2244]: +
|
|
- cell "OperationRun::factory()->create([" [ref=e2245]:
|
|
- code [ref=e2246]: OperationRun::factory()->create([
|
|
- row "374 + 'managed_environment_id' => (int) $tenant->getKey()," [ref=e2247]:
|
|
- cell [ref=e2248]
|
|
- cell "374" [ref=e2249]: "374"
|
|
- cell [ref=e2250]
|
|
- cell "+" [ref=e2251]:
|
|
- generic [ref=e2252]: +
|
|
- cell "'managed_environment_id' => (int) $tenant->getKey()," [ref=e2253]:
|
|
- code [ref=e2254]: "'managed_environment_id' => (int) $tenant->getKey(),"
|
|
- row "375 + 'workspace_id' => (int) $tenant->workspace_id," [ref=e2255]:
|
|
- cell [ref=e2256]
|
|
- cell "375" [ref=e2257]: "375"
|
|
- cell [ref=e2258]
|
|
- cell "+" [ref=e2259]:
|
|
- generic [ref=e2260]: +
|
|
- cell "'workspace_id' => (int) $tenant->workspace_id," [ref=e2261]:
|
|
- code [ref=e2262]: "'workspace_id' => (int) $tenant->workspace_id,"
|
|
- row "376 + 'user_id' => (int) $user->getKey()," [ref=e2263]:
|
|
- cell [ref=e2264]
|
|
- cell "376" [ref=e2265]: "376"
|
|
- cell [ref=e2266]
|
|
- cell "+" [ref=e2267]:
|
|
- generic [ref=e2268]: +
|
|
- cell "'user_id' => (int) $user->getKey()," [ref=e2269]:
|
|
- code [ref=e2270]: "'user_id' => (int) $user->getKey(),"
|
|
- row "377 + 'type' => 'inventory_sync'," [ref=e2271]:
|
|
- cell [ref=e2272]
|
|
- cell "377" [ref=e2273]: "377"
|
|
- cell [ref=e2274]
|
|
- cell "+" [ref=e2275]:
|
|
- generic [ref=e2276]: +
|
|
- cell "'type' => 'inventory_sync'," [ref=e2277]:
|
|
- code [ref=e2278]: "'type' => 'inventory_sync',"
|
|
- row "378 + 'status' => 'queued'," [ref=e2279]:
|
|
- cell [ref=e2280]
|
|
- cell "378" [ref=e2281]: "378"
|
|
- cell [ref=e2282]
|
|
- cell "+" [ref=e2283]:
|
|
- generic [ref=e2284]: +
|
|
- cell "'status' => 'queued'," [ref=e2285]:
|
|
- code [ref=e2286]: "'status' => 'queued',"
|
|
- row "379 + 'outcome' => 'pending'," [ref=e2287]:
|
|
- cell [ref=e2288]
|
|
- cell "379" [ref=e2289]: "379"
|
|
- cell [ref=e2290]
|
|
- cell "+" [ref=e2291]:
|
|
- generic [ref=e2292]: +
|
|
- cell "'outcome' => 'pending'," [ref=e2293]:
|
|
- code [ref=e2294]: "'outcome' => 'pending',"
|
|
- row "380 + 'created_at' => now()->subWeeks(2)," [ref=e2295]:
|
|
- cell [ref=e2296]
|
|
- cell "380" [ref=e2297]: "380"
|
|
- cell [ref=e2298]
|
|
- cell "+" [ref=e2299]:
|
|
- generic [ref=e2300]: +
|
|
- cell "'created_at' => now()->subWeeks(2)," [ref=e2301]:
|
|
- code [ref=e2302]: "'created_at' => now()->subWeeks(2),"
|
|
- row "381 + ]);" [ref=e2303]:
|
|
- cell [ref=e2304]
|
|
- cell "381" [ref=e2305]: "381"
|
|
- cell [ref=e2306]
|
|
- cell "+" [ref=e2307]:
|
|
- generic [ref=e2308]: +
|
|
- cell "]);" [ref=e2309]:
|
|
- code [ref=e2310]: "]);"
|
|
- row "382 +" [ref=e2311]:
|
|
- cell [ref=e2312]
|
|
- cell "382" [ref=e2313]: "382"
|
|
- cell [ref=e2314]
|
|
- cell "+" [ref=e2315]:
|
|
- generic [ref=e2316]: +
|
|
- cell [ref=e2317]:
|
|
- code
|
|
- row "383 + $component = Livewire::actingAs($user)" [ref=e2318]:
|
|
- cell [ref=e2319]
|
|
- cell "383" [ref=e2320]: "383"
|
|
- cell [ref=e2321]
|
|
- cell "+" [ref=e2322]:
|
|
- generic [ref=e2323]: +
|
|
- cell "$component = Livewire::actingAs($user)" [ref=e2324]:
|
|
- code [ref=e2325]: $component = Livewire::actingAs($user)
|
|
- row "384 + ->test(BulkOperationProgress::class)" [ref=e2326]:
|
|
- cell [ref=e2327]
|
|
- cell "384" [ref=e2328]: "384"
|
|
- cell [ref=e2329]
|
|
- cell "+" [ref=e2330]:
|
|
- generic [ref=e2331]: +
|
|
- cell "->test(BulkOperationProgress::class)" [ref=e2332]:
|
|
- code [ref=e2333]: "->test(BulkOperationProgress::class)"
|
|
- row "385 + ->call('refreshRuns');" [ref=e2334]:
|
|
- cell [ref=e2335]
|
|
- cell "385" [ref=e2336]: "385"
|
|
- cell [ref=e2337]
|
|
- cell "+" [ref=e2338]:
|
|
- generic [ref=e2339]: +
|
|
- cell "->call('refreshRuns');" [ref=e2340]:
|
|
- code [ref=e2341]: "->call('refreshRuns');"
|
|
- row "386 +" [ref=e2342]:
|
|
- cell [ref=e2343]
|
|
- cell "386" [ref=e2344]: "386"
|
|
- cell [ref=e2345]
|
|
- cell "+" [ref=e2346]:
|
|
- generic [ref=e2347]: +
|
|
- cell [ref=e2348]:
|
|
- code
|
|
- row "387 + $html = html_entity_decode($component->html(), ENT_QUOTES | ENT_HTML5);" [ref=e2349]:
|
|
- cell [ref=e2350]
|
|
- cell "387" [ref=e2351]: "387"
|
|
- cell [ref=e2352]
|
|
- cell "+" [ref=e2353]:
|
|
- generic [ref=e2354]: +
|
|
- cell "$html = html_entity_decode($component->html(), ENT_QUOTES | ENT_HTML5);" [ref=e2355]:
|
|
- code [ref=e2356]: $html = html_entity_decode($component->html(), ENT_QUOTES | ENT_HTML5);
|
|
- row "388 + $pageText = preg_replace('/\\s+/', ' ', strip_tags($html));" [ref=e2357]:
|
|
- cell [ref=e2358]
|
|
- cell "388" [ref=e2359]: "388"
|
|
- cell [ref=e2360]
|
|
- cell "+" [ref=e2361]:
|
|
- generic [ref=e2362]: +
|
|
- cell "$pageText = preg_replace('/\\s+/', ' ', strip_tags($html));" [ref=e2363]:
|
|
- code [ref=e2364]: $pageText = preg_replace('/\s+/', ' ', strip_tags($html));
|
|
- row "389 +" [ref=e2365]:
|
|
- cell [ref=e2366]
|
|
- cell "389" [ref=e2367]: "389"
|
|
- cell [ref=e2368]
|
|
- cell "+" [ref=e2369]:
|
|
- generic [ref=e2370]: +
|
|
- cell [ref=e2371]:
|
|
- code
|
|
- row "390 + expect($html)->toContain('Likely stale')" [ref=e2372]:
|
|
- cell [ref=e2373]
|
|
- cell "390" [ref=e2374]: "390"
|
|
- cell [ref=e2375]
|
|
- cell "+" [ref=e2376]:
|
|
- generic [ref=e2377]: +
|
|
- cell "expect($html)->toContain('Likely stale')" [ref=e2378]:
|
|
- code [ref=e2379]: expect($html)->toContain('Likely stale')
|
|
- row "391 + ->and($pageText)->toContain('One or more active operations are past their lifecycle window and need review.')" [ref=e2380]:
|
|
- cell [ref=e2381]
|
|
- cell "391" [ref=e2382]: "391"
|
|
- cell [ref=e2383]
|
|
- cell "+" [ref=e2384]:
|
|
- generic [ref=e2385]: +
|
|
- cell "->and($pageText)->toContain('One or more active operations are past their lifecycle window and need review.')" [ref=e2386]:
|
|
- code [ref=e2387]: "->and($pageText)->toContain('One or more active operations are past their lifecycle window and need review.')"
|
|
- row "392 + ->and($pageText)->toContain('Past the lifecycle window. Review worker health and logs before retrying.')" [ref=e2388]:
|
|
- cell [ref=e2389]
|
|
- cell "392" [ref=e2390]: "392"
|
|
- cell [ref=e2391]
|
|
- cell "+" [ref=e2392]:
|
|
- generic [ref=e2393]: +
|
|
- cell "->and($pageText)->toContain('Past the lifecycle window. Review worker health and logs before retrying.')" [ref=e2394]:
|
|
- code [ref=e2395]: "->and($pageText)->toContain('Past the lifecycle window. Review worker health and logs before retrying.')"
|
|
- row "393 + ->and($pageText)->not->toContain('Waiting for worker.');" [ref=e2396]:
|
|
- cell [ref=e2397]
|
|
- cell "393" [ref=e2398]: "393"
|
|
- cell [ref=e2399]
|
|
- cell "+" [ref=e2400]:
|
|
- generic [ref=e2401]: +
|
|
- cell "->and($pageText)->not->toContain('Waiting for worker.');" [ref=e2402]:
|
|
- code [ref=e2403]: "->and($pageText)->not->toContain('Waiting for worker.');"
|
|
- 'row "394 + })->group(''ops-ux'');" [ref=e2404]':
|
|
- cell [ref=e2405]
|
|
- cell "394" [ref=e2406]: "394"
|
|
- cell [ref=e2407]
|
|
- cell "+" [ref=e2408]:
|
|
- generic [ref=e2409]: +
|
|
- 'cell "})->group(''ops-ux'');" [ref=e2410]':
|
|
- code [ref=e2411]: "})->group('ops-ux');"
|
|
- row "395 +" [ref=e2412]:
|
|
- cell [ref=e2413]
|
|
- cell "395" [ref=e2414]: "395"
|
|
- cell [ref=e2415]
|
|
- cell "+" [ref=e2416]:
|
|
- generic [ref=e2417]: +
|
|
- cell [ref=e2418]:
|
|
- code
|
|
- 'row "396 + it(''shows lifecycle attention for determinate stale-running shell cases without keeping the ordinary progress bar'', function (): void {" [ref=e2419]':
|
|
- cell [ref=e2420]
|
|
- cell "396" [ref=e2421]: "396"
|
|
- cell [ref=e2422]
|
|
- cell "+" [ref=e2423]:
|
|
- generic [ref=e2424]: +
|
|
- 'cell "it(''shows lifecycle attention for determinate stale-running shell cases without keeping the ordinary progress bar'', function (): void {" [ref=e2425]':
|
|
- code [ref=e2426]: "it('shows lifecycle attention for determinate stale-running shell cases without keeping the ordinary progress bar', function (): void {"
|
|
- 'row "397 + [$user, $tenant] = createUserWithTenant(role: ''owner'');" [ref=e2427]':
|
|
- cell [ref=e2428]
|
|
- cell "397" [ref=e2429]: "397"
|
|
- cell [ref=e2430]
|
|
- cell "+" [ref=e2431]:
|
|
- generic [ref=e2432]: +
|
|
- 'cell "[$user, $tenant] = createUserWithTenant(role: ''owner'');" [ref=e2433]':
|
|
- code [ref=e2434]: "[$user, $tenant] = createUserWithTenant(role: 'owner');"
|
|
- row "398 +" [ref=e2435]:
|
|
- cell [ref=e2436]
|
|
- cell "398" [ref=e2437]: "398"
|
|
- cell [ref=e2438]
|
|
- cell "+" [ref=e2439]:
|
|
- generic [ref=e2440]: +
|
|
- cell [ref=e2441]:
|
|
- code
|
|
- row "399 + $this->actingAs($user);" [ref=e2442]:
|
|
- cell [ref=e2443]
|
|
- cell "399" [ref=e2444]: "399"
|
|
- cell [ref=e2445]
|
|
- cell "+" [ref=e2446]:
|
|
- generic [ref=e2447]: +
|
|
- cell "$this->actingAs($user);" [ref=e2448]:
|
|
- code [ref=e2449]: $this->actingAs($user);
|
|
- row "400 + Filament::setTenant($tenant, true);" [ref=e2450]:
|
|
- cell [ref=e2451]
|
|
- cell "400" [ref=e2452]: "400"
|
|
- cell [ref=e2453]
|
|
- cell "+" [ref=e2454]:
|
|
- generic [ref=e2455]: +
|
|
- cell "Filament::setTenant($tenant, true);" [ref=e2456]:
|
|
- code [ref=e2457]: Filament::setTenant($tenant, true);
|
|
- row "401 +" [ref=e2458]:
|
|
- cell [ref=e2459]
|
|
- cell "401" [ref=e2460]: "401"
|
|
- cell [ref=e2461]
|
|
- cell "+" [ref=e2462]:
|
|
- generic [ref=e2463]: +
|
|
- cell [ref=e2464]:
|
|
- code
|
|
- row "402 + OperationRun::factory()->create([" [ref=e2465]:
|
|
- cell [ref=e2466]
|
|
- cell "402" [ref=e2467]: "402"
|
|
- cell [ref=e2468]
|
|
- cell "+" [ref=e2469]:
|
|
- generic [ref=e2470]: +
|
|
- cell "OperationRun::factory()->create([" [ref=e2471]:
|
|
- code [ref=e2472]: OperationRun::factory()->create([
|
|
- row "403 + 'managed_environment_id' => (int) $tenant->getKey()," [ref=e2473]:
|
|
- cell [ref=e2474]
|
|
- cell "403" [ref=e2475]: "403"
|
|
- cell [ref=e2476]
|
|
- cell "+" [ref=e2477]:
|
|
- generic [ref=e2478]: +
|
|
- cell "'managed_environment_id' => (int) $tenant->getKey()," [ref=e2479]:
|
|
- code [ref=e2480]: "'managed_environment_id' => (int) $tenant->getKey(),"
|
|
- row "404 + 'workspace_id' => (int) $tenant->workspace_id," [ref=e2481]:
|
|
- cell [ref=e2482]
|
|
- cell "404" [ref=e2483]: "404"
|
|
- cell [ref=e2484]
|
|
- cell "+" [ref=e2485]:
|
|
- generic [ref=e2486]: +
|
|
- cell "'workspace_id' => (int) $tenant->workspace_id," [ref=e2487]:
|
|
- code [ref=e2488]: "'workspace_id' => (int) $tenant->workspace_id,"
|
|
- row "405 + 'user_id' => (int) $user->getKey()," [ref=e2489]:
|
|
- cell [ref=e2490]
|
|
- cell "405" [ref=e2491]: "405"
|
|
- cell [ref=e2492]
|
|
- cell "+" [ref=e2493]:
|
|
- generic [ref=e2494]: +
|
|
- cell "'user_id' => (int) $user->getKey()," [ref=e2495]:
|
|
- code [ref=e2496]: "'user_id' => (int) $user->getKey(),"
|
|
- row "406 + 'type' => 'inventory_sync'," [ref=e2497]:
|
|
- cell [ref=e2498]
|
|
- cell "406" [ref=e2499]: "406"
|
|
- cell [ref=e2500]
|
|
- cell "+" [ref=e2501]:
|
|
- generic [ref=e2502]: +
|
|
- cell "'type' => 'inventory_sync'," [ref=e2503]:
|
|
- code [ref=e2504]: "'type' => 'inventory_sync',"
|
|
- row "407 + 'status' => 'running'," [ref=e2505]:
|
|
- cell [ref=e2506]
|
|
- cell "407" [ref=e2507]: "407"
|
|
- cell [ref=e2508]
|
|
- cell "+" [ref=e2509]:
|
|
- generic [ref=e2510]: +
|
|
- cell "'status' => 'running'," [ref=e2511]:
|
|
- code [ref=e2512]: "'status' => 'running',"
|
|
- row "408 + 'outcome' => 'pending'," [ref=e2513]:
|
|
- cell [ref=e2514]
|
|
- cell "408" [ref=e2515]: "408"
|
|
- cell [ref=e2516]
|
|
- cell "+" [ref=e2517]:
|
|
- generic [ref=e2518]: +
|
|
- cell "'outcome' => 'pending'," [ref=e2519]:
|
|
- code [ref=e2520]: "'outcome' => 'pending',"
|
|
- row "409 + 'summary_counts' => [" [ref=e2521]:
|
|
- cell [ref=e2522]
|
|
- cell "409" [ref=e2523]: "409"
|
|
- cell [ref=e2524]
|
|
- cell "+" [ref=e2525]:
|
|
- generic [ref=e2526]: +
|
|
- cell "'summary_counts' => [" [ref=e2527]:
|
|
- code [ref=e2528]: "'summary_counts' => ["
|
|
- row "410 + 'total' => 10," [ref=e2529]:
|
|
- cell [ref=e2530]
|
|
- cell "410" [ref=e2531]: "410"
|
|
- cell [ref=e2532]
|
|
- cell "+" [ref=e2533]:
|
|
- generic [ref=e2534]: +
|
|
- cell "'total' => 10," [ref=e2535]:
|
|
- code [ref=e2536]: "'total' => 10,"
|
|
- row "411 + 'processed' => 4," [ref=e2537]:
|
|
- cell [ref=e2538]
|
|
- cell "411" [ref=e2539]: "411"
|
|
- cell [ref=e2540]
|
|
- cell "+" [ref=e2541]:
|
|
- generic [ref=e2542]: +
|
|
- cell "'processed' => 4," [ref=e2543]:
|
|
- code [ref=e2544]: "'processed' => 4,"
|
|
- row "412 + ]," [ref=e2545]:
|
|
- cell [ref=e2546]
|
|
- cell "412" [ref=e2547]: "412"
|
|
- cell [ref=e2548]
|
|
- cell "+" [ref=e2549]:
|
|
- generic [ref=e2550]: +
|
|
- cell "]," [ref=e2551]:
|
|
- code [ref=e2552]: "],"
|
|
- row "413 + 'started_at' => now()->subWeeks(2)," [ref=e2553]:
|
|
- cell [ref=e2554]
|
|
- cell "413" [ref=e2555]: "413"
|
|
- cell [ref=e2556]
|
|
- cell "+" [ref=e2557]:
|
|
- generic [ref=e2558]: +
|
|
- cell "'started_at' => now()->subWeeks(2)," [ref=e2559]:
|
|
- code [ref=e2560]: "'started_at' => now()->subWeeks(2),"
|
|
- row "414 + 'created_at' => now()->subWeeks(2)," [ref=e2561]:
|
|
- cell [ref=e2562]
|
|
- cell "414" [ref=e2563]: "414"
|
|
- cell [ref=e2564]
|
|
- cell "+" [ref=e2565]:
|
|
- generic [ref=e2566]: +
|
|
- cell "'created_at' => now()->subWeeks(2)," [ref=e2567]:
|
|
- code [ref=e2568]: "'created_at' => now()->subWeeks(2),"
|
|
- row "415 + ]);" [ref=e2569]:
|
|
- cell [ref=e2570]
|
|
- cell "415" [ref=e2571]: "415"
|
|
- cell [ref=e2572]
|
|
- cell "+" [ref=e2573]:
|
|
- generic [ref=e2574]: +
|
|
- cell "]);" [ref=e2575]:
|
|
- code [ref=e2576]: "]);"
|
|
- row "416 +" [ref=e2577]:
|
|
- cell [ref=e2578]
|
|
- cell "416" [ref=e2579]: "416"
|
|
- cell [ref=e2580]
|
|
- cell "+" [ref=e2581]:
|
|
- generic [ref=e2582]: +
|
|
- cell [ref=e2583]:
|
|
- code
|
|
- row "417 + $component = Livewire::actingAs($user)" [ref=e2584]:
|
|
- cell [ref=e2585]
|
|
- cell "417" [ref=e2586]: "417"
|
|
- cell [ref=e2587]
|
|
- cell "+" [ref=e2588]:
|
|
- generic [ref=e2589]: +
|
|
- cell "$component = Livewire::actingAs($user)" [ref=e2590]:
|
|
- code [ref=e2591]: $component = Livewire::actingAs($user)
|
|
- row "418 + ->test(BulkOperationProgress::class)" [ref=e2592]:
|
|
- cell [ref=e2593]
|
|
- cell "418" [ref=e2594]: "418"
|
|
- cell [ref=e2595]
|
|
- cell "+" [ref=e2596]:
|
|
- generic [ref=e2597]: +
|
|
- cell "->test(BulkOperationProgress::class)" [ref=e2598]:
|
|
- code [ref=e2599]: "->test(BulkOperationProgress::class)"
|
|
- row "419 + ->call('refreshRuns');" [ref=e2600]:
|
|
- cell [ref=e2601]
|
|
- cell "419" [ref=e2602]: "419"
|
|
- cell [ref=e2603]
|
|
- cell "+" [ref=e2604]:
|
|
- generic [ref=e2605]: +
|
|
- cell "->call('refreshRuns');" [ref=e2606]:
|
|
- code [ref=e2607]: "->call('refreshRuns');"
|
|
- row "420 +" [ref=e2608]:
|
|
- cell [ref=e2609]
|
|
- cell "420" [ref=e2610]: "420"
|
|
- cell [ref=e2611]
|
|
- cell "+" [ref=e2612]:
|
|
- generic [ref=e2613]: +
|
|
- cell [ref=e2614]:
|
|
- code
|
|
- row "421 + $html = html_entity_decode($component->html(), ENT_QUOTES | ENT_HTML5);" [ref=e2615]:
|
|
- cell [ref=e2616]
|
|
- cell "421" [ref=e2617]: "421"
|
|
- cell [ref=e2618]
|
|
- cell "+" [ref=e2619]:
|
|
- generic [ref=e2620]: +
|
|
- cell "$html = html_entity_decode($component->html(), ENT_QUOTES | ENT_HTML5);" [ref=e2621]:
|
|
- code [ref=e2622]: $html = html_entity_decode($component->html(), ENT_QUOTES | ENT_HTML5);
|
|
- row "422 + $pageText = preg_replace('/\\s+/', ' ', strip_tags($html));" [ref=e2623]:
|
|
- cell [ref=e2624]
|
|
- cell "422" [ref=e2625]: "422"
|
|
- cell [ref=e2626]
|
|
- cell "+" [ref=e2627]:
|
|
- generic [ref=e2628]: +
|
|
- cell "$pageText = preg_replace('/\\s+/', ' ', strip_tags($html));" [ref=e2629]:
|
|
- code [ref=e2630]: $pageText = preg_replace('/\s+/', ' ', strip_tags($html));
|
|
- row "423 +" [ref=e2631]:
|
|
- cell [ref=e2632]
|
|
- cell "423" [ref=e2633]: "423"
|
|
- cell [ref=e2634]
|
|
- cell "+" [ref=e2635]:
|
|
- generic [ref=e2636]: +
|
|
- cell [ref=e2637]:
|
|
- code
|
|
- row "424 + expect($html)->toContain('Likely stale')" [ref=e2638]:
|
|
- cell [ref=e2639]
|
|
- cell "424" [ref=e2640]: "424"
|
|
- cell [ref=e2641]
|
|
- cell "+" [ref=e2642]:
|
|
- generic [ref=e2643]: +
|
|
- cell "expect($html)->toContain('Likely stale')" [ref=e2644]:
|
|
- code [ref=e2645]: expect($html)->toContain('Likely stale')
|
|
- row "425 + ->and($html)->toContain('data-testid=\"ops-ux-activity-feedback-indeterminate\"')" [ref=e2646]:
|
|
- cell [ref=e2647]
|
|
- cell "425" [ref=e2648]: "425"
|
|
- cell [ref=e2649]
|
|
- cell "+" [ref=e2650]:
|
|
- generic [ref=e2651]: +
|
|
- cell "->and($html)->toContain('data-testid=\"ops-ux-activity-feedback-indeterminate\"')" [ref=e2652]:
|
|
- code [ref=e2653]: "->and($html)->toContain('data-testid=\"ops-ux-activity-feedback-indeterminate\"')"
|
|
- row "426 + ->and($pageText)->toContain('Past the lifecycle window. Review worker health and logs before retrying.')" [ref=e2654]:
|
|
- cell [ref=e2655]
|
|
- cell "426" [ref=e2656]: "426"
|
|
- cell [ref=e2657]
|
|
- cell "+" [ref=e2658]:
|
|
- generic [ref=e2659]: +
|
|
- cell "->and($pageText)->toContain('Past the lifecycle window. Review worker health and logs before retrying.')" [ref=e2660]:
|
|
- code [ref=e2661]: "->and($pageText)->toContain('Past the lifecycle window. Review worker health and logs before retrying.')"
|
|
- row "427 + ->and($pageText)->not->toContain('4 / 10 processed (40%)')" [ref=e2662]:
|
|
- cell [ref=e2663]
|
|
- cell "427" [ref=e2664]: "427"
|
|
- cell [ref=e2665]
|
|
- cell "+" [ref=e2666]:
|
|
- generic [ref=e2667]: +
|
|
- cell "->and($pageText)->not->toContain('4 / 10 processed (40%)')" [ref=e2668]:
|
|
- code [ref=e2669]: "->and($pageText)->not->toContain('4 / 10 processed (40%)')"
|
|
- row "428 + ->and($html)->not->toContain('aria-valuenow=\"40\"');" [ref=e2670]:
|
|
- cell [ref=e2671]
|
|
- cell "428" [ref=e2672]: "428"
|
|
- cell [ref=e2673]
|
|
- cell "+" [ref=e2674]:
|
|
- generic [ref=e2675]: +
|
|
- cell "->and($html)->not->toContain('aria-valuenow=\"40\"');" [ref=e2676]:
|
|
- code [ref=e2677]: "->and($html)->not->toContain('aria-valuenow=\"40\"');"
|
|
- 'row "429 + })->group(''ops-ux'');" [ref=e2678]':
|
|
- cell [ref=e2679]
|
|
- cell "429" [ref=e2680]: "429"
|
|
- cell [ref=e2681]
|
|
- cell "+" [ref=e2682]:
|
|
- generic [ref=e2683]: +
|
|
- 'cell "})->group(''ops-ux'');" [ref=e2684]':
|
|
- code [ref=e2685]: "})->group('ops-ux');"
|
|
- row "430 +" [ref=e2686]:
|
|
- cell [ref=e2687]
|
|
- cell "430" [ref=e2688]: "430"
|
|
- cell [ref=e2689]
|
|
- cell "+" [ref=e2690]:
|
|
- generic [ref=e2691]: +
|
|
- cell [ref=e2692]:
|
|
- code
|
|
- 'row "367 431 it(''renders phased fallback progress without inventing a counted percentage'', function (): void {" [ref=e2693]':
|
|
- cell "367" [ref=e2694]: "367"
|
|
- cell "431" [ref=e2695]: "431"
|
|
- cell [ref=e2696]
|
|
- cell [ref=e2697]
|
|
- 'cell "it(''renders phased fallback progress without inventing a counted percentage'', function (): void {" [ref=e2698]':
|
|
- code [ref=e2699]: "it('renders phased fallback progress without inventing a counted percentage', function (): void {"
|
|
- 'row "368 432 [$user, $tenant] = createUserWithTenant(role: ''owner'');" [ref=e2700]':
|
|
- cell "368" [ref=e2701]: "368"
|
|
- cell "432" [ref=e2702]: "432"
|
|
- cell [ref=e2703]
|
|
- cell [ref=e2704]
|
|
- 'cell "[$user, $tenant] = createUserWithTenant(role: ''owner'');" [ref=e2705]':
|
|
- code [ref=e2706]: "[$user, $tenant] = createUserWithTenant(role: 'owner');"
|
|
- row "369 433" [ref=e2707]:
|
|
- cell "369" [ref=e2708]: "369"
|
|
- cell "433" [ref=e2709]: "433"
|
|
- cell [ref=e2710]
|
|
- cell [ref=e2711]
|
|
- cell [ref=e2712]:
|
|
- code
|
|
- row [ref=e2713]:
|
|
- cell [ref=e2714]:
|
|
- button [ref=e2716] [cursor=pointer]:
|
|
- img [ref=e2717]
|
|
- cell [ref=e2719]
|
|
- cell [ref=e2720]
|
|
- cell [ref=e2721]:
|
|
- code
|
|
- generic [ref=e2722]:
|
|
- 'heading "33 33 Änderungen: 32 Ergänzungen und 1 Löschungen apps/platform/tests/Feature/OpsUx/BulkOperationProgressDbOnlyTest.php Datei anzeigen" [level=4] [ref=e2723]':
|
|
- generic [ref=e2724]:
|
|
- button [ref=e2725] [cursor=pointer]:
|
|
- img [ref=e2726]
|
|
- generic [ref=e2728]:
|
|
- text: "33"
|
|
- 'generic "33 Änderungen: 32 Ergänzungen und 1 Löschungen" [ref=e2729]'
|
|
- generic [ref=e2731]:
|
|
- link "apps/platform/tests/Feature/OpsUx/BulkOperationProgressDbOnlyTest.php" [ref=e2732] [cursor=pointer]:
|
|
- /url: "#diff-789b73397dfb1556cb3d9fbc68eec2c64714ebae"
|
|
- button [ref=e2733] [cursor=pointer]:
|
|
- img [ref=e2734]
|
|
- link "Datei anzeigen" [ref=e2738] [cursor=pointer]:
|
|
- /url: /ahmido/TenantAtlas/src/commit/03514b9e5b2addf53d5441f0fc122ccef0b51999/apps/platform/tests/Feature/OpsUx/BulkOperationProgressDbOnlyTest.php
|
|
- table [ref=e2741]:
|
|
- rowgroup [ref=e2748]:
|
|
- row "@ -215,9 +215,40 @@" [ref=e2749]:
|
|
- cell [ref=e2750]:
|
|
- button [ref=e2752] [cursor=pointer]:
|
|
- img [ref=e2753]
|
|
- cell [ref=e2755]
|
|
- cell [ref=e2756]
|
|
- cell "@ -215,9 +215,40 @@" [ref=e2757]:
|
|
- code [ref=e2758]: "@ -215,9 +215,40 @@"
|
|
- row "215 215 ->test(BulkOperationProgress::class)" [ref=e2759]:
|
|
- cell "215" [ref=e2760]: "215"
|
|
- cell "215" [ref=e2761]: "215"
|
|
- cell [ref=e2762]
|
|
- cell [ref=e2763]
|
|
- cell "->test(BulkOperationProgress::class)" [ref=e2764]:
|
|
- code [ref=e2765]: "->test(BulkOperationProgress::class)"
|
|
- row "216 216 ->call('refreshRuns')" [ref=e2766]:
|
|
- cell "216" [ref=e2767]: "216"
|
|
- cell "216" [ref=e2768]: "216"
|
|
- cell [ref=e2769]
|
|
- cell [ref=e2770]
|
|
- cell "->call('refreshRuns')" [ref=e2771]:
|
|
- code [ref=e2772]: "->call('refreshRuns')"
|
|
- row "217 217 ->assertSet('hasActiveRuns', true)" [ref=e2773]:
|
|
- cell "217" [ref=e2774]: "217"
|
|
- cell "217" [ref=e2775]: "217"
|
|
- cell [ref=e2776]
|
|
- cell [ref=e2777]
|
|
- cell "->assertSet('hasActiveRuns', true)" [ref=e2778]:
|
|
- code [ref=e2779]: "->assertSet('hasActiveRuns', true)"
|
|
- row "218 + ->assertSee('One or more active operations are past their lifecycle window and need review.')" [ref=e2780]:
|
|
- cell [ref=e2781]
|
|
- cell "218" [ref=e2782]: "218"
|
|
- cell [ref=e2783]
|
|
- cell "+" [ref=e2784]:
|
|
- generic [ref=e2785]: +
|
|
- cell "->assertSee('One or more active operations are past their lifecycle window and need review.')" [ref=e2786]:
|
|
- code [ref=e2787]: "->assertSee('One or more active operations are past their lifecycle window and need review.')"
|
|
- row "218 219 ->assertSee('Inventory sync')" [ref=e2788]:
|
|
- cell "218" [ref=e2789]: "218"
|
|
- cell "219" [ref=e2790]: "219"
|
|
- cell [ref=e2791]
|
|
- cell [ref=e2792]
|
|
- cell "->assertSee('Inventory sync')" [ref=e2793]:
|
|
- code [ref=e2794]: "->assertSee('Inventory sync')"
|
|
- row "219 220 ->assertSee('Likely stale')" [ref=e2795]:
|
|
- cell "219" [ref=e2796]: "219"
|
|
- cell "220" [ref=e2797]: "220"
|
|
- cell [ref=e2798]
|
|
- cell [ref=e2799]
|
|
- cell "->assertSee('Likely stale')" [ref=e2800]:
|
|
- code [ref=e2801]: "->assertSee('Likely stale')"
|
|
- row "220 - ->assertSee('Waiting for worker.');" [ref=e2802]:
|
|
- cell "220" [ref=e2803]: "220"
|
|
- cell [ref=e2804]
|
|
- cell [ref=e2805]
|
|
- cell "-" [ref=e2806]:
|
|
- generic [ref=e2807]: "-"
|
|
- cell "->assertSee('Waiting for worker.');" [ref=e2808]:
|
|
- code [ref=e2809]: "->assertSee('Waiting for worker.');"
|
|
- row "221 + ->assertSee('Past the lifecycle window. Review worker health and logs before retrying.')" [ref=e2810]:
|
|
- cell [ref=e2811]
|
|
- cell "221" [ref=e2812]: "221"
|
|
- cell [ref=e2813]
|
|
- cell "+" [ref=e2814]:
|
|
- generic [ref=e2815]: +
|
|
- cell "->assertSee('Past the lifecycle window. Review worker health and logs before retrying.')" [ref=e2816]:
|
|
- code [ref=e2817]: "->assertSee('Past the lifecycle window. Review worker health and logs before retrying.')"
|
|
- row "222 + ->assertDontSee('Waiting for worker.');" [ref=e2818]:
|
|
- cell [ref=e2819]
|
|
- cell "222" [ref=e2820]: "222"
|
|
- cell [ref=e2821]
|
|
- cell "+" [ref=e2822]:
|
|
- generic [ref=e2823]: +
|
|
- cell "->assertDontSee('Waiting for worker.');" [ref=e2824]:
|
|
- code [ref=e2825]: "->assertDontSee('Waiting for worker.');"
|
|
- 'row "223 + })->group(''ops-ux'');" [ref=e2826]':
|
|
- cell [ref=e2827]
|
|
- cell "223" [ref=e2828]: "223"
|
|
- cell [ref=e2829]
|
|
- cell "+" [ref=e2830]:
|
|
- generic [ref=e2831]: +
|
|
- 'cell "})->group(''ops-ux'');" [ref=e2832]':
|
|
- code [ref=e2833]: "})->group('ops-ux');"
|
|
- row "224 +" [ref=e2834]:
|
|
- cell [ref=e2835]
|
|
- cell "224" [ref=e2836]: "224"
|
|
- cell [ref=e2837]
|
|
- cell "+" [ref=e2838]:
|
|
- generic [ref=e2839]: +
|
|
- cell [ref=e2840]:
|
|
- code
|
|
- 'row "225 + it(''subordinates determinate stale-running shell progress to lifecycle guidance'', function () {" [ref=e2841]':
|
|
- cell [ref=e2842]
|
|
- cell "225" [ref=e2843]: "225"
|
|
- cell [ref=e2844]
|
|
- cell "+" [ref=e2845]:
|
|
- generic [ref=e2846]: +
|
|
- 'cell "it(''subordinates determinate stale-running shell progress to lifecycle guidance'', function () {" [ref=e2847]':
|
|
- code [ref=e2848]: "it('subordinates determinate stale-running shell progress to lifecycle guidance', function () {"
|
|
- 'row "226 + [$user, $tenant] = createUserWithTenant(role: ''owner'');" [ref=e2849]':
|
|
- cell [ref=e2850]
|
|
- cell "226" [ref=e2851]: "226"
|
|
- cell [ref=e2852]
|
|
- cell "+" [ref=e2853]:
|
|
- generic [ref=e2854]: +
|
|
- 'cell "[$user, $tenant] = createUserWithTenant(role: ''owner'');" [ref=e2855]':
|
|
- code [ref=e2856]: "[$user, $tenant] = createUserWithTenant(role: 'owner');"
|
|
- row "227 + $this->actingAs($user);" [ref=e2857]:
|
|
- cell [ref=e2858]
|
|
- cell "227" [ref=e2859]: "227"
|
|
- cell [ref=e2860]
|
|
- cell "+" [ref=e2861]:
|
|
- generic [ref=e2862]: +
|
|
- cell "$this->actingAs($user);" [ref=e2863]:
|
|
- code [ref=e2864]: $this->actingAs($user);
|
|
- row "228 + Filament::setTenant($tenant, true);" [ref=e2865]:
|
|
- cell [ref=e2866]
|
|
- cell "228" [ref=e2867]: "228"
|
|
- cell [ref=e2868]
|
|
- cell "+" [ref=e2869]:
|
|
- generic [ref=e2870]: +
|
|
- cell "Filament::setTenant($tenant, true);" [ref=e2871]:
|
|
- code [ref=e2872]: Filament::setTenant($tenant, true);
|
|
- row "229 +" [ref=e2873]:
|
|
- cell [ref=e2874]
|
|
- cell "229" [ref=e2875]: "229"
|
|
- cell [ref=e2876]
|
|
- cell "+" [ref=e2877]:
|
|
- generic [ref=e2878]: +
|
|
- cell [ref=e2879]:
|
|
- code
|
|
- row "230 + OperationRun::factory()->create([" [ref=e2880]:
|
|
- cell [ref=e2881]
|
|
- cell "230" [ref=e2882]: "230"
|
|
- cell [ref=e2883]
|
|
- cell "+" [ref=e2884]:
|
|
- generic [ref=e2885]: +
|
|
- cell "OperationRun::factory()->create([" [ref=e2886]:
|
|
- code [ref=e2887]: OperationRun::factory()->create([
|
|
- row "231 + 'managed_environment_id' => (int) $tenant->getKey()," [ref=e2888]:
|
|
- cell [ref=e2889]
|
|
- cell "231" [ref=e2890]: "231"
|
|
- cell [ref=e2891]
|
|
- cell "+" [ref=e2892]:
|
|
- generic [ref=e2893]: +
|
|
- cell "'managed_environment_id' => (int) $tenant->getKey()," [ref=e2894]:
|
|
- code [ref=e2895]: "'managed_environment_id' => (int) $tenant->getKey(),"
|
|
- row "232 + 'workspace_id' => (int) $tenant->workspace_id," [ref=e2896]:
|
|
- cell [ref=e2897]
|
|
- cell "232" [ref=e2898]: "232"
|
|
- cell [ref=e2899]
|
|
- cell "+" [ref=e2900]:
|
|
- generic [ref=e2901]: +
|
|
- cell "'workspace_id' => (int) $tenant->workspace_id," [ref=e2902]:
|
|
- code [ref=e2903]: "'workspace_id' => (int) $tenant->workspace_id,"
|
|
- row "233 + 'type' => 'inventory_sync'," [ref=e2904]:
|
|
- cell [ref=e2905]
|
|
- cell "233" [ref=e2906]: "233"
|
|
- cell [ref=e2907]
|
|
- cell "+" [ref=e2908]:
|
|
- generic [ref=e2909]: +
|
|
- cell "'type' => 'inventory_sync'," [ref=e2910]:
|
|
- code [ref=e2911]: "'type' => 'inventory_sync',"
|
|
- row "234 + 'status' => 'running'," [ref=e2912]:
|
|
- cell [ref=e2913]
|
|
- cell "234" [ref=e2914]: "234"
|
|
- cell [ref=e2915]
|
|
- cell "+" [ref=e2916]:
|
|
- generic [ref=e2917]: +
|
|
- cell "'status' => 'running'," [ref=e2918]:
|
|
- code [ref=e2919]: "'status' => 'running',"
|
|
- row "235 + 'outcome' => 'pending'," [ref=e2920]:
|
|
- cell [ref=e2921]
|
|
- cell "235" [ref=e2922]: "235"
|
|
- cell [ref=e2923]
|
|
- cell "+" [ref=e2924]:
|
|
- generic [ref=e2925]: +
|
|
- cell "'outcome' => 'pending'," [ref=e2926]:
|
|
- code [ref=e2927]: "'outcome' => 'pending',"
|
|
- row "236 + 'summary_counts' => [" [ref=e2928]:
|
|
- cell [ref=e2929]
|
|
- cell "236" [ref=e2930]: "236"
|
|
- cell [ref=e2931]
|
|
- cell "+" [ref=e2932]:
|
|
- generic [ref=e2933]: +
|
|
- cell "'summary_counts' => [" [ref=e2934]:
|
|
- code [ref=e2935]: "'summary_counts' => ["
|
|
- row "237 + 'total' => 10," [ref=e2936]:
|
|
- cell [ref=e2937]
|
|
- cell "237" [ref=e2938]: "237"
|
|
- cell [ref=e2939]
|
|
- cell "+" [ref=e2940]:
|
|
- generic [ref=e2941]: +
|
|
- cell "'total' => 10," [ref=e2942]:
|
|
- code [ref=e2943]: "'total' => 10,"
|
|
- row "238 + 'processed' => 4," [ref=e2944]:
|
|
- cell [ref=e2945]
|
|
- cell "238" [ref=e2946]: "238"
|
|
- cell [ref=e2947]
|
|
- cell "+" [ref=e2948]:
|
|
- generic [ref=e2949]: +
|
|
- cell "'processed' => 4," [ref=e2950]:
|
|
- code [ref=e2951]: "'processed' => 4,"
|
|
- row "239 + ]," [ref=e2952]:
|
|
- cell [ref=e2953]
|
|
- cell "239" [ref=e2954]: "239"
|
|
- cell [ref=e2955]
|
|
- cell "+" [ref=e2956]:
|
|
- generic [ref=e2957]: +
|
|
- cell "]," [ref=e2958]:
|
|
- code [ref=e2959]: "],"
|
|
- row "240 + 'started_at' => now()->subWeeks(2)," [ref=e2960]:
|
|
- cell [ref=e2961]
|
|
- cell "240" [ref=e2962]: "240"
|
|
- cell [ref=e2963]
|
|
- cell "+" [ref=e2964]:
|
|
- generic [ref=e2965]: +
|
|
- cell "'started_at' => now()->subWeeks(2)," [ref=e2966]:
|
|
- code [ref=e2967]: "'started_at' => now()->subWeeks(2),"
|
|
- row "241 + 'created_at' => now()->subWeeks(2)," [ref=e2968]:
|
|
- cell [ref=e2969]
|
|
- cell "241" [ref=e2970]: "241"
|
|
- cell [ref=e2971]
|
|
- cell "+" [ref=e2972]:
|
|
- generic [ref=e2973]: +
|
|
- cell "'created_at' => now()->subWeeks(2)," [ref=e2974]:
|
|
- code [ref=e2975]: "'created_at' => now()->subWeeks(2),"
|
|
- row "242 + ]);" [ref=e2976]:
|
|
- cell [ref=e2977]
|
|
- cell "242" [ref=e2978]: "242"
|
|
- cell [ref=e2979]
|
|
- cell "+" [ref=e2980]:
|
|
- generic [ref=e2981]: +
|
|
- cell "]);" [ref=e2982]:
|
|
- code [ref=e2983]: "]);"
|
|
- row "243 +" [ref=e2984]:
|
|
- cell [ref=e2985]
|
|
- cell "243" [ref=e2986]: "243"
|
|
- cell [ref=e2987]
|
|
- cell "+" [ref=e2988]:
|
|
- generic [ref=e2989]: +
|
|
- cell [ref=e2990]:
|
|
- code
|
|
- row "244 + Livewire::actingAs($user)" [ref=e2991]:
|
|
- cell [ref=e2992]
|
|
- cell "244" [ref=e2993]: "244"
|
|
- cell [ref=e2994]
|
|
- cell "+" [ref=e2995]:
|
|
- generic [ref=e2996]: +
|
|
- cell "Livewire::actingAs($user)" [ref=e2997]:
|
|
- code [ref=e2998]: Livewire::actingAs($user)
|
|
- row "245 + ->test(BulkOperationProgress::class)" [ref=e2999]:
|
|
- cell [ref=e3000]
|
|
- cell "245" [ref=e3001]: "245"
|
|
- cell [ref=e3002]
|
|
- cell "+" [ref=e3003]:
|
|
- generic [ref=e3004]: +
|
|
- cell "->test(BulkOperationProgress::class)" [ref=e3005]:
|
|
- code [ref=e3006]: "->test(BulkOperationProgress::class)"
|
|
- row "246 + ->call('refreshRuns')" [ref=e3007]:
|
|
- cell [ref=e3008]
|
|
- cell "246" [ref=e3009]: "246"
|
|
- cell [ref=e3010]
|
|
- cell "+" [ref=e3011]:
|
|
- generic [ref=e3012]: +
|
|
- cell "->call('refreshRuns')" [ref=e3013]:
|
|
- code [ref=e3014]: "->call('refreshRuns')"
|
|
- row "247 + ->assertSet('hasActiveRuns', true)" [ref=e3015]:
|
|
- cell [ref=e3016]
|
|
- cell "247" [ref=e3017]: "247"
|
|
- cell [ref=e3018]
|
|
- cell "+" [ref=e3019]:
|
|
- generic [ref=e3020]: +
|
|
- cell "->assertSet('hasActiveRuns', true)" [ref=e3021]:
|
|
- code [ref=e3022]: "->assertSet('hasActiveRuns', true)"
|
|
- row "248 + ->assertSee('Likely stale')" [ref=e3023]:
|
|
- cell [ref=e3024]
|
|
- cell "248" [ref=e3025]: "248"
|
|
- cell [ref=e3026]
|
|
- cell "+" [ref=e3027]:
|
|
- generic [ref=e3028]: +
|
|
- cell "->assertSee('Likely stale')" [ref=e3029]:
|
|
- code [ref=e3030]: "->assertSee('Likely stale')"
|
|
- row "249 + ->assertSee('Past the lifecycle window. Review worker health and logs before retrying.')" [ref=e3031]:
|
|
- cell [ref=e3032]
|
|
- cell "249" [ref=e3033]: "249"
|
|
- cell [ref=e3034]
|
|
- cell "+" [ref=e3035]:
|
|
- generic [ref=e3036]: +
|
|
- cell "->assertSee('Past the lifecycle window. Review worker health and logs before retrying.')" [ref=e3037]:
|
|
- code [ref=e3038]: "->assertSee('Past the lifecycle window. Review worker health and logs before retrying.')"
|
|
- row "250 + ->assertDontSee('4 / 10 processed (40%)')" [ref=e3039]:
|
|
- cell [ref=e3040]
|
|
- cell "250" [ref=e3041]: "250"
|
|
- cell [ref=e3042]
|
|
- cell "+" [ref=e3043]:
|
|
- generic [ref=e3044]: +
|
|
- cell "->assertDontSee('4 / 10 processed (40%)')" [ref=e3045]:
|
|
- code [ref=e3046]: "->assertDontSee('4 / 10 processed (40%)')"
|
|
- row "251 + ->assertDontSeeHtml('aria-valuenow=\"40\"');" [ref=e3047]:
|
|
- cell [ref=e3048]
|
|
- cell "251" [ref=e3049]: "251"
|
|
- cell [ref=e3050]
|
|
- cell "+" [ref=e3051]:
|
|
- generic [ref=e3052]: +
|
|
- cell "->assertDontSeeHtml('aria-valuenow=\"40\"');" [ref=e3053]:
|
|
- code [ref=e3054]: "->assertDontSeeHtml('aria-valuenow=\"40\"');"
|
|
- 'row "221 252 })->group(''ops-ux'');" [ref=e3055]':
|
|
- cell "221" [ref=e3056]: "221"
|
|
- cell "252" [ref=e3057]: "252"
|
|
- cell [ref=e3058]
|
|
- cell [ref=e3059]
|
|
- 'cell "})->group(''ops-ux'');" [ref=e3060]':
|
|
- code [ref=e3061]: "})->group('ops-ux');"
|
|
- row "222 253" [ref=e3062]:
|
|
- cell "222" [ref=e3063]: "222"
|
|
- cell "253" [ref=e3064]: "253"
|
|
- cell [ref=e3065]
|
|
- cell [ref=e3066]
|
|
- cell [ref=e3067]:
|
|
- code
|
|
- 'row "223 254 it(''clamps counted progress at the shell host when processed exceeds total'', function () {" [ref=e3068]':
|
|
- cell "223" [ref=e3069]: "223"
|
|
- cell "254" [ref=e3070]: "254"
|
|
- cell [ref=e3071]
|
|
- cell [ref=e3072]
|
|
- 'cell "it(''clamps counted progress at the shell host when processed exceeds total'', function () {" [ref=e3073]':
|
|
- code [ref=e3074]: "it('clamps counted progress at the shell host when processed exceeds total', function () {"
|
|
- row [ref=e3075]:
|
|
- cell [ref=e3076]:
|
|
- button [ref=e3078] [cursor=pointer]:
|
|
- img [ref=e3079]
|
|
- cell [ref=e3081]
|
|
- cell [ref=e3082]
|
|
- cell [ref=e3083]:
|
|
- code
|
|
- generic [ref=e3084]:
|
|
- 'heading "103 103 Änderungen: 103 Ergänzungen und 0 Löschungen apps/platform/tests/Unit/Support/OpsUx/OperationRunProgressContractTest.php Datei anzeigen" [level=4] [ref=e3085]':
|
|
- generic [ref=e3086]:
|
|
- button [ref=e3087] [cursor=pointer]:
|
|
- img [ref=e3088]
|
|
- generic [ref=e3090]:
|
|
- text: "103"
|
|
- 'generic "103 Änderungen: 103 Ergänzungen und 0 Löschungen" [ref=e3091]'
|
|
- generic [ref=e3093]:
|
|
- link "apps/platform/tests/Unit/Support/OpsUx/OperationRunProgressContractTest.php" [ref=e3094] [cursor=pointer]:
|
|
- /url: "#diff-cdbc9a8da2048b55b64e7019bff171a648154715"
|
|
- button [ref=e3095] [cursor=pointer]:
|
|
- img [ref=e3096]
|
|
- link "Datei anzeigen" [ref=e3100] [cursor=pointer]:
|
|
- /url: /ahmido/TenantAtlas/src/commit/03514b9e5b2addf53d5441f0fc122ccef0b51999/apps/platform/tests/Unit/Support/OpsUx/OperationRunProgressContractTest.php
|
|
- table [ref=e3103]:
|
|
- rowgroup [ref=e3110]:
|
|
- row "@ -67,6 +67,22 @@" [ref=e3111]:
|
|
- cell [ref=e3112]:
|
|
- button [ref=e3114] [cursor=pointer]:
|
|
- img [ref=e3115]
|
|
- cell [ref=e3117]
|
|
- cell [ref=e3118]
|
|
- cell "@ -67,6 +67,22 @@" [ref=e3119]:
|
|
- code [ref=e3120]: "@ -67,6 +67,22 @@"
|
|
- row "67 67 ->and($progress['percent'])->toBeNull();" [ref=e3121]:
|
|
- cell "67" [ref=e3122]: "67"
|
|
- cell "67" [ref=e3123]: "67"
|
|
- cell [ref=e3124]
|
|
- cell [ref=e3125]
|
|
- cell "->and($progress['percent'])->toBeNull();" [ref=e3126]:
|
|
- code [ref=e3127]: "->and($progress['percent'])->toBeNull();"
|
|
- 'row "68 68 });" [ref=e3128]':
|
|
- cell "68" [ref=e3129]: "68"
|
|
- cell "68" [ref=e3130]: "68"
|
|
- cell [ref=e3131]
|
|
- cell [ref=e3132]
|
|
- 'cell "});" [ref=e3133]':
|
|
- code [ref=e3134]: "});"
|
|
- row "69 69" [ref=e3135]:
|
|
- cell "69" [ref=e3136]: "69"
|
|
- cell "69" [ref=e3137]: "69"
|
|
- cell [ref=e3138]
|
|
- cell [ref=e3139]
|
|
- cell [ref=e3140]:
|
|
- code
|
|
- 'row "70 + it(''replaces queued waiting copy with stale lifecycle guidance once the lifecycle window is exceeded'', function (): void {" [ref=e3141]':
|
|
- cell [ref=e3142]
|
|
- cell "70" [ref=e3143]: "70"
|
|
- cell [ref=e3144]
|
|
- cell "+" [ref=e3145]:
|
|
- generic [ref=e3146]: +
|
|
- 'cell "it(''replaces queued waiting copy with stale lifecycle guidance once the lifecycle window is exceeded'', function (): void {" [ref=e3147]':
|
|
- code [ref=e3148]: "it('replaces queued waiting copy with stale lifecycle guidance once the lifecycle window is exceeded', function (): void {"
|
|
- row "71 + $run = OperationRun::factory()->create([" [ref=e3149]:
|
|
- cell [ref=e3150]
|
|
- cell "71" [ref=e3151]: "71"
|
|
- cell [ref=e3152]
|
|
- cell "+" [ref=e3153]:
|
|
- generic [ref=e3154]: +
|
|
- cell "$run = OperationRun::factory()->create([" [ref=e3155]:
|
|
- code [ref=e3156]: $run = OperationRun::factory()->create([
|
|
- row "72 + 'type' => 'inventory_sync'," [ref=e3157]:
|
|
- cell [ref=e3158]
|
|
- cell "72" [ref=e3159]: "72"
|
|
- cell [ref=e3160]
|
|
- cell "+" [ref=e3161]:
|
|
- generic [ref=e3162]: +
|
|
- cell "'type' => 'inventory_sync'," [ref=e3163]:
|
|
- code [ref=e3164]: "'type' => 'inventory_sync',"
|
|
- row "73 + 'status' => 'queued'," [ref=e3165]:
|
|
- cell [ref=e3166]
|
|
- cell "73" [ref=e3167]: "73"
|
|
- cell [ref=e3168]
|
|
- cell "+" [ref=e3169]:
|
|
- generic [ref=e3170]: +
|
|
- cell "'status' => 'queued'," [ref=e3171]:
|
|
- code [ref=e3172]: "'status' => 'queued',"
|
|
- row "74 + 'outcome' => 'pending'," [ref=e3173]:
|
|
- cell [ref=e3174]
|
|
- cell "74" [ref=e3175]: "74"
|
|
- cell [ref=e3176]
|
|
- cell "+" [ref=e3177]:
|
|
- generic [ref=e3178]: +
|
|
- cell "'outcome' => 'pending'," [ref=e3179]:
|
|
- code [ref=e3180]: "'outcome' => 'pending',"
|
|
- row "75 + 'created_at' => now()->subWeeks(2)," [ref=e3181]:
|
|
- cell [ref=e3182]
|
|
- cell "75" [ref=e3183]: "75"
|
|
- cell [ref=e3184]
|
|
- cell "+" [ref=e3185]:
|
|
- generic [ref=e3186]: +
|
|
- cell "'created_at' => now()->subWeeks(2)," [ref=e3187]:
|
|
- code [ref=e3188]: "'created_at' => now()->subWeeks(2),"
|
|
- row "76 + ]);" [ref=e3189]:
|
|
- cell [ref=e3190]
|
|
- cell "76" [ref=e3191]: "76"
|
|
- cell [ref=e3192]
|
|
- cell "+" [ref=e3193]:
|
|
- generic [ref=e3194]: +
|
|
- cell "]);" [ref=e3195]:
|
|
- code [ref=e3196]: "]);"
|
|
- row "77 +" [ref=e3197]:
|
|
- cell [ref=e3198]
|
|
- cell "77" [ref=e3199]: "77"
|
|
- cell [ref=e3200]
|
|
- cell "+" [ref=e3201]:
|
|
- generic [ref=e3202]: +
|
|
- cell [ref=e3203]:
|
|
- code
|
|
- row "78 + $progress = OperationRunProgressContract::forRun($run);" [ref=e3204]:
|
|
- cell [ref=e3205]
|
|
- cell "78" [ref=e3206]: "78"
|
|
- cell [ref=e3207]
|
|
- cell "+" [ref=e3208]:
|
|
- generic [ref=e3209]: +
|
|
- cell "$progress = OperationRunProgressContract::forRun($run);" [ref=e3210]:
|
|
- code [ref=e3211]: $progress = OperationRunProgressContract::forRun($run);
|
|
- row "79 +" [ref=e3212]:
|
|
- cell [ref=e3213]
|
|
- cell "79" [ref=e3214]: "79"
|
|
- cell [ref=e3215]
|
|
- cell "+" [ref=e3216]:
|
|
- generic [ref=e3217]: +
|
|
- cell [ref=e3218]:
|
|
- code
|
|
- row "80 + expect($progress['capability'])->toBe('activity')" [ref=e3219]:
|
|
- cell [ref=e3220]
|
|
- cell "80" [ref=e3221]: "80"
|
|
- cell [ref=e3222]
|
|
- cell "+" [ref=e3223]:
|
|
- generic [ref=e3224]: +
|
|
- cell "expect($progress['capability'])->toBe('activity')" [ref=e3225]:
|
|
- code [ref=e3226]: expect($progress['capability'])->toBe('activity')
|
|
- row "81 + ->and($progress['display'])->toBe('indeterminate')" [ref=e3227]:
|
|
- cell [ref=e3228]
|
|
- cell "81" [ref=e3229]: "81"
|
|
- cell [ref=e3230]
|
|
- cell "+" [ref=e3231]:
|
|
- generic [ref=e3232]: +
|
|
- cell "->and($progress['display'])->toBe('indeterminate')" [ref=e3233]:
|
|
- code [ref=e3234]: "->and($progress['display'])->toBe('indeterminate')"
|
|
- row "82 + ->and($progress['label'])->toBe('Past the lifecycle window. Review worker health and logs before retrying.')" [ref=e3235]:
|
|
- cell [ref=e3236]
|
|
- cell "82" [ref=e3237]: "82"
|
|
- cell [ref=e3238]
|
|
- cell "+" [ref=e3239]:
|
|
- generic [ref=e3240]: +
|
|
- cell "->and($progress['label'])->toBe('Past the lifecycle window. Review worker health and logs before retrying.')" [ref=e3241]:
|
|
- code [ref=e3242]: "->and($progress['label'])->toBe('Past the lifecycle window. Review worker health and logs before retrying.')"
|
|
- row "83 + ->and($progress['percent'])->toBeNull();" [ref=e3243]:
|
|
- cell [ref=e3244]
|
|
- cell "83" [ref=e3245]: "83"
|
|
- cell [ref=e3246]
|
|
- cell "+" [ref=e3247]:
|
|
- generic [ref=e3248]: +
|
|
- cell "->and($progress['percent'])->toBeNull();" [ref=e3249]:
|
|
- code [ref=e3250]: "->and($progress['percent'])->toBeNull();"
|
|
- 'row "84 + });" [ref=e3251]':
|
|
- cell [ref=e3252]
|
|
- cell "84" [ref=e3253]: "84"
|
|
- cell [ref=e3254]
|
|
- cell "+" [ref=e3255]:
|
|
- generic [ref=e3256]: +
|
|
- 'cell "});" [ref=e3257]':
|
|
- code [ref=e3258]: "});"
|
|
- row "85 +" [ref=e3259]:
|
|
- cell [ref=e3260]
|
|
- cell "85" [ref=e3261]: "85"
|
|
- cell [ref=e3262]
|
|
- cell "+" [ref=e3263]:
|
|
- generic [ref=e3264]: +
|
|
- cell [ref=e3265]:
|
|
- code
|
|
- 'row "70 86 it(''returns no progress for terminal runs even when retained counts exist'', function (): void {" [ref=e3266]':
|
|
- cell "70" [ref=e3267]: "70"
|
|
- cell "86" [ref=e3268]: "86"
|
|
- cell [ref=e3269]
|
|
- cell [ref=e3270]
|
|
- 'cell "it(''returns no progress for terminal runs even when retained counts exist'', function (): void {" [ref=e3271]':
|
|
- code [ref=e3272]: "it('returns no progress for terminal runs even when retained counts exist', function (): void {"
|
|
- row "71 87 $run = OperationRun::factory()->create([" [ref=e3273]:
|
|
- cell "71" [ref=e3274]: "71"
|
|
- cell "87" [ref=e3275]: "87"
|
|
- cell [ref=e3276]
|
|
- cell [ref=e3277]
|
|
- cell "$run = OperationRun::factory()->create([" [ref=e3278]:
|
|
- code [ref=e3279]: $run = OperationRun::factory()->create([
|
|
- row "72 88 'status' => 'completed'," [ref=e3280]:
|
|
- cell "72" [ref=e3281]: "72"
|
|
- cell "88" [ref=e3282]: "88"
|
|
- cell [ref=e3283]
|
|
- cell [ref=e3284]
|
|
- cell "'status' => 'completed'," [ref=e3285]:
|
|
- code [ref=e3286]: "'status' => 'completed',"
|
|
- row "@ -87,6 +103,32 @@" [ref=e3287]:
|
|
- cell [ref=e3288]:
|
|
- button [ref=e3290] [cursor=pointer]:
|
|
- img [ref=e3291]
|
|
- cell [ref=e3293]
|
|
- cell [ref=e3294]
|
|
- cell "@ -87,6 +103,32 @@" [ref=e3295]:
|
|
- code [ref=e3296]: "@ -87,6 +103,32 @@"
|
|
- row "87 103 ->and($progress['percent'])->toBeNull();" [ref=e3297]:
|
|
- cell "87" [ref=e3298]: "87"
|
|
- cell "103" [ref=e3299]: "103"
|
|
- cell [ref=e3300]
|
|
- cell [ref=e3301]
|
|
- cell "->and($progress['percent'])->toBeNull();" [ref=e3302]:
|
|
- code [ref=e3303]: "->and($progress['percent'])->toBeNull();"
|
|
- 'row "88 104 });" [ref=e3304]':
|
|
- cell "88" [ref=e3305]: "88"
|
|
- cell "104" [ref=e3306]: "104"
|
|
- cell [ref=e3307]
|
|
- cell [ref=e3308]
|
|
- 'cell "});" [ref=e3309]':
|
|
- code [ref=e3310]: "});"
|
|
- row "89 105" [ref=e3311]:
|
|
- cell "89" [ref=e3312]: "89"
|
|
- cell "105" [ref=e3313]: "105"
|
|
- cell [ref=e3314]
|
|
- cell [ref=e3315]
|
|
- cell [ref=e3316]:
|
|
- code
|
|
- 'row "106 + it(''returns no progress for reconciled terminal runs even when stale lineage is recorded'', function (): void {" [ref=e3317]':
|
|
- cell [ref=e3318]
|
|
- cell "106" [ref=e3319]: "106"
|
|
- cell [ref=e3320]
|
|
- cell "+" [ref=e3321]:
|
|
- generic [ref=e3322]: +
|
|
- 'cell "it(''returns no progress for reconciled terminal runs even when stale lineage is recorded'', function (): void {" [ref=e3323]':
|
|
- code [ref=e3324]: "it('returns no progress for reconciled terminal runs even when stale lineage is recorded', function (): void {"
|
|
- row "107 + $run = OperationRun::factory()->create([" [ref=e3325]:
|
|
- cell [ref=e3326]
|
|
- cell "107" [ref=e3327]: "107"
|
|
- cell [ref=e3328]
|
|
- cell "+" [ref=e3329]:
|
|
- generic [ref=e3330]: +
|
|
- cell "$run = OperationRun::factory()->create([" [ref=e3331]:
|
|
- code [ref=e3332]: $run = OperationRun::factory()->create([
|
|
- row "108 + 'status' => 'completed'," [ref=e3333]:
|
|
- cell [ref=e3334]
|
|
- cell "108" [ref=e3335]: "108"
|
|
- cell [ref=e3336]
|
|
- cell "+" [ref=e3337]:
|
|
- generic [ref=e3338]: +
|
|
- cell "'status' => 'completed'," [ref=e3339]:
|
|
- code [ref=e3340]: "'status' => 'completed',"
|
|
- row "109 + 'outcome' => 'failed'," [ref=e3341]:
|
|
- cell [ref=e3342]
|
|
- cell "109" [ref=e3343]: "109"
|
|
- cell [ref=e3344]
|
|
- cell "+" [ref=e3345]:
|
|
- generic [ref=e3346]: +
|
|
- cell "'outcome' => 'failed'," [ref=e3347]:
|
|
- code [ref=e3348]: "'outcome' => 'failed',"
|
|
- row "110 + 'context' => [" [ref=e3349]:
|
|
- cell [ref=e3350]
|
|
- cell "110" [ref=e3351]: "110"
|
|
- cell [ref=e3352]
|
|
- cell "+" [ref=e3353]:
|
|
- generic [ref=e3354]: +
|
|
- cell "'context' => [" [ref=e3355]:
|
|
- code [ref=e3356]: "'context' => ["
|
|
- row "111 + 'reconciliation' => [" [ref=e3357]:
|
|
- cell [ref=e3358]
|
|
- cell "111" [ref=e3359]: "111"
|
|
- cell [ref=e3360]
|
|
- cell "+" [ref=e3361]:
|
|
- generic [ref=e3362]: +
|
|
- cell "'reconciliation' => [" [ref=e3363]:
|
|
- code [ref=e3364]: "'reconciliation' => ["
|
|
- row "112 + 'reconciled_at' => now()->toIso8601String()," [ref=e3365]:
|
|
- cell [ref=e3366]
|
|
- cell "112" [ref=e3367]: "112"
|
|
- cell [ref=e3368]
|
|
- cell "+" [ref=e3369]:
|
|
- generic [ref=e3370]: +
|
|
- cell "'reconciled_at' => now()->toIso8601String()," [ref=e3371]:
|
|
- code [ref=e3372]: "'reconciled_at' => now()->toIso8601String(),"
|
|
- row "113 + 'source' => 'adapter_reconciler'," [ref=e3373]:
|
|
- cell [ref=e3374]
|
|
- cell "113" [ref=e3375]: "113"
|
|
- cell [ref=e3376]
|
|
- cell "+" [ref=e3377]:
|
|
- generic [ref=e3378]: +
|
|
- cell "'source' => 'adapter_reconciler'," [ref=e3379]:
|
|
- code [ref=e3380]: "'source' => 'adapter_reconciler',"
|
|
- row "114 + ]," [ref=e3381]:
|
|
- cell [ref=e3382]
|
|
- cell "114" [ref=e3383]: "114"
|
|
- cell [ref=e3384]
|
|
- cell "+" [ref=e3385]:
|
|
- generic [ref=e3386]: +
|
|
- cell "]," [ref=e3387]:
|
|
- code [ref=e3388]: "],"
|
|
- row "115 + ]," [ref=e3389]:
|
|
- cell [ref=e3390]
|
|
- cell "115" [ref=e3391]: "115"
|
|
- cell [ref=e3392]
|
|
- cell "+" [ref=e3393]:
|
|
- generic [ref=e3394]: +
|
|
- cell "]," [ref=e3395]:
|
|
- code [ref=e3396]: "],"
|
|
- row "116 + 'summary_counts' => [" [ref=e3397]:
|
|
- cell [ref=e3398]
|
|
- cell "116" [ref=e3399]: "116"
|
|
- cell [ref=e3400]
|
|
- cell "+" [ref=e3401]:
|
|
- generic [ref=e3402]: +
|
|
- cell "'summary_counts' => [" [ref=e3403]:
|
|
- code [ref=e3404]: "'summary_counts' => ["
|
|
- row "117 + 'total' => 10," [ref=e3405]:
|
|
- cell [ref=e3406]
|
|
- cell "117" [ref=e3407]: "117"
|
|
- cell [ref=e3408]
|
|
- cell "+" [ref=e3409]:
|
|
- generic [ref=e3410]: +
|
|
- cell "'total' => 10," [ref=e3411]:
|
|
- code [ref=e3412]: "'total' => 10,"
|
|
- row "118 + 'processed' => 10," [ref=e3413]:
|
|
- cell [ref=e3414]
|
|
- cell "118" [ref=e3415]: "118"
|
|
- cell [ref=e3416]
|
|
- cell "+" [ref=e3417]:
|
|
- generic [ref=e3418]: +
|
|
- cell "'processed' => 10," [ref=e3419]:
|
|
- code [ref=e3420]: "'processed' => 10,"
|
|
- row "119 + ]," [ref=e3421]:
|
|
- cell [ref=e3422]
|
|
- cell "119" [ref=e3423]: "119"
|
|
- cell [ref=e3424]
|
|
- cell "+" [ref=e3425]:
|
|
- generic [ref=e3426]: +
|
|
- cell "]," [ref=e3427]:
|
|
- code [ref=e3428]: "],"
|
|
- row "120 + 'started_at' => now()->subMinutes(2)," [ref=e3429]:
|
|
- cell [ref=e3430]
|
|
- cell "120" [ref=e3431]: "120"
|
|
- cell [ref=e3432]
|
|
- cell "+" [ref=e3433]:
|
|
- generic [ref=e3434]: +
|
|
- cell "'started_at' => now()->subMinutes(2)," [ref=e3435]:
|
|
- code [ref=e3436]: "'started_at' => now()->subMinutes(2),"
|
|
- row "121 + 'completed_at' => now()->subSecond()," [ref=e3437]:
|
|
- cell [ref=e3438]
|
|
- cell "121" [ref=e3439]: "121"
|
|
- cell [ref=e3440]
|
|
- cell "+" [ref=e3441]:
|
|
- generic [ref=e3442]: +
|
|
- cell "'completed_at' => now()->subSecond()," [ref=e3443]:
|
|
- code [ref=e3444]: "'completed_at' => now()->subSecond(),"
|
|
- row "122 + ]);" [ref=e3445]:
|
|
- cell [ref=e3446]
|
|
- cell "122" [ref=e3447]: "122"
|
|
- cell [ref=e3448]
|
|
- cell "+" [ref=e3449]:
|
|
- generic [ref=e3450]: +
|
|
- cell "]);" [ref=e3451]:
|
|
- code [ref=e3452]: "]);"
|
|
- row "123 +" [ref=e3453]:
|
|
- cell [ref=e3454]
|
|
- cell "123" [ref=e3455]: "123"
|
|
- cell [ref=e3456]
|
|
- cell "+" [ref=e3457]:
|
|
- generic [ref=e3458]: +
|
|
- cell [ref=e3459]:
|
|
- code
|
|
- row "124 + $progress = OperationRunProgressContract::forRun($run);" [ref=e3460]:
|
|
- cell [ref=e3461]
|
|
- cell "124" [ref=e3462]: "124"
|
|
- cell [ref=e3463]
|
|
- cell "+" [ref=e3464]:
|
|
- generic [ref=e3465]: +
|
|
- cell "$progress = OperationRunProgressContract::forRun($run);" [ref=e3466]:
|
|
- code [ref=e3467]: $progress = OperationRunProgressContract::forRun($run);
|
|
- row "125 +" [ref=e3468]:
|
|
- cell [ref=e3469]
|
|
- cell "125" [ref=e3470]: "125"
|
|
- cell [ref=e3471]
|
|
- cell "+" [ref=e3472]:
|
|
- generic [ref=e3473]: +
|
|
- cell [ref=e3474]:
|
|
- code
|
|
- row "126 + expect($progress['capability'])->toBe('none')" [ref=e3475]:
|
|
- cell [ref=e3476]
|
|
- cell "126" [ref=e3477]: "126"
|
|
- cell [ref=e3478]
|
|
- cell "+" [ref=e3479]:
|
|
- generic [ref=e3480]: +
|
|
- cell "expect($progress['capability'])->toBe('none')" [ref=e3481]:
|
|
- code [ref=e3482]: expect($progress['capability'])->toBe('none')
|
|
- row "127 + ->and($progress['display'])->toBe('none')" [ref=e3483]:
|
|
- cell [ref=e3484]
|
|
- cell "127" [ref=e3485]: "127"
|
|
- cell [ref=e3486]
|
|
- cell "+" [ref=e3487]:
|
|
- generic [ref=e3488]: +
|
|
- cell "->and($progress['display'])->toBe('none')" [ref=e3489]:
|
|
- code [ref=e3490]: "->and($progress['display'])->toBe('none')"
|
|
- row "128 + ->and($progress['label'])->toBeNull()" [ref=e3491]:
|
|
- cell [ref=e3492]
|
|
- cell "128" [ref=e3493]: "128"
|
|
- cell [ref=e3494]
|
|
- cell "+" [ref=e3495]:
|
|
- generic [ref=e3496]: +
|
|
- cell "->and($progress['label'])->toBeNull()" [ref=e3497]:
|
|
- code [ref=e3498]: "->and($progress['label'])->toBeNull()"
|
|
- row "129 + ->and($progress['percent'])->toBeNull();" [ref=e3499]:
|
|
- cell [ref=e3500]
|
|
- cell "129" [ref=e3501]: "129"
|
|
- cell [ref=e3502]
|
|
- cell "+" [ref=e3503]:
|
|
- generic [ref=e3504]: +
|
|
- cell "->and($progress['percent'])->toBeNull();" [ref=e3505]:
|
|
- code [ref=e3506]: "->and($progress['percent'])->toBeNull();"
|
|
- 'row "130 + });" [ref=e3507]':
|
|
- cell [ref=e3508]
|
|
- cell "130" [ref=e3509]: "130"
|
|
- cell [ref=e3510]
|
|
- cell "+" [ref=e3511]:
|
|
- generic [ref=e3512]: +
|
|
- 'cell "});" [ref=e3513]':
|
|
- code [ref=e3514]: "});"
|
|
- row "131 +" [ref=e3515]:
|
|
- cell [ref=e3516]
|
|
- cell "131" [ref=e3517]: "131"
|
|
- cell [ref=e3518]
|
|
- cell "+" [ref=e3519]:
|
|
- generic [ref=e3520]: +
|
|
- cell [ref=e3521]:
|
|
- code
|
|
- 'row "90 132 it(''does not let outcome counters masquerade as counted progress'', function (): void {" [ref=e3522]':
|
|
- cell "90" [ref=e3523]: "90"
|
|
- cell "132" [ref=e3524]: "132"
|
|
- cell [ref=e3525]
|
|
- cell [ref=e3526]
|
|
- 'cell "it(''does not let outcome counters masquerade as counted progress'', function (): void {" [ref=e3527]':
|
|
- code [ref=e3528]: "it('does not let outcome counters masquerade as counted progress', function (): void {"
|
|
- row "91 133 $run = OperationRun::factory()->create([" [ref=e3529]:
|
|
- cell "91" [ref=e3530]: "91"
|
|
- cell "133" [ref=e3531]: "133"
|
|
- cell [ref=e3532]
|
|
- cell [ref=e3533]
|
|
- cell "$run = OperationRun::factory()->create([" [ref=e3534]:
|
|
- code [ref=e3535]: $run = OperationRun::factory()->create([
|
|
- row "92 134 'status' => 'running'," [ref=e3536]:
|
|
- cell "92" [ref=e3537]: "92"
|
|
- cell "134" [ref=e3538]: "134"
|
|
- cell [ref=e3539]
|
|
- cell [ref=e3540]
|
|
- cell "'status' => 'running'," [ref=e3541]:
|
|
- code [ref=e3542]: "'status' => 'running',"
|
|
- row "@ -107,6 +149,67 @@" [ref=e3543]:
|
|
- cell [ref=e3544]:
|
|
- button [ref=e3546] [cursor=pointer]:
|
|
- img [ref=e3547]
|
|
- cell [ref=e3549]
|
|
- cell [ref=e3550]
|
|
- cell "@ -107,6 +149,67 @@" [ref=e3551]:
|
|
- code [ref=e3552]: "@ -107,6 +149,67 @@"
|
|
- row "107 149 ->and($progress['percent'])->toBeNull();" [ref=e3553]:
|
|
- cell "107" [ref=e3554]: "107"
|
|
- cell "149" [ref=e3555]: "149"
|
|
- cell [ref=e3556]
|
|
- cell [ref=e3557]
|
|
- cell "->and($progress['percent'])->toBeNull();" [ref=e3558]:
|
|
- code [ref=e3559]: "->and($progress['percent'])->toBeNull();"
|
|
- 'row "108 150 });" [ref=e3560]':
|
|
- cell "108" [ref=e3561]: "108"
|
|
- cell "150" [ref=e3562]: "150"
|
|
- cell [ref=e3563]
|
|
- cell [ref=e3564]
|
|
- 'cell "});" [ref=e3565]':
|
|
- code [ref=e3566]: "});"
|
|
- row "109 151" [ref=e3567]:
|
|
- cell "109" [ref=e3568]: "109"
|
|
- cell "151" [ref=e3569]: "151"
|
|
- cell [ref=e3570]
|
|
- cell [ref=e3571]
|
|
- cell [ref=e3572]:
|
|
- code
|
|
- 'row "152 + it(''replaces ordinary activity copy with stale lifecycle guidance for stale running runs'', function (): void {" [ref=e3573]':
|
|
- cell [ref=e3574]
|
|
- cell "152" [ref=e3575]: "152"
|
|
- cell [ref=e3576]
|
|
- cell "+" [ref=e3577]:
|
|
- generic [ref=e3578]: +
|
|
- 'cell "it(''replaces ordinary activity copy with stale lifecycle guidance for stale running runs'', function (): void {" [ref=e3579]':
|
|
- code [ref=e3580]: "it('replaces ordinary activity copy with stale lifecycle guidance for stale running runs', function (): void {"
|
|
- row "153 + $run = OperationRun::factory()->create([" [ref=e3581]:
|
|
- cell [ref=e3582]
|
|
- cell "153" [ref=e3583]: "153"
|
|
- cell [ref=e3584]
|
|
- cell "+" [ref=e3585]:
|
|
- generic [ref=e3586]: +
|
|
- cell "$run = OperationRun::factory()->create([" [ref=e3587]:
|
|
- code [ref=e3588]: $run = OperationRun::factory()->create([
|
|
- row "154 + 'type' => 'inventory_sync'," [ref=e3589]:
|
|
- cell [ref=e3590]
|
|
- cell "154" [ref=e3591]: "154"
|
|
- cell [ref=e3592]
|
|
- cell "+" [ref=e3593]:
|
|
- generic [ref=e3594]: +
|
|
- cell "'type' => 'inventory_sync'," [ref=e3595]:
|
|
- code [ref=e3596]: "'type' => 'inventory_sync',"
|
|
- row "155 + 'status' => 'running'," [ref=e3597]:
|
|
- cell [ref=e3598]
|
|
- cell "155" [ref=e3599]: "155"
|
|
- cell [ref=e3600]
|
|
- cell "+" [ref=e3601]:
|
|
- generic [ref=e3602]: +
|
|
- cell "'status' => 'running'," [ref=e3603]:
|
|
- code [ref=e3604]: "'status' => 'running',"
|
|
- row "156 + 'outcome' => 'pending'," [ref=e3605]:
|
|
- cell [ref=e3606]
|
|
- cell "156" [ref=e3607]: "156"
|
|
- cell [ref=e3608]
|
|
- cell "+" [ref=e3609]:
|
|
- generic [ref=e3610]: +
|
|
- cell "'outcome' => 'pending'," [ref=e3611]:
|
|
- code [ref=e3612]: "'outcome' => 'pending',"
|
|
- row "157 + 'started_at' => now()->subWeeks(2)," [ref=e3613]:
|
|
- cell [ref=e3614]
|
|
- cell "157" [ref=e3615]: "157"
|
|
- cell [ref=e3616]
|
|
- cell "+" [ref=e3617]:
|
|
- generic [ref=e3618]: +
|
|
- cell "'started_at' => now()->subWeeks(2)," [ref=e3619]:
|
|
- code [ref=e3620]: "'started_at' => now()->subWeeks(2),"
|
|
- row "158 + 'created_at' => now()->subWeeks(2)," [ref=e3621]:
|
|
- cell [ref=e3622]
|
|
- cell "158" [ref=e3623]: "158"
|
|
- cell [ref=e3624]
|
|
- cell "+" [ref=e3625]:
|
|
- generic [ref=e3626]: +
|
|
- cell "'created_at' => now()->subWeeks(2)," [ref=e3627]:
|
|
- code [ref=e3628]: "'created_at' => now()->subWeeks(2),"
|
|
- row "159 + ]);" [ref=e3629]:
|
|
- cell [ref=e3630]
|
|
- cell "159" [ref=e3631]: "159"
|
|
- cell [ref=e3632]
|
|
- cell "+" [ref=e3633]:
|
|
- generic [ref=e3634]: +
|
|
- cell "]);" [ref=e3635]:
|
|
- code [ref=e3636]: "]);"
|
|
- row "160 +" [ref=e3637]:
|
|
- cell [ref=e3638]
|
|
- cell "160" [ref=e3639]: "160"
|
|
- cell [ref=e3640]
|
|
- cell "+" [ref=e3641]:
|
|
- generic [ref=e3642]: +
|
|
- cell [ref=e3643]:
|
|
- code
|
|
- row "161 + $progress = OperationRunProgressContract::forRun($run);" [ref=e3644]:
|
|
- cell [ref=e3645]
|
|
- cell "161" [ref=e3646]: "161"
|
|
- cell [ref=e3647]
|
|
- cell "+" [ref=e3648]:
|
|
- generic [ref=e3649]: +
|
|
- cell "$progress = OperationRunProgressContract::forRun($run);" [ref=e3650]:
|
|
- code [ref=e3651]: $progress = OperationRunProgressContract::forRun($run);
|
|
- row "162 +" [ref=e3652]:
|
|
- cell [ref=e3653]
|
|
- cell "162" [ref=e3654]: "162"
|
|
- cell [ref=e3655]
|
|
- cell "+" [ref=e3656]:
|
|
- generic [ref=e3657]: +
|
|
- cell [ref=e3658]:
|
|
- code
|
|
- row "163 + expect($progress['capability'])->toBe('activity')" [ref=e3659]:
|
|
- cell [ref=e3660]
|
|
- cell "163" [ref=e3661]: "163"
|
|
- cell [ref=e3662]
|
|
- cell "+" [ref=e3663]:
|
|
- generic [ref=e3664]: +
|
|
- cell "expect($progress['capability'])->toBe('activity')" [ref=e3665]:
|
|
- code [ref=e3666]: expect($progress['capability'])->toBe('activity')
|
|
- row "164 + ->and($progress['display'])->toBe('indeterminate')" [ref=e3667]:
|
|
- cell [ref=e3668]
|
|
- cell "164" [ref=e3669]: "164"
|
|
- cell [ref=e3670]
|
|
- cell "+" [ref=e3671]:
|
|
- generic [ref=e3672]: +
|
|
- cell "->and($progress['display'])->toBe('indeterminate')" [ref=e3673]:
|
|
- code [ref=e3674]: "->and($progress['display'])->toBe('indeterminate')"
|
|
- row "165 + ->and($progress['label'])->toBe('Past the lifecycle window. Review worker health and logs before retrying.')" [ref=e3675]:
|
|
- cell [ref=e3676]
|
|
- cell "165" [ref=e3677]: "165"
|
|
- cell [ref=e3678]
|
|
- cell "+" [ref=e3679]:
|
|
- generic [ref=e3680]: +
|
|
- cell "->and($progress['label'])->toBe('Past the lifecycle window. Review worker health and logs before retrying.')" [ref=e3681]:
|
|
- code [ref=e3682]: "->and($progress['label'])->toBe('Past the lifecycle window. Review worker health and logs before retrying.')"
|
|
- row "166 + ->and($progress['percent'])->toBeNull();" [ref=e3683]:
|
|
- cell [ref=e3684]
|
|
- cell "166" [ref=e3685]: "166"
|
|
- cell [ref=e3686]
|
|
- cell "+" [ref=e3687]:
|
|
- generic [ref=e3688]: +
|
|
- cell "->and($progress['percent'])->toBeNull();" [ref=e3689]:
|
|
- code [ref=e3690]: "->and($progress['percent'])->toBeNull();"
|
|
- 'row "167 + });" [ref=e3691]':
|
|
- cell [ref=e3692]
|
|
- cell "167" [ref=e3693]: "167"
|
|
- cell [ref=e3694]
|
|
- cell "+" [ref=e3695]:
|
|
- generic [ref=e3696]: +
|
|
- 'cell "});" [ref=e3697]':
|
|
- code [ref=e3698]: "});"
|
|
- row "168 +" [ref=e3699]:
|
|
- cell [ref=e3700]
|
|
- cell "168" [ref=e3701]: "168"
|
|
- cell [ref=e3702]
|
|
- cell "+" [ref=e3703]:
|
|
- generic [ref=e3704]: +
|
|
- cell [ref=e3705]:
|
|
- code
|
|
- 'row "169 + it(''subordinates determinate stale-running progress to lifecycle guidance'', function (): void {" [ref=e3706]':
|
|
- cell [ref=e3707]
|
|
- cell "169" [ref=e3708]: "169"
|
|
- cell [ref=e3709]
|
|
- cell "+" [ref=e3710]:
|
|
- generic [ref=e3711]: +
|
|
- 'cell "it(''subordinates determinate stale-running progress to lifecycle guidance'', function (): void {" [ref=e3712]':
|
|
- code [ref=e3713]: "it('subordinates determinate stale-running progress to lifecycle guidance', function (): void {"
|
|
- row "170 + $run = OperationRun::factory()->create([" [ref=e3714]:
|
|
- cell [ref=e3715]
|
|
- cell "170" [ref=e3716]: "170"
|
|
- cell [ref=e3717]
|
|
- cell "+" [ref=e3718]:
|
|
- generic [ref=e3719]: +
|
|
- cell "$run = OperationRun::factory()->create([" [ref=e3720]:
|
|
- code [ref=e3721]: $run = OperationRun::factory()->create([
|
|
- row "171 + 'type' => 'inventory_sync'," [ref=e3722]:
|
|
- cell [ref=e3723]
|
|
- cell "171" [ref=e3724]: "171"
|
|
- cell [ref=e3725]
|
|
- cell "+" [ref=e3726]:
|
|
- generic [ref=e3727]: +
|
|
- cell "'type' => 'inventory_sync'," [ref=e3728]:
|
|
- code [ref=e3729]: "'type' => 'inventory_sync',"
|
|
- row "172 + 'status' => 'running'," [ref=e3730]:
|
|
- cell [ref=e3731]
|
|
- cell "172" [ref=e3732]: "172"
|
|
- cell [ref=e3733]
|
|
- cell "+" [ref=e3734]:
|
|
- generic [ref=e3735]: +
|
|
- cell "'status' => 'running'," [ref=e3736]:
|
|
- code [ref=e3737]: "'status' => 'running',"
|
|
- row "173 + 'outcome' => 'pending'," [ref=e3738]:
|
|
- cell [ref=e3739]
|
|
- cell "173" [ref=e3740]: "173"
|
|
- cell [ref=e3741]
|
|
- cell "+" [ref=e3742]:
|
|
- generic [ref=e3743]: +
|
|
- cell "'outcome' => 'pending'," [ref=e3744]:
|
|
- code [ref=e3745]: "'outcome' => 'pending',"
|
|
- row "174 + 'summary_counts' => [" [ref=e3746]:
|
|
- cell [ref=e3747]
|
|
- cell "174" [ref=e3748]: "174"
|
|
- cell [ref=e3749]
|
|
- cell "+" [ref=e3750]:
|
|
- generic [ref=e3751]: +
|
|
- cell "'summary_counts' => [" [ref=e3752]:
|
|
- code [ref=e3753]: "'summary_counts' => ["
|
|
- row "175 + 'total' => 10," [ref=e3754]:
|
|
- cell [ref=e3755]
|
|
- cell "175" [ref=e3756]: "175"
|
|
- cell [ref=e3757]
|
|
- cell "+" [ref=e3758]:
|
|
- generic [ref=e3759]: +
|
|
- cell "'total' => 10," [ref=e3760]:
|
|
- code [ref=e3761]: "'total' => 10,"
|
|
- row "176 + 'processed' => 4," [ref=e3762]:
|
|
- cell [ref=e3763]
|
|
- cell "176" [ref=e3764]: "176"
|
|
- cell [ref=e3765]
|
|
- cell "+" [ref=e3766]:
|
|
- generic [ref=e3767]: +
|
|
- cell "'processed' => 4," [ref=e3768]:
|
|
- code [ref=e3769]: "'processed' => 4,"
|
|
- row "177 + ]," [ref=e3770]:
|
|
- cell [ref=e3771]
|
|
- cell "177" [ref=e3772]: "177"
|
|
- cell [ref=e3773]
|
|
- cell "+" [ref=e3774]:
|
|
- generic [ref=e3775]: +
|
|
- cell "]," [ref=e3776]:
|
|
- code [ref=e3777]: "],"
|
|
- row "178 + 'started_at' => now()->subWeeks(2)," [ref=e3778]:
|
|
- cell [ref=e3779]
|
|
- cell "178" [ref=e3780]: "178"
|
|
- cell [ref=e3781]
|
|
- cell "+" [ref=e3782]:
|
|
- generic [ref=e3783]: +
|
|
- cell "'started_at' => now()->subWeeks(2)," [ref=e3784]:
|
|
- code [ref=e3785]: "'started_at' => now()->subWeeks(2),"
|
|
- row "179 + 'created_at' => now()->subWeeks(2)," [ref=e3786]:
|
|
- cell [ref=e3787]
|
|
- cell "179" [ref=e3788]: "179"
|
|
- cell [ref=e3789]
|
|
- cell "+" [ref=e3790]:
|
|
- generic [ref=e3791]: +
|
|
- cell "'created_at' => now()->subWeeks(2)," [ref=e3792]:
|
|
- code [ref=e3793]: "'created_at' => now()->subWeeks(2),"
|
|
- row "180 + ]);" [ref=e3794]:
|
|
- cell [ref=e3795]
|
|
- cell "180" [ref=e3796]: "180"
|
|
- cell [ref=e3797]
|
|
- cell "+" [ref=e3798]:
|
|
- generic [ref=e3799]: +
|
|
- cell "]);" [ref=e3800]:
|
|
- code [ref=e3801]: "]);"
|
|
- row "181 +" [ref=e3802]:
|
|
- cell [ref=e3803]
|
|
- cell "181" [ref=e3804]: "181"
|
|
- cell [ref=e3805]
|
|
- cell "+" [ref=e3806]:
|
|
- generic [ref=e3807]: +
|
|
- cell [ref=e3808]:
|
|
- code
|
|
- row "182 + $progress = OperationRunProgressContract::forRun($run);" [ref=e3809]:
|
|
- cell [ref=e3810]
|
|
- cell "182" [ref=e3811]: "182"
|
|
- cell [ref=e3812]
|
|
- cell "+" [ref=e3813]:
|
|
- generic [ref=e3814]: +
|
|
- cell "$progress = OperationRunProgressContract::forRun($run);" [ref=e3815]:
|
|
- code [ref=e3816]: $progress = OperationRunProgressContract::forRun($run);
|
|
- row "183 +" [ref=e3817]:
|
|
- cell [ref=e3818]
|
|
- cell "183" [ref=e3819]: "183"
|
|
- cell [ref=e3820]
|
|
- cell "+" [ref=e3821]:
|
|
- generic [ref=e3822]: +
|
|
- cell [ref=e3823]:
|
|
- code
|
|
- row "184 + expect($progress['capability'])->toBe('counted')" [ref=e3824]:
|
|
- cell [ref=e3825]
|
|
- cell "184" [ref=e3826]: "184"
|
|
- cell [ref=e3827]
|
|
- cell "+" [ref=e3828]:
|
|
- generic [ref=e3829]: +
|
|
- cell "expect($progress['capability'])->toBe('counted')" [ref=e3830]:
|
|
- code [ref=e3831]: expect($progress['capability'])->toBe('counted')
|
|
- row "185 + ->and($progress['display'])->toBe('indeterminate')" [ref=e3832]:
|
|
- cell [ref=e3833]
|
|
- cell "185" [ref=e3834]: "185"
|
|
- cell [ref=e3835]
|
|
- cell "+" [ref=e3836]:
|
|
- generic [ref=e3837]: +
|
|
- cell "->and($progress['display'])->toBe('indeterminate')" [ref=e3838]:
|
|
- code [ref=e3839]: "->and($progress['display'])->toBe('indeterminate')"
|
|
- row "186 + ->and($progress['label'])->toBe('Past the lifecycle window. Review worker health and logs before retrying.')" [ref=e3840]:
|
|
- cell [ref=e3841]
|
|
- cell "186" [ref=e3842]: "186"
|
|
- cell [ref=e3843]
|
|
- cell "+" [ref=e3844]:
|
|
- generic [ref=e3845]: +
|
|
- cell "->and($progress['label'])->toBe('Past the lifecycle window. Review worker health and logs before retrying.')" [ref=e3846]:
|
|
- code [ref=e3847]: "->and($progress['label'])->toBe('Past the lifecycle window. Review worker health and logs before retrying.')"
|
|
- row "187 + ->and($progress['processed'])->toBeNull()" [ref=e3848]:
|
|
- cell [ref=e3849]
|
|
- cell "187" [ref=e3850]: "187"
|
|
- cell [ref=e3851]
|
|
- cell "+" [ref=e3852]:
|
|
- generic [ref=e3853]: +
|
|
- cell "->and($progress['processed'])->toBeNull()" [ref=e3854]:
|
|
- code [ref=e3855]: "->and($progress['processed'])->toBeNull()"
|
|
- row "188 + ->and($progress['total'])->toBeNull()" [ref=e3856]:
|
|
- cell [ref=e3857]
|
|
- cell "188" [ref=e3858]: "188"
|
|
- cell [ref=e3859]
|
|
- cell "+" [ref=e3860]:
|
|
- generic [ref=e3861]: +
|
|
- cell "->and($progress['total'])->toBeNull()" [ref=e3862]:
|
|
- code [ref=e3863]: "->and($progress['total'])->toBeNull()"
|
|
- row "189 + ->and($progress['percent'])->toBeNull();" [ref=e3864]:
|
|
- cell [ref=e3865]
|
|
- cell "189" [ref=e3866]: "189"
|
|
- cell [ref=e3867]
|
|
- cell "+" [ref=e3868]:
|
|
- generic [ref=e3869]: +
|
|
- cell "->and($progress['percent'])->toBeNull();" [ref=e3870]:
|
|
- code [ref=e3871]: "->and($progress['percent'])->toBeNull();"
|
|
- 'row "190 + });" [ref=e3872]':
|
|
- cell [ref=e3873]
|
|
- cell "190" [ref=e3874]: "190"
|
|
- cell [ref=e3875]
|
|
- cell "+" [ref=e3876]:
|
|
- generic [ref=e3877]: +
|
|
- 'cell "});" [ref=e3878]':
|
|
- code [ref=e3879]: "});"
|
|
- row "191 +" [ref=e3880]:
|
|
- cell [ref=e3881]
|
|
- cell "191" [ref=e3882]: "191"
|
|
- cell [ref=e3883]
|
|
- cell "+" [ref=e3884]:
|
|
- generic [ref=e3885]: +
|
|
- cell [ref=e3886]:
|
|
- code
|
|
- 'row "192 + it(''does not overclaim stale lifecycle guidance for unsupported running types'', function (): void {" [ref=e3887]':
|
|
- cell [ref=e3888]
|
|
- cell "192" [ref=e3889]: "192"
|
|
- cell [ref=e3890]
|
|
- cell "+" [ref=e3891]:
|
|
- generic [ref=e3892]: +
|
|
- 'cell "it(''does not overclaim stale lifecycle guidance for unsupported running types'', function (): void {" [ref=e3893]':
|
|
- code [ref=e3894]: "it('does not overclaim stale lifecycle guidance for unsupported running types', function (): void {"
|
|
- row "193 + $run = OperationRun::factory()->create([" [ref=e3895]:
|
|
- cell [ref=e3896]
|
|
- cell "193" [ref=e3897]: "193"
|
|
- cell [ref=e3898]
|
|
- cell "+" [ref=e3899]:
|
|
- generic [ref=e3900]: +
|
|
- cell "$run = OperationRun::factory()->create([" [ref=e3901]:
|
|
- code [ref=e3902]: $run = OperationRun::factory()->create([
|
|
- row "194 + 'type' => 'unsupported.operation'," [ref=e3903]:
|
|
- cell [ref=e3904]
|
|
- cell "194" [ref=e3905]: "194"
|
|
- cell [ref=e3906]
|
|
- cell "+" [ref=e3907]:
|
|
- generic [ref=e3908]: +
|
|
- cell "'type' => 'unsupported.operation'," [ref=e3909]:
|
|
- code [ref=e3910]: "'type' => 'unsupported.operation',"
|
|
- row "195 + 'status' => 'running'," [ref=e3911]:
|
|
- cell [ref=e3912]
|
|
- cell "195" [ref=e3913]: "195"
|
|
- cell [ref=e3914]
|
|
- cell "+" [ref=e3915]:
|
|
- generic [ref=e3916]: +
|
|
- cell "'status' => 'running'," [ref=e3917]:
|
|
- code [ref=e3918]: "'status' => 'running',"
|
|
- row "196 + 'outcome' => 'pending'," [ref=e3919]:
|
|
- cell [ref=e3920]
|
|
- cell "196" [ref=e3921]: "196"
|
|
- cell [ref=e3922]
|
|
- cell "+" [ref=e3923]:
|
|
- generic [ref=e3924]: +
|
|
- cell "'outcome' => 'pending'," [ref=e3925]:
|
|
- code [ref=e3926]: "'outcome' => 'pending',"
|
|
- row "197 + 'summary_counts' => [" [ref=e3927]:
|
|
- cell [ref=e3928]
|
|
- cell "197" [ref=e3929]: "197"
|
|
- cell [ref=e3930]
|
|
- cell "+" [ref=e3931]:
|
|
- generic [ref=e3932]: +
|
|
- cell "'summary_counts' => [" [ref=e3933]:
|
|
- code [ref=e3934]: "'summary_counts' => ["
|
|
- row "198 + 'total' => 10," [ref=e3935]:
|
|
- cell [ref=e3936]
|
|
- cell "198" [ref=e3937]: "198"
|
|
- cell [ref=e3938]
|
|
- cell "+" [ref=e3939]:
|
|
- generic [ref=e3940]: +
|
|
- cell "'total' => 10," [ref=e3941]:
|
|
- code [ref=e3942]: "'total' => 10,"
|
|
- row "199 + 'processed' => 4," [ref=e3943]:
|
|
- cell [ref=e3944]
|
|
- cell "199" [ref=e3945]: "199"
|
|
- cell [ref=e3946]
|
|
- cell "+" [ref=e3947]:
|
|
- generic [ref=e3948]: +
|
|
- cell "'processed' => 4," [ref=e3949]:
|
|
- code [ref=e3950]: "'processed' => 4,"
|
|
- row "200 + ]," [ref=e3951]:
|
|
- cell [ref=e3952]
|
|
- cell "200" [ref=e3953]: "200"
|
|
- cell [ref=e3954]
|
|
- cell "+" [ref=e3955]:
|
|
- generic [ref=e3956]: +
|
|
- cell "]," [ref=e3957]:
|
|
- code [ref=e3958]: "],"
|
|
- row "201 + 'started_at' => now()->subWeeks(2)," [ref=e3959]:
|
|
- cell [ref=e3960]
|
|
- cell "201" [ref=e3961]: "201"
|
|
- cell [ref=e3962]
|
|
- cell "+" [ref=e3963]:
|
|
- generic [ref=e3964]: +
|
|
- cell "'started_at' => now()->subWeeks(2)," [ref=e3965]:
|
|
- code [ref=e3966]: "'started_at' => now()->subWeeks(2),"
|
|
- row "202 + 'created_at' => now()->subWeeks(2)," [ref=e3967]:
|
|
- cell [ref=e3968]
|
|
- cell "202" [ref=e3969]: "202"
|
|
- cell [ref=e3970]
|
|
- cell "+" [ref=e3971]:
|
|
- generic [ref=e3972]: +
|
|
- cell "'created_at' => now()->subWeeks(2)," [ref=e3973]:
|
|
- code [ref=e3974]: "'created_at' => now()->subWeeks(2),"
|
|
- row "203 + ]);" [ref=e3975]:
|
|
- cell [ref=e3976]
|
|
- cell "203" [ref=e3977]: "203"
|
|
- cell [ref=e3978]
|
|
- cell "+" [ref=e3979]:
|
|
- generic [ref=e3980]: +
|
|
- cell "]);" [ref=e3981]:
|
|
- code [ref=e3982]: "]);"
|
|
- row "204 +" [ref=e3983]:
|
|
- cell [ref=e3984]
|
|
- cell "204" [ref=e3985]: "204"
|
|
- cell [ref=e3986]
|
|
- cell "+" [ref=e3987]:
|
|
- generic [ref=e3988]: +
|
|
- cell [ref=e3989]:
|
|
- code
|
|
- row "205 + $progress = OperationRunProgressContract::forRun($run);" [ref=e3990]:
|
|
- cell [ref=e3991]
|
|
- cell "205" [ref=e3992]: "205"
|
|
- cell [ref=e3993]
|
|
- cell "+" [ref=e3994]:
|
|
- generic [ref=e3995]: +
|
|
- cell "$progress = OperationRunProgressContract::forRun($run);" [ref=e3996]:
|
|
- code [ref=e3997]: $progress = OperationRunProgressContract::forRun($run);
|
|
- row "206 +" [ref=e3998]:
|
|
- cell [ref=e3999]
|
|
- cell "206" [ref=e4000]: "206"
|
|
- cell [ref=e4001]
|
|
- cell "+" [ref=e4002]:
|
|
- generic [ref=e4003]: +
|
|
- cell [ref=e4004]:
|
|
- code
|
|
- row "207 + expect($progress['capability'])->toBe('counted')" [ref=e4005]:
|
|
- cell [ref=e4006]
|
|
- cell "207" [ref=e4007]: "207"
|
|
- cell [ref=e4008]
|
|
- cell "+" [ref=e4009]:
|
|
- generic [ref=e4010]: +
|
|
- cell "expect($progress['capability'])->toBe('counted')" [ref=e4011]:
|
|
- code [ref=e4012]: expect($progress['capability'])->toBe('counted')
|
|
- row "208 + ->and($progress['display'])->toBe('counted')" [ref=e4013]:
|
|
- cell [ref=e4014]
|
|
- cell "208" [ref=e4015]: "208"
|
|
- cell [ref=e4016]
|
|
- cell "+" [ref=e4017]:
|
|
- generic [ref=e4018]: +
|
|
- cell "->and($progress['display'])->toBe('counted')" [ref=e4019]:
|
|
- code [ref=e4020]: "->and($progress['display'])->toBe('counted')"
|
|
- row "209 + ->and($progress['label'])->toBe('4 / 10 processed (40%)')" [ref=e4021]:
|
|
- cell [ref=e4022]
|
|
- cell "209" [ref=e4023]: "209"
|
|
- cell [ref=e4024]
|
|
- cell "+" [ref=e4025]:
|
|
- generic [ref=e4026]: +
|
|
- cell "->and($progress['label'])->toBe('4 / 10 processed (40%)')" [ref=e4027]:
|
|
- code [ref=e4028]: "->and($progress['label'])->toBe('4 / 10 processed (40%)')"
|
|
- row "210 + ->and($progress['percent'])->toBe(40);" [ref=e4029]:
|
|
- cell [ref=e4030]
|
|
- cell "210" [ref=e4031]: "210"
|
|
- cell [ref=e4032]
|
|
- cell "+" [ref=e4033]:
|
|
- generic [ref=e4034]: +
|
|
- cell "->and($progress['percent'])->toBe(40);" [ref=e4035]:
|
|
- code [ref=e4036]: "->and($progress['percent'])->toBe(40);"
|
|
- 'row "211 + });" [ref=e4037]':
|
|
- cell [ref=e4038]
|
|
- cell "211" [ref=e4039]: "211"
|
|
- cell [ref=e4040]
|
|
- cell "+" [ref=e4041]:
|
|
- generic [ref=e4042]: +
|
|
- 'cell "});" [ref=e4043]':
|
|
- code [ref=e4044]: "});"
|
|
- row "212 +" [ref=e4045]:
|
|
- cell [ref=e4046]
|
|
- cell "212" [ref=e4047]: "212"
|
|
- cell [ref=e4048]
|
|
- cell "+" [ref=e4049]:
|
|
- generic [ref=e4050]: +
|
|
- cell [ref=e4051]:
|
|
- code
|
|
- 'row "110 213 it(''classifies repo-real baseline evidence capture runs as phased fallback'', function (): void {" [ref=e4052]':
|
|
- cell "110" [ref=e4053]: "110"
|
|
- cell "213" [ref=e4054]: "213"
|
|
- cell [ref=e4055]
|
|
- cell [ref=e4056]
|
|
- 'cell "it(''classifies repo-real baseline evidence capture runs as phased fallback'', function (): void {" [ref=e4057]':
|
|
- code [ref=e4058]: "it('classifies repo-real baseline evidence capture runs as phased fallback', function (): void {"
|
|
- row "111 214 $run = OperationRun::factory()->create([" [ref=e4059]:
|
|
- cell "111" [ref=e4060]: "111"
|
|
- cell "214" [ref=e4061]: "214"
|
|
- cell [ref=e4062]
|
|
- cell [ref=e4063]
|
|
- cell "$run = OperationRun::factory()->create([" [ref=e4064]:
|
|
- code [ref=e4065]: $run = OperationRun::factory()->create([
|
|
- row "112 215 'type' => 'baseline_capture'," [ref=e4066]:
|
|
- cell "112" [ref=e4067]: "112"
|
|
- cell "215" [ref=e4068]: "215"
|
|
- cell [ref=e4069]
|
|
- cell [ref=e4070]
|
|
- cell "'type' => 'baseline_capture'," [ref=e4071]:
|
|
- code [ref=e4072]: "'type' => 'baseline_capture',"
|
|
- row [ref=e4073]:
|
|
- cell [ref=e4074]:
|
|
- button [ref=e4076] [cursor=pointer]:
|
|
- img [ref=e4077]
|
|
- cell [ref=e4079]
|
|
- cell [ref=e4080]
|
|
- cell [ref=e4081]:
|
|
- code
|
|
- generic [ref=e4082]:
|
|
- 'heading "64 64 Änderungen: 64 Ergänzungen und 0 Löschungen specs/358-operationrun-queue-truth-foundation/checklists/requirements.md Normale Datei Datei anzeigen" [level=4] [ref=e4083]':
|
|
- generic [ref=e4084]:
|
|
- button [ref=e4085] [cursor=pointer]:
|
|
- img [ref=e4086]
|
|
- generic [ref=e4088]:
|
|
- text: "64"
|
|
- 'generic "64 Änderungen: 64 Ergänzungen und 0 Löschungen" [ref=e4089]'
|
|
- generic [ref=e4091]:
|
|
- link "specs/358-operationrun-queue-truth-foundation/checklists/requirements.md" [ref=e4092] [cursor=pointer]:
|
|
- /url: "#diff-6bdac27a6033e74007da66e96266ee61f0bb49a3"
|
|
- button [ref=e4093] [cursor=pointer]:
|
|
- img [ref=e4094]
|
|
- generic [ref=e4097]: Normale Datei
|
|
- link "Datei anzeigen" [ref=e4099] [cursor=pointer]:
|
|
- /url: /ahmido/TenantAtlas/src/commit/03514b9e5b2addf53d5441f0fc122ccef0b51999/specs/358-operationrun-queue-truth-foundation/checklists/requirements.md
|
|
- table [ref=e4102]:
|
|
- rowgroup [ref=e4109]:
|
|
- row "@ -0,0 +1,64 @@" [ref=e4110]:
|
|
- cell [ref=e4111]
|
|
- cell [ref=e4112]
|
|
- cell [ref=e4113]
|
|
- cell "@ -0,0 +1,64 @@" [ref=e4114]:
|
|
- code [ref=e4115]: "@ -0,0 +1,64 @@"
|
|
- 'row "1 + # Requirements Checklist: Spec 358 - OperationRun Queue Truth Foundation" [ref=e4116]':
|
|
- cell [ref=e4117]
|
|
- cell "1" [ref=e4118]: "1"
|
|
- cell [ref=e4119]
|
|
- cell "+" [ref=e4120]:
|
|
- generic [ref=e4121]: +
|
|
- 'cell "# Requirements Checklist: Spec 358 - OperationRun Queue Truth Foundation" [ref=e4122]':
|
|
- code [ref=e4123]: "# Requirements Checklist: Spec 358 - OperationRun Queue Truth Foundation"
|
|
- row "2 +" [ref=e4124]:
|
|
- cell [ref=e4125]
|
|
- cell "2" [ref=e4126]: "2"
|
|
- cell [ref=e4127]
|
|
- cell "+" [ref=e4128]:
|
|
- generic [ref=e4129]: +
|
|
- cell [ref=e4130]:
|
|
- code
|
|
- 'row "3 + **Purpose**: Preparation analysis for Spec 358 readiness" [ref=e4131]':
|
|
- cell [ref=e4132]
|
|
- cell "3" [ref=e4133]: "3"
|
|
- cell [ref=e4134]
|
|
- cell "+" [ref=e4135]:
|
|
- generic [ref=e4136]: +
|
|
- 'cell "**Purpose**: Preparation analysis for Spec 358 readiness" [ref=e4137]':
|
|
- code [ref=e4138]: "**Purpose**: Preparation analysis for Spec 358 readiness"
|
|
- 'row "4 + **Created**: 2026-06-06" [ref=e4139]':
|
|
- cell [ref=e4140]
|
|
- cell "4" [ref=e4141]: "4"
|
|
- cell [ref=e4142]
|
|
- cell "+" [ref=e4143]:
|
|
- generic [ref=e4144]: +
|
|
- 'cell "**Created**: 2026-06-06" [ref=e4145]':
|
|
- code [ref=e4146]: "**Created**: 2026-06-06"
|
|
- 'row "5 + **Feature**: `specs/358-operationrun-queue-truth-foundation/spec.md`" [ref=e4147]':
|
|
- cell [ref=e4148]
|
|
- cell "5" [ref=e4149]: "5"
|
|
- cell [ref=e4150]
|
|
- cell "+" [ref=e4151]:
|
|
- generic [ref=e4152]: +
|
|
- 'cell "**Feature**: `specs/358-operationrun-queue-truth-foundation/spec.md`" [ref=e4153]':
|
|
- code [ref=e4154]: "**Feature**: `specs/358-operationrun-queue-truth-foundation/spec.md`"
|
|
- row "6 +" [ref=e4155]:
|
|
- cell [ref=e4156]
|
|
- cell "6" [ref=e4157]: "6"
|
|
- cell [ref=e4158]
|
|
- cell "+" [ref=e4159]:
|
|
- generic [ref=e4160]: +
|
|
- cell [ref=e4161]:
|
|
- code
|
|
- 'row "7 + ## Candidate Selection And Guardrails" [ref=e4162]':
|
|
- cell [ref=e4163]
|
|
- cell "7" [ref=e4164]: "7"
|
|
- cell [ref=e4165]
|
|
- cell "+" [ref=e4166]:
|
|
- generic [ref=e4167]: +
|
|
- cell "## Candidate Selection And Guardrails" [ref=e4168]:
|
|
- code [ref=e4169]: "## Candidate Selection And Guardrails"
|
|
- row "8 +" [ref=e4170]:
|
|
- cell [ref=e4171]
|
|
- cell "8" [ref=e4172]: "8"
|
|
- cell [ref=e4173]
|
|
- cell "+" [ref=e4174]:
|
|
- generic [ref=e4175]: +
|
|
- cell [ref=e4176]:
|
|
- code
|
|
- 'row "9 + - [x] CHK001 The candidate source is explicit: direct user-provided draft plus repo-verified current code truth." [ref=e4177]':
|
|
- cell [ref=e4178]
|
|
- cell "9" [ref=e4179]: "9"
|
|
- cell [ref=e4180]
|
|
- cell "+" [ref=e4181]:
|
|
- generic [ref=e4182]: +
|
|
- 'cell "- [x] CHK001 The candidate source is explicit: direct user-provided draft plus repo-verified current code truth." [ref=e4183]':
|
|
- code [ref=e4184]: "- [x] CHK001 The candidate source is explicit: direct user-provided draft plus repo-verified current code truth."
|
|
- 'row "10 + - [x] CHK002 No `specs/358-*` package existed before this prep." [ref=e4185]':
|
|
- cell [ref=e4186]
|
|
- cell "10" [ref=e4187]: "10"
|
|
- cell [ref=e4188]
|
|
- cell "+" [ref=e4189]:
|
|
- generic [ref=e4190]: +
|
|
- 'cell "- [x] CHK002 No `specs/358-*` package existed before this prep." [ref=e4191]':
|
|
- code [ref=e4192]: "- [x] CHK002 No `specs/358-*` package existed before this prep."
|
|
- 'row "11 + - [x] CHK003 Related historical specs are treated as context only: 149, 160, 233, 268, 270, and 272." [ref=e4193]':
|
|
- cell [ref=e4194]
|
|
- cell "11" [ref=e4195]: "11"
|
|
- cell [ref=e4196]
|
|
- cell "+" [ref=e4197]:
|
|
- generic [ref=e4198]: +
|
|
- 'cell "- [x] CHK003 Related historical specs are treated as context only: 149, 160, 233, 268, 270, and 272." [ref=e4199]':
|
|
- code [ref=e4200]: "- [x] CHK003 Related historical specs are treated as context only: 149, 160, 233, 268, 270, and 272."
|
|
- 'row "12 + - [x] CHK004 The selected slice is narrow and reviewable: generic queue-truth alignment only, with no new persistence or adapter framework." [ref=e4201]':
|
|
- cell [ref=e4202]
|
|
- cell "12" [ref=e4203]: "12"
|
|
- cell [ref=e4204]
|
|
- cell "+" [ref=e4205]:
|
|
- generic [ref=e4206]: +
|
|
- 'cell "- [x] CHK004 The selected slice is narrow and reviewable: generic queue-truth alignment only, with no new persistence or adapter framework." [ref=e4207]':
|
|
- code [ref=e4208]: "- [x] CHK004 The selected slice is narrow and reviewable: generic queue-truth alignment only, with no new persistence or adapter framework."
|
|
- 'row "13 + - [x] CHK005 Repo-truth deviations from the user draft are recorded in `spec.md`." [ref=e4209]':
|
|
- cell [ref=e4210]
|
|
- cell "13" [ref=e4211]: "13"
|
|
- cell [ref=e4212]
|
|
- cell "+" [ref=e4213]:
|
|
- generic [ref=e4214]: +
|
|
- 'cell "- [x] CHK005 Repo-truth deviations from the user draft are recorded in `spec.md`." [ref=e4215]':
|
|
- code [ref=e4216]: "- [x] CHK005 Repo-truth deviations from the user draft are recorded in `spec.md`."
|
|
- row "14 +" [ref=e4217]:
|
|
- cell [ref=e4218]
|
|
- cell "14" [ref=e4219]: "14"
|
|
- cell [ref=e4220]
|
|
- cell "+" [ref=e4221]:
|
|
- generic [ref=e4222]: +
|
|
- cell [ref=e4223]:
|
|
- code
|
|
- 'row "15 + ## Required Prep Artifacts" [ref=e4224]':
|
|
- cell [ref=e4225]
|
|
- cell "15" [ref=e4226]: "15"
|
|
- cell [ref=e4227]
|
|
- cell "+" [ref=e4228]:
|
|
- generic [ref=e4229]: +
|
|
- cell "## Required Prep Artifacts" [ref=e4230]:
|
|
- code [ref=e4231]: "## Required Prep Artifacts"
|
|
- row "16 +" [ref=e4232]:
|
|
- cell [ref=e4233]
|
|
- cell "16" [ref=e4234]: "16"
|
|
- cell [ref=e4235]
|
|
- cell "+" [ref=e4236]:
|
|
- generic [ref=e4237]: +
|
|
- cell [ref=e4238]:
|
|
- code
|
|
- 'row "17 + - [x] CHK006 `spec.md` exists and contains no template placeholders." [ref=e4239]':
|
|
- cell [ref=e4240]
|
|
- cell "17" [ref=e4241]: "17"
|
|
- cell [ref=e4242]
|
|
- cell "+" [ref=e4243]:
|
|
- generic [ref=e4244]: +
|
|
- 'cell "- [x] CHK006 `spec.md` exists and contains no template placeholders." [ref=e4245]':
|
|
- code [ref=e4246]: "- [x] CHK006 `spec.md` exists and contains no template placeholders."
|
|
- 'row "18 + - [x] CHK007 `plan.md` exists and is repo-aware." [ref=e4247]':
|
|
- cell [ref=e4248]
|
|
- cell "18" [ref=e4249]: "18"
|
|
- cell [ref=e4250]
|
|
- cell "+" [ref=e4251]:
|
|
- generic [ref=e4252]: +
|
|
- 'cell "- [x] CHK007 `plan.md` exists and is repo-aware." [ref=e4253]':
|
|
- code [ref=e4254]: "- [x] CHK007 `plan.md` exists and is repo-aware."
|
|
- 'row "19 + - [x] CHK008 `tasks.md` exists and is ordered, small, and verifiable." [ref=e4255]':
|
|
- cell [ref=e4256]
|
|
- cell "19" [ref=e4257]: "19"
|
|
- cell [ref=e4258]
|
|
- cell "+" [ref=e4259]:
|
|
- generic [ref=e4260]: +
|
|
- 'cell "- [x] CHK008 `tasks.md` exists and is ordered, small, and verifiable." [ref=e4261]':
|
|
- code [ref=e4262]: "- [x] CHK008 `tasks.md` exists and is ordered, small, and verifiable."
|
|
- row "20 + - [x] CHK009 This checklist exists." [ref=e4263]:
|
|
- cell [ref=e4264]
|
|
- cell "20" [ref=e4265]: "20"
|
|
- cell [ref=e4266]
|
|
- cell "+" [ref=e4267]:
|
|
- generic [ref=e4268]: +
|
|
- cell "- [x] CHK009 This checklist exists." [ref=e4269]:
|
|
- code [ref=e4270]: "- [x] CHK009 This checklist exists."
|
|
- row "21 +" [ref=e4271]:
|
|
- cell [ref=e4272]
|
|
- cell "21" [ref=e4273]: "21"
|
|
- cell [ref=e4274]
|
|
- cell "+" [ref=e4275]:
|
|
- generic [ref=e4276]: +
|
|
- cell [ref=e4277]:
|
|
- code
|
|
- 'row "22 + ## Spec Quality" [ref=e4278]':
|
|
- cell [ref=e4279]
|
|
- cell "22" [ref=e4280]: "22"
|
|
- cell [ref=e4281]
|
|
- cell "+" [ref=e4282]:
|
|
- generic [ref=e4283]: +
|
|
- cell "## Spec Quality" [ref=e4284]:
|
|
- code [ref=e4285]: "## Spec Quality"
|
|
- row "23 +" [ref=e4286]:
|
|
- cell [ref=e4287]
|
|
- cell "23" [ref=e4288]: "23"
|
|
- cell [ref=e4289]
|
|
- cell "+" [ref=e4290]:
|
|
- generic [ref=e4291]: +
|
|
- cell [ref=e4292]:
|
|
- code
|
|
- row "24 + - [x] CHK010 Spec Candidate Check is completed." [ref=e4293]:
|
|
- cell [ref=e4294]
|
|
- cell "24" [ref=e4295]: "24"
|
|
- cell [ref=e4296]
|
|
- cell "+" [ref=e4297]:
|
|
- generic [ref=e4298]: +
|
|
- cell "- [x] CHK010 Spec Candidate Check is completed." [ref=e4299]:
|
|
- code [ref=e4300]: "- [x] CHK010 Spec Candidate Check is completed."
|
|
- 'row "25 + - [x] CHK011 The spec keeps `OperationRun` truth derived-only and does not introduce new persisted lifecycle state." [ref=e4301]':
|
|
- cell [ref=e4302]
|
|
- cell "25" [ref=e4303]: "25"
|
|
- cell [ref=e4304]
|
|
- cell "+" [ref=e4305]:
|
|
- generic [ref=e4306]: +
|
|
- 'cell "- [x] CHK011 The spec keeps `OperationRun` truth derived-only and does not introduce new persisted lifecycle state." [ref=e4307]':
|
|
- code [ref=e4308]: "- [x] CHK011 The spec keeps `OperationRun` truth derived-only and does not introduce new persisted lifecycle state."
|
|
- row "26 + - [x] CHK012 The spec clearly separates current repo reconciliation truth from the user's broader future-framework wording." [ref=e4309]:
|
|
- cell [ref=e4310]
|
|
- cell "26" [ref=e4311]: "26"
|
|
- cell [ref=e4312]
|
|
- cell "+" [ref=e4313]:
|
|
- generic [ref=e4314]: +
|
|
- cell "- [x] CHK012 The spec clearly separates current repo reconciliation truth from the user's broader future-framework wording." [ref=e4315]:
|
|
- code [ref=e4316]: "- [x] CHK012 The spec clearly separates current repo reconciliation truth from the user's broader future-framework wording."
|
|
- row "27 + - [x] CHK013 The spec states clear goals, non-goals, requirements, risks, and acceptance criteria." [ref=e4317]:
|
|
- cell [ref=e4318]
|
|
- cell "27" [ref=e4319]: "27"
|
|
- cell [ref=e4320]
|
|
- cell "+" [ref=e4321]:
|
|
- generic [ref=e4322]: +
|
|
- cell "- [x] CHK013 The spec states clear goals, non-goals, requirements, risks, and acceptance criteria." [ref=e4323]:
|
|
- code [ref=e4324]: "- [x] CHK013 The spec states clear goals, non-goals, requirements, risks, and acceptance criteria."
|
|
- row "28 + - [x] CHK014 The proportionality review rejects a new queue-health subsystem or adapter registry by default." [ref=e4325]:
|
|
- cell [ref=e4326]
|
|
- cell "28" [ref=e4327]: "28"
|
|
- cell [ref=e4328]
|
|
- cell "+" [ref=e4329]:
|
|
- generic [ref=e4330]: +
|
|
- cell "- [x] CHK014 The proportionality review rejects a new queue-health subsystem or adapter registry by default." [ref=e4331]:
|
|
- code [ref=e4332]: "- [x] CHK014 The proportionality review rejects a new queue-health subsystem or adapter registry by default."
|
|
- row "29 +" [ref=e4333]:
|
|
- cell [ref=e4334]
|
|
- cell "29" [ref=e4335]: "29"
|
|
- cell [ref=e4336]
|
|
- cell "+" [ref=e4337]:
|
|
- generic [ref=e4338]: +
|
|
- cell [ref=e4339]:
|
|
- code
|
|
- 'row "30 + ## Plan / Task Alignment" [ref=e4340]':
|
|
- cell [ref=e4341]
|
|
- cell "30" [ref=e4342]: "30"
|
|
- cell [ref=e4343]
|
|
- cell "+" [ref=e4344]:
|
|
- generic [ref=e4345]: +
|
|
- cell "## Plan / Task Alignment" [ref=e4346]:
|
|
- code [ref=e4347]: "## Plan / Task Alignment"
|
|
- row "31 +" [ref=e4348]:
|
|
- cell [ref=e4349]
|
|
- cell "31" [ref=e4350]: "31"
|
|
- cell [ref=e4351]
|
|
- cell "+" [ref=e4352]:
|
|
- generic [ref=e4353]: +
|
|
- cell [ref=e4354]:
|
|
- code
|
|
- row "32 + - [x] CHK015 The plan identifies the actual repo surfaces likely to change." [ref=e4355]:
|
|
- cell [ref=e4356]
|
|
- cell "32" [ref=e4357]: "32"
|
|
- cell [ref=e4358]
|
|
- cell "+" [ref=e4359]:
|
|
- generic [ref=e4360]: +
|
|
- cell "- [x] CHK015 The plan identifies the actual repo surfaces likely to change." [ref=e4361]:
|
|
- code [ref=e4362]: "- [x] CHK015 The plan identifies the actual repo surfaces likely to change."
|
|
- row "33 + - [x] CHK016 The plan explicitly preserves existing scheduled and adapter reconciliation commands as out-of-scope context." [ref=e4363]:
|
|
- cell [ref=e4364]
|
|
- cell "33" [ref=e4365]: "33"
|
|
- cell [ref=e4366]
|
|
- cell "+" [ref=e4367]:
|
|
- generic [ref=e4368]: +
|
|
- cell "- [x] CHK016 The plan explicitly preserves existing scheduled and adapter reconciliation commands as out-of-scope context." [ref=e4369]:
|
|
- code [ref=e4370]: "- [x] CHK016 The plan explicitly preserves existing scheduled and adapter reconciliation commands as out-of-scope context."
|
|
- row "34 + - [x] CHK017 The plan keeps Filament v5 / Livewire v4 posture and provider-registration location visible." [ref=e4371]:
|
|
- cell [ref=e4372]
|
|
- cell "34" [ref=e4373]: "34"
|
|
- cell [ref=e4374]
|
|
- cell "+" [ref=e4375]:
|
|
- generic [ref=e4376]: +
|
|
- cell "- [x] CHK017 The plan keeps Filament v5 / Livewire v4 posture and provider-registration location visible." [ref=e4377]:
|
|
- code [ref=e4378]: "- [x] CHK017 The plan keeps Filament v5 / Livewire v4 posture and provider-registration location visible."
|
|
- row "35 + - [x] CHK018 The tasks include tests-first work and explicit runtime validation commands." [ref=e4379]:
|
|
- cell [ref=e4380]
|
|
- cell "35" [ref=e4381]: "35"
|
|
- cell [ref=e4382]
|
|
- cell "+" [ref=e4383]:
|
|
- generic [ref=e4384]: +
|
|
- cell "- [x] CHK018 The tasks include tests-first work and explicit runtime validation commands." [ref=e4385]:
|
|
- code [ref=e4386]: "- [x] CHK018 The tasks include tests-first work and explicit runtime validation commands."
|
|
- row "36 + - [x] CHK019 The task list keeps scope bounded and includes anti-creep guardrails against persistence or framework expansion." [ref=e4387]:
|
|
- cell [ref=e4388]
|
|
- cell "36" [ref=e4389]: "36"
|
|
- cell [ref=e4390]
|
|
- cell "+" [ref=e4391]:
|
|
- generic [ref=e4392]: +
|
|
- cell "- [x] CHK019 The task list keeps scope bounded and includes anti-creep guardrails against persistence or framework expansion." [ref=e4393]:
|
|
- code [ref=e4394]: "- [x] CHK019 The task list keeps scope bounded and includes anti-creep guardrails against persistence or framework expansion."
|
|
- row "37 +" [ref=e4395]:
|
|
- cell [ref=e4396]
|
|
- cell "37" [ref=e4397]: "37"
|
|
- cell [ref=e4398]
|
|
- cell "+" [ref=e4399]:
|
|
- generic [ref=e4400]: +
|
|
- cell [ref=e4401]:
|
|
- code
|
|
- 'row "38 + ## UI / Monitoring Coverage" [ref=e4402]':
|
|
- cell [ref=e4403]
|
|
- cell "38" [ref=e4404]: "38"
|
|
- cell [ref=e4405]
|
|
- cell "+" [ref=e4406]:
|
|
- generic [ref=e4407]: +
|
|
- cell "## UI / Monitoring Coverage" [ref=e4408]:
|
|
- code [ref=e4409]: "## UI / Monitoring Coverage"
|
|
- row "39 +" [ref=e4410]:
|
|
- cell [ref=e4411]
|
|
- cell "39" [ref=e4412]: "39"
|
|
- cell [ref=e4413]
|
|
- cell "+" [ref=e4414]:
|
|
- generic [ref=e4415]: +
|
|
- cell [ref=e4416]:
|
|
- code
|
|
- row "40 + - [x] CHK020 UI Surface Impact is completed and does not claim no-impact." [ref=e4417]:
|
|
- cell [ref=e4418]
|
|
- cell "40" [ref=e4419]: "40"
|
|
- cell [ref=e4420]
|
|
- cell "+" [ref=e4421]:
|
|
- generic [ref=e4422]: +
|
|
- cell "- [x] CHK020 UI Surface Impact is completed and does not claim no-impact." [ref=e4423]:
|
|
- code [ref=e4424]: "- [x] CHK020 UI Surface Impact is completed and does not claim no-impact."
|
|
- row "41 + - [x] CHK021 The changed surfaces are correctly classified as existing monitoring family follow-through, not a new strategic customer surface." [ref=e4425]:
|
|
- cell [ref=e4426]
|
|
- cell "41" [ref=e4427]: "41"
|
|
- cell [ref=e4428]
|
|
- cell "+" [ref=e4429]:
|
|
- generic [ref=e4430]: +
|
|
- cell "- [x] CHK021 The changed surfaces are correctly classified as existing monitoring family follow-through, not a new strategic customer surface." [ref=e4431]:
|
|
- code [ref=e4432]: "- [x] CHK021 The changed surfaces are correctly classified as existing monitoring family follow-through, not a new strategic customer surface."
|
|
- row "42 + - [x] CHK022 No new page-report identity or route-inventory expansion is required for this bounded monitoring-family wording fix." [ref=e4433]:
|
|
- cell [ref=e4434]
|
|
- cell "42" [ref=e4435]: "42"
|
|
- cell [ref=e4436]
|
|
- cell "+" [ref=e4437]:
|
|
- generic [ref=e4438]: +
|
|
- cell "- [x] CHK022 No new page-report identity or route-inventory expansion is required for this bounded monitoring-family wording fix." [ref=e4439]:
|
|
- code [ref=e4440]: "- [x] CHK022 No new page-report identity or route-inventory expansion is required for this bounded monitoring-family wording fix."
|
|
- row "43 + - [x] CHK023 Audience-aware disclosure and no-overclaim wording boundaries are explicit." [ref=e4441]:
|
|
- cell [ref=e4442]
|
|
- cell "43" [ref=e4443]: "43"
|
|
- cell [ref=e4444]
|
|
- cell "+" [ref=e4445]:
|
|
- generic [ref=e4446]: +
|
|
- cell "- [x] CHK023 Audience-aware disclosure and no-overclaim wording boundaries are explicit." [ref=e4447]:
|
|
- code [ref=e4448]: "- [x] CHK023 Audience-aware disclosure and no-overclaim wording boundaries are explicit."
|
|
- row "44 +" [ref=e4449]:
|
|
- cell [ref=e4450]
|
|
- cell "44" [ref=e4451]: "44"
|
|
- cell [ref=e4452]
|
|
- cell "+" [ref=e4453]:
|
|
- generic [ref=e4454]: +
|
|
- cell [ref=e4455]:
|
|
- code
|
|
- 'row "45 + ## Test Governance" [ref=e4456]':
|
|
- cell [ref=e4457]
|
|
- cell "45" [ref=e4458]: "45"
|
|
- cell [ref=e4459]
|
|
- cell "+" [ref=e4460]:
|
|
- generic [ref=e4461]: +
|
|
- cell "## Test Governance" [ref=e4462]:
|
|
- code [ref=e4463]: "## Test Governance"
|
|
- row "46 +" [ref=e4464]:
|
|
- cell [ref=e4465]
|
|
- cell "46" [ref=e4466]: "46"
|
|
- cell [ref=e4467]
|
|
- cell "+" [ref=e4468]:
|
|
- generic [ref=e4469]: +
|
|
- cell [ref=e4470]:
|
|
- code
|
|
- 'row "47 + - [x] CHK024 The declared test families are the narrowest honest proof: Unit plus focused Feature." [ref=e4471]':
|
|
- cell [ref=e4472]
|
|
- cell "47" [ref=e4473]: "47"
|
|
- cell [ref=e4474]
|
|
- cell "+" [ref=e4475]:
|
|
- generic [ref=e4476]: +
|
|
- 'cell "- [x] CHK024 The declared test families are the narrowest honest proof: Unit plus focused Feature." [ref=e4477]':
|
|
- code [ref=e4478]: "- [x] CHK024 The declared test families are the narrowest honest proof: Unit plus focused Feature."
|
|
- row "48 + - [x] CHK025 No broad new browser or heavy-governance family is introduced." [ref=e4479]:
|
|
- cell [ref=e4480]
|
|
- cell "48" [ref=e4481]: "48"
|
|
- cell [ref=e4482]
|
|
- cell "+" [ref=e4483]:
|
|
- generic [ref=e4484]: +
|
|
- cell "- [x] CHK025 No broad new browser or heavy-governance family is introduced." [ref=e4485]:
|
|
- code [ref=e4486]: "- [x] CHK025 No broad new browser or heavy-governance family is introduced."
|
|
- row "49 + - [x] CHK026 Planned validation commands are explicit and file-scoped." [ref=e4487]:
|
|
- cell [ref=e4488]
|
|
- cell "49" [ref=e4489]: "49"
|
|
- cell [ref=e4490]
|
|
- cell "+" [ref=e4491]:
|
|
- generic [ref=e4492]: +
|
|
- cell "- [x] CHK026 Planned validation commands are explicit and file-scoped." [ref=e4493]:
|
|
- code [ref=e4494]: "- [x] CHK026 Planned validation commands are explicit and file-scoped."
|
|
- row "50 +" [ref=e4495]:
|
|
- cell [ref=e4496]
|
|
- cell "50" [ref=e4497]: "50"
|
|
- cell [ref=e4498]
|
|
- cell "+" [ref=e4499]:
|
|
- generic [ref=e4500]: +
|
|
- cell [ref=e4501]:
|
|
- code
|
|
- 'row "51 + ## Readiness Gate Outcome" [ref=e4502]':
|
|
- cell [ref=e4503]
|
|
- cell "51" [ref=e4504]: "51"
|
|
- cell [ref=e4505]
|
|
- cell "+" [ref=e4506]:
|
|
- generic [ref=e4507]: +
|
|
- cell "## Readiness Gate Outcome" [ref=e4508]:
|
|
- code [ref=e4509]: "## Readiness Gate Outcome"
|
|
- row "52 +" [ref=e4510]:
|
|
- cell [ref=e4511]
|
|
- cell "52" [ref=e4512]: "52"
|
|
- cell [ref=e4513]
|
|
- cell "+" [ref=e4514]:
|
|
- generic [ref=e4515]: +
|
|
- cell [ref=e4516]:
|
|
- code
|
|
- row "53 + - [x] CHK027 Candidate Selection Gate passes." [ref=e4517]:
|
|
- cell [ref=e4518]
|
|
- cell "53" [ref=e4519]: "53"
|
|
- cell [ref=e4520]
|
|
- cell "+" [ref=e4521]:
|
|
- generic [ref=e4522]: +
|
|
- cell "- [x] CHK027 Candidate Selection Gate passes." [ref=e4523]:
|
|
- code [ref=e4524]: "- [x] CHK027 Candidate Selection Gate passes."
|
|
- row "54 + - [x] CHK028 Spec Readiness Gate passes." [ref=e4525]:
|
|
- cell [ref=e4526]
|
|
- cell "54" [ref=e4527]: "54"
|
|
- cell [ref=e4528]
|
|
- cell "+" [ref=e4529]:
|
|
- generic [ref=e4530]: +
|
|
- cell "- [x] CHK028 Spec Readiness Gate passes." [ref=e4531]:
|
|
- code [ref=e4532]: "- [x] CHK028 Spec Readiness Gate passes."
|
|
- row "55 + - [x] CHK029 Runtime implementation has not started in this preparation step." [ref=e4533]:
|
|
- cell [ref=e4534]
|
|
- cell "55" [ref=e4535]: "55"
|
|
- cell [ref=e4536]
|
|
- cell "+" [ref=e4537]:
|
|
- generic [ref=e4538]: +
|
|
- cell "- [x] CHK029 Runtime implementation has not started in this preparation step." [ref=e4539]:
|
|
- code [ref=e4540]: "- [x] CHK029 Runtime implementation has not started in this preparation step."
|
|
- row "56 + - [x] CHK030 Recommended next step is implementation, not more prep." [ref=e4541]:
|
|
- cell [ref=e4542]
|
|
- cell "56" [ref=e4543]: "56"
|
|
- cell [ref=e4544]
|
|
- cell "+" [ref=e4545]:
|
|
- generic [ref=e4546]: +
|
|
- cell "- [x] CHK030 Recommended next step is implementation, not more prep." [ref=e4547]:
|
|
- code [ref=e4548]: "- [x] CHK030 Recommended next step is implementation, not more prep."
|
|
- row "57 +" [ref=e4549]:
|
|
- cell [ref=e4550]
|
|
- cell "57" [ref=e4551]: "57"
|
|
- cell [ref=e4552]
|
|
- cell "+" [ref=e4553]:
|
|
- generic [ref=e4554]: +
|
|
- cell [ref=e4555]:
|
|
- code
|
|
- 'row "58 + ## Review Outcome" [ref=e4556]':
|
|
- cell [ref=e4557]
|
|
- cell "58" [ref=e4558]: "58"
|
|
- cell [ref=e4559]
|
|
- cell "+" [ref=e4560]:
|
|
- generic [ref=e4561]: +
|
|
- cell "## Review Outcome" [ref=e4562]:
|
|
- code [ref=e4563]: "## Review Outcome"
|
|
- row "59 +" [ref=e4564]:
|
|
- cell [ref=e4565]
|
|
- cell "59" [ref=e4566]: "59"
|
|
- cell [ref=e4567]
|
|
- cell "+" [ref=e4568]:
|
|
- generic [ref=e4569]: +
|
|
- cell [ref=e4570]:
|
|
- code
|
|
- 'row "60 + - [x] Outcome class: acceptable-special-case" [ref=e4571]':
|
|
- cell [ref=e4572]
|
|
- cell "60" [ref=e4573]: "60"
|
|
- cell [ref=e4574]
|
|
- cell "+" [ref=e4575]:
|
|
- generic [ref=e4576]: +
|
|
- 'cell "- [x] Outcome class: acceptable-special-case" [ref=e4577]':
|
|
- code [ref=e4578]: "- [x] Outcome class: acceptable-special-case"
|
|
- 'row "61 + - [x] Workflow outcome: keep" [ref=e4579]':
|
|
- cell [ref=e4580]
|
|
- cell "61" [ref=e4581]: "61"
|
|
- cell [ref=e4582]
|
|
- cell "+" [ref=e4583]:
|
|
- generic [ref=e4584]: +
|
|
- 'cell "- [x] Workflow outcome: keep" [ref=e4585]':
|
|
- code [ref=e4586]: "- [x] Workflow outcome: keep"
|
|
- 'row "62 + - [x] Final note location: active feature PR close-out entry `Guardrail / Smoke Coverage`" [ref=e4587]':
|
|
- cell [ref=e4588]
|
|
- cell "62" [ref=e4589]: "62"
|
|
- cell [ref=e4590]
|
|
- cell "+" [ref=e4591]:
|
|
- generic [ref=e4592]: +
|
|
- 'cell "- [x] Final note location: active feature PR close-out entry `Guardrail / Smoke Coverage`" [ref=e4593]':
|
|
- code [ref=e4594]: "- [x] Final note location: active feature PR close-out entry `Guardrail / Smoke Coverage`"
|
|
- 'row "63 + - [x] Preparation analyze result: pass via repo-based artifact review checklist; no standalone local `speckit.analyze` command was available in this repo surface" [ref=e4595]':
|
|
- cell [ref=e4596]
|
|
- cell "63" [ref=e4597]: "63"
|
|
- cell [ref=e4598]
|
|
- cell "+" [ref=e4599]:
|
|
- generic [ref=e4600]: +
|
|
- 'cell "- [x] Preparation analyze result: pass via repo-based artifact review checklist; no standalone local `speckit.analyze` command was available in this repo surface" [ref=e4601]':
|
|
- code [ref=e4602]: "- [x] Preparation analyze result: pass via repo-based artifact review checklist; no standalone local `speckit.analyze` command was available in this repo surface"
|
|
- 'row "64 + - [x] Tooling note: the repo-generated branch number advanced to `1000`, and local `setup-plan.sh` rejected that 4-digit prefix; the final prep artifacts were therefore authored manually under the user-requested `358` package without changing application runtime code" [ref=e4603]':
|
|
- cell [ref=e4604]
|
|
- cell "64" [ref=e4605]: "64"
|
|
- cell [ref=e4606]
|
|
- cell "+" [ref=e4607]:
|
|
- generic [ref=e4608]: +
|
|
- 'cell "- [x] Tooling note: the repo-generated branch number advanced to `1000`, and local `setup-plan.sh` rejected that 4-digit prefix; the final prep artifacts were therefore authored manually under the user-requested `358` package without changing application runtime code" [ref=e4609]':
|
|
- code [ref=e4610]: "- [x] Tooling note: the repo-generated branch number advanced to `1000`, and local `setup-plan.sh` rejected that 4-digit prefix; the final prep artifacts were therefore authored manually under the user-requested `358` package without changing application runtime code"
|
|
- generic [ref=e4611]:
|
|
- 'heading "209 209 Änderungen: 209 Ergänzungen und 0 Löschungen specs/358-operationrun-queue-truth-foundation/plan.md Normale Datei Datei anzeigen" [level=4] [ref=e4612]':
|
|
- generic [ref=e4613]:
|
|
- button [ref=e4614] [cursor=pointer]:
|
|
- img [ref=e4615]
|
|
- generic [ref=e4617]:
|
|
- text: "209"
|
|
- 'generic "209 Änderungen: 209 Ergänzungen und 0 Löschungen" [ref=e4618]'
|
|
- generic [ref=e4620]:
|
|
- link "specs/358-operationrun-queue-truth-foundation/plan.md" [ref=e4621] [cursor=pointer]:
|
|
- /url: "#diff-4aa32f063db4833018cc45ff1b404fbf79327413"
|
|
- button [ref=e4622] [cursor=pointer]:
|
|
- img [ref=e4623]
|
|
- generic [ref=e4626]: Normale Datei
|
|
- link "Datei anzeigen" [ref=e4628] [cursor=pointer]:
|
|
- /url: /ahmido/TenantAtlas/src/commit/03514b9e5b2addf53d5441f0fc122ccef0b51999/specs/358-operationrun-queue-truth-foundation/plan.md
|
|
- table [ref=e4631]:
|
|
- rowgroup [ref=e4638]:
|
|
- row "@ -0,0 +1,209 @@" [ref=e4639]:
|
|
- cell [ref=e4640]
|
|
- cell [ref=e4641]
|
|
- cell [ref=e4642]
|
|
- cell "@ -0,0 +1,209 @@" [ref=e4643]:
|
|
- code [ref=e4644]: "@ -0,0 +1,209 @@"
|
|
- 'row "1 + # Implementation Plan: OperationRun Queue Truth Foundation" [ref=e4645]':
|
|
- cell [ref=e4646]
|
|
- cell "1" [ref=e4647]: "1"
|
|
- cell [ref=e4648]
|
|
- cell "+" [ref=e4649]:
|
|
- generic [ref=e4650]: +
|
|
- 'cell "# Implementation Plan: OperationRun Queue Truth Foundation" [ref=e4651]':
|
|
- code [ref=e4652]: "# Implementation Plan: OperationRun Queue Truth Foundation"
|
|
- row "2 +" [ref=e4653]:
|
|
- cell [ref=e4654]
|
|
- cell "2" [ref=e4655]: "2"
|
|
- cell [ref=e4656]
|
|
- cell "+" [ref=e4657]:
|
|
- generic [ref=e4658]: +
|
|
- cell [ref=e4659]:
|
|
- code
|
|
- 'row "3 + **Branch**: `358-operationrun-queue-truth-foundation` | **Date**: 2026-06-06 | **Spec**: `specs/358-operationrun-queue-truth-foundation/spec.md`" [ref=e4660]':
|
|
- cell [ref=e4661]
|
|
- cell "3" [ref=e4662]: "3"
|
|
- cell [ref=e4663]
|
|
- cell "+" [ref=e4664]:
|
|
- generic [ref=e4665]: +
|
|
- 'cell "**Branch**: `358-operationrun-queue-truth-foundation` | **Date**: 2026-06-06 | **Spec**: `specs/358-operationrun-queue-truth-foundation/spec.md`" [ref=e4666]':
|
|
- code [ref=e4667]: "**Branch**: `358-operationrun-queue-truth-foundation` | **Date**: 2026-06-06 | **Spec**: `specs/358-operationrun-queue-truth-foundation/spec.md`"
|
|
- 'row "4 + **Input**: Feature specification from `specs/358-operationrun-queue-truth-foundation/spec.md`" [ref=e4668]':
|
|
- cell [ref=e4669]
|
|
- cell "4" [ref=e4670]: "4"
|
|
- cell [ref=e4671]
|
|
- cell "+" [ref=e4672]:
|
|
- generic [ref=e4673]: +
|
|
- 'cell "**Input**: Feature specification from `specs/358-operationrun-queue-truth-foundation/spec.md`" [ref=e4674]':
|
|
- code [ref=e4675]: "**Input**: Feature specification from `specs/358-operationrun-queue-truth-foundation/spec.md`"
|
|
- row "5 +" [ref=e4676]:
|
|
- cell [ref=e4677]
|
|
- cell "5" [ref=e4678]: "5"
|
|
- cell [ref=e4679]
|
|
- cell "+" [ref=e4680]:
|
|
- generic [ref=e4681]: +
|
|
- cell [ref=e4682]:
|
|
- code
|
|
- 'row "6 + ## Summary" [ref=e4683]':
|
|
- cell [ref=e4684]
|
|
- cell "6" [ref=e4685]: "6"
|
|
- cell [ref=e4686]
|
|
- cell "+" [ref=e4687]:
|
|
- generic [ref=e4688]: +
|
|
- cell "## Summary" [ref=e4689]:
|
|
- code [ref=e4690]: "## Summary"
|
|
- row "7 +" [ref=e4691]:
|
|
- cell [ref=e4692]
|
|
- cell "7" [ref=e4693]: "7"
|
|
- cell [ref=e4694]
|
|
- cell "+" [ref=e4695]:
|
|
- generic [ref=e4696]: +
|
|
- cell [ref=e4697]:
|
|
- code
|
|
- 'row "8 + Implement a narrow follow-up that aligns generic `OperationRun` queue truth across the existing lifecycle, freshness, progress, and monitoring-detail helpers. The slice must reuse current `OperationRun` persistence, current scheduled and adapter reconciliation behavior, current run links, and current authorization boundaries while removing contradictory active-work wording from shell, list, and canonical detail surfaces." [ref=e4698]':
|
|
- cell [ref=e4699]
|
|
- cell "8" [ref=e4700]: "8"
|
|
- cell [ref=e4701]
|
|
- cell "+" [ref=e4702]:
|
|
- generic [ref=e4703]: +
|
|
- 'cell "Implement a narrow follow-up that aligns generic `OperationRun` queue truth across the existing lifecycle, freshness, progress, and monitoring-detail helpers. The slice must reuse current `OperationRun` persistence, current scheduled and adapter reconciliation behavior, current run links, and current authorization boundaries while removing contradictory active-work wording from shell, list, and canonical detail surfaces." [ref=e4704]':
|
|
- code [ref=e4705]: "Implement a narrow follow-up that aligns generic `OperationRun` queue truth across the existing lifecycle, freshness, progress, and monitoring-detail helpers. The slice must reuse current `OperationRun` persistence, current scheduled and adapter reconciliation behavior, current run links, and current authorization boundaries while removing contradictory active-work wording from shell, list, and canonical detail surfaces."
|
|
- row "9 +" [ref=e4706]:
|
|
- cell [ref=e4707]
|
|
- cell "9" [ref=e4708]: "9"
|
|
- cell [ref=e4709]
|
|
- cell "+" [ref=e4710]:
|
|
- generic [ref=e4711]: +
|
|
- cell [ref=e4712]:
|
|
- code
|
|
- row "10 + The repo already contains the foundations from Specs 149, 160, 233, 268, 270, and 272. This plan must not reopen those packages or invent a new reconciliation framework. It only corrects the remaining generic truth gap in current runtime code." [ref=e4713]:
|
|
- cell [ref=e4714]
|
|
- cell "10" [ref=e4715]: "10"
|
|
- cell [ref=e4716]
|
|
- cell "+" [ref=e4717]:
|
|
- generic [ref=e4718]: +
|
|
- cell "The repo already contains the foundations from Specs 149, 160, 233, 268, 270, and 272. This plan must not reopen those packages or invent a new reconciliation framework. It only corrects the remaining generic truth gap in current runtime code." [ref=e4719]:
|
|
- code [ref=e4720]: The repo already contains the foundations from Specs 149, 160, 233, 268, 270, and 272. This plan must not reopen those packages or invent a new reconciliation framework. It only corrects the remaining generic truth gap in current runtime code.
|
|
- row "11 +" [ref=e4721]:
|
|
- cell [ref=e4722]
|
|
- cell "11" [ref=e4723]: "11"
|
|
- cell [ref=e4724]
|
|
- cell "+" [ref=e4725]:
|
|
- generic [ref=e4726]: +
|
|
- cell [ref=e4727]:
|
|
- code
|
|
- 'row "12 + ## Technical Context" [ref=e4728]':
|
|
- cell [ref=e4729]
|
|
- cell "12" [ref=e4730]: "12"
|
|
- cell [ref=e4731]
|
|
- cell "+" [ref=e4732]:
|
|
- generic [ref=e4733]: +
|
|
- cell "## Technical Context" [ref=e4734]:
|
|
- code [ref=e4735]: "## Technical Context"
|
|
- row "13 +" [ref=e4736]:
|
|
- cell [ref=e4737]
|
|
- cell "13" [ref=e4738]: "13"
|
|
- cell [ref=e4739]
|
|
- cell "+" [ref=e4740]:
|
|
- generic [ref=e4741]: +
|
|
- cell [ref=e4742]:
|
|
- code
|
|
- 'row "14 + **Language/Version**: PHP 8.4.15, Laravel 12.52, Filament 5.2.1, Livewire 4.1.4" [ref=e4743]':
|
|
- cell [ref=e4744]
|
|
- cell "14" [ref=e4745]: "14"
|
|
- cell [ref=e4746]
|
|
- cell "+" [ref=e4747]:
|
|
- generic [ref=e4748]: +
|
|
- 'cell "**Language/Version**: PHP 8.4.15, Laravel 12.52, Filament 5.2.1, Livewire 4.1.4" [ref=e4749]':
|
|
- code [ref=e4750]: "**Language/Version**: PHP 8.4.15, Laravel 12.52, Filament 5.2.1, Livewire 4.1.4"
|
|
- 'row "15 + **Primary Dependencies**: existing `OperationRun` monitoring helpers, `OperationRunProgressContract`, `RunDurationInsights`, `OperationUxPresenter`, current Filament Monitoring pages and shared `OperationRun` implementation seams, Pest 4.3" [ref=e4751]':
|
|
- cell [ref=e4752]
|
|
- cell "15" [ref=e4753]: "15"
|
|
- cell [ref=e4754]
|
|
- cell "+" [ref=e4755]:
|
|
- generic [ref=e4756]: +
|
|
- 'cell "**Primary Dependencies**: existing `OperationRun` monitoring helpers, `OperationRunProgressContract`, `RunDurationInsights`, `OperationUxPresenter`, current Filament Monitoring pages and shared `OperationRun` implementation seams, Pest 4.3" [ref=e4757]':
|
|
- code [ref=e4758]: "**Primary Dependencies**: existing `OperationRun` monitoring helpers, `OperationRunProgressContract`, `RunDurationInsights`, `OperationUxPresenter`, current Filament Monitoring pages and shared `OperationRun` implementation seams, Pest 4.3"
|
|
- 'row "16 + **Storage**: PostgreSQL `operation_runs`; no schema change planned" [ref=e4759]':
|
|
- cell [ref=e4760]
|
|
- cell "16" [ref=e4761]: "16"
|
|
- cell [ref=e4762]
|
|
- cell "+" [ref=e4763]:
|
|
- generic [ref=e4764]: +
|
|
- 'cell "**Storage**: PostgreSQL `operation_runs`; no schema change planned" [ref=e4765]':
|
|
- code [ref=e4766]: "**Storage**: PostgreSQL `operation_runs`; no schema change planned"
|
|
- 'row "17 + **Testing**: Pest Unit + Feature" [ref=e4767]':
|
|
- cell [ref=e4768]
|
|
- cell "17" [ref=e4769]: "17"
|
|
- cell [ref=e4770]
|
|
- cell "+" [ref=e4771]:
|
|
- generic [ref=e4772]: +
|
|
- 'cell "**Testing**: Pest Unit + Feature" [ref=e4773]':
|
|
- code [ref=e4774]: "**Testing**: Pest Unit + Feature"
|
|
- 'row "18 + **Validation Lanes**: fast-feedback, confidence" [ref=e4775]':
|
|
- cell [ref=e4776]
|
|
- cell "18" [ref=e4777]: "18"
|
|
- cell [ref=e4778]
|
|
- cell "+" [ref=e4779]:
|
|
- generic [ref=e4780]: +
|
|
- 'cell "**Validation Lanes**: fast-feedback, confidence" [ref=e4781]':
|
|
- code [ref=e4782]: "**Validation Lanes**: fast-feedback, confidence"
|
|
- 'row "19 + **Target Platform**: Laravel monolith in `apps/platform`" [ref=e4783]':
|
|
- cell [ref=e4784]
|
|
- cell "19" [ref=e4785]: "19"
|
|
- cell [ref=e4786]
|
|
- cell "+" [ref=e4787]:
|
|
- generic [ref=e4788]: +
|
|
- 'cell "**Target Platform**: Laravel monolith in `apps/platform`" [ref=e4789]':
|
|
- code [ref=e4790]: "**Target Platform**: Laravel monolith in `apps/platform`"
|
|
- 'row "20 + **Project Type**: web application" [ref=e4791]':
|
|
- cell [ref=e4792]
|
|
- cell "20" [ref=e4793]: "20"
|
|
- cell [ref=e4794]
|
|
- cell "+" [ref=e4795]:
|
|
- generic [ref=e4796]: +
|
|
- 'cell "**Project Type**: web application" [ref=e4797]':
|
|
- code [ref=e4798]: "**Project Type**: web application"
|
|
- 'row "21 + **Performance Goals**: keep current polling/query posture unchanged; no new queries or background work required for render-time truth" [ref=e4799]':
|
|
- cell [ref=e4800]
|
|
- cell "21" [ref=e4801]: "21"
|
|
- cell [ref=e4802]
|
|
- cell "+" [ref=e4803]:
|
|
- generic [ref=e4804]: +
|
|
- 'cell "**Performance Goals**: keep current polling/query posture unchanged; no new queries or background work required for render-time truth" [ref=e4805]':
|
|
- code [ref=e4806]: "**Performance Goals**: keep current polling/query posture unchanged; no new queries or background work required for render-time truth"
|
|
- 'row "22 + **Constraints**: no new `OperationRun` status/outcome fields, no new adapter registry, no new queue/job commands, no Graph calls, no notification policy change" [ref=e4807]':
|
|
- cell [ref=e4808]
|
|
- cell "22" [ref=e4809]: "22"
|
|
- cell [ref=e4810]
|
|
- cell "+" [ref=e4811]:
|
|
- generic [ref=e4812]: +
|
|
- 'cell "**Constraints**: no new `OperationRun` status/outcome fields, no new adapter registry, no new queue/job commands, no Graph calls, no notification policy change" [ref=e4813]':
|
|
- code [ref=e4814]: "**Constraints**: no new `OperationRun` status/outcome fields, no new adapter registry, no new queue/job commands, no Graph calls, no notification policy change"
|
|
- 'row "23 + **Scale/Scope**: one shared derived truth path plus current shell/list/detail monitoring surfaces and focused regression coverage" [ref=e4815]':
|
|
- cell [ref=e4816]
|
|
- cell "23" [ref=e4817]: "23"
|
|
- cell [ref=e4818]
|
|
- cell "+" [ref=e4819]:
|
|
- generic [ref=e4820]: +
|
|
- 'cell "**Scale/Scope**: one shared derived truth path plus current shell/list/detail monitoring surfaces and focused regression coverage" [ref=e4821]':
|
|
- code [ref=e4822]: "**Scale/Scope**: one shared derived truth path plus current shell/list/detail monitoring surfaces and focused regression coverage"
|
|
- row "24 +" [ref=e4823]:
|
|
- cell [ref=e4824]
|
|
- cell "24" [ref=e4825]: "24"
|
|
- cell [ref=e4826]
|
|
- cell "+" [ref=e4827]:
|
|
- generic [ref=e4828]: +
|
|
- cell [ref=e4829]:
|
|
- code
|
|
- 'row "25 + ## Likely Affected Repo Surfaces" [ref=e4830]':
|
|
- cell [ref=e4831]
|
|
- cell "25" [ref=e4832]: "25"
|
|
- cell [ref=e4833]
|
|
- cell "+" [ref=e4834]:
|
|
- generic [ref=e4835]: +
|
|
- cell "## Likely Affected Repo Surfaces" [ref=e4836]:
|
|
- code [ref=e4837]: "## Likely Affected Repo Surfaces"
|
|
- row "26 +" [ref=e4838]:
|
|
- cell [ref=e4839]
|
|
- cell "26" [ref=e4840]: "26"
|
|
- cell [ref=e4841]
|
|
- cell "+" [ref=e4842]:
|
|
- generic [ref=e4843]: +
|
|
- cell [ref=e4844]:
|
|
- code
|
|
- 'row "27 + - `apps/platform/app/Support/OpsUx/OperationRunProgressContract.php`" [ref=e4845]':
|
|
- cell [ref=e4846]
|
|
- cell "27" [ref=e4847]: "27"
|
|
- cell [ref=e4848]
|
|
- cell "+" [ref=e4849]:
|
|
- generic [ref=e4850]: +
|
|
- 'cell "- `apps/platform/app/Support/OpsUx/OperationRunProgressContract.php`" [ref=e4851]':
|
|
- code [ref=e4852]: "- `apps/platform/app/Support/OpsUx/OperationRunProgressContract.php`"
|
|
- 'row "28 + - `apps/platform/app/Support/OpsUx/RunDurationInsights.php`" [ref=e4853]':
|
|
- cell [ref=e4854]
|
|
- cell "28" [ref=e4855]: "28"
|
|
- cell [ref=e4856]
|
|
- cell "+" [ref=e4857]:
|
|
- generic [ref=e4858]: +
|
|
- 'cell "- `apps/platform/app/Support/OpsUx/RunDurationInsights.php`" [ref=e4859]':
|
|
- code [ref=e4860]: "- `apps/platform/app/Support/OpsUx/RunDurationInsights.php`"
|
|
- 'row "29 + - `apps/platform/app/Support/OpsUx/OperationUxPresenter.php`" [ref=e4861]':
|
|
- cell [ref=e4862]
|
|
- cell "29" [ref=e4863]: "29"
|
|
- cell [ref=e4864]
|
|
- cell "+" [ref=e4865]:
|
|
- generic [ref=e4866]: +
|
|
- 'cell "- `apps/platform/app/Support/OpsUx/OperationUxPresenter.php`" [ref=e4867]':
|
|
- code [ref=e4868]: "- `apps/platform/app/Support/OpsUx/OperationUxPresenter.php`"
|
|
- 'row "30 + - `apps/platform/app/Support/Operations/OperationRunFreshnessState.php` only if the current derivation needs a small bounded clarification" [ref=e4869]':
|
|
- cell [ref=e4870]
|
|
- cell "30" [ref=e4871]: "30"
|
|
- cell [ref=e4872]
|
|
- cell "+" [ref=e4873]:
|
|
- generic [ref=e4874]: +
|
|
- 'cell "- `apps/platform/app/Support/Operations/OperationRunFreshnessState.php` only if the current derivation needs a small bounded clarification" [ref=e4875]':
|
|
- code [ref=e4876]: "- `apps/platform/app/Support/Operations/OperationRunFreshnessState.php` only if the current derivation needs a small bounded clarification"
|
|
- 'row "31 + - `apps/platform/resources/views/livewire/bulk-operation-progress.blade.php`" [ref=e4877]':
|
|
- cell [ref=e4878]
|
|
- cell "31" [ref=e4879]: "31"
|
|
- cell [ref=e4880]
|
|
- cell "+" [ref=e4881]:
|
|
- generic [ref=e4882]: +
|
|
- 'cell "- `apps/platform/resources/views/livewire/bulk-operation-progress.blade.php`" [ref=e4883]':
|
|
- code [ref=e4884]: "- `apps/platform/resources/views/livewire/bulk-operation-progress.blade.php`"
|
|
- 'row "32 + - `apps/platform/app/Filament/Pages/Monitoring/Operations.php` as the current route-backed Operations hub surface" [ref=e4885]':
|
|
- cell [ref=e4886]
|
|
- cell "32" [ref=e4887]: "32"
|
|
- cell [ref=e4888]
|
|
- cell "+" [ref=e4889]:
|
|
- generic [ref=e4890]: +
|
|
- 'cell "- `apps/platform/app/Filament/Pages/Monitoring/Operations.php` as the current route-backed Operations hub surface" [ref=e4891]':
|
|
- code [ref=e4892]: "- `apps/platform/app/Filament/Pages/Monitoring/Operations.php` as the current route-backed Operations hub surface"
|
|
- 'row "33 + - `apps/platform/resources/views/filament/pages/monitoring/operations.blade.php` only if current workbench/list wording needs a bounded adjustment" [ref=e4893]':
|
|
- cell [ref=e4894]
|
|
- cell "33" [ref=e4895]: "33"
|
|
- cell [ref=e4896]
|
|
- cell "+" [ref=e4897]:
|
|
- generic [ref=e4898]: +
|
|
- 'cell "- `apps/platform/resources/views/filament/pages/monitoring/operations.blade.php` only if current workbench/list wording needs a bounded adjustment" [ref=e4899]':
|
|
- code [ref=e4900]: "- `apps/platform/resources/views/filament/pages/monitoring/operations.blade.php` only if current workbench/list wording needs a bounded adjustment"
|
|
- 'row "34 + - `apps/platform/app/Filament/Resources/OperationRunResource.php` only as the reused table/detail payload seam, not as a route-backed surface" [ref=e4901]':
|
|
- cell [ref=e4902]
|
|
- cell "34" [ref=e4903]: "34"
|
|
- cell [ref=e4904]
|
|
- cell "+" [ref=e4905]:
|
|
- generic [ref=e4906]: +
|
|
- 'cell "- `apps/platform/app/Filament/Resources/OperationRunResource.php` only as the reused table/detail payload seam, not as a route-backed surface" [ref=e4907]':
|
|
- code [ref=e4908]: "- `apps/platform/app/Filament/Resources/OperationRunResource.php` only as the reused table/detail payload seam, not as a route-backed surface"
|
|
- 'row "35 + - `apps/platform/app/Filament/Pages/Operations/TenantlessOperationRunViewer.php`" [ref=e4909]':
|
|
- cell [ref=e4910]
|
|
- cell "35" [ref=e4911]: "35"
|
|
- cell [ref=e4912]
|
|
- cell "+" [ref=e4913]:
|
|
- generic [ref=e4914]: +
|
|
- 'cell "- `apps/platform/app/Filament/Pages/Operations/TenantlessOperationRunViewer.php`" [ref=e4915]':
|
|
- code [ref=e4916]: "- `apps/platform/app/Filament/Pages/Operations/TenantlessOperationRunViewer.php`"
|
|
- row "36 + - focused tests under:" [ref=e4917]:
|
|
- cell [ref=e4918]
|
|
- cell "36" [ref=e4919]: "36"
|
|
- cell [ref=e4920]
|
|
- cell "+" [ref=e4921]:
|
|
- generic [ref=e4922]: +
|
|
- cell "- focused tests under:" [ref=e4923]:
|
|
- code [ref=e4924]: "- focused tests under:"
|
|
- 'row "37 + - `apps/platform/tests/Unit/Support/OpsUx/`" [ref=e4925]':
|
|
- cell [ref=e4926]
|
|
- cell "37" [ref=e4927]: "37"
|
|
- cell [ref=e4928]
|
|
- cell "+" [ref=e4929]:
|
|
- generic [ref=e4930]: +
|
|
- 'cell "- `apps/platform/tests/Unit/Support/OpsUx/`" [ref=e4931]':
|
|
- code [ref=e4932]: "- `apps/platform/tests/Unit/Support/OpsUx/`"
|
|
- 'row "38 + - `apps/platform/tests/Feature/OpsUx/`" [ref=e4933]':
|
|
- cell [ref=e4934]
|
|
- cell "38" [ref=e4935]: "38"
|
|
- cell [ref=e4936]
|
|
- cell "+" [ref=e4937]:
|
|
- generic [ref=e4938]: +
|
|
- 'cell "- `apps/platform/tests/Feature/OpsUx/`" [ref=e4939]':
|
|
- code [ref=e4940]: "- `apps/platform/tests/Feature/OpsUx/`"
|
|
- 'row "39 + - `apps/platform/tests/Feature/Monitoring/`" [ref=e4941]':
|
|
- cell [ref=e4942]
|
|
- cell "39" [ref=e4943]: "39"
|
|
- cell [ref=e4944]
|
|
- cell "+" [ref=e4945]:
|
|
- generic [ref=e4946]: +
|
|
- 'cell "- `apps/platform/tests/Feature/Monitoring/`" [ref=e4947]':
|
|
- code [ref=e4948]: "- `apps/platform/tests/Feature/Monitoring/`"
|
|
- 'row "40 + - `apps/platform/tests/Feature/Filament/`" [ref=e4949]':
|
|
- cell [ref=e4950]
|
|
- cell "40" [ref=e4951]: "40"
|
|
- cell [ref=e4952]
|
|
- cell "+" [ref=e4953]:
|
|
- generic [ref=e4954]: +
|
|
- 'cell "- `apps/platform/tests/Feature/Filament/`" [ref=e4955]':
|
|
- code [ref=e4956]: "- `apps/platform/tests/Feature/Filament/`"
|
|
- 'row "41 + - `apps/platform/tests/Feature/Operations/`" [ref=e4957]':
|
|
- cell [ref=e4958]
|
|
- cell "41" [ref=e4959]: "41"
|
|
- cell [ref=e4960]
|
|
- cell "+" [ref=e4961]:
|
|
- generic [ref=e4962]: +
|
|
- 'cell "- `apps/platform/tests/Feature/Operations/`" [ref=e4963]':
|
|
- code [ref=e4964]: "- `apps/platform/tests/Feature/Operations/`"
|
|
- row "42 +" [ref=e4965]:
|
|
- cell [ref=e4966]
|
|
- cell "42" [ref=e4967]: "42"
|
|
- cell [ref=e4968]
|
|
- cell "+" [ref=e4969]:
|
|
- generic [ref=e4970]: +
|
|
- cell [ref=e4971]:
|
|
- code
|
|
- 'row "43 + ## UI / Surface Guardrail Plan" [ref=e4972]':
|
|
- cell [ref=e4973]
|
|
- cell "43" [ref=e4974]: "43"
|
|
- cell [ref=e4975]
|
|
- cell "+" [ref=e4976]:
|
|
- generic [ref=e4977]: +
|
|
- cell "## UI / Surface Guardrail Plan" [ref=e4978]:
|
|
- code [ref=e4979]: "## UI / Surface Guardrail Plan"
|
|
- row "44 +" [ref=e4980]:
|
|
- cell [ref=e4981]
|
|
- cell "44" [ref=e4982]: "44"
|
|
- cell [ref=e4983]
|
|
- cell "+" [ref=e4984]:
|
|
- generic [ref=e4985]: +
|
|
- cell [ref=e4986]:
|
|
- code
|
|
- 'row "45 + - **Guardrail scope**: existing operator-facing monitoring surfaces only" [ref=e4987]':
|
|
- cell [ref=e4988]
|
|
- cell "45" [ref=e4989]: "45"
|
|
- cell [ref=e4990]
|
|
- cell "+" [ref=e4991]:
|
|
- generic [ref=e4992]: +
|
|
- 'cell "- **Guardrail scope**: existing operator-facing monitoring surfaces only" [ref=e4993]':
|
|
- code [ref=e4994]: "- **Guardrail scope**: existing operator-facing monitoring surfaces only"
|
|
- row "46 + - **Affected routes/pages/actions/states/navigation/panel/provider surfaces**:" [ref=e4995]:
|
|
- cell [ref=e4996]
|
|
- cell "46" [ref=e4997]: "46"
|
|
- cell [ref=e4998]
|
|
- cell "+" [ref=e4999]:
|
|
- generic [ref=e5000]: +
|
|
- cell "- **Affected routes/pages/actions/states/navigation/panel/provider surfaces**:" [ref=e5001]:
|
|
- code [ref=e5002]: "- **Affected routes/pages/actions/states/navigation/panel/provider surfaces**:"
|
|
- row "47 + - tenant shell activity hint" [ref=e5003]:
|
|
- cell [ref=e5004]
|
|
- cell "47" [ref=e5005]: "47"
|
|
- cell [ref=e5006]
|
|
- cell "+" [ref=e5007]:
|
|
- generic [ref=e5008]: +
|
|
- cell "- tenant shell activity hint" [ref=e5009]:
|
|
- code [ref=e5010]: "- tenant shell activity hint"
|
|
- 'row "48 + - `/admin/workspaces/{workspace}/operations` via `App\\Filament\\Pages\\Monitoring\\Operations`" [ref=e5011]':
|
|
- cell [ref=e5012]
|
|
- cell "48" [ref=e5013]: "48"
|
|
- cell [ref=e5014]
|
|
- cell "+" [ref=e5015]:
|
|
- generic [ref=e5016]: +
|
|
- 'cell "- `/admin/workspaces/{workspace}/operations` via `App\\Filament\\Pages\\Monitoring\\Operations`" [ref=e5017]':
|
|
- code [ref=e5018]: "- `/admin/workspaces/{workspace}/operations` via `App\\Filament\\Pages\\Monitoring\\Operations`"
|
|
- 'row "49 + - `/admin/workspaces/{workspace}/operations/{run}` via `App\\Filament\\Pages\\Operations\\TenantlessOperationRunViewer`" [ref=e5019]':
|
|
- cell [ref=e5020]
|
|
- cell "49" [ref=e5021]: "49"
|
|
- cell [ref=e5022]
|
|
- cell "+" [ref=e5023]:
|
|
- generic [ref=e5024]: +
|
|
- 'cell "- `/admin/workspaces/{workspace}/operations/{run}` via `App\\Filament\\Pages\\Operations\\TenantlessOperationRunViewer`" [ref=e5025]':
|
|
- code [ref=e5026]: "- `/admin/workspaces/{workspace}/operations/{run}` via `App\\Filament\\Pages\\Operations\\TenantlessOperationRunViewer`"
|
|
- 'row "50 + - **No-impact class, if applicable**: N/A" [ref=e5027]':
|
|
- cell [ref=e5028]
|
|
- cell "50" [ref=e5029]: "50"
|
|
- cell [ref=e5030]
|
|
- cell "+" [ref=e5031]:
|
|
- generic [ref=e5032]: +
|
|
- 'cell "- **No-impact class, if applicable**: N/A" [ref=e5033]':
|
|
- code [ref=e5034]: "- **No-impact class, if applicable**: N/A"
|
|
- 'row "51 + - **Native vs custom classification summary**: native Filament surfaces plus one existing Livewire shell host" [ref=e5035]':
|
|
- cell [ref=e5036]
|
|
- cell "51" [ref=e5037]: "51"
|
|
- cell [ref=e5038]
|
|
- cell "+" [ref=e5039]:
|
|
- generic [ref=e5040]: +
|
|
- 'cell "- **Native vs custom classification summary**: native Filament surfaces plus one existing Livewire shell host" [ref=e5041]':
|
|
- code [ref=e5042]: "- **Native vs custom classification summary**: native Filament surfaces plus one existing Livewire shell host"
|
|
- 'row "52 + - **Shared-family relevance**: monitoring-state messaging, queue guidance, active-run hinting" [ref=e5043]':
|
|
- cell [ref=e5044]
|
|
- cell "52" [ref=e5045]: "52"
|
|
- cell [ref=e5046]
|
|
- cell "+" [ref=e5047]:
|
|
- generic [ref=e5048]: +
|
|
- 'cell "- **Shared-family relevance**: monitoring-state messaging, queue guidance, active-run hinting" [ref=e5049]':
|
|
- code [ref=e5050]: "- **Shared-family relevance**: monitoring-state messaging, queue guidance, active-run hinting"
|
|
- 'row "53 + - **State layers in scope**: shell, page, detail" [ref=e5051]':
|
|
- cell [ref=e5052]
|
|
- cell "53" [ref=e5053]: "53"
|
|
- cell [ref=e5054]
|
|
- cell "+" [ref=e5055]:
|
|
- generic [ref=e5056]: +
|
|
- 'cell "- **State layers in scope**: shell, page, detail" [ref=e5057]':
|
|
- code [ref=e5058]: "- **State layers in scope**: shell, page, detail"
|
|
- 'row "54 + - **Audience modes in scope**: operator-MSP, support-platform" [ref=e5059]':
|
|
- cell [ref=e5060]
|
|
- cell "54" [ref=e5061]: "54"
|
|
- cell [ref=e5062]
|
|
- cell "+" [ref=e5063]:
|
|
- generic [ref=e5064]: +
|
|
- 'cell "- **Audience modes in scope**: operator-MSP, support-platform" [ref=e5065]':
|
|
- code [ref=e5066]: "- **Audience modes in scope**: operator-MSP, support-platform"
|
|
- 'row "55 + - **Decision/diagnostic/raw hierarchy plan**: decision-first lifecycle truth before diagnostics; raw context remains secondary" [ref=e5067]':
|
|
- cell [ref=e5068]
|
|
- cell "55" [ref=e5069]: "55"
|
|
- cell [ref=e5070]
|
|
- cell "+" [ref=e5071]:
|
|
- generic [ref=e5072]: +
|
|
- 'cell "- **Decision/diagnostic/raw hierarchy plan**: decision-first lifecycle truth before diagnostics; raw context remains secondary" [ref=e5073]':
|
|
- code [ref=e5074]: "- **Decision/diagnostic/raw hierarchy plan**: decision-first lifecycle truth before diagnostics; raw context remains secondary"
|
|
- 'row "56 + - **Raw/support gating plan**: unchanged; raw/support evidence stays on current detail-only surfaces" [ref=e5075]':
|
|
- cell [ref=e5076]
|
|
- cell "56" [ref=e5077]: "56"
|
|
- cell [ref=e5078]
|
|
- cell "+" [ref=e5079]:
|
|
- generic [ref=e5080]: +
|
|
- 'cell "- **Raw/support gating plan**: unchanged; raw/support evidence stays on current detail-only surfaces" [ref=e5081]':
|
|
- code [ref=e5082]: "- **Raw/support gating plan**: unchanged; raw/support evidence stays on current detail-only surfaces"
|
|
- 'row "57 + - **One-primary-action / duplicate-truth control**: no new primary actions; existing row open and current shell open links remain authoritative" [ref=e5083]':
|
|
- cell [ref=e5084]
|
|
- cell "57" [ref=e5085]: "57"
|
|
- cell [ref=e5086]
|
|
- cell "+" [ref=e5087]:
|
|
- generic [ref=e5088]: +
|
|
- 'cell "- **One-primary-action / duplicate-truth control**: no new primary actions; existing row open and current shell open links remain authoritative" [ref=e5089]':
|
|
- code [ref=e5090]: "- **One-primary-action / duplicate-truth control**: no new primary actions; existing row open and current shell open links remain authoritative"
|
|
- row "58 + - **Handling modes by drift class or surface**:" [ref=e5091]:
|
|
- cell [ref=e5092]
|
|
- cell "58" [ref=e5093]: "58"
|
|
- cell [ref=e5094]
|
|
- cell "+" [ref=e5095]:
|
|
- generic [ref=e5096]: +
|
|
- cell "- **Handling modes by drift class or surface**:" [ref=e5097]:
|
|
- code [ref=e5098]: "- **Handling modes by drift class or surface**:"
|
|
- 'row "59 + - contradictory stale vs queue guidance is `hard-stop-candidate`" [ref=e5099]':
|
|
- cell [ref=e5100]
|
|
- cell "59" [ref=e5101]: "59"
|
|
- cell [ref=e5102]
|
|
- cell "+" [ref=e5103]:
|
|
- generic [ref=e5104]: +
|
|
- 'cell "- contradictory stale vs queue guidance is `hard-stop-candidate`" [ref=e5105]':
|
|
- code [ref=e5106]: "- contradictory stale vs queue guidance is `hard-stop-candidate`"
|
|
- 'row "60 + - wording-only cleanup with no behavioral effect is `review-mandatory`" [ref=e5107]':
|
|
- cell [ref=e5108]
|
|
- cell "60" [ref=e5109]: "60"
|
|
- cell [ref=e5110]
|
|
- cell "+" [ref=e5111]:
|
|
- generic [ref=e5112]: +
|
|
- 'cell "- wording-only cleanup with no behavioral effect is `review-mandatory`" [ref=e5113]':
|
|
- code [ref=e5114]: "- wording-only cleanup with no behavioral effect is `review-mandatory`"
|
|
- 'row "61 + - **Repository-signal treatment**: review-mandatory" [ref=e5115]':
|
|
- cell [ref=e5116]
|
|
- cell "61" [ref=e5117]: "61"
|
|
- cell [ref=e5118]
|
|
- cell "+" [ref=e5119]:
|
|
- generic [ref=e5120]: +
|
|
- 'cell "- **Repository-signal treatment**: review-mandatory" [ref=e5121]':
|
|
- code [ref=e5122]: "- **Repository-signal treatment**: review-mandatory"
|
|
- 'row "62 + - **Special surface test profiles**: monitoring-state-page, shared-detail-family" [ref=e5123]':
|
|
- cell [ref=e5124]
|
|
- cell "62" [ref=e5125]: "62"
|
|
- cell [ref=e5126]
|
|
- cell "+" [ref=e5127]:
|
|
- generic [ref=e5128]: +
|
|
- 'cell "- **Special surface test profiles**: monitoring-state-page, shared-detail-family" [ref=e5129]':
|
|
- code [ref=e5130]: "- **Special surface test profiles**: monitoring-state-page, shared-detail-family"
|
|
- 'row "63 + - **Required tests or manual smoke**: focused unit and feature proof only" [ref=e5131]':
|
|
- cell [ref=e5132]
|
|
- cell "63" [ref=e5133]: "63"
|
|
- cell [ref=e5134]
|
|
- cell "+" [ref=e5135]:
|
|
- generic [ref=e5136]: +
|
|
- 'cell "- **Required tests or manual smoke**: focused unit and feature proof only" [ref=e5137]':
|
|
- code [ref=e5138]: "- **Required tests or manual smoke**: focused unit and feature proof only"
|
|
- 'row "64 + - **Exception path and spread control**: any move toward new persistence, new adapter abstractions, or new queue-health orchestration is `reject-or-split`" [ref=e5139]':
|
|
- cell [ref=e5140]
|
|
- cell "64" [ref=e5141]: "64"
|
|
- cell [ref=e5142]
|
|
- cell "+" [ref=e5143]:
|
|
- generic [ref=e5144]: +
|
|
- 'cell "- **Exception path and spread control**: any move toward new persistence, new adapter abstractions, or new queue-health orchestration is `reject-or-split`" [ref=e5145]':
|
|
- code [ref=e5146]: "- **Exception path and spread control**: any move toward new persistence, new adapter abstractions, or new queue-health orchestration is `reject-or-split`"
|
|
- 'row "65 + - **Active feature PR close-out entry**: Guardrail / Smoke Coverage" [ref=e5147]':
|
|
- cell [ref=e5148]
|
|
- cell "65" [ref=e5149]: "65"
|
|
- cell [ref=e5150]
|
|
- cell "+" [ref=e5151]:
|
|
- generic [ref=e5152]: +
|
|
- 'cell "- **Active feature PR close-out entry**: Guardrail / Smoke Coverage" [ref=e5153]':
|
|
- code [ref=e5154]: "- **Active feature PR close-out entry**: Guardrail / Smoke Coverage"
|
|
- 'row "66 + - **Navigation / Filament provider-panel handling**: unchanged; no provider registration or panel path work" [ref=e5155]':
|
|
- cell [ref=e5156]
|
|
- cell "66" [ref=e5157]: "66"
|
|
- cell [ref=e5158]
|
|
- cell "+" [ref=e5159]:
|
|
- generic [ref=e5160]: +
|
|
- 'cell "- **Navigation / Filament provider-panel handling**: unchanged; no provider registration or panel path work" [ref=e5161]':
|
|
- code [ref=e5162]: "- **Navigation / Filament provider-panel handling**: unchanged; no provider registration or panel path work"
|
|
- row "67 +" [ref=e5163]:
|
|
- cell [ref=e5164]
|
|
- cell "67" [ref=e5165]: "67"
|
|
- cell [ref=e5166]
|
|
- cell "+" [ref=e5167]:
|
|
- generic [ref=e5168]: +
|
|
- cell [ref=e5169]:
|
|
- code
|
|
- 'row "68 + ## Shared Pattern & System Fit" [ref=e5170]':
|
|
- cell [ref=e5171]
|
|
- cell "68" [ref=e5172]: "68"
|
|
- cell [ref=e5173]
|
|
- cell "+" [ref=e5174]:
|
|
- generic [ref=e5175]: +
|
|
- cell "## Shared Pattern & System Fit" [ref=e5176]:
|
|
- code [ref=e5177]: "## Shared Pattern & System Fit"
|
|
- row "69 +" [ref=e5178]:
|
|
- cell [ref=e5179]
|
|
- cell "69" [ref=e5180]: "69"
|
|
- cell [ref=e5181]
|
|
- cell "+" [ref=e5182]:
|
|
- generic [ref=e5183]: +
|
|
- cell [ref=e5184]:
|
|
- code
|
|
- 'row "70 + - **Cross-cutting feature marker**: yes" [ref=e5185]':
|
|
- cell [ref=e5186]
|
|
- cell "70" [ref=e5187]: "70"
|
|
- cell [ref=e5188]
|
|
- cell "+" [ref=e5189]:
|
|
- generic [ref=e5190]: +
|
|
- 'cell "- **Cross-cutting feature marker**: yes" [ref=e5191]':
|
|
- code [ref=e5192]: "- **Cross-cutting feature marker**: yes"
|
|
- 'row "71 + - **Systems touched**: lifecycle freshness, progress derivation, queue guidance, shell render, canonical monitoring detail" [ref=e5193]':
|
|
- cell [ref=e5194]
|
|
- cell "71" [ref=e5195]: "71"
|
|
- cell [ref=e5196]
|
|
- cell "+" [ref=e5197]:
|
|
- generic [ref=e5198]: +
|
|
- 'cell "- **Systems touched**: lifecycle freshness, progress derivation, queue guidance, shell render, canonical monitoring detail" [ref=e5199]':
|
|
- code [ref=e5200]: "- **Systems touched**: lifecycle freshness, progress derivation, queue guidance, shell render, canonical monitoring detail"
|
|
- row "72 + - **Shared abstractions reused**:" [ref=e5201]:
|
|
- cell [ref=e5202]
|
|
- cell "72" [ref=e5203]: "72"
|
|
- cell [ref=e5204]
|
|
- cell "+" [ref=e5205]:
|
|
- generic [ref=e5206]: +
|
|
- cell "- **Shared abstractions reused**:" [ref=e5207]:
|
|
- code [ref=e5208]: "- **Shared abstractions reused**:"
|
|
- 'row "73 + - `OperationRunFreshnessState`" [ref=e5209]':
|
|
- cell [ref=e5210]
|
|
- cell "73" [ref=e5211]: "73"
|
|
- cell [ref=e5212]
|
|
- cell "+" [ref=e5213]:
|
|
- generic [ref=e5214]: +
|
|
- 'cell "- `OperationRunFreshnessState`" [ref=e5215]':
|
|
- code [ref=e5216]: "- `OperationRunFreshnessState`"
|
|
- 'row "74 + - `OperationRunProgressContract`" [ref=e5217]':
|
|
- cell [ref=e5218]
|
|
- cell "74" [ref=e5219]: "74"
|
|
- cell [ref=e5220]
|
|
- cell "+" [ref=e5221]:
|
|
- generic [ref=e5222]: +
|
|
- 'cell "- `OperationRunProgressContract`" [ref=e5223]':
|
|
- code [ref=e5224]: "- `OperationRunProgressContract`"
|
|
- 'row "75 + - `RunDurationInsights`" [ref=e5225]':
|
|
- cell [ref=e5226]
|
|
- cell "75" [ref=e5227]: "75"
|
|
- cell [ref=e5228]
|
|
- cell "+" [ref=e5229]:
|
|
- generic [ref=e5230]: +
|
|
- 'cell "- `RunDurationInsights`" [ref=e5231]':
|
|
- code [ref=e5232]: "- `RunDurationInsights`"
|
|
- 'row "76 + - `OperationUxPresenter`" [ref=e5233]':
|
|
- cell [ref=e5234]
|
|
- cell "76" [ref=e5235]: "76"
|
|
- cell [ref=e5236]
|
|
- cell "+" [ref=e5237]:
|
|
- generic [ref=e5238]: +
|
|
- 'cell "- `OperationUxPresenter`" [ref=e5239]':
|
|
- code [ref=e5240]: "- `OperationUxPresenter`"
|
|
- 'row "77 + - existing `OperationRunLinks` and detail routes" [ref=e5241]':
|
|
- cell [ref=e5242]
|
|
- cell "77" [ref=e5243]: "77"
|
|
- cell [ref=e5244]
|
|
- cell "+" [ref=e5245]:
|
|
- generic [ref=e5246]: +
|
|
- 'cell "- existing `OperationRunLinks` and detail routes" [ref=e5247]':
|
|
- code [ref=e5248]: "- existing `OperationRunLinks` and detail routes"
|
|
- 'row "78 + - **New abstraction introduced? why?**: none by default; if one tiny queue-truth helper is required, it must stay inside `App\\Support\\OpsUx` and remain a derivation helper rather than a strategy or adapter registry" [ref=e5249]':
|
|
- cell [ref=e5250]
|
|
- cell "78" [ref=e5251]: "78"
|
|
- cell [ref=e5252]
|
|
- cell "+" [ref=e5253]:
|
|
- generic [ref=e5254]: +
|
|
- 'cell "- **New abstraction introduced? why?**: none by default; if one tiny queue-truth helper is required, it must stay inside `App\\Support\\OpsUx` and remain a derivation helper rather than a strategy or adapter registry" [ref=e5255]':
|
|
- code [ref=e5256]: "- **New abstraction introduced? why?**: none by default; if one tiny queue-truth helper is required, it must stay inside `App\\Support\\OpsUx` and remain a derivation helper rather than a strategy or adapter registry"
|
|
- 'row "79 + - **Why the existing abstraction was sufficient or insufficient**: the repo already centralizes the right ingredients, but the final operator wording remains split across helpers and render sites" [ref=e5257]':
|
|
- cell [ref=e5258]
|
|
- cell "79" [ref=e5259]: "79"
|
|
- cell [ref=e5260]
|
|
- cell "+" [ref=e5261]:
|
|
- generic [ref=e5262]: +
|
|
- 'cell "- **Why the existing abstraction was sufficient or insufficient**: the repo already centralizes the right ingredients, but the final operator wording remains split across helpers and render sites" [ref=e5263]':
|
|
- code [ref=e5264]: "- **Why the existing abstraction was sufficient or insufficient**: the repo already centralizes the right ingredients, but the final operator wording remains split across helpers and render sites"
|
|
- 'row "80 + - **Bounded deviation / spread control**: do not create a new framework layer where extending the current presenter or progress contract is sufficient" [ref=e5265]':
|
|
- cell [ref=e5266]
|
|
- cell "80" [ref=e5267]: "80"
|
|
- cell [ref=e5268]
|
|
- cell "+" [ref=e5269]:
|
|
- generic [ref=e5270]: +
|
|
- 'cell "- **Bounded deviation / spread control**: do not create a new framework layer where extending the current presenter or progress contract is sufficient" [ref=e5271]':
|
|
- code [ref=e5272]: "- **Bounded deviation / spread control**: do not create a new framework layer where extending the current presenter or progress contract is sufficient"
|
|
- row "81 +" [ref=e5273]:
|
|
- cell [ref=e5274]
|
|
- cell "81" [ref=e5275]: "81"
|
|
- cell [ref=e5276]
|
|
- cell "+" [ref=e5277]:
|
|
- generic [ref=e5278]: +
|
|
- cell [ref=e5279]:
|
|
- code
|
|
- 'row "82 + ## OperationRun UX Impact" [ref=e5280]':
|
|
- cell [ref=e5281]
|
|
- cell "82" [ref=e5282]: "82"
|
|
- cell [ref=e5283]
|
|
- cell "+" [ref=e5284]:
|
|
- generic [ref=e5285]: +
|
|
- cell "## OperationRun UX Impact" [ref=e5286]:
|
|
- code [ref=e5287]: "## OperationRun UX Impact"
|
|
- row "83 +" [ref=e5288]:
|
|
- cell [ref=e5289]
|
|
- cell "83" [ref=e5290]: "83"
|
|
- cell [ref=e5291]
|
|
- cell "+" [ref=e5292]:
|
|
- generic [ref=e5293]: +
|
|
- cell [ref=e5294]:
|
|
- code
|
|
- 'row "84 + - **Touches OperationRun start/completion/link UX?**: yes, reuse-only" [ref=e5295]':
|
|
- cell [ref=e5296]
|
|
- cell "84" [ref=e5297]: "84"
|
|
- cell [ref=e5298]
|
|
- cell "+" [ref=e5299]:
|
|
- generic [ref=e5300]: +
|
|
- 'cell "- **Touches OperationRun start/completion/link UX?**: yes, reuse-only" [ref=e5301]':
|
|
- code [ref=e5302]: "- **Touches OperationRun start/completion/link UX?**: yes, reuse-only"
|
|
- 'row "85 + - **Central contract reused**: current shared run-link, queued-toast, terminal-notification, and detail-route contract" [ref=e5303]':
|
|
- cell [ref=e5304]
|
|
- cell "85" [ref=e5305]: "85"
|
|
- cell [ref=e5306]
|
|
- cell "+" [ref=e5307]:
|
|
- generic [ref=e5308]: +
|
|
- 'cell "- **Central contract reused**: current shared run-link, queued-toast, terminal-notification, and detail-route contract" [ref=e5309]':
|
|
- code [ref=e5310]: "- **Central contract reused**: current shared run-link, queued-toast, terminal-notification, and detail-route contract"
|
|
- 'row "86 + - **Delegated UX behaviors**: queued toast wording, run links, browser events, and terminal notifications remain unchanged" [ref=e5311]':
|
|
- cell [ref=e5312]
|
|
- cell "86" [ref=e5313]: "86"
|
|
- cell [ref=e5314]
|
|
- cell "+" [ref=e5315]:
|
|
- generic [ref=e5316]: +
|
|
- 'cell "- **Delegated UX behaviors**: queued toast wording, run links, browser events, and terminal notifications remain unchanged" [ref=e5317]':
|
|
- code [ref=e5318]: "- **Delegated UX behaviors**: queued toast wording, run links, browser events, and terminal notifications remain unchanged"
|
|
- 'row "87 + - **Surface-owned behavior kept local**: only density and render ordering for shell/list/detail" [ref=e5319]':
|
|
- cell [ref=e5320]
|
|
- cell "87" [ref=e5321]: "87"
|
|
- cell [ref=e5322]
|
|
- cell "+" [ref=e5323]:
|
|
- generic [ref=e5324]: +
|
|
- 'cell "- **Surface-owned behavior kept local**: only density and render ordering for shell/list/detail" [ref=e5325]':
|
|
- code [ref=e5326]: "- **Surface-owned behavior kept local**: only density and render ordering for shell/list/detail"
|
|
- 'row "88 + - **Queued DB-notification policy**: unchanged" [ref=e5327]':
|
|
- cell [ref=e5328]
|
|
- cell "88" [ref=e5329]: "88"
|
|
- cell [ref=e5330]
|
|
- cell "+" [ref=e5331]:
|
|
- generic [ref=e5332]: +
|
|
- 'cell "- **Queued DB-notification policy**: unchanged" [ref=e5333]':
|
|
- code [ref=e5334]: "- **Queued DB-notification policy**: unchanged"
|
|
- 'row "89 + - **Terminal notification path**: unchanged" [ref=e5335]':
|
|
- cell [ref=e5336]
|
|
- cell "89" [ref=e5337]: "89"
|
|
- cell [ref=e5338]
|
|
- cell "+" [ref=e5339]:
|
|
- generic [ref=e5340]: +
|
|
- 'cell "- **Terminal notification path**: unchanged" [ref=e5341]':
|
|
- code [ref=e5342]: "- **Terminal notification path**: unchanged"
|
|
- 'row "90 + - **Exception path**: none" [ref=e5343]':
|
|
- cell [ref=e5344]
|
|
- cell "90" [ref=e5345]: "90"
|
|
- cell [ref=e5346]
|
|
- cell "+" [ref=e5347]:
|
|
- generic [ref=e5348]: +
|
|
- 'cell "- **Exception path**: none" [ref=e5349]':
|
|
- code [ref=e5350]: "- **Exception path**: none"
|
|
- row "91 +" [ref=e5351]:
|
|
- cell [ref=e5352]
|
|
- cell "91" [ref=e5353]: "91"
|
|
- cell [ref=e5354]
|
|
- cell "+" [ref=e5355]:
|
|
- generic [ref=e5356]: +
|
|
- cell [ref=e5357]:
|
|
- code
|
|
- 'row "92 + ## Provider Boundary & Portability Fit" [ref=e5358]':
|
|
- cell [ref=e5359]
|
|
- cell "92" [ref=e5360]: "92"
|
|
- cell [ref=e5361]
|
|
- cell "+" [ref=e5362]:
|
|
- generic [ref=e5363]: +
|
|
- cell "## Provider Boundary & Portability Fit" [ref=e5364]:
|
|
- code [ref=e5365]: "## Provider Boundary & Portability Fit"
|
|
- row "93 +" [ref=e5366]:
|
|
- cell [ref=e5367]
|
|
- cell "93" [ref=e5368]: "93"
|
|
- cell [ref=e5369]
|
|
- cell "+" [ref=e5370]:
|
|
- generic [ref=e5371]: +
|
|
- cell [ref=e5372]:
|
|
- code
|
|
- 'row "94 + - **Shared provider/platform boundary touched?**: no" [ref=e5373]':
|
|
- cell [ref=e5374]
|
|
- cell "94" [ref=e5375]: "94"
|
|
- cell [ref=e5376]
|
|
- cell "+" [ref=e5377]:
|
|
- generic [ref=e5378]: +
|
|
- 'cell "- **Shared provider/platform boundary touched?**: no" [ref=e5379]':
|
|
- code [ref=e5380]: "- **Shared provider/platform boundary touched?**: no"
|
|
- 'row "95 + - **Provider-owned seams**: N/A" [ref=e5381]':
|
|
- cell [ref=e5382]
|
|
- cell "95" [ref=e5383]: "95"
|
|
- cell [ref=e5384]
|
|
- cell "+" [ref=e5385]:
|
|
- generic [ref=e5386]: +
|
|
- 'cell "- **Provider-owned seams**: N/A" [ref=e5387]':
|
|
- code [ref=e5388]: "- **Provider-owned seams**: N/A"
|
|
- 'row "96 + - **Platform-core seams**: platform-owned `OperationRun` monitoring truth only" [ref=e5389]':
|
|
- cell [ref=e5390]
|
|
- cell "96" [ref=e5391]: "96"
|
|
- cell [ref=e5392]
|
|
- cell "+" [ref=e5393]:
|
|
- generic [ref=e5394]: +
|
|
- 'cell "- **Platform-core seams**: platform-owned `OperationRun` monitoring truth only" [ref=e5395]':
|
|
- code [ref=e5396]: "- **Platform-core seams**: platform-owned `OperationRun` monitoring truth only"
|
|
- 'row "97 + - **Neutral platform terms / contracts preserved**: queued, running, lifecycle window, active operation, review worker health" [ref=e5397]':
|
|
- cell [ref=e5398]
|
|
- cell "97" [ref=e5399]: "97"
|
|
- cell [ref=e5400]
|
|
- cell "+" [ref=e5401]:
|
|
- generic [ref=e5402]: +
|
|
- 'cell "- **Neutral platform terms / contracts preserved**: queued, running, lifecycle window, active operation, review worker health" [ref=e5403]':
|
|
- code [ref=e5404]: "- **Neutral platform terms / contracts preserved**: queued, running, lifecycle window, active operation, review worker health"
|
|
- 'row "98 + - **Retained provider-specific semantics and why**: none" [ref=e5405]':
|
|
- cell [ref=e5406]
|
|
- cell "98" [ref=e5407]: "98"
|
|
- cell [ref=e5408]
|
|
- cell "+" [ref=e5409]:
|
|
- generic [ref=e5410]: +
|
|
- 'cell "- **Retained provider-specific semantics and why**: none" [ref=e5411]':
|
|
- code [ref=e5412]: "- **Retained provider-specific semantics and why**: none"
|
|
- 'row "99 + - **Bounded extraction or follow-up path**: none" [ref=e5413]':
|
|
- cell [ref=e5414]
|
|
- cell "99" [ref=e5415]: "99"
|
|
- cell [ref=e5416]
|
|
- cell "+" [ref=e5417]:
|
|
- generic [ref=e5418]: +
|
|
- 'cell "- **Bounded extraction or follow-up path**: none" [ref=e5419]':
|
|
- code [ref=e5420]: "- **Bounded extraction or follow-up path**: none"
|
|
- row "100 +" [ref=e5421]:
|
|
- cell [ref=e5422]
|
|
- cell "100" [ref=e5423]: "100"
|
|
- cell [ref=e5424]
|
|
- cell "+" [ref=e5425]:
|
|
- generic [ref=e5426]: +
|
|
- cell [ref=e5427]:
|
|
- code
|
|
- 'row "101 + ## Constitution Check" [ref=e5428]':
|
|
- cell [ref=e5429]
|
|
- cell "101" [ref=e5430]: "101"
|
|
- cell [ref=e5431]
|
|
- cell "+" [ref=e5432]:
|
|
- generic [ref=e5433]: +
|
|
- cell "## Constitution Check" [ref=e5434]:
|
|
- code [ref=e5435]: "## Constitution Check"
|
|
- row "102 +" [ref=e5436]:
|
|
- cell [ref=e5437]
|
|
- cell "102" [ref=e5438]: "102"
|
|
- cell [ref=e5439]
|
|
- cell "+" [ref=e5440]:
|
|
- generic [ref=e5441]: +
|
|
- cell [ref=e5442]:
|
|
- code
|
|
- 'row "103 + - Inventory-first: unchanged; no new source of truth." [ref=e5443]':
|
|
- cell [ref=e5444]
|
|
- cell "103" [ref=e5445]: "103"
|
|
- cell [ref=e5446]
|
|
- cell "+" [ref=e5447]:
|
|
- generic [ref=e5448]: +
|
|
- 'cell "- Inventory-first: unchanged; no new source of truth." [ref=e5449]':
|
|
- code [ref=e5450]: "- Inventory-first: unchanged; no new source of truth."
|
|
- 'row "104 + - Read/write separation: unchanged; this is read-only monitoring truth." [ref=e5451]':
|
|
- cell [ref=e5452]
|
|
- cell "104" [ref=e5453]: "104"
|
|
- cell [ref=e5454]
|
|
- cell "+" [ref=e5455]:
|
|
- generic [ref=e5456]: +
|
|
- 'cell "- Read/write separation: unchanged; this is read-only monitoring truth." [ref=e5457]':
|
|
- code [ref=e5458]: "- Read/write separation: unchanged; this is read-only monitoring truth."
|
|
- 'row "105 + - Deterministic capabilities: unchanged." [ref=e5459]':
|
|
- cell [ref=e5460]
|
|
- cell "105" [ref=e5461]: "105"
|
|
- cell [ref=e5462]
|
|
- cell "+" [ref=e5463]:
|
|
- generic [ref=e5464]: +
|
|
- 'cell "- Deterministic capabilities: unchanged." [ref=e5465]':
|
|
- code [ref=e5466]: "- Deterministic capabilities: unchanged."
|
|
- 'row "106 + - Proportionality / anti-bloat: pass only if the implementation extends current helpers instead of creating a new framework." [ref=e5467]':
|
|
- cell [ref=e5468]
|
|
- cell "106" [ref=e5469]: "106"
|
|
- cell [ref=e5470]
|
|
- cell "+" [ref=e5471]:
|
|
- generic [ref=e5472]: +
|
|
- 'cell "- Proportionality / anti-bloat: pass only if the implementation extends current helpers instead of creating a new framework." [ref=e5473]':
|
|
- code [ref=e5474]: "- Proportionality / anti-bloat: pass only if the implementation extends current helpers instead of creating a new framework."
|
|
- 'row "107 + - Persisted truth: no new tables, entities, or status families." [ref=e5475]':
|
|
- cell [ref=e5476]
|
|
- cell "107" [ref=e5477]: "107"
|
|
- cell [ref=e5478]
|
|
- cell "+" [ref=e5479]:
|
|
- generic [ref=e5480]: +
|
|
- 'cell "- Persisted truth: no new tables, entities, or status families." [ref=e5481]':
|
|
- code [ref=e5482]: "- Persisted truth: no new tables, entities, or status families."
|
|
- 'row "108 + - State discipline: derived-only; no new persisted lifecycle category." [ref=e5483]':
|
|
- cell [ref=e5484]
|
|
- cell "108" [ref=e5485]: "108"
|
|
- cell [ref=e5486]
|
|
- cell "+" [ref=e5487]:
|
|
- generic [ref=e5488]: +
|
|
- 'cell "- State discipline: derived-only; no new persisted lifecycle category." [ref=e5489]':
|
|
- code [ref=e5490]: "- State discipline: derived-only; no new persisted lifecycle category."
|
|
- 'row "109 + - Shared pattern first: extend existing Ops UX helpers and current monitoring surfaces." [ref=e5491]':
|
|
- cell [ref=e5492]
|
|
- cell "109" [ref=e5493]: "109"
|
|
- cell [ref=e5494]
|
|
- cell "+" [ref=e5495]:
|
|
- generic [ref=e5496]: +
|
|
- 'cell "- Shared pattern first: extend existing Ops UX helpers and current monitoring surfaces." [ref=e5497]':
|
|
- code [ref=e5498]: "- Shared pattern first: extend existing Ops UX helpers and current monitoring surfaces."
|
|
- 'row "110 + - Workspace / tenant isolation: unchanged and still mandatory." [ref=e5499]':
|
|
- cell [ref=e5500]
|
|
- cell "110" [ref=e5501]: "110"
|
|
- cell [ref=e5502]
|
|
- cell "+" [ref=e5503]:
|
|
- generic [ref=e5504]: +
|
|
- 'cell "- Workspace / tenant isolation: unchanged and still mandatory." [ref=e5505]':
|
|
- code [ref=e5506]: "- Workspace / tenant isolation: unchanged and still mandatory."
|
|
- 'row "111 + - RBAC-UX: no client-side authorization expansion; server-side boundaries remain the only access control." [ref=e5507]':
|
|
- cell [ref=e5508]
|
|
- cell "111" [ref=e5509]: "111"
|
|
- cell [ref=e5510]
|
|
- cell "+" [ref=e5511]:
|
|
- generic [ref=e5512]: +
|
|
- 'cell "- RBAC-UX: no client-side authorization expansion; server-side boundaries remain the only access control." [ref=e5513]':
|
|
- code [ref=e5514]: "- RBAC-UX: no client-side authorization expansion; server-side boundaries remain the only access control."
|
|
- 'row "112 + - Test governance: unit + feature remain the narrowest honest proof." [ref=e5515]':
|
|
- cell [ref=e5516]
|
|
- cell "112" [ref=e5517]: "112"
|
|
- cell [ref=e5518]
|
|
- cell "+" [ref=e5519]:
|
|
- generic [ref=e5520]: +
|
|
- 'cell "- Test governance: unit + feature remain the narrowest honest proof." [ref=e5521]':
|
|
- code [ref=e5522]: "- Test governance: unit + feature remain the narrowest honest proof."
|
|
- 'row "113 + - Filament v5 / Livewire v4 posture: unchanged; no provider-registration or asset change." [ref=e5523]':
|
|
- cell [ref=e5524]
|
|
- cell "113" [ref=e5525]: "113"
|
|
- cell [ref=e5526]
|
|
- cell "+" [ref=e5527]:
|
|
- generic [ref=e5528]: +
|
|
- 'cell "- Filament v5 / Livewire v4 posture: unchanged; no provider-registration or asset change." [ref=e5529]':
|
|
- code [ref=e5530]: "- Filament v5 / Livewire v4 posture: unchanged; no provider-registration or asset change."
|
|
- row "114 +" [ref=e5531]:
|
|
- cell [ref=e5532]
|
|
- cell "114" [ref=e5533]: "114"
|
|
- cell [ref=e5534]
|
|
- cell "+" [ref=e5535]:
|
|
- generic [ref=e5536]: +
|
|
- cell [ref=e5537]:
|
|
- code
|
|
- 'row "115 + ## Test Governance Check" [ref=e5538]':
|
|
- cell [ref=e5539]
|
|
- cell "115" [ref=e5540]: "115"
|
|
- cell [ref=e5541]
|
|
- cell "+" [ref=e5542]:
|
|
- generic [ref=e5543]: +
|
|
- cell "## Test Governance Check" [ref=e5544]:
|
|
- code [ref=e5545]: "## Test Governance Check"
|
|
- row "116 +" [ref=e5546]:
|
|
- cell [ref=e5547]
|
|
- cell "116" [ref=e5548]: "116"
|
|
- cell [ref=e5549]
|
|
- cell "+" [ref=e5550]:
|
|
- generic [ref=e5551]: +
|
|
- cell [ref=e5552]:
|
|
- code
|
|
- row "117 + - **Test purpose / classification by changed surface**:" [ref=e5553]:
|
|
- cell [ref=e5554]
|
|
- cell "117" [ref=e5555]: "117"
|
|
- cell [ref=e5556]
|
|
- cell "+" [ref=e5557]:
|
|
- generic [ref=e5558]: +
|
|
- cell "- **Test purpose / classification by changed surface**:" [ref=e5559]:
|
|
- code [ref=e5560]: "- **Test purpose / classification by changed surface**:"
|
|
- 'row "118 + - Unit: generic queue-truth derivation" [ref=e5561]':
|
|
- cell [ref=e5562]
|
|
- cell "118" [ref=e5563]: "118"
|
|
- cell [ref=e5564]
|
|
- cell "+" [ref=e5565]:
|
|
- generic [ref=e5566]: +
|
|
- 'cell "- Unit: generic queue-truth derivation" [ref=e5567]':
|
|
- code [ref=e5568]: "- Unit: generic queue-truth derivation"
|
|
- 'row "119 + - Feature: current shell/list/detail rendering and authorization-safe presentation" [ref=e5569]':
|
|
- cell [ref=e5570]
|
|
- cell "119" [ref=e5571]: "119"
|
|
- cell [ref=e5572]
|
|
- cell "+" [ref=e5573]:
|
|
- generic [ref=e5574]: +
|
|
- 'cell "- Feature: current shell/list/detail rendering and authorization-safe presentation" [ref=e5575]':
|
|
- code [ref=e5576]: "- Feature: current shell/list/detail rendering and authorization-safe presentation"
|
|
- 'row "120 + - **Affected validation lanes**: fast-feedback, confidence" [ref=e5577]':
|
|
- cell [ref=e5578]
|
|
- cell "120" [ref=e5579]: "120"
|
|
- cell [ref=e5580]
|
|
- cell "+" [ref=e5581]:
|
|
- generic [ref=e5582]: +
|
|
- 'cell "- **Affected validation lanes**: fast-feedback, confidence" [ref=e5583]':
|
|
- code [ref=e5584]: "- **Affected validation lanes**: fast-feedback, confidence"
|
|
- 'row "121 + - **Why this lane mix is the narrowest sufficient proof**: the slice corrects shared derivation and rendered copy on current surfaces without introducing JS-heavy or browser-only behavior" [ref=e5585]':
|
|
- cell [ref=e5586]
|
|
- cell "121" [ref=e5587]: "121"
|
|
- cell [ref=e5588]
|
|
- cell "+" [ref=e5589]:
|
|
- generic [ref=e5590]: +
|
|
- 'cell "- **Why this lane mix is the narrowest sufficient proof**: the slice corrects shared derivation and rendered copy on current surfaces without introducing JS-heavy or browser-only behavior" [ref=e5591]':
|
|
- code [ref=e5592]: "- **Why this lane mix is the narrowest sufficient proof**: the slice corrects shared derivation and rendered copy on current surfaces without introducing JS-heavy or browser-only behavior"
|
|
- row "122 + - **Narrowest proving command(s)**:" [ref=e5593]:
|
|
- cell [ref=e5594]
|
|
- cell "122" [ref=e5595]: "122"
|
|
- cell [ref=e5596]
|
|
- cell "+" [ref=e5597]:
|
|
- generic [ref=e5598]: +
|
|
- cell "- **Narrowest proving command(s)**:" [ref=e5599]:
|
|
- code [ref=e5600]: "- **Narrowest proving command(s)**:"
|
|
- 'row "123 + - `cd apps/platform && ./vendor/bin/sail artisan test --compact tests/Unit/Support/OpsUx/OperationRunProgressContractTest.php`" [ref=e5601]':
|
|
- cell [ref=e5602]
|
|
- cell "123" [ref=e5603]: "123"
|
|
- cell [ref=e5604]
|
|
- cell "+" [ref=e5605]:
|
|
- generic [ref=e5606]: +
|
|
- 'cell "- `cd apps/platform && ./vendor/bin/sail artisan test --compact tests/Unit/Support/OpsUx/OperationRunProgressContractTest.php`" [ref=e5607]':
|
|
- code [ref=e5608]: "- `cd apps/platform && ./vendor/bin/sail artisan test --compact tests/Unit/Support/OpsUx/OperationRunProgressContractTest.php`"
|
|
- 'row "124 + - `cd apps/platform && ./vendor/bin/sail artisan test --compact tests/Feature/OpsUx/ActivityFeedbackSurfaceTest.php tests/Feature/OpsUx/BulkOperationProgressDbOnlyTest.php tests/Feature/MonitoringOperationsTest.php tests/Feature/Monitoring/OperationLifecycleFreshnessPresentationTest.php tests/Feature/Monitoring/MonitoringOperationsTest.php tests/Feature/Filament/OperationRunEnterpriseDetailPageTest.php tests/Feature/Operations/TenantlessOperationRunViewerTest.php`" [ref=e5609]':
|
|
- cell [ref=e5610]
|
|
- cell "124" [ref=e5611]: "124"
|
|
- cell [ref=e5612]
|
|
- cell "+" [ref=e5613]:
|
|
- generic [ref=e5614]: +
|
|
- 'cell "- `cd apps/platform && ./vendor/bin/sail artisan test --compact tests/Feature/OpsUx/ActivityFeedbackSurfaceTest.php tests/Feature/OpsUx/BulkOperationProgressDbOnlyTest.php tests/Feature/MonitoringOperationsTest.php tests/Feature/Monitoring/OperationLifecycleFreshnessPresentationTest.php tests/Feature/Monitoring/MonitoringOperationsTest.php tests/Feature/Filament/OperationRunEnterpriseDetailPageTest.php tests/Feature/Operations/TenantlessOperationRunViewerTest.php`" [ref=e5615]':
|
|
- code [ref=e5616]: "- `cd apps/platform && ./vendor/bin/sail artisan test --compact tests/Feature/OpsUx/ActivityFeedbackSurfaceTest.php tests/Feature/OpsUx/BulkOperationProgressDbOnlyTest.php tests/Feature/MonitoringOperationsTest.php tests/Feature/Monitoring/OperationLifecycleFreshnessPresentationTest.php tests/Feature/Monitoring/MonitoringOperationsTest.php tests/Feature/Filament/OperationRunEnterpriseDetailPageTest.php tests/Feature/Operations/TenantlessOperationRunViewerTest.php`"
|
|
- 'row "125 + - `git diff --check`" [ref=e5617]':
|
|
- cell [ref=e5618]
|
|
- cell "125" [ref=e5619]: "125"
|
|
- cell [ref=e5620]
|
|
- cell "+" [ref=e5621]:
|
|
- generic [ref=e5622]: +
|
|
- 'cell "- `git diff --check`" [ref=e5623]':
|
|
- code [ref=e5624]: "- `git diff --check`"
|
|
- 'row "126 + - **Fixture / helper / factory / seed / context cost risks**: existing `OperationRun` fixtures and workspace membership helpers are sufficient; avoid widening defaults" [ref=e5625]':
|
|
- cell [ref=e5626]
|
|
- cell "126" [ref=e5627]: "126"
|
|
- cell [ref=e5628]
|
|
- cell "+" [ref=e5629]:
|
|
- generic [ref=e5630]: +
|
|
- 'cell "- **Fixture / helper / factory / seed / context cost risks**: existing `OperationRun` fixtures and workspace membership helpers are sufficient; avoid widening defaults" [ref=e5631]':
|
|
- code [ref=e5632]: "- **Fixture / helper / factory / seed / context cost risks**: existing `OperationRun` fixtures and workspace membership helpers are sufficient; avoid widening defaults"
|
|
- 'row "127 + - **Expensive defaults or shared helper growth introduced?**: none planned" [ref=e5633]':
|
|
- cell [ref=e5634]
|
|
- cell "127" [ref=e5635]: "127"
|
|
- cell [ref=e5636]
|
|
- cell "+" [ref=e5637]:
|
|
- generic [ref=e5638]: +
|
|
- 'cell "- **Expensive defaults or shared helper growth introduced?**: none planned" [ref=e5639]':
|
|
- code [ref=e5640]: "- **Expensive defaults or shared helper growth introduced?**: none planned"
|
|
- 'row "128 + - **Heavy-family additions, promotions, or visibility changes**: none" [ref=e5641]':
|
|
- cell [ref=e5642]
|
|
- cell "128" [ref=e5643]: "128"
|
|
- cell [ref=e5644]
|
|
- cell "+" [ref=e5645]:
|
|
- generic [ref=e5646]: +
|
|
- 'cell "- **Heavy-family additions, promotions, or visibility changes**: none" [ref=e5647]':
|
|
- code [ref=e5648]: "- **Heavy-family additions, promotions, or visibility changes**: none"
|
|
- 'row "129 + - **Surface-class relief / special coverage rule**: monitoring-state-page and shared-detail-family coverage is explicit" [ref=e5649]':
|
|
- cell [ref=e5650]
|
|
- cell "129" [ref=e5651]: "129"
|
|
- cell [ref=e5652]
|
|
- cell "+" [ref=e5653]:
|
|
- generic [ref=e5654]: +
|
|
- 'cell "- **Surface-class relief / special coverage rule**: monitoring-state-page and shared-detail-family coverage is explicit" [ref=e5655]':
|
|
- code [ref=e5656]: "- **Surface-class relief / special coverage rule**: monitoring-state-page and shared-detail-family coverage is explicit"
|
|
- 'row "130 + - **Closing validation and reviewer handoff**: reviewers should compare stale-active, fresh-active, and reconciled-terminal cases across shell, list, and detail and confirm that stale-active wording does not coexist with ordinary queue/progress reassurance" [ref=e5657]':
|
|
- cell [ref=e5658]
|
|
- cell "130" [ref=e5659]: "130"
|
|
- cell [ref=e5660]
|
|
- cell "+" [ref=e5661]:
|
|
- generic [ref=e5662]: +
|
|
- 'cell "- **Closing validation and reviewer handoff**: reviewers should compare stale-active, fresh-active, and reconciled-terminal cases across shell, list, and detail and confirm that stale-active wording does not coexist with ordinary queue/progress reassurance" [ref=e5663]':
|
|
- code [ref=e5664]: "- **Closing validation and reviewer handoff**: reviewers should compare stale-active, fresh-active, and reconciled-terminal cases across shell, list, and detail and confirm that stale-active wording does not coexist with ordinary queue/progress reassurance"
|
|
- 'row "131 + - **Budget / baseline / trend follow-up**: none expected" [ref=e5665]':
|
|
- cell [ref=e5666]
|
|
- cell "131" [ref=e5667]: "131"
|
|
- cell [ref=e5668]
|
|
- cell "+" [ref=e5669]:
|
|
- generic [ref=e5670]: +
|
|
- 'cell "- **Budget / baseline / trend follow-up**: none expected" [ref=e5671]':
|
|
- code [ref=e5672]: "- **Budget / baseline / trend follow-up**: none expected"
|
|
- 'row "132 + - **Review-stop questions**: Did the change add persistence? Did it invent a new adapter framework? Does any stale-active surface still combine stale attention with ordinary `Waiting for worker.`, `Progress details pending.`, or equivalent calm queue/progress reassurance?" [ref=e5673]':
|
|
- cell [ref=e5674]
|
|
- cell "132" [ref=e5675]: "132"
|
|
- cell [ref=e5676]
|
|
- cell "+" [ref=e5677]:
|
|
- generic [ref=e5678]: +
|
|
- 'cell "- **Review-stop questions**: Did the change add persistence? Did it invent a new adapter framework? Does any stale-active surface still combine stale attention with ordinary `Waiting for worker.`, `Progress details pending.`, or equivalent calm queue/progress reassurance?" [ref=e5679]':
|
|
- code [ref=e5680]: "- **Review-stop questions**: Did the change add persistence? Did it invent a new adapter framework? Does any stale-active surface still combine stale attention with ordinary `Waiting for worker.`, `Progress details pending.`, or equivalent calm queue/progress reassurance?"
|
|
- 'row "133 + - **Escalation path**: `reject-or-split` if scope widens into queue runtime redesign" [ref=e5681]':
|
|
- cell [ref=e5682]
|
|
- cell "133" [ref=e5683]: "133"
|
|
- cell [ref=e5684]
|
|
- cell "+" [ref=e5685]:
|
|
- generic [ref=e5686]: +
|
|
- 'cell "- **Escalation path**: `reject-or-split` if scope widens into queue runtime redesign" [ref=e5687]':
|
|
- code [ref=e5688]: "- **Escalation path**: `reject-or-split` if scope widens into queue runtime redesign"
|
|
- 'row "134 + - **Active feature PR close-out entry**: Guardrail / Smoke Coverage" [ref=e5689]':
|
|
- cell [ref=e5690]
|
|
- cell "134" [ref=e5691]: "134"
|
|
- cell [ref=e5692]
|
|
- cell "+" [ref=e5693]:
|
|
- generic [ref=e5694]: +
|
|
- 'cell "- **Active feature PR close-out entry**: Guardrail / Smoke Coverage" [ref=e5695]':
|
|
- code [ref=e5696]: "- **Active feature PR close-out entry**: Guardrail / Smoke Coverage"
|
|
- row "135 +" [ref=e5697]:
|
|
- cell [ref=e5698]
|
|
- cell "135" [ref=e5699]: "135"
|
|
- cell [ref=e5700]
|
|
- cell "+" [ref=e5701]:
|
|
- generic [ref=e5702]: +
|
|
- cell [ref=e5703]:
|
|
- code
|
|
- 'row "136 + ## Implementation Phases" [ref=e5704]':
|
|
- cell [ref=e5705]
|
|
- cell "136" [ref=e5706]: "136"
|
|
- cell [ref=e5707]
|
|
- cell "+" [ref=e5708]:
|
|
- generic [ref=e5709]: +
|
|
- cell "## Implementation Phases" [ref=e5710]:
|
|
- code [ref=e5711]: "## Implementation Phases"
|
|
- row "137 +" [ref=e5712]:
|
|
- cell [ref=e5713]
|
|
- cell "137" [ref=e5714]: "137"
|
|
- cell [ref=e5715]
|
|
- cell "+" [ref=e5716]:
|
|
- generic [ref=e5717]: +
|
|
- cell [ref=e5718]:
|
|
- code
|
|
- 'row "138 + ### Phase 1 — Confirm the shared queue-truth inputs" [ref=e5719]':
|
|
- cell [ref=e5720]
|
|
- cell "138" [ref=e5721]: "138"
|
|
- cell [ref=e5722]
|
|
- cell "+" [ref=e5723]:
|
|
- generic [ref=e5724]: +
|
|
- cell "### Phase 1 — Confirm the shared queue-truth inputs" [ref=e5725]:
|
|
- code [ref=e5726]: "### Phase 1 — Confirm the shared queue-truth inputs"
|
|
- row "139 +" [ref=e5727]:
|
|
- cell [ref=e5728]
|
|
- cell "139" [ref=e5729]: "139"
|
|
- cell [ref=e5730]
|
|
- cell "+" [ref=e5731]:
|
|
- generic [ref=e5732]: +
|
|
- cell [ref=e5733]:
|
|
- code
|
|
- row "140 + - Inventory the exact contradictory paths in:" [ref=e5734]:
|
|
- cell [ref=e5735]
|
|
- cell "140" [ref=e5736]: "140"
|
|
- cell [ref=e5737]
|
|
- cell "+" [ref=e5738]:
|
|
- generic [ref=e5739]: +
|
|
- cell "- Inventory the exact contradictory paths in:" [ref=e5740]:
|
|
- code [ref=e5741]: "- Inventory the exact contradictory paths in:"
|
|
- 'row "141 + - `OperationRunProgressContract`" [ref=e5742]':
|
|
- cell [ref=e5743]
|
|
- cell "141" [ref=e5744]: "141"
|
|
- cell [ref=e5745]
|
|
- cell "+" [ref=e5746]:
|
|
- generic [ref=e5747]: +
|
|
- 'cell "- `OperationRunProgressContract`" [ref=e5748]':
|
|
- code [ref=e5749]: "- `OperationRunProgressContract`"
|
|
- 'row "142 + - `RunDurationInsights`" [ref=e5750]':
|
|
- cell [ref=e5751]
|
|
- cell "142" [ref=e5752]: "142"
|
|
- cell [ref=e5753]
|
|
- cell "+" [ref=e5754]:
|
|
- generic [ref=e5755]: +
|
|
- 'cell "- `RunDurationInsights`" [ref=e5756]':
|
|
- code [ref=e5757]: "- `RunDurationInsights`"
|
|
- 'row "143 + - `OperationUxPresenter`" [ref=e5758]':
|
|
- cell [ref=e5759]
|
|
- cell "143" [ref=e5760]: "143"
|
|
- cell [ref=e5761]
|
|
- cell "+" [ref=e5762]:
|
|
- generic [ref=e5763]: +
|
|
- 'cell "- `OperationUxPresenter`" [ref=e5764]':
|
|
- code [ref=e5765]: "- `OperationUxPresenter`"
|
|
- row "144 + - current shell/list/detail renderers" [ref=e5766]:
|
|
- cell [ref=e5767]
|
|
- cell "144" [ref=e5768]: "144"
|
|
- cell [ref=e5769]
|
|
- cell "+" [ref=e5770]:
|
|
- generic [ref=e5771]: +
|
|
- cell "- current shell/list/detail renderers" [ref=e5772]:
|
|
- code [ref=e5773]: "- current shell/list/detail renderers"
|
|
- row "145 + - Freeze the current shared vocabulary for:" [ref=e5774]:
|
|
- cell [ref=e5775]
|
|
- cell "145" [ref=e5776]: "145"
|
|
- cell [ref=e5777]
|
|
- cell "+" [ref=e5778]:
|
|
- generic [ref=e5779]: +
|
|
- cell "- Freeze the current shared vocabulary for:" [ref=e5780]:
|
|
- code [ref=e5781]: "- Freeze the current shared vocabulary for:"
|
|
- row "146 + - fresh queued/running" [ref=e5782]:
|
|
- cell [ref=e5783]
|
|
- cell "146" [ref=e5784]: "146"
|
|
- cell [ref=e5785]
|
|
- cell "+" [ref=e5786]:
|
|
- generic [ref=e5787]: +
|
|
- cell "- fresh queued/running" [ref=e5788]:
|
|
- code [ref=e5789]: "- fresh queued/running"
|
|
- row "147 + - stale active" [ref=e5790]:
|
|
- cell [ref=e5791]
|
|
- cell "147" [ref=e5792]: "147"
|
|
- cell [ref=e5793]
|
|
- cell "+" [ref=e5794]:
|
|
- generic [ref=e5795]: +
|
|
- cell "- stale active" [ref=e5796]:
|
|
- code [ref=e5797]: "- stale active"
|
|
- row "148 + - reconciled terminal" [ref=e5798]:
|
|
- cell [ref=e5799]
|
|
- cell "148" [ref=e5800]: "148"
|
|
- cell [ref=e5801]
|
|
- cell "+" [ref=e5802]:
|
|
- generic [ref=e5803]: +
|
|
- cell "- reconciled terminal" [ref=e5804]:
|
|
- code [ref=e5805]: "- reconciled terminal"
|
|
- row "149 + - Confirm that existing scheduled and adapter reconciliation commands remain context only" [ref=e5806]:
|
|
- cell [ref=e5807]
|
|
- cell "149" [ref=e5808]: "149"
|
|
- cell [ref=e5809]
|
|
- cell "+" [ref=e5810]:
|
|
- generic [ref=e5811]: +
|
|
- cell "- Confirm that existing scheduled and adapter reconciliation commands remain context only" [ref=e5812]:
|
|
- code [ref=e5813]: "- Confirm that existing scheduled and adapter reconciliation commands remain context only"
|
|
- row "150 +" [ref=e5814]:
|
|
- cell [ref=e5815]
|
|
- cell "150" [ref=e5816]: "150"
|
|
- cell [ref=e5817]
|
|
- cell "+" [ref=e5818]:
|
|
- generic [ref=e5819]: +
|
|
- cell [ref=e5820]:
|
|
- code
|
|
- 'row "151 + ### Phase 2 — Align the generic queue-truth derivation" [ref=e5821]':
|
|
- cell [ref=e5822]
|
|
- cell "151" [ref=e5823]: "151"
|
|
- cell [ref=e5824]
|
|
- cell "+" [ref=e5825]:
|
|
- generic [ref=e5826]: +
|
|
- cell "### Phase 2 — Align the generic queue-truth derivation" [ref=e5827]:
|
|
- code [ref=e5828]: "### Phase 2 — Align the generic queue-truth derivation"
|
|
- row "152 +" [ref=e5829]:
|
|
- cell [ref=e5830]
|
|
- cell "152" [ref=e5831]: "152"
|
|
- cell [ref=e5832]
|
|
- cell "+" [ref=e5833]:
|
|
- generic [ref=e5834]: +
|
|
- cell [ref=e5835]:
|
|
- code
|
|
- row "153 + - Extend existing helpers so freshness, queue guidance, and progress availability tell one story" [ref=e5836]:
|
|
- cell [ref=e5837]
|
|
- cell "153" [ref=e5838]: "153"
|
|
- cell [ref=e5839]
|
|
- cell "+" [ref=e5840]:
|
|
- generic [ref=e5841]: +
|
|
- cell "- Extend existing helpers so freshness, queue guidance, and progress availability tell one story" [ref=e5842]:
|
|
- code [ref=e5843]: "- Extend existing helpers so freshness, queue guidance, and progress availability tell one story"
|
|
- row "154 + - Keep phase/composite/determinate progress derived-only and subordinate to stale lifecycle truth" [ref=e5844]:
|
|
- cell [ref=e5845]
|
|
- cell "154" [ref=e5846]: "154"
|
|
- cell [ref=e5847]
|
|
- cell "+" [ref=e5848]:
|
|
- generic [ref=e5849]: +
|
|
- cell "- Keep phase/composite/determinate progress derived-only and subordinate to stale lifecycle truth" [ref=e5850]:
|
|
- code [ref=e5851]: "- Keep phase/composite/determinate progress derived-only and subordinate to stale lifecycle truth"
|
|
- row "155 + - Ensure unsupported or low-evidence cases remain cautious rather than overclaiming orphaned state" [ref=e5852]:
|
|
- cell [ref=e5853]
|
|
- cell "155" [ref=e5854]: "155"
|
|
- cell [ref=e5855]
|
|
- cell "+" [ref=e5856]:
|
|
- generic [ref=e5857]: +
|
|
- cell "- Ensure unsupported or low-evidence cases remain cautious rather than overclaiming orphaned state" [ref=e5858]:
|
|
- code [ref=e5859]: "- Ensure unsupported or low-evidence cases remain cautious rather than overclaiming orphaned state"
|
|
- row "156 +" [ref=e5860]:
|
|
- cell [ref=e5861]
|
|
- cell "156" [ref=e5862]: "156"
|
|
- cell [ref=e5863]
|
|
- cell "+" [ref=e5864]:
|
|
- generic [ref=e5865]: +
|
|
- cell [ref=e5866]:
|
|
- code
|
|
- 'row "157 + ### Phase 3 — Retrofit current monitoring surfaces" [ref=e5867]':
|
|
- cell [ref=e5868]
|
|
- cell "157" [ref=e5869]: "157"
|
|
- cell [ref=e5870]
|
|
- cell "+" [ref=e5871]:
|
|
- generic [ref=e5872]: +
|
|
- cell "### Phase 3 — Retrofit current monitoring surfaces" [ref=e5873]:
|
|
- code [ref=e5874]: "### Phase 3 — Retrofit current monitoring surfaces"
|
|
- row "158 +" [ref=e5875]:
|
|
- cell [ref=e5876]
|
|
- cell "158" [ref=e5877]: "158"
|
|
- cell [ref=e5878]
|
|
- cell "+" [ref=e5879]:
|
|
- generic [ref=e5880]: +
|
|
- cell [ref=e5881]:
|
|
- code
|
|
- row "159 + - Update the current shell banner so stale active work does not read as ordinary queue wait" [ref=e5882]:
|
|
- cell [ref=e5883]
|
|
- cell "159" [ref=e5884]: "159"
|
|
- cell [ref=e5885]
|
|
- cell "+" [ref=e5886]:
|
|
- generic [ref=e5887]: +
|
|
- cell "- Update the current shell banner so stale active work does not read as ordinary queue wait" [ref=e5888]:
|
|
- code [ref=e5889]: "- Update the current shell banner so stale active work does not read as ordinary queue wait"
|
|
- row "160 + - Update canonical list/detail guidance so they confirm the same lifecycle meaning" [ref=e5890]:
|
|
- cell [ref=e5891]
|
|
- cell "160" [ref=e5892]: "160"
|
|
- cell [ref=e5893]
|
|
- cell "+" [ref=e5894]:
|
|
- generic [ref=e5895]: +
|
|
- cell "- Update canonical list/detail guidance so they confirm the same lifecycle meaning" [ref=e5896]:
|
|
- code [ref=e5897]: "- Update canonical list/detail guidance so they confirm the same lifecycle meaning"
|
|
- row "161 + - Keep existing links, filters, and diagnostics structure unchanged" [ref=e5898]:
|
|
- cell [ref=e5899]
|
|
- cell "161" [ref=e5900]: "161"
|
|
- cell [ref=e5901]
|
|
- cell "+" [ref=e5902]:
|
|
- generic [ref=e5903]: +
|
|
- cell "- Keep existing links, filters, and diagnostics structure unchanged" [ref=e5904]:
|
|
- code [ref=e5905]: "- Keep existing links, filters, and diagnostics structure unchanged"
|
|
- row "162 +" [ref=e5906]:
|
|
- cell [ref=e5907]
|
|
- cell "162" [ref=e5908]: "162"
|
|
- cell [ref=e5909]
|
|
- cell "+" [ref=e5910]:
|
|
- generic [ref=e5911]: +
|
|
- cell [ref=e5912]:
|
|
- code
|
|
- 'row "163 + ### Phase 4 — Validate and lock the contract" [ref=e5913]':
|
|
- cell [ref=e5914]
|
|
- cell "163" [ref=e5915]: "163"
|
|
- cell [ref=e5916]
|
|
- cell "+" [ref=e5917]:
|
|
- generic [ref=e5918]: +
|
|
- cell "### Phase 4 — Validate and lock the contract" [ref=e5919]:
|
|
- code [ref=e5920]: "### Phase 4 — Validate and lock the contract"
|
|
- row "164 +" [ref=e5921]:
|
|
- cell [ref=e5922]
|
|
- cell "164" [ref=e5923]: "164"
|
|
- cell [ref=e5924]
|
|
- cell "+" [ref=e5925]:
|
|
- generic [ref=e5926]: +
|
|
- cell [ref=e5927]:
|
|
- code
|
|
- row "165 + - Add or update targeted unit + feature tests" [ref=e5928]:
|
|
- cell [ref=e5929]
|
|
- cell "165" [ref=e5930]: "165"
|
|
- cell [ref=e5931]
|
|
- cell "+" [ref=e5932]:
|
|
- generic [ref=e5933]: +
|
|
- cell "- Add or update targeted unit + feature tests" [ref=e5934]:
|
|
- code [ref=e5935]: "- Add or update targeted unit + feature tests"
|
|
- row "166 + - Run the focused validation commands" [ref=e5936]:
|
|
- cell [ref=e5937]
|
|
- cell "166" [ref=e5938]: "166"
|
|
- cell [ref=e5939]
|
|
- cell "+" [ref=e5940]:
|
|
- generic [ref=e5941]: +
|
|
- cell "- Run the focused validation commands" [ref=e5942]:
|
|
- code [ref=e5943]: "- Run the focused validation commands"
|
|
- row "167 + - Record any remaining bounded wording choices in the active feature close-out" [ref=e5944]:
|
|
- cell [ref=e5945]
|
|
- cell "167" [ref=e5946]: "167"
|
|
- cell [ref=e5947]
|
|
- cell "+" [ref=e5948]:
|
|
- generic [ref=e5949]: +
|
|
- cell "- Record any remaining bounded wording choices in the active feature close-out" [ref=e5950]:
|
|
- code [ref=e5951]: "- Record any remaining bounded wording choices in the active feature close-out"
|
|
- row "168 +" [ref=e5952]:
|
|
- cell [ref=e5953]
|
|
- cell "168" [ref=e5954]: "168"
|
|
- cell [ref=e5955]
|
|
- cell "+" [ref=e5956]:
|
|
- generic [ref=e5957]: +
|
|
- cell [ref=e5958]:
|
|
- code
|
|
- 'row "169 + ## Risks and Mitigations" [ref=e5959]':
|
|
- cell [ref=e5960]
|
|
- cell "169" [ref=e5961]: "169"
|
|
- cell [ref=e5962]
|
|
- cell "+" [ref=e5963]:
|
|
- generic [ref=e5964]: +
|
|
- cell "## Risks and Mitigations" [ref=e5965]:
|
|
- code [ref=e5966]: "## Risks and Mitigations"
|
|
- row "170 +" [ref=e5967]:
|
|
- cell [ref=e5968]
|
|
- cell "170" [ref=e5969]: "170"
|
|
- cell [ref=e5970]
|
|
- cell "+" [ref=e5971]:
|
|
- generic [ref=e5972]: +
|
|
- cell [ref=e5973]:
|
|
- code
|
|
- 'row "171 + - **Over-escalation of healthy work**: mitigate with explicit fresh-active negative assertions." [ref=e5974]':
|
|
- cell [ref=e5975]
|
|
- cell "171" [ref=e5976]: "171"
|
|
- cell [ref=e5977]
|
|
- cell "+" [ref=e5978]:
|
|
- generic [ref=e5979]: +
|
|
- 'cell "- **Over-escalation of healthy work**: mitigate with explicit fresh-active negative assertions." [ref=e5980]':
|
|
- code [ref=e5981]: "- **Over-escalation of healthy work**: mitigate with explicit fresh-active negative assertions."
|
|
- 'row "172 + - **Residual renderer drift**: mitigate by covering shell, list, and detail in the same test set." [ref=e5982]':
|
|
- cell [ref=e5983]
|
|
- cell "172" [ref=e5984]: "172"
|
|
- cell [ref=e5985]
|
|
- cell "+" [ref=e5986]:
|
|
- generic [ref=e5987]: +
|
|
- 'cell "- **Residual renderer drift**: mitigate by covering shell, list, and detail in the same test set." [ref=e5988]':
|
|
- code [ref=e5989]: "- **Residual renderer drift**: mitigate by covering shell, list, and detail in the same test set."
|
|
- 'row "173 + - **Accidental framework expansion**: mitigate by rejecting new registries, adapters, or persisted truth in review." [ref=e5990]':
|
|
- cell [ref=e5991]
|
|
- cell "173" [ref=e5992]: "173"
|
|
- cell [ref=e5993]
|
|
- cell "+" [ref=e5994]:
|
|
- generic [ref=e5995]: +
|
|
- 'cell "- **Accidental framework expansion**: mitigate by rejecting new registries, adapters, or persisted truth in review." [ref=e5996]':
|
|
- code [ref=e5997]: "- **Accidental framework expansion**: mitigate by rejecting new registries, adapters, or persisted truth in review."
|
|
- row "174 +" [ref=e5998]:
|
|
- cell [ref=e5999]
|
|
- cell "174" [ref=e6000]: "174"
|
|
- cell [ref=e6001]
|
|
- cell "+" [ref=e6002]:
|
|
- generic [ref=e6003]: +
|
|
- cell [ref=e6004]:
|
|
- code
|
|
- 'row "175 + ## Project Structure" [ref=e6005]':
|
|
- cell [ref=e6006]
|
|
- cell "175" [ref=e6007]: "175"
|
|
- cell [ref=e6008]
|
|
- cell "+" [ref=e6009]:
|
|
- generic [ref=e6010]: +
|
|
- cell "## Project Structure" [ref=e6011]:
|
|
- code [ref=e6012]: "## Project Structure"
|
|
- row "176 +" [ref=e6013]:
|
|
- cell [ref=e6014]
|
|
- cell "176" [ref=e6015]: "176"
|
|
- cell [ref=e6016]
|
|
- cell "+" [ref=e6017]:
|
|
- generic [ref=e6018]: +
|
|
- cell [ref=e6019]:
|
|
- code
|
|
- 'row "177 + ### Documentation" [ref=e6020]':
|
|
- cell [ref=e6021]
|
|
- cell "177" [ref=e6022]: "177"
|
|
- cell [ref=e6023]
|
|
- cell "+" [ref=e6024]:
|
|
- generic [ref=e6025]: +
|
|
- cell "### Documentation" [ref=e6026]:
|
|
- code [ref=e6027]: "### Documentation"
|
|
- row "178 +" [ref=e6028]:
|
|
- cell [ref=e6029]
|
|
- cell "178" [ref=e6030]: "178"
|
|
- cell [ref=e6031]
|
|
- cell "+" [ref=e6032]:
|
|
- generic [ref=e6033]: +
|
|
- cell [ref=e6034]:
|
|
- code
|
|
- 'row "179 + ```text" [ref=e6035]':
|
|
- cell [ref=e6036]
|
|
- cell "179" [ref=e6037]: "179"
|
|
- cell [ref=e6038]
|
|
- cell "+" [ref=e6039]:
|
|
- generic [ref=e6040]: +
|
|
- 'cell "```text" [ref=e6041]':
|
|
- code [ref=e6042]: "```text"
|
|
- row "180 + specs/358-operationrun-queue-truth-foundation/" [ref=e6043]:
|
|
- cell [ref=e6044]
|
|
- cell "180" [ref=e6045]: "180"
|
|
- cell [ref=e6046]
|
|
- cell "+" [ref=e6047]:
|
|
- generic [ref=e6048]: +
|
|
- cell "specs/358-operationrun-queue-truth-foundation/" [ref=e6049]:
|
|
- code [ref=e6050]: specs/358-operationrun-queue-truth-foundation/
|
|
- row "181 + |-- spec.md" [ref=e6051]:
|
|
- cell [ref=e6052]
|
|
- cell "181" [ref=e6053]: "181"
|
|
- cell [ref=e6054]
|
|
- cell "+" [ref=e6055]:
|
|
- generic [ref=e6056]: +
|
|
- cell "|-- spec.md" [ref=e6057]:
|
|
- code [ref=e6058]: "|-- spec.md"
|
|
- row "182 + |-- plan.md" [ref=e6059]:
|
|
- cell [ref=e6060]
|
|
- cell "182" [ref=e6061]: "182"
|
|
- cell [ref=e6062]
|
|
- cell "+" [ref=e6063]:
|
|
- generic [ref=e6064]: +
|
|
- cell "|-- plan.md" [ref=e6065]:
|
|
- code [ref=e6066]: "|-- plan.md"
|
|
- row "183 + |-- tasks.md" [ref=e6067]:
|
|
- cell [ref=e6068]
|
|
- cell "183" [ref=e6069]: "183"
|
|
- cell [ref=e6070]
|
|
- cell "+" [ref=e6071]:
|
|
- generic [ref=e6072]: +
|
|
- cell "|-- tasks.md" [ref=e6073]:
|
|
- code [ref=e6074]: "|-- tasks.md"
|
|
- 'row "184 + `-- checklists/" [ref=e6075]':
|
|
- cell [ref=e6076]
|
|
- cell "184" [ref=e6077]: "184"
|
|
- cell [ref=e6078]
|
|
- cell "+" [ref=e6079]:
|
|
- generic [ref=e6080]: +
|
|
- 'cell "`-- checklists/" [ref=e6081]':
|
|
- code [ref=e6082]: "`-- checklists/"
|
|
- 'row "185 + `-- requirements.md" [ref=e6083]':
|
|
- cell [ref=e6084]
|
|
- cell "185" [ref=e6085]: "185"
|
|
- cell [ref=e6086]
|
|
- cell "+" [ref=e6087]:
|
|
- generic [ref=e6088]: +
|
|
- 'cell "`-- requirements.md" [ref=e6089]':
|
|
- code [ref=e6090]: "`-- requirements.md"
|
|
- 'row "186 + ```" [ref=e6091]':
|
|
- cell [ref=e6092]
|
|
- cell "186" [ref=e6093]: "186"
|
|
- cell [ref=e6094]
|
|
- cell "+" [ref=e6095]:
|
|
- generic [ref=e6096]: +
|
|
- 'cell "```" [ref=e6097]':
|
|
- code [ref=e6098]: "```"
|
|
- row "187 +" [ref=e6099]:
|
|
- cell [ref=e6100]
|
|
- cell "187" [ref=e6101]: "187"
|
|
- cell [ref=e6102]
|
|
- cell "+" [ref=e6103]:
|
|
- generic [ref=e6104]: +
|
|
- cell [ref=e6105]:
|
|
- code
|
|
- 'row "188 + ### Runtime surfaces likely to change later" [ref=e6106]':
|
|
- cell [ref=e6107]
|
|
- cell "188" [ref=e6108]: "188"
|
|
- cell [ref=e6109]
|
|
- cell "+" [ref=e6110]:
|
|
- generic [ref=e6111]: +
|
|
- cell "### Runtime surfaces likely to change later" [ref=e6112]:
|
|
- code [ref=e6113]: "### Runtime surfaces likely to change later"
|
|
- row "189 +" [ref=e6114]:
|
|
- cell [ref=e6115]
|
|
- cell "189" [ref=e6116]: "189"
|
|
- cell [ref=e6117]
|
|
- cell "+" [ref=e6118]:
|
|
- generic [ref=e6119]: +
|
|
- cell [ref=e6120]:
|
|
- code
|
|
- 'row "190 + ```text" [ref=e6121]':
|
|
- cell [ref=e6122]
|
|
- cell "190" [ref=e6123]: "190"
|
|
- cell [ref=e6124]
|
|
- cell "+" [ref=e6125]:
|
|
- generic [ref=e6126]: +
|
|
- 'cell "```text" [ref=e6127]':
|
|
- code [ref=e6128]: "```text"
|
|
- row "191 + apps/platform/app/Support/OpsUx/" [ref=e6129]:
|
|
- cell [ref=e6130]
|
|
- cell "191" [ref=e6131]: "191"
|
|
- cell [ref=e6132]
|
|
- cell "+" [ref=e6133]:
|
|
- generic [ref=e6134]: +
|
|
- cell "apps/platform/app/Support/OpsUx/" [ref=e6135]:
|
|
- code [ref=e6136]: apps/platform/app/Support/OpsUx/
|
|
- row "192 + |-- OperationRunProgressContract.php" [ref=e6137]:
|
|
- cell [ref=e6138]
|
|
- cell "192" [ref=e6139]: "192"
|
|
- cell [ref=e6140]
|
|
- cell "+" [ref=e6141]:
|
|
- generic [ref=e6142]: +
|
|
- cell "|-- OperationRunProgressContract.php" [ref=e6143]:
|
|
- code [ref=e6144]: "|-- OperationRunProgressContract.php"
|
|
- row "193 + |-- OperationUxPresenter.php" [ref=e6145]:
|
|
- cell [ref=e6146]
|
|
- cell "193" [ref=e6147]: "193"
|
|
- cell [ref=e6148]
|
|
- cell "+" [ref=e6149]:
|
|
- generic [ref=e6150]: +
|
|
- cell "|-- OperationUxPresenter.php" [ref=e6151]:
|
|
- code [ref=e6152]: "|-- OperationUxPresenter.php"
|
|
- 'row "194 + `-- RunDurationInsights.php" [ref=e6153]':
|
|
- cell [ref=e6154]
|
|
- cell "194" [ref=e6155]: "194"
|
|
- cell [ref=e6156]
|
|
- cell "+" [ref=e6157]:
|
|
- generic [ref=e6158]: +
|
|
- 'cell "`-- RunDurationInsights.php" [ref=e6159]':
|
|
- code [ref=e6160]: "`-- RunDurationInsights.php"
|
|
- row "195 +" [ref=e6161]:
|
|
- cell [ref=e6162]
|
|
- cell "195" [ref=e6163]: "195"
|
|
- cell [ref=e6164]
|
|
- cell "+" [ref=e6165]:
|
|
- generic [ref=e6166]: +
|
|
- cell [ref=e6167]:
|
|
- code
|
|
- row "196 + apps/platform/app/Support/Operations/" [ref=e6168]:
|
|
- cell [ref=e6169]
|
|
- cell "196" [ref=e6170]: "196"
|
|
- cell [ref=e6171]
|
|
- cell "+" [ref=e6172]:
|
|
- generic [ref=e6173]: +
|
|
- cell "apps/platform/app/Support/Operations/" [ref=e6174]:
|
|
- code [ref=e6175]: apps/platform/app/Support/Operations/
|
|
- 'row "197 + `-- OperationRunFreshnessState.php" [ref=e6176]':
|
|
- cell [ref=e6177]
|
|
- cell "197" [ref=e6178]: "197"
|
|
- cell [ref=e6179]
|
|
- cell "+" [ref=e6180]:
|
|
- generic [ref=e6181]: +
|
|
- 'cell "`-- OperationRunFreshnessState.php" [ref=e6182]':
|
|
- code [ref=e6183]: "`-- OperationRunFreshnessState.php"
|
|
- row "198 +" [ref=e6184]:
|
|
- cell [ref=e6185]
|
|
- cell "198" [ref=e6186]: "198"
|
|
- cell [ref=e6187]
|
|
- cell "+" [ref=e6188]:
|
|
- generic [ref=e6189]: +
|
|
- cell [ref=e6190]:
|
|
- code
|
|
- row "199 + apps/platform/app/Filament/" [ref=e6191]:
|
|
- cell [ref=e6192]
|
|
- cell "199" [ref=e6193]: "199"
|
|
- cell [ref=e6194]
|
|
- cell "+" [ref=e6195]:
|
|
- generic [ref=e6196]: +
|
|
- cell "apps/platform/app/Filament/" [ref=e6197]:
|
|
- code [ref=e6198]: apps/platform/app/Filament/
|
|
- row "200 + |-- Pages/Monitoring/Operations.php" [ref=e6199]:
|
|
- cell [ref=e6200]
|
|
- cell "200" [ref=e6201]: "200"
|
|
- cell [ref=e6202]
|
|
- cell "+" [ref=e6203]:
|
|
- generic [ref=e6204]: +
|
|
- cell "|-- Pages/Monitoring/Operations.php" [ref=e6205]:
|
|
- code [ref=e6206]: "|-- Pages/Monitoring/Operations.php"
|
|
- row "201 + |-- Pages/Operations/TenantlessOperationRunViewer.php" [ref=e6207]:
|
|
- cell [ref=e6208]
|
|
- cell "201" [ref=e6209]: "201"
|
|
- cell [ref=e6210]
|
|
- cell "+" [ref=e6211]:
|
|
- generic [ref=e6212]: +
|
|
- cell "|-- Pages/Operations/TenantlessOperationRunViewer.php" [ref=e6213]:
|
|
- code [ref=e6214]: "|-- Pages/Operations/TenantlessOperationRunViewer.php"
|
|
- 'row "202 + `-- Resources/OperationRunResource.php" [ref=e6215]':
|
|
- cell [ref=e6216]
|
|
- cell "202" [ref=e6217]: "202"
|
|
- cell [ref=e6218]
|
|
- cell "+" [ref=e6219]:
|
|
- generic [ref=e6220]: +
|
|
- 'cell "`-- Resources/OperationRunResource.php" [ref=e6221]':
|
|
- code [ref=e6222]: "`-- Resources/OperationRunResource.php"
|
|
- row "203 +" [ref=e6223]:
|
|
- cell [ref=e6224]
|
|
- cell "203" [ref=e6225]: "203"
|
|
- cell [ref=e6226]
|
|
- cell "+" [ref=e6227]:
|
|
- generic [ref=e6228]: +
|
|
- cell [ref=e6229]:
|
|
- code
|
|
- row "204 + apps/platform/resources/views/filament/pages/monitoring/" [ref=e6230]:
|
|
- cell [ref=e6231]
|
|
- cell "204" [ref=e6232]: "204"
|
|
- cell [ref=e6233]
|
|
- cell "+" [ref=e6234]:
|
|
- generic [ref=e6235]: +
|
|
- cell "apps/platform/resources/views/filament/pages/monitoring/" [ref=e6236]:
|
|
- code [ref=e6237]: apps/platform/resources/views/filament/pages/monitoring/
|
|
- 'row "205 + `-- operations.blade.php" [ref=e6238]':
|
|
- cell [ref=e6239]
|
|
- cell "205" [ref=e6240]: "205"
|
|
- cell [ref=e6241]
|
|
- cell "+" [ref=e6242]:
|
|
- generic [ref=e6243]: +
|
|
- 'cell "`-- operations.blade.php" [ref=e6244]':
|
|
- code [ref=e6245]: "`-- operations.blade.php"
|
|
- row "206 +" [ref=e6246]:
|
|
- cell [ref=e6247]
|
|
- cell "206" [ref=e6248]: "206"
|
|
- cell [ref=e6249]
|
|
- cell "+" [ref=e6250]:
|
|
- generic [ref=e6251]: +
|
|
- cell [ref=e6252]:
|
|
- code
|
|
- row "207 + apps/platform/resources/views/livewire/" [ref=e6253]:
|
|
- cell [ref=e6254]
|
|
- cell "207" [ref=e6255]: "207"
|
|
- cell [ref=e6256]
|
|
- cell "+" [ref=e6257]:
|
|
- generic [ref=e6258]: +
|
|
- cell "apps/platform/resources/views/livewire/" [ref=e6259]:
|
|
- code [ref=e6260]: apps/platform/resources/views/livewire/
|
|
- 'row "208 + `-- bulk-operation-progress.blade.php" [ref=e6261]':
|
|
- cell [ref=e6262]
|
|
- cell "208" [ref=e6263]: "208"
|
|
- cell [ref=e6264]
|
|
- cell "+" [ref=e6265]:
|
|
- generic [ref=e6266]: +
|
|
- 'cell "`-- bulk-operation-progress.blade.php" [ref=e6267]':
|
|
- code [ref=e6268]: "`-- bulk-operation-progress.blade.php"
|
|
- 'row "209 + ```" [ref=e6269]':
|
|
- cell [ref=e6270]
|
|
- cell "209" [ref=e6271]: "209"
|
|
- cell [ref=e6272]
|
|
- cell "+" [ref=e6273]:
|
|
- generic [ref=e6274]: +
|
|
- 'cell "```" [ref=e6275]':
|
|
- code [ref=e6276]: "```"
|
|
- generic [ref=e6277]:
|
|
- 'heading "298 298 Änderungen: 298 Ergänzungen und 0 Löschungen specs/358-operationrun-queue-truth-foundation/spec.md Normale Datei Datei anzeigen" [level=4] [ref=e6278]':
|
|
- generic [ref=e6279]:
|
|
- button [ref=e6280] [cursor=pointer]:
|
|
- img [ref=e6281]
|
|
- generic [ref=e6283]:
|
|
- text: "298"
|
|
- 'generic "298 Änderungen: 298 Ergänzungen und 0 Löschungen" [ref=e6284]'
|
|
- generic [ref=e6286]:
|
|
- link "specs/358-operationrun-queue-truth-foundation/spec.md" [ref=e6287] [cursor=pointer]:
|
|
- /url: "#diff-cae80101b562551ce446e2172de0067cfd5d23ae"
|
|
- button [ref=e6288] [cursor=pointer]:
|
|
- img [ref=e6289]
|
|
- generic [ref=e6292]: Normale Datei
|
|
- link "Datei anzeigen" [ref=e6294] [cursor=pointer]:
|
|
- /url: /ahmido/TenantAtlas/src/commit/03514b9e5b2addf53d5441f0fc122ccef0b51999/specs/358-operationrun-queue-truth-foundation/spec.md
|
|
- table [ref=e6297]:
|
|
- rowgroup [ref=e6304]:
|
|
- row "@ -0,0 +1,298 @@" [ref=e6305]:
|
|
- cell [ref=e6306]
|
|
- cell [ref=e6307]
|
|
- cell [ref=e6308]
|
|
- cell "@ -0,0 +1,298 @@" [ref=e6309]:
|
|
- code [ref=e6310]: "@ -0,0 +1,298 @@"
|
|
- 'row "1 + # Feature Specification: OperationRun Queue Truth Foundation" [ref=e6311]':
|
|
- cell [ref=e6312]
|
|
- cell "1" [ref=e6313]: "1"
|
|
- cell [ref=e6314]
|
|
- cell "+" [ref=e6315]:
|
|
- generic [ref=e6316]: +
|
|
- 'cell "# Feature Specification: OperationRun Queue Truth Foundation" [ref=e6317]':
|
|
- code [ref=e6318]: "# Feature Specification: OperationRun Queue Truth Foundation"
|
|
- row "2 +" [ref=e6319]:
|
|
- cell [ref=e6320]
|
|
- cell "2" [ref=e6321]: "2"
|
|
- cell [ref=e6322]
|
|
- cell "+" [ref=e6323]:
|
|
- generic [ref=e6324]: +
|
|
- cell [ref=e6325]:
|
|
- code
|
|
- 'row "3 + **Feature Branch**: `358-operationrun-queue-truth-foundation`" [ref=e6326]':
|
|
- cell [ref=e6327]
|
|
- cell "3" [ref=e6328]: "3"
|
|
- cell [ref=e6329]
|
|
- cell "+" [ref=e6330]:
|
|
- generic [ref=e6331]: +
|
|
- 'cell "**Feature Branch**: `358-operationrun-queue-truth-foundation`" [ref=e6332]':
|
|
- code [ref=e6333]: "**Feature Branch**: `358-operationrun-queue-truth-foundation`"
|
|
- 'row "4 + **Created**: 2026-06-06" [ref=e6334]':
|
|
- cell [ref=e6335]
|
|
- cell "4" [ref=e6336]: "4"
|
|
- cell [ref=e6337]
|
|
- cell "+" [ref=e6338]:
|
|
- generic [ref=e6339]: +
|
|
- 'cell "**Created**: 2026-06-06" [ref=e6340]':
|
|
- code [ref=e6341]: "**Created**: 2026-06-06"
|
|
- 'row "5 + **Status**: Draft" [ref=e6342]':
|
|
- cell [ref=e6343]
|
|
- cell "5" [ref=e6344]: "5"
|
|
- cell [ref=e6345]
|
|
- cell "+" [ref=e6346]:
|
|
- generic [ref=e6347]: +
|
|
- 'cell "**Status**: Draft" [ref=e6348]':
|
|
- code [ref=e6349]: "**Status**: Draft"
|
|
- 'row "6 + **Input**: User-provided OperationRun queue-truth draft, reconciled against current repo truth" [ref=e6350]':
|
|
- cell [ref=e6351]
|
|
- cell "6" [ref=e6352]: "6"
|
|
- cell [ref=e6353]
|
|
- cell "+" [ref=e6354]:
|
|
- generic [ref=e6355]: +
|
|
- 'cell "**Input**: User-provided OperationRun queue-truth draft, reconciled against current repo truth" [ref=e6356]':
|
|
- code [ref=e6357]: "**Input**: User-provided OperationRun queue-truth draft, reconciled against current repo truth"
|
|
- row "7 +" [ref=e6358]:
|
|
- cell [ref=e6359]
|
|
- cell "7" [ref=e6360]: "7"
|
|
- cell [ref=e6361]
|
|
- cell "+" [ref=e6362]:
|
|
- generic [ref=e6363]: +
|
|
- cell [ref=e6364]:
|
|
- code
|
|
- 'row "8 + ## Spec Candidate Check *(mandatory — SPEC-GATE-001)*" [ref=e6365]':
|
|
- cell [ref=e6366]
|
|
- cell "8" [ref=e6367]: "8"
|
|
- cell [ref=e6368]
|
|
- cell "+" [ref=e6369]:
|
|
- generic [ref=e6370]: +
|
|
- cell "## Spec Candidate Check *(mandatory — SPEC-GATE-001)*" [ref=e6371]:
|
|
- code [ref=e6372]: "## Spec Candidate Check *(mandatory — SPEC-GATE-001)*"
|
|
- row "9 +" [ref=e6373]:
|
|
- cell [ref=e6374]
|
|
- cell "9" [ref=e6375]: "9"
|
|
- cell [ref=e6376]
|
|
- cell "+" [ref=e6377]:
|
|
- generic [ref=e6378]: +
|
|
- cell [ref=e6379]:
|
|
- code
|
|
- 'row "10 + - **Problem**: Current `OperationRun` UX still allows contradictory generic queue truth. The repo can show stale-attention semantics and ordinary queue/progress reassurance for the same active run, depending on which helper or surface renders first." [ref=e6380]':
|
|
- cell [ref=e6381]
|
|
- cell "10" [ref=e6382]: "10"
|
|
- cell [ref=e6383]
|
|
- cell "+" [ref=e6384]:
|
|
- generic [ref=e6385]: +
|
|
- 'cell "- **Problem**: Current `OperationRun` UX still allows contradictory generic queue truth. The repo can show stale-attention semantics and ordinary queue/progress reassurance for the same active run, depending on which helper or surface renders first." [ref=e6386]':
|
|
- code [ref=e6387]: "- **Problem**: Current `OperationRun` UX still allows contradictory generic queue truth. The repo can show stale-attention semantics and ordinary queue/progress reassurance for the same active run, depending on which helper or surface renders first."
|
|
- 'row "11 + - **Today''s failure**: A run can surface `Likely stale` lifecycle attention while generic copy still says `Waiting for worker.` or `No action needed yet. The operation is waiting for a worker.` This creates a false-calm operator message on active monitoring surfaces." [ref=e6388]':
|
|
- cell [ref=e6389]
|
|
- cell "11" [ref=e6390]: "11"
|
|
- cell [ref=e6391]
|
|
- cell "+" [ref=e6392]:
|
|
- generic [ref=e6393]: +
|
|
- 'cell "- **Today''s failure**: A run can surface `Likely stale` lifecycle attention while generic copy still says `Waiting for worker.` or `No action needed yet. The operation is waiting for a worker.` This creates a false-calm operator message on active monitoring surfaces." [ref=e6394]':
|
|
- code [ref=e6395]: "- **Today's failure**: A run can surface `Likely stale` lifecycle attention while generic copy still says `Waiting for worker.` or `No action needed yet. The operation is waiting for a worker.` This creates a false-calm operator message on active monitoring surfaces."
|
|
- 'row "12 + - **User-visible improvement**: Queued and running `OperationRun` records will render one honest generic lifecycle story across shell hints, monitoring rows, and canonical detail without overclaiming domain success or orphaned queue state." [ref=e6396]':
|
|
- cell [ref=e6397]
|
|
- cell "12" [ref=e6398]: "12"
|
|
- cell [ref=e6399]
|
|
- cell "+" [ref=e6400]:
|
|
- generic [ref=e6401]: +
|
|
- 'cell "- **User-visible improvement**: Queued and running `OperationRun` records will render one honest generic lifecycle story across shell hints, monitoring rows, and canonical detail without overclaiming domain success or orphaned queue state." [ref=e6402]':
|
|
- code [ref=e6403]: "- **User-visible improvement**: Queued and running `OperationRun` records will render one honest generic lifecycle story across shell hints, monitoring rows, and canonical detail without overclaiming domain success or orphaned queue state."
|
|
- 'row "13 + - **Smallest enterprise-capable version**: Align the existing generic lifecycle helpers (`OperationRunFreshnessState`, `OperationRunProgressContract`, `RunDurationInsights`, and `OperationUxPresenter`) and apply the resulting truth to current monitoring and shell surfaces only." [ref=e6404]':
|
|
- cell [ref=e6405]
|
|
- cell "13" [ref=e6406]: "13"
|
|
- cell [ref=e6407]
|
|
- cell "+" [ref=e6408]:
|
|
- generic [ref=e6409]: +
|
|
- 'cell "- **Smallest enterprise-capable version**: Align the existing generic lifecycle helpers (`OperationRunFreshnessState`, `OperationRunProgressContract`, `RunDurationInsights`, and `OperationUxPresenter`) and apply the resulting truth to current monitoring and shell surfaces only." [ref=e6410]':
|
|
- code [ref=e6411]: "- **Smallest enterprise-capable version**: Align the existing generic lifecycle helpers (`OperationRunFreshnessState`, `OperationRunProgressContract`, `RunDurationInsights`, and `OperationUxPresenter`) and apply the resulting truth to current monitoring and shell surfaces only."
|
|
- 'row "14 + - **Explicit non-goals**: No new persisted `OperationRun` statuses or outcomes, no queue schema redesign, no new worker-health subsystem, no new notification family, no new adapter framework, no new domain-success reconciliation, no restore/review/backup auto-completion logic, and no destructive action changes." [ref=e6412]':
|
|
- cell [ref=e6413]
|
|
- cell "14" [ref=e6414]: "14"
|
|
- cell [ref=e6415]
|
|
- cell "+" [ref=e6416]:
|
|
- generic [ref=e6417]: +
|
|
- 'cell "- **Explicit non-goals**: No new persisted `OperationRun` statuses or outcomes, no queue schema redesign, no new worker-health subsystem, no new notification family, no new adapter framework, no new domain-success reconciliation, no restore/review/backup auto-completion logic, and no destructive action changes." [ref=e6418]':
|
|
- code [ref=e6419]: "- **Explicit non-goals**: No new persisted `OperationRun` statuses or outcomes, no queue schema redesign, no new worker-health subsystem, no new notification family, no new adapter framework, no new domain-success reconciliation, no restore/review/backup auto-completion logic, and no destructive action changes."
|
|
- 'row "15 + - **Permanent complexity imported**: One bounded derived queue-truth path over existing `OperationRun` state, plus focused tests that lock the contract across shared monitoring surfaces." [ref=e6420]':
|
|
- cell [ref=e6421]
|
|
- cell "15" [ref=e6422]: "15"
|
|
- cell [ref=e6423]
|
|
- cell "+" [ref=e6424]:
|
|
- generic [ref=e6425]: +
|
|
- 'cell "- **Permanent complexity imported**: One bounded derived queue-truth path over existing `OperationRun` state, plus focused tests that lock the contract across shared monitoring surfaces." [ref=e6426]':
|
|
- code [ref=e6427]: "- **Permanent complexity imported**: One bounded derived queue-truth path over existing `OperationRun` state, plus focused tests that lock the contract across shared monitoring surfaces."
|
|
- 'row "16 + - **Why now**: Historical specs already improved stale visibility and shared progress, but current repo truth still contains contradictory generic wording. This is an active operator-trust gap in currently shipped runtime paths." [ref=e6428]':
|
|
- cell [ref=e6429]
|
|
- cell "16" [ref=e6430]: "16"
|
|
- cell [ref=e6431]
|
|
- cell "+" [ref=e6432]:
|
|
- generic [ref=e6433]: +
|
|
- 'cell "- **Why now**: Historical specs already improved stale visibility and shared progress, but current repo truth still contains contradictory generic wording. This is an active operator-trust gap in currently shipped runtime paths." [ref=e6434]':
|
|
- code [ref=e6435]: "- **Why now**: Historical specs already improved stale visibility and shared progress, but current repo truth still contains contradictory generic wording. This is an active operator-trust gap in currently shipped runtime paths."
|
|
- 'row "17 + - **Why not local**: Fixing only one Blade view, one banner, or one detail card would leave the contradiction between progress, freshness, and queue-guidance helpers intact." [ref=e6436]':
|
|
- cell [ref=e6437]
|
|
- cell "17" [ref=e6438]: "17"
|
|
- cell [ref=e6439]
|
|
- cell "+" [ref=e6440]:
|
|
- generic [ref=e6441]: +
|
|
- 'cell "- **Why not local**: Fixing only one Blade view, one banner, or one detail card would leave the contradiction between progress, freshness, and queue-guidance helpers intact." [ref=e6442]':
|
|
- code [ref=e6443]: "- **Why not local**: Fixing only one Blade view, one banner, or one detail card would leave the contradiction between progress, freshness, and queue-guidance helpers intact."
|
|
- 'row "18 + - **Approval class**: Core Enterprise" [ref=e6444]':
|
|
- cell [ref=e6445]
|
|
- cell "18" [ref=e6446]: "18"
|
|
- cell [ref=e6447]
|
|
- cell "+" [ref=e6448]:
|
|
- generic [ref=e6449]: +
|
|
- 'cell "- **Approval class**: Core Enterprise" [ref=e6450]':
|
|
- code [ref=e6451]: "- **Approval class**: Core Enterprise"
|
|
- 'row "19 + - **Red flags triggered**: shared interaction family, monitoring-state semantics, and possible helper consolidation. Defense: the slice remains derived-only, persistence-free, and narrower than a new reconciliation framework." [ref=e6452]':
|
|
- cell [ref=e6453]
|
|
- cell "19" [ref=e6454]: "19"
|
|
- cell [ref=e6455]
|
|
- cell "+" [ref=e6456]:
|
|
- generic [ref=e6457]: +
|
|
- 'cell "- **Red flags triggered**: shared interaction family, monitoring-state semantics, and possible helper consolidation. Defense: the slice remains derived-only, persistence-free, and narrower than a new reconciliation framework." [ref=e6458]':
|
|
- code [ref=e6459]: "- **Red flags triggered**: shared interaction family, monitoring-state semantics, and possible helper consolidation. Defense: the slice remains derived-only, persistence-free, and narrower than a new reconciliation framework."
|
|
- 'row "20 + - **Score**: Nutzen: 2 | Dringlichkeit: 2 | Scope: 2 | Komplexität: 1 | Produktnähe: 2 | Wiederverwendung: 2 | **Gesamt: 11/12**" [ref=e6460]':
|
|
- cell [ref=e6461]
|
|
- cell "20" [ref=e6462]: "20"
|
|
- cell [ref=e6463]
|
|
- cell "+" [ref=e6464]:
|
|
- generic [ref=e6465]: +
|
|
- 'cell "- **Score**: Nutzen: 2 | Dringlichkeit: 2 | Scope: 2 | Komplexität: 1 | Produktnähe: 2 | Wiederverwendung: 2 | **Gesamt: 11/12**" [ref=e6466]':
|
|
- code [ref=e6467]: "- **Score**: Nutzen: 2 | Dringlichkeit: 2 | Scope: 2 | Komplexität: 1 | Produktnähe: 2 | Wiederverwendung: 2 | **Gesamt: 11/12**"
|
|
- 'row "21 + - **Decision**: approve" [ref=e6468]':
|
|
- cell [ref=e6469]
|
|
- cell "21" [ref=e6470]: "21"
|
|
- cell [ref=e6471]
|
|
- cell "+" [ref=e6472]:
|
|
- generic [ref=e6473]: +
|
|
- 'cell "- **Decision**: approve" [ref=e6474]':
|
|
- code [ref=e6475]: "- **Decision**: approve"
|
|
- row "22 +" [ref=e6476]:
|
|
- cell [ref=e6477]
|
|
- cell "22" [ref=e6478]: "22"
|
|
- cell [ref=e6479]
|
|
- cell "+" [ref=e6480]:
|
|
- generic [ref=e6481]: +
|
|
- cell [ref=e6482]:
|
|
- code
|
|
- 'row "23 + ## Repo Truth Reconciliation" [ref=e6483]':
|
|
- cell [ref=e6484]
|
|
- cell "23" [ref=e6485]: "23"
|
|
- cell [ref=e6486]
|
|
- cell "+" [ref=e6487]:
|
|
- generic [ref=e6488]: +
|
|
- cell "## Repo Truth Reconciliation" [ref=e6489]:
|
|
- code [ref=e6490]: "## Repo Truth Reconciliation"
|
|
- row "24 +" [ref=e6491]:
|
|
- cell [ref=e6492]
|
|
- cell "24" [ref=e6493]: "24"
|
|
- cell [ref=e6494]
|
|
- cell "+" [ref=e6495]:
|
|
- generic [ref=e6496]: +
|
|
- cell [ref=e6497]:
|
|
- code
|
|
- row "25 + The user draft is directionally correct, but current repo truth changes the exact framing:" [ref=e6498]:
|
|
- cell [ref=e6499]
|
|
- cell "25" [ref=e6500]: "25"
|
|
- cell [ref=e6501]
|
|
- cell "+" [ref=e6502]:
|
|
- generic [ref=e6503]: +
|
|
- cell "The user draft is directionally correct, but current repo truth changes the exact framing:" [ref=e6504]:
|
|
- code [ref=e6505]: "The user draft is directionally correct, but current repo truth changes the exact framing:"
|
|
- row "26 +" [ref=e6506]:
|
|
- cell [ref=e6507]
|
|
- cell "26" [ref=e6508]: "26"
|
|
- cell [ref=e6509]
|
|
- cell "+" [ref=e6510]:
|
|
- generic [ref=e6511]: +
|
|
- cell [ref=e6512]:
|
|
- code
|
|
- 'row "27 + 1. The repo helper advanced to `1000` because `specs/999-seeder-external-id/` already exists, but this package is intentionally finalized as user-requested Spec `358`." [ref=e6513]':
|
|
- cell [ref=e6514]
|
|
- cell "27" [ref=e6515]: "27"
|
|
- cell [ref=e6516]
|
|
- cell "+" [ref=e6517]:
|
|
- generic [ref=e6518]: +
|
|
- 'cell "1. The repo helper advanced to `1000` because `specs/999-seeder-external-id/` already exists, but this package is intentionally finalized as user-requested Spec `358`." [ref=e6519]':
|
|
- code [ref=e6520]: "1. The repo helper advanced to `1000` because `specs/999-seeder-external-id/` already exists, but this package is intentionally finalized as user-requested Spec `358`."
|
|
- 'row "28 + 2. Generic stale reconciliation already exists via `TenantpilotReconcileOperationRuns` and `OperationLifecycleReconciler`; adapter-backed reconciliation already exists via `OpsReconcileAdapterRuns` and `AdapterRunReconciler`." [ref=e6521]':
|
|
- cell [ref=e6522]
|
|
- cell "28" [ref=e6523]: "28"
|
|
- cell [ref=e6524]
|
|
- cell "+" [ref=e6525]:
|
|
- generic [ref=e6526]: +
|
|
- 'cell "2. Generic stale reconciliation already exists via `TenantpilotReconcileOperationRuns` and `OperationLifecycleReconciler`; adapter-backed reconciliation already exists via `OpsReconcileAdapterRuns` and `AdapterRunReconciler`." [ref=e6527]':
|
|
- code [ref=e6528]: "2. Generic stale reconciliation already exists via `TenantpilotReconcileOperationRuns` and `OperationLifecycleReconciler`; adapter-backed reconciliation already exists via `OpsReconcileAdapterRuns` and `AdapterRunReconciler`."
|
|
- 'row "29 + 3. A shared progress helper already exists via `OperationRunProgressContract`, and Spec 272 already extended its active-progress precedence for phased/composite truth; this spec aligns stale/fresh queue guidance with that current shared contract instead of inventing a new one." [ref=e6529]':
|
|
- cell [ref=e6530]
|
|
- cell "29" [ref=e6531]: "29"
|
|
- cell [ref=e6532]
|
|
- cell "+" [ref=e6533]:
|
|
- generic [ref=e6534]: +
|
|
- 'cell "3. A shared progress helper already exists via `OperationRunProgressContract`, and Spec 272 already extended its active-progress precedence for phased/composite truth; this spec aligns stale/fresh queue guidance with that current shared contract instead of inventing a new one." [ref=e6535]':
|
|
- code [ref=e6536]: "3. A shared progress helper already exists via `OperationRunProgressContract`, and Spec 272 already extended its active-progress precedence for phased/composite truth; this spec aligns stale/fresh queue guidance with that current shared contract instead of inventing a new one."
|
|
- 'row "30 + 4. The current canonical Monitoring routes are workspace-scoped: `/admin/workspaces/{workspace}/operations` and `/admin/workspaces/{workspace}/operations/{run}`. `OperationRunResource` remains an implementation seam, not a route-backed surface." [ref=e6537]':
|
|
- cell [ref=e6538]
|
|
- cell "30" [ref=e6539]: "30"
|
|
- cell [ref=e6540]
|
|
- cell "+" [ref=e6541]:
|
|
- generic [ref=e6542]: +
|
|
- 'cell "4. The current canonical Monitoring routes are workspace-scoped: `/admin/workspaces/{workspace}/operations` and `/admin/workspaces/{workspace}/operations/{run}`. `OperationRunResource` remains an implementation seam, not a route-backed surface." [ref=e6543]':
|
|
- code [ref=e6544]: "4. The current canonical Monitoring routes are workspace-scoped: `/admin/workspaces/{workspace}/operations` and `/admin/workspaces/{workspace}/operations/{run}`. `OperationRunResource` remains an implementation seam, not a route-backed surface."
|
|
- 'row "31 + 5. No follow-up `Spec 359` promise is recorded here. Any later adapter or domain-success work must be promoted from fresh repo truth rather than pre-allocating a speculative framework sequence." [ref=e6545]':
|
|
- cell [ref=e6546]
|
|
- cell "31" [ref=e6547]: "31"
|
|
- cell [ref=e6548]
|
|
- cell "+" [ref=e6549]:
|
|
- generic [ref=e6550]: +
|
|
- 'cell "5. No follow-up `Spec 359` promise is recorded here. Any later adapter or domain-success work must be promoted from fresh repo truth rather than pre-allocating a speculative framework sequence." [ref=e6551]':
|
|
- code [ref=e6552]: "5. No follow-up `Spec 359` promise is recorded here. Any later adapter or domain-success work must be promoted from fresh repo truth rather than pre-allocating a speculative framework sequence."
|
|
- row "32 +" [ref=e6553]:
|
|
- cell [ref=e6554]
|
|
- cell "32" [ref=e6555]: "32"
|
|
- cell [ref=e6556]
|
|
- cell "+" [ref=e6557]:
|
|
- generic [ref=e6558]: +
|
|
- cell [ref=e6559]:
|
|
- code
|
|
- 'row "33 + ## Spec Scope Fields *(mandatory)*" [ref=e6560]':
|
|
- cell [ref=e6561]
|
|
- cell "33" [ref=e6562]: "33"
|
|
- cell [ref=e6563]
|
|
- cell "+" [ref=e6564]:
|
|
- generic [ref=e6565]: +
|
|
- cell "## Spec Scope Fields *(mandatory)*" [ref=e6566]:
|
|
- code [ref=e6567]: "## Spec Scope Fields *(mandatory)*"
|
|
- row "34 +" [ref=e6568]:
|
|
- cell [ref=e6569]
|
|
- cell "34" [ref=e6570]: "34"
|
|
- cell [ref=e6571]
|
|
- cell "+" [ref=e6572]:
|
|
- generic [ref=e6573]: +
|
|
- cell [ref=e6574]:
|
|
- code
|
|
- 'row "35 + - **Scope**: workspace, tenant, canonical-view" [ref=e6575]':
|
|
- cell [ref=e6576]
|
|
- cell "35" [ref=e6577]: "35"
|
|
- cell [ref=e6578]
|
|
- cell "+" [ref=e6579]:
|
|
- generic [ref=e6580]: +
|
|
- 'cell "- **Scope**: workspace, tenant, canonical-view" [ref=e6581]':
|
|
- code [ref=e6582]: "- **Scope**: workspace, tenant, canonical-view"
|
|
- row "36 + - **Primary Routes**:" [ref=e6583]:
|
|
- cell [ref=e6584]
|
|
- cell "36" [ref=e6585]: "36"
|
|
- cell [ref=e6586]
|
|
- cell "+" [ref=e6587]:
|
|
- generic [ref=e6588]: +
|
|
- cell "- **Primary Routes**:" [ref=e6589]:
|
|
- code [ref=e6590]: "- **Primary Routes**:"
|
|
- 'row "37 + - workspace-admin surfaces that host the shared shell activity hint while an entitled managed environment is active, including current `/admin/workspaces/{workspace}/environments/{environment}/...` starts" [ref=e6591]':
|
|
- cell [ref=e6592]
|
|
- cell "37" [ref=e6593]: "37"
|
|
- cell [ref=e6594]
|
|
- cell "+" [ref=e6595]:
|
|
- generic [ref=e6596]: +
|
|
- 'cell "- workspace-admin surfaces that host the shared shell activity hint while an entitled managed environment is active, including current `/admin/workspaces/{workspace}/environments/{environment}/...` starts" [ref=e6597]':
|
|
- code [ref=e6598]: "- workspace-admin surfaces that host the shared shell activity hint while an entitled managed environment is active, including current `/admin/workspaces/{workspace}/environments/{environment}/...` starts"
|
|
- 'row "38 + - `/admin/workspaces/{workspace}/operations`" [ref=e6599]':
|
|
- cell [ref=e6600]
|
|
- cell "38" [ref=e6601]: "38"
|
|
- cell [ref=e6602]
|
|
- cell "+" [ref=e6603]:
|
|
- generic [ref=e6604]: +
|
|
- 'cell "- `/admin/workspaces/{workspace}/operations`" [ref=e6605]':
|
|
- code [ref=e6606]: "- `/admin/workspaces/{workspace}/operations`"
|
|
- 'row "39 + - `/admin/workspaces/{workspace}/operations/{run}`" [ref=e6607]':
|
|
- cell [ref=e6608]
|
|
- cell "39" [ref=e6609]: "39"
|
|
- cell [ref=e6610]
|
|
- cell "+" [ref=e6611]:
|
|
- generic [ref=e6612]: +
|
|
- 'cell "- `/admin/workspaces/{workspace}/operations/{run}`" [ref=e6613]':
|
|
- code [ref=e6614]: "- `/admin/workspaces/{workspace}/operations/{run}`"
|
|
- 'row "40 + - the current canonical Monitoring surfaces `App\\Filament\\Pages\\Monitoring\\Operations` and `App\\Filament\\Pages\\Operations\\TenantlessOperationRunViewer`" [ref=e6615]':
|
|
- cell [ref=e6616]
|
|
- cell "40" [ref=e6617]: "40"
|
|
- cell [ref=e6618]
|
|
- cell "+" [ref=e6619]:
|
|
- generic [ref=e6620]: +
|
|
- 'cell "- the current canonical Monitoring surfaces `App\\Filament\\Pages\\Monitoring\\Operations` and `App\\Filament\\Pages\\Operations\\TenantlessOperationRunViewer`" [ref=e6621]':
|
|
- code [ref=e6622]: "- the current canonical Monitoring surfaces `App\\Filament\\Pages\\Monitoring\\Operations` and `App\\Filament\\Pages\\Operations\\TenantlessOperationRunViewer`"
|
|
- row "41 + - **Data Ownership**:" [ref=e6623]:
|
|
- cell [ref=e6624]
|
|
- cell "41" [ref=e6625]: "41"
|
|
- cell [ref=e6626]
|
|
- cell "+" [ref=e6627]:
|
|
- generic [ref=e6628]: +
|
|
- cell "- **Data Ownership**:" [ref=e6629]:
|
|
- code [ref=e6630]: "- **Data Ownership**:"
|
|
- 'row "42 + - `operation_runs` remain the only lifecycle and freshness source of truth" [ref=e6631]':
|
|
- cell [ref=e6632]
|
|
- cell "42" [ref=e6633]: "42"
|
|
- cell [ref=e6634]
|
|
- cell "+" [ref=e6635]:
|
|
- generic [ref=e6636]: +
|
|
- 'cell "- `operation_runs` remain the only lifecycle and freshness source of truth" [ref=e6637]':
|
|
- code [ref=e6638]: "- `operation_runs` remain the only lifecycle and freshness source of truth"
|
|
- 'row "43 + - `OperationRun` context remains the only place where legitimacy or reconciliation evidence may already exist" [ref=e6639]':
|
|
- cell [ref=e6640]
|
|
- cell "43" [ref=e6641]: "43"
|
|
- cell [ref=e6642]
|
|
- cell "+" [ref=e6643]:
|
|
- generic [ref=e6644]: +
|
|
- 'cell "- `OperationRun` context remains the only place where legitimacy or reconciliation evidence may already exist" [ref=e6645]':
|
|
- code [ref=e6646]: "- `OperationRun` context remains the only place where legitimacy or reconciliation evidence may already exist"
|
|
- row "44 + - no new persisted queue-truth mirror, no new audit artifact, and no new worker-health record are introduced" [ref=e6647]:
|
|
- cell [ref=e6648]
|
|
- cell "44" [ref=e6649]: "44"
|
|
- cell [ref=e6650]
|
|
- cell "+" [ref=e6651]:
|
|
- generic [ref=e6652]: +
|
|
- cell "- no new persisted queue-truth mirror, no new audit artifact, and no new worker-health record are introduced" [ref=e6653]:
|
|
- code [ref=e6654]: "- no new persisted queue-truth mirror, no new audit artifact, and no new worker-health record are introduced"
|
|
- row "45 + - **RBAC**:" [ref=e6655]:
|
|
- cell [ref=e6656]
|
|
- cell "45" [ref=e6657]: "45"
|
|
- cell [ref=e6658]
|
|
- cell "+" [ref=e6659]:
|
|
- generic [ref=e6660]: +
|
|
- cell "- **RBAC**:" [ref=e6661]:
|
|
- code [ref=e6662]: "- **RBAC**:"
|
|
- row "46 + - existing workspace and managed-environment entitlement rules remain authoritative" [ref=e6663]:
|
|
- cell [ref=e6664]
|
|
- cell "46" [ref=e6665]: "46"
|
|
- cell [ref=e6666]
|
|
- cell "+" [ref=e6667]:
|
|
- generic [ref=e6668]: +
|
|
- cell "- existing workspace and managed-environment entitlement rules remain authoritative" [ref=e6669]:
|
|
- code [ref=e6670]: "- existing workspace and managed-environment entitlement rules remain authoritative"
|
|
- 'row "47 + - non-members and out-of-scope actors remain `404`" [ref=e6671]':
|
|
- cell [ref=e6672]
|
|
- cell "47" [ref=e6673]: "47"
|
|
- cell [ref=e6674]
|
|
- cell "+" [ref=e6675]:
|
|
- generic [ref=e6676]: +
|
|
- 'cell "- non-members and out-of-scope actors remain `404`" [ref=e6677]':
|
|
- code [ref=e6678]: "- non-members and out-of-scope actors remain `404`"
|
|
- row "48 + - this spec changes wording and derived presentation only; it does not widen access or add new capability strings" [ref=e6679]:
|
|
- cell [ref=e6680]
|
|
- cell "48" [ref=e6681]: "48"
|
|
- cell [ref=e6682]
|
|
- cell "+" [ref=e6683]:
|
|
- generic [ref=e6684]: +
|
|
- cell "- this spec changes wording and derived presentation only; it does not widen access or add new capability strings" [ref=e6685]:
|
|
- code [ref=e6686]: "- this spec changes wording and derived presentation only; it does not widen access or add new capability strings"
|
|
- row "49 +" [ref=e6687]:
|
|
- cell [ref=e6688]
|
|
- cell "49" [ref=e6689]: "49"
|
|
- cell [ref=e6690]
|
|
- cell "+" [ref=e6691]:
|
|
- generic [ref=e6692]: +
|
|
- cell [ref=e6693]:
|
|
- code
|
|
- row "50 + For canonical-view specs, the spec MUST define:" [ref=e6694]:
|
|
- cell [ref=e6695]
|
|
- cell "50" [ref=e6696]: "50"
|
|
- cell [ref=e6697]
|
|
- cell "+" [ref=e6698]:
|
|
- generic [ref=e6699]: +
|
|
- cell "For canonical-view specs, the spec MUST define:" [ref=e6700]:
|
|
- code [ref=e6701]: "For canonical-view specs, the spec MUST define:"
|
|
- row "51 +" [ref=e6702]:
|
|
- cell [ref=e6703]
|
|
- cell "51" [ref=e6704]: "51"
|
|
- cell [ref=e6705]
|
|
- cell "+" [ref=e6706]:
|
|
- generic [ref=e6707]: +
|
|
- cell [ref=e6708]:
|
|
- code
|
|
- 'row "52 + - **Default filter behavior when tenant-context is active**: Existing environment-prefilter and page-state behavior on `/admin/workspaces/{workspace}/operations` remain unchanged. This spec changes queue truth, not monitoring state ownership." [ref=e6709]':
|
|
- cell [ref=e6710]
|
|
- cell "52" [ref=e6711]: "52"
|
|
- cell [ref=e6712]
|
|
- cell "+" [ref=e6713]:
|
|
- generic [ref=e6714]: +
|
|
- 'cell "- **Default filter behavior when tenant-context is active**: Existing environment-prefilter and page-state behavior on `/admin/workspaces/{workspace}/operations` remain unchanged. This spec changes queue truth, not monitoring state ownership." [ref=e6715]':
|
|
- code [ref=e6716]: "- **Default filter behavior when tenant-context is active**: Existing environment-prefilter and page-state behavior on `/admin/workspaces/{workspace}/operations` remain unchanged. This spec changes queue truth, not monitoring state ownership."
|
|
- 'row "53 + - **Explicit entitlement checks preventing cross-tenant leakage**: Derived stale/queued guidance must use only runs the actor is already authorized to view. No new wording may reveal hidden tenant scope or hidden run existence." [ref=e6717]':
|
|
- cell [ref=e6718]
|
|
- cell "53" [ref=e6719]: "53"
|
|
- cell [ref=e6720]
|
|
- cell "+" [ref=e6721]:
|
|
- generic [ref=e6722]: +
|
|
- 'cell "- **Explicit entitlement checks preventing cross-tenant leakage**: Derived stale/queued guidance must use only runs the actor is already authorized to view. No new wording may reveal hidden tenant scope or hidden run existence." [ref=e6723]':
|
|
- code [ref=e6724]: "- **Explicit entitlement checks preventing cross-tenant leakage**: Derived stale/queued guidance must use only runs the actor is already authorized to view. No new wording may reveal hidden tenant scope or hidden run existence."
|
|
- row "54 +" [ref=e6725]:
|
|
- cell [ref=e6726]
|
|
- cell "54" [ref=e6727]: "54"
|
|
- cell [ref=e6728]
|
|
- cell "+" [ref=e6729]:
|
|
- generic [ref=e6730]: +
|
|
- cell [ref=e6731]:
|
|
- code
|
|
- 'row "55 + ## UI Surface Impact *(mandatory — UI-COV-001)*" [ref=e6732]':
|
|
- cell [ref=e6733]
|
|
- cell "55" [ref=e6734]: "55"
|
|
- cell [ref=e6735]
|
|
- cell "+" [ref=e6736]:
|
|
- generic [ref=e6737]: +
|
|
- cell "## UI Surface Impact *(mandatory — UI-COV-001)*" [ref=e6738]:
|
|
- code [ref=e6739]: "## UI Surface Impact *(mandatory — UI-COV-001)*"
|
|
- row "56 +" [ref=e6740]:
|
|
- cell [ref=e6741]
|
|
- cell "56" [ref=e6742]: "56"
|
|
- cell [ref=e6743]
|
|
- cell "+" [ref=e6744]:
|
|
- generic [ref=e6745]: +
|
|
- cell [ref=e6746]:
|
|
- code
|
|
- row "57 + - [ ] No UI surface impact" [ref=e6747]:
|
|
- cell [ref=e6748]
|
|
- cell "57" [ref=e6749]: "57"
|
|
- cell [ref=e6750]
|
|
- cell "+" [ref=e6751]:
|
|
- generic [ref=e6752]: +
|
|
- cell "- [ ] No UI surface impact" [ref=e6753]:
|
|
- code [ref=e6754]: "- [ ] No UI surface impact"
|
|
- row "58 + - [x] Existing page changed" [ref=e6755]:
|
|
- cell [ref=e6756]
|
|
- cell "58" [ref=e6757]: "58"
|
|
- cell [ref=e6758]
|
|
- cell "+" [ref=e6759]:
|
|
- generic [ref=e6760]: +
|
|
- cell "- [x] Existing page changed" [ref=e6761]:
|
|
- code [ref=e6762]: "- [x] Existing page changed"
|
|
- row "59 + - [ ] New page/route added" [ref=e6763]:
|
|
- cell [ref=e6764]
|
|
- cell "59" [ref=e6765]: "59"
|
|
- cell [ref=e6766]
|
|
- cell "+" [ref=e6767]:
|
|
- generic [ref=e6768]: +
|
|
- cell "- [ ] New page/route added" [ref=e6769]:
|
|
- code [ref=e6770]: "- [ ] New page/route added"
|
|
- row "60 + - [ ] Navigation changed" [ref=e6771]:
|
|
- cell [ref=e6772]
|
|
- cell "60" [ref=e6773]: "60"
|
|
- cell [ref=e6774]
|
|
- cell "+" [ref=e6775]:
|
|
- generic [ref=e6776]: +
|
|
- cell "- [ ] Navigation changed" [ref=e6777]:
|
|
- code [ref=e6778]: "- [ ] Navigation changed"
|
|
- row "61 + - [ ] Filament panel/provider surface changed" [ref=e6779]:
|
|
- cell [ref=e6780]
|
|
- cell "61" [ref=e6781]: "61"
|
|
- cell [ref=e6782]
|
|
- cell "+" [ref=e6783]:
|
|
- generic [ref=e6784]: +
|
|
- cell "- [ ] Filament panel/provider surface changed" [ref=e6785]:
|
|
- code [ref=e6786]: "- [ ] Filament panel/provider surface changed"
|
|
- row "62 + - [ ] New modal/drawer/wizard/action added" [ref=e6787]:
|
|
- cell [ref=e6788]
|
|
- cell "62" [ref=e6789]: "62"
|
|
- cell [ref=e6790]
|
|
- cell "+" [ref=e6791]:
|
|
- generic [ref=e6792]: +
|
|
- cell "- [ ] New modal/drawer/wizard/action added" [ref=e6793]:
|
|
- code [ref=e6794]: "- [ ] New modal/drawer/wizard/action added"
|
|
- row "63 + - [ ] New table/form/state added" [ref=e6795]:
|
|
- cell [ref=e6796]
|
|
- cell "63" [ref=e6797]: "63"
|
|
- cell [ref=e6798]
|
|
- cell "+" [ref=e6799]:
|
|
- generic [ref=e6800]: +
|
|
- cell "- [ ] New table/form/state added" [ref=e6801]:
|
|
- code [ref=e6802]: "- [ ] New table/form/state added"
|
|
- row "64 + - [ ] Customer-facing surface changed" [ref=e6803]:
|
|
- cell [ref=e6804]
|
|
- cell "64" [ref=e6805]: "64"
|
|
- cell [ref=e6806]
|
|
- cell "+" [ref=e6807]:
|
|
- generic [ref=e6808]: +
|
|
- cell "- [ ] Customer-facing surface changed" [ref=e6809]:
|
|
- code [ref=e6810]: "- [ ] Customer-facing surface changed"
|
|
- row "65 + - [ ] Dangerous action changed" [ref=e6811]:
|
|
- cell [ref=e6812]
|
|
- cell "65" [ref=e6813]: "65"
|
|
- cell [ref=e6814]
|
|
- cell "+" [ref=e6815]:
|
|
- generic [ref=e6816]: +
|
|
- cell "- [ ] Dangerous action changed" [ref=e6817]:
|
|
- code [ref=e6818]: "- [ ] Dangerous action changed"
|
|
- row "66 + - [x] Status/evidence/review presentation changed" [ref=e6819]:
|
|
- cell [ref=e6820]
|
|
- cell "66" [ref=e6821]: "66"
|
|
- cell [ref=e6822]
|
|
- cell "+" [ref=e6823]:
|
|
- generic [ref=e6824]: +
|
|
- cell "- [x] Status/evidence/review presentation changed" [ref=e6825]:
|
|
- code [ref=e6826]: "- [x] Status/evidence/review presentation changed"
|
|
- row "67 + - [x] Workspace/environment context presentation changed" [ref=e6827]:
|
|
- cell [ref=e6828]
|
|
- cell "67" [ref=e6829]: "67"
|
|
- cell [ref=e6830]
|
|
- cell "+" [ref=e6831]:
|
|
- generic [ref=e6832]: +
|
|
- cell "- [x] Workspace/environment context presentation changed" [ref=e6833]:
|
|
- code [ref=e6834]: "- [x] Workspace/environment context presentation changed"
|
|
- row "68 +" [ref=e6835]:
|
|
- cell [ref=e6836]
|
|
- cell "68" [ref=e6837]: "68"
|
|
- cell [ref=e6838]
|
|
- cell "+" [ref=e6839]:
|
|
- generic [ref=e6840]: +
|
|
- cell [ref=e6841]:
|
|
- code
|
|
- 'row "69 + ## UI/Productization Coverage *(mandatory when UI Surface Impact is not \"No UI surface impact\")*" [ref=e6842]':
|
|
- cell [ref=e6843]
|
|
- cell "69" [ref=e6844]: "69"
|
|
- cell [ref=e6845]
|
|
- cell "+" [ref=e6846]:
|
|
- generic [ref=e6847]: +
|
|
- cell "## UI/Productization Coverage *(mandatory when UI Surface Impact is not \"No UI surface impact\")*" [ref=e6848]:
|
|
- code [ref=e6849]: "## UI/Productization Coverage *(mandatory when UI Surface Impact is not \"No UI surface impact\")*"
|
|
- row "70 +" [ref=e6850]:
|
|
- cell [ref=e6851]
|
|
- cell "70" [ref=e6852]: "70"
|
|
- cell [ref=e6853]
|
|
- cell "+" [ref=e6854]:
|
|
- generic [ref=e6855]: +
|
|
- cell [ref=e6856]:
|
|
- code
|
|
- row "71 + - **Route/page/surface**:" [ref=e6857]:
|
|
- cell [ref=e6858]
|
|
- cell "71" [ref=e6859]: "71"
|
|
- cell [ref=e6860]
|
|
- cell "+" [ref=e6861]:
|
|
- generic [ref=e6862]: +
|
|
- cell "- **Route/page/surface**:" [ref=e6863]:
|
|
- code [ref=e6864]: "- **Route/page/surface**:"
|
|
- 'row "72 + - tenant shell activity hint (`BulkOperationProgress`)" [ref=e6865]':
|
|
- cell [ref=e6866]
|
|
- cell "72" [ref=e6867]: "72"
|
|
- cell [ref=e6868]
|
|
- cell "+" [ref=e6869]:
|
|
- generic [ref=e6870]: +
|
|
- 'cell "- tenant shell activity hint (`BulkOperationProgress`)" [ref=e6871]':
|
|
- code [ref=e6872]: "- tenant shell activity hint (`BulkOperationProgress`)"
|
|
- 'row "73 + - workspace operations hub (`App\\Filament\\Pages\\Monitoring\\Operations`) at `/admin/workspaces/{workspace}/operations`" [ref=e6873]':
|
|
- cell [ref=e6874]
|
|
- cell "73" [ref=e6875]: "73"
|
|
- cell [ref=e6876]
|
|
- cell "+" [ref=e6877]:
|
|
- generic [ref=e6878]: +
|
|
- 'cell "- workspace operations hub (`App\\Filament\\Pages\\Monitoring\\Operations`) at `/admin/workspaces/{workspace}/operations`" [ref=e6879]':
|
|
- code [ref=e6880]: "- workspace operations hub (`App\\Filament\\Pages\\Monitoring\\Operations`) at `/admin/workspaces/{workspace}/operations`"
|
|
- 'row "74 + - canonical operation detail (`App\\Filament\\Pages\\Operations\\TenantlessOperationRunViewer`) at `/admin/workspaces/{workspace}/operations/{run}`" [ref=e6881]':
|
|
- cell [ref=e6882]
|
|
- cell "74" [ref=e6883]: "74"
|
|
- cell [ref=e6884]
|
|
- cell "+" [ref=e6885]:
|
|
- generic [ref=e6886]: +
|
|
- 'cell "- canonical operation detail (`App\\Filament\\Pages\\Operations\\TenantlessOperationRunViewer`) at `/admin/workspaces/{workspace}/operations/{run}`" [ref=e6887]':
|
|
- code [ref=e6888]: "- canonical operation detail (`App\\Filament\\Pages\\Operations\\TenantlessOperationRunViewer`) at `/admin/workspaces/{workspace}/operations/{run}`"
|
|
- 'row "75 + - shared implementation seam only: `App\\Filament\\Resources\\OperationRunResource` for the reused table/detail payload contract" [ref=e6889]':
|
|
- cell [ref=e6890]
|
|
- cell "75" [ref=e6891]: "75"
|
|
- cell [ref=e6892]
|
|
- cell "+" [ref=e6893]:
|
|
- generic [ref=e6894]: +
|
|
- 'cell "- shared implementation seam only: `App\\Filament\\Resources\\OperationRunResource` for the reused table/detail payload contract" [ref=e6895]':
|
|
- code [ref=e6896]: "- shared implementation seam only: `App\\Filament\\Resources\\OperationRunResource` for the reused table/detail payload contract"
|
|
- 'row "76 + - **Current or new page archetype**: existing monitoring/workbench family only" [ref=e6897]':
|
|
- cell [ref=e6898]
|
|
- cell "76" [ref=e6899]: "76"
|
|
- cell [ref=e6900]
|
|
- cell "+" [ref=e6901]:
|
|
- generic [ref=e6902]: +
|
|
- 'cell "- **Current or new page archetype**: existing monitoring/workbench family only" [ref=e6903]':
|
|
- code [ref=e6904]: "- **Current or new page archetype**: existing monitoring/workbench family only"
|
|
- 'row "77 + - **Design depth**: Domain Pattern Surface" [ref=e6905]':
|
|
- cell [ref=e6906]
|
|
- cell "77" [ref=e6907]: "77"
|
|
- cell [ref=e6908]
|
|
- cell "+" [ref=e6909]:
|
|
- generic [ref=e6910]: +
|
|
- 'cell "- **Design depth**: Domain Pattern Surface" [ref=e6911]':
|
|
- code [ref=e6912]: "- **Design depth**: Domain Pattern Surface"
|
|
- 'row "78 + - **Repo-truth level**: repo-verified" [ref=e6913]':
|
|
- cell [ref=e6914]
|
|
- cell "78" [ref=e6915]: "78"
|
|
- cell [ref=e6916]
|
|
- cell "+" [ref=e6917]:
|
|
- generic [ref=e6918]: +
|
|
- 'cell "- **Repo-truth level**: repo-verified" [ref=e6919]':
|
|
- code [ref=e6920]: "- **Repo-truth level**: repo-verified"
|
|
- 'row "79 + - **Existing pattern reused**: current `OperationRun` monitoring family, current shell activity hint, current monitoring detail banners" [ref=e6921]':
|
|
- cell [ref=e6922]
|
|
- cell "79" [ref=e6923]: "79"
|
|
- cell [ref=e6924]
|
|
- cell "+" [ref=e6925]:
|
|
- generic [ref=e6926]: +
|
|
- 'cell "- **Existing pattern reused**: current `OperationRun` monitoring family, current shell activity hint, current monitoring detail banners" [ref=e6927]':
|
|
- code [ref=e6928]: "- **Existing pattern reused**: current `OperationRun` monitoring family, current shell activity hint, current monitoring detail banners"
|
|
- 'row "80 + - **New pattern required**: none; this is a truth-alignment follow-up within the existing pattern family" [ref=e6929]':
|
|
- cell [ref=e6930]
|
|
- cell "80" [ref=e6931]: "80"
|
|
- cell [ref=e6932]
|
|
- cell "+" [ref=e6933]:
|
|
- generic [ref=e6934]: +
|
|
- 'cell "- **New pattern required**: none; this is a truth-alignment follow-up within the existing pattern family" [ref=e6935]':
|
|
- code [ref=e6936]: "- **New pattern required**: none; this is a truth-alignment follow-up within the existing pattern family"
|
|
- 'row "81 + - **Screenshot required**: no; the slice corrects shared wording/derived truth inside existing monitoring surfaces" [ref=e6937]':
|
|
- cell [ref=e6938]
|
|
- cell "81" [ref=e6939]: "81"
|
|
- cell [ref=e6940]
|
|
- cell "+" [ref=e6941]:
|
|
- generic [ref=e6942]: +
|
|
- 'cell "- **Screenshot required**: no; the slice corrects shared wording/derived truth inside existing monitoring surfaces" [ref=e6943]':
|
|
- code [ref=e6944]: "- **Screenshot required**: no; the slice corrects shared wording/derived truth inside existing monitoring surfaces"
|
|
- 'row "82 + - **Page audit required**: no new page-report identity; existing monitoring family coverage is sufficient" [ref=e6945]':
|
|
- cell [ref=e6946]
|
|
- cell "82" [ref=e6947]: "82"
|
|
- cell [ref=e6948]
|
|
- cell "+" [ref=e6949]:
|
|
- generic [ref=e6950]: +
|
|
- 'cell "- **Page audit required**: no new page-report identity; existing monitoring family coverage is sufficient" [ref=e6951]':
|
|
- code [ref=e6952]: "- **Page audit required**: no new page-report identity; existing monitoring family coverage is sufficient"
|
|
- 'row "83 + - **Customer-safe review required**: no; operator-only monitoring surfaces" [ref=e6953]':
|
|
- cell [ref=e6954]
|
|
- cell "83" [ref=e6955]: "83"
|
|
- cell [ref=e6956]
|
|
- cell "+" [ref=e6957]:
|
|
- generic [ref=e6958]: +
|
|
- 'cell "- **Customer-safe review required**: no; operator-only monitoring surfaces" [ref=e6959]':
|
|
- code [ref=e6960]: "- **Customer-safe review required**: no; operator-only monitoring surfaces"
|
|
- 'row "84 + - **Dangerous-action review required**: no; no action hierarchy or destructive behavior changes" [ref=e6961]':
|
|
- cell [ref=e6962]
|
|
- cell "84" [ref=e6963]: "84"
|
|
- cell [ref=e6964]
|
|
- cell "+" [ref=e6965]:
|
|
- generic [ref=e6966]: +
|
|
- 'cell "- **Dangerous-action review required**: no; no action hierarchy or destructive behavior changes" [ref=e6967]':
|
|
- code [ref=e6968]: "- **Dangerous-action review required**: no; no action hierarchy or destructive behavior changes"
|
|
- 'row "85 + - **Coverage files updated or explicitly not needed**: no new coverage file is required because the existing monitoring-family anchors already cover the touched reachable surfaces: `docs/ui-ux-enterprise-audit/route-inventory.md` (`UI-016`, `UI-017`), `docs/ui-ux-enterprise-audit/page-reports/ui-003-operations.md`, `docs/ui-ux-enterprise-audit/strategic-surfaces.md`, and `specs/313-workspace-environment-context-browser-verification/surface-inventory.md`" [ref=e6969]':
|
|
- cell [ref=e6970]
|
|
- cell "85" [ref=e6971]: "85"
|
|
- cell [ref=e6972]
|
|
- cell "+" [ref=e6973]:
|
|
- generic [ref=e6974]: +
|
|
- 'cell "- **Coverage files updated or explicitly not needed**: no new coverage file is required because the existing monitoring-family anchors already cover the touched reachable surfaces: `docs/ui-ux-enterprise-audit/route-inventory.md` (`UI-016`, `UI-017`), `docs/ui-ux-enterprise-audit/page-reports/ui-003-operations.md`, `docs/ui-ux-enterprise-audit/strategic-surfaces.md`, and `specs/313-workspace-environment-context-browser-verification/surface-inventory.md`" [ref=e6975]':
|
|
- code [ref=e6976]: "- **Coverage files updated or explicitly not needed**: no new coverage file is required because the existing monitoring-family anchors already cover the touched reachable surfaces: `docs/ui-ux-enterprise-audit/route-inventory.md` (`UI-016`, `UI-017`), `docs/ui-ux-enterprise-audit/page-reports/ui-003-operations.md`, `docs/ui-ux-enterprise-audit/strategic-surfaces.md`, and `specs/313-workspace-environment-context-browser-verification/surface-inventory.md`"
|
|
- 'row "86 + - **No-impact rationale when applicable**: N/A" [ref=e6977]':
|
|
- cell [ref=e6978]
|
|
- cell "86" [ref=e6979]: "86"
|
|
- cell [ref=e6980]
|
|
- cell "+" [ref=e6981]:
|
|
- generic [ref=e6982]: +
|
|
- 'cell "- **No-impact rationale when applicable**: N/A" [ref=e6983]':
|
|
- code [ref=e6984]: "- **No-impact rationale when applicable**: N/A"
|
|
- row "87 +" [ref=e6985]:
|
|
- cell [ref=e6986]
|
|
- cell "87" [ref=e6987]: "87"
|
|
- cell [ref=e6988]
|
|
- cell "+" [ref=e6989]:
|
|
- generic [ref=e6990]: +
|
|
- cell [ref=e6991]:
|
|
- code
|
|
- 'row "88 + ## Cross-Cutting / Shared Pattern Reuse *(mandatory)*" [ref=e6992]':
|
|
- cell [ref=e6993]
|
|
- cell "88" [ref=e6994]: "88"
|
|
- cell [ref=e6995]
|
|
- cell "+" [ref=e6996]:
|
|
- generic [ref=e6997]: +
|
|
- cell "## Cross-Cutting / Shared Pattern Reuse *(mandatory)*" [ref=e6998]:
|
|
- code [ref=e6999]: "## Cross-Cutting / Shared Pattern Reuse *(mandatory)*"
|
|
- row "89 +" [ref=e7000]:
|
|
- cell [ref=e7001]
|
|
- cell "89" [ref=e7002]: "89"
|
|
- cell [ref=e7003]
|
|
- cell "+" [ref=e7004]:
|
|
- generic [ref=e7005]: +
|
|
- cell [ref=e7006]:
|
|
- code
|
|
- 'row "90 + - **Cross-cutting feature?**: yes" [ref=e7007]':
|
|
- cell [ref=e7008]
|
|
- cell "90" [ref=e7009]: "90"
|
|
- cell [ref=e7010]
|
|
- cell "+" [ref=e7011]:
|
|
- generic [ref=e7012]: +
|
|
- 'cell "- **Cross-cutting feature?**: yes" [ref=e7013]':
|
|
- code [ref=e7014]: "- **Cross-cutting feature?**: yes"
|
|
- 'row "91 + - **Interaction class(es)**: status messaging, queue/progress guidance, monitoring detail guidance, shell active-work hint" [ref=e7015]':
|
|
- cell [ref=e7016]
|
|
- cell "91" [ref=e7017]: "91"
|
|
- cell [ref=e7018]
|
|
- cell "+" [ref=e7019]:
|
|
- generic [ref=e7020]: +
|
|
- 'cell "- **Interaction class(es)**: status messaging, queue/progress guidance, monitoring detail guidance, shell active-work hint" [ref=e7021]':
|
|
- code [ref=e7022]: "- **Interaction class(es)**: status messaging, queue/progress guidance, monitoring detail guidance, shell active-work hint"
|
|
- row "92 + - **Systems touched**:" [ref=e7023]:
|
|
- cell [ref=e7024]
|
|
- cell "92" [ref=e7025]: "92"
|
|
- cell [ref=e7026]
|
|
- cell "+" [ref=e7027]:
|
|
- generic [ref=e7028]: +
|
|
- cell "- **Systems touched**:" [ref=e7029]:
|
|
- code [ref=e7030]: "- **Systems touched**:"
|
|
- 'row "93 + - `OperationRunFreshnessState`" [ref=e7031]':
|
|
- cell [ref=e7032]
|
|
- cell "93" [ref=e7033]: "93"
|
|
- cell [ref=e7034]
|
|
- cell "+" [ref=e7035]:
|
|
- generic [ref=e7036]: +
|
|
- 'cell "- `OperationRunFreshnessState`" [ref=e7037]':
|
|
- code [ref=e7038]: "- `OperationRunFreshnessState`"
|
|
- 'row "94 + - `OperationRunProgressContract`" [ref=e7039]':
|
|
- cell [ref=e7040]
|
|
- cell "94" [ref=e7041]: "94"
|
|
- cell [ref=e7042]
|
|
- cell "+" [ref=e7043]:
|
|
- generic [ref=e7044]: +
|
|
- 'cell "- `OperationRunProgressContract`" [ref=e7045]':
|
|
- code [ref=e7046]: "- `OperationRunProgressContract`"
|
|
- 'row "95 + - `RunDurationInsights`" [ref=e7047]':
|
|
- cell [ref=e7048]
|
|
- cell "95" [ref=e7049]: "95"
|
|
- cell [ref=e7050]
|
|
- cell "+" [ref=e7051]:
|
|
- generic [ref=e7052]: +
|
|
- 'cell "- `RunDurationInsights`" [ref=e7053]':
|
|
- code [ref=e7054]: "- `RunDurationInsights`"
|
|
- 'row "96 + - `OperationUxPresenter`" [ref=e7055]':
|
|
- cell [ref=e7056]
|
|
- cell "96" [ref=e7057]: "96"
|
|
- cell [ref=e7058]
|
|
- cell "+" [ref=e7059]:
|
|
- generic [ref=e7060]: +
|
|
- 'cell "- `OperationUxPresenter`" [ref=e7061]':
|
|
- code [ref=e7062]: "- `OperationUxPresenter`"
|
|
- row "97 + - current shell banner and canonical monitoring/detail surfaces" [ref=e7063]:
|
|
- cell [ref=e7064]
|
|
- cell "97" [ref=e7065]: "97"
|
|
- cell [ref=e7066]
|
|
- cell "+" [ref=e7067]:
|
|
- generic [ref=e7068]: +
|
|
- cell "- current shell banner and canonical monitoring/detail surfaces" [ref=e7069]:
|
|
- code [ref=e7070]: "- current shell banner and canonical monitoring/detail surfaces"
|
|
- 'row "98 + - **Existing pattern(s) to extend**: current lifecycle policy, freshness derivation, the Spec-270/272 shared progress contract, monitoring detail banner, and shared run-link/presenter paths" [ref=e7071]':
|
|
- cell [ref=e7072]
|
|
- cell "98" [ref=e7073]: "98"
|
|
- cell [ref=e7074]
|
|
- cell "+" [ref=e7075]:
|
|
- generic [ref=e7076]: +
|
|
- 'cell "- **Existing pattern(s) to extend**: current lifecycle policy, freshness derivation, the Spec-270/272 shared progress contract, monitoring detail banner, and shared run-link/presenter paths" [ref=e7077]':
|
|
- code [ref=e7078]: "- **Existing pattern(s) to extend**: current lifecycle policy, freshness derivation, the Spec-270/272 shared progress contract, monitoring detail banner, and shared run-link/presenter paths"
|
|
- 'row "99 + - **Shared contract / presenter / builder / renderer to reuse**: `OperationRunProgressContract`, `OperationUxPresenter`, `OperationRunFreshnessState`, and current monitoring/view renderer paths" [ref=e7079]':
|
|
- cell [ref=e7080]
|
|
- cell "99" [ref=e7081]: "99"
|
|
- cell [ref=e7082]
|
|
- cell "+" [ref=e7083]:
|
|
- generic [ref=e7084]: +
|
|
- 'cell "- **Shared contract / presenter / builder / renderer to reuse**: `OperationRunProgressContract`, `OperationUxPresenter`, `OperationRunFreshnessState`, and current monitoring/view renderer paths" [ref=e7085]':
|
|
- code [ref=e7086]: "- **Shared contract / presenter / builder / renderer to reuse**: `OperationRunProgressContract`, `OperationUxPresenter`, `OperationRunFreshnessState`, and current monitoring/view renderer paths"
|
|
- 'row "100 + - **Why the existing shared path is sufficient or insufficient**: The repo already has the right ownership boundaries, but the generic queue truth is split across multiple helpers that can disagree in wording and emphasis." [ref=e7087]':
|
|
- cell [ref=e7088]
|
|
- cell "100" [ref=e7089]: "100"
|
|
- cell [ref=e7090]
|
|
- cell "+" [ref=e7091]:
|
|
- generic [ref=e7092]: +
|
|
- 'cell "- **Why the existing shared path is sufficient or insufficient**: The repo already has the right ownership boundaries, but the generic queue truth is split across multiple helpers that can disagree in wording and emphasis." [ref=e7093]':
|
|
- code [ref=e7094]: "- **Why the existing shared path is sufficient or insufficient**: The repo already has the right ownership boundaries, but the generic queue truth is split across multiple helpers that can disagree in wording and emphasis."
|
|
- 'row "101 + - **Allowed deviation and why**: none by default; if one tiny helper is required to keep existing presenters reviewable, it must remain local to current Ops UX truth and must not become an adapter registry" [ref=e7095]':
|
|
- cell [ref=e7096]
|
|
- cell "101" [ref=e7097]: "101"
|
|
- cell [ref=e7098]
|
|
- cell "+" [ref=e7099]:
|
|
- generic [ref=e7100]: +
|
|
- 'cell "- **Allowed deviation and why**: none by default; if one tiny helper is required to keep existing presenters reviewable, it must remain local to current Ops UX truth and must not become an adapter registry" [ref=e7101]':
|
|
- code [ref=e7102]: "- **Allowed deviation and why**: none by default; if one tiny helper is required to keep existing presenters reviewable, it must remain local to current Ops UX truth and must not become an adapter registry"
|
|
- 'row "102 + - **Consistency impact**: queued/running/stale wording, progress availability, lifecycle attention, and detail guidance must remain aligned across shell, list, and canonical detail" [ref=e7103]':
|
|
- cell [ref=e7104]
|
|
- cell "102" [ref=e7105]: "102"
|
|
- cell [ref=e7106]
|
|
- cell "+" [ref=e7107]:
|
|
- generic [ref=e7108]: +
|
|
- 'cell "- **Consistency impact**: queued/running/stale wording, progress availability, lifecycle attention, and detail guidance must remain aligned across shell, list, and canonical detail" [ref=e7109]':
|
|
- code [ref=e7110]: "- **Consistency impact**: queued/running/stale wording, progress availability, lifecycle attention, and detail guidance must remain aligned across shell, list, and canonical detail"
|
|
- 'row "103 + - **Review focus**: no surface may reassure with ordinary queue copy after freshness has already escalated the same active run to stale attention" [ref=e7111]':
|
|
- cell [ref=e7112]
|
|
- cell "103" [ref=e7113]: "103"
|
|
- cell [ref=e7114]
|
|
- cell "+" [ref=e7115]:
|
|
- generic [ref=e7116]: +
|
|
- 'cell "- **Review focus**: no surface may reassure with ordinary queue copy after freshness has already escalated the same active run to stale attention" [ref=e7117]':
|
|
- code [ref=e7118]: "- **Review focus**: no surface may reassure with ordinary queue copy after freshness has already escalated the same active run to stale attention"
|
|
- row "104 +" [ref=e7119]:
|
|
- cell [ref=e7120]
|
|
- cell "104" [ref=e7121]: "104"
|
|
- cell [ref=e7122]
|
|
- cell "+" [ref=e7123]:
|
|
- generic [ref=e7124]: +
|
|
- cell [ref=e7125]:
|
|
- code
|
|
- 'row "105 + ## OperationRun UX Impact *(mandatory)*" [ref=e7126]':
|
|
- cell [ref=e7127]
|
|
- cell "105" [ref=e7128]: "105"
|
|
- cell [ref=e7129]
|
|
- cell "+" [ref=e7130]:
|
|
- generic [ref=e7131]: +
|
|
- cell "## OperationRun UX Impact *(mandatory)*" [ref=e7132]:
|
|
- code [ref=e7133]: "## OperationRun UX Impact *(mandatory)*"
|
|
- row "106 +" [ref=e7134]:
|
|
- cell [ref=e7135]
|
|
- cell "106" [ref=e7136]: "106"
|
|
- cell [ref=e7137]
|
|
- cell "+" [ref=e7138]:
|
|
- generic [ref=e7139]: +
|
|
- cell [ref=e7140]:
|
|
- code
|
|
- 'row "107 + - **Touches OperationRun start/completion/link UX?**: yes, reuse-only" [ref=e7141]':
|
|
- cell [ref=e7142]
|
|
- cell "107" [ref=e7143]: "107"
|
|
- cell [ref=e7144]
|
|
- cell "+" [ref=e7145]:
|
|
- generic [ref=e7146]: +
|
|
- 'cell "- **Touches OperationRun start/completion/link UX?**: yes, reuse-only" [ref=e7147]':
|
|
- code [ref=e7148]: "- **Touches OperationRun start/completion/link UX?**: yes, reuse-only"
|
|
- 'row "108 + - **Shared OperationRun UX contract/layer reused**: current `OperationRun` link, freshness, presenter, and progress helper paths" [ref=e7149]':
|
|
- cell [ref=e7150]
|
|
- cell "108" [ref=e7151]: "108"
|
|
- cell [ref=e7152]
|
|
- cell "+" [ref=e7153]:
|
|
- generic [ref=e7154]: +
|
|
- 'cell "- **Shared OperationRun UX contract/layer reused**: current `OperationRun` link, freshness, presenter, and progress helper paths" [ref=e7155]':
|
|
- code [ref=e7156]: "- **Shared OperationRun UX contract/layer reused**: current `OperationRun` link, freshness, presenter, and progress helper paths"
|
|
- 'row "109 + - **Delegated start/completion UX behaviors**: existing queued toasts, canonical run links, browser events, and terminal notification paths remain unchanged" [ref=e7157]':
|
|
- cell [ref=e7158]
|
|
- cell "109" [ref=e7159]: "109"
|
|
- cell [ref=e7160]
|
|
- cell "+" [ref=e7161]:
|
|
- generic [ref=e7162]: +
|
|
- 'cell "- **Delegated start/completion UX behaviors**: existing queued toasts, canonical run links, browser events, and terminal notification paths remain unchanged" [ref=e7163]':
|
|
- code [ref=e7164]: "- **Delegated start/completion UX behaviors**: existing queued toasts, canonical run links, browser events, and terminal notification paths remain unchanged"
|
|
- 'row "110 + - **Local surface-owned behavior that remains**: density and placement only" [ref=e7165]':
|
|
- cell [ref=e7166]
|
|
- cell "110" [ref=e7167]: "110"
|
|
- cell [ref=e7168]
|
|
- cell "+" [ref=e7169]:
|
|
- generic [ref=e7170]: +
|
|
- 'cell "- **Local surface-owned behavior that remains**: density and placement only" [ref=e7171]':
|
|
- code [ref=e7172]: "- **Local surface-owned behavior that remains**: density and placement only"
|
|
- 'row "111 + - **Queued DB-notification policy**: unchanged" [ref=e7173]':
|
|
- cell [ref=e7174]
|
|
- cell "111" [ref=e7175]: "111"
|
|
- cell [ref=e7176]
|
|
- cell "+" [ref=e7177]:
|
|
- generic [ref=e7178]: +
|
|
- 'cell "- **Queued DB-notification policy**: unchanged" [ref=e7179]':
|
|
- code [ref=e7180]: "- **Queued DB-notification policy**: unchanged"
|
|
- 'row "112 + - **Terminal notification path**: unchanged central lifecycle mechanism" [ref=e7181]':
|
|
- cell [ref=e7182]
|
|
- cell "112" [ref=e7183]: "112"
|
|
- cell [ref=e7184]
|
|
- cell "+" [ref=e7185]:
|
|
- generic [ref=e7186]: +
|
|
- 'cell "- **Terminal notification path**: unchanged central lifecycle mechanism" [ref=e7187]':
|
|
- code [ref=e7188]: "- **Terminal notification path**: unchanged central lifecycle mechanism"
|
|
- 'row "113 + - **Exception required?**: none" [ref=e7189]':
|
|
- cell [ref=e7190]
|
|
- cell "113" [ref=e7191]: "113"
|
|
- cell [ref=e7192]
|
|
- cell "+" [ref=e7193]:
|
|
- generic [ref=e7194]: +
|
|
- 'cell "- **Exception required?**: none" [ref=e7195]':
|
|
- code [ref=e7196]: "- **Exception required?**: none"
|
|
- row "114 +" [ref=e7197]:
|
|
- cell [ref=e7198]
|
|
- cell "114" [ref=e7199]: "114"
|
|
- cell [ref=e7200]
|
|
- cell "+" [ref=e7201]:
|
|
- generic [ref=e7202]: +
|
|
- cell [ref=e7203]:
|
|
- code
|
|
- 'row "115 + ## Provider Boundary / Platform Core Check *(mandatory)*" [ref=e7204]':
|
|
- cell [ref=e7205]
|
|
- cell "115" [ref=e7206]: "115"
|
|
- cell [ref=e7207]
|
|
- cell "+" [ref=e7208]:
|
|
- generic [ref=e7209]: +
|
|
- cell "## Provider Boundary / Platform Core Check *(mandatory)*" [ref=e7210]:
|
|
- code [ref=e7211]: "## Provider Boundary / Platform Core Check *(mandatory)*"
|
|
- row "116 +" [ref=e7212]:
|
|
- cell [ref=e7213]
|
|
- cell "116" [ref=e7214]: "116"
|
|
- cell [ref=e7215]
|
|
- cell "+" [ref=e7216]:
|
|
- generic [ref=e7217]: +
|
|
- cell [ref=e7218]:
|
|
- code
|
|
- 'row "117 + - **Shared provider/platform boundary touched?**: no" [ref=e7219]':
|
|
- cell [ref=e7220]
|
|
- cell "117" [ref=e7221]: "117"
|
|
- cell [ref=e7222]
|
|
- cell "+" [ref=e7223]:
|
|
- generic [ref=e7224]: +
|
|
- 'cell "- **Shared provider/platform boundary touched?**: no" [ref=e7225]':
|
|
- code [ref=e7226]: "- **Shared provider/platform boundary touched?**: no"
|
|
- 'row "118 + - **Boundary classification**: N/A" [ref=e7227]':
|
|
- cell [ref=e7228]
|
|
- cell "118" [ref=e7229]: "118"
|
|
- cell [ref=e7230]
|
|
- cell "+" [ref=e7231]:
|
|
- generic [ref=e7232]: +
|
|
- 'cell "- **Boundary classification**: N/A" [ref=e7233]':
|
|
- code [ref=e7234]: "- **Boundary classification**: N/A"
|
|
- 'row "119 + - **Seams affected**: N/A" [ref=e7235]':
|
|
- cell [ref=e7236]
|
|
- cell "119" [ref=e7237]: "119"
|
|
- cell [ref=e7238]
|
|
- cell "+" [ref=e7239]:
|
|
- generic [ref=e7240]: +
|
|
- 'cell "- **Seams affected**: N/A" [ref=e7241]':
|
|
- code [ref=e7242]: "- **Seams affected**: N/A"
|
|
- 'row "120 + - **Neutral platform terms preserved or introduced**: `operation`, `queued`, `running`, `lifecycle window`, `review worker health`" [ref=e7243]':
|
|
- cell [ref=e7244]
|
|
- cell "120" [ref=e7245]: "120"
|
|
- cell [ref=e7246]
|
|
- cell "+" [ref=e7247]:
|
|
- generic [ref=e7248]: +
|
|
- 'cell "- **Neutral platform terms preserved or introduced**: `operation`, `queued`, `running`, `lifecycle window`, `review worker health`" [ref=e7249]':
|
|
- code [ref=e7250]: "- **Neutral platform terms preserved or introduced**: `operation`, `queued`, `running`, `lifecycle window`, `review worker health`"
|
|
- 'row "121 + - **Provider-specific semantics retained and why**: none" [ref=e7251]':
|
|
- cell [ref=e7252]
|
|
- cell "121" [ref=e7253]: "121"
|
|
- cell [ref=e7254]
|
|
- cell "+" [ref=e7255]:
|
|
- generic [ref=e7256]: +
|
|
- 'cell "- **Provider-specific semantics retained and why**: none" [ref=e7257]':
|
|
- code [ref=e7258]: "- **Provider-specific semantics retained and why**: none"
|
|
- 'row "122 + - **Why this does not deepen provider coupling accidentally**: the slice works entirely on platform-owned `OperationRun` truth and existing shared monitoring helpers" [ref=e7259]':
|
|
- cell [ref=e7260]
|
|
- cell "122" [ref=e7261]: "122"
|
|
- cell [ref=e7262]
|
|
- cell "+" [ref=e7263]:
|
|
- generic [ref=e7264]: +
|
|
- 'cell "- **Why this does not deepen provider coupling accidentally**: the slice works entirely on platform-owned `OperationRun` truth and existing shared monitoring helpers" [ref=e7265]':
|
|
- code [ref=e7266]: "- **Why this does not deepen provider coupling accidentally**: the slice works entirely on platform-owned `OperationRun` truth and existing shared monitoring helpers"
|
|
- 'row "123 + - **Follow-up path**: none" [ref=e7267]':
|
|
- cell [ref=e7268]
|
|
- cell "123" [ref=e7269]: "123"
|
|
- cell [ref=e7270]
|
|
- cell "+" [ref=e7271]:
|
|
- generic [ref=e7272]: +
|
|
- 'cell "- **Follow-up path**: none" [ref=e7273]':
|
|
- code [ref=e7274]: "- **Follow-up path**: none"
|
|
- row "124 +" [ref=e7275]:
|
|
- cell [ref=e7276]
|
|
- cell "124" [ref=e7277]: "124"
|
|
- cell [ref=e7278]
|
|
- cell "+" [ref=e7279]:
|
|
- generic [ref=e7280]: +
|
|
- cell [ref=e7281]:
|
|
- code
|
|
- 'row "125 + ## UI / Surface Guardrail Impact *(mandatory)*" [ref=e7282]':
|
|
- cell [ref=e7283]
|
|
- cell "125" [ref=e7284]: "125"
|
|
- cell [ref=e7285]
|
|
- cell "+" [ref=e7286]:
|
|
- generic [ref=e7287]: +
|
|
- cell "## UI / Surface Guardrail Impact *(mandatory)*" [ref=e7288]:
|
|
- code [ref=e7289]: "## UI / Surface Guardrail Impact *(mandatory)*"
|
|
- row "126 +" [ref=e7290]:
|
|
- cell [ref=e7291]
|
|
- cell "126" [ref=e7292]: "126"
|
|
- cell [ref=e7293]
|
|
- cell "+" [ref=e7294]:
|
|
- generic [ref=e7295]: +
|
|
- cell [ref=e7296]:
|
|
- code
|
|
- 'row "127 + | Surface / Change | Operator-facing surface change? | Native vs Custom | Shared-Family Relevance | State Layers Touched | Exception Needed? | Low-Impact / `N/A` Note |" [ref=e7297]':
|
|
- cell [ref=e7298]
|
|
- cell "127" [ref=e7299]: "127"
|
|
- cell [ref=e7300]
|
|
- cell "+" [ref=e7301]:
|
|
- generic [ref=e7302]: +
|
|
- 'cell "| Surface / Change | Operator-facing surface change? | Native vs Custom | Shared-Family Relevance | State Layers Touched | Exception Needed? | Low-Impact / `N/A` Note |" [ref=e7303]':
|
|
- code [ref=e7304]: "| Surface / Change | Operator-facing surface change? | Native vs Custom | Shared-Family Relevance | State Layers Touched | Exception Needed? | Low-Impact / `N/A` Note |"
|
|
- row "128 + |---|---|---|---|---|---|---|" [ref=e7305]:
|
|
- cell [ref=e7306]
|
|
- cell "128" [ref=e7307]: "128"
|
|
- cell [ref=e7308]
|
|
- cell "+" [ref=e7309]:
|
|
- generic [ref=e7310]: +
|
|
- cell "|---|---|---|---|---|---|---|" [ref=e7311]:
|
|
- code [ref=e7312]: "|---|---|---|---|---|---|---|"
|
|
- row "129 + | Tenant shell activity hint | yes | Native Filament + existing Livewire view | shared active-work hint family | shell, page | no | no new action or route |" [ref=e7313]:
|
|
- cell [ref=e7314]
|
|
- cell "129" [ref=e7315]: "129"
|
|
- cell [ref=e7316]
|
|
- cell "+" [ref=e7317]:
|
|
- generic [ref=e7318]: +
|
|
- cell "| Tenant shell activity hint | yes | Native Filament + existing Livewire view | shared active-work hint family | shell, page | no | no new action or route |" [ref=e7319]:
|
|
- code [ref=e7320]: "| Tenant shell activity hint | yes | Native Filament + existing Livewire view | shared active-work hint family | shell, page | no | no new action or route |"
|
|
- row "130 + | Operations list / resource detail summary | yes | Native Filament resource/detail | shared monitoring family | page, detail | no | wording-only inside existing collection/detail |" [ref=e7321]:
|
|
- cell [ref=e7322]
|
|
- cell "130" [ref=e7323]: "130"
|
|
- cell [ref=e7324]
|
|
- cell "+" [ref=e7325]:
|
|
- generic [ref=e7326]: +
|
|
- cell "| Operations list / resource detail summary | yes | Native Filament resource/detail | shared monitoring family | page, detail | no | wording-only inside existing collection/detail |" [ref=e7327]:
|
|
- code [ref=e7328]: "| Operations list / resource detail summary | yes | Native Filament resource/detail | shared monitoring family | page, detail | no | wording-only inside existing collection/detail |"
|
|
- row "131 + | Canonical tenantless run viewer banners | yes | Native Filament page | shared monitoring detail family | detail | no | no new diagnostics section family |" [ref=e7329]:
|
|
- cell [ref=e7330]
|
|
- cell "131" [ref=e7331]: "131"
|
|
- cell [ref=e7332]
|
|
- cell "+" [ref=e7333]:
|
|
- generic [ref=e7334]: +
|
|
- cell "| Canonical tenantless run viewer banners | yes | Native Filament page | shared monitoring detail family | detail | no | no new diagnostics section family |" [ref=e7335]:
|
|
- code [ref=e7336]: "| Canonical tenantless run viewer banners | yes | Native Filament page | shared monitoring detail family | detail | no | no new diagnostics section family |"
|
|
- row "132 +" [ref=e7337]:
|
|
- cell [ref=e7338]
|
|
- cell "132" [ref=e7339]: "132"
|
|
- cell [ref=e7340]
|
|
- cell "+" [ref=e7341]:
|
|
- generic [ref=e7342]: +
|
|
- cell [ref=e7343]:
|
|
- code
|
|
- 'row "133 + ## Decision-First Surface Role *(mandatory)*" [ref=e7344]':
|
|
- cell [ref=e7345]
|
|
- cell "133" [ref=e7346]: "133"
|
|
- cell [ref=e7347]
|
|
- cell "+" [ref=e7348]:
|
|
- generic [ref=e7349]: +
|
|
- cell "## Decision-First Surface Role *(mandatory)*" [ref=e7350]:
|
|
- code [ref=e7351]: "## Decision-First Surface Role *(mandatory)*"
|
|
- row "134 +" [ref=e7352]:
|
|
- cell [ref=e7353]
|
|
- cell "134" [ref=e7354]: "134"
|
|
- cell [ref=e7355]
|
|
- cell "+" [ref=e7356]:
|
|
- generic [ref=e7357]: +
|
|
- cell [ref=e7358]:
|
|
- code
|
|
- row "135 + | Surface | Decision Role | Human-in-the-loop Moment | Immediately Visible for First Decision | On-Demand Detail / Evidence | Why This Is Primary or Why Not | Workflow Alignment | Attention-load Reduction |" [ref=e7359]:
|
|
- cell [ref=e7360]
|
|
- cell "135" [ref=e7361]: "135"
|
|
- cell [ref=e7362]
|
|
- cell "+" [ref=e7363]:
|
|
- generic [ref=e7364]: +
|
|
- cell "| Surface | Decision Role | Human-in-the-loop Moment | Immediately Visible for First Decision | On-Demand Detail / Evidence | Why This Is Primary or Why Not | Workflow Alignment | Attention-load Reduction |" [ref=e7365]:
|
|
- code [ref=e7366]: "| Surface | Decision Role | Human-in-the-loop Moment | Immediately Visible for First Decision | On-Demand Detail / Evidence | Why This Is Primary or Why Not | Workflow Alignment | Attention-load Reduction |"
|
|
- row "136 + |---|---|---|---|---|---|---|---|" [ref=e7367]:
|
|
- cell [ref=e7368]
|
|
- cell "136" [ref=e7369]: "136"
|
|
- cell [ref=e7370]
|
|
- cell "+" [ref=e7371]:
|
|
- generic [ref=e7372]: +
|
|
- cell "|---|---|---|---|---|---|---|---|" [ref=e7373]:
|
|
- code [ref=e7374]: "|---|---|---|---|---|---|---|---|"
|
|
- row "137 + | Tenant shell activity hint | Secondary Context Surface | Decide whether an active run needs inspection now | active-state truth, one open link, honest progress availability | full diagnostics stay on canonical monitoring/detail pages | secondary because it supports ongoing work rather than owning diagnostics | follows existing start-surface workflow | removes false calmness |" [ref=e7375]:
|
|
- cell [ref=e7376]
|
|
- cell "137" [ref=e7377]: "137"
|
|
- cell [ref=e7378]
|
|
- cell "+" [ref=e7379]:
|
|
- generic [ref=e7380]: +
|
|
- cell "| Tenant shell activity hint | Secondary Context Surface | Decide whether an active run needs inspection now | active-state truth, one open link, honest progress availability | full diagnostics stay on canonical monitoring/detail pages | secondary because it supports ongoing work rather than owning diagnostics | follows existing start-surface workflow | removes false calmness |" [ref=e7381]:
|
|
- code [ref=e7382]: "| Tenant shell activity hint | Secondary Context Surface | Decide whether an active run needs inspection now | active-state truth, one open link, honest progress availability | full diagnostics stay on canonical monitoring/detail pages | secondary because it supports ongoing work rather than owning diagnostics | follows existing start-surface workflow | removes false calmness |"
|
|
- row "138 + | Operations list | Primary Decision Surface | Decide which active run needs inspection first | lifecycle attention, queue truth, scope, and run identity | full detail after drill-through | primary because it is the canonical monitoring queue | aligns with current monitoring triage | removes open-every-row guesswork |" [ref=e7383]:
|
|
- cell [ref=e7384]
|
|
- cell "138" [ref=e7385]: "138"
|
|
- cell [ref=e7386]
|
|
- cell "+" [ref=e7387]:
|
|
- generic [ref=e7388]: +
|
|
- cell "| Operations list | Primary Decision Surface | Decide which active run needs inspection first | lifecycle attention, queue truth, scope, and run identity | full detail after drill-through | primary because it is the canonical monitoring queue | aligns with current monitoring triage | removes open-every-row guesswork |" [ref=e7389]:
|
|
- code [ref=e7390]: "| Operations list | Primary Decision Surface | Decide which active run needs inspection first | lifecycle attention, queue truth, scope, and run identity | full detail after drill-through | primary because it is the canonical monitoring queue | aligns with current monitoring triage | removes open-every-row guesswork |"
|
|
- row "139 + | Canonical run detail | Tertiary Evidence / Diagnostics Surface | Confirm what the stale or active state really means | one honest lifecycle explanation before deep diagnostics | raw context, history, evidence, and related links | tertiary because inspection already happened | preserves current detail role | removes banner/guidance contradiction |" [ref=e7391]:
|
|
- cell [ref=e7392]
|
|
- cell "139" [ref=e7393]: "139"
|
|
- cell [ref=e7394]
|
|
- cell "+" [ref=e7395]:
|
|
- generic [ref=e7396]: +
|
|
- cell "| Canonical run detail | Tertiary Evidence / Diagnostics Surface | Confirm what the stale or active state really means | one honest lifecycle explanation before deep diagnostics | raw context, history, evidence, and related links | tertiary because inspection already happened | preserves current detail role | removes banner/guidance contradiction |" [ref=e7397]:
|
|
- code [ref=e7398]: "| Canonical run detail | Tertiary Evidence / Diagnostics Surface | Confirm what the stale or active state really means | one honest lifecycle explanation before deep diagnostics | raw context, history, evidence, and related links | tertiary because inspection already happened | preserves current detail role | removes banner/guidance contradiction |"
|
|
- row "140 +" [ref=e7399]:
|
|
- cell [ref=e7400]
|
|
- cell "140" [ref=e7401]: "140"
|
|
- cell [ref=e7402]
|
|
- cell "+" [ref=e7403]:
|
|
- generic [ref=e7404]: +
|
|
- cell [ref=e7405]:
|
|
- code
|
|
- 'row "141 + ## Audience-Aware Disclosure *(mandatory)*" [ref=e7406]':
|
|
- cell [ref=e7407]
|
|
- cell "141" [ref=e7408]: "141"
|
|
- cell [ref=e7409]
|
|
- cell "+" [ref=e7410]:
|
|
- generic [ref=e7411]: +
|
|
- cell "## Audience-Aware Disclosure *(mandatory)*" [ref=e7412]:
|
|
- code [ref=e7413]: "## Audience-Aware Disclosure *(mandatory)*"
|
|
- row "142 +" [ref=e7414]:
|
|
- cell [ref=e7415]
|
|
- cell "142" [ref=e7416]: "142"
|
|
- cell [ref=e7417]
|
|
- cell "+" [ref=e7418]:
|
|
- generic [ref=e7419]: +
|
|
- cell [ref=e7420]:
|
|
- code
|
|
- row "143 + | Surface | Audience Modes In Scope | Decision-First Default-Visible Content | Operator Diagnostics | Support / Raw Evidence | One Dominant Next Action | Hidden / Gated By Default | Duplicate-Truth Prevention |" [ref=e7421]:
|
|
- cell [ref=e7422]
|
|
- cell "143" [ref=e7423]: "143"
|
|
- cell [ref=e7424]
|
|
- cell "+" [ref=e7425]:
|
|
- generic [ref=e7426]: +
|
|
- cell "| Surface | Audience Modes In Scope | Decision-First Default-Visible Content | Operator Diagnostics | Support / Raw Evidence | One Dominant Next Action | Hidden / Gated By Default | Duplicate-Truth Prevention |" [ref=e7427]:
|
|
- code [ref=e7428]: "| Surface | Audience Modes In Scope | Decision-First Default-Visible Content | Operator Diagnostics | Support / Raw Evidence | One Dominant Next Action | Hidden / Gated By Default | Duplicate-Truth Prevention |"
|
|
- row "144 + |---|---|---|---|---|---|---|---|" [ref=e7429]:
|
|
- cell [ref=e7430]
|
|
- cell "144" [ref=e7431]: "144"
|
|
- cell [ref=e7432]
|
|
- cell "+" [ref=e7433]:
|
|
- generic [ref=e7434]: +
|
|
- cell "|---|---|---|---|---|---|---|---|" [ref=e7435]:
|
|
- code [ref=e7436]: "|---|---|---|---|---|---|---|---|"
|
|
- 'row "145 + | Tenant shell activity hint | operator-MSP | active-state summary plus one open action | minimal guidance only | raw/support data stays off-surface | `View operation` or current collective review action | raw detail stays on canonical monitoring surfaces | do not repeat stale explanation multiple ways |" [ref=e7437]':
|
|
- cell [ref=e7438]
|
|
- cell "145" [ref=e7439]: "145"
|
|
- cell [ref=e7440]
|
|
- cell "+" [ref=e7441]:
|
|
- generic [ref=e7442]: +
|
|
- 'cell "| Tenant shell activity hint | operator-MSP | active-state summary plus one open action | minimal guidance only | raw/support data stays off-surface | `View operation` or current collective review action | raw detail stays on canonical monitoring surfaces | do not repeat stale explanation multiple ways |" [ref=e7443]':
|
|
- code [ref=e7444]: "| Tenant shell activity hint | operator-MSP | active-state summary plus one open action | minimal guidance only | raw/support data stays off-surface | `View operation` or current collective review action | raw detail stays on canonical monitoring surfaces | do not repeat stale explanation multiple ways |"
|
|
- row "146 + | Operations list | operator-MSP | row-level stale/queued truth and scope | detail remains secondary | raw payloads stay on detail | row open | raw and related evidence stay on detail | one row summary, not multiple competing summaries |" [ref=e7445]:
|
|
- cell [ref=e7446]
|
|
- cell "146" [ref=e7447]: "146"
|
|
- cell [ref=e7448]
|
|
- cell "+" [ref=e7449]:
|
|
- generic [ref=e7450]: +
|
|
- cell "| Operations list | operator-MSP | row-level stale/queued truth and scope | detail remains secondary | raw payloads stay on detail | row open | raw and related evidence stay on detail | one row summary, not multiple competing summaries |" [ref=e7451]:
|
|
- code [ref=e7452]: "| Operations list | operator-MSP | row-level stale/queued truth and scope | detail remains secondary | raw payloads stay on detail | row open | raw and related evidence stay on detail | one row summary, not multiple competing summaries |"
|
|
- row "147 + | Canonical run detail | operator-MSP, support-platform | one honest lifecycle banner | diagnostics sections below the banner | raw context remains lower-priority | existing return/open actions | support/raw detail remains secondary to the top summary | lifecycle banner and queue guidance must not disagree |" [ref=e7453]:
|
|
- cell [ref=e7454]
|
|
- cell "147" [ref=e7455]: "147"
|
|
- cell [ref=e7456]
|
|
- cell "+" [ref=e7457]:
|
|
- generic [ref=e7458]: +
|
|
- cell "| Canonical run detail | operator-MSP, support-platform | one honest lifecycle banner | diagnostics sections below the banner | raw context remains lower-priority | existing return/open actions | support/raw detail remains secondary to the top summary | lifecycle banner and queue guidance must not disagree |" [ref=e7459]:
|
|
- code [ref=e7460]: "| Canonical run detail | operator-MSP, support-platform | one honest lifecycle banner | diagnostics sections below the banner | raw context remains lower-priority | existing return/open actions | support/raw detail remains secondary to the top summary | lifecycle banner and queue guidance must not disagree |"
|
|
- row "148 +" [ref=e7461]:
|
|
- cell [ref=e7462]
|
|
- cell "148" [ref=e7463]: "148"
|
|
- cell [ref=e7464]
|
|
- cell "+" [ref=e7465]:
|
|
- generic [ref=e7466]: +
|
|
- cell [ref=e7467]:
|
|
- code
|
|
- 'row "149 + ## UI/UX Surface Classification *(mandatory)*" [ref=e7468]':
|
|
- cell [ref=e7469]
|
|
- cell "149" [ref=e7470]: "149"
|
|
- cell [ref=e7471]
|
|
- cell "+" [ref=e7472]:
|
|
- generic [ref=e7473]: +
|
|
- cell "## UI/UX Surface Classification *(mandatory)*" [ref=e7474]:
|
|
- code [ref=e7475]: "## UI/UX Surface Classification *(mandatory)*"
|
|
- row "150 +" [ref=e7476]:
|
|
- cell [ref=e7477]
|
|
- cell "150" [ref=e7478]: "150"
|
|
- cell [ref=e7479]
|
|
- cell "+" [ref=e7480]:
|
|
- generic [ref=e7481]: +
|
|
- cell [ref=e7482]:
|
|
- code
|
|
- row "151 + | Surface | Action Surface Class | Surface Type | Likely Next Operator Action | Primary Inspect/Open Model | Row Click | Secondary Actions Placement | Destructive Actions Placement | Canonical Collection Route | Canonical Detail Route | Scope Signals | Canonical Noun | Critical Truth Visible by Default | Exception Type / Justification |" [ref=e7483]:
|
|
- cell [ref=e7484]
|
|
- cell "151" [ref=e7485]: "151"
|
|
- cell [ref=e7486]
|
|
- cell "+" [ref=e7487]:
|
|
- generic [ref=e7488]: +
|
|
- cell "| Surface | Action Surface Class | Surface Type | Likely Next Operator Action | Primary Inspect/Open Model | Row Click | Secondary Actions Placement | Destructive Actions Placement | Canonical Collection Route | Canonical Detail Route | Scope Signals | Canonical Noun | Critical Truth Visible by Default | Exception Type / Justification |" [ref=e7489]:
|
|
- code [ref=e7490]: "| Surface | Action Surface Class | Surface Type | Likely Next Operator Action | Primary Inspect/Open Model | Row Click | Secondary Actions Placement | Destructive Actions Placement | Canonical Collection Route | Canonical Detail Route | Scope Signals | Canonical Noun | Critical Truth Visible by Default | Exception Type / Justification |"
|
|
- row "152 + |---|---|---|---|---|---|---|---|---|---|---|---|---|---|" [ref=e7491]:
|
|
- cell [ref=e7492]
|
|
- cell "152" [ref=e7493]: "152"
|
|
- cell [ref=e7494]
|
|
- cell "+" [ref=e7495]:
|
|
- generic [ref=e7496]: +
|
|
- cell "|---|---|---|---|---|---|---|---|---|---|---|---|---|---|" [ref=e7497]:
|
|
- code [ref=e7498]: "|---|---|---|---|---|---|---|---|---|---|---|---|---|---|"
|
|
- 'row "153 + | Tenant shell activity hint | Monitoring hint | Activity shell hint | Open the active run if guidance escalates | explicit open link | forbidden | existing shell secondary actions only | none | `/admin/workspaces/{workspace}/operations` with current contextual prefilter rules | `/admin/workspaces/{workspace}/operations/{run}` | current tenant/workspace shell context | Operation | whether the run is ordinary active work or already stale | none |" [ref=e7499]':
|
|
- cell [ref=e7500]
|
|
- cell "153" [ref=e7501]: "153"
|
|
- cell [ref=e7502]
|
|
- cell "+" [ref=e7503]:
|
|
- generic [ref=e7504]: +
|
|
- 'cell "| Tenant shell activity hint | Monitoring hint | Activity shell hint | Open the active run if guidance escalates | explicit open link | forbidden | existing shell secondary actions only | none | `/admin/workspaces/{workspace}/operations` with current contextual prefilter rules | `/admin/workspaces/{workspace}/operations/{run}` | current tenant/workspace shell context | Operation | whether the run is ordinary active work or already stale | none |" [ref=e7505]':
|
|
- code [ref=e7506]: "| Tenant shell activity hint | Monitoring hint | Activity shell hint | Open the active run if guidance escalates | explicit open link | forbidden | existing shell secondary actions only | none | `/admin/workspaces/{workspace}/operations` with current contextual prefilter rules | `/admin/workspaces/{workspace}/operations/{run}` | current tenant/workspace shell context | Operation | whether the run is ordinary active work or already stale | none |"
|
|
- 'row "154 + | Operations list | List / Table / Monitoring | Read-only monitoring registry | Open the run that needs follow-up | full-row open | required | existing table controls only | none | `/admin/workspaces/{workspace}/operations` | `/admin/workspaces/{workspace}/operations/{run}` | workspace scope and current filters | Operation run | honest queued/running lifecycle truth | none |" [ref=e7507]':
|
|
- cell [ref=e7508]
|
|
- cell "154" [ref=e7509]: "154"
|
|
- cell [ref=e7510]
|
|
- cell "+" [ref=e7511]:
|
|
- generic [ref=e7512]: +
|
|
- 'cell "| Operations list | List / Table / Monitoring | Read-only monitoring registry | Open the run that needs follow-up | full-row open | required | existing table controls only | none | `/admin/workspaces/{workspace}/operations` | `/admin/workspaces/{workspace}/operations/{run}` | workspace scope and current filters | Operation run | honest queued/running lifecycle truth | none |" [ref=e7513]':
|
|
- code [ref=e7514]: "| Operations list | List / Table / Monitoring | Read-only monitoring registry | Open the run that needs follow-up | full-row open | required | existing table controls only | none | `/admin/workspaces/{workspace}/operations` | `/admin/workspaces/{workspace}/operations/{run}` | workspace scope and current filters | Operation run | honest queued/running lifecycle truth | none |"
|
|
- 'row "155 + | Canonical run detail | Record / Detail / Monitoring | Diagnostics-first detail surface | Inspect lifecycle truth before deeper diagnosis | canonical detail page | N/A | existing header/related links only | none | `/admin/workspaces/{workspace}/operations` | `/admin/workspaces/{workspace}/operations/{run}` | workspace scope plus entitled tenant context | Operation run | honest active-state explanation | none |" [ref=e7515]':
|
|
- cell [ref=e7516]
|
|
- cell "155" [ref=e7517]: "155"
|
|
- cell [ref=e7518]
|
|
- cell "+" [ref=e7519]:
|
|
- generic [ref=e7520]: +
|
|
- 'cell "| Canonical run detail | Record / Detail / Monitoring | Diagnostics-first detail surface | Inspect lifecycle truth before deeper diagnosis | canonical detail page | N/A | existing header/related links only | none | `/admin/workspaces/{workspace}/operations` | `/admin/workspaces/{workspace}/operations/{run}` | workspace scope plus entitled tenant context | Operation run | honest active-state explanation | none |" [ref=e7521]':
|
|
- code [ref=e7522]: "| Canonical run detail | Record / Detail / Monitoring | Diagnostics-first detail surface | Inspect lifecycle truth before deeper diagnosis | canonical detail page | N/A | existing header/related links only | none | `/admin/workspaces/{workspace}/operations` | `/admin/workspaces/{workspace}/operations/{run}` | workspace scope plus entitled tenant context | Operation run | honest active-state explanation | none |"
|
|
- row "156 +" [ref=e7523]:
|
|
- cell [ref=e7524]
|
|
- cell "156" [ref=e7525]: "156"
|
|
- cell [ref=e7526]
|
|
- cell "+" [ref=e7527]:
|
|
- generic [ref=e7528]: +
|
|
- cell [ref=e7529]:
|
|
- code
|
|
- 'row "157 + ## Operator Surface Contract *(mandatory)*" [ref=e7530]':
|
|
- cell [ref=e7531]
|
|
- cell "157" [ref=e7532]: "157"
|
|
- cell [ref=e7533]
|
|
- cell "+" [ref=e7534]:
|
|
- generic [ref=e7535]: +
|
|
- cell "## Operator Surface Contract *(mandatory)*" [ref=e7536]:
|
|
- code [ref=e7537]: "## Operator Surface Contract *(mandatory)*"
|
|
- row "158 +" [ref=e7538]:
|
|
- cell [ref=e7539]
|
|
- cell "158" [ref=e7540]: "158"
|
|
- cell [ref=e7541]
|
|
- cell "+" [ref=e7542]:
|
|
- generic [ref=e7543]: +
|
|
- cell [ref=e7544]:
|
|
- code
|
|
- row "159 + | Surface | Primary Persona | Decision / Operator Action Supported | Surface Type | Primary Operator Question | Default-visible Information | Diagnostics-only Information | Status Dimensions Used | Mutation Scope | Primary Actions | Dangerous Actions |" [ref=e7545]:
|
|
- cell [ref=e7546]
|
|
- cell "159" [ref=e7547]: "159"
|
|
- cell [ref=e7548]
|
|
- cell "+" [ref=e7549]:
|
|
- generic [ref=e7550]: +
|
|
- cell "| Surface | Primary Persona | Decision / Operator Action Supported | Surface Type | Primary Operator Question | Default-visible Information | Diagnostics-only Information | Status Dimensions Used | Mutation Scope | Primary Actions | Dangerous Actions |" [ref=e7551]:
|
|
- code [ref=e7552]: "| Surface | Primary Persona | Decision / Operator Action Supported | Surface Type | Primary Operator Question | Default-visible Information | Diagnostics-only Information | Status Dimensions Used | Mutation Scope | Primary Actions | Dangerous Actions |"
|
|
- row "160 + |---|---|---|---|---|---|---|---|---|---|---|" [ref=e7553]:
|
|
- cell [ref=e7554]
|
|
- cell "160" [ref=e7555]: "160"
|
|
- cell [ref=e7556]
|
|
- cell "+" [ref=e7557]:
|
|
- generic [ref=e7558]: +
|
|
- cell "|---|---|---|---|---|---|---|---|---|---|---|" [ref=e7559]:
|
|
- code [ref=e7560]: "|---|---|---|---|---|---|---|---|---|---|---|"
|
|
- row "161 + | Tenant shell activity hint | tenant operator | Decide whether to inspect active work now | shell hint | Is this active work still ordinary, or is it already stale? | label, status, progress availability, open link | deep diagnostics remain elsewhere | lifecycle, freshness, progress availability | none | current open/review action | none |" [ref=e7561]:
|
|
- cell [ref=e7562]
|
|
- cell "161" [ref=e7563]: "161"
|
|
- cell [ref=e7564]
|
|
- cell "+" [ref=e7565]:
|
|
- generic [ref=e7566]: +
|
|
- cell "| Tenant shell activity hint | tenant operator | Decide whether to inspect active work now | shell hint | Is this active work still ordinary, or is it already stale? | label, status, progress availability, open link | deep diagnostics remain elsewhere | lifecycle, freshness, progress availability | none | current open/review action | none |" [ref=e7567]:
|
|
- code [ref=e7568]: "| Tenant shell activity hint | tenant operator | Decide whether to inspect active work now | shell hint | Is this active work still ordinary, or is it already stale? | label, status, progress availability, open link | deep diagnostics remain elsewhere | lifecycle, freshness, progress availability | none | current open/review action | none |"
|
|
- row "162 + | Operations list | workspace operator | Prioritize which active run to inspect | monitoring registry | Which run is actually waiting, progressing, or already stale? | row summary, scope, lifecycle attention | raw payloads on detail | lifecycle, freshness, queue truth | none | open row | none |" [ref=e7569]:
|
|
- cell [ref=e7570]
|
|
- cell "162" [ref=e7571]: "162"
|
|
- cell [ref=e7572]
|
|
- cell "+" [ref=e7573]:
|
|
- generic [ref=e7574]: +
|
|
- cell "| Operations list | workspace operator | Prioritize which active run to inspect | monitoring registry | Which run is actually waiting, progressing, or already stale? | row summary, scope, lifecycle attention | raw payloads on detail | lifecycle, freshness, queue truth | none | open row | none |" [ref=e7575]:
|
|
- code [ref=e7576]: "| Operations list | workspace operator | Prioritize which active run to inspect | monitoring registry | Which run is actually waiting, progressing, or already stale? | row summary, scope, lifecycle attention | raw payloads on detail | lifecycle, freshness, queue truth | none | open row | none |"
|
|
- row "163 + | Canonical run detail | workspace operator | Confirm generic lifecycle truth before diagnosing | detail surface | Why does this run read as stale or still-active? | one lifecycle banner and queue guidance | raw context, failure payloads, related artifacts | lifecycle, freshness, legitimacy evidence | none | existing navigation and related links | none |" [ref=e7577]:
|
|
- cell [ref=e7578]
|
|
- cell "163" [ref=e7579]: "163"
|
|
- cell [ref=e7580]
|
|
- cell "+" [ref=e7581]:
|
|
- generic [ref=e7582]: +
|
|
- cell "| Canonical run detail | workspace operator | Confirm generic lifecycle truth before diagnosing | detail surface | Why does this run read as stale or still-active? | one lifecycle banner and queue guidance | raw context, failure payloads, related artifacts | lifecycle, freshness, legitimacy evidence | none | existing navigation and related links | none |" [ref=e7583]:
|
|
- code [ref=e7584]: "| Canonical run detail | workspace operator | Confirm generic lifecycle truth before diagnosing | detail surface | Why does this run read as stale or still-active? | one lifecycle banner and queue guidance | raw context, failure payloads, related artifacts | lifecycle, freshness, legitimacy evidence | none | existing navigation and related links | none |"
|
|
- row "164 +" [ref=e7585]:
|
|
- cell [ref=e7586]
|
|
- cell "164" [ref=e7587]: "164"
|
|
- cell [ref=e7588]
|
|
- cell "+" [ref=e7589]:
|
|
- generic [ref=e7590]: +
|
|
- cell [ref=e7591]:
|
|
- code
|
|
- 'row "165 + ## Proportionality Review *(mandatory when structural complexity is introduced)*" [ref=e7592]':
|
|
- cell [ref=e7593]
|
|
- cell "165" [ref=e7594]: "165"
|
|
- cell [ref=e7595]
|
|
- cell "+" [ref=e7596]:
|
|
- generic [ref=e7597]: +
|
|
- cell "## Proportionality Review *(mandatory when structural complexity is introduced)*" [ref=e7598]:
|
|
- code [ref=e7599]: "## Proportionality Review *(mandatory when structural complexity is introduced)*"
|
|
- row "166 +" [ref=e7600]:
|
|
- cell [ref=e7601]
|
|
- cell "166" [ref=e7602]: "166"
|
|
- cell [ref=e7603]
|
|
- cell "+" [ref=e7604]:
|
|
- generic [ref=e7605]: +
|
|
- cell [ref=e7606]:
|
|
- code
|
|
- 'row "167 + - **New source of truth?**: no" [ref=e7607]':
|
|
- cell [ref=e7608]
|
|
- cell "167" [ref=e7609]: "167"
|
|
- cell [ref=e7610]
|
|
- cell "+" [ref=e7611]:
|
|
- generic [ref=e7612]: +
|
|
- 'cell "- **New source of truth?**: no" [ref=e7613]':
|
|
- code [ref=e7614]: "- **New source of truth?**: no"
|
|
- 'row "168 + - **New persisted entity/table/artifact?**: no" [ref=e7615]':
|
|
- cell [ref=e7616]
|
|
- cell "168" [ref=e7617]: "168"
|
|
- cell [ref=e7618]
|
|
- cell "+" [ref=e7619]:
|
|
- generic [ref=e7620]: +
|
|
- 'cell "- **New persisted entity/table/artifact?**: no" [ref=e7621]':
|
|
- code [ref=e7622]: "- **New persisted entity/table/artifact?**: no"
|
|
- 'row "169 + - **New abstraction?**: no by default; prefer extending existing helpers" [ref=e7623]':
|
|
- cell [ref=e7624]
|
|
- cell "169" [ref=e7625]: "169"
|
|
- cell [ref=e7626]
|
|
- cell "+" [ref=e7627]:
|
|
- generic [ref=e7628]: +
|
|
- 'cell "- **New abstraction?**: no by default; prefer extending existing helpers" [ref=e7629]':
|
|
- code [ref=e7630]: "- **New abstraction?**: no by default; prefer extending existing helpers"
|
|
- 'row "170 + - **New enum/state/reason family?**: no" [ref=e7631]':
|
|
- cell [ref=e7632]
|
|
- cell "170" [ref=e7633]: "170"
|
|
- cell [ref=e7634]
|
|
- cell "+" [ref=e7635]:
|
|
- generic [ref=e7636]: +
|
|
- 'cell "- **New enum/state/reason family?**: no" [ref=e7637]':
|
|
- code [ref=e7638]: "- **New enum/state/reason family?**: no"
|
|
- 'row "171 + - **New cross-domain UI framework/taxonomy?**: no" [ref=e7639]':
|
|
- cell [ref=e7640]
|
|
- cell "171" [ref=e7641]: "171"
|
|
- cell [ref=e7642]
|
|
- cell "+" [ref=e7643]:
|
|
- generic [ref=e7644]: +
|
|
- 'cell "- **New cross-domain UI framework/taxonomy?**: no" [ref=e7645]':
|
|
- code [ref=e7646]: "- **New cross-domain UI framework/taxonomy?**: no"
|
|
- 'row "172 + - **Current operator problem**: current generic queue truth can contradict itself across existing shared monitoring surfaces" [ref=e7647]':
|
|
- cell [ref=e7648]
|
|
- cell "172" [ref=e7649]: "172"
|
|
- cell [ref=e7650]
|
|
- cell "+" [ref=e7651]:
|
|
- generic [ref=e7652]: +
|
|
- 'cell "- **Current operator problem**: current generic queue truth can contradict itself across existing shared monitoring surfaces" [ref=e7653]':
|
|
- code [ref=e7654]: "- **Current operator problem**: current generic queue truth can contradict itself across existing shared monitoring surfaces"
|
|
- 'row "173 + - **Existing structure is insufficient because**: lifecycle, freshness, progress, and queue guidance currently live in separate helpers that can drift in wording and emphasis" [ref=e7655]':
|
|
- cell [ref=e7656]
|
|
- cell "173" [ref=e7657]: "173"
|
|
- cell [ref=e7658]
|
|
- cell "+" [ref=e7659]:
|
|
- generic [ref=e7660]: +
|
|
- 'cell "- **Existing structure is insufficient because**: lifecycle, freshness, progress, and queue guidance currently live in separate helpers that can drift in wording and emphasis" [ref=e7661]':
|
|
- code [ref=e7662]: "- **Existing structure is insufficient because**: lifecycle, freshness, progress, and queue guidance currently live in separate helpers that can drift in wording and emphasis"
|
|
- 'row "174 + - **Narrowest correct implementation**: align existing shared helpers and current monitoring renderers without adding a new framework, status family, or persistence layer" [ref=e7663]':
|
|
- cell [ref=e7664]
|
|
- cell "174" [ref=e7665]: "174"
|
|
- cell [ref=e7666]
|
|
- cell "+" [ref=e7667]:
|
|
- generic [ref=e7668]: +
|
|
- 'cell "- **Narrowest correct implementation**: align existing shared helpers and current monitoring renderers without adding a new framework, status family, or persistence layer" [ref=e7669]':
|
|
- code [ref=e7670]: "- **Narrowest correct implementation**: align existing shared helpers and current monitoring renderers without adding a new framework, status family, or persistence layer"
|
|
- 'row "175 + - **Ownership cost**: bounded shared-helper review burden plus focused tests" [ref=e7671]':
|
|
- cell [ref=e7672]
|
|
- cell "175" [ref=e7673]: "175"
|
|
- cell [ref=e7674]
|
|
- cell "+" [ref=e7675]:
|
|
- generic [ref=e7676]: +
|
|
- 'cell "- **Ownership cost**: bounded shared-helper review burden plus focused tests" [ref=e7677]':
|
|
- code [ref=e7678]: "- **Ownership cost**: bounded shared-helper review burden plus focused tests"
|
|
- 'row "176 + - **Alternative intentionally rejected**: a new reconciliation framework or queue-health persistence layer was rejected because the current issue is derived wording drift, not missing stored truth" [ref=e7679]':
|
|
- cell [ref=e7680]
|
|
- cell "176" [ref=e7681]: "176"
|
|
- cell [ref=e7682]
|
|
- cell "+" [ref=e7683]:
|
|
- generic [ref=e7684]: +
|
|
- 'cell "- **Alternative intentionally rejected**: a new reconciliation framework or queue-health persistence layer was rejected because the current issue is derived wording drift, not missing stored truth" [ref=e7685]':
|
|
- code [ref=e7686]: "- **Alternative intentionally rejected**: a new reconciliation framework or queue-health persistence layer was rejected because the current issue is derived wording drift, not missing stored truth"
|
|
- 'row "177 + - **Release truth**: current-release operator-trust correction" [ref=e7687]':
|
|
- cell [ref=e7688]
|
|
- cell "177" [ref=e7689]: "177"
|
|
- cell [ref=e7690]
|
|
- cell "+" [ref=e7691]:
|
|
- generic [ref=e7692]: +
|
|
- 'cell "- **Release truth**: current-release operator-trust correction" [ref=e7693]':
|
|
- code [ref=e7694]: "- **Release truth**: current-release operator-trust correction"
|
|
- row "178 +" [ref=e7695]:
|
|
- cell [ref=e7696]
|
|
- cell "178" [ref=e7697]: "178"
|
|
- cell [ref=e7698]
|
|
- cell "+" [ref=e7699]:
|
|
- generic [ref=e7700]: +
|
|
- cell [ref=e7701]:
|
|
- code
|
|
- 'row "179 + ## Testing / Lane / Runtime Impact *(mandatory for runtime behavior changes)*" [ref=e7702]':
|
|
- cell [ref=e7703]
|
|
- cell "179" [ref=e7704]: "179"
|
|
- cell [ref=e7705]
|
|
- cell "+" [ref=e7706]:
|
|
- generic [ref=e7707]: +
|
|
- cell "## Testing / Lane / Runtime Impact *(mandatory for runtime behavior changes)*" [ref=e7708]:
|
|
- code [ref=e7709]: "## Testing / Lane / Runtime Impact *(mandatory for runtime behavior changes)*"
|
|
- row "180 +" [ref=e7710]:
|
|
- cell [ref=e7711]
|
|
- cell "180" [ref=e7712]: "180"
|
|
- cell [ref=e7713]
|
|
- cell "+" [ref=e7714]:
|
|
- generic [ref=e7715]: +
|
|
- cell [ref=e7716]:
|
|
- code
|
|
- 'row "181 + - **Test purpose / classification**: Unit + Feature" [ref=e7717]':
|
|
- cell [ref=e7718]
|
|
- cell "181" [ref=e7719]: "181"
|
|
- cell [ref=e7720]
|
|
- cell "+" [ref=e7721]:
|
|
- generic [ref=e7722]: +
|
|
- 'cell "- **Test purpose / classification**: Unit + Feature" [ref=e7723]':
|
|
- code [ref=e7724]: "- **Test purpose / classification**: Unit + Feature"
|
|
- 'row "182 + - **Validation lane(s)**: fast-feedback, confidence" [ref=e7725]':
|
|
- cell [ref=e7726]
|
|
- cell "182" [ref=e7727]: "182"
|
|
- cell [ref=e7728]
|
|
- cell "+" [ref=e7729]:
|
|
- generic [ref=e7730]: +
|
|
- 'cell "- **Validation lane(s)**: fast-feedback, confidence" [ref=e7731]':
|
|
- code [ref=e7732]: "- **Validation lane(s)**: fast-feedback, confidence"
|
|
- 'row "183 + - **Why this classification and these lanes are sufficient**: the feature changes derived queue truth and current rendered monitoring output; focused unit and feature proof are sufficient without a new browser or heavy-governance lane" [ref=e7733]':
|
|
- cell [ref=e7734]
|
|
- cell "183" [ref=e7735]: "183"
|
|
- cell [ref=e7736]
|
|
- cell "+" [ref=e7737]:
|
|
- generic [ref=e7738]: +
|
|
- 'cell "- **Why this classification and these lanes are sufficient**: the feature changes derived queue truth and current rendered monitoring output; focused unit and feature proof are sufficient without a new browser or heavy-governance lane" [ref=e7739]':
|
|
- code [ref=e7740]: "- **Why this classification and these lanes are sufficient**: the feature changes derived queue truth and current rendered monitoring output; focused unit and feature proof are sufficient without a new browser or heavy-governance lane"
|
|
- row "184 + - **New or expanded test families**:" [ref=e7741]:
|
|
- cell [ref=e7742]
|
|
- cell "184" [ref=e7743]: "184"
|
|
- cell [ref=e7744]
|
|
- cell "+" [ref=e7745]:
|
|
- generic [ref=e7746]: +
|
|
- cell "- **New or expanded test families**:" [ref=e7747]:
|
|
- code [ref=e7748]: "- **New or expanded test families**:"
|
|
- 'row "185 + - `apps/platform/tests/Unit/Support/OpsUx/OperationRunProgressContractTest.php`" [ref=e7749]':
|
|
- cell [ref=e7750]
|
|
- cell "185" [ref=e7751]: "185"
|
|
- cell [ref=e7752]
|
|
- cell "+" [ref=e7753]:
|
|
- generic [ref=e7754]: +
|
|
- 'cell "- `apps/platform/tests/Unit/Support/OpsUx/OperationRunProgressContractTest.php`" [ref=e7755]':
|
|
- code [ref=e7756]: "- `apps/platform/tests/Unit/Support/OpsUx/OperationRunProgressContractTest.php`"
|
|
- 'row "186 + - `apps/platform/tests/Unit/Support/OpsUx/RunDurationInsightsTest.php` or adjacent focused unit coverage if the repo keeps these assertions in an existing file" [ref=e7757]':
|
|
- cell [ref=e7758]
|
|
- cell "186" [ref=e7759]: "186"
|
|
- cell [ref=e7760]
|
|
- cell "+" [ref=e7761]:
|
|
- generic [ref=e7762]: +
|
|
- 'cell "- `apps/platform/tests/Unit/Support/OpsUx/RunDurationInsightsTest.php` or adjacent focused unit coverage if the repo keeps these assertions in an existing file" [ref=e7763]':
|
|
- code [ref=e7764]: "- `apps/platform/tests/Unit/Support/OpsUx/RunDurationInsightsTest.php` or adjacent focused unit coverage if the repo keeps these assertions in an existing file"
|
|
- 'row "187 + - `apps/platform/tests/Feature/OpsUx/ActivityFeedbackSurfaceTest.php`" [ref=e7765]':
|
|
- cell [ref=e7766]
|
|
- cell "187" [ref=e7767]: "187"
|
|
- cell [ref=e7768]
|
|
- cell "+" [ref=e7769]:
|
|
- generic [ref=e7770]: +
|
|
- 'cell "- `apps/platform/tests/Feature/OpsUx/ActivityFeedbackSurfaceTest.php`" [ref=e7771]':
|
|
- code [ref=e7772]: "- `apps/platform/tests/Feature/OpsUx/ActivityFeedbackSurfaceTest.php`"
|
|
- 'row "188 + - `apps/platform/tests/Feature/OpsUx/BulkOperationProgressDbOnlyTest.php`" [ref=e7773]':
|
|
- cell [ref=e7774]
|
|
- cell "188" [ref=e7775]: "188"
|
|
- cell [ref=e7776]
|
|
- cell "+" [ref=e7777]:
|
|
- generic [ref=e7778]: +
|
|
- 'cell "- `apps/platform/tests/Feature/OpsUx/BulkOperationProgressDbOnlyTest.php`" [ref=e7779]':
|
|
- code [ref=e7780]: "- `apps/platform/tests/Feature/OpsUx/BulkOperationProgressDbOnlyTest.php`"
|
|
- 'row "189 + - `apps/platform/tests/Feature/MonitoringOperationsTest.php`" [ref=e7781]':
|
|
- cell [ref=e7782]
|
|
- cell "189" [ref=e7783]: "189"
|
|
- cell [ref=e7784]
|
|
- cell "+" [ref=e7785]:
|
|
- generic [ref=e7786]: +
|
|
- 'cell "- `apps/platform/tests/Feature/MonitoringOperationsTest.php`" [ref=e7787]':
|
|
- code [ref=e7788]: "- `apps/platform/tests/Feature/MonitoringOperationsTest.php`"
|
|
- 'row "190 + - `apps/platform/tests/Feature/Monitoring/OperationLifecycleFreshnessPresentationTest.php`" [ref=e7789]':
|
|
- cell [ref=e7790]
|
|
- cell "190" [ref=e7791]: "190"
|
|
- cell [ref=e7792]
|
|
- cell "+" [ref=e7793]:
|
|
- generic [ref=e7794]: +
|
|
- 'cell "- `apps/platform/tests/Feature/Monitoring/OperationLifecycleFreshnessPresentationTest.php`" [ref=e7795]':
|
|
- code [ref=e7796]: "- `apps/platform/tests/Feature/Monitoring/OperationLifecycleFreshnessPresentationTest.php`"
|
|
- 'row "191 + - `apps/platform/tests/Feature/Monitoring/MonitoringOperationsTest.php`" [ref=e7797]':
|
|
- cell [ref=e7798]
|
|
- cell "191" [ref=e7799]: "191"
|
|
- cell [ref=e7800]
|
|
- cell "+" [ref=e7801]:
|
|
- generic [ref=e7802]: +
|
|
- 'cell "- `apps/platform/tests/Feature/Monitoring/MonitoringOperationsTest.php`" [ref=e7803]':
|
|
- code [ref=e7804]: "- `apps/platform/tests/Feature/Monitoring/MonitoringOperationsTest.php`"
|
|
- 'row "192 + - `apps/platform/tests/Feature/Filament/OperationRunEnterpriseDetailPageTest.php`" [ref=e7805]':
|
|
- cell [ref=e7806]
|
|
- cell "192" [ref=e7807]: "192"
|
|
- cell [ref=e7808]
|
|
- cell "+" [ref=e7809]:
|
|
- generic [ref=e7810]: +
|
|
- 'cell "- `apps/platform/tests/Feature/Filament/OperationRunEnterpriseDetailPageTest.php`" [ref=e7811]':
|
|
- code [ref=e7812]: "- `apps/platform/tests/Feature/Filament/OperationRunEnterpriseDetailPageTest.php`"
|
|
- 'row "193 + - `apps/platform/tests/Feature/Operations/TenantlessOperationRunViewerTest.php`" [ref=e7813]':
|
|
- cell [ref=e7814]
|
|
- cell "193" [ref=e7815]: "193"
|
|
- cell [ref=e7816]
|
|
- cell "+" [ref=e7817]:
|
|
- generic [ref=e7818]: +
|
|
- 'cell "- `apps/platform/tests/Feature/Operations/TenantlessOperationRunViewerTest.php`" [ref=e7819]':
|
|
- code [ref=e7820]: "- `apps/platform/tests/Feature/Operations/TenantlessOperationRunViewerTest.php`"
|
|
- 'row "194 + - **Fixture / helper cost impact**: low to moderate; reuse existing `OperationRun` factories, workspace membership helpers, and monitoring fixtures only" [ref=e7821]':
|
|
- cell [ref=e7822]
|
|
- cell "194" [ref=e7823]: "194"
|
|
- cell [ref=e7824]
|
|
- cell "+" [ref=e7825]:
|
|
- generic [ref=e7826]: +
|
|
- 'cell "- **Fixture / helper cost impact**: low to moderate; reuse existing `OperationRun` factories, workspace membership helpers, and monitoring fixtures only" [ref=e7827]':
|
|
- code [ref=e7828]: "- **Fixture / helper cost impact**: low to moderate; reuse existing `OperationRun` factories, workspace membership helpers, and monitoring fixtures only"
|
|
- 'row "195 + - **Heavy-family visibility / justification**: none" [ref=e7829]':
|
|
- cell [ref=e7830]
|
|
- cell "195" [ref=e7831]: "195"
|
|
- cell [ref=e7832]
|
|
- cell "+" [ref=e7833]:
|
|
- generic [ref=e7834]: +
|
|
- 'cell "- **Heavy-family visibility / justification**: none" [ref=e7835]':
|
|
- code [ref=e7836]: "- **Heavy-family visibility / justification**: none"
|
|
- 'row "196 + - **Special surface test profile**: monitoring-state-page plus shared-detail-family" [ref=e7837]':
|
|
- cell [ref=e7838]
|
|
- cell "196" [ref=e7839]: "196"
|
|
- cell [ref=e7840]
|
|
- cell "+" [ref=e7841]:
|
|
- generic [ref=e7842]: +
|
|
- 'cell "- **Special surface test profile**: monitoring-state-page plus shared-detail-family" [ref=e7843]':
|
|
- code [ref=e7844]: "- **Special surface test profile**: monitoring-state-page plus shared-detail-family"
|
|
- 'row "197 + - **Standard-native relief or required special coverage**: feature coverage is sufficient; no browser smoke is required unless implementation later proves a render-only regression that unit/feature coverage cannot catch" [ref=e7845]':
|
|
- cell [ref=e7846]
|
|
- cell "197" [ref=e7847]: "197"
|
|
- cell [ref=e7848]
|
|
- cell "+" [ref=e7849]:
|
|
- generic [ref=e7850]: +
|
|
- 'cell "- **Standard-native relief or required special coverage**: feature coverage is sufficient; no browser smoke is required unless implementation later proves a render-only regression that unit/feature coverage cannot catch" [ref=e7851]':
|
|
- code [ref=e7852]: "- **Standard-native relief or required special coverage**: feature coverage is sufficient; no browser smoke is required unless implementation later proves a render-only regression that unit/feature coverage cannot catch"
|
|
- 'row "198 + - **Reviewer handoff**: reviewers must confirm the same stale run no longer mixes stale attention with ordinary queue/progress reassurance on shell, list, and detail surfaces" [ref=e7853]':
|
|
- cell [ref=e7854]
|
|
- cell "198" [ref=e7855]: "198"
|
|
- cell [ref=e7856]
|
|
- cell "+" [ref=e7857]:
|
|
- generic [ref=e7858]: +
|
|
- 'cell "- **Reviewer handoff**: reviewers must confirm the same stale run no longer mixes stale attention with ordinary queue/progress reassurance on shell, list, and detail surfaces" [ref=e7859]':
|
|
- code [ref=e7860]: "- **Reviewer handoff**: reviewers must confirm the same stale run no longer mixes stale attention with ordinary queue/progress reassurance on shell, list, and detail surfaces"
|
|
- 'row "199 + - **Budget / baseline / trend impact**: none expected beyond small feature-local coverage growth" [ref=e7861]':
|
|
- cell [ref=e7862]
|
|
- cell "199" [ref=e7863]: "199"
|
|
- cell [ref=e7864]
|
|
- cell "+" [ref=e7865]:
|
|
- generic [ref=e7866]: +
|
|
- 'cell "- **Budget / baseline / trend impact**: none expected beyond small feature-local coverage growth" [ref=e7867]':
|
|
- code [ref=e7868]: "- **Budget / baseline / trend impact**: none expected beyond small feature-local coverage growth"
|
|
- 'row "200 + - **Escalation needed**: `reject-or-split` if the slice expands into new persistence, adapter orchestration, or queue runtime redesign" [ref=e7869]':
|
|
- cell [ref=e7870]
|
|
- cell "200" [ref=e7871]: "200"
|
|
- cell [ref=e7872]
|
|
- cell "+" [ref=e7873]:
|
|
- generic [ref=e7874]: +
|
|
- 'cell "- **Escalation needed**: `reject-or-split` if the slice expands into new persistence, adapter orchestration, or queue runtime redesign" [ref=e7875]':
|
|
- code [ref=e7876]: "- **Escalation needed**: `reject-or-split` if the slice expands into new persistence, adapter orchestration, or queue runtime redesign"
|
|
- 'row "201 + - **Active feature PR close-out entry**: Guardrail / Smoke Coverage" [ref=e7877]':
|
|
- cell [ref=e7878]
|
|
- cell "201" [ref=e7879]: "201"
|
|
- cell [ref=e7880]
|
|
- cell "+" [ref=e7881]:
|
|
- generic [ref=e7882]: +
|
|
- 'cell "- **Active feature PR close-out entry**: Guardrail / Smoke Coverage" [ref=e7883]':
|
|
- code [ref=e7884]: "- **Active feature PR close-out entry**: Guardrail / Smoke Coverage"
|
|
- row "202 + - **Planned validation commands**:" [ref=e7885]:
|
|
- cell [ref=e7886]
|
|
- cell "202" [ref=e7887]: "202"
|
|
- cell [ref=e7888]
|
|
- cell "+" [ref=e7889]:
|
|
- generic [ref=e7890]: +
|
|
- cell "- **Planned validation commands**:" [ref=e7891]:
|
|
- code [ref=e7892]: "- **Planned validation commands**:"
|
|
- 'row "203 + - `cd apps/platform && ./vendor/bin/sail artisan test --compact tests/Unit/Support/OpsUx/OperationRunProgressContractTest.php`" [ref=e7893]':
|
|
- cell [ref=e7894]
|
|
- cell "203" [ref=e7895]: "203"
|
|
- cell [ref=e7896]
|
|
- cell "+" [ref=e7897]:
|
|
- generic [ref=e7898]: +
|
|
- 'cell "- `cd apps/platform && ./vendor/bin/sail artisan test --compact tests/Unit/Support/OpsUx/OperationRunProgressContractTest.php`" [ref=e7899]':
|
|
- code [ref=e7900]: "- `cd apps/platform && ./vendor/bin/sail artisan test --compact tests/Unit/Support/OpsUx/OperationRunProgressContractTest.php`"
|
|
- 'row "204 + - `cd apps/platform && ./vendor/bin/sail artisan test --compact tests/Feature/OpsUx/ActivityFeedbackSurfaceTest.php tests/Feature/OpsUx/BulkOperationProgressDbOnlyTest.php tests/Feature/MonitoringOperationsTest.php tests/Feature/Monitoring/OperationLifecycleFreshnessPresentationTest.php tests/Feature/Monitoring/MonitoringOperationsTest.php tests/Feature/Filament/OperationRunEnterpriseDetailPageTest.php tests/Feature/Operations/TenantlessOperationRunViewerTest.php`" [ref=e7901]':
|
|
- cell [ref=e7902]
|
|
- cell "204" [ref=e7903]: "204"
|
|
- cell [ref=e7904]
|
|
- cell "+" [ref=e7905]:
|
|
- generic [ref=e7906]: +
|
|
- 'cell "- `cd apps/platform && ./vendor/bin/sail artisan test --compact tests/Feature/OpsUx/ActivityFeedbackSurfaceTest.php tests/Feature/OpsUx/BulkOperationProgressDbOnlyTest.php tests/Feature/MonitoringOperationsTest.php tests/Feature/Monitoring/OperationLifecycleFreshnessPresentationTest.php tests/Feature/Monitoring/MonitoringOperationsTest.php tests/Feature/Filament/OperationRunEnterpriseDetailPageTest.php tests/Feature/Operations/TenantlessOperationRunViewerTest.php`" [ref=e7907]':
|
|
- code [ref=e7908]: "- `cd apps/platform && ./vendor/bin/sail artisan test --compact tests/Feature/OpsUx/ActivityFeedbackSurfaceTest.php tests/Feature/OpsUx/BulkOperationProgressDbOnlyTest.php tests/Feature/MonitoringOperationsTest.php tests/Feature/Monitoring/OperationLifecycleFreshnessPresentationTest.php tests/Feature/Monitoring/MonitoringOperationsTest.php tests/Feature/Filament/OperationRunEnterpriseDetailPageTest.php tests/Feature/Operations/TenantlessOperationRunViewerTest.php`"
|
|
- 'row "205 + - `git diff --check`" [ref=e7909]':
|
|
- cell [ref=e7910]
|
|
- cell "205" [ref=e7911]: "205"
|
|
- cell [ref=e7912]
|
|
- cell "+" [ref=e7913]:
|
|
- generic [ref=e7914]: +
|
|
- 'cell "- `git diff --check`" [ref=e7915]':
|
|
- code [ref=e7916]: "- `git diff --check`"
|
|
- row "206 +" [ref=e7917]:
|
|
- cell [ref=e7918]
|
|
- cell "206" [ref=e7919]: "206"
|
|
- cell [ref=e7920]
|
|
- cell "+" [ref=e7921]:
|
|
- generic [ref=e7922]: +
|
|
- cell [ref=e7923]:
|
|
- code
|
|
- 'row "207 + ## User Scenarios & Testing *(mandatory)*" [ref=e7924]':
|
|
- cell [ref=e7925]
|
|
- cell "207" [ref=e7926]: "207"
|
|
- cell [ref=e7927]
|
|
- cell "+" [ref=e7928]:
|
|
- generic [ref=e7929]: +
|
|
- cell "## User Scenarios & Testing *(mandatory)*" [ref=e7930]:
|
|
- code [ref=e7931]: "## User Scenarios & Testing *(mandatory)*"
|
|
- row "208 +" [ref=e7932]:
|
|
- cell [ref=e7933]
|
|
- cell "208" [ref=e7934]: "208"
|
|
- cell [ref=e7935]
|
|
- cell "+" [ref=e7936]:
|
|
- generic [ref=e7937]: +
|
|
- cell [ref=e7938]:
|
|
- code
|
|
- 'row "209 + ### User Story 1 - See honest queued and stale truth on active monitoring surfaces (Priority: P1)" [ref=e7939]':
|
|
- cell [ref=e7940]
|
|
- cell "209" [ref=e7941]: "209"
|
|
- cell [ref=e7942]
|
|
- cell "+" [ref=e7943]:
|
|
- generic [ref=e7944]: +
|
|
- 'cell "### User Story 1 - See honest queued and stale truth on active monitoring surfaces (Priority: P1)" [ref=e7945]':
|
|
- code [ref=e7946]: "### User Story 1 - See honest queued and stale truth on active monitoring surfaces (Priority: P1)"
|
|
- row "210 +" [ref=e7947]:
|
|
- cell [ref=e7948]
|
|
- cell "210" [ref=e7949]: "210"
|
|
- cell [ref=e7950]
|
|
- cell "+" [ref=e7951]:
|
|
- generic [ref=e7952]: +
|
|
- cell [ref=e7953]:
|
|
- code
|
|
- row "211 + As an operator, I need active monitoring surfaces to distinguish normal queued/running work from stale lifecycle drift without mixing calm queue reassurance into the same state." [ref=e7954]:
|
|
- cell [ref=e7955]
|
|
- cell "211" [ref=e7956]: "211"
|
|
- cell [ref=e7957]
|
|
- cell "+" [ref=e7958]:
|
|
- generic [ref=e7959]: +
|
|
- cell "As an operator, I need active monitoring surfaces to distinguish normal queued/running work from stale lifecycle drift without mixing calm queue reassurance into the same state." [ref=e7960]:
|
|
- code [ref=e7961]: As an operator, I need active monitoring surfaces to distinguish normal queued/running work from stale lifecycle drift without mixing calm queue reassurance into the same state.
|
|
- row "212 +" [ref=e7962]:
|
|
- cell [ref=e7963]
|
|
- cell "212" [ref=e7964]: "212"
|
|
- cell [ref=e7965]
|
|
- cell "+" [ref=e7966]:
|
|
- generic [ref=e7967]: +
|
|
- cell [ref=e7968]:
|
|
- code
|
|
- 'row "213 + **Why this priority**: This is the direct trust gap visible in current runtime surfaces." [ref=e7969]':
|
|
- cell [ref=e7970]
|
|
- cell "213" [ref=e7971]: "213"
|
|
- cell [ref=e7972]
|
|
- cell "+" [ref=e7973]:
|
|
- generic [ref=e7974]: +
|
|
- 'cell "**Why this priority**: This is the direct trust gap visible in current runtime surfaces." [ref=e7975]':
|
|
- code [ref=e7976]: "**Why this priority**: This is the direct trust gap visible in current runtime surfaces."
|
|
- row "214 +" [ref=e7977]:
|
|
- cell [ref=e7978]
|
|
- cell "214" [ref=e7979]: "214"
|
|
- cell [ref=e7980]
|
|
- cell "+" [ref=e7981]:
|
|
- generic [ref=e7982]: +
|
|
- cell [ref=e7983]:
|
|
- code
|
|
- 'row "215 + **Independent Test**: Seed fresh and stale queued/running runs, open the shell activity hint and monitoring list, and verify that stale-active runs do not mix stale attention with ordinary queue or progress reassurance." [ref=e7984]':
|
|
- cell [ref=e7985]
|
|
- cell "215" [ref=e7986]: "215"
|
|
- cell [ref=e7987]
|
|
- cell "+" [ref=e7988]:
|
|
- generic [ref=e7989]: +
|
|
- 'cell "**Independent Test**: Seed fresh and stale queued/running runs, open the shell activity hint and monitoring list, and verify that stale-active runs do not mix stale attention with ordinary queue or progress reassurance." [ref=e7990]':
|
|
- code [ref=e7991]: "**Independent Test**: Seed fresh and stale queued/running runs, open the shell activity hint and monitoring list, and verify that stale-active runs do not mix stale attention with ordinary queue or progress reassurance."
|
|
- row "216 +" [ref=e7992]:
|
|
- cell [ref=e7993]
|
|
- cell "216" [ref=e7994]: "216"
|
|
- cell [ref=e7995]
|
|
- cell "+" [ref=e7996]:
|
|
- generic [ref=e7997]: +
|
|
- cell [ref=e7998]:
|
|
- code
|
|
- row "217 + **Acceptance Scenarios**:" [ref=e7999]:
|
|
- cell [ref=e8000]
|
|
- cell "217" [ref=e8001]: "217"
|
|
- cell [ref=e8002]
|
|
- cell "+" [ref=e8003]:
|
|
- generic [ref=e8004]: +
|
|
- cell "**Acceptance Scenarios**:" [ref=e8005]:
|
|
- code [ref=e8006]: "**Acceptance Scenarios**:"
|
|
- row "218 +" [ref=e8007]:
|
|
- cell [ref=e8008]
|
|
- cell "218" [ref=e8009]: "218"
|
|
- cell [ref=e8010]
|
|
- cell "+" [ref=e8011]:
|
|
- generic [ref=e8012]: +
|
|
- cell [ref=e8013]:
|
|
- code
|
|
- 'row "219 + 1. **Given** a queued or running run is past its lifecycle window, **When** the shell or monitoring list renders it, **Then** the visible stale-active state does not also reassure with ordinary `Waiting for worker.`, `Progress details pending.`, or equivalent calm queue/progress copy." [ref=e8014]':
|
|
- cell [ref=e8015]
|
|
- cell "219" [ref=e8016]: "219"
|
|
- cell [ref=e8017]
|
|
- cell "+" [ref=e8018]:
|
|
- generic [ref=e8019]: +
|
|
- 'cell "1. **Given** a queued or running run is past its lifecycle window, **When** the shell or monitoring list renders it, **Then** the visible stale-active state does not also reassure with ordinary `Waiting for worker.`, `Progress details pending.`, or equivalent calm queue/progress copy." [ref=e8020]':
|
|
- code [ref=e8021]: "1. **Given** a queued or running run is past its lifecycle window, **When** the shell or monitoring list renders it, **Then** the visible stale-active state does not also reassure with ordinary `Waiting for worker.`, `Progress details pending.`, or equivalent calm queue/progress copy."
|
|
- row "220 + 2. **Given** a fresh queued or running run is still within its lifecycle window, **When** the same surfaces render it, **Then** the copy remains calm and does not falsely escalate it as stale." [ref=e8022]:
|
|
- cell [ref=e8023]
|
|
- cell "220" [ref=e8024]: "220"
|
|
- cell [ref=e8025]
|
|
- cell "+" [ref=e8026]:
|
|
- generic [ref=e8027]: +
|
|
- cell "2. **Given** a fresh queued or running run is still within its lifecycle window, **When** the same surfaces render it, **Then** the copy remains calm and does not falsely escalate it as stale." [ref=e8028]:
|
|
- code [ref=e8029]: 2. **Given** a fresh queued or running run is still within its lifecycle window, **When** the same surfaces render it, **Then** the copy remains calm and does not falsely escalate it as stale.
|
|
- row "221 +" [ref=e8030]:
|
|
- cell [ref=e8031]
|
|
- cell "221" [ref=e8032]: "221"
|
|
- cell [ref=e8033]
|
|
- cell "+" [ref=e8034]:
|
|
- generic [ref=e8035]: +
|
|
- cell [ref=e8036]:
|
|
- code
|
|
- 'row "222 + ### User Story 2 - Keep canonical run detail aligned with generic queue truth (Priority: P1)" [ref=e8037]':
|
|
- cell [ref=e8038]
|
|
- cell "222" [ref=e8039]: "222"
|
|
- cell [ref=e8040]
|
|
- cell "+" [ref=e8041]:
|
|
- generic [ref=e8042]: +
|
|
- 'cell "### User Story 2 - Keep canonical run detail aligned with generic queue truth (Priority: P1)" [ref=e8043]':
|
|
- code [ref=e8044]: "### User Story 2 - Keep canonical run detail aligned with generic queue truth (Priority: P1)"
|
|
- row "223 +" [ref=e8045]:
|
|
- cell [ref=e8046]
|
|
- cell "223" [ref=e8047]: "223"
|
|
- cell [ref=e8048]
|
|
- cell "+" [ref=e8049]:
|
|
- generic [ref=e8050]: +
|
|
- cell [ref=e8051]:
|
|
- code
|
|
- row "224 + As an operator, I need canonical run detail to confirm the same generic lifecycle meaning that list and shell surfaces already communicate before I inspect deeper diagnostics." [ref=e8052]:
|
|
- cell [ref=e8053]
|
|
- cell "224" [ref=e8054]: "224"
|
|
- cell [ref=e8055]
|
|
- cell "+" [ref=e8056]:
|
|
- generic [ref=e8057]: +
|
|
- cell "As an operator, I need canonical run detail to confirm the same generic lifecycle meaning that list and shell surfaces already communicate before I inspect deeper diagnostics." [ref=e8058]:
|
|
- code [ref=e8059]: As an operator, I need canonical run detail to confirm the same generic lifecycle meaning that list and shell surfaces already communicate before I inspect deeper diagnostics.
|
|
- row "225 +" [ref=e8060]:
|
|
- cell [ref=e8061]
|
|
- cell "225" [ref=e8062]: "225"
|
|
- cell [ref=e8063]
|
|
- cell "+" [ref=e8064]:
|
|
- generic [ref=e8065]: +
|
|
- cell [ref=e8066]:
|
|
- code
|
|
- 'row "226 + **Why this priority**: The current contradiction is most damaging when detail and compact surfaces disagree." [ref=e8067]':
|
|
- cell [ref=e8068]
|
|
- cell "226" [ref=e8069]: "226"
|
|
- cell [ref=e8070]
|
|
- cell "+" [ref=e8071]:
|
|
- generic [ref=e8072]: +
|
|
- 'cell "**Why this priority**: The current contradiction is most damaging when detail and compact surfaces disagree." [ref=e8073]':
|
|
- code [ref=e8074]: "**Why this priority**: The current contradiction is most damaging when detail and compact surfaces disagree."
|
|
- row "227 +" [ref=e8075]:
|
|
- cell [ref=e8076]
|
|
- cell "227" [ref=e8077]: "227"
|
|
- cell [ref=e8078]
|
|
- cell "+" [ref=e8079]:
|
|
- generic [ref=e8080]: +
|
|
- cell [ref=e8081]:
|
|
- code
|
|
- 'row "228 + **Independent Test**: Open canonical detail for fresh, stale, and reconciled runs and verify that lifecycle banners, queue guidance, and top summary agree with the generic monitoring truth." [ref=e8082]':
|
|
- cell [ref=e8083]
|
|
- cell "228" [ref=e8084]: "228"
|
|
- cell [ref=e8085]
|
|
- cell "+" [ref=e8086]:
|
|
- generic [ref=e8087]: +
|
|
- 'cell "**Independent Test**: Open canonical detail for fresh, stale, and reconciled runs and verify that lifecycle banners, queue guidance, and top summary agree with the generic monitoring truth." [ref=e8088]':
|
|
- code [ref=e8089]: "**Independent Test**: Open canonical detail for fresh, stale, and reconciled runs and verify that lifecycle banners, queue guidance, and top summary agree with the generic monitoring truth."
|
|
- row "229 +" [ref=e8090]:
|
|
- cell [ref=e8091]
|
|
- cell "229" [ref=e8092]: "229"
|
|
- cell [ref=e8093]
|
|
- cell "+" [ref=e8094]:
|
|
- generic [ref=e8095]: +
|
|
- cell [ref=e8096]:
|
|
- code
|
|
- row "230 + **Acceptance Scenarios**:" [ref=e8097]:
|
|
- cell [ref=e8098]
|
|
- cell "230" [ref=e8099]: "230"
|
|
- cell [ref=e8100]
|
|
- cell "+" [ref=e8101]:
|
|
- generic [ref=e8102]: +
|
|
- cell "**Acceptance Scenarios**:" [ref=e8103]:
|
|
- code [ref=e8104]: "**Acceptance Scenarios**:"
|
|
- row "231 +" [ref=e8105]:
|
|
- cell [ref=e8106]
|
|
- cell "231" [ref=e8107]: "231"
|
|
- cell [ref=e8108]
|
|
- cell "+" [ref=e8109]:
|
|
- generic [ref=e8110]: +
|
|
- cell [ref=e8111]:
|
|
- code
|
|
- row "232 + 1. **Given** a stale queued or stale running run, **When** the detail page opens, **Then** the top summary explains that the run is past its lifecycle window before deeper diagnostics render." [ref=e8112]:
|
|
- cell [ref=e8113]
|
|
- cell "232" [ref=e8114]: "232"
|
|
- cell [ref=e8115]
|
|
- cell "+" [ref=e8116]:
|
|
- generic [ref=e8117]: +
|
|
- cell "1. **Given** a stale queued or stale running run, **When** the detail page opens, **Then** the top summary explains that the run is past its lifecycle window before deeper diagnostics render." [ref=e8118]:
|
|
- code [ref=e8119]: 1. **Given** a stale queued or stale running run, **When** the detail page opens, **Then** the top summary explains that the run is past its lifecycle window before deeper diagnostics render.
|
|
- row "233 + 2. **Given** a reconciled terminal run, **When** the detail page opens, **Then** it preserves the existing reconciled truth and does not regress to ordinary active-work guidance." [ref=e8120]:
|
|
- cell [ref=e8121]
|
|
- cell "233" [ref=e8122]: "233"
|
|
- cell [ref=e8123]
|
|
- cell "+" [ref=e8124]:
|
|
- generic [ref=e8125]: +
|
|
- cell "2. **Given** a reconciled terminal run, **When** the detail page opens, **Then** it preserves the existing reconciled truth and does not regress to ordinary active-work guidance." [ref=e8126]:
|
|
- code [ref=e8127]: 2. **Given** a reconciled terminal run, **When** the detail page opens, **Then** it preserves the existing reconciled truth and does not regress to ordinary active-work guidance.
|
|
- row "234 +" [ref=e8128]:
|
|
- cell [ref=e8129]
|
|
- cell "234" [ref=e8130]: "234"
|
|
- cell [ref=e8131]
|
|
- cell "+" [ref=e8132]:
|
|
- generic [ref=e8133]: +
|
|
- cell [ref=e8134]:
|
|
- code
|
|
- 'row "235 + ### User Story 3 - Keep proof-backed reconciliation separate from generic queue truth (Priority: P2)" [ref=e8135]':
|
|
- cell [ref=e8136]
|
|
- cell "235" [ref=e8137]: "235"
|
|
- cell [ref=e8138]
|
|
- cell "+" [ref=e8139]:
|
|
- generic [ref=e8140]: +
|
|
- 'cell "### User Story 3 - Keep proof-backed reconciliation separate from generic queue truth (Priority: P2)" [ref=e8141]':
|
|
- code [ref=e8142]: "### User Story 3 - Keep proof-backed reconciliation separate from generic queue truth (Priority: P2)"
|
|
- row "236 +" [ref=e8143]:
|
|
- cell [ref=e8144]
|
|
- cell "236" [ref=e8145]: "236"
|
|
- cell [ref=e8146]
|
|
- cell "+" [ref=e8147]:
|
|
- generic [ref=e8148]: +
|
|
- cell [ref=e8149]:
|
|
- code
|
|
- row "237 + As a product owner, I need generic queue truth to stay separate from domain-success or adapter reconciliation so that stale monitoring copy does not silently become a business-completion engine." [ref=e8150]:
|
|
- cell [ref=e8151]
|
|
- cell "237" [ref=e8152]: "237"
|
|
- cell [ref=e8153]
|
|
- cell "+" [ref=e8154]:
|
|
- generic [ref=e8155]: +
|
|
- cell "As a product owner, I need generic queue truth to stay separate from domain-success or adapter reconciliation so that stale monitoring copy does not silently become a business-completion engine." [ref=e8156]:
|
|
- code [ref=e8157]: As a product owner, I need generic queue truth to stay separate from domain-success or adapter reconciliation so that stale monitoring copy does not silently become a business-completion engine.
|
|
- row "238 +" [ref=e8158]:
|
|
- cell [ref=e8159]
|
|
- cell "238" [ref=e8160]: "238"
|
|
- cell [ref=e8161]
|
|
- cell "+" [ref=e8162]:
|
|
- generic [ref=e8163]: +
|
|
- cell [ref=e8164]:
|
|
- code
|
|
- 'row "239 + **Why this priority**: The slice must stay narrow and avoid speculative framework growth." [ref=e8165]':
|
|
- cell [ref=e8166]
|
|
- cell "239" [ref=e8167]: "239"
|
|
- cell [ref=e8168]
|
|
- cell "+" [ref=e8169]:
|
|
- generic [ref=e8170]: +
|
|
- 'cell "**Why this priority**: The slice must stay narrow and avoid speculative framework growth." [ref=e8171]':
|
|
- code [ref=e8172]: "**Why this priority**: The slice must stay narrow and avoid speculative framework growth."
|
|
- row "240 +" [ref=e8173]:
|
|
- cell [ref=e8174]
|
|
- cell "240" [ref=e8175]: "240"
|
|
- cell [ref=e8176]
|
|
- cell "+" [ref=e8177]:
|
|
- generic [ref=e8178]: +
|
|
- cell [ref=e8179]:
|
|
- code
|
|
- 'row "241 + **Independent Test**: Compare a stale generic run and an adapter-reconciled run, then verify that generic stale wording remains cautious while existing reconciled evidence paths still drive terminal truth where already implemented." [ref=e8180]':
|
|
- cell [ref=e8181]
|
|
- cell "241" [ref=e8182]: "241"
|
|
- cell [ref=e8183]
|
|
- cell "+" [ref=e8184]:
|
|
- generic [ref=e8185]: +
|
|
- 'cell "**Independent Test**: Compare a stale generic run and an adapter-reconciled run, then verify that generic stale wording remains cautious while existing reconciled evidence paths still drive terminal truth where already implemented." [ref=e8186]':
|
|
- code [ref=e8187]: "**Independent Test**: Compare a stale generic run and an adapter-reconciled run, then verify that generic stale wording remains cautious while existing reconciled evidence paths still drive terminal truth where already implemented."
|
|
- row "242 +" [ref=e8188]:
|
|
- cell [ref=e8189]
|
|
- cell "242" [ref=e8190]: "242"
|
|
- cell [ref=e8191]
|
|
- cell "+" [ref=e8192]:
|
|
- generic [ref=e8193]: +
|
|
- cell [ref=e8194]:
|
|
- code
|
|
- row "243 + **Acceptance Scenarios**:" [ref=e8195]:
|
|
- cell [ref=e8196]
|
|
- cell "243" [ref=e8197]: "243"
|
|
- cell [ref=e8198]
|
|
- cell "+" [ref=e8199]:
|
|
- generic [ref=e8200]: +
|
|
- cell "**Acceptance Scenarios**:" [ref=e8201]:
|
|
- code [ref=e8202]: "**Acceptance Scenarios**:"
|
|
- row "244 +" [ref=e8203]:
|
|
- cell [ref=e8204]
|
|
- cell "244" [ref=e8205]: "244"
|
|
- cell [ref=e8206]
|
|
- cell "+" [ref=e8207]:
|
|
- generic [ref=e8208]: +
|
|
- cell [ref=e8209]:
|
|
- code
|
|
- 'row "245 + 1. **Given** a stale active run without proof-backed queue legitimacy evidence, **When** the UI renders it, **Then** the wording stays at `past lifecycle window` or equivalent cautious language and does not claim orphaned or domain-complete truth." [ref=e8210]':
|
|
- cell [ref=e8211]
|
|
- cell "245" [ref=e8212]: "245"
|
|
- cell [ref=e8213]
|
|
- cell "+" [ref=e8214]:
|
|
- generic [ref=e8215]: +
|
|
- 'cell "1. **Given** a stale active run without proof-backed queue legitimacy evidence, **When** the UI renders it, **Then** the wording stays at `past lifecycle window` or equivalent cautious language and does not claim orphaned or domain-complete truth." [ref=e8216]':
|
|
- code [ref=e8217]: "1. **Given** a stale active run without proof-backed queue legitimacy evidence, **When** the UI renders it, **Then** the wording stays at `past lifecycle window` or equivalent cautious language and does not claim orphaned or domain-complete truth."
|
|
- row "246 + 2. **Given** a run already completed through scheduled or adapter reconciliation, **When** the UI renders it, **Then** the existing reconciled terminal semantics remain intact and are not rewritten as generic queue waiting." [ref=e8218]:
|
|
- cell [ref=e8219]
|
|
- cell "246" [ref=e8220]: "246"
|
|
- cell [ref=e8221]
|
|
- cell "+" [ref=e8222]:
|
|
- generic [ref=e8223]: +
|
|
- cell "2. **Given** a run already completed through scheduled or adapter reconciliation, **When** the UI renders it, **Then** the existing reconciled terminal semantics remain intact and are not rewritten as generic queue waiting." [ref=e8224]:
|
|
- code [ref=e8225]: 2. **Given** a run already completed through scheduled or adapter reconciliation, **When** the UI renders it, **Then** the existing reconciled terminal semantics remain intact and are not rewritten as generic queue waiting.
|
|
- row "247 +" [ref=e8226]:
|
|
- cell [ref=e8227]
|
|
- cell "247" [ref=e8228]: "247"
|
|
- cell [ref=e8229]
|
|
- cell "+" [ref=e8230]:
|
|
- generic [ref=e8231]: +
|
|
- cell [ref=e8232]:
|
|
- code
|
|
- 'row "248 + ### Edge Cases" [ref=e8233]':
|
|
- cell [ref=e8234]
|
|
- cell "248" [ref=e8235]: "248"
|
|
- cell [ref=e8236]
|
|
- cell "+" [ref=e8237]:
|
|
- generic [ref=e8238]: +
|
|
- cell "### Edge Cases" [ref=e8239]:
|
|
- code [ref=e8240]: "### Edge Cases"
|
|
- row "249 +" [ref=e8241]:
|
|
- cell [ref=e8242]
|
|
- cell "249" [ref=e8243]: "249"
|
|
- cell [ref=e8244]
|
|
- cell "+" [ref=e8245]:
|
|
- generic [ref=e8246]: +
|
|
- cell [ref=e8247]:
|
|
- code
|
|
- row "250 + - A queued run is stale but has no trustworthy worker correlation or job identifier." [ref=e8248]:
|
|
- cell [ref=e8249]
|
|
- cell "250" [ref=e8250]: "250"
|
|
- cell [ref=e8251]
|
|
- cell "+" [ref=e8252]:
|
|
- generic [ref=e8253]: +
|
|
- cell "- A queued run is stale but has no trustworthy worker correlation or job identifier." [ref=e8254]:
|
|
- code [ref=e8255]: "- A queued run is stale but has no trustworthy worker correlation or job identifier."
|
|
- row "251 + - A running run has determinate counts but is still past the lifecycle window." [ref=e8256]:
|
|
- cell [ref=e8257]
|
|
- cell "251" [ref=e8258]: "251"
|
|
- cell [ref=e8259]
|
|
- cell "+" [ref=e8260]:
|
|
- generic [ref=e8261]: +
|
|
- cell "- A running run has determinate counts but is still past the lifecycle window." [ref=e8262]:
|
|
- code [ref=e8263]: "- A running run has determinate counts but is still past the lifecycle window."
|
|
- row "252 + - A run is unsupported by current lifecycle policy and therefore should not receive stale overclaiming." [ref=e8264]:
|
|
- cell [ref=e8265]
|
|
- cell "252" [ref=e8266]: "252"
|
|
- cell [ref=e8267]
|
|
- cell "+" [ref=e8268]:
|
|
- generic [ref=e8269]: +
|
|
- cell "- A run is unsupported by current lifecycle policy and therefore should not receive stale overclaiming." [ref=e8270]:
|
|
- code [ref=e8271]: "- A run is unsupported by current lifecycle policy and therefore should not receive stale overclaiming."
|
|
- 'row "253 + - A run became terminal through `scheduled_reconciler` or `adapter_reconciler`." [ref=e8272]':
|
|
- cell [ref=e8273]
|
|
- cell "253" [ref=e8274]: "253"
|
|
- cell [ref=e8275]
|
|
- cell "+" [ref=e8276]:
|
|
- generic [ref=e8277]: +
|
|
- 'cell "- A run became terminal through `scheduled_reconciler` or `adapter_reconciler`." [ref=e8278]':
|
|
- code [ref=e8279]: "- A run became terminal through `scheduled_reconciler` or `adapter_reconciler`."
|
|
- row "254 + - A system-initiated run has no human initiator but still needs honest lifecycle wording." [ref=e8280]:
|
|
- cell [ref=e8281]
|
|
- cell "254" [ref=e8282]: "254"
|
|
- cell [ref=e8283]
|
|
- cell "+" [ref=e8284]:
|
|
- generic [ref=e8285]: +
|
|
- cell "- A system-initiated run has no human initiator but still needs honest lifecycle wording." [ref=e8286]:
|
|
- code [ref=e8287]: "- A system-initiated run has no human initiator but still needs honest lifecycle wording."
|
|
- row "255 + - Existing phase or composite progress hints exist in context and must not override stale lifecycle truth with false reassurance." [ref=e8288]:
|
|
- cell [ref=e8289]
|
|
- cell "255" [ref=e8290]: "255"
|
|
- cell [ref=e8291]
|
|
- cell "+" [ref=e8292]:
|
|
- generic [ref=e8293]: +
|
|
- cell "- Existing phase or composite progress hints exist in context and must not override stale lifecycle truth with false reassurance." [ref=e8294]:
|
|
- code [ref=e8295]: "- Existing phase or composite progress hints exist in context and must not override stale lifecycle truth with false reassurance."
|
|
- row "256 +" [ref=e8296]:
|
|
- cell [ref=e8297]
|
|
- cell "256" [ref=e8298]: "256"
|
|
- cell [ref=e8299]
|
|
- cell "+" [ref=e8300]:
|
|
- generic [ref=e8301]: +
|
|
- cell [ref=e8302]:
|
|
- code
|
|
- 'row "257 + ## Requirements *(mandatory)*" [ref=e8303]':
|
|
- cell [ref=e8304]
|
|
- cell "257" [ref=e8305]: "257"
|
|
- cell [ref=e8306]
|
|
- cell "+" [ref=e8307]:
|
|
- generic [ref=e8308]: +
|
|
- cell "## Requirements *(mandatory)*" [ref=e8309]:
|
|
- code [ref=e8310]: "## Requirements *(mandatory)*"
|
|
- row "258 +" [ref=e8311]:
|
|
- cell [ref=e8312]
|
|
- cell "258" [ref=e8313]: "258"
|
|
- cell [ref=e8314]
|
|
- cell "+" [ref=e8315]:
|
|
- generic [ref=e8316]: +
|
|
- cell [ref=e8317]:
|
|
- code
|
|
- 'row "259 + - **FR-358-001**: The system MUST keep `OperationRun.status` and `OperationRun.outcome` as the only persisted lifecycle fields for this slice." [ref=e8318]':
|
|
- cell [ref=e8319]
|
|
- cell "259" [ref=e8320]: "259"
|
|
- cell [ref=e8321]
|
|
- cell "+" [ref=e8322]:
|
|
- generic [ref=e8323]: +
|
|
- 'cell "- **FR-358-001**: The system MUST keep `OperationRun.status` and `OperationRun.outcome` as the only persisted lifecycle fields for this slice." [ref=e8324]':
|
|
- code [ref=e8325]: "- **FR-358-001**: The system MUST keep `OperationRun.status` and `OperationRun.outcome` as the only persisted lifecycle fields for this slice."
|
|
- 'row "260 + - **FR-358-002**: Generic queue truth MUST be derived from current lifecycle, freshness, and trusted context only." [ref=e8326]':
|
|
- cell [ref=e8327]
|
|
- cell "260" [ref=e8328]: "260"
|
|
- cell [ref=e8329]
|
|
- cell "+" [ref=e8330]:
|
|
- generic [ref=e8331]: +
|
|
- 'cell "- **FR-358-002**: Generic queue truth MUST be derived from current lifecycle, freshness, and trusted context only." [ref=e8332]':
|
|
- code [ref=e8333]: "- **FR-358-002**: Generic queue truth MUST be derived from current lifecycle, freshness, and trusted context only."
|
|
- 'row "261 + - **FR-358-003**: A run that is `likely_stale` by current lifecycle policy MUST NOT render ordinary queue or ordinary progress reassurance as visible stale-active guidance on shell, list, or canonical detail surfaces, whether that reassurance appears alone or alongside a stale label, banner, or attention cue." [ref=e8334]':
|
|
- cell [ref=e8335]
|
|
- cell "261" [ref=e8336]: "261"
|
|
- cell [ref=e8337]
|
|
- cell "+" [ref=e8338]:
|
|
- generic [ref=e8339]: +
|
|
- 'cell "- **FR-358-003**: A run that is `likely_stale` by current lifecycle policy MUST NOT render ordinary queue or ordinary progress reassurance as visible stale-active guidance on shell, list, or canonical detail surfaces, whether that reassurance appears alone or alongside a stale label, banner, or attention cue." [ref=e8340]':
|
|
- code [ref=e8341]: "- **FR-358-003**: A run that is `likely_stale` by current lifecycle policy MUST NOT render ordinary queue or ordinary progress reassurance as visible stale-active guidance on shell, list, or canonical detail surfaces, whether that reassurance appears alone or alongside a stale label, banner, or attention cue."
|
|
- 'row "262 + - **FR-358-004**: Fresh queued and fresh running runs MUST remain visibly calm and MUST NOT inherit stale emphasis." [ref=e8342]':
|
|
- cell [ref=e8343]
|
|
- cell "262" [ref=e8344]: "262"
|
|
- cell [ref=e8345]
|
|
- cell "+" [ref=e8346]:
|
|
- generic [ref=e8347]: +
|
|
- 'cell "- **FR-358-004**: Fresh queued and fresh running runs MUST remain visibly calm and MUST NOT inherit stale emphasis." [ref=e8348]':
|
|
- code [ref=e8349]: "- **FR-358-004**: Fresh queued and fresh running runs MUST remain visibly calm and MUST NOT inherit stale emphasis."
|
|
- 'row "263 + - **FR-358-005**: Existing scheduled or adapter reconciliation paths MUST remain authoritative for terminal truth where they already exist." [ref=e8350]':
|
|
- cell [ref=e8351]
|
|
- cell "263" [ref=e8352]: "263"
|
|
- cell [ref=e8353]
|
|
- cell "+" [ref=e8354]:
|
|
- generic [ref=e8355]: +
|
|
- 'cell "- **FR-358-005**: Existing scheduled or adapter reconciliation paths MUST remain authoritative for terminal truth where they already exist." [ref=e8356]':
|
|
- code [ref=e8357]: "- **FR-358-005**: Existing scheduled or adapter reconciliation paths MUST remain authoritative for terminal truth where they already exist."
|
|
- 'row "264 + - **FR-358-006**: This feature MUST NOT introduce a new queue-orphaned, reconciled, or business-success persistence family." [ref=e8358]':
|
|
- cell [ref=e8359]
|
|
- cell "264" [ref=e8360]: "264"
|
|
- cell [ref=e8361]
|
|
- cell "+" [ref=e8362]:
|
|
- generic [ref=e8363]: +
|
|
- 'cell "- **FR-358-006**: This feature MUST NOT introduce a new queue-orphaned, reconciled, or business-success persistence family." [ref=e8364]':
|
|
- code [ref=e8365]: "- **FR-358-006**: This feature MUST NOT introduce a new queue-orphaned, reconciled, or business-success persistence family."
|
|
- 'row "265 + - **FR-358-007**: This feature MUST NOT claim hard orphaned queue state unless current repo truth already provides trustworthy legitimacy evidence for that specific run." [ref=e8366]':
|
|
- cell [ref=e8367]
|
|
- cell "265" [ref=e8368]: "265"
|
|
- cell [ref=e8369]
|
|
- cell "+" [ref=e8370]:
|
|
- generic [ref=e8371]: +
|
|
- 'cell "- **FR-358-007**: This feature MUST NOT claim hard orphaned queue state unless current repo truth already provides trustworthy legitimacy evidence for that specific run." [ref=e8372]':
|
|
- code [ref=e8373]: "- **FR-358-007**: This feature MUST NOT claim hard orphaned queue state unless current repo truth already provides trustworthy legitimacy evidence for that specific run."
|
|
- 'row "266 + - **FR-358-008**: Existing `OperationRun` links, queued toasts, browser events, and terminal notification paths MUST remain unchanged." [ref=e8374]':
|
|
- cell [ref=e8375]
|
|
- cell "266" [ref=e8376]: "266"
|
|
- cell [ref=e8377]
|
|
- cell "+" [ref=e8378]:
|
|
- generic [ref=e8379]: +
|
|
- 'cell "- **FR-358-008**: Existing `OperationRun` links, queued toasts, browser events, and terminal notification paths MUST remain unchanged." [ref=e8380]':
|
|
- code [ref=e8381]: "- **FR-358-008**: Existing `OperationRun` links, queued toasts, browser events, and terminal notification paths MUST remain unchanged."
|
|
- 'row "267 + - **FR-358-009**: Existing workspace and tenant authorization boundaries MUST remain unchanged." [ref=e8382]':
|
|
- cell [ref=e8383]
|
|
- cell "267" [ref=e8384]: "267"
|
|
- cell [ref=e8385]
|
|
- cell "+" [ref=e8386]:
|
|
- generic [ref=e8387]: +
|
|
- 'cell "- **FR-358-009**: Existing workspace and tenant authorization boundaries MUST remain unchanged." [ref=e8388]':
|
|
- code [ref=e8389]: "- **FR-358-009**: Existing workspace and tenant authorization boundaries MUST remain unchanged."
|
|
- 'row "268 + - **FR-358-010**: The canonical monitoring list, shell hint, and canonical run detail MUST use one aligned generic lifecycle vocabulary for fresh queued/running work, stale active work, and reconciled terminal work." [ref=e8390]':
|
|
- cell [ref=e8391]
|
|
- cell "268" [ref=e8392]: "268"
|
|
- cell [ref=e8393]
|
|
- cell "+" [ref=e8394]:
|
|
- generic [ref=e8395]: +
|
|
- 'cell "- **FR-358-010**: The canonical monitoring list, shell hint, and canonical run detail MUST use one aligned generic lifecycle vocabulary for fresh queued/running work, stale active work, and reconciled terminal work." [ref=e8396]':
|
|
- code [ref=e8397]: "- **FR-358-010**: The canonical monitoring list, shell hint, and canonical run detail MUST use one aligned generic lifecycle vocabulary for fresh queued/running work, stale active work, and reconciled terminal work."
|
|
- 'row "269 + - **FR-358-011**: The implementation MUST stay within current helper ownership unless one small local helper is required to avoid unreadable presenter logic." [ref=e8398]':
|
|
- cell [ref=e8399]
|
|
- cell "269" [ref=e8400]: "269"
|
|
- cell [ref=e8401]
|
|
- cell "+" [ref=e8402]:
|
|
- generic [ref=e8403]: +
|
|
- 'cell "- **FR-358-011**: The implementation MUST stay within current helper ownership unless one small local helper is required to avoid unreadable presenter logic." [ref=e8404]':
|
|
- code [ref=e8405]: "- **FR-358-011**: The implementation MUST stay within current helper ownership unless one small local helper is required to avoid unreadable presenter logic."
|
|
- 'row "270 + - **FR-358-012**: Focused unit and feature coverage MUST prove both positive and negative cases for fresh vs stale queue truth." [ref=e8406]':
|
|
- cell [ref=e8407]
|
|
- cell "270" [ref=e8408]: "270"
|
|
- cell [ref=e8409]
|
|
- cell "+" [ref=e8410]:
|
|
- generic [ref=e8411]: +
|
|
- 'cell "- **FR-358-012**: Focused unit and feature coverage MUST prove both positive and negative cases for fresh vs stale queue truth." [ref=e8412]':
|
|
- code [ref=e8413]: "- **FR-358-012**: Focused unit and feature coverage MUST prove both positive and negative cases for fresh vs stale queue truth."
|
|
- row "271 +" [ref=e8414]:
|
|
- cell [ref=e8415]
|
|
- cell "271" [ref=e8416]: "271"
|
|
- cell [ref=e8417]
|
|
- cell "+" [ref=e8418]:
|
|
- generic [ref=e8419]: +
|
|
- cell [ref=e8420]:
|
|
- code
|
|
- 'row "272 + ## Success Criteria *(mandatory)*" [ref=e8421]':
|
|
- cell [ref=e8422]
|
|
- cell "272" [ref=e8423]: "272"
|
|
- cell [ref=e8424]
|
|
- cell "+" [ref=e8425]:
|
|
- generic [ref=e8426]: +
|
|
- cell "## Success Criteria *(mandatory)*" [ref=e8427]:
|
|
- code [ref=e8428]: "## Success Criteria *(mandatory)*"
|
|
- row "273 +" [ref=e8429]:
|
|
- cell [ref=e8430]
|
|
- cell "273" [ref=e8431]: "273"
|
|
- cell [ref=e8432]
|
|
- cell "+" [ref=e8433]:
|
|
- generic [ref=e8434]: +
|
|
- cell [ref=e8435]:
|
|
- code
|
|
- 'row "274 + - **SC-358-001**: In focused regression coverage, stale queued/running runs no longer mix stale attention with ordinary queue/progress reassurance on the affected surfaces." [ref=e8436]':
|
|
- cell [ref=e8437]
|
|
- cell "274" [ref=e8438]: "274"
|
|
- cell [ref=e8439]
|
|
- cell "+" [ref=e8440]:
|
|
- generic [ref=e8441]: +
|
|
- 'cell "- **SC-358-001**: In focused regression coverage, stale queued/running runs no longer mix stale attention with ordinary queue/progress reassurance on the affected surfaces." [ref=e8442]':
|
|
- code [ref=e8443]: "- **SC-358-001**: In focused regression coverage, stale queued/running runs no longer mix stale attention with ordinary queue/progress reassurance on the affected surfaces."
|
|
- 'row "275 + - **SC-358-002**: In focused regression coverage, fresh queued/running runs remain calm and do not falsely escalate to stale." [ref=e8444]':
|
|
- cell [ref=e8445]
|
|
- cell "275" [ref=e8446]: "275"
|
|
- cell [ref=e8447]
|
|
- cell "+" [ref=e8448]:
|
|
- generic [ref=e8449]: +
|
|
- 'cell "- **SC-358-002**: In focused regression coverage, fresh queued/running runs remain calm and do not falsely escalate to stale." [ref=e8450]':
|
|
- code [ref=e8451]: "- **SC-358-002**: In focused regression coverage, fresh queued/running runs remain calm and do not falsely escalate to stale."
|
|
- 'row "276 + - **SC-358-003**: Existing reconciled terminal behavior remains intact for runs already completed by scheduled or adapter truth." [ref=e8452]':
|
|
- cell [ref=e8453]
|
|
- cell "276" [ref=e8454]: "276"
|
|
- cell [ref=e8455]
|
|
- cell "+" [ref=e8456]:
|
|
- generic [ref=e8457]: +
|
|
- 'cell "- **SC-358-003**: Existing reconciled terminal behavior remains intact for runs already completed by scheduled or adapter truth." [ref=e8458]':
|
|
- code [ref=e8459]: "- **SC-358-003**: Existing reconciled terminal behavior remains intact for runs already completed by scheduled or adapter truth."
|
|
- 'row "277 + - **SC-358-004**: No new persisted lifecycle field, queue artifact, or adapter framework is introduced." [ref=e8460]':
|
|
- cell [ref=e8461]
|
|
- cell "277" [ref=e8462]: "277"
|
|
- cell [ref=e8463]
|
|
- cell "+" [ref=e8464]:
|
|
- generic [ref=e8465]: +
|
|
- 'cell "- **SC-358-004**: No new persisted lifecycle field, queue artifact, or adapter framework is introduced." [ref=e8466]':
|
|
- code [ref=e8467]: "- **SC-358-004**: No new persisted lifecycle field, queue artifact, or adapter framework is introduced."
|
|
- row "278 +" [ref=e8468]:
|
|
- cell [ref=e8469]
|
|
- cell "278" [ref=e8470]: "278"
|
|
- cell [ref=e8471]
|
|
- cell "+" [ref=e8472]:
|
|
- generic [ref=e8473]: +
|
|
- cell [ref=e8474]:
|
|
- code
|
|
- 'row "279 + ## Assumptions" [ref=e8475]':
|
|
- cell [ref=e8476]
|
|
- cell "279" [ref=e8477]: "279"
|
|
- cell [ref=e8478]
|
|
- cell "+" [ref=e8479]:
|
|
- generic [ref=e8480]: +
|
|
- cell "## Assumptions" [ref=e8481]:
|
|
- code [ref=e8482]: "## Assumptions"
|
|
- row "280 +" [ref=e8483]:
|
|
- cell [ref=e8484]
|
|
- cell "280" [ref=e8485]: "280"
|
|
- cell [ref=e8486]
|
|
- cell "+" [ref=e8487]:
|
|
- generic [ref=e8488]: +
|
|
- cell [ref=e8489]:
|
|
- code
|
|
- row "281 + - The current contradiction is a derived UX-truth problem, not a missing persistence problem." [ref=e8490]:
|
|
- cell [ref=e8491]
|
|
- cell "281" [ref=e8492]: "281"
|
|
- cell [ref=e8493]
|
|
- cell "+" [ref=e8494]:
|
|
- generic [ref=e8495]: +
|
|
- cell "- The current contradiction is a derived UX-truth problem, not a missing persistence problem." [ref=e8496]:
|
|
- code [ref=e8497]: "- The current contradiction is a derived UX-truth problem, not a missing persistence problem."
|
|
- row "282 + - Existing lifecycle policy thresholds remain valid for this slice." [ref=e8498]:
|
|
- cell [ref=e8499]
|
|
- cell "282" [ref=e8500]: "282"
|
|
- cell [ref=e8501]
|
|
- cell "+" [ref=e8502]:
|
|
- generic [ref=e8503]: +
|
|
- cell "- Existing lifecycle policy thresholds remain valid for this slice." [ref=e8504]:
|
|
- code [ref=e8505]: "- Existing lifecycle policy thresholds remain valid for this slice."
|
|
- row "283 + - Existing generic and adapter reconciliation commands remain out of scope except as historical context the UI must respect." [ref=e8506]:
|
|
- cell [ref=e8507]
|
|
- cell "283" [ref=e8508]: "283"
|
|
- cell [ref=e8509]
|
|
- cell "+" [ref=e8510]:
|
|
- generic [ref=e8511]: +
|
|
- cell "- Existing generic and adapter reconciliation commands remain out of scope except as historical context the UI must respect." [ref=e8512]:
|
|
- code [ref=e8513]: "- Existing generic and adapter reconciliation commands remain out of scope except as historical context the UI must respect."
|
|
- row "284 +" [ref=e8514]:
|
|
- cell [ref=e8515]
|
|
- cell "284" [ref=e8516]: "284"
|
|
- cell [ref=e8517]
|
|
- cell "+" [ref=e8518]:
|
|
- generic [ref=e8519]: +
|
|
- cell [ref=e8520]:
|
|
- code
|
|
- 'row "285 + ## Risks" [ref=e8521]':
|
|
- cell [ref=e8522]
|
|
- cell "285" [ref=e8523]: "285"
|
|
- cell [ref=e8524]
|
|
- cell "+" [ref=e8525]:
|
|
- generic [ref=e8526]: +
|
|
- cell "## Risks" [ref=e8527]:
|
|
- code [ref=e8528]: "## Risks"
|
|
- row "286 +" [ref=e8529]:
|
|
- cell [ref=e8530]
|
|
- cell "286" [ref=e8531]: "286"
|
|
- cell [ref=e8532]
|
|
- cell "+" [ref=e8533]:
|
|
- generic [ref=e8534]: +
|
|
- cell [ref=e8535]:
|
|
- code
|
|
- 'row "287 + - **Over-correction**: the slice could make all active work sound problematic. Mitigation: explicit fresh vs stale negative assertions." [ref=e8536]':
|
|
- cell [ref=e8537]
|
|
- cell "287" [ref=e8538]: "287"
|
|
- cell [ref=e8539]
|
|
- cell "+" [ref=e8540]:
|
|
- generic [ref=e8541]: +
|
|
- 'cell "- **Over-correction**: the slice could make all active work sound problematic. Mitigation: explicit fresh vs stale negative assertions." [ref=e8542]':
|
|
- code [ref=e8543]: "- **Over-correction**: the slice could make all active work sound problematic. Mitigation: explicit fresh vs stale negative assertions."
|
|
- 'row "288 + - **Framework creep**: the slice could drift into a new generic queue-health subsystem. Mitigation: no new persistence, no new adapter registry, and explicit out-of-scope boundaries." [ref=e8544]':
|
|
- cell [ref=e8545]
|
|
- cell "288" [ref=e8546]: "288"
|
|
- cell [ref=e8547]
|
|
- cell "+" [ref=e8548]:
|
|
- generic [ref=e8549]: +
|
|
- 'cell "- **Framework creep**: the slice could drift into a new generic queue-health subsystem. Mitigation: no new persistence, no new adapter registry, and explicit out-of-scope boundaries." [ref=e8550]':
|
|
- code [ref=e8551]: "- **Framework creep**: the slice could drift into a new generic queue-health subsystem. Mitigation: no new persistence, no new adapter registry, and explicit out-of-scope boundaries."
|
|
- 'row "289 + - **Detail/list drift survives**: one renderer could remain on old wording. Mitigation: focused list + detail + shell coverage in the same package." [ref=e8552]':
|
|
- cell [ref=e8553]
|
|
- cell "289" [ref=e8554]: "289"
|
|
- cell [ref=e8555]
|
|
- cell "+" [ref=e8556]:
|
|
- generic [ref=e8557]: +
|
|
- 'cell "- **Detail/list drift survives**: one renderer could remain on old wording. Mitigation: focused list + detail + shell coverage in the same package." [ref=e8558]':
|
|
- code [ref=e8559]: "- **Detail/list drift survives**: one renderer could remain on old wording. Mitigation: focused list + detail + shell coverage in the same package."
|
|
- row "290 +" [ref=e8560]:
|
|
- cell [ref=e8561]
|
|
- cell "290" [ref=e8562]: "290"
|
|
- cell [ref=e8563]
|
|
- cell "+" [ref=e8564]:
|
|
- generic [ref=e8565]: +
|
|
- cell [ref=e8566]:
|
|
- code
|
|
- 'row "291 + ## Out of Scope" [ref=e8567]':
|
|
- cell [ref=e8568]
|
|
- cell "291" [ref=e8569]: "291"
|
|
- cell [ref=e8570]
|
|
- cell "+" [ref=e8571]:
|
|
- generic [ref=e8572]: +
|
|
- cell "## Out of Scope" [ref=e8573]:
|
|
- code [ref=e8574]: "## Out of Scope"
|
|
- row "292 +" [ref=e8575]:
|
|
- cell [ref=e8576]
|
|
- cell "292" [ref=e8577]: "292"
|
|
- cell [ref=e8578]
|
|
- cell "+" [ref=e8579]:
|
|
- generic [ref=e8580]: +
|
|
- cell [ref=e8581]:
|
|
- code
|
|
- row "293 + - Queue worker health automation" [ref=e8582]:
|
|
- cell [ref=e8583]
|
|
- cell "293" [ref=e8584]: "293"
|
|
- cell [ref=e8585]
|
|
- cell "+" [ref=e8586]:
|
|
- generic [ref=e8587]: +
|
|
- cell "- Queue worker health automation" [ref=e8588]:
|
|
- code [ref=e8589]: "- Queue worker health automation"
|
|
- row "294 + - New scheduler, command, or job families" [ref=e8590]:
|
|
- cell [ref=e8591]
|
|
- cell "294" [ref=e8592]: "294"
|
|
- cell [ref=e8593]
|
|
- cell "+" [ref=e8594]:
|
|
- generic [ref=e8595]: +
|
|
- cell "- New scheduler, command, or job families" [ref=e8596]:
|
|
- code [ref=e8597]: "- New scheduler, command, or job families"
|
|
- 'row "295 + - New `OperationRun` statuses or outcomes" [ref=e8598]':
|
|
- cell [ref=e8599]
|
|
- cell "295" [ref=e8600]: "295"
|
|
- cell [ref=e8601]
|
|
- cell "+" [ref=e8602]:
|
|
- generic [ref=e8603]: +
|
|
- 'cell "- New `OperationRun` statuses or outcomes" [ref=e8604]':
|
|
- code [ref=e8605]: "- New `OperationRun` statuses or outcomes"
|
|
- row "296 + - Domain-success reconciliation for review, restore, backup, sync, or export runs" [ref=e8606]:
|
|
- cell [ref=e8607]
|
|
- cell "296" [ref=e8608]: "296"
|
|
- cell [ref=e8609]
|
|
- cell "+" [ref=e8610]:
|
|
- generic [ref=e8611]: +
|
|
- cell "- Domain-success reconciliation for review, restore, backup, sync, or export runs" [ref=e8612]:
|
|
- code [ref=e8613]: "- Domain-success reconciliation for review, restore, backup, sync, or export runs"
|
|
- row "297 + - Adapter framework expansion" [ref=e8614]:
|
|
- cell [ref=e8615]
|
|
- cell "297" [ref=e8616]: "297"
|
|
- cell [ref=e8617]
|
|
- cell "+" [ref=e8618]:
|
|
- generic [ref=e8619]: +
|
|
- cell "- Adapter framework expansion" [ref=e8620]:
|
|
- code [ref=e8621]: "- Adapter framework expansion"
|
|
- row "298 + - New Filament resources, routes, or destructive actions" [ref=e8622]:
|
|
- cell [ref=e8623]
|
|
- cell "298" [ref=e8624]: "298"
|
|
- cell [ref=e8625]
|
|
- cell "+" [ref=e8626]:
|
|
- generic [ref=e8627]: +
|
|
- cell "- New Filament resources, routes, or destructive actions" [ref=e8628]:
|
|
- code [ref=e8629]: "- New Filament resources, routes, or destructive actions"
|
|
- generic [ref=e8630]:
|
|
- 'heading "160 160 Änderungen: 160 Ergänzungen und 0 Löschungen specs/358-operationrun-queue-truth-foundation/tasks.md Normale Datei Datei anzeigen" [level=4] [ref=e8631]':
|
|
- generic [ref=e8632]:
|
|
- button [ref=e8633] [cursor=pointer]:
|
|
- img [ref=e8634]
|
|
- generic [ref=e8636]:
|
|
- text: "160"
|
|
- 'generic "160 Änderungen: 160 Ergänzungen und 0 Löschungen" [ref=e8637]'
|
|
- generic [ref=e8639]:
|
|
- link "specs/358-operationrun-queue-truth-foundation/tasks.md" [ref=e8640] [cursor=pointer]:
|
|
- /url: "#diff-778998a295ffde42d87399c953196b492df71792"
|
|
- button [ref=e8641] [cursor=pointer]:
|
|
- img [ref=e8642]
|
|
- generic [ref=e8645]: Normale Datei
|
|
- link "Datei anzeigen" [ref=e8647] [cursor=pointer]:
|
|
- /url: /ahmido/TenantAtlas/src/commit/03514b9e5b2addf53d5441f0fc122ccef0b51999/specs/358-operationrun-queue-truth-foundation/tasks.md
|
|
- table [ref=e8650]:
|
|
- rowgroup [ref=e8657]:
|
|
- row "@ -0,0 +1,160 @@" [ref=e8658]:
|
|
- cell [ref=e8659]
|
|
- cell [ref=e8660]
|
|
- cell [ref=e8661]
|
|
- cell "@ -0,0 +1,160 @@" [ref=e8662]:
|
|
- code [ref=e8663]: "@ -0,0 +1,160 @@"
|
|
- 'row "1 + # Tasks: OperationRun Queue Truth Foundation" [ref=e8664]':
|
|
- cell [ref=e8665]
|
|
- cell "1" [ref=e8666]: "1"
|
|
- cell [ref=e8667]
|
|
- cell "+" [ref=e8668]:
|
|
- generic [ref=e8669]: +
|
|
- 'cell "# Tasks: OperationRun Queue Truth Foundation" [ref=e8670]':
|
|
- code [ref=e8671]: "# Tasks: OperationRun Queue Truth Foundation"
|
|
- row "2 +" [ref=e8672]:
|
|
- cell [ref=e8673]
|
|
- cell "2" [ref=e8674]: "2"
|
|
- cell [ref=e8675]
|
|
- cell "+" [ref=e8676]:
|
|
- generic [ref=e8677]: +
|
|
- cell [ref=e8678]:
|
|
- code
|
|
- 'row "3 + **Input**: `specs/358-operationrun-queue-truth-foundation/spec.md`, `plan.md`, and `checklists/requirements.md`" [ref=e8679]':
|
|
- cell [ref=e8680]
|
|
- cell "3" [ref=e8681]: "3"
|
|
- cell [ref=e8682]
|
|
- cell "+" [ref=e8683]:
|
|
- generic [ref=e8684]: +
|
|
- 'cell "**Input**: `specs/358-operationrun-queue-truth-foundation/spec.md`, `plan.md`, and `checklists/requirements.md`" [ref=e8685]':
|
|
- code [ref=e8686]: "**Input**: `specs/358-operationrun-queue-truth-foundation/spec.md`, `plan.md`, and `checklists/requirements.md`"
|
|
- 'row "4 + **Prerequisites**: `spec.md` and `plan.md`" [ref=e8687]':
|
|
- cell [ref=e8688]
|
|
- cell "4" [ref=e8689]: "4"
|
|
- cell [ref=e8690]
|
|
- cell "+" [ref=e8691]:
|
|
- generic [ref=e8692]: +
|
|
- 'cell "**Prerequisites**: `spec.md` and `plan.md`" [ref=e8693]':
|
|
- code [ref=e8694]: "**Prerequisites**: `spec.md` and `plan.md`"
|
|
- 'row "5 + **Tests**: REQUIRED (Pest). Keep proof bounded to one unit family plus focused monitoring/detail feature tests." [ref=e8695]':
|
|
- cell [ref=e8696]
|
|
- cell "5" [ref=e8697]: "5"
|
|
- cell [ref=e8698]
|
|
- cell "+" [ref=e8699]:
|
|
- generic [ref=e8700]: +
|
|
- 'cell "**Tests**: REQUIRED (Pest). Keep proof bounded to one unit family plus focused monitoring/detail feature tests." [ref=e8701]':
|
|
- code [ref=e8702]: "**Tests**: REQUIRED (Pest). Keep proof bounded to one unit family plus focused monitoring/detail feature tests."
|
|
- 'row "6 + **Operations**: No new `OperationRun` type, no new queue family, no new notification path, no new reconciliation command, and no new persisted lifecycle state." [ref=e8703]':
|
|
- cell [ref=e8704]
|
|
- cell "6" [ref=e8705]: "6"
|
|
- cell [ref=e8706]
|
|
- cell "+" [ref=e8707]:
|
|
- generic [ref=e8708]: +
|
|
- 'cell "**Operations**: No new `OperationRun` type, no new queue family, no new notification path, no new reconciliation command, and no new persisted lifecycle state." [ref=e8709]':
|
|
- code [ref=e8710]: "**Operations**: No new `OperationRun` type, no new queue family, no new notification path, no new reconciliation command, and no new persisted lifecycle state."
|
|
- 'row "7 + **RBAC**: Reuse current workspace and managed-environment authorization rules; presentation must never reveal unauthorized runs." [ref=e8711]':
|
|
- cell [ref=e8712]
|
|
- cell "7" [ref=e8713]: "7"
|
|
- cell [ref=e8714]
|
|
- cell "+" [ref=e8715]:
|
|
- generic [ref=e8716]: +
|
|
- 'cell "**RBAC**: Reuse current workspace and managed-environment authorization rules; presentation must never reveal unauthorized runs." [ref=e8717]':
|
|
- code [ref=e8718]: "**RBAC**: Reuse current workspace and managed-environment authorization rules; presentation must never reveal unauthorized runs."
|
|
- 'row "8 + **Shared Pattern Reuse**: Reuse `OperationRunProgressContract`, `RunDurationInsights`, `OperationUxPresenter`, `OperationRunFreshnessState`, and existing monitoring renderers. Do not introduce a new adapter registry or queue-health framework." [ref=e8719]':
|
|
- cell [ref=e8720]
|
|
- cell "8" [ref=e8721]: "8"
|
|
- cell [ref=e8722]
|
|
- cell "+" [ref=e8723]:
|
|
- generic [ref=e8724]: +
|
|
- 'cell "**Shared Pattern Reuse**: Reuse `OperationRunProgressContract`, `RunDurationInsights`, `OperationUxPresenter`, `OperationRunFreshnessState`, and existing monitoring renderers. Do not introduce a new adapter registry or queue-health framework." [ref=e8725]':
|
|
- code [ref=e8726]: "**Shared Pattern Reuse**: Reuse `OperationRunProgressContract`, `RunDurationInsights`, `OperationUxPresenter`, `OperationRunFreshnessState`, and existing monitoring renderers. Do not introduce a new adapter registry or queue-health framework."
|
|
- 'row "9 + **Filament / Panel Guardrails**: Filament remains v5 on Livewire v4. Provider registration stays in `apps/platform/bootstrap/providers.php`. No new panel, route family, or asset strategy is allowed." [ref=e8727]':
|
|
- cell [ref=e8728]
|
|
- cell "9" [ref=e8729]: "9"
|
|
- cell [ref=e8730]
|
|
- cell "+" [ref=e8731]:
|
|
- generic [ref=e8732]: +
|
|
- 'cell "**Filament / Panel Guardrails**: Filament remains v5 on Livewire v4. Provider registration stays in `apps/platform/bootstrap/providers.php`. No new panel, route family, or asset strategy is allowed." [ref=e8733]':
|
|
- code [ref=e8734]: "**Filament / Panel Guardrails**: Filament remains v5 on Livewire v4. Provider registration stays in `apps/platform/bootstrap/providers.php`. No new panel, route family, or asset strategy is allowed."
|
|
- 'row "10 + **Organization**: Tasks are grouped by user story so the generic derivation, surface retrofit, and follow-up guardrails remain independently reviewable." [ref=e8735]':
|
|
- cell [ref=e8736]
|
|
- cell "10" [ref=e8737]: "10"
|
|
- cell [ref=e8738]
|
|
- cell "+" [ref=e8739]:
|
|
- generic [ref=e8740]: +
|
|
- 'cell "**Organization**: Tasks are grouped by user story so the generic derivation, surface retrofit, and follow-up guardrails remain independently reviewable." [ref=e8741]':
|
|
- code [ref=e8742]: "**Organization**: Tasks are grouped by user story so the generic derivation, surface retrofit, and follow-up guardrails remain independently reviewable."
|
|
- row "11 +" [ref=e8743]:
|
|
- cell [ref=e8744]
|
|
- cell "11" [ref=e8745]: "11"
|
|
- cell [ref=e8746]
|
|
- cell "+" [ref=e8747]:
|
|
- generic [ref=e8748]: +
|
|
- cell [ref=e8749]:
|
|
- code
|
|
- 'row "12 + ## Test Governance Checklist" [ref=e8750]':
|
|
- cell [ref=e8751]
|
|
- cell "12" [ref=e8752]: "12"
|
|
- cell [ref=e8753]
|
|
- cell "+" [ref=e8754]:
|
|
- generic [ref=e8755]: +
|
|
- cell "## Test Governance Checklist" [ref=e8756]:
|
|
- code [ref=e8757]: "## Test Governance Checklist"
|
|
- row "13 +" [ref=e8758]:
|
|
- cell [ref=e8759]
|
|
- cell "13" [ref=e8760]: "13"
|
|
- cell [ref=e8761]
|
|
- cell "+" [ref=e8762]:
|
|
- generic [ref=e8763]: +
|
|
- cell [ref=e8764]:
|
|
- code
|
|
- row "14 + - [x] Lane assignment is named and is the narrowest sufficient proof for the changed behavior." [ref=e8765]:
|
|
- cell [ref=e8766]
|
|
- cell "14" [ref=e8767]: "14"
|
|
- cell [ref=e8768]
|
|
- cell "+" [ref=e8769]:
|
|
- generic [ref=e8770]: +
|
|
- cell "- [x] Lane assignment is named and is the narrowest sufficient proof for the changed behavior." [ref=e8771]:
|
|
- code [ref=e8772]: "- [x] Lane assignment is named and is the narrowest sufficient proof for the changed behavior."
|
|
- row "15 + - [x] New or changed tests stay in the smallest honest family, and no hidden browser or heavy-governance proof is introduced." [ref=e8773]:
|
|
- cell [ref=e8774]
|
|
- cell "15" [ref=e8775]: "15"
|
|
- cell [ref=e8776]
|
|
- cell "+" [ref=e8777]:
|
|
- generic [ref=e8778]: +
|
|
- cell "- [x] New or changed tests stay in the smallest honest family, and no hidden browser or heavy-governance proof is introduced." [ref=e8779]:
|
|
- code [ref=e8780]: "- [x] New or changed tests stay in the smallest honest family, and no hidden browser or heavy-governance proof is introduced."
|
|
- row "16 + - [x] Shared helpers, fixtures, and context defaults stay cheap by default." [ref=e8781]:
|
|
- cell [ref=e8782]
|
|
- cell "16" [ref=e8783]: "16"
|
|
- cell [ref=e8784]
|
|
- cell "+" [ref=e8785]:
|
|
- generic [ref=e8786]: +
|
|
- cell "- [x] Shared helpers, fixtures, and context defaults stay cheap by default." [ref=e8787]:
|
|
- code [ref=e8788]: "- [x] Shared helpers, fixtures, and context defaults stay cheap by default."
|
|
- row "17 + - [x] Planned validation commands cover the change without widening into unrelated lanes." [ref=e8789]:
|
|
- cell [ref=e8790]
|
|
- cell "17" [ref=e8791]: "17"
|
|
- cell [ref=e8792]
|
|
- cell "+" [ref=e8793]:
|
|
- generic [ref=e8794]: +
|
|
- cell "- [x] Planned validation commands cover the change without widening into unrelated lanes." [ref=e8795]:
|
|
- code [ref=e8796]: "- [x] Planned validation commands cover the change without widening into unrelated lanes."
|
|
- row "18 + - [x] The declared monitoring/detail surface test profile is explicit." [ref=e8797]:
|
|
- cell [ref=e8798]
|
|
- cell "18" [ref=e8799]: "18"
|
|
- cell [ref=e8800]
|
|
- cell "+" [ref=e8801]:
|
|
- generic [ref=e8802]: +
|
|
- cell "- [x] The declared monitoring/detail surface test profile is explicit." [ref=e8803]:
|
|
- code [ref=e8804]: "- [x] The declared monitoring/detail surface test profile is explicit."
|
|
- row "19 + - [x] Any material budget, baseline, or escalation note is recorded in the active feature close-out." [ref=e8805]:
|
|
- cell [ref=e8806]
|
|
- cell "19" [ref=e8807]: "19"
|
|
- cell [ref=e8808]
|
|
- cell "+" [ref=e8809]:
|
|
- generic [ref=e8810]: +
|
|
- cell "- [x] Any material budget, baseline, or escalation note is recorded in the active feature close-out." [ref=e8811]:
|
|
- code [ref=e8812]: "- [x] Any material budget, baseline, or escalation note is recorded in the active feature close-out."
|
|
- row "20 +" [ref=e8813]:
|
|
- cell [ref=e8814]
|
|
- cell "20" [ref=e8815]: "20"
|
|
- cell [ref=e8816]
|
|
- cell "+" [ref=e8817]:
|
|
- generic [ref=e8818]: +
|
|
- cell [ref=e8819]:
|
|
- code
|
|
- 'row "21 + ## Phase 1: Setup (Shared Truth Inventory)" [ref=e8820]':
|
|
- cell [ref=e8821]
|
|
- cell "21" [ref=e8822]: "21"
|
|
- cell [ref=e8823]
|
|
- cell "+" [ref=e8824]:
|
|
- generic [ref=e8825]: +
|
|
- 'cell "## Phase 1: Setup (Shared Truth Inventory)" [ref=e8826]':
|
|
- code [ref=e8827]: "## Phase 1: Setup (Shared Truth Inventory)"
|
|
- row "22 +" [ref=e8828]:
|
|
- cell [ref=e8829]
|
|
- cell "22" [ref=e8830]: "22"
|
|
- cell [ref=e8831]
|
|
- cell "+" [ref=e8832]:
|
|
- generic [ref=e8833]: +
|
|
- cell [ref=e8834]:
|
|
- code
|
|
- 'row "23 + **Purpose**: confirm the current contradiction and the exact shared helper boundaries before runtime edits begin." [ref=e8835]':
|
|
- cell [ref=e8836]
|
|
- cell "23" [ref=e8837]: "23"
|
|
- cell [ref=e8838]
|
|
- cell "+" [ref=e8839]:
|
|
- generic [ref=e8840]: +
|
|
- 'cell "**Purpose**: confirm the current contradiction and the exact shared helper boundaries before runtime edits begin." [ref=e8841]':
|
|
- code [ref=e8842]: "**Purpose**: confirm the current contradiction and the exact shared helper boundaries before runtime edits begin."
|
|
- row "24 +" [ref=e8843]:
|
|
- cell [ref=e8844]
|
|
- cell "24" [ref=e8845]: "24"
|
|
- cell [ref=e8846]
|
|
- cell "+" [ref=e8847]:
|
|
- generic [ref=e8848]: +
|
|
- cell [ref=e8849]:
|
|
- code
|
|
- 'row "25 + - [x] T001 Review `specs/358-operationrun-queue-truth-foundation/spec.md`, `plan.md`, `checklists/requirements.md`, `.specify/memory/constitution.md`, `docs/ai-coding-rules.md`, `specs/149-queued-execution-reauthorization/spec.md`, `specs/160-operation-lifecycle-guarantees/spec.md`, `specs/233-stale-run-visibility/spec.md`, `specs/268-operationrun-activity-feedback/spec.md`, `specs/270-operationrun-progress-contract/spec.md`, and `specs/272-operationrun-phase-composite-progress/spec.md` together so the implementation stays on current repo truth." [ref=e8850]':
|
|
- cell [ref=e8851]
|
|
- cell "25" [ref=e8852]: "25"
|
|
- cell [ref=e8853]
|
|
- cell "+" [ref=e8854]:
|
|
- generic [ref=e8855]: +
|
|
- 'cell "- [x] T001 Review `specs/358-operationrun-queue-truth-foundation/spec.md`, `plan.md`, `checklists/requirements.md`, `.specify/memory/constitution.md`, `docs/ai-coding-rules.md`, `specs/149-queued-execution-reauthorization/spec.md`, `specs/160-operation-lifecycle-guarantees/spec.md`, `specs/233-stale-run-visibility/spec.md`, `specs/268-operationrun-activity-feedback/spec.md`, `specs/270-operationrun-progress-contract/spec.md`, and `specs/272-operationrun-phase-composite-progress/spec.md` together so the implementation stays on current repo truth." [ref=e8856]':
|
|
- code [ref=e8857]: "- [x] T001 Review `specs/358-operationrun-queue-truth-foundation/spec.md`, `plan.md`, `checklists/requirements.md`, `.specify/memory/constitution.md`, `docs/ai-coding-rules.md`, `specs/149-queued-execution-reauthorization/spec.md`, `specs/160-operation-lifecycle-guarantees/spec.md`, `specs/233-stale-run-visibility/spec.md`, `specs/268-operationrun-activity-feedback/spec.md`, `specs/270-operationrun-progress-contract/spec.md`, and `specs/272-operationrun-phase-composite-progress/spec.md` together so the implementation stays on current repo truth."
|
|
- 'row "26 + - [x] T002 [P] Confirm the current generic derivation seams in `apps/platform/app/Support/OpsUx/OperationRunProgressContract.php`, `apps/platform/app/Support/OpsUx/RunDurationInsights.php`, `apps/platform/app/Support/OpsUx/OperationUxPresenter.php`, and `apps/platform/app/Support/Operations/OperationRunFreshnessState.php`." [ref=e8858]':
|
|
- cell [ref=e8859]
|
|
- cell "26" [ref=e8860]: "26"
|
|
- cell [ref=e8861]
|
|
- cell "+" [ref=e8862]:
|
|
- generic [ref=e8863]: +
|
|
- 'cell "- [x] T002 [P] Confirm the current generic derivation seams in `apps/platform/app/Support/OpsUx/OperationRunProgressContract.php`, `apps/platform/app/Support/OpsUx/RunDurationInsights.php`, `apps/platform/app/Support/OpsUx/OperationUxPresenter.php`, and `apps/platform/app/Support/Operations/OperationRunFreshnessState.php`." [ref=e8864]':
|
|
- code [ref=e8865]: "- [x] T002 [P] Confirm the current generic derivation seams in `apps/platform/app/Support/OpsUx/OperationRunProgressContract.php`, `apps/platform/app/Support/OpsUx/RunDurationInsights.php`, `apps/platform/app/Support/OpsUx/OperationUxPresenter.php`, and `apps/platform/app/Support/Operations/OperationRunFreshnessState.php`."
|
|
- 'row "27 + - [x] T003 [P] Confirm the current render seams in `apps/platform/resources/views/livewire/bulk-operation-progress.blade.php`, `apps/platform/app/Filament/Pages/Monitoring/Operations.php`, `apps/platform/resources/views/filament/pages/monitoring/operations.blade.php`, `apps/platform/app/Filament/Resources/OperationRunResource.php` as the shared table/detail seam, and `apps/platform/app/Filament/Pages/Operations/TenantlessOperationRunViewer.php`." [ref=e8866]':
|
|
- cell [ref=e8867]
|
|
- cell "27" [ref=e8868]: "27"
|
|
- cell [ref=e8869]
|
|
- cell "+" [ref=e8870]:
|
|
- generic [ref=e8871]: +
|
|
- 'cell "- [x] T003 [P] Confirm the current render seams in `apps/platform/resources/views/livewire/bulk-operation-progress.blade.php`, `apps/platform/app/Filament/Pages/Monitoring/Operations.php`, `apps/platform/resources/views/filament/pages/monitoring/operations.blade.php`, `apps/platform/app/Filament/Resources/OperationRunResource.php` as the shared table/detail seam, and `apps/platform/app/Filament/Pages/Operations/TenantlessOperationRunViewer.php`." [ref=e8872]':
|
|
- code [ref=e8873]: "- [x] T003 [P] Confirm the current render seams in `apps/platform/resources/views/livewire/bulk-operation-progress.blade.php`, `apps/platform/app/Filament/Pages/Monitoring/Operations.php`, `apps/platform/resources/views/filament/pages/monitoring/operations.blade.php`, `apps/platform/app/Filament/Resources/OperationRunResource.php` as the shared table/detail seam, and `apps/platform/app/Filament/Pages/Operations/TenantlessOperationRunViewer.php`."
|
|
- 'row "28 + - [x] T004 [P] Confirm the focused proof owners in `apps/platform/tests/Unit/Support/OpsUx/OperationRunProgressContractTest.php`, `apps/platform/tests/Feature/OpsUx/ActivityFeedbackSurfaceTest.php`, `apps/platform/tests/Feature/OpsUx/BulkOperationProgressDbOnlyTest.php`, `apps/platform/tests/Feature/MonitoringOperationsTest.php`, `apps/platform/tests/Feature/Monitoring/OperationLifecycleFreshnessPresentationTest.php`, `apps/platform/tests/Feature/Monitoring/MonitoringOperationsTest.php`, `apps/platform/tests/Feature/Filament/OperationRunEnterpriseDetailPageTest.php`, and `apps/platform/tests/Feature/Operations/TenantlessOperationRunViewerTest.php`." [ref=e8874]':
|
|
- cell [ref=e8875]
|
|
- cell "28" [ref=e8876]: "28"
|
|
- cell [ref=e8877]
|
|
- cell "+" [ref=e8878]:
|
|
- generic [ref=e8879]: +
|
|
- 'cell "- [x] T004 [P] Confirm the focused proof owners in `apps/platform/tests/Unit/Support/OpsUx/OperationRunProgressContractTest.php`, `apps/platform/tests/Feature/OpsUx/ActivityFeedbackSurfaceTest.php`, `apps/platform/tests/Feature/OpsUx/BulkOperationProgressDbOnlyTest.php`, `apps/platform/tests/Feature/MonitoringOperationsTest.php`, `apps/platform/tests/Feature/Monitoring/OperationLifecycleFreshnessPresentationTest.php`, `apps/platform/tests/Feature/Monitoring/MonitoringOperationsTest.php`, `apps/platform/tests/Feature/Filament/OperationRunEnterpriseDetailPageTest.php`, and `apps/platform/tests/Feature/Operations/TenantlessOperationRunViewerTest.php`." [ref=e8880]':
|
|
- code [ref=e8881]: "- [x] T004 [P] Confirm the focused proof owners in `apps/platform/tests/Unit/Support/OpsUx/OperationRunProgressContractTest.php`, `apps/platform/tests/Feature/OpsUx/ActivityFeedbackSurfaceTest.php`, `apps/platform/tests/Feature/OpsUx/BulkOperationProgressDbOnlyTest.php`, `apps/platform/tests/Feature/MonitoringOperationsTest.php`, `apps/platform/tests/Feature/Monitoring/OperationLifecycleFreshnessPresentationTest.php`, `apps/platform/tests/Feature/Monitoring/MonitoringOperationsTest.php`, `apps/platform/tests/Feature/Filament/OperationRunEnterpriseDetailPageTest.php`, and `apps/platform/tests/Feature/Operations/TenantlessOperationRunViewerTest.php`."
|
|
- row "29 +" [ref=e8882]:
|
|
- cell [ref=e8883]
|
|
- cell "29" [ref=e8884]: "29"
|
|
- cell [ref=e8885]
|
|
- cell "+" [ref=e8886]:
|
|
- generic [ref=e8887]: +
|
|
- cell [ref=e8888]:
|
|
- code
|
|
- row "30 + ---" [ref=e8889]:
|
|
- cell [ref=e8890]
|
|
- cell "30" [ref=e8891]: "30"
|
|
- cell [ref=e8892]
|
|
- cell "+" [ref=e8893]:
|
|
- generic [ref=e8894]: +
|
|
- cell "---" [ref=e8895]:
|
|
- code [ref=e8896]: "---"
|
|
- row "31 +" [ref=e8897]:
|
|
- cell [ref=e8898]
|
|
- cell "31" [ref=e8899]: "31"
|
|
- cell [ref=e8900]
|
|
- cell "+" [ref=e8901]:
|
|
- generic [ref=e8902]: +
|
|
- cell [ref=e8903]:
|
|
- code
|
|
- 'row "32 + ## Phase 2: Foundational (Blocking Queue-Truth Contract)" [ref=e8904]':
|
|
- cell [ref=e8905]
|
|
- cell "32" [ref=e8906]: "32"
|
|
- cell [ref=e8907]
|
|
- cell "+" [ref=e8908]:
|
|
- generic [ref=e8909]: +
|
|
- 'cell "## Phase 2: Foundational (Blocking Queue-Truth Contract)" [ref=e8910]':
|
|
- code [ref=e8911]: "## Phase 2: Foundational (Blocking Queue-Truth Contract)"
|
|
- row "33 +" [ref=e8912]:
|
|
- cell [ref=e8913]
|
|
- cell "33" [ref=e8914]: "33"
|
|
- cell [ref=e8915]
|
|
- cell "+" [ref=e8916]:
|
|
- generic [ref=e8917]: +
|
|
- cell [ref=e8918]:
|
|
- code
|
|
- 'row "34 + **Purpose**: settle one generic queue-truth contract before any individual surface is updated." [ref=e8919]':
|
|
- cell [ref=e8920]
|
|
- cell "34" [ref=e8921]: "34"
|
|
- cell [ref=e8922]
|
|
- cell "+" [ref=e8923]:
|
|
- generic [ref=e8924]: +
|
|
- 'cell "**Purpose**: settle one generic queue-truth contract before any individual surface is updated." [ref=e8925]':
|
|
- code [ref=e8926]: "**Purpose**: settle one generic queue-truth contract before any individual surface is updated."
|
|
- row "35 +" [ref=e8927]:
|
|
- cell [ref=e8928]
|
|
- cell "35" [ref=e8929]: "35"
|
|
- cell [ref=e8930]
|
|
- cell "+" [ref=e8931]:
|
|
- generic [ref=e8932]: +
|
|
- cell [ref=e8933]:
|
|
- code
|
|
- 'row "36 + **Critical**: No user-story runtime work should begin until this phase is complete." [ref=e8934]':
|
|
- cell [ref=e8935]
|
|
- cell "36" [ref=e8936]: "36"
|
|
- cell [ref=e8937]
|
|
- cell "+" [ref=e8938]:
|
|
- generic [ref=e8939]: +
|
|
- 'cell "**Critical**: No user-story runtime work should begin until this phase is complete." [ref=e8940]':
|
|
- code [ref=e8941]: "**Critical**: No user-story runtime work should begin until this phase is complete."
|
|
- row "37 +" [ref=e8942]:
|
|
- cell [ref=e8943]
|
|
- cell "37" [ref=e8944]: "37"
|
|
- cell [ref=e8945]
|
|
- cell "+" [ref=e8946]:
|
|
- generic [ref=e8947]: +
|
|
- cell [ref=e8948]:
|
|
- code
|
|
- 'row "38 + - [x] T005 [P] Add or extend failing unit coverage in `apps/platform/tests/Unit/Support/OpsUx/OperationRunProgressContractTest.php` for fresh queued, stale queued, fresh running, stale running, determinate-progress stale running, unsupported lifecycle, and reconciled-terminal cases." [ref=e8949]':
|
|
- cell [ref=e8950]
|
|
- cell "38" [ref=e8951]: "38"
|
|
- cell [ref=e8952]
|
|
- cell "+" [ref=e8953]:
|
|
- generic [ref=e8954]: +
|
|
- 'cell "- [x] T005 [P] Add or extend failing unit coverage in `apps/platform/tests/Unit/Support/OpsUx/OperationRunProgressContractTest.php` for fresh queued, stale queued, fresh running, stale running, determinate-progress stale running, unsupported lifecycle, and reconciled-terminal cases." [ref=e8955]':
|
|
- code [ref=e8956]: "- [x] T005 [P] Add or extend failing unit coverage in `apps/platform/tests/Unit/Support/OpsUx/OperationRunProgressContractTest.php` for fresh queued, stale queued, fresh running, stale running, determinate-progress stale running, unsupported lifecycle, and reconciled-terminal cases."
|
|
- 'row "39 + - [x] T006 [P] Add or extend focused feature coverage in `apps/platform/tests/Feature/OpsUx/ActivityFeedbackSurfaceTest.php`, `apps/platform/tests/Feature/OpsUx/BulkOperationProgressDbOnlyTest.php`, and `apps/platform/tests/Feature/Monitoring/OperationLifecycleFreshnessPresentationTest.php` proving that stale-active runs do not mix stale attention with ordinary queue/progress reassurance." [ref=e8957]':
|
|
- cell [ref=e8958]
|
|
- cell "39" [ref=e8959]: "39"
|
|
- cell [ref=e8960]
|
|
- cell "+" [ref=e8961]:
|
|
- generic [ref=e8962]: +
|
|
- 'cell "- [x] T006 [P] Add or extend focused feature coverage in `apps/platform/tests/Feature/OpsUx/ActivityFeedbackSurfaceTest.php`, `apps/platform/tests/Feature/OpsUx/BulkOperationProgressDbOnlyTest.php`, and `apps/platform/tests/Feature/Monitoring/OperationLifecycleFreshnessPresentationTest.php` proving that stale-active runs do not mix stale attention with ordinary queue/progress reassurance." [ref=e8963]':
|
|
- code [ref=e8964]: "- [x] T006 [P] Add or extend focused feature coverage in `apps/platform/tests/Feature/OpsUx/ActivityFeedbackSurfaceTest.php`, `apps/platform/tests/Feature/OpsUx/BulkOperationProgressDbOnlyTest.php`, and `apps/platform/tests/Feature/Monitoring/OperationLifecycleFreshnessPresentationTest.php` proving that stale-active runs do not mix stale attention with ordinary queue/progress reassurance."
|
|
- 'row "40 + - [x] T007 Freeze the canonical derivation boundary in `apps/platform/app/Support/OpsUx/OperationRunProgressContract.php`, `apps/platform/app/Support/OpsUx/RunDurationInsights.php`, `apps/platform/app/Support/OpsUx/OperationUxPresenter.php`, and `apps/platform/app/Support/Operations/OperationRunFreshnessState.php` without introducing new persisted state or a new registry." [ref=e8965]':
|
|
- cell [ref=e8966]
|
|
- cell "40" [ref=e8967]: "40"
|
|
- cell [ref=e8968]
|
|
- cell "+" [ref=e8969]:
|
|
- generic [ref=e8970]: +
|
|
- 'cell "- [x] T007 Freeze the canonical derivation boundary in `apps/platform/app/Support/OpsUx/OperationRunProgressContract.php`, `apps/platform/app/Support/OpsUx/RunDurationInsights.php`, `apps/platform/app/Support/OpsUx/OperationUxPresenter.php`, and `apps/platform/app/Support/Operations/OperationRunFreshnessState.php` without introducing new persisted state or a new registry." [ref=e8971]':
|
|
- code [ref=e8972]: "- [x] T007 Freeze the canonical derivation boundary in `apps/platform/app/Support/OpsUx/OperationRunProgressContract.php`, `apps/platform/app/Support/OpsUx/RunDurationInsights.php`, `apps/platform/app/Support/OpsUx/OperationUxPresenter.php`, and `apps/platform/app/Support/Operations/OperationRunFreshnessState.php` without introducing new persisted state or a new registry."
|
|
- row "41 +" [ref=e8973]:
|
|
- cell [ref=e8974]
|
|
- cell "41" [ref=e8975]: "41"
|
|
- cell [ref=e8976]
|
|
- cell "+" [ref=e8977]:
|
|
- generic [ref=e8978]: +
|
|
- cell [ref=e8979]:
|
|
- code
|
|
- 'row "42 + **Checkpoint**: Generic queue truth is derived from one aligned helper path before shell/list/detail surfaces are edited." [ref=e8980]':
|
|
- cell [ref=e8981]
|
|
- cell "42" [ref=e8982]: "42"
|
|
- cell [ref=e8983]
|
|
- cell "+" [ref=e8984]:
|
|
- generic [ref=e8985]: +
|
|
- 'cell "**Checkpoint**: Generic queue truth is derived from one aligned helper path before shell/list/detail surfaces are edited." [ref=e8986]':
|
|
- code [ref=e8987]: "**Checkpoint**: Generic queue truth is derived from one aligned helper path before shell/list/detail surfaces are edited."
|
|
- row "43 +" [ref=e8988]:
|
|
- cell [ref=e8989]
|
|
- cell "43" [ref=e8990]: "43"
|
|
- cell [ref=e8991]
|
|
- cell "+" [ref=e8992]:
|
|
- generic [ref=e8993]: +
|
|
- cell [ref=e8994]:
|
|
- code
|
|
- row "44 + ---" [ref=e8995]:
|
|
- cell [ref=e8996]
|
|
- cell "44" [ref=e8997]: "44"
|
|
- cell [ref=e8998]
|
|
- cell "+" [ref=e8999]:
|
|
- generic [ref=e9000]: +
|
|
- cell "---" [ref=e9001]:
|
|
- code [ref=e9002]: "---"
|
|
- row "45 +" [ref=e9003]:
|
|
- cell [ref=e9004]
|
|
- cell "45" [ref=e9005]: "45"
|
|
- cell [ref=e9006]
|
|
- cell "+" [ref=e9007]:
|
|
- generic [ref=e9008]: +
|
|
- cell [ref=e9009]:
|
|
- code
|
|
- 'row "46 + ## Phase 3: User Story 1 - See honest queued and stale truth on active monitoring surfaces (Priority: P1)" [ref=e9010]':
|
|
- cell [ref=e9011]
|
|
- cell "46" [ref=e9012]: "46"
|
|
- cell [ref=e9013]
|
|
- cell "+" [ref=e9014]:
|
|
- generic [ref=e9015]: +
|
|
- 'cell "## Phase 3: User Story 1 - See honest queued and stale truth on active monitoring surfaces (Priority: P1)" [ref=e9016]':
|
|
- code [ref=e9017]: "## Phase 3: User Story 1 - See honest queued and stale truth on active monitoring surfaces (Priority: P1)"
|
|
- row "47 +" [ref=e9018]:
|
|
- cell [ref=e9019]
|
|
- cell "47" [ref=e9020]: "47"
|
|
- cell [ref=e9021]
|
|
- cell "+" [ref=e9022]:
|
|
- generic [ref=e9023]: +
|
|
- cell [ref=e9024]:
|
|
- code
|
|
- 'row "48 + **Goal**: shell and list surfaces no longer mix stale-active attention with calm queue or progress reassurance." [ref=e9025]':
|
|
- cell [ref=e9026]
|
|
- cell "48" [ref=e9027]: "48"
|
|
- cell [ref=e9028]
|
|
- cell "+" [ref=e9029]:
|
|
- generic [ref=e9030]: +
|
|
- 'cell "**Goal**: shell and list surfaces no longer mix stale-active attention with calm queue or progress reassurance." [ref=e9031]':
|
|
- code [ref=e9032]: "**Goal**: shell and list surfaces no longer mix stale-active attention with calm queue or progress reassurance."
|
|
- row "49 +" [ref=e9033]:
|
|
- cell [ref=e9034]
|
|
- cell "49" [ref=e9035]: "49"
|
|
- cell [ref=e9036]
|
|
- cell "+" [ref=e9037]:
|
|
- generic [ref=e9038]: +
|
|
- cell [ref=e9039]:
|
|
- code
|
|
- 'row "50 + **Independent Test**: seed fresh and stale queued/running runs, render the shell hint and operations list, and verify that only fresh active work keeps calm queue/progress copy." [ref=e9040]':
|
|
- cell [ref=e9041]
|
|
- cell "50" [ref=e9042]: "50"
|
|
- cell [ref=e9043]
|
|
- cell "+" [ref=e9044]:
|
|
- generic [ref=e9045]: +
|
|
- 'cell "**Independent Test**: seed fresh and stale queued/running runs, render the shell hint and operations list, and verify that only fresh active work keeps calm queue/progress copy." [ref=e9046]':
|
|
- code [ref=e9047]: "**Independent Test**: seed fresh and stale queued/running runs, render the shell hint and operations list, and verify that only fresh active work keeps calm queue/progress copy."
|
|
- row "51 +" [ref=e9048]:
|
|
- cell [ref=e9049]
|
|
- cell "51" [ref=e9050]: "51"
|
|
- cell [ref=e9051]
|
|
- cell "+" [ref=e9052]:
|
|
- generic [ref=e9053]: +
|
|
- cell [ref=e9054]:
|
|
- code
|
|
- 'row "52 + ### Tests for User Story 1" [ref=e9055]':
|
|
- cell [ref=e9056]
|
|
- cell "52" [ref=e9057]: "52"
|
|
- cell [ref=e9058]
|
|
- cell "+" [ref=e9059]:
|
|
- generic [ref=e9060]: +
|
|
- cell "### Tests for User Story 1" [ref=e9061]:
|
|
- code [ref=e9062]: "### Tests for User Story 1"
|
|
- row "53 +" [ref=e9063]:
|
|
- cell [ref=e9064]
|
|
- cell "53" [ref=e9065]: "53"
|
|
- cell [ref=e9066]
|
|
- cell "+" [ref=e9067]:
|
|
- generic [ref=e9068]: +
|
|
- cell [ref=e9069]:
|
|
- code
|
|
- 'row "54 + - [x] T008 [P] [US1] Extend `apps/platform/tests/Feature/OpsUx/ActivityFeedbackSurfaceTest.php` and `apps/platform/tests/Feature/OpsUx/BulkOperationProgressDbOnlyTest.php` for stale queued, stale running, and determinate-progress stale-running shell cases." [ref=e9070]':
|
|
- cell [ref=e9071]
|
|
- cell "54" [ref=e9072]: "54"
|
|
- cell [ref=e9073]
|
|
- cell "+" [ref=e9074]:
|
|
- generic [ref=e9075]: +
|
|
- 'cell "- [x] T008 [P] [US1] Extend `apps/platform/tests/Feature/OpsUx/ActivityFeedbackSurfaceTest.php` and `apps/platform/tests/Feature/OpsUx/BulkOperationProgressDbOnlyTest.php` for stale queued, stale running, and determinate-progress stale-running shell cases." [ref=e9076]':
|
|
- code [ref=e9077]: "- [x] T008 [P] [US1] Extend `apps/platform/tests/Feature/OpsUx/ActivityFeedbackSurfaceTest.php` and `apps/platform/tests/Feature/OpsUx/BulkOperationProgressDbOnlyTest.php` for stale queued, stale running, and determinate-progress stale-running shell cases."
|
|
- 'row "55 + - [x] T009 [P] [US1] Extend `apps/platform/tests/Feature/Monitoring/MonitoringOperationsTest.php` and `apps/platform/tests/Feature/Monitoring/OperationLifecycleFreshnessPresentationTest.php` for operations-list row truth and lifecycle-attention alignment." [ref=e9078]':
|
|
- cell [ref=e9079]
|
|
- cell "55" [ref=e9080]: "55"
|
|
- cell [ref=e9081]
|
|
- cell "+" [ref=e9082]:
|
|
- generic [ref=e9083]: +
|
|
- 'cell "- [x] T009 [P] [US1] Extend `apps/platform/tests/Feature/Monitoring/MonitoringOperationsTest.php` and `apps/platform/tests/Feature/Monitoring/OperationLifecycleFreshnessPresentationTest.php` for operations-list row truth and lifecycle-attention alignment." [ref=e9084]':
|
|
- code [ref=e9085]: "- [x] T009 [P] [US1] Extend `apps/platform/tests/Feature/Monitoring/MonitoringOperationsTest.php` and `apps/platform/tests/Feature/Monitoring/OperationLifecycleFreshnessPresentationTest.php` for operations-list row truth and lifecycle-attention alignment."
|
|
- row "56 +" [ref=e9086]:
|
|
- cell [ref=e9087]
|
|
- cell "56" [ref=e9088]: "56"
|
|
- cell [ref=e9089]
|
|
- cell "+" [ref=e9090]:
|
|
- generic [ref=e9091]: +
|
|
- cell [ref=e9092]:
|
|
- code
|
|
- 'row "57 + ### Implementation for User Story 1" [ref=e9093]':
|
|
- cell [ref=e9094]
|
|
- cell "57" [ref=e9095]: "57"
|
|
- cell [ref=e9096]
|
|
- cell "+" [ref=e9097]:
|
|
- generic [ref=e9098]: +
|
|
- cell "### Implementation for User Story 1" [ref=e9099]:
|
|
- code [ref=e9100]: "### Implementation for User Story 1"
|
|
- row "58 +" [ref=e9101]:
|
|
- cell [ref=e9102]
|
|
- cell "58" [ref=e9103]: "58"
|
|
- cell [ref=e9104]
|
|
- cell "+" [ref=e9105]:
|
|
- generic [ref=e9106]: +
|
|
- cell [ref=e9107]:
|
|
- code
|
|
- 'row "59 + - [x] T010 [US1] Align generic progress and queue guidance in `apps/platform/app/Support/OpsUx/OperationRunProgressContract.php`, `apps/platform/app/Support/OpsUx/RunDurationInsights.php`, and `apps/platform/app/Support/OpsUx/OperationUxPresenter.php` so stale-active work no longer presents ordinary queue/progress reassurance." [ref=e9108]':
|
|
- cell [ref=e9109]
|
|
- cell "59" [ref=e9110]: "59"
|
|
- cell [ref=e9111]
|
|
- cell "+" [ref=e9112]:
|
|
- generic [ref=e9113]: +
|
|
- 'cell "- [x] T010 [US1] Align generic progress and queue guidance in `apps/platform/app/Support/OpsUx/OperationRunProgressContract.php`, `apps/platform/app/Support/OpsUx/RunDurationInsights.php`, and `apps/platform/app/Support/OpsUx/OperationUxPresenter.php` so stale-active work no longer presents ordinary queue/progress reassurance." [ref=e9114]':
|
|
- code [ref=e9115]: "- [x] T010 [US1] Align generic progress and queue guidance in `apps/platform/app/Support/OpsUx/OperationRunProgressContract.php`, `apps/platform/app/Support/OpsUx/RunDurationInsights.php`, and `apps/platform/app/Support/OpsUx/OperationUxPresenter.php` so stale-active work no longer presents ordinary queue/progress reassurance."
|
|
- 'row "60 + - [x] T011 [US1] Update `apps/platform/resources/views/livewire/bulk-operation-progress.blade.php` so the shell activity hint consumes the aligned generic queue truth without local contradictory fallback copy." [ref=e9116]':
|
|
- cell [ref=e9117]
|
|
- cell "60" [ref=e9118]: "60"
|
|
- cell [ref=e9119]
|
|
- cell "+" [ref=e9120]:
|
|
- generic [ref=e9121]: +
|
|
- 'cell "- [x] T011 [US1] Update `apps/platform/resources/views/livewire/bulk-operation-progress.blade.php` so the shell activity hint consumes the aligned generic queue truth without local contradictory fallback copy." [ref=e9122]':
|
|
- code [ref=e9123]: "- [x] T011 [US1] Update `apps/platform/resources/views/livewire/bulk-operation-progress.blade.php` so the shell activity hint consumes the aligned generic queue truth without local contradictory fallback copy."
|
|
- 'row "61 + - [x] T012 [US1] Update `apps/platform/app/Filament/Pages/Monitoring/Operations.php` and `apps/platform/app/Filament/Resources/OperationRunResource.php` only as needed so the route-backed operations hub plus the shared table/detail summaries expose the same generic queue truth." [ref=e9124]':
|
|
- cell [ref=e9125]
|
|
- cell "61" [ref=e9126]: "61"
|
|
- cell [ref=e9127]
|
|
- cell "+" [ref=e9128]:
|
|
- generic [ref=e9129]: +
|
|
- 'cell "- [x] T012 [US1] Update `apps/platform/app/Filament/Pages/Monitoring/Operations.php` and `apps/platform/app/Filament/Resources/OperationRunResource.php` only as needed so the route-backed operations hub plus the shared table/detail summaries expose the same generic queue truth." [ref=e9130]':
|
|
- code [ref=e9131]: "- [x] T012 [US1] Update `apps/platform/app/Filament/Pages/Monitoring/Operations.php` and `apps/platform/app/Filament/Resources/OperationRunResource.php` only as needed so the route-backed operations hub plus the shared table/detail summaries expose the same generic queue truth."
|
|
- row "62 +" [ref=e9132]:
|
|
- cell [ref=e9133]
|
|
- cell "62" [ref=e9134]: "62"
|
|
- cell [ref=e9135]
|
|
- cell "+" [ref=e9136]:
|
|
- generic [ref=e9137]: +
|
|
- cell [ref=e9138]:
|
|
- code
|
|
- 'row "63 + **Checkpoint**: User Story 1 is independently functional when stale-active work reads honestly on shell and list surfaces." [ref=e9139]':
|
|
- cell [ref=e9140]
|
|
- cell "63" [ref=e9141]: "63"
|
|
- cell [ref=e9142]
|
|
- cell "+" [ref=e9143]:
|
|
- generic [ref=e9144]: +
|
|
- 'cell "**Checkpoint**: User Story 1 is independently functional when stale-active work reads honestly on shell and list surfaces." [ref=e9145]':
|
|
- code [ref=e9146]: "**Checkpoint**: User Story 1 is independently functional when stale-active work reads honestly on shell and list surfaces."
|
|
- row "64 +" [ref=e9147]:
|
|
- cell [ref=e9148]
|
|
- cell "64" [ref=e9149]: "64"
|
|
- cell [ref=e9150]
|
|
- cell "+" [ref=e9151]:
|
|
- generic [ref=e9152]: +
|
|
- cell [ref=e9153]:
|
|
- code
|
|
- row "65 + ---" [ref=e9154]:
|
|
- cell [ref=e9155]
|
|
- cell "65" [ref=e9156]: "65"
|
|
- cell [ref=e9157]
|
|
- cell "+" [ref=e9158]:
|
|
- generic [ref=e9159]: +
|
|
- cell "---" [ref=e9160]:
|
|
- code [ref=e9161]: "---"
|
|
- row "66 +" [ref=e9162]:
|
|
- cell [ref=e9163]
|
|
- cell "66" [ref=e9164]: "66"
|
|
- cell [ref=e9165]
|
|
- cell "+" [ref=e9166]:
|
|
- generic [ref=e9167]: +
|
|
- cell [ref=e9168]:
|
|
- code
|
|
- 'row "67 + ## Phase 4: User Story 2 - Keep canonical run detail aligned with generic queue truth (Priority: P1)" [ref=e9169]':
|
|
- cell [ref=e9170]
|
|
- cell "67" [ref=e9171]: "67"
|
|
- cell [ref=e9172]
|
|
- cell "+" [ref=e9173]:
|
|
- generic [ref=e9174]: +
|
|
- 'cell "## Phase 4: User Story 2 - Keep canonical run detail aligned with generic queue truth (Priority: P1)" [ref=e9175]':
|
|
- code [ref=e9176]: "## Phase 4: User Story 2 - Keep canonical run detail aligned with generic queue truth (Priority: P1)"
|
|
- row "68 +" [ref=e9177]:
|
|
- cell [ref=e9178]
|
|
- cell "68" [ref=e9179]: "68"
|
|
- cell [ref=e9180]
|
|
- cell "+" [ref=e9181]:
|
|
- generic [ref=e9182]: +
|
|
- cell [ref=e9183]:
|
|
- code
|
|
- 'row "69 + **Goal**: canonical run detail confirms the same lifecycle meaning before deeper diagnostics render." [ref=e9184]':
|
|
- cell [ref=e9185]
|
|
- cell "69" [ref=e9186]: "69"
|
|
- cell [ref=e9187]
|
|
- cell "+" [ref=e9188]:
|
|
- generic [ref=e9189]: +
|
|
- 'cell "**Goal**: canonical run detail confirms the same lifecycle meaning before deeper diagnostics render." [ref=e9190]':
|
|
- code [ref=e9191]: "**Goal**: canonical run detail confirms the same lifecycle meaning before deeper diagnostics render."
|
|
- row "70 +" [ref=e9192]:
|
|
- cell [ref=e9193]
|
|
- cell "70" [ref=e9194]: "70"
|
|
- cell [ref=e9195]
|
|
- cell "+" [ref=e9196]:
|
|
- generic [ref=e9197]: +
|
|
- cell [ref=e9198]:
|
|
- code
|
|
- 'row "71 + **Independent Test**: open canonical detail for fresh, stale, and reconciled runs and verify that top-level lifecycle guidance matches shell/list semantics." [ref=e9199]':
|
|
- cell [ref=e9200]
|
|
- cell "71" [ref=e9201]: "71"
|
|
- cell [ref=e9202]
|
|
- cell "+" [ref=e9203]:
|
|
- generic [ref=e9204]: +
|
|
- 'cell "**Independent Test**: open canonical detail for fresh, stale, and reconciled runs and verify that top-level lifecycle guidance matches shell/list semantics." [ref=e9205]':
|
|
- code [ref=e9206]: "**Independent Test**: open canonical detail for fresh, stale, and reconciled runs and verify that top-level lifecycle guidance matches shell/list semantics."
|
|
- row "72 +" [ref=e9207]:
|
|
- cell [ref=e9208]
|
|
- cell "72" [ref=e9209]: "72"
|
|
- cell [ref=e9210]
|
|
- cell "+" [ref=e9211]:
|
|
- generic [ref=e9212]: +
|
|
- cell [ref=e9213]:
|
|
- code
|
|
- 'row "73 + ### Tests for User Story 2" [ref=e9214]':
|
|
- cell [ref=e9215]
|
|
- cell "73" [ref=e9216]: "73"
|
|
- cell [ref=e9217]
|
|
- cell "+" [ref=e9218]:
|
|
- generic [ref=e9219]: +
|
|
- cell "### Tests for User Story 2" [ref=e9220]:
|
|
- code [ref=e9221]: "### Tests for User Story 2"
|
|
- row "74 +" [ref=e9222]:
|
|
- cell [ref=e9223]
|
|
- cell "74" [ref=e9224]: "74"
|
|
- cell [ref=e9225]
|
|
- cell "+" [ref=e9226]:
|
|
- generic [ref=e9227]: +
|
|
- cell [ref=e9228]:
|
|
- code
|
|
- 'row "75 + - [x] T013 [P] [US2] Extend `apps/platform/tests/Feature/Filament/OperationRunEnterpriseDetailPageTest.php` and `apps/platform/tests/Feature/Operations/TenantlessOperationRunViewerTest.php` for fresh, stale, and reconciled-terminal top-summary behavior." [ref=e9229]':
|
|
- cell [ref=e9230]
|
|
- cell "75" [ref=e9231]: "75"
|
|
- cell [ref=e9232]
|
|
- cell "+" [ref=e9233]:
|
|
- generic [ref=e9234]: +
|
|
- 'cell "- [x] T013 [P] [US2] Extend `apps/platform/tests/Feature/Filament/OperationRunEnterpriseDetailPageTest.php` and `apps/platform/tests/Feature/Operations/TenantlessOperationRunViewerTest.php` for fresh, stale, and reconciled-terminal top-summary behavior." [ref=e9235]':
|
|
- code [ref=e9236]: "- [x] T013 [P] [US2] Extend `apps/platform/tests/Feature/Filament/OperationRunEnterpriseDetailPageTest.php` and `apps/platform/tests/Feature/Operations/TenantlessOperationRunViewerTest.php` for fresh, stale, and reconciled-terminal top-summary behavior."
|
|
- 'row "76 + - [x] T014 [P] [US2] Extend `apps/platform/tests/Feature/Monitoring/MonitoringOperationsTest.php` for compact-to-detail continuity where the same run is opened from the list after stale-active presentation." [ref=e9237]':
|
|
- cell [ref=e9238]
|
|
- cell "76" [ref=e9239]: "76"
|
|
- cell [ref=e9240]
|
|
- cell "+" [ref=e9241]:
|
|
- generic [ref=e9242]: +
|
|
- 'cell "- [x] T014 [P] [US2] Extend `apps/platform/tests/Feature/Monitoring/MonitoringOperationsTest.php` for compact-to-detail continuity where the same run is opened from the list after stale-active presentation." [ref=e9243]':
|
|
- code [ref=e9244]: "- [x] T014 [P] [US2] Extend `apps/platform/tests/Feature/Monitoring/MonitoringOperationsTest.php` for compact-to-detail continuity where the same run is opened from the list after stale-active presentation."
|
|
- row "77 +" [ref=e9245]:
|
|
- cell [ref=e9246]
|
|
- cell "77" [ref=e9247]: "77"
|
|
- cell [ref=e9248]
|
|
- cell "+" [ref=e9249]:
|
|
- generic [ref=e9250]: +
|
|
- cell [ref=e9251]:
|
|
- code
|
|
- 'row "78 + ### Implementation for User Story 2" [ref=e9252]':
|
|
- cell [ref=e9253]
|
|
- cell "78" [ref=e9254]: "78"
|
|
- cell [ref=e9255]
|
|
- cell "+" [ref=e9256]:
|
|
- generic [ref=e9257]: +
|
|
- cell "### Implementation for User Story 2" [ref=e9258]:
|
|
- code [ref=e9259]: "### Implementation for User Story 2"
|
|
- row "79 +" [ref=e9260]:
|
|
- cell [ref=e9261]
|
|
- cell "79" [ref=e9262]: "79"
|
|
- cell [ref=e9263]
|
|
- cell "+" [ref=e9264]:
|
|
- generic [ref=e9265]: +
|
|
- cell [ref=e9266]:
|
|
- code
|
|
- 'row "80 + - [x] T015 [US2] Update `apps/platform/app/Filament/Pages/Operations/TenantlessOperationRunViewer.php` so lifecycle banners and detail guidance reflect the aligned generic queue truth before raw diagnostics." [ref=e9267]':
|
|
- cell [ref=e9268]
|
|
- cell "80" [ref=e9269]: "80"
|
|
- cell [ref=e9270]
|
|
- cell "+" [ref=e9271]:
|
|
- generic [ref=e9272]: +
|
|
- 'cell "- [x] T015 [US2] Update `apps/platform/app/Filament/Pages/Operations/TenantlessOperationRunViewer.php` so lifecycle banners and detail guidance reflect the aligned generic queue truth before raw diagnostics." [ref=e9273]':
|
|
- code [ref=e9274]: "- [x] T015 [US2] Update `apps/platform/app/Filament/Pages/Operations/TenantlessOperationRunViewer.php` so lifecycle banners and detail guidance reflect the aligned generic queue truth before raw diagnostics."
|
|
- 'row "81 + - [x] T016 [US2] Update `apps/platform/app/Support/OpsUx/OperationUxPresenter.php` and any touched `OperationRunResource` summary helpers so canonical detail and resource detail stay aligned." [ref=e9275]':
|
|
- cell [ref=e9276]
|
|
- cell "81" [ref=e9277]: "81"
|
|
- cell [ref=e9278]
|
|
- cell "+" [ref=e9279]:
|
|
- generic [ref=e9280]: +
|
|
- 'cell "- [x] T016 [US2] Update `apps/platform/app/Support/OpsUx/OperationUxPresenter.php` and any touched `OperationRunResource` summary helpers so canonical detail and resource detail stay aligned." [ref=e9281]':
|
|
- code [ref=e9282]: "- [x] T016 [US2] Update `apps/platform/app/Support/OpsUx/OperationUxPresenter.php` and any touched `OperationRunResource` summary helpers so canonical detail and resource detail stay aligned."
|
|
- row "82 +" [ref=e9283]:
|
|
- cell [ref=e9284]
|
|
- cell "82" [ref=e9285]: "82"
|
|
- cell [ref=e9286]
|
|
- cell "+" [ref=e9287]:
|
|
- generic [ref=e9288]: +
|
|
- cell [ref=e9289]:
|
|
- code
|
|
- 'row "83 + **Checkpoint**: User Story 2 is independently functional when canonical detail confirms, rather than contradicts, generic queue truth." [ref=e9290]':
|
|
- cell [ref=e9291]
|
|
- cell "83" [ref=e9292]: "83"
|
|
- cell [ref=e9293]
|
|
- cell "+" [ref=e9294]:
|
|
- generic [ref=e9295]: +
|
|
- 'cell "**Checkpoint**: User Story 2 is independently functional when canonical detail confirms, rather than contradicts, generic queue truth." [ref=e9296]':
|
|
- code [ref=e9297]: "**Checkpoint**: User Story 2 is independently functional when canonical detail confirms, rather than contradicts, generic queue truth."
|
|
- row "84 +" [ref=e9298]:
|
|
- cell [ref=e9299]
|
|
- cell "84" [ref=e9300]: "84"
|
|
- cell [ref=e9301]
|
|
- cell "+" [ref=e9302]:
|
|
- generic [ref=e9303]: +
|
|
- cell [ref=e9304]:
|
|
- code
|
|
- row "85 + ---" [ref=e9305]:
|
|
- cell [ref=e9306]
|
|
- cell "85" [ref=e9307]: "85"
|
|
- cell [ref=e9308]
|
|
- cell "+" [ref=e9309]:
|
|
- generic [ref=e9310]: +
|
|
- cell "---" [ref=e9311]:
|
|
- code [ref=e9312]: "---"
|
|
- row "86 +" [ref=e9313]:
|
|
- cell [ref=e9314]
|
|
- cell "86" [ref=e9315]: "86"
|
|
- cell [ref=e9316]
|
|
- cell "+" [ref=e9317]:
|
|
- generic [ref=e9318]: +
|
|
- cell [ref=e9319]:
|
|
- code
|
|
- 'row "87 + ## Phase 5: User Story 3 - Keep proof-backed reconciliation separate from generic queue truth (Priority: P2)" [ref=e9320]':
|
|
- cell [ref=e9321]
|
|
- cell "87" [ref=e9322]: "87"
|
|
- cell [ref=e9323]
|
|
- cell "+" [ref=e9324]:
|
|
- generic [ref=e9325]: +
|
|
- 'cell "## Phase 5: User Story 3 - Keep proof-backed reconciliation separate from generic queue truth (Priority: P2)" [ref=e9326]':
|
|
- code [ref=e9327]: "## Phase 5: User Story 3 - Keep proof-backed reconciliation separate from generic queue truth (Priority: P2)"
|
|
- row "88 +" [ref=e9328]:
|
|
- cell [ref=e9329]
|
|
- cell "88" [ref=e9330]: "88"
|
|
- cell [ref=e9331]
|
|
- cell "+" [ref=e9332]:
|
|
- generic [ref=e9333]: +
|
|
- cell [ref=e9334]:
|
|
- code
|
|
- 'row "89 + **Goal**: generic stale wording stays cautious, while existing scheduled/adapter reconciliation remains authoritative for terminal truth." [ref=e9335]':
|
|
- cell [ref=e9336]
|
|
- cell "89" [ref=e9337]: "89"
|
|
- cell [ref=e9338]
|
|
- cell "+" [ref=e9339]:
|
|
- generic [ref=e9340]: +
|
|
- 'cell "**Goal**: generic stale wording stays cautious, while existing scheduled/adapter reconciliation remains authoritative for terminal truth." [ref=e9341]':
|
|
- code [ref=e9342]: "**Goal**: generic stale wording stays cautious, while existing scheduled/adapter reconciliation remains authoritative for terminal truth."
|
|
- row "90 +" [ref=e9343]:
|
|
- cell [ref=e9344]
|
|
- cell "90" [ref=e9345]: "90"
|
|
- cell [ref=e9346]
|
|
- cell "+" [ref=e9347]:
|
|
- generic [ref=e9348]: +
|
|
- cell [ref=e9349]:
|
|
- code
|
|
- 'row "91 + **Independent Test**: compare stale active runs and already-reconciled terminal runs to verify that cautious generic wording and existing reconciled semantics both survive." [ref=e9350]':
|
|
- cell [ref=e9351]
|
|
- cell "91" [ref=e9352]: "91"
|
|
- cell [ref=e9353]
|
|
- cell "+" [ref=e9354]:
|
|
- generic [ref=e9355]: +
|
|
- 'cell "**Independent Test**: compare stale active runs and already-reconciled terminal runs to verify that cautious generic wording and existing reconciled semantics both survive." [ref=e9356]':
|
|
- code [ref=e9357]: "**Independent Test**: compare stale active runs and already-reconciled terminal runs to verify that cautious generic wording and existing reconciled semantics both survive."
|
|
- row "92 +" [ref=e9358]:
|
|
- cell [ref=e9359]
|
|
- cell "92" [ref=e9360]: "92"
|
|
- cell [ref=e9361]
|
|
- cell "+" [ref=e9362]:
|
|
- generic [ref=e9363]: +
|
|
- cell [ref=e9364]:
|
|
- code
|
|
- 'row "93 + ### Tests for User Story 3" [ref=e9365]':
|
|
- cell [ref=e9366]
|
|
- cell "93" [ref=e9367]: "93"
|
|
- cell [ref=e9368]
|
|
- cell "+" [ref=e9369]:
|
|
- generic [ref=e9370]: +
|
|
- cell "### Tests for User Story 3" [ref=e9371]:
|
|
- code [ref=e9372]: "### Tests for User Story 3"
|
|
- row "94 +" [ref=e9373]:
|
|
- cell [ref=e9374]
|
|
- cell "94" [ref=e9375]: "94"
|
|
- cell [ref=e9376]
|
|
- cell "+" [ref=e9377]:
|
|
- generic [ref=e9378]: +
|
|
- cell [ref=e9379]:
|
|
- code
|
|
- 'row "95 + - [x] T017 [P] [US3] Extend unit or feature coverage, including `apps/platform/tests/Feature/MonitoringOperationsTest.php` where the operations aggregate wording is already asserted, so stale active runs without strong legitimacy evidence do not claim orphaned or domain-complete truth while existing scheduled/adapter-reconciled terminal runs keep their terminal semantics." [ref=e9380]':
|
|
- cell [ref=e9381]
|
|
- cell "95" [ref=e9382]: "95"
|
|
- cell [ref=e9383]
|
|
- cell "+" [ref=e9384]:
|
|
- generic [ref=e9385]: +
|
|
- 'cell "- [x] T017 [P] [US3] Extend unit or feature coverage, including `apps/platform/tests/Feature/MonitoringOperationsTest.php` where the operations aggregate wording is already asserted, so stale active runs without strong legitimacy evidence do not claim orphaned or domain-complete truth while existing scheduled/adapter-reconciled terminal runs keep their terminal semantics." [ref=e9386]':
|
|
- code [ref=e9387]: "- [x] T017 [P] [US3] Extend unit or feature coverage, including `apps/platform/tests/Feature/MonitoringOperationsTest.php` where the operations aggregate wording is already asserted, so stale active runs without strong legitimacy evidence do not claim orphaned or domain-complete truth while existing scheduled/adapter-reconciled terminal runs keep their terminal semantics."
|
|
- 'row "96 + - [x] T018 [P] [US3] Extend `apps/platform/tests/Feature/Operations/TenantlessOperationRunViewerTest.php` or the nearest focused monitoring suite for reconciled-terminal detail language regression protection." [ref=e9388]':
|
|
- cell [ref=e9389]
|
|
- cell "96" [ref=e9390]: "96"
|
|
- cell [ref=e9391]
|
|
- cell "+" [ref=e9392]:
|
|
- generic [ref=e9393]: +
|
|
- 'cell "- [x] T018 [P] [US3] Extend `apps/platform/tests/Feature/Operations/TenantlessOperationRunViewerTest.php` or the nearest focused monitoring suite for reconciled-terminal detail language regression protection." [ref=e9394]':
|
|
- code [ref=e9395]: "- [x] T018 [P] [US3] Extend `apps/platform/tests/Feature/Operations/TenantlessOperationRunViewerTest.php` or the nearest focused monitoring suite for reconciled-terminal detail language regression protection."
|
|
- row "97 +" [ref=e9396]:
|
|
- cell [ref=e9397]
|
|
- cell "97" [ref=e9398]: "97"
|
|
- cell [ref=e9399]
|
|
- cell "+" [ref=e9400]:
|
|
- generic [ref=e9401]: +
|
|
- cell [ref=e9402]:
|
|
- code
|
|
- 'row "98 + ### Implementation for User Story 3" [ref=e9403]':
|
|
- cell [ref=e9404]
|
|
- cell "98" [ref=e9405]: "98"
|
|
- cell [ref=e9406]
|
|
- cell "+" [ref=e9407]:
|
|
- generic [ref=e9408]: +
|
|
- cell "### Implementation for User Story 3" [ref=e9409]:
|
|
- code [ref=e9410]: "### Implementation for User Story 3"
|
|
- row "99 +" [ref=e9411]:
|
|
- cell [ref=e9412]
|
|
- cell "99" [ref=e9413]: "99"
|
|
- cell [ref=e9414]
|
|
- cell "+" [ref=e9415]:
|
|
- generic [ref=e9416]: +
|
|
- cell [ref=e9417]:
|
|
- code
|
|
- 'row "100 + - [x] T019 [US3] Tighten cautious stale-active wording in `apps/platform/app/Support/OpsUx/RunDurationInsights.php` and `apps/platform/app/Support/OpsUx/OperationUxPresenter.php` so the generic path says only what current lifecycle truth can prove." [ref=e9418]':
|
|
- cell [ref=e9419]
|
|
- cell "100" [ref=e9420]: "100"
|
|
- cell [ref=e9421]
|
|
- cell "+" [ref=e9422]:
|
|
- generic [ref=e9423]: +
|
|
- 'cell "- [x] T019 [US3] Tighten cautious stale-active wording in `apps/platform/app/Support/OpsUx/RunDurationInsights.php` and `apps/platform/app/Support/OpsUx/OperationUxPresenter.php` so the generic path says only what current lifecycle truth can prove." [ref=e9424]':
|
|
- code [ref=e9425]: "- [x] T019 [US3] Tighten cautious stale-active wording in `apps/platform/app/Support/OpsUx/RunDurationInsights.php` and `apps/platform/app/Support/OpsUx/OperationUxPresenter.php` so the generic path says only what current lifecycle truth can prove."
|
|
- 'row "101 + - [x] T020 [US3] Confirm `apps/platform/app/Console/Commands/TenantpilotReconcileOperationRuns.php` and `apps/platform/app/Console/Commands/OpsReconcileAdapterRuns.php` need no runtime change and document that no command-layer change was required." [ref=e9426]':
|
|
- cell [ref=e9427]
|
|
- cell "101" [ref=e9428]: "101"
|
|
- cell [ref=e9429]
|
|
- cell "+" [ref=e9430]:
|
|
- generic [ref=e9431]: +
|
|
- 'cell "- [x] T020 [US3] Confirm `apps/platform/app/Console/Commands/TenantpilotReconcileOperationRuns.php` and `apps/platform/app/Console/Commands/OpsReconcileAdapterRuns.php` need no runtime change and document that no command-layer change was required." [ref=e9432]':
|
|
- code [ref=e9433]: "- [x] T020 [US3] Confirm `apps/platform/app/Console/Commands/TenantpilotReconcileOperationRuns.php` and `apps/platform/app/Console/Commands/OpsReconcileAdapterRuns.php` need no runtime change and document that no command-layer change was required."
|
|
- row "102 +" [ref=e9434]:
|
|
- cell [ref=e9435]
|
|
- cell "102" [ref=e9436]: "102"
|
|
- cell [ref=e9437]
|
|
- cell "+" [ref=e9438]:
|
|
- generic [ref=e9439]: +
|
|
- cell [ref=e9440]:
|
|
- code
|
|
- 'row "103 + **Checkpoint**: User Story 3 is independently functional when generic stale wording stays cautious and existing terminal reconciliation remains intact." [ref=e9441]':
|
|
- cell [ref=e9442]
|
|
- cell "103" [ref=e9443]: "103"
|
|
- cell [ref=e9444]
|
|
- cell "+" [ref=e9445]:
|
|
- generic [ref=e9446]: +
|
|
- 'cell "**Checkpoint**: User Story 3 is independently functional when generic stale wording stays cautious and existing terminal reconciliation remains intact." [ref=e9447]':
|
|
- code [ref=e9448]: "**Checkpoint**: User Story 3 is independently functional when generic stale wording stays cautious and existing terminal reconciliation remains intact."
|
|
- row "104 +" [ref=e9449]:
|
|
- cell [ref=e9450]
|
|
- cell "104" [ref=e9451]: "104"
|
|
- cell [ref=e9452]
|
|
- cell "+" [ref=e9453]:
|
|
- generic [ref=e9454]: +
|
|
- cell [ref=e9455]:
|
|
- code
|
|
- row "105 + ---" [ref=e9456]:
|
|
- cell [ref=e9457]
|
|
- cell "105" [ref=e9458]: "105"
|
|
- cell [ref=e9459]
|
|
- cell "+" [ref=e9460]:
|
|
- generic [ref=e9461]: +
|
|
- cell "---" [ref=e9462]:
|
|
- code [ref=e9463]: "---"
|
|
- row "106 +" [ref=e9464]:
|
|
- cell [ref=e9465]
|
|
- cell "106" [ref=e9466]: "106"
|
|
- cell [ref=e9467]
|
|
- cell "+" [ref=e9468]:
|
|
- generic [ref=e9469]: +
|
|
- cell [ref=e9470]:
|
|
- code
|
|
- 'row "107 + ## Phase 6: Polish & Cross-Cutting Validation" [ref=e9471]':
|
|
- cell [ref=e9472]
|
|
- cell "107" [ref=e9473]: "107"
|
|
- cell [ref=e9474]
|
|
- cell "+" [ref=e9475]:
|
|
- generic [ref=e9476]: +
|
|
- 'cell "## Phase 6: Polish & Cross-Cutting Validation" [ref=e9477]':
|
|
- code [ref=e9478]: "## Phase 6: Polish & Cross-Cutting Validation"
|
|
- row "108 +" [ref=e9479]:
|
|
- cell [ref=e9480]
|
|
- cell "108" [ref=e9481]: "108"
|
|
- cell [ref=e9482]
|
|
- cell "+" [ref=e9483]:
|
|
- generic [ref=e9484]: +
|
|
- cell [ref=e9485]:
|
|
- code
|
|
- 'row "109 + **Purpose**: validate the bounded slice, stop drift, and hand off a clean implementation path." [ref=e9486]':
|
|
- cell [ref=e9487]
|
|
- cell "109" [ref=e9488]: "109"
|
|
- cell [ref=e9489]
|
|
- cell "+" [ref=e9490]:
|
|
- generic [ref=e9491]: +
|
|
- 'cell "**Purpose**: validate the bounded slice, stop drift, and hand off a clean implementation path." [ref=e9492]':
|
|
- code [ref=e9493]: "**Purpose**: validate the bounded slice, stop drift, and hand off a clean implementation path."
|
|
- row "110 +" [ref=e9494]:
|
|
- cell [ref=e9495]
|
|
- cell "110" [ref=e9496]: "110"
|
|
- cell [ref=e9497]
|
|
- cell "+" [ref=e9498]:
|
|
- generic [ref=e9499]: +
|
|
- cell [ref=e9500]:
|
|
- code
|
|
- 'row "111 + - [x] T021 [P] Refresh `specs/358-operationrun-queue-truth-foundation/spec.md`, `plan.md`, and `checklists/requirements.md` only if implementation proves a thinner or broader touched-file boundary." [ref=e9501]':
|
|
- cell [ref=e9502]
|
|
- cell "111" [ref=e9503]: "111"
|
|
- cell [ref=e9504]
|
|
- cell "+" [ref=e9505]:
|
|
- generic [ref=e9506]: +
|
|
- 'cell "- [x] T021 [P] Refresh `specs/358-operationrun-queue-truth-foundation/spec.md`, `plan.md`, and `checklists/requirements.md` only if implementation proves a thinner or broader touched-file boundary." [ref=e9507]':
|
|
- code [ref=e9508]: "- [x] T021 [P] Refresh `specs/358-operationrun-queue-truth-foundation/spec.md`, `plan.md`, and `checklists/requirements.md` only if implementation proves a thinner or broader touched-file boundary."
|
|
- 'row "112 + - [x] T022 [P] Run `cd apps/platform && ./vendor/bin/sail artisan test --compact tests/Unit/Support/OpsUx/OperationRunProgressContractTest.php`." [ref=e9509]':
|
|
- cell [ref=e9510]
|
|
- cell "112" [ref=e9511]: "112"
|
|
- cell [ref=e9512]
|
|
- cell "+" [ref=e9513]:
|
|
- generic [ref=e9514]: +
|
|
- 'cell "- [x] T022 [P] Run `cd apps/platform && ./vendor/bin/sail artisan test --compact tests/Unit/Support/OpsUx/OperationRunProgressContractTest.php`." [ref=e9515]':
|
|
- code [ref=e9516]: "- [x] T022 [P] Run `cd apps/platform && ./vendor/bin/sail artisan test --compact tests/Unit/Support/OpsUx/OperationRunProgressContractTest.php`."
|
|
- 'row "113 + - [x] T023 [P] Run `cd apps/platform && ./vendor/bin/sail artisan test --compact tests/Feature/OpsUx/ActivityFeedbackSurfaceTest.php tests/Feature/OpsUx/BulkOperationProgressDbOnlyTest.php tests/Feature/MonitoringOperationsTest.php tests/Feature/Monitoring/OperationLifecycleFreshnessPresentationTest.php tests/Feature/Monitoring/MonitoringOperationsTest.php tests/Feature/Filament/OperationRunEnterpriseDetailPageTest.php tests/Feature/Operations/TenantlessOperationRunViewerTest.php`." [ref=e9517]':
|
|
- cell [ref=e9518]
|
|
- cell "113" [ref=e9519]: "113"
|
|
- cell [ref=e9520]
|
|
- cell "+" [ref=e9521]:
|
|
- generic [ref=e9522]: +
|
|
- 'cell "- [x] T023 [P] Run `cd apps/platform && ./vendor/bin/sail artisan test --compact tests/Feature/OpsUx/ActivityFeedbackSurfaceTest.php tests/Feature/OpsUx/BulkOperationProgressDbOnlyTest.php tests/Feature/MonitoringOperationsTest.php tests/Feature/Monitoring/OperationLifecycleFreshnessPresentationTest.php tests/Feature/Monitoring/MonitoringOperationsTest.php tests/Feature/Filament/OperationRunEnterpriseDetailPageTest.php tests/Feature/Operations/TenantlessOperationRunViewerTest.php`." [ref=e9523]':
|
|
- code [ref=e9524]: "- [x] T023 [P] Run `cd apps/platform && ./vendor/bin/sail artisan test --compact tests/Feature/OpsUx/ActivityFeedbackSurfaceTest.php tests/Feature/OpsUx/BulkOperationProgressDbOnlyTest.php tests/Feature/MonitoringOperationsTest.php tests/Feature/Monitoring/OperationLifecycleFreshnessPresentationTest.php tests/Feature/Monitoring/MonitoringOperationsTest.php tests/Feature/Filament/OperationRunEnterpriseDetailPageTest.php tests/Feature/Operations/TenantlessOperationRunViewerTest.php`."
|
|
- 'row "114 + - [x] T024 [P] Run `cd apps/platform && ./vendor/bin/sail bin pint --dirty --format agent` for touched platform files." [ref=e9525]':
|
|
- cell [ref=e9526]
|
|
- cell "114" [ref=e9527]: "114"
|
|
- cell [ref=e9528]
|
|
- cell "+" [ref=e9529]:
|
|
- generic [ref=e9530]: +
|
|
- 'cell "- [x] T024 [P] Run `cd apps/platform && ./vendor/bin/sail bin pint --dirty --format agent` for touched platform files." [ref=e9531]':
|
|
- code [ref=e9532]: "- [x] T024 [P] Run `cd apps/platform && ./vendor/bin/sail bin pint --dirty --format agent` for touched platform files."
|
|
- 'row "115 + - [x] T025 [P] Run `git diff --check`." [ref=e9533]':
|
|
- cell [ref=e9534]
|
|
- cell "115" [ref=e9535]: "115"
|
|
- cell [ref=e9536]
|
|
- cell "+" [ref=e9537]:
|
|
- generic [ref=e9538]: +
|
|
- 'cell "- [x] T025 [P] Run `git diff --check`." [ref=e9539]':
|
|
- code [ref=e9540]: "- [x] T025 [P] Run `git diff --check`."
|
|
- 'row "116 + - [x] T026 [P] Record the final queue-truth wording, proof boundaries, and any retained cautious-language decisions in the active feature close-out entry `Guardrail / Smoke Coverage`." [ref=e9541]':
|
|
- cell [ref=e9542]
|
|
- cell "116" [ref=e9543]: "116"
|
|
- cell [ref=e9544]
|
|
- cell "+" [ref=e9545]:
|
|
- generic [ref=e9546]: +
|
|
- 'cell "- [x] T026 [P] Record the final queue-truth wording, proof boundaries, and any retained cautious-language decisions in the active feature close-out entry `Guardrail / Smoke Coverage`." [ref=e9547]':
|
|
- code [ref=e9548]: "- [x] T026 [P] Record the final queue-truth wording, proof boundaries, and any retained cautious-language decisions in the active feature close-out entry `Guardrail / Smoke Coverage`."
|
|
- row "117 +" [ref=e9549]:
|
|
- cell [ref=e9550]
|
|
- cell "117" [ref=e9551]: "117"
|
|
- cell [ref=e9552]
|
|
- cell "+" [ref=e9553]:
|
|
- generic [ref=e9554]: +
|
|
- cell [ref=e9555]:
|
|
- code
|
|
- row "118 + ---" [ref=e9556]:
|
|
- cell [ref=e9557]
|
|
- cell "118" [ref=e9558]: "118"
|
|
- cell [ref=e9559]
|
|
- cell "+" [ref=e9560]:
|
|
- generic [ref=e9561]: +
|
|
- cell "---" [ref=e9562]:
|
|
- code [ref=e9563]: "---"
|
|
- row "119 +" [ref=e9564]:
|
|
- cell [ref=e9565]
|
|
- cell "119" [ref=e9566]: "119"
|
|
- cell [ref=e9567]
|
|
- cell "+" [ref=e9568]:
|
|
- generic [ref=e9569]: +
|
|
- cell [ref=e9570]:
|
|
- code
|
|
- 'row "120 + ## Dependencies & Execution Order" [ref=e9571]':
|
|
- cell [ref=e9572]
|
|
- cell "120" [ref=e9573]: "120"
|
|
- cell [ref=e9574]
|
|
- cell "+" [ref=e9575]:
|
|
- generic [ref=e9576]: +
|
|
- cell "## Dependencies & Execution Order" [ref=e9577]:
|
|
- code [ref=e9578]: "## Dependencies & Execution Order"
|
|
- row "121 +" [ref=e9579]:
|
|
- cell [ref=e9580]
|
|
- cell "121" [ref=e9581]: "121"
|
|
- cell [ref=e9582]
|
|
- cell "+" [ref=e9583]:
|
|
- generic [ref=e9584]: +
|
|
- cell [ref=e9585]:
|
|
- code
|
|
- 'row "122 + ### Phase Dependencies" [ref=e9586]':
|
|
- cell [ref=e9587]
|
|
- cell "122" [ref=e9588]: "122"
|
|
- cell [ref=e9589]
|
|
- cell "+" [ref=e9590]:
|
|
- generic [ref=e9591]: +
|
|
- cell "### Phase Dependencies" [ref=e9592]:
|
|
- code [ref=e9593]: "### Phase Dependencies"
|
|
- row "123 +" [ref=e9594]:
|
|
- cell [ref=e9595]
|
|
- cell "123" [ref=e9596]: "123"
|
|
- cell [ref=e9597]
|
|
- cell "+" [ref=e9598]:
|
|
- generic [ref=e9599]: +
|
|
- cell [ref=e9600]:
|
|
- code
|
|
- 'row "124 + - **Setup (Phase 1)**: no dependencies" [ref=e9601]':
|
|
- cell [ref=e9602]
|
|
- cell "124" [ref=e9603]: "124"
|
|
- cell [ref=e9604]
|
|
- cell "+" [ref=e9605]:
|
|
- generic [ref=e9606]: +
|
|
- 'cell "- **Setup (Phase 1)**: no dependencies" [ref=e9607]':
|
|
- code [ref=e9608]: "- **Setup (Phase 1)**: no dependencies"
|
|
- 'row "125 + - **Foundational (Phase 2)**: depends on Setup and blocks all story work" [ref=e9609]':
|
|
- cell [ref=e9610]
|
|
- cell "125" [ref=e9611]: "125"
|
|
- cell [ref=e9612]
|
|
- cell "+" [ref=e9613]:
|
|
- generic [ref=e9614]: +
|
|
- 'cell "- **Foundational (Phase 2)**: depends on Setup and blocks all story work" [ref=e9615]':
|
|
- code [ref=e9616]: "- **Foundational (Phase 2)**: depends on Setup and blocks all story work"
|
|
- 'row "126 + - **US1 (Phase 3)**: depends on Foundational completion" [ref=e9617]':
|
|
- cell [ref=e9618]
|
|
- cell "126" [ref=e9619]: "126"
|
|
- cell [ref=e9620]
|
|
- cell "+" [ref=e9621]:
|
|
- generic [ref=e9622]: +
|
|
- 'cell "- **US1 (Phase 3)**: depends on Foundational completion" [ref=e9623]':
|
|
- code [ref=e9624]: "- **US1 (Phase 3)**: depends on Foundational completion"
|
|
- 'row "127 + - **US2 (Phase 4)**: depends on Foundational completion and is easiest after US1 settles the shared wording" [ref=e9625]':
|
|
- cell [ref=e9626]
|
|
- cell "127" [ref=e9627]: "127"
|
|
- cell [ref=e9628]
|
|
- cell "+" [ref=e9629]:
|
|
- generic [ref=e9630]: +
|
|
- 'cell "- **US2 (Phase 4)**: depends on Foundational completion and is easiest after US1 settles the shared wording" [ref=e9631]':
|
|
- code [ref=e9632]: "- **US2 (Phase 4)**: depends on Foundational completion and is easiest after US1 settles the shared wording"
|
|
- 'row "128 + - **US3 (Phase 5)**: depends on US1 and US2 because it confirms the final generic truth boundary" [ref=e9633]':
|
|
- cell [ref=e9634]
|
|
- cell "128" [ref=e9635]: "128"
|
|
- cell [ref=e9636]
|
|
- cell "+" [ref=e9637]:
|
|
- generic [ref=e9638]: +
|
|
- 'cell "- **US3 (Phase 5)**: depends on US1 and US2 because it confirms the final generic truth boundary" [ref=e9639]':
|
|
- code [ref=e9640]: "- **US3 (Phase 5)**: depends on US1 and US2 because it confirms the final generic truth boundary"
|
|
- 'row "129 + - **Polish (Phase 6)**: depends on all desired user stories" [ref=e9641]':
|
|
- cell [ref=e9642]
|
|
- cell "129" [ref=e9643]: "129"
|
|
- cell [ref=e9644]
|
|
- cell "+" [ref=e9645]:
|
|
- generic [ref=e9646]: +
|
|
- 'cell "- **Polish (Phase 6)**: depends on all desired user stories" [ref=e9647]':
|
|
- code [ref=e9648]: "- **Polish (Phase 6)**: depends on all desired user stories"
|
|
- row "130 +" [ref=e9649]:
|
|
- cell [ref=e9650]
|
|
- cell "130" [ref=e9651]: "130"
|
|
- cell [ref=e9652]
|
|
- cell "+" [ref=e9653]:
|
|
- generic [ref=e9654]: +
|
|
- cell [ref=e9655]:
|
|
- code
|
|
- 'row "131 + ### Parallel Opportunities" [ref=e9656]':
|
|
- cell [ref=e9657]
|
|
- cell "131" [ref=e9658]: "131"
|
|
- cell [ref=e9659]
|
|
- cell "+" [ref=e9660]:
|
|
- generic [ref=e9661]: +
|
|
- cell "### Parallel Opportunities" [ref=e9662]:
|
|
- code [ref=e9663]: "### Parallel Opportunities"
|
|
- row "132 +" [ref=e9664]:
|
|
- cell [ref=e9665]
|
|
- cell "132" [ref=e9666]: "132"
|
|
- cell [ref=e9667]
|
|
- cell "+" [ref=e9668]:
|
|
- generic [ref=e9669]: +
|
|
- cell [ref=e9670]:
|
|
- code
|
|
- 'row "133 + - `T002`, `T003`, and `T004` can run in parallel." [ref=e9671]':
|
|
- cell [ref=e9672]
|
|
- cell "133" [ref=e9673]: "133"
|
|
- cell [ref=e9674]
|
|
- cell "+" [ref=e9675]:
|
|
- generic [ref=e9676]: +
|
|
- 'cell "- `T002`, `T003`, and `T004` can run in parallel." [ref=e9677]':
|
|
- code [ref=e9678]: "- `T002`, `T003`, and `T004` can run in parallel."
|
|
- 'row "134 + - `T005` and `T006` can run in parallel after the current contradiction is confirmed." [ref=e9679]':
|
|
- cell [ref=e9680]
|
|
- cell "134" [ref=e9681]: "134"
|
|
- cell [ref=e9682]
|
|
- cell "+" [ref=e9683]:
|
|
- generic [ref=e9684]: +
|
|
- 'cell "- `T005` and `T006` can run in parallel after the current contradiction is confirmed." [ref=e9685]':
|
|
- code [ref=e9686]: "- `T005` and `T006` can run in parallel after the current contradiction is confirmed."
|
|
- 'row "135 + - `T008` and `T009` can run in parallel." [ref=e9687]':
|
|
- cell [ref=e9688]
|
|
- cell "135" [ref=e9689]: "135"
|
|
- cell [ref=e9690]
|
|
- cell "+" [ref=e9691]:
|
|
- generic [ref=e9692]: +
|
|
- 'cell "- `T008` and `T009` can run in parallel." [ref=e9693]':
|
|
- code [ref=e9694]: "- `T008` and `T009` can run in parallel."
|
|
- 'row "136 + - `T013` and `T014` can run in parallel." [ref=e9695]':
|
|
- cell [ref=e9696]
|
|
- cell "136" [ref=e9697]: "136"
|
|
- cell [ref=e9698]
|
|
- cell "+" [ref=e9699]:
|
|
- generic [ref=e9700]: +
|
|
- 'cell "- `T013` and `T014` can run in parallel." [ref=e9701]':
|
|
- code [ref=e9702]: "- `T013` and `T014` can run in parallel."
|
|
- 'row "137 + - `T022`, `T023`, `T024`, and `T025` can run in parallel after implementation is stable." [ref=e9703]':
|
|
- cell [ref=e9704]
|
|
- cell "137" [ref=e9705]: "137"
|
|
- cell [ref=e9706]
|
|
- cell "+" [ref=e9707]:
|
|
- generic [ref=e9708]: +
|
|
- 'cell "- `T022`, `T023`, `T024`, and `T025` can run in parallel after implementation is stable." [ref=e9709]':
|
|
- code [ref=e9710]: "- `T022`, `T023`, `T024`, and `T025` can run in parallel after implementation is stable."
|
|
- row "138 +" [ref=e9711]:
|
|
- cell [ref=e9712]
|
|
- cell "138" [ref=e9713]: "138"
|
|
- cell [ref=e9714]
|
|
- cell "+" [ref=e9715]:
|
|
- generic [ref=e9716]: +
|
|
- cell [ref=e9717]:
|
|
- code
|
|
- 'row "139 + ### Implementation Strategy" [ref=e9718]':
|
|
- cell [ref=e9719]
|
|
- cell "139" [ref=e9720]: "139"
|
|
- cell [ref=e9721]
|
|
- cell "+" [ref=e9722]:
|
|
- generic [ref=e9723]: +
|
|
- cell "### Implementation Strategy" [ref=e9724]:
|
|
- code [ref=e9725]: "### Implementation Strategy"
|
|
- row "140 +" [ref=e9726]:
|
|
- cell [ref=e9727]
|
|
- cell "140" [ref=e9728]: "140"
|
|
- cell [ref=e9729]
|
|
- cell "+" [ref=e9730]:
|
|
- generic [ref=e9731]: +
|
|
- cell [ref=e9732]:
|
|
- code
|
|
- row "141 + 1. Freeze the shared queue-truth derivation first." [ref=e9733]:
|
|
- cell [ref=e9734]
|
|
- cell "141" [ref=e9735]: "141"
|
|
- cell [ref=e9736]
|
|
- cell "+" [ref=e9737]:
|
|
- generic [ref=e9738]: +
|
|
- cell "1. Freeze the shared queue-truth derivation first." [ref=e9739]:
|
|
- code [ref=e9740]: 1. Freeze the shared queue-truth derivation first.
|
|
- row "142 + 2. Ship US1 to remove the stale-vs-queue contradiction on shell/list surfaces." [ref=e9741]:
|
|
- cell [ref=e9742]
|
|
- cell "142" [ref=e9743]: "142"
|
|
- cell [ref=e9744]
|
|
- cell "+" [ref=e9745]:
|
|
- generic [ref=e9746]: +
|
|
- cell "2. Ship US1 to remove the stale-vs-queue contradiction on shell/list surfaces." [ref=e9747]:
|
|
- code [ref=e9748]: 2. Ship US1 to remove the stale-vs-queue contradiction on shell/list surfaces.
|
|
- row "143 + 3. Ship US2 so canonical detail confirms the same truth." [ref=e9749]:
|
|
- cell [ref=e9750]
|
|
- cell "143" [ref=e9751]: "143"
|
|
- cell [ref=e9752]
|
|
- cell "+" [ref=e9753]:
|
|
- generic [ref=e9754]: +
|
|
- cell "3. Ship US2 so canonical detail confirms the same truth." [ref=e9755]:
|
|
- code [ref=e9756]: 3. Ship US2 so canonical detail confirms the same truth.
|
|
- row "144 + 4. Ship US3 to protect the narrow boundary against overclaiming or framework creep." [ref=e9757]:
|
|
- cell [ref=e9758]
|
|
- cell "144" [ref=e9759]: "144"
|
|
- cell [ref=e9760]
|
|
- cell "+" [ref=e9761]:
|
|
- generic [ref=e9762]: +
|
|
- cell "4. Ship US3 to protect the narrow boundary against overclaiming or framework creep." [ref=e9763]:
|
|
- code [ref=e9764]: 4. Ship US3 to protect the narrow boundary against overclaiming or framework creep.
|
|
- row "145 + 5. Finish with the focused validation commands and close-out notes." [ref=e9765]:
|
|
- cell [ref=e9766]
|
|
- cell "145" [ref=e9767]: "145"
|
|
- cell [ref=e9768]
|
|
- cell "+" [ref=e9769]:
|
|
- generic [ref=e9770]: +
|
|
- cell "5. Finish with the focused validation commands and close-out notes." [ref=e9771]:
|
|
- code [ref=e9772]: 5. Finish with the focused validation commands and close-out notes.
|
|
- row "146 +" [ref=e9773]:
|
|
- cell [ref=e9774]
|
|
- cell "146" [ref=e9775]: "146"
|
|
- cell [ref=e9776]
|
|
- cell "+" [ref=e9777]:
|
|
- generic [ref=e9778]: +
|
|
- cell [ref=e9779]:
|
|
- code
|
|
- 'row "147 + ## Guardrail / Smoke Coverage" [ref=e9780]':
|
|
- cell [ref=e9781]
|
|
- cell "147" [ref=e9782]: "147"
|
|
- cell [ref=e9783]
|
|
- cell "+" [ref=e9784]:
|
|
- generic [ref=e9785]: +
|
|
- cell "## Guardrail / Smoke Coverage" [ref=e9786]:
|
|
- code [ref=e9787]: "## Guardrail / Smoke Coverage"
|
|
- row "148 +" [ref=e9788]:
|
|
- cell [ref=e9789]
|
|
- cell "148" [ref=e9790]: "148"
|
|
- cell [ref=e9791]
|
|
- cell "+" [ref=e9792]:
|
|
- generic [ref=e9793]: +
|
|
- cell [ref=e9794]:
|
|
- code
|
|
- 'row "149 + - Final queue-truth wording keeps stale-active guidance at `Past the lifecycle window. Review worker health and logs before retrying.` and removes competing calm queue/progress copy from shell, list, and top-level detail surfaces." [ref=e9795]':
|
|
- cell [ref=e9796]
|
|
- cell "149" [ref=e9797]: "149"
|
|
- cell [ref=e9798]
|
|
- cell "+" [ref=e9799]:
|
|
- generic [ref=e9800]: +
|
|
- 'cell "- Final queue-truth wording keeps stale-active guidance at `Past the lifecycle window. Review worker health and logs before retrying.` and removes competing calm queue/progress copy from shell, list, and top-level detail surfaces." [ref=e9801]':
|
|
- code [ref=e9802]: "- Final queue-truth wording keeps stale-active guidance at `Past the lifecycle window. Review worker health and logs before retrying.` and removes competing calm queue/progress copy from shell, list, and top-level detail surfaces."
|
|
- 'row "150 + - Proof boundary remains shared-first: `OperationRunProgressContract` owns stale-active progress truth, `OperationUxPresenter` owns aligned lifecycle/detail guidance, and the shell/list/detail surfaces consume those shared seams instead of local fallback wording." [ref=e9803]':
|
|
- cell [ref=e9804]
|
|
- cell "150" [ref=e9805]: "150"
|
|
- cell [ref=e9806]
|
|
- cell "+" [ref=e9807]:
|
|
- generic [ref=e9808]: +
|
|
- 'cell "- Proof boundary remains shared-first: `OperationRunProgressContract` owns stale-active progress truth, `OperationUxPresenter` owns aligned lifecycle/detail guidance, and the shell/list/detail surfaces consume those shared seams instead of local fallback wording." [ref=e9809]':
|
|
- code [ref=e9810]: "- Proof boundary remains shared-first: `OperationRunProgressContract` owns stale-active progress truth, `OperationUxPresenter` owns aligned lifecycle/detail guidance, and the shell/list/detail surfaces consume those shared seams instead of local fallback wording."
|
|
- 'row "151 + - Browser smoke path used the real local route `GET /admin/local/smoke-login` and verified `/admin/workspaces/38/operations` followed by the primary `Open operation` drilldown to `/admin/workspaces/38/operations/82`." [ref=e9811]':
|
|
- cell [ref=e9812]
|
|
- cell "151" [ref=e9813]: "151"
|
|
- cell [ref=e9814]
|
|
- cell "+" [ref=e9815]:
|
|
- generic [ref=e9816]: +
|
|
- 'cell "- Browser smoke path used the real local route `GET /admin/local/smoke-login` and verified `/admin/workspaces/38/operations` followed by the primary `Open operation` drilldown to `/admin/workspaces/38/operations/82`." [ref=e9817]':
|
|
- code [ref=e9818]: "- Browser smoke path used the real local route `GET /admin/local/smoke-login` and verified `/admin/workspaces/38/operations` followed by the primary `Open operation` drilldown to `/admin/workspaces/38/operations/82`."
|
|
- 'row "152 + - Browser smoke confirmed stale wording is visible on both hub and detail, while `Waiting for worker.`, `Progress details pending.`, and `4 / 10 processed (40%)` do not appear as primary stale-active guidance." [ref=e9819]':
|
|
- cell [ref=e9820]
|
|
- cell "152" [ref=e9821]: "152"
|
|
- cell [ref=e9822]
|
|
- cell "+" [ref=e9823]:
|
|
- generic [ref=e9824]: +
|
|
- 'cell "- Browser smoke confirmed stale wording is visible on both hub and detail, while `Waiting for worker.`, `Progress details pending.`, and `4 / 10 processed (40%)` do not appear as primary stale-active guidance." [ref=e9825]':
|
|
- code [ref=e9826]: "- Browser smoke confirmed stale wording is visible on both hub and detail, while `Waiting for worker.`, `Progress details pending.`, and `4 / 10 processed (40%)` do not appear as primary stale-active guidance."
|
|
- 'row "153 + - No runtime change was required in `apps/platform/app/Filament/Pages/Monitoring/Operations.php`, `apps/platform/app/Filament/Resources/OperationRunResource.php`, `apps/platform/app/Filament/Pages/Operations/TenantlessOperationRunViewer.php`, `apps/platform/app/Console/Commands/TenantpilotReconcileOperationRuns.php`, or `apps/platform/app/Console/Commands/OpsReconcileAdapterRuns.php`; the existing shared seams consumed the contract/presenter updates directly." [ref=e9827]':
|
|
- cell [ref=e9828]
|
|
- cell "153" [ref=e9829]: "153"
|
|
- cell [ref=e9830]
|
|
- cell "+" [ref=e9831]:
|
|
- generic [ref=e9832]: +
|
|
- 'cell "- No runtime change was required in `apps/platform/app/Filament/Pages/Monitoring/Operations.php`, `apps/platform/app/Filament/Resources/OperationRunResource.php`, `apps/platform/app/Filament/Pages/Operations/TenantlessOperationRunViewer.php`, `apps/platform/app/Console/Commands/TenantpilotReconcileOperationRuns.php`, or `apps/platform/app/Console/Commands/OpsReconcileAdapterRuns.php`; the existing shared seams consumed the contract/presenter updates directly." [ref=e9833]':
|
|
- code [ref=e9834]: "- No runtime change was required in `apps/platform/app/Filament/Pages/Monitoring/Operations.php`, `apps/platform/app/Filament/Resources/OperationRunResource.php`, `apps/platform/app/Filament/Pages/Operations/TenantlessOperationRunViewer.php`, `apps/platform/app/Console/Commands/TenantpilotReconcileOperationRuns.php`, or `apps/platform/app/Console/Commands/OpsReconcileAdapterRuns.php`; the existing shared seams consumed the contract/presenter updates directly."
|
|
- row "154 + - Validation evidence:" [ref=e9835]:
|
|
- cell [ref=e9836]
|
|
- cell "154" [ref=e9837]: "154"
|
|
- cell [ref=e9838]
|
|
- cell "+" [ref=e9839]:
|
|
- generic [ref=e9840]: +
|
|
- cell "- Validation evidence:" [ref=e9841]:
|
|
- code [ref=e9842]: "- Validation evidence:"
|
|
- 'row "155 + - `cd apps/platform && ./vendor/bin/sail artisan test --compact tests/Unit/Support/OpsUx/OperationRunProgressContractTest.php`" [ref=e9843]':
|
|
- cell [ref=e9844]
|
|
- cell "155" [ref=e9845]: "155"
|
|
- cell [ref=e9846]
|
|
- cell "+" [ref=e9847]:
|
|
- generic [ref=e9848]: +
|
|
- 'cell "- `cd apps/platform && ./vendor/bin/sail artisan test --compact tests/Unit/Support/OpsUx/OperationRunProgressContractTest.php`" [ref=e9849]':
|
|
- code [ref=e9850]: "- `cd apps/platform && ./vendor/bin/sail artisan test --compact tests/Unit/Support/OpsUx/OperationRunProgressContractTest.php`"
|
|
- 'row "156 + - `cd apps/platform && ./vendor/bin/sail artisan test --compact tests/Feature/OpsUx/BulkOperationProgressDbOnlyTest.php tests/Feature/OpsUx/ActivityFeedbackSurfaceTest.php`" [ref=e9851]':
|
|
- cell [ref=e9852]
|
|
- cell "156" [ref=e9853]: "156"
|
|
- cell [ref=e9854]
|
|
- cell "+" [ref=e9855]:
|
|
- generic [ref=e9856]: +
|
|
- 'cell "- `cd apps/platform && ./vendor/bin/sail artisan test --compact tests/Feature/OpsUx/BulkOperationProgressDbOnlyTest.php tests/Feature/OpsUx/ActivityFeedbackSurfaceTest.php`" [ref=e9857]':
|
|
- code [ref=e9858]: "- `cd apps/platform && ./vendor/bin/sail artisan test --compact tests/Feature/OpsUx/BulkOperationProgressDbOnlyTest.php tests/Feature/OpsUx/ActivityFeedbackSurfaceTest.php`"
|
|
- 'row "157 + - `cd apps/platform && ./vendor/bin/sail artisan test --compact tests/Feature/MonitoringOperationsTest.php tests/Feature/Monitoring/OperationLifecycleFreshnessPresentationTest.php tests/Feature/Monitoring/MonitoringOperationsTest.php`" [ref=e9859]':
|
|
- cell [ref=e9860]
|
|
- cell "157" [ref=e9861]: "157"
|
|
- cell [ref=e9862]
|
|
- cell "+" [ref=e9863]:
|
|
- generic [ref=e9864]: +
|
|
- 'cell "- `cd apps/platform && ./vendor/bin/sail artisan test --compact tests/Feature/MonitoringOperationsTest.php tests/Feature/Monitoring/OperationLifecycleFreshnessPresentationTest.php tests/Feature/Monitoring/MonitoringOperationsTest.php`" [ref=e9865]':
|
|
- code [ref=e9866]: "- `cd apps/platform && ./vendor/bin/sail artisan test --compact tests/Feature/MonitoringOperationsTest.php tests/Feature/Monitoring/OperationLifecycleFreshnessPresentationTest.php tests/Feature/Monitoring/MonitoringOperationsTest.php`"
|
|
- 'row "158 + - `cd apps/platform && ./vendor/bin/sail artisan test --compact tests/Feature/Filament/OperationRunEnterpriseDetailPageTest.php tests/Feature/Operations/TenantlessOperationRunViewerTest.php`" [ref=e9867]':
|
|
- cell [ref=e9868]
|
|
- cell "158" [ref=e9869]: "158"
|
|
- cell [ref=e9870]
|
|
- cell "+" [ref=e9871]:
|
|
- generic [ref=e9872]: +
|
|
- 'cell "- `cd apps/platform && ./vendor/bin/sail artisan test --compact tests/Feature/Filament/OperationRunEnterpriseDetailPageTest.php tests/Feature/Operations/TenantlessOperationRunViewerTest.php`" [ref=e9873]':
|
|
- code [ref=e9874]: "- `cd apps/platform && ./vendor/bin/sail artisan test --compact tests/Feature/Filament/OperationRunEnterpriseDetailPageTest.php tests/Feature/Operations/TenantlessOperationRunViewerTest.php`"
|
|
- 'row "159 + - `cd apps/platform && ./vendor/bin/sail bin pint --dirty --format agent`" [ref=e9875]':
|
|
- cell [ref=e9876]
|
|
- cell "159" [ref=e9877]: "159"
|
|
- cell [ref=e9878]
|
|
- cell "+" [ref=e9879]:
|
|
- generic [ref=e9880]: +
|
|
- 'cell "- `cd apps/platform && ./vendor/bin/sail bin pint --dirty --format agent`" [ref=e9881]':
|
|
- code [ref=e9882]: "- `cd apps/platform && ./vendor/bin/sail bin pint --dirty --format agent`"
|
|
- 'row "160 + - `git diff --check`" [ref=e9883]':
|
|
- cell [ref=e9884]
|
|
- cell "160" [ref=e9885]: "160"
|
|
- cell [ref=e9886]
|
|
- cell "+" [ref=e9887]:
|
|
- generic [ref=e9888]: +
|
|
- 'cell "- `git diff --check`" [ref=e9889]':
|
|
- code [ref=e9890]: "- `git diff --check`"
|
|
- group "Fußzeile" [ref=e9891]:
|
|
- contentinfo "Über die Software" [ref=e9892]:
|
|
- link "Powered by Gitea" [ref=e9893] [cursor=pointer]:
|
|
- /url: https://about.gitea.com
|
|
- text: "Version: 1.22.3 Seite:"
|
|
- strong [ref=e9894]: 766ms
|
|
- text: "Template:"
|
|
- strong [ref=e9895]: 514ms
|
|
- group "Links" [ref=e9896]:
|
|
- menu [ref=e9897] [cursor=pointer]:
|
|
- generic [ref=e9898]:
|
|
- img [ref=e9899]
|
|
- text: Deutsch
|
|
- link "Lizenzen" [ref=e9901] [cursor=pointer]:
|
|
- /url: /assets/licenses.txt
|
|
- link "API" [ref=e9902] [cursor=pointer]:
|
|
- /url: /api/swagger
|
|
- menu [ref=e9906]:
|
|
- generic [active] [ref=e9908]:
|
|
- menuitem "Releases" [ref=e9909] [cursor=pointer]:
|
|
- img [ref=e9910]
|
|
- generic [ref=e9912]: Releases
|
|
- menuitem "Wiki" [ref=e9913] [cursor=pointer]:
|
|
- img [ref=e9914]
|
|
- generic [ref=e9916]: Wiki
|
|
- menuitem "Aktivität" [ref=e9917] [cursor=pointer]:
|
|
- img [ref=e9918]
|
|
- generic [ref=e9920]: Aktivität
|
|
- img [ref=e9922] |