diff --git a/.codeyam/android-tests.xml b/.codeyam/android-tests.xml index 7c95ebc..877e053 100644 --- a/.codeyam/android-tests.xml +++ b/.codeyam/android-tests.xml @@ -1,41 +1,41 @@ - + - + - - - - + + + + - + - + - - - + + + - + - + - - - + + + - + @@ -47,77 +47,77 @@ - + - + - + - + - + - - - + + + - - + + - - - + + + - + - + - + - + - + - + - + - + @@ -125,50 +125,50 @@ - + - + - + - + - + - + - + - - + + - + - + - + - + - + @@ -176,90 +176,90 @@ - + - - + + - WARNING: A Java agent has been loaded dynamically (/Users/nadiaeldeib/.gradle/caches/8.13/transforms/a39dad86e65fa8c606005d4b0689ab1a/transformed/byte-buddy-agent-1.18.7.jar) + WARNING: A Java agent has been loaded dynamically (/Users/jaredcosulich/.gradle/caches/8.13/transforms/a39dad86e65fa8c606005d4b0689ab1a/transformed/byte-buddy-agent-1.18.7.jar) WARNING: If a serviceability tool is in use, please run with -XX:+EnableDynamicAgentLoading to hide this warning WARNING: If a serviceability tool is not in use, please run with -Djdk.instrument.traceUsage for more information WARNING: Dynamic loading of agents will be disallowed by default in a future release -Aug 10, 2026 1:45:09 PM app.cash.paparazzi.internal.resources.base.BasicStyleResourceItem <init> +Aug 11, 2026 3:50:39 PM app.cash.paparazzi.internal.resources.base.BasicStyleResourceItem <init> WARNING: Conflicting definitions of "fontFamily" in style "TextAppearance.Toast" -Aug 10, 2026 1:45:09 PM app.cash.paparazzi.internal.resources.base.BasicStyleResourceItem <init> +Aug 11, 2026 3:50:39 PM app.cash.paparazzi.internal.resources.base.BasicStyleResourceItem <init> WARNING: Conflicting definitions of "textColor" in style "NotificationAction" -Aug 10, 2026 1:45:09 PM app.cash.paparazzi.internal.resources.base.BasicStyleResourceItem <init> +Aug 11, 2026 3:50:39 PM app.cash.paparazzi.internal.resources.base.BasicStyleResourceItem <init> WARNING: Conflicting definitions of "fontFamily" in style "TextAppearance.DeviceDefault.Notification" -Aug 10, 2026 1:45:09 PM app.cash.paparazzi.internal.resources.base.BasicStyleResourceItem <init> +Aug 11, 2026 3:50:39 PM app.cash.paparazzi.internal.resources.base.BasicStyleResourceItem <init> WARNING: Conflicting definitions of "fontFamily" in style "TextAppearance.DeviceDefault.Notification.Title" -Aug 10, 2026 1:45:09 PM app.cash.paparazzi.internal.resources.base.BasicStyleResourceItem <init> +Aug 11, 2026 3:50:39 PM app.cash.paparazzi.internal.resources.base.BasicStyleResourceItem <init> WARNING: Conflicting definitions of "fontFamily" in style "TextAppearance.DeviceDefault.Notification.BigTitle" -Aug 10, 2026 1:45:09 PM app.cash.paparazzi.internal.resources.base.BasicStyleResourceItem <init> +Aug 11, 2026 3:50:39 PM app.cash.paparazzi.internal.resources.base.BasicStyleResourceItem <init> WARNING: Conflicting definitions of "fontFamily" in style "TextAppearance.DeviceDefault.Notification.Reply" -Aug 10, 2026 1:45:09 PM app.cash.paparazzi.internal.resources.base.BasicStyleResourceItem <init> +Aug 11, 2026 3:50:39 PM app.cash.paparazzi.internal.resources.base.BasicStyleResourceItem <init> WARNING: Conflicting definitions of "fontFamily" in style "TextAppearance.DeviceDefault.Notification.Info" -Aug 10, 2026 1:45:09 PM app.cash.paparazzi.internal.resources.base.BasicStyleResourceItem <init> +Aug 11, 2026 3:50:39 PM app.cash.paparazzi.internal.resources.base.BasicStyleResourceItem <init> WARNING: Conflicting definitions of "fontFamily" in style "TextAppearance.DeviceDefault.Notification.Time" -Aug 10, 2026 1:45:09 PM app.cash.paparazzi.internal.PaparazziLogger logAndroidFramework -INFO: SystemFonts [2]: Loading font config from /Users/nadiaeldeib/.gradle/caches/8.13/transforms/a921bde85f3917657d0428903d0ec774/transformed/layoutlib-runtime-16.2.1-mac-arm/data/fonts/fonts.xml -Aug 10, 2026 1:45:09 PM app.cash.paparazzi.internal.PaparazziLogger logAndroidFramework -INFO: SystemFonts [2]: Loading font config from /Users/nadiaeldeib/.gradle/caches/8.13/transforms/a921bde85f3917657d0428903d0ec774/transformed/layoutlib-runtime-16.2.1-mac-arm/data/fonts/font_fallback.xml -Aug 10, 2026 1:45:09 PM app.cash.paparazzi.internal.PaparazziLogger logAndroidFramework +Aug 11, 2026 3:50:39 PM app.cash.paparazzi.internal.PaparazziLogger logAndroidFramework +INFO: SystemFonts [2]: Loading font config from /Users/jaredcosulich/.gradle/caches/8.13/transforms/a921bde85f3917657d0428903d0ec774/transformed/layoutlib-runtime-16.2.1-mac-arm/data/fonts/fonts.xml +Aug 11, 2026 3:50:39 PM app.cash.paparazzi.internal.PaparazziLogger logAndroidFramework +INFO: SystemFonts [2]: Loading font config from /Users/jaredcosulich/.gradle/caches/8.13/transforms/a921bde85f3917657d0428903d0ec774/transformed/layoutlib-runtime-16.2.1-mac-arm/data/fonts/font_fallback.xml +Aug 11, 2026 3:50:39 PM app.cash.paparazzi.internal.PaparazziLogger logAndroidFramework INFO: HWUI [2]: Using Fontation backend (prop=Auto) -Aug 10, 2026 1:45:10 PM app.cash.paparazzi.internal.PaparazziLogger logAndroidFramework +Aug 11, 2026 3:50:39 PM app.cash.paparazzi.internal.PaparazziLogger logAndroidFramework INFO: PlatformAconfigPackage [3]: android.os.flagging.AconfigStorageReadException: ERROR_CANNOT_READ_STORAGE_FILE: Fail to mmap storage -Aug 10, 2026 1:45:10 PM app.cash.paparazzi.internal.PaparazziLogger logAndroidFramework +Aug 11, 2026 3:50:39 PM app.cash.paparazzi.internal.PaparazziLogger logAndroidFramework INFO: PlatformAconfigPackage [3]: android.os.flagging.AconfigStorageReadException: ERROR_CANNOT_READ_STORAGE_FILE: Fail to mmap storage -Aug 10, 2026 1:45:10 PM app.cash.paparazzi.internal.PaparazziLogger logAndroidFramework +Aug 11, 2026 3:50:39 PM app.cash.paparazzi.internal.PaparazziLogger logAndroidFramework INFO: PlatformAconfigPackage [3]: android.os.flagging.AconfigStorageReadException: ERROR_CANNOT_READ_STORAGE_FILE: Fail to mmap storage -Aug 10, 2026 1:45:10 PM app.cash.paparazzi.internal.PaparazziLogger logAndroidFramework +Aug 11, 2026 3:50:39 PM app.cash.paparazzi.internal.PaparazziLogger logAndroidFramework INFO: PlatformAconfigPackage [3]: android.os.flagging.AconfigStorageReadException: ERROR_CANNOT_READ_STORAGE_FILE: Fail to mmap storage -Aug 10, 2026 1:45:10 PM app.cash.paparazzi.internal.PaparazziLogger logAndroidFramework +Aug 11, 2026 3:50:39 PM app.cash.paparazzi.internal.PaparazziLogger logAndroidFramework INFO: FeatureFlagsImplExport [4]: android.os.flagging.AconfigStorageReadException: ERROR_PACKAGE_NOT_FOUND: package android.xr cannot be found on the device -Aug 10, 2026 1:45:10 PM app.cash.paparazzi.internal.PaparazziLogger logAndroidFramework +Aug 11, 2026 3:50:39 PM app.cash.paparazzi.internal.PaparazziLogger logAndroidFramework INFO: FeatureFlagsImplExport [4]: android.os.flagging.AconfigStorageReadException: ERROR_PACKAGE_NOT_FOUND: package android.os.profiling.anomaly.flags cannot be found on the device -Aug 10, 2026 1:45:11 PM app.cash.paparazzi.internal.PaparazziLogger logAndroidFramework +Aug 11, 2026 3:50:39 PM app.cash.paparazzi.internal.PaparazziLogger logAndroidFramework INFO: InputEventCompatHandler [2]: Input compatibility 413207127 is enabled for com.codeyam.android -Aug 10, 2026 1:45:11 PM app.cash.paparazzi.internal.PaparazziLogger logAndroidFramework +Aug 11, 2026 3:50:40 PM app.cash.paparazzi.internal.PaparazziLogger logAndroidFramework INFO: ImageReader_JNI [3]: Unable to acquire a buffer item, very likely client tried to acquire more than maxImages buffers -Aug 10, 2026 1:45:11 PM app.cash.paparazzi.internal.PaparazziLogger logAndroidFramework +Aug 11, 2026 3:50:40 PM app.cash.paparazzi.internal.PaparazziLogger logAndroidFramework INFO: InputEventCompatHandler [2]: Input compatibility 413207127 is enabled for com.codeyam.android -Aug 10, 2026 1:45:11 PM app.cash.paparazzi.internal.PaparazziLogger logAndroidFramework +Aug 11, 2026 3:50:40 PM app.cash.paparazzi.internal.PaparazziLogger logAndroidFramework INFO: ImageReader_JNI [3]: Unable to acquire a buffer item, very likely client tried to acquire more than maxImages buffers - + - - - - + + + + - + - - - + + + - + - + - - + + @@ -268,7 +268,7 @@ INFO: ImageReader_JNI [3]: Unable to acquire a buffer item, very likely client t - + diff --git a/.codeyam/capture.js b/.codeyam/capture.js index c592a63..c754b56 100644 --- a/.codeyam/capture.js +++ b/.codeyam/capture.js @@ -1,6 +1,6 @@ #!/usr/bin/env node // codeyam-generated — DO NOT EDIT. -// codeyam-editor: 0.1.7 source-sha256: 4fe4b359c961df71859167234ae09e1151243a35bb377dae755e650555be2d3e +// codeyam-editor: 0.1.7 source-sha256: ef6a93a53c3713f399320bd8f89b4481cac2ebdd6359057e89d6b79c9a53808f // Render environment (colorScheme, deviceScaleFactor, userAgent, locale, // timezoneId, reduceMotion, forcedColors) is read from config when present @@ -193,14 +193,40 @@ const { // inject it here from the on-box 0600 token file. const SESSION_COOKIE = "cy_session"; +// The loopback names the editor can be addressed by. A cookie is scoped by +// HOST, and the jar does NOT treat these as interchangeable: a cookie stored for +// `localhost` is simply not sent to `127.0.0.1`. That matters because the two +// token-gated capture routes resolve their origin differently — the harness +// route via `resolveHarnessOrigin()` (typically `localhost`), the preview-proxy +// route via `PROXY_CAPTURE_LOOPBACK` in handlers.rs, which is deliberately +// IPv4-pinned to `127.0.0.1` so it matches the forwarder's own pinning. Scoping +// the cookie to `localhost` alone therefore authenticated the harness route and +// left every `/__codeyam_preview` capture with no credential, so `preview-verify` +// / `preview-interact` / `preview-flow` all 401'd on a non-loopback bind. +// Emitting one cookie per alias is the fix: same token, same on-box editor, +// whichever name the capture URL happens to use. +const LOOPBACK_COOKIE_DOMAINS = ["localhost", "127.0.0.1"]; + +// Extract the host from an origin string, or null when it is unparseable. +function originHost(origin) { + try { + return new URL(origin).hostname; + } catch (_) { + return null; + } +} + // Build the Playwright cookie array that authenticates the capture context to // the editor's token-gated control-API. Reads the on-box `.codeyam/session-token` -// (0600) and scopes a `cy_session` cookie to `localhost` (localhost cookies are -// port-agnostic, so the same cookie covers the harness origin on the control -// port and any `/api` call on the app-proxy port). Returns `[]` — a no-op — when -// there is no token file (a loopback bind that never persisted one) or no -// resolvable harness origin, so a laptop capture is completely unaffected. -// `deps` is injectable so the builder is unit-testable without disk. +// (0600) and emits a `cy_session` cookie for every host the capture might address +// the editor by (see `LOOPBACK_COOKIE_DOMAINS`); cookies are port-agnostic, so +// one per host covers the harness origin on the control port, the preview-proxy +// route, and any `/api` call on the app-proxy port. A non-loopback harness origin +// (a cloud tunnel domain) additionally gets its own host, since no loopback alias +// would match it. Returns `[]` — a no-op — when there is no token file (a +// loopback bind that never persisted one) or no resolvable harness origin, so a +// laptop capture is completely unaffected. `deps` is injectable so the builder is +// unit-testable without disk. function buildSessionTokenCookies({ readTokenFile = () => { const p = path.join(process.cwd(), ".codeyam", "session-token"); @@ -211,16 +237,19 @@ function buildSessionTokenCookies({ try { const token = readTokenFile(); if (!token || !harnessOrigin) return []; - return [ - { - name: SESSION_COOKIE, - value: token, - domain: "localhost", - path: "/", - httpOnly: true, - sameSite: "Lax", - }, - ]; + const host = originHost(harnessOrigin); + const domains = [...LOOPBACK_COOKIE_DOMAINS]; + // A tunnelled/cloud harness origin is not a loopback alias, so it needs its + // own entry or the harness navigation goes out uncredentialed. + if (host && !domains.includes(host)) domains.push(host); + return domains.map((domain) => ({ + name: SESSION_COOKIE, + value: token, + domain, + path: "/", + httpOnly: true, + sameSite: "Lax", + })); } catch (_) { // A missing/unreadable token file must never break capture on a loopback // bind where the token isn't required anyway — degrade to no cookie. @@ -819,9 +848,14 @@ async function runScenarioCheck( config, { preflight = assertAppPortReachable, harnessOrigin } = {}, ) { - const resolvedHarnessOrigin = - harnessOrigin !== undefined ? harnessOrigin : resolveHarnessOrigin(); const { url, outputPath, width, height, httpMocks = {} } = config; + // The harness host mirrors the capture target's host so the framed load stays + // SAME-SITE — see `resolveHarnessOrigin`. A cross-site frame withholds the + // SameSite=Lax `cy_session` cookie and every token-gated route 401s. + const resolvedHarnessOrigin = + harnessOrigin !== undefined + ? harnessOrigin + : resolveHarnessOrigin({ targetUrl: url }); // Per-scenario capture-check allowances (see `CaptureAllowances` / // `ScenarioDefinition` on the Rust side). Default false so the guards keep // their strict behavior for every scenario that does not opt in. diff --git a/.codeyam/dependency-graph.json b/.codeyam/dependency-graph.json index 3ce93af..df0fe0e 100644 --- a/.codeyam/dependency-graph.json +++ b/.codeyam/dependency-graph.json @@ -1,529 +1,549 @@ { "files": { - ".claude/hooks/_step_metadata.py": { - "importedBy": [], - "imports": [] + "ios/Sources/AppCore/CodeyamIsolated/SettingsToggleRowIsolated.swift": { + "imports": [], + "importedBy": [] }, - ".claude/hooks/editor-pretool-hook.py": { - "importedBy": [], - "imports": [] + "ios/Sources/AppCore/CodeyamIsolated/ControlButtonIsolated.swift": { + "imports": [], + "importedBy": [] }, - ".claude/hooks/editor-step-hook.py": { - "importedBy": [], - "imports": [] + "android/app/src/test/java/com/codeyam/android/ui/GraphGeometryTest.kt": { + "imports": [], + "importedBy": [] }, - ".claude/skills/review-session/scripts/extract-session-helpers.mjs": { - "importedBy": [ - ".claude/skills/review-session/scripts/extract-session.mjs" - ], - "imports": [] + "ios/Tests/AppCoreTests/ThemeTests.swift": { + "imports": [], + "importedBy": [] }, - ".claude/skills/review-session/scripts/extract-session.mjs": { - "importedBy": [], - "imports": [ - ".claude/skills/review-session/scripts/extract-session-helpers.mjs" - ] + "android/app/build.gradle.kts": { + "imports": [], + "importedBy": [] }, - ".claude/skills/review-session/scripts/find-last-session-helpers.mjs": { - "importedBy": [ - ".claude/skills/review-session/scripts/find-last-session.mjs" - ], - "imports": [] + "android/app/src/main/java/com/codeyam/android/ui/CountHero.kt": { + "imports": [], + "importedBy": [] }, - ".claude/skills/review-session/scripts/find-last-session.mjs": { - "importedBy": [], - "imports": [ - ".claude/skills/review-session/scripts/find-last-session-helpers.mjs" - ] + "ios/Sources/AppCore/Views/CounterBottomBar.swift": { + "imports": [], + "importedBy": [] }, - "android/app/build.gradle.kts": { - "importedBy": [], - "imports": [] + "android/app/src/main/java/com/codeyam/android/ui/CounterScreenState.kt": { + "imports": [], + "importedBy": [] }, - "android/app/src/main/java/com/codeyam/android/MainActivity.kt": { - "importedBy": [], - "imports": [] + "ios/Sources/AppCore/Views/GraphHistorySelector.swift": { + "imports": [], + "importedBy": [] }, - "android/app/src/main/java/com/codeyam/android/model/AppSettings.kt": { - "importedBy": [], - "imports": [] + "ios/Tests/AppCoreTests/AppSettingsTests.swift": { + "imports": [], + "importedBy": [] }, - "android/app/src/main/java/com/codeyam/android/model/Counter.kt": { - "importedBy": [], - "imports": [] + "android/app/src/main/java/com/codeyam/android/ui/CounterDot.kt": { + "imports": [], + "importedBy": [] }, - "android/app/src/main/java/com/codeyam/android/model/CounterFeedback.kt": { - "importedBy": [], - "imports": [] + ".claude/skills/review-session/scripts/find-last-session.mjs": { + "imports": [ + ".claude/skills/review-session/scripts/find-last-session-helpers.mjs" + ], + "importedBy": [] }, - "android/app/src/main/java/com/codeyam/android/model/CounterHistory.kt": { - "importedBy": [], - "imports": [] + "android/build.gradle.kts": { + "imports": [], + "importedBy": [] }, - "android/app/src/main/java/com/codeyam/android/model/CounterModel.kt": { - "importedBy": [], - "imports": [] + "ios/Sources/AppCore/Views/GearButton.swift": { + "imports": [], + "importedBy": [] }, - "android/app/src/main/java/com/codeyam/android/model/CounterTheme.kt": { - "importedBy": [], - "imports": [] + "ios/Sources/AppCore/Views/GraphEventList.swift": { + "imports": [], + "importedBy": [] }, - "android/app/src/main/java/com/codeyam/android/model/KeyValueStore.kt": { - "importedBy": [], - "imports": [] + "android/app/src/test/java/com/codeyam/android/model/AppSettingsTest.kt": { + "imports": [], + "importedBy": [] }, - "android/app/src/main/java/com/codeyam/android/model/SeedPolicy.kt": { - "importedBy": [], - "imports": [] + "android/app/src/main/java/com/codeyam/android/ui/CounterIcons.kt": { + "imports": [], + "importedBy": [] + }, + ".claude/skills/review-session/scripts/extract-session.mjs": { + "imports": [ + ".claude/skills/review-session/scripts/extract-session-helpers.mjs" + ], + "importedBy": [] + }, + "android/app/src/main/java/com/codeyam/android/ui/CounterSwitcherCard.kt": { + "imports": [], + "importedBy": [] }, "android/app/src/main/java/com/codeyam/android/model/SettingsOverlays.kt": { - "importedBy": [], - "imports": [] + "imports": [], + "importedBy": [] }, - "android/app/src/main/java/com/codeyam/android/ui/AndroidFeedback.kt": { - "importedBy": [], - "imports": [] + "ios/Sources/AppCore/CodeyamIsolated/AppSettingsPanelIsolated.swift": { + "imports": [], + "importedBy": [] }, - "android/app/src/main/java/com/codeyam/android/ui/AppSettingsPanel.kt": { - "importedBy": [], - "imports": [] + "ios/Sources/AppCore/Views/CounterSettingsPanel.swift": { + "imports": [], + "importedBy": [] }, - "android/app/src/main/java/com/codeyam/android/ui/ControlButton.kt": { - "importedBy": [], - "imports": [] + "android/app/src/main/java/com/codeyam/android/ui/CounterListPanel.kt": { + "imports": [], + "importedBy": [] }, - "android/app/src/main/java/com/codeyam/android/ui/CountFormat.kt": { - "importedBy": [], - "imports": [] + "ios/Sources/AppCore/Views/CounterSwitcherCard.swift": { + "imports": [], + "importedBy": [] }, - "android/app/src/main/java/com/codeyam/android/ui/CountHero.kt": { - "importedBy": [], - "imports": [] + "android/app/src/testDebug/java/com/codeyam/android/ui/AppSettingsPanelInteractionTest.kt": { + "imports": [], + "importedBy": [] }, "android/app/src/main/java/com/codeyam/android/ui/CounterBottomBar.kt": { - "importedBy": [], - "imports": [] + "imports": [], + "importedBy": [] }, - "android/app/src/main/java/com/codeyam/android/ui/CounterDot.kt": { - "importedBy": [], - "imports": [] + "ios/Sources/AppCore/Views/PanelScrollSupport.swift": { + "imports": [], + "importedBy": [] }, - "android/app/src/main/java/com/codeyam/android/ui/CounterGraphChart.kt": { - "importedBy": [], - "imports": [] + "android/app/src/test/java/com/codeyam/android/model/FeedbackTest.kt": { + "imports": [], + "importedBy": [] }, - "android/app/src/main/java/com/codeyam/android/ui/CounterIcons.kt": { - "importedBy": [], - "imports": [] + "ios/Sources/AppCore/Views/CounterDot.swift": { + "imports": [], + "importedBy": [] }, - "android/app/src/main/java/com/codeyam/android/ui/CounterListPanel.kt": { - "importedBy": [], - "imports": [] + "ios/Sources/AppCore/Views/CounterGraphChart.swift": { + "imports": [], + "importedBy": [] }, - "android/app/src/main/java/com/codeyam/android/ui/CounterScreen.kt": { - "importedBy": [], - "imports": [] + "android/app/src/test/java/com/codeyam/android/ui/AndroidFeedbackTest.kt": { + "imports": [], + "importedBy": [] }, - "android/app/src/main/java/com/codeyam/android/ui/CounterScreenState.kt": { - "importedBy": [], - "imports": [] + "ios/Sources/AppCore/Model.swift": { + "imports": [], + "importedBy": [] }, - "android/app/src/main/java/com/codeyam/android/ui/CounterSettingsPanel.kt": { - "importedBy": [], - "imports": [] + "ios/Tests/AppCoreTests/FeedbackTests.swift": { + "imports": [], + "importedBy": [] }, - "android/app/src/main/java/com/codeyam/android/ui/CounterSwitcherCard.kt": { - "importedBy": [], - "imports": [] + "android/app/src/test/java/com/codeyam/android/model/SettingsOverlaysTest.kt": { + "imports": [], + "importedBy": [] }, - "android/app/src/main/java/com/codeyam/android/ui/GraphGeometry.kt": { - "importedBy": [], - "imports": [] + ".claude/hooks/_step_metadata.py": { + "imports": [], + "importedBy": [] }, - "android/app/src/main/java/com/codeyam/android/ui/GraphPage.kt": { - "importedBy": [], - "imports": [] + "ios/Sources/AppCore/CodeyamIsolated/CounterColorPickerIsolated.swift": { + "imports": [], + "importedBy": [] }, - "android/app/src/main/java/com/codeyam/android/ui/HeaderBar.kt": { - "importedBy": [], - "imports": [] + "android/app/src/main/java/com/codeyam/android/ui/ControlButton.kt": { + "imports": [], + "importedBy": [] }, - "android/app/src/main/java/com/codeyam/android/ui/PanelChrome.kt": { - "importedBy": [], - "imports": [] + "ios/Sources/AppCore/Views/HeaderAnchoredOverlay.swift": { + "imports": [], + "importedBy": [] }, - "android/app/src/main/java/com/codeyam/android/ui/SettingsControls.kt": { - "importedBy": [], - "imports": [] + "ios/Sources/AppCore/SeedPolicy.swift": { + "imports": [], + "importedBy": [] }, - "android/app/src/main/java/com/codeyam/android/ui/Theme.kt": { - "importedBy": [], - "imports": [] + "ios/Sources/AppCore/CodeyamIsolated/GraphHeaderIsolated.swift": { + "imports": [], + "importedBy": [] }, - "android/app/src/test/java/com/codeyam/android/MainViewModelTest.kt": { - "importedBy": [], - "imports": [] + "ios/Sources/AppCore/CodeyamIsolated/OverridePickerIsolated.swift": { + "imports": [], + "importedBy": [] }, - "android/app/src/test/java/com/codeyam/android/model/AppSettingsTest.kt": { - "importedBy": [], - "imports": [] + "android/app/src/main/java/com/codeyam/android/ui/AndroidFeedback.kt": { + "imports": [], + "importedBy": [] }, - "android/app/src/test/java/com/codeyam/android/model/CounterModelTest.kt": { - "importedBy": [], - "imports": [] + "android/app/src/main/java/com/codeyam/android/ui/CounterSettingsPanel.kt": { + "imports": [], + "importedBy": [] }, - "android/app/src/test/java/com/codeyam/android/model/CounterThemeTest.kt": { - "importedBy": [], - "imports": [] + "android/app/src/main/java/com/codeyam/android/ui/HeaderBar.kt": { + "imports": [], + "importedBy": [] }, - "android/app/src/test/java/com/codeyam/android/model/FeedbackTest.kt": { - "importedBy": [], - "imports": [] + "ios/Sources/AppCore/CodeyamIsolated/CodeyamIsolationHost.swift": { + "imports": [], + "importedBy": [] }, - "android/app/src/test/java/com/codeyam/android/model/SettingsOverlaysTest.kt": { - "importedBy": [], - "imports": [] + "android/app/src/main/java/com/codeyam/android/ui/SettingsControls.kt": { + "imports": [], + "importedBy": [] }, - "android/app/src/test/java/com/codeyam/android/ui/AndroidFeedbackTest.kt": { - "importedBy": [], - "imports": [] + ".claude/skills/review-session/scripts/extract-session-helpers.mjs": { + "imports": [], + "importedBy": [ + ".claude/skills/review-session/scripts/extract-session.mjs" + ] }, - "android/app/src/test/java/com/codeyam/android/ui/CountFormatTest.kt": { - "importedBy": [], - "imports": [] + "ios/Sources/AppCore/Views/HeaderBar.swift": { + "imports": [], + "importedBy": [] }, - "android/app/src/test/java/com/codeyam/android/ui/CountHeroSizingTest.kt": { - "importedBy": [], - "imports": [] + "ios/Sources/AppCore/CodeyamIsolated/IncrementBarIsolated.swift": { + "imports": [], + "importedBy": [] }, - "android/app/src/test/java/com/codeyam/android/ui/CountHeroSnapshotTest.kt": { - "importedBy": [], - "imports": [] + ".claude/skills/review-session/scripts/find-last-session-helpers.mjs": { + "imports": [], + "importedBy": [ + ".claude/skills/review-session/scripts/find-last-session.mjs" + ] }, - "android/app/src/test/java/com/codeyam/android/ui/CounterScreenStateTest.kt": { - "importedBy": [], - "imports": [] + "ios/Sources/AppCore/CodeyamIsolated/CounterGraphViewIsolated.swift": { + "imports": [], + "importedBy": [] }, - "android/app/src/test/java/com/codeyam/android/ui/GraphGeometryTest.kt": { - "importedBy": [], - "imports": [] + "ui/src/helpers/stepLabels.generated.ts": { + "imports": [], + "importedBy": [] }, - "android/app/src/testDebug/java/com/codeyam/android/ui/AppSettingsPanelInteractionTest.kt": { - "importedBy": [], - "imports": [] + "ios/Sources/AppCore/Views/IncrementFaceButtonStyle.swift": { + "imports": [], + "importedBy": [] }, - "android/build.gradle.kts": { - "importedBy": [], - "imports": [] + "android/app/src/main/java/com/codeyam/android/MainActivity.kt": { + "imports": [], + "importedBy": [] }, "android/scripts/merge-test-results.py": { - "importedBy": [], - "imports": [] - }, - "android/settings.gradle.kts": { - "importedBy": [], - "imports": [] + "imports": [], + "importedBy": [] }, - "ios/App/App.swift": { - "importedBy": [], - "imports": [] + "ios/Sources/AppCore/Views/GraphPage.swift": { + "imports": [], + "importedBy": [] }, - "ios/Package.swift": { - "importedBy": [], - "imports": [] + "ios/Tests/AppCoreTests/CounterFeedbackOverrideTests.swift": { + "imports": [], + "importedBy": [] }, "ios/Sources/AppCore/AppSettings.swift": { - "importedBy": [], - "imports": [] + "imports": [], + "importedBy": [] }, - "ios/Sources/AppCore/CodeyamIsolated/AddCounterDotIsolated.swift": { - "importedBy": [], - "imports": [] + "ios/Sources/AppCore/CodeyamIsolated/CounterSettingsPanelIsolated.swift": { + "imports": [], + "importedBy": [] }, - "ios/Sources/AppCore/CodeyamIsolated/AppSettingsPanelIsolated.swift": { - "importedBy": [], - "imports": [] + "android/app/src/main/java/com/codeyam/android/model/AppSettings.kt": { + "imports": [], + "importedBy": [] }, - "ios/Sources/AppCore/CodeyamIsolated/BottomControlRowIsolated.swift": { - "importedBy": [], - "imports": [] + "android/app/src/main/java/com/codeyam/android/ui/PanelChrome.kt": { + "imports": [], + "importedBy": [] }, - "ios/Sources/AppCore/CodeyamIsolated/BoundedScrollIsolated.swift": { - "importedBy": [], - "imports": [] + "ios/Tests/AppCoreTests/ModelTests.swift": { + "imports": [], + "importedBy": [] }, - "ios/Sources/AppCore/CodeyamIsolated/CodeyamIsolationHost.swift": { - "importedBy": [], - "imports": [] + "android/app/src/test/java/com/codeyam/android/ui/CounterScreenStateTest.kt": { + "imports": [], + "importedBy": [] }, - "ios/Sources/AppCore/CodeyamIsolated/ControlButtonIsolated.swift": { - "importedBy": [], - "imports": [] + "ios/Sources/AppCore/CodeyamIsolated/CounterStepStepperIsolated.swift": { + "imports": [], + "importedBy": [] }, - "ios/Sources/AppCore/CodeyamIsolated/CountHeroIsolated.swift": { - "importedBy": [], - "imports": [] + "ios/Sources/AppCore/CodeyamIsolated/CounterSwitcherCardIsolated.swift": { + "imports": [], + "importedBy": [] }, - "ios/Sources/AppCore/CodeyamIsolated/CounterBottomBarIsolated.swift": { - "importedBy": [], - "imports": [] + "android/app/src/main/java/com/codeyam/android/model/CounterFeedback.kt": { + "imports": [], + "importedBy": [] }, - "ios/Sources/AppCore/CodeyamIsolated/CounterColorPickerIsolated.swift": { - "importedBy": [], - "imports": [] + "ios/Sources/AppCore/CodeyamIsolated/CounterGraphChartIsolated.swift": { + "imports": [], + "importedBy": [] }, - "ios/Sources/AppCore/CodeyamIsolated/CounterDotIsolated.swift": { - "importedBy": [], - "imports": [] + "android/app/src/main/java/com/codeyam/android/model/Counter.kt": { + "imports": [], + "importedBy": [] }, - "ios/Sources/AppCore/CodeyamIsolated/CounterGraphChartIsolated.swift": { - "importedBy": [], - "imports": [] + "ios/Sources/AppCore/Views/SettingsToggleRow.swift": { + "imports": [], + "importedBy": [] }, - "ios/Sources/AppCore/CodeyamIsolated/CounterGraphViewIsolated.swift": { - "importedBy": [], - "imports": [] + "android/app/src/main/java/com/codeyam/android/ui/AppSettingsPanel.kt": { + "imports": [], + "importedBy": [] }, - "ios/Sources/AppCore/CodeyamIsolated/CounterListPanelIsolated.swift": { - "importedBy": [], - "imports": [] + "android/app/src/main/java/com/codeyam/android/model/SeedPolicy.kt": { + "imports": [], + "importedBy": [] }, - "ios/Sources/AppCore/CodeyamIsolated/CounterSettingsPanelIsolated.swift": { - "importedBy": [], - "imports": [] + "ios/Sources/AppCore/Views/BottomControlRow.swift": { + "imports": [], + "importedBy": [] }, - "ios/Sources/AppCore/CodeyamIsolated/CounterStepStepperIsolated.swift": { - "importedBy": [], - "imports": [] + "ios/Sources/AppCore/Views/CounterGraphView.swift": { + "imports": [], + "importedBy": [] }, - "ios/Sources/AppCore/CodeyamIsolated/CounterSwitcherCardIsolated.swift": { - "importedBy": [], - "imports": [] + "ios/Sources/AppCore/Views/IncrementBar.swift": { + "imports": [], + "importedBy": [] }, - "ios/Sources/AppCore/CodeyamIsolated/DeleteCounterButtonIsolated.swift": { - "importedBy": [], - "imports": [] + "android/app/src/main/java/com/codeyam/android/model/KeyValueStore.kt": { + "imports": [], + "importedBy": [] }, - "ios/Sources/AppCore/CodeyamIsolated/FeedbackDisclosureToggleIsolated.swift": { - "importedBy": [], - "imports": [] + "android/app/src/main/java/com/codeyam/android/ui/CounterGraphChart.kt": { + "imports": [], + "importedBy": [] }, - "ios/Sources/AppCore/CodeyamIsolated/GearButtonIsolated.swift": { - "importedBy": [], - "imports": [] + "ios/Sources/AppCore/Views/AppSettingsPanel.swift": { + "imports": [], + "importedBy": [] }, - "ios/Sources/AppCore/CodeyamIsolated/GraphCloseButtonIsolated.swift": { - "importedBy": [], - "imports": [] + "android/app/src/main/java/com/codeyam/android/model/CounterModel.kt": { + "imports": [], + "importedBy": [] }, - "ios/Sources/AppCore/CodeyamIsolated/GraphEventListIsolated.swift": { - "importedBy": [], - "imports": [] + "android/app/src/test/java/com/codeyam/android/model/CounterModelTest.kt": { + "imports": [], + "importedBy": [] }, - "ios/Sources/AppCore/CodeyamIsolated/GraphHeaderIsolated.swift": { - "importedBy": [], - "imports": [] + "ios/Sources/AppCore/CodeyamIsolated/BottomControlRowIsolated.swift": { + "imports": [], + "importedBy": [] }, - "ios/Sources/AppCore/CodeyamIsolated/GraphHistorySelectorIsolated.swift": { - "importedBy": [], - "imports": [] + "ios/Sources/AppCore/Views/AddCounterDot.swift": { + "imports": [], + "importedBy": [] }, - "ios/Sources/AppCore/CodeyamIsolated/GraphPageIsolated.swift": { - "importedBy": [], - "imports": [] + "ios/Sources/AppCore/CodeyamIsolated/GraphEventListIsolated.swift": { + "imports": [], + "importedBy": [] }, - "ios/Sources/AppCore/CodeyamIsolated/HeaderBarIsolated.swift": { - "importedBy": [], - "imports": [] + "ios/Sources/AppCore/CodeyamIsolated/CounterBottomBarIsolated.swift": { + "imports": [], + "importedBy": [] }, - "ios/Sources/AppCore/CodeyamIsolated/IncrementBarIsolated.swift": { - "importedBy": [], - "imports": [] + "ios/Sources/AppCore/Views/SettingsField.swift": { + "imports": [], + "importedBy": [] }, - "ios/Sources/AppCore/CodeyamIsolated/OverridePickerIsolated.swift": { - "importedBy": [], - "imports": [] + "android/app/src/test/java/com/codeyam/android/model/CounterThemeTest.kt": { + "imports": [], + "importedBy": [] }, - "ios/Sources/AppCore/CodeyamIsolated/SettingsToggleRowIsolated.swift": { - "importedBy": [], - "imports": [] + "ios/Package.swift": { + "imports": [], + "importedBy": [] }, - "ios/Sources/AppCore/ContentView.swift": { - "importedBy": [], - "imports": [] + "android/app/src/testDebug/java/com/codeyam/android/ui/CounterScreenInsetsTest.kt": { + "imports": [], + "importedBy": [] }, - "ios/Sources/AppCore/Feedback.swift": { - "importedBy": [], - "imports": [] + "ios/Sources/AppCore/Views/CounterColorPicker.swift": { + "imports": [], + "importedBy": [] }, - "ios/Sources/AppCore/History.swift": { - "importedBy": [], - "imports": [] + "ios/Sources/AppCore/Views/GraphHeader.swift": { + "imports": [], + "importedBy": [] }, - "ios/Sources/AppCore/Model.swift": { - "importedBy": [], - "imports": [] + "ios/Sources/AppCore/CodeyamIsolated/DeleteCounterButtonIsolated.swift": { + "imports": [], + "importedBy": [] }, - "ios/Sources/AppCore/SeedPolicy.swift": { - "importedBy": [], - "imports": [] + "android/app/src/test/java/com/codeyam/android/ui/CountFormatTest.kt": { + "imports": [], + "importedBy": [] }, - "ios/Sources/AppCore/SettingsOverlays.swift": { - "importedBy": [], - "imports": [] + "ios/Sources/AppCore/CodeyamIsolated/CounterListPanelIsolated.swift": { + "imports": [], + "importedBy": [] }, - "ios/Sources/AppCore/Theme.swift": { - "importedBy": [], - "imports": [] + "ios/Sources/AppCore/Views/CountHero.swift": { + "imports": [], + "importedBy": [] }, - "ios/Sources/AppCore/Views/AddCounterDot.swift": { - "importedBy": [], - "imports": [] + "ios/Tests/AppCoreTests/SettingsOverlaysTests.swift": { + "imports": [], + "importedBy": [] }, - "ios/Sources/AppCore/Views/AppSettingsPanel.swift": { - "importedBy": [], - "imports": [] + "ios/Sources/AppCore/CodeyamIsolated/CounterDotIsolated.swift": { + "imports": [], + "importedBy": [] }, - "ios/Sources/AppCore/Views/BottomControlRow.swift": { - "importedBy": [], - "imports": [] + "ios/Sources/AppCore/CodeyamIsolated/GearButtonIsolated.swift": { + "imports": [], + "importedBy": [] }, - "ios/Sources/AppCore/Views/ControlButton.swift": { - "importedBy": [], - "imports": [] + "android/app/src/test/java/com/codeyam/android/ui/CountHeroSizingTest.kt": { + "imports": [], + "importedBy": [] }, - "ios/Sources/AppCore/Views/CountHero.swift": { - "importedBy": [], - "imports": [] + "ios/Sources/AppCore/CodeyamIsolated/AddCounterDotIsolated.swift": { + "imports": [], + "importedBy": [] }, - "ios/Sources/AppCore/Views/CounterBottomBar.swift": { - "importedBy": [], - "imports": [] + "android/app/src/main/java/com/codeyam/android/ui/GraphGeometry.kt": { + "imports": [], + "importedBy": [] }, - "ios/Sources/AppCore/Views/CounterColorPicker.swift": { - "importedBy": [], - "imports": [] + "ios/Sources/AppCore/CodeyamIsolated/BoundedScrollIsolated.swift": { + "imports": [], + "importedBy": [] }, - "ios/Sources/AppCore/Views/CounterDot.swift": { - "importedBy": [], - "imports": [] + "ios/Sources/AppCore/CodeyamIsolated/GraphHistorySelectorIsolated.swift": { + "imports": [], + "importedBy": [] }, - "ios/Sources/AppCore/Views/CounterGraphChart.swift": { - "importedBy": [], - "imports": [] + "ios/Sources/AppCore/Views/DeleteCounterButton.swift": { + "imports": [], + "importedBy": [] }, - "ios/Sources/AppCore/Views/CounterGraphView.swift": { - "importedBy": [], - "imports": [] + "ios/Sources/AppCore/Views/CounterStepStepper.swift": { + "imports": [], + "importedBy": [] }, - "ios/Sources/AppCore/Views/CounterListPanel.swift": { - "importedBy": [], - "imports": [] + "ios/Sources/AppCore/Theme.swift": { + "imports": [], + "importedBy": [] }, - "ios/Sources/AppCore/Views/CounterSettingsPanel.swift": { - "importedBy": [], - "imports": [] + "ios/Sources/AppCore/CodeyamIsolated/FeedbackDisclosureToggleIsolated.swift": { + "imports": [], + "importedBy": [] }, - "ios/Sources/AppCore/Views/CounterStepStepper.swift": { - "importedBy": [], - "imports": [] + "ios/Sources/AppCore/Views/ControlButton.swift": { + "imports": [], + "importedBy": [] }, - "ios/Sources/AppCore/Views/CounterSwitcherCard.swift": { - "importedBy": [], - "imports": [] + "store/appstore/gen_assets.py": { + "imports": [], + "importedBy": [] }, - "ios/Sources/AppCore/Views/DeleteCounterButton.swift": { - "importedBy": [], - "imports": [] + "ios/Sources/AppCore/Views/OverridePicker.swift": { + "imports": [], + "importedBy": [] }, - "ios/Sources/AppCore/Views/GearButton.swift": { - "importedBy": [], - "imports": [] + ".claude/hooks/editor-step-hook.py": { + "imports": [], + "importedBy": [] }, - "ios/Sources/AppCore/Views/GraphCloseButton.swift": { - "importedBy": [], - "imports": [] + "ios/Sources/AppCore/Feedback.swift": { + "imports": [], + "importedBy": [] }, - "ios/Sources/AppCore/Views/GraphEventList.swift": { - "importedBy": [], - "imports": [] + "ios/Sources/AppCore/CodeyamIsolated/GraphPageIsolated.swift": { + "imports": [], + "importedBy": [] }, - "ios/Sources/AppCore/Views/GraphHeader.swift": { - "importedBy": [], - "imports": [] + "android/app/src/test/java/com/codeyam/android/ui/CountHeroSnapshotTest.kt": { + "imports": [], + "importedBy": [] }, - "ios/Sources/AppCore/Views/GraphHistorySelector.swift": { - "importedBy": [], - "imports": [] + "ios/Sources/AppCore/History.swift": { + "imports": [], + "importedBy": [] }, - "ios/Sources/AppCore/Views/GraphPage.swift": { - "importedBy": [], - "imports": [] + "ios/Sources/AppCore/ContentView.swift": { + "imports": [], + "importedBy": [] }, - "ios/Sources/AppCore/Views/HeaderAnchoredOverlay.swift": { - "importedBy": [], - "imports": [] + "android/app/src/main/java/com/codeyam/android/ui/CounterScreen.kt": { + "imports": [], + "importedBy": [] }, - "ios/Sources/AppCore/Views/HeaderBar.swift": { - "importedBy": [], - "imports": [] + "android/app/src/main/java/com/codeyam/android/model/CounterTheme.kt": { + "imports": [], + "importedBy": [] }, - "ios/Sources/AppCore/Views/IncrementBar.swift": { - "importedBy": [], - "imports": [] + ".claude/hooks/editor-pretool-hook.py": { + "imports": [], + "importedBy": [] }, - "ios/Sources/AppCore/Views/IncrementFaceButtonStyle.swift": { - "importedBy": [], - "imports": [] + "ios/Sources/AppCore/CodeyamIsolated/CountHeroIsolated.swift": { + "imports": [], + "importedBy": [] }, - "ios/Sources/AppCore/Views/OverridePicker.swift": { - "importedBy": [], - "imports": [] + "android/app/src/main/java/com/codeyam/android/ui/GraphPage.kt": { + "imports": [], + "importedBy": [] }, - "ios/Sources/AppCore/Views/PanelScrollSupport.swift": { - "importedBy": [], - "imports": [] + "android/app/src/main/java/com/codeyam/android/model/CounterHistory.kt": { + "imports": [], + "importedBy": [] }, - "ios/Sources/AppCore/Views/SettingsField.swift": { - "importedBy": [], - "imports": [] + "ios/Sources/AppCore/SettingsOverlays.swift": { + "imports": [], + "importedBy": [] }, - "ios/Sources/AppCore/Views/SettingsToggleRow.swift": { - "importedBy": [], - "imports": [] + "android/app/src/main/java/com/codeyam/android/ui/Theme.kt": { + "imports": [], + "importedBy": [] }, - "ios/Tests/AppCoreTests/AppSettingsTests.swift": { - "importedBy": [], - "imports": [] + "ios/Sources/AppCore/Views/GraphCloseButton.swift": { + "imports": [], + "importedBy": [] }, - "ios/Tests/AppCoreTests/CounterFeedbackOverrideTests.swift": { - "importedBy": [], - "imports": [] + "ios/Sources/AppCore/CodeyamIsolated/GraphCloseButtonIsolated.swift": { + "imports": [], + "importedBy": [] }, - "ios/Tests/AppCoreTests/FeedbackTests.swift": { - "importedBy": [], - "imports": [] + "ios/Sources/AppCore/CodeyamIsolated/HeaderBarIsolated.swift": { + "imports": [], + "importedBy": [] }, - "ios/Tests/AppCoreTests/ModelTests.swift": { - "importedBy": [], - "imports": [] + "android/settings.gradle.kts": { + "imports": [], + "importedBy": [] }, - "ios/Tests/AppCoreTests/SettingsOverlaysTests.swift": { - "importedBy": [], - "imports": [] + "android/app/src/main/java/com/codeyam/android/ui/CountFormat.kt": { + "imports": [], + "importedBy": [] }, - "ios/Tests/AppCoreTests/ThemeTests.swift": { - "importedBy": [], - "imports": [] + "ios/Sources/AppCore/Views/CounterListPanel.swift": { + "imports": [], + "importedBy": [] }, - "store/appstore/gen_assets.py": { - "importedBy": [], - "imports": [] + "ios/App/App.swift": { + "imports": [], + "importedBy": [] + } + }, + "entities": { + ".claude/skills/review-session/scripts/find-last-session.mjs::__file_root__": { + "filePath": ".claude/skills/review-session/scripts/find-last-session.mjs", + "name": "__file_root__", + "imports": [ + ".claude/skills/review-session/scripts/find-last-session-helpers.mjs::claudeProjectHashFromPath" + ], + "importedBy": [] }, - "ui/src/helpers/stepLabels.generated.ts": { - "importedBy": [], - "imports": [] + ".claude/skills/review-session/scripts/extract-session.mjs::__file_root__": { + "filePath": ".claude/skills/review-session/scripts/extract-session.mjs", + "name": "__file_root__", + "imports": [ + ".claude/skills/review-session/scripts/extract-session-helpers.mjs::buildConversationTurns", + ".claude/skills/review-session/scripts/extract-session-helpers.mjs::detectFormat", + ".claude/skills/review-session/scripts/extract-session-helpers.mjs::detectFormatFromPath" + ], + "importedBy": [] } }, - "lastUpdated": "2026-08-10T20:00:24Z" -} + "lastUpdated": "2026-08-11T19:51:10Z" +} \ No newline at end of file diff --git a/.codeyam/editor.json b/.codeyam/editor.json index daf66fd..72c8772 100644 --- a/.codeyam/editor.json +++ b/.codeyam/editor.json @@ -133,6 +133,11 @@ "name": "_kv_pairs_to_int_dict", "reason": "derive-generated" }, + { + "filePath": ".claude/hooks/_step_metadata.py", + "name": "_no_test_slug_map", + "reason": "derive-generated" + }, { "filePath": ".claude/hooks/_step_metadata.py", "name": "_string_list", @@ -153,36 +158,261 @@ "name": "resolve_mode_table", "reason": "derive-generated" }, + { + "filePath": ".claude/hooks/editor-pretool-hook.py", + "name": "_call_args", + "reason": "derive-generated" + }, + { + "filePath": ".claude/hooks/editor-pretool-hook.py", + "name": "_codeyam_verb", + "reason": "derive-generated" + }, + { + "filePath": ".claude/hooks/editor-pretool-hook.py", + "name": "_configured_test_scripts", + "reason": "derive-generated" + }, + { + "filePath": ".claude/hooks/editor-pretool-hook.py", + "name": "_has_inplace_editor", + "reason": "derive-generated" + }, + { + "filePath": ".claude/hooks/editor-pretool-hook.py", + "name": "_in_command_position", + "reason": "derive-generated" + }, + { + "filePath": ".claude/hooks/editor-pretool-hook.py", + "name": "_invokes_configured_script", + "reason": "derive-generated" + }, + { + "filePath": ".claude/hooks/editor-pretool-hook.py", + "name": "_invokes_test_runner", + "reason": "derive-generated" + }, + { + "filePath": ".claude/hooks/editor-pretool-hook.py", + "name": "_is_integration_test_path", + "reason": "derive-generated" + }, + { + "filePath": ".claude/hooks/editor-pretool-hook.py", + "name": "_is_pcre_flag", + "reason": "derive-generated" + }, + { + "filePath": ".claude/hooks/editor-pretool-hook.py", + "name": "_is_rust_comment", + "reason": "derive-generated" + }, + { + "filePath": ".claude/hooks/editor-pretool-hook.py", + "name": "_leading_operand", + "reason": "derive-generated" + }, + { + "filePath": ".claude/hooks/editor-pretool-hook.py", + "name": "_module_target", + "reason": "derive-generated" + }, + { + "filePath": ".claude/hooks/editor-pretool-hook.py", + "name": "_path_tokens", + "reason": "derive-generated" + }, { "filePath": ".claude/hooks/editor-pretool-hook.py", "name": "_preview_hint", "reason": "derive-generated" }, + { + "filePath": ".claude/hooks/editor-pretool-hook.py", + "name": "_program_name", + "reason": "derive-generated" + }, + { + "filePath": ".claude/hooks/editor-pretool-hook.py", + "name": "_record_refusal", + "reason": "derive-generated" + }, + { + "filePath": ".claude/hooks/editor-pretool-hook.py", + "name": "_repeat_notice", + "reason": "derive-generated" + }, + { + "filePath": ".claude/hooks/editor-pretool-hook.py", + "name": "_repo_relative", + "reason": "derive-generated" + }, + { + "filePath": ".claude/hooks/editor-pretool-hook.py", + "name": "_shell_c_payload", + "reason": "derive-generated" + }, { "filePath": ".claude/hooks/editor-pretool-hook.py", "name": "_slug_label", "reason": "derive-generated" }, + { + "filePath": ".claude/hooks/editor-pretool-hook.py", + "name": "_split_commands", + "reason": "derive-generated" + }, + { + "filePath": ".claude/hooks/editor-pretool-hook.py", + "name": "_string_literal", + "reason": "derive-generated" + }, + { + "filePath": ".claude/hooks/editor-pretool-hook.py", + "name": "_test_run_block_message", + "reason": "derive-generated" + }, + { + "filePath": ".claude/hooks/editor-pretool-hook.py", + "name": "_uses_pcre_grep", + "reason": "derive-generated" + }, + { + "filePath": ".claude/hooks/editor-pretool-hook.py", + "name": "block", + "reason": "derive-generated" + }, + { + "filePath": ".claude/hooks/editor-pretool-hook.py", + "name": "discover_lean_contract", + "reason": "derive-generated" + }, + { + "filePath": ".claude/hooks/editor-pretool-hook.py", + "name": "eligible_pathspecs", + "reason": "derive-generated" + }, { "filePath": ".claude/hooks/editor-pretool-hook.py", "name": "git_add_paths_are_plans_only", "reason": "derive-generated" }, + { + "filePath": ".claude/hooks/editor-pretool-hook.py", + "name": "inspector_nudge", + "reason": "derive-generated" + }, + { + "filePath": ".claude/hooks/editor-pretool-hook.py", + "name": "is_inspector_invocation", + "reason": "derive-generated" + }, + { + "filePath": ".claude/hooks/editor-pretool-hook.py", + "name": "is_read_shaped_command", + "reason": "derive-generated" + }, + { + "filePath": ".claude/hooks/editor-pretool-hook.py", + "name": "is_test_run_command", + "reason": "derive-generated" + }, + { + "filePath": ".claude/hooks/editor-pretool-hook.py", + "name": "line_budget_refusal", + "reason": "derive-generated" + }, + { + "filePath": ".claude/hooks/editor-pretool-hook.py", + "name": "line_budget_violation", + "reason": "derive-generated" + }, + { + "filePath": ".claude/hooks/editor-pretool-hook.py", + "name": "line_count_limit", + "reason": "derive-generated" + }, { "filePath": ".claude/hooks/editor-pretool-hook.py", "name": "main", "reason": "derive-generated" }, + { + "filePath": ".claude/hooks/editor-pretool-hook.py", + "name": "matching_inspector", + "reason": "derive-generated" + }, + { + "filePath": ".claude/hooks/editor-pretool-hook.py", + "name": "merge_in_progress", + "reason": "derive-generated" + }, + { + "filePath": ".claude/hooks/editor-pretool-hook.py", + "name": "parse_lean_contract", + "reason": "derive-generated" + }, + { + "filePath": ".claude/hooks/editor-pretool-hook.py", + "name": "probed_state_path", + "reason": "derive-generated" + }, + { + "filePath": ".claude/hooks/editor-pretool-hook.py", + "name": "projected_line_count", + "reason": "derive-generated" + }, + { + "filePath": ".claude/hooks/editor-pretool-hook.py", + "name": "read_event", + "reason": "derive-generated" + }, + { + "filePath": ".claude/hooks/editor-pretool-hook.py", + "name": "read_rel_skill_path", + "reason": "derive-generated" + }, + { + "filePath": ".claude/hooks/editor-pretool-hook.py", + "name": "scripted_rewrite_refusal", + "reason": "derive-generated" + }, + { + "filePath": ".claude/hooks/editor-pretool-hook.py", + "name": "scripted_source_rewrite_target", + "reason": "derive-generated" + }, { "filePath": ".claude/hooks/editor-pretool-hook.py", "name": "staged_paths_are_plans_only", "reason": "derive-generated" }, + { + "filePath": ".claude/hooks/editor-pretool-hook.py", + "name": "tracked_source_paths", + "reason": "derive-generated" + }, + { + "filePath": ".claude/hooks/editor-pretool-hook.py", + "name": "write_targets", + "reason": "derive-generated" + }, + { + "filePath": ".claude/hooks/editor-step-hook.py", + "name": "_mark_tool_loading_injected", + "reason": "derive-generated" + }, { "filePath": ".claude/hooks/editor-step-hook.py", "name": "_terminal_signal_missing", "reason": "derive-generated" }, + { + "filePath": ".claude/hooks/editor-step-hook.py", + "name": "_tool_loading_already_injected", + "reason": "derive-generated" + }, { "filePath": ".claude/hooks/editor-step-hook.py", "name": "detect_event", @@ -218,16 +448,6 @@ "name": "main", "reason": "test-fixture" }, - { - "filePath": ".claude/hooks/editor-step-hook.py", - "name": "_mark_tool_loading_injected", - "reason": "derive-generated" - }, - { - "filePath": ".claude/hooks/editor-step-hook.py", - "name": "_tool_loading_already_injected", - "reason": "derive-generated" - }, { "filePath": "ios/Sources/AppCore/CodeyamIsolated/AddCounterDotIsolated.swift", "name": "AddCounterDotIsolated", @@ -372,111 +592,6 @@ "filePath": "ios/Sources/AppCore/CodeyamIsolated/SettingsToggleRowIsolated.swift", "name": "SettingsToggleRowIsolated", "reason": "test-fixture" - }, - { - "filePath": ".claude/hooks/_step_metadata.py", - "name": "_no_test_slug_map", - "reason": "derive-generated" - }, - { - "filePath": ".claude/hooks/editor-pretool-hook.py", - "name": "_call_args", - "reason": "derive-generated" - }, - { - "filePath": ".claude/hooks/editor-pretool-hook.py", - "name": "_configured_test_scripts", - "reason": "derive-generated" - }, - { - "filePath": ".claude/hooks/editor-pretool-hook.py", - "name": "_has_inplace_editor", - "reason": "derive-generated" - }, - { - "filePath": ".claude/hooks/editor-pretool-hook.py", - "name": "_path_tokens", - "reason": "derive-generated" - }, - { - "filePath": ".claude/hooks/editor-pretool-hook.py", - "name": "_repo_relative", - "reason": "derive-generated" - }, - { - "filePath": ".claude/hooks/editor-pretool-hook.py", - "name": "_string_literal", - "reason": "derive-generated" - }, - { - "filePath": ".claude/hooks/editor-pretool-hook.py", - "name": "_test_run_block_message", - "reason": "derive-generated" - }, - { - "filePath": ".claude/hooks/editor-pretool-hook.py", - "name": "eligible_pathspecs", - "reason": "derive-generated" - }, - { - "filePath": ".claude/hooks/editor-pretool-hook.py", - "name": "inspector_nudge", - "reason": "derive-generated" - }, - { - "filePath": ".claude/hooks/editor-pretool-hook.py", - "name": "is_inspector_invocation", - "reason": "derive-generated" - }, - { - "filePath": ".claude/hooks/editor-pretool-hook.py", - "name": "is_read_shaped_command", - "reason": "derive-generated" - }, - { - "filePath": ".claude/hooks/editor-pretool-hook.py", - "name": "is_test_run_command", - "reason": "derive-generated" - }, - { - "filePath": ".claude/hooks/editor-pretool-hook.py", - "name": "matching_inspector", - "reason": "derive-generated" - }, - { - "filePath": ".claude/hooks/editor-pretool-hook.py", - "name": "merge_in_progress", - "reason": "derive-generated" - }, - { - "filePath": ".claude/hooks/editor-pretool-hook.py", - "name": "probed_state_path", - "reason": "derive-generated" - }, - { - "filePath": ".claude/hooks/editor-pretool-hook.py", - "name": "read_event", - "reason": "derive-generated" - }, - { - "filePath": ".claude/hooks/editor-pretool-hook.py", - "name": "scripted_rewrite_refusal", - "reason": "derive-generated" - }, - { - "filePath": ".claude/hooks/editor-pretool-hook.py", - "name": "scripted_source_rewrite_target", - "reason": "derive-generated" - }, - { - "filePath": ".claude/hooks/editor-pretool-hook.py", - "name": "tracked_source_paths", - "reason": "derive-generated" - }, - { - "filePath": ".claude/hooks/editor-pretool-hook.py", - "name": "write_targets", - "reason": "derive-generated" } ], "stepBudget": { @@ -496,7 +611,11 @@ "branchBaseRef": "main", "coverageBootstrap": { "enabled": true - } + }, + "testFileShapes": [ + "*Test.kt", + "*Tests.swift" + ] }, "coverageThresholds": { "global": { diff --git a/.codeyam/glossary.json b/.codeyam/glossary.json index fa9dad4..144fc44 100644 --- a/.codeyam/glossary.json +++ b/.codeyam/glossary.json @@ -1236,6 +1236,18 @@ "name": "autoSizedFontSize", "testFile": "android/app/src/test/java/com/codeyam/android/ui/CountHeroSizingTest.kt" }, + { + "description": "Composable supplying CounterScreen's default contentInsets: the union of system-bar and display-cutout insets. It exists as an injectable default because unit tests report all real inset values as zero, which would leave the edge-to-edge layout behaviour untestable.", + "filePath": "android/app/src/main/java/com/codeyam/android/ui/CounterScreen.kt", + "name": "defaultContentInsets", + "tags": [ + "android", + "ui", + "layout", + "edge-to-edge" + ], + "testFile": "android/app/src/testDebug/java/com/codeyam/android/ui/CounterScreenInsetsTest.kt" + }, { "description": "Resolves a counter colorKey to its Compose dot color via the shared CounterTheme hex mapping.", "filePath": "android/app/src/main/java/com/codeyam/android/ui/Theme.kt", diff --git a/.codeyam/per-test-evidence.json b/.codeyam/per-test-evidence.json index c009352..3a84019 100644 --- a/.codeyam/per-test-evidence.json +++ b/.codeyam/per-test-evidence.json @@ -1,57 +1,57 @@ { "AppCoreTests.AppSettingsTests › testDefaultHapticsAreDistinct": { "file": "ios/Tests/AppCoreTests/AppSettingsTests.swift", - "lastRunAt": "2026-08-10T17:39:18.840440+00:00", + "lastRunAt": "2026-08-11T19:08:08.447728+00:00", "lastRunKind": "full", "lastStatus": "pass", "recentStatuses": [ { - "at": "2026-08-10T17:39:18.840440+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-08-06T17:19:28.895464+00:00", + "at": "2026-08-11T19:05:13.647187+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-29T11:43:21.762729+00:00", + "at": "2026-08-10T17:39:18.840440+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T20:05:00.150174+00:00", + "at": "2026-08-06T17:19:28.895464+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T16:56:43.018456+00:00", + "at": "2026-07-29T11:43:21.762729+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-07-28T20:05:00.150174+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T14:49:26.526892+00:00", + "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T13:21:50.285858+00:00", + "at": "2026-07-26T22:08:02.789776+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T12:39:05.717502+00:00", + "at": "2026-07-26T14:49:26.526892+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-22T21:29:31.681891+00:00", + "at": "2026-07-26T13:21:50.285858+00:00", "kind": "full", "status": "pass" } @@ -59,57 +59,57 @@ }, "AppCoreTests.AppSettingsTests › testDefaultsAreRightHandedSilentWithDistinctHaptics": { "file": "ios/Tests/AppCoreTests/AppSettingsTests.swift", - "lastRunAt": "2026-08-10T17:39:18.840440+00:00", + "lastRunAt": "2026-08-11T19:08:08.447728+00:00", "lastRunKind": "full", "lastStatus": "pass", "recentStatuses": [ { - "at": "2026-08-10T17:39:18.840440+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-08-06T17:19:28.895464+00:00", + "at": "2026-08-11T19:05:13.647187+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-29T11:43:21.762729+00:00", + "at": "2026-08-10T17:39:18.840440+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T20:05:00.150174+00:00", + "at": "2026-08-06T17:19:28.895464+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T16:56:43.018456+00:00", + "at": "2026-07-29T11:43:21.762729+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-07-28T20:05:00.150174+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T14:49:26.526892+00:00", + "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T13:21:50.285858+00:00", + "at": "2026-07-26T22:08:02.789776+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T12:39:05.717502+00:00", + "at": "2026-07-26T14:49:26.526892+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-22T21:29:31.681891+00:00", + "at": "2026-07-26T13:21:50.285858+00:00", "kind": "full", "status": "pass" } @@ -117,57 +117,57 @@ }, "AppCoreTests.AppSettingsTests › testLegacyHapticKeyMigratesToBothDirections": { "file": "ios/Tests/AppCoreTests/AppSettingsTests.swift", - "lastRunAt": "2026-08-10T17:39:18.840440+00:00", + "lastRunAt": "2026-08-11T19:08:08.447728+00:00", "lastRunKind": "full", "lastStatus": "pass", "recentStatuses": [ { - "at": "2026-08-10T17:39:18.840440+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-08-06T17:19:28.895464+00:00", + "at": "2026-08-11T19:05:13.647187+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-29T11:43:21.762729+00:00", + "at": "2026-08-10T17:39:18.840440+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T20:05:00.150174+00:00", + "at": "2026-08-06T17:19:28.895464+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T16:56:43.018456+00:00", + "at": "2026-07-29T11:43:21.762729+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-07-28T20:05:00.150174+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T14:49:26.526892+00:00", + "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T13:21:50.285858+00:00", + "at": "2026-07-26T22:08:02.789776+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T12:39:05.717502+00:00", + "at": "2026-07-26T14:49:26.526892+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-22T21:29:31.681891+00:00", + "at": "2026-07-26T13:21:50.285858+00:00", "kind": "full", "status": "pass" } @@ -175,57 +175,57 @@ }, "AppCoreTests.AppSettingsTests › testLegacyHapticOffMigratesToBothOff": { "file": "ios/Tests/AppCoreTests/AppSettingsTests.swift", - "lastRunAt": "2026-08-10T17:39:18.840440+00:00", + "lastRunAt": "2026-08-11T19:08:08.447728+00:00", "lastRunKind": "full", "lastStatus": "pass", "recentStatuses": [ { - "at": "2026-08-10T17:39:18.840440+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-08-06T17:19:28.895464+00:00", + "at": "2026-08-11T19:05:13.647187+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-29T11:43:21.762729+00:00", + "at": "2026-08-10T17:39:18.840440+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T20:05:00.150174+00:00", + "at": "2026-08-06T17:19:28.895464+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T16:56:43.018456+00:00", + "at": "2026-07-29T11:43:21.762729+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-07-28T20:05:00.150174+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T14:49:26.526892+00:00", + "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T13:21:50.285858+00:00", + "at": "2026-07-26T22:08:02.789776+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T12:39:05.717502+00:00", + "at": "2026-07-26T14:49:26.526892+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-22T21:29:31.681891+00:00", + "at": "2026-07-26T13:21:50.285858+00:00", "kind": "full", "status": "pass" } @@ -233,57 +233,57 @@ }, "AppCoreTests.AppSettingsTests › testNewHapticKeyWinsOverLegacy": { "file": "ios/Tests/AppCoreTests/AppSettingsTests.swift", - "lastRunAt": "2026-08-10T17:39:18.840440+00:00", + "lastRunAt": "2026-08-11T19:08:08.447728+00:00", "lastRunKind": "full", "lastStatus": "pass", "recentStatuses": [ { - "at": "2026-08-10T17:39:18.840440+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-08-06T17:19:28.895464+00:00", + "at": "2026-08-11T19:05:13.647187+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-29T11:43:21.762729+00:00", + "at": "2026-08-10T17:39:18.840440+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T20:05:00.150174+00:00", + "at": "2026-08-06T17:19:28.895464+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T16:56:43.018456+00:00", + "at": "2026-07-29T11:43:21.762729+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-07-28T20:05:00.150174+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T14:49:26.526892+00:00", + "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T13:21:50.285858+00:00", + "at": "2026-07-26T22:08:02.789776+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T12:39:05.717502+00:00", + "at": "2026-07-26T14:49:26.526892+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-22T21:29:31.681891+00:00", + "at": "2026-07-26T13:21:50.285858+00:00", "kind": "full", "status": "pass" } @@ -291,57 +291,57 @@ }, "AppCoreTests.AppSettingsTests › testOptionCasesCoverTheChoiceSets": { "file": "ios/Tests/AppCoreTests/AppSettingsTests.swift", - "lastRunAt": "2026-08-10T17:39:18.840440+00:00", + "lastRunAt": "2026-08-11T19:08:08.447728+00:00", "lastRunKind": "full", "lastStatus": "pass", "recentStatuses": [ { - "at": "2026-08-10T17:39:18.840440+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-08-06T17:19:28.895464+00:00", + "at": "2026-08-11T19:05:13.647187+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-29T11:43:21.762729+00:00", + "at": "2026-08-10T17:39:18.840440+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T20:05:00.150174+00:00", + "at": "2026-08-06T17:19:28.895464+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T16:56:43.018456+00:00", + "at": "2026-07-29T11:43:21.762729+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-07-28T20:05:00.150174+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T14:49:26.526892+00:00", + "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T13:21:50.285858+00:00", + "at": "2026-07-26T22:08:02.789776+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T12:39:05.717502+00:00", + "at": "2026-07-26T14:49:26.526892+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-22T21:29:31.681891+00:00", + "at": "2026-07-26T13:21:50.285858+00:00", "kind": "full", "status": "pass" } @@ -349,57 +349,57 @@ }, "AppCoreTests.AppSettingsTests › testOptionsAreIndependent": { "file": "ios/Tests/AppCoreTests/AppSettingsTests.swift", - "lastRunAt": "2026-08-10T17:39:18.840440+00:00", + "lastRunAt": "2026-08-11T19:08:08.447728+00:00", "lastRunKind": "full", "lastStatus": "pass", "recentStatuses": [ { - "at": "2026-08-10T17:39:18.840440+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-08-06T17:19:28.895464+00:00", + "at": "2026-08-11T19:05:13.647187+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-29T11:43:21.762729+00:00", + "at": "2026-08-10T17:39:18.840440+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T20:05:00.150174+00:00", + "at": "2026-08-06T17:19:28.895464+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T16:56:43.018456+00:00", + "at": "2026-07-29T11:43:21.762729+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-07-28T20:05:00.150174+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T14:49:26.526892+00:00", + "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T13:21:50.285858+00:00", + "at": "2026-07-26T22:08:02.789776+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T12:39:05.717502+00:00", + "at": "2026-07-26T14:49:26.526892+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-22T21:29:31.681891+00:00", + "at": "2026-07-26T13:21:50.285858+00:00", "kind": "full", "status": "pass" } @@ -407,57 +407,57 @@ }, "AppCoreTests.AppSettingsTests › testPersistsChangesAcrossReload": { "file": "ios/Tests/AppCoreTests/AppSettingsTests.swift", - "lastRunAt": "2026-08-10T17:39:18.840440+00:00", + "lastRunAt": "2026-08-11T19:08:08.447728+00:00", "lastRunKind": "full", "lastStatus": "pass", "recentStatuses": [ { - "at": "2026-08-10T17:39:18.840440+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-08-06T17:19:28.895464+00:00", + "at": "2026-08-11T19:05:13.647187+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-29T11:43:21.762729+00:00", + "at": "2026-08-10T17:39:18.840440+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T20:05:00.150174+00:00", + "at": "2026-08-06T17:19:28.895464+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T16:56:43.018456+00:00", + "at": "2026-07-29T11:43:21.762729+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-07-28T20:05:00.150174+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T14:49:26.526892+00:00", + "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T13:21:50.285858+00:00", + "at": "2026-07-26T22:08:02.789776+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T12:39:05.717502+00:00", + "at": "2026-07-26T14:49:26.526892+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-22T21:29:31.681891+00:00", + "at": "2026-07-26T13:21:50.285858+00:00", "kind": "full", "status": "pass" } @@ -465,57 +465,57 @@ }, "AppCoreTests.AppSettingsTests › testReadsSeededStringPreferences": { "file": "ios/Tests/AppCoreTests/AppSettingsTests.swift", - "lastRunAt": "2026-08-10T17:39:18.840440+00:00", + "lastRunAt": "2026-08-11T19:08:08.447728+00:00", "lastRunKind": "full", "lastStatus": "pass", "recentStatuses": [ { - "at": "2026-08-10T17:39:18.840440+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-08-06T17:19:28.895464+00:00", + "at": "2026-08-11T19:05:13.647187+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-29T11:43:21.762729+00:00", + "at": "2026-08-10T17:39:18.840440+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T20:05:00.150174+00:00", + "at": "2026-08-06T17:19:28.895464+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T16:56:43.018456+00:00", + "at": "2026-07-29T11:43:21.762729+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-07-28T20:05:00.150174+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T14:49:26.526892+00:00", + "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T13:21:50.285858+00:00", + "at": "2026-07-26T22:08:02.789776+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T12:39:05.717502+00:00", + "at": "2026-07-26T14:49:26.526892+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-22T21:29:31.681891+00:00", + "at": "2026-07-26T13:21:50.285858+00:00", "kind": "full", "status": "pass" } @@ -523,57 +523,57 @@ }, "AppCoreTests.AppSettingsTests › testReleasePolicyIgnoresSeededHapticsWithoutProvenance": { "file": "ios/Tests/AppCoreTests/AppSettingsTests.swift", - "lastRunAt": "2026-08-10T17:39:18.840440+00:00", + "lastRunAt": "2026-08-11T19:08:08.447728+00:00", "lastRunKind": "full", "lastStatus": "pass", "recentStatuses": [ { - "at": "2026-08-10T17:39:18.840440+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-08-06T17:19:28.895464+00:00", + "at": "2026-08-11T19:05:13.647187+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-29T11:43:21.762729+00:00", + "at": "2026-08-10T17:39:18.840440+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T20:05:00.150174+00:00", + "at": "2026-08-06T17:19:28.895464+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T16:56:43.018456+00:00", + "at": "2026-07-29T11:43:21.762729+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-07-28T20:05:00.150174+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T14:49:26.526892+00:00", + "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T13:21:50.285858+00:00", + "at": "2026-07-26T22:08:02.789776+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T12:39:05.717502+00:00", + "at": "2026-07-26T14:49:26.526892+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-22T21:29:31.681891+00:00", + "at": "2026-07-26T13:21:50.285858+00:00", "kind": "full", "status": "pass" } @@ -581,57 +581,57 @@ }, "AppCoreTests.AppSettingsTests › testResolveMigratesRemovedRawValues": { "file": "ios/Tests/AppCoreTests/AppSettingsTests.swift", - "lastRunAt": "2026-08-10T17:39:18.840440+00:00", + "lastRunAt": "2026-08-11T19:08:08.447728+00:00", "lastRunKind": "full", "lastStatus": "pass", "recentStatuses": [ { - "at": "2026-08-10T17:39:18.840440+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-08-06T17:19:28.895464+00:00", + "at": "2026-08-11T19:05:13.647187+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-29T11:43:21.762729+00:00", + "at": "2026-08-10T17:39:18.840440+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T20:05:00.150174+00:00", + "at": "2026-08-06T17:19:28.895464+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T16:56:43.018456+00:00", + "at": "2026-07-29T11:43:21.762729+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-07-28T20:05:00.150174+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T14:49:26.526892+00:00", + "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T13:21:50.285858+00:00", + "at": "2026-07-26T22:08:02.789776+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T12:39:05.717502+00:00", + "at": "2026-07-26T14:49:26.526892+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-22T21:29:31.681891+00:00", + "at": "2026-07-26T13:21:50.285858+00:00", "kind": "full", "status": "pass" } @@ -639,57 +639,57 @@ }, "AppCoreTests.AppSettingsTests › testUnknownOptionFallsBackToDefault": { "file": "ios/Tests/AppCoreTests/AppSettingsTests.swift", - "lastRunAt": "2026-08-10T17:39:18.840440+00:00", + "lastRunAt": "2026-08-11T19:08:08.447728+00:00", "lastRunKind": "full", "lastStatus": "pass", "recentStatuses": [ { - "at": "2026-08-10T17:39:18.840440+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-08-06T17:19:28.895464+00:00", + "at": "2026-08-11T19:05:13.647187+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-29T11:43:21.762729+00:00", + "at": "2026-08-10T17:39:18.840440+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T20:05:00.150174+00:00", + "at": "2026-08-06T17:19:28.895464+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T16:56:43.018456+00:00", + "at": "2026-07-29T11:43:21.762729+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-07-28T20:05:00.150174+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T14:49:26.526892+00:00", + "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T13:21:50.285858+00:00", + "at": "2026-07-26T22:08:02.789776+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T12:39:05.717502+00:00", + "at": "2026-07-26T14:49:26.526892+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-22T21:29:31.681891+00:00", + "at": "2026-07-26T13:21:50.285858+00:00", "kind": "full", "status": "pass" } @@ -697,57 +697,57 @@ }, "AppCoreTests.CounterFeedbackOverrideTests › testAllOverridesSetReturnsTrue": { "file": "", - "lastRunAt": "2026-08-10T17:39:18.840440+00:00", + "lastRunAt": "2026-08-11T19:08:08.447728+00:00", "lastRunKind": "full", "lastStatus": "pass", "recentStatuses": [ { - "at": "2026-08-10T17:39:18.840440+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-08-06T17:19:28.895464+00:00", + "at": "2026-08-11T19:05:13.647187+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-29T11:43:21.762729+00:00", + "at": "2026-08-10T17:39:18.840440+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T20:05:00.150174+00:00", + "at": "2026-08-06T17:19:28.895464+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T16:56:43.018456+00:00", + "at": "2026-07-29T11:43:21.762729+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-07-28T20:05:00.150174+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T14:49:26.526892+00:00", + "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T13:21:50.285858+00:00", + "at": "2026-07-26T22:08:02.789776+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T12:39:05.717502+00:00", + "at": "2026-07-26T14:49:26.526892+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-22T21:29:31.681891+00:00", + "at": "2026-07-26T13:21:50.285858+00:00", "kind": "full", "status": "pass" } @@ -755,57 +755,57 @@ }, "AppCoreTests.CounterFeedbackOverrideTests › testBlankSlotReturnsFalse": { "file": "", - "lastRunAt": "2026-08-10T17:39:18.840440+00:00", + "lastRunAt": "2026-08-11T19:08:08.447728+00:00", "lastRunKind": "full", "lastStatus": "pass", "recentStatuses": [ { - "at": "2026-08-10T17:39:18.840440+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-08-06T17:19:28.895464+00:00", + "at": "2026-08-11T19:05:13.647187+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-29T11:43:21.762729+00:00", + "at": "2026-08-10T17:39:18.840440+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T20:05:00.150174+00:00", + "at": "2026-08-06T17:19:28.895464+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T16:56:43.018456+00:00", + "at": "2026-07-29T11:43:21.762729+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-07-28T20:05:00.150174+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T14:49:26.526892+00:00", + "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T13:21:50.285858+00:00", + "at": "2026-07-26T22:08:02.789776+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T12:39:05.717502+00:00", + "at": "2026-07-26T14:49:26.526892+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-22T21:29:31.681891+00:00", + "at": "2026-07-26T13:21:50.285858+00:00", "kind": "full", "status": "pass" } @@ -813,57 +813,57 @@ }, "AppCoreTests.CounterFeedbackOverrideTests › testDecrementHapticOverrideAloneReturnsTrue": { "file": "", - "lastRunAt": "2026-08-10T17:39:18.840440+00:00", + "lastRunAt": "2026-08-11T19:08:08.447728+00:00", "lastRunKind": "full", "lastStatus": "pass", "recentStatuses": [ { - "at": "2026-08-10T17:39:18.840440+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-08-06T17:19:28.895464+00:00", + "at": "2026-08-11T19:05:13.647187+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-29T11:43:21.762729+00:00", + "at": "2026-08-10T17:39:18.840440+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T20:05:00.150174+00:00", + "at": "2026-08-06T17:19:28.895464+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T16:56:43.018456+00:00", + "at": "2026-07-29T11:43:21.762729+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-07-28T20:05:00.150174+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T14:49:26.526892+00:00", + "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T13:21:50.285858+00:00", + "at": "2026-07-26T22:08:02.789776+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T12:39:05.717502+00:00", + "at": "2026-07-26T14:49:26.526892+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-22T21:29:31.681891+00:00", + "at": "2026-07-26T13:21:50.285858+00:00", "kind": "full", "status": "pass" } @@ -871,57 +871,57 @@ }, "AppCoreTests.CounterFeedbackOverrideTests › testExplicitOffSoundOverrideReturnsTrue": { "file": "", - "lastRunAt": "2026-08-10T17:39:18.840440+00:00", + "lastRunAt": "2026-08-11T19:08:08.447728+00:00", "lastRunKind": "full", "lastStatus": "pass", "recentStatuses": [ { - "at": "2026-08-10T17:39:18.840440+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-08-06T17:19:28.895464+00:00", + "at": "2026-08-11T19:05:13.647187+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-29T11:43:21.762729+00:00", + "at": "2026-08-10T17:39:18.840440+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T20:05:00.150174+00:00", + "at": "2026-08-06T17:19:28.895464+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T16:56:43.018456+00:00", + "at": "2026-07-29T11:43:21.762729+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-07-28T20:05:00.150174+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T14:49:26.526892+00:00", + "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T13:21:50.285858+00:00", + "at": "2026-07-26T22:08:02.789776+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T12:39:05.717502+00:00", + "at": "2026-07-26T14:49:26.526892+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-22T21:29:31.681891+00:00", + "at": "2026-07-26T13:21:50.285858+00:00", "kind": "full", "status": "pass" } @@ -929,57 +929,57 @@ }, "AppCoreTests.CounterFeedbackOverrideTests › testHandednessOverrideAloneReturnsTrue": { "file": "", - "lastRunAt": "2026-08-10T17:39:18.840440+00:00", + "lastRunAt": "2026-08-11T19:08:08.447728+00:00", "lastRunKind": "full", "lastStatus": "pass", "recentStatuses": [ { - "at": "2026-08-10T17:39:18.840440+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-08-06T17:19:28.895464+00:00", + "at": "2026-08-11T19:05:13.647187+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-29T11:43:21.762729+00:00", + "at": "2026-08-10T17:39:18.840440+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T20:05:00.150174+00:00", + "at": "2026-08-06T17:19:28.895464+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T16:56:43.018456+00:00", + "at": "2026-07-29T11:43:21.762729+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-07-28T20:05:00.150174+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T14:49:26.526892+00:00", + "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T13:21:50.285858+00:00", + "at": "2026-07-26T22:08:02.789776+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T12:39:05.717502+00:00", + "at": "2026-07-26T14:49:26.526892+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-22T21:29:31.681891+00:00", + "at": "2026-07-26T13:21:50.285858+00:00", "kind": "full", "status": "pass" } @@ -987,57 +987,57 @@ }, "AppCoreTests.CounterFeedbackOverrideTests › testIncrementHapticOverrideAloneReturnsTrue": { "file": "", - "lastRunAt": "2026-08-10T17:39:18.840440+00:00", + "lastRunAt": "2026-08-11T19:08:08.447728+00:00", "lastRunKind": "full", "lastStatus": "pass", "recentStatuses": [ { - "at": "2026-08-10T17:39:18.840440+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-08-06T17:19:28.895464+00:00", + "at": "2026-08-11T19:05:13.647187+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-29T11:43:21.762729+00:00", + "at": "2026-08-10T17:39:18.840440+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T20:05:00.150174+00:00", + "at": "2026-08-06T17:19:28.895464+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T16:56:43.018456+00:00", + "at": "2026-07-29T11:43:21.762729+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-07-28T20:05:00.150174+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T14:49:26.526892+00:00", + "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T13:21:50.285858+00:00", + "at": "2026-07-26T22:08:02.789776+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T12:39:05.717502+00:00", + "at": "2026-07-26T14:49:26.526892+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-22T21:29:31.681891+00:00", + "at": "2026-07-26T13:21:50.285858+00:00", "kind": "full", "status": "pass" } @@ -1045,57 +1045,57 @@ }, "AppCoreTests.CounterFeedbackOverrideTests › testNoOverridesReturnsFalse": { "file": "", - "lastRunAt": "2026-08-10T17:39:18.840440+00:00", + "lastRunAt": "2026-08-11T19:08:08.447728+00:00", "lastRunKind": "full", "lastStatus": "pass", "recentStatuses": [ { - "at": "2026-08-10T17:39:18.840440+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-08-06T17:19:28.895464+00:00", + "at": "2026-08-11T19:05:13.647187+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-29T11:43:21.762729+00:00", + "at": "2026-08-10T17:39:18.840440+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T20:05:00.150174+00:00", + "at": "2026-08-06T17:19:28.895464+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T16:56:43.018456+00:00", + "at": "2026-07-29T11:43:21.762729+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-07-28T20:05:00.150174+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T14:49:26.526892+00:00", + "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T13:21:50.285858+00:00", + "at": "2026-07-26T22:08:02.789776+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T12:39:05.717502+00:00", + "at": "2026-07-26T14:49:26.526892+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-22T21:29:31.681891+00:00", + "at": "2026-07-26T13:21:50.285858+00:00", "kind": "full", "status": "pass" } @@ -1103,57 +1103,57 @@ }, "AppCoreTests.CounterFeedbackOverrideTests › testSoundOverrideAloneReturnsTrue": { "file": "", - "lastRunAt": "2026-08-10T17:39:18.840440+00:00", + "lastRunAt": "2026-08-11T19:08:08.447728+00:00", "lastRunKind": "full", "lastStatus": "pass", "recentStatuses": [ { - "at": "2026-08-10T17:39:18.840440+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-08-06T17:19:28.895464+00:00", + "at": "2026-08-11T19:05:13.647187+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-29T11:43:21.762729+00:00", + "at": "2026-08-10T17:39:18.840440+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T20:05:00.150174+00:00", + "at": "2026-08-06T17:19:28.895464+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T16:56:43.018456+00:00", + "at": "2026-07-29T11:43:21.762729+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-07-28T20:05:00.150174+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T14:49:26.526892+00:00", + "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T13:21:50.285858+00:00", + "at": "2026-07-26T22:08:02.789776+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T12:39:05.717502+00:00", + "at": "2026-07-26T14:49:26.526892+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-22T21:29:31.681891+00:00", + "at": "2026-07-26T13:21:50.285858+00:00", "kind": "full", "status": "pass" } @@ -1161,57 +1161,57 @@ }, "AppCoreTests.FeedbackTests › testAllDistinctFeelsAreTreatedAsNonOff": { "file": "ios/Tests/AppCoreTests/FeedbackTests.swift", - "lastRunAt": "2026-08-10T17:39:18.840440+00:00", + "lastRunAt": "2026-08-11T19:08:08.447728+00:00", "lastRunKind": "full", "lastStatus": "pass", "recentStatuses": [ { - "at": "2026-08-10T17:39:18.840440+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-08-06T17:19:28.895464+00:00", + "at": "2026-08-11T19:05:13.647187+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-29T11:43:21.762729+00:00", + "at": "2026-08-10T17:39:18.840440+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T20:05:00.150174+00:00", + "at": "2026-08-06T17:19:28.895464+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T16:56:43.018456+00:00", + "at": "2026-07-29T11:43:21.762729+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-07-28T20:05:00.150174+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T14:49:26.526892+00:00", + "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T13:21:50.285858+00:00", + "at": "2026-07-26T22:08:02.789776+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T12:39:05.717502+00:00", + "at": "2026-07-26T14:49:26.526892+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-22T21:29:31.681891+00:00", + "at": "2026-07-26T13:21:50.285858+00:00", "kind": "full", "status": "pass" } @@ -1219,57 +1219,57 @@ }, "AppCoreTests.FeedbackTests › testBothOffFiresNothing": { "file": "ios/Tests/AppCoreTests/FeedbackTests.swift", - "lastRunAt": "2026-08-10T17:39:18.840440+00:00", + "lastRunAt": "2026-08-11T19:08:08.447728+00:00", "lastRunKind": "full", "lastStatus": "pass", "recentStatuses": [ { - "at": "2026-08-10T17:39:18.840440+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-08-06T17:19:28.895464+00:00", + "at": "2026-08-11T19:05:13.647187+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-29T11:43:21.762729+00:00", + "at": "2026-08-10T17:39:18.840440+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T20:05:00.150174+00:00", + "at": "2026-08-06T17:19:28.895464+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T16:56:43.018456+00:00", + "at": "2026-07-29T11:43:21.762729+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-07-28T20:05:00.150174+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T14:49:26.526892+00:00", + "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T13:21:50.285858+00:00", + "at": "2026-07-26T22:08:02.789776+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T12:39:05.717502+00:00", + "at": "2026-07-26T14:49:26.526892+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-22T21:29:31.681891+00:00", + "at": "2026-07-26T13:21:50.285858+00:00", "kind": "full", "status": "pass" } @@ -1277,57 +1277,57 @@ }, "AppCoreTests.FeedbackTests › testBothOptionsFireBoth": { "file": "ios/Tests/AppCoreTests/FeedbackTests.swift", - "lastRunAt": "2026-08-10T17:39:18.840440+00:00", + "lastRunAt": "2026-08-11T19:08:08.447728+00:00", "lastRunKind": "full", "lastStatus": "pass", "recentStatuses": [ { - "at": "2026-08-10T17:39:18.840440+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-08-06T17:19:28.895464+00:00", + "at": "2026-08-11T19:05:13.647187+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-29T11:43:21.762729+00:00", + "at": "2026-08-10T17:39:18.840440+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T20:05:00.150174+00:00", + "at": "2026-08-06T17:19:28.895464+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T16:56:43.018456+00:00", + "at": "2026-07-29T11:43:21.762729+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-07-28T20:05:00.150174+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T14:49:26.526892+00:00", + "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T13:21:50.285858+00:00", + "at": "2026-07-26T22:08:02.789776+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T12:39:05.717502+00:00", + "at": "2026-07-26T14:49:26.526892+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-22T21:29:31.681891+00:00", + "at": "2026-07-26T13:21:50.285858+00:00", "kind": "full", "status": "pass" } @@ -1335,57 +1335,57 @@ }, "AppCoreTests.FeedbackTests › testHapticOnlyFiresHapticWithIntensity": { "file": "ios/Tests/AppCoreTests/FeedbackTests.swift", - "lastRunAt": "2026-08-10T17:39:18.840440+00:00", + "lastRunAt": "2026-08-11T19:08:08.447728+00:00", "lastRunKind": "full", "lastStatus": "pass", "recentStatuses": [ { - "at": "2026-08-10T17:39:18.840440+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-08-06T17:19:28.895464+00:00", + "at": "2026-08-11T19:05:13.647187+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-29T11:43:21.762729+00:00", + "at": "2026-08-10T17:39:18.840440+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T20:05:00.150174+00:00", + "at": "2026-08-06T17:19:28.895464+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T16:56:43.018456+00:00", + "at": "2026-07-29T11:43:21.762729+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-07-28T20:05:00.150174+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T14:49:26.526892+00:00", + "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T13:21:50.285858+00:00", + "at": "2026-07-26T22:08:02.789776+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T12:39:05.717502+00:00", + "at": "2026-07-26T14:49:26.526892+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-22T21:29:31.681891+00:00", + "at": "2026-07-26T13:21:50.285858+00:00", "kind": "full", "status": "pass" } @@ -1393,57 +1393,57 @@ }, "AppCoreTests.FeedbackTests › testNoopFeedbackDoesNothing": { "file": "ios/Tests/AppCoreTests/FeedbackTests.swift", - "lastRunAt": "2026-08-10T17:39:18.840440+00:00", + "lastRunAt": "2026-08-11T19:08:08.447728+00:00", "lastRunKind": "full", "lastStatus": "pass", "recentStatuses": [ { - "at": "2026-08-10T17:39:18.840440+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-08-06T17:19:28.895464+00:00", + "at": "2026-08-11T19:05:13.647187+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-29T11:43:21.762729+00:00", + "at": "2026-08-10T17:39:18.840440+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T20:05:00.150174+00:00", + "at": "2026-08-06T17:19:28.895464+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T16:56:43.018456+00:00", + "at": "2026-07-29T11:43:21.762729+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-07-28T20:05:00.150174+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T14:49:26.526892+00:00", + "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T13:21:50.285858+00:00", + "at": "2026-07-26T22:08:02.789776+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T12:39:05.717502+00:00", + "at": "2026-07-26T14:49:26.526892+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-22T21:29:31.681891+00:00", + "at": "2026-07-26T13:21:50.285858+00:00", "kind": "full", "status": "pass" } @@ -1451,57 +1451,57 @@ }, "AppCoreTests.FeedbackTests › testSoundOnlyFiresSoundWithChoice": { "file": "ios/Tests/AppCoreTests/FeedbackTests.swift", - "lastRunAt": "2026-08-10T17:39:18.840440+00:00", + "lastRunAt": "2026-08-11T19:08:08.447728+00:00", "lastRunKind": "full", "lastStatus": "pass", "recentStatuses": [ { - "at": "2026-08-10T17:39:18.840440+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-08-06T17:19:28.895464+00:00", + "at": "2026-08-11T19:05:13.647187+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-29T11:43:21.762729+00:00", + "at": "2026-08-10T17:39:18.840440+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T20:05:00.150174+00:00", + "at": "2026-08-06T17:19:28.895464+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T16:56:43.018456+00:00", + "at": "2026-07-29T11:43:21.762729+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-07-28T20:05:00.150174+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T14:49:26.526892+00:00", + "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T13:21:50.285858+00:00", + "at": "2026-07-26T22:08:02.789776+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T12:39:05.717502+00:00", + "at": "2026-07-26T14:49:26.526892+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-22T21:29:31.681891+00:00", + "at": "2026-07-26T13:21:50.285858+00:00", "kind": "full", "status": "pass" } @@ -1509,57 +1509,57 @@ }, "AppCoreTests.ModelTests › testAddCounterAllowsConsecutiveBlankSlots": { "file": "ios/Tests/AppCoreTests/ModelTests.swift", - "lastRunAt": "2026-08-10T17:39:18.840440+00:00", + "lastRunAt": "2026-08-11T19:08:08.447728+00:00", "lastRunKind": "full", "lastStatus": "pass", "recentStatuses": [ { - "at": "2026-08-10T17:39:18.840440+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-08-06T17:19:28.895464+00:00", + "at": "2026-08-11T19:05:13.647187+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-29T11:43:21.762729+00:00", + "at": "2026-08-10T17:39:18.840440+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T20:05:00.150174+00:00", + "at": "2026-08-06T17:19:28.895464+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T16:56:43.018456+00:00", + "at": "2026-07-29T11:43:21.762729+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-07-28T20:05:00.150174+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T14:49:26.526892+00:00", + "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T13:21:50.285858+00:00", + "at": "2026-07-26T22:08:02.789776+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T12:39:05.717502+00:00", + "at": "2026-07-26T14:49:26.526892+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-22T21:29:31.681891+00:00", + "at": "2026-07-26T13:21:50.285858+00:00", "kind": "full", "status": "pass" } @@ -1567,57 +1567,57 @@ }, "AppCoreTests.ModelTests › testAddCounterAppendsBlankAndSelectsIt": { "file": "ios/Tests/AppCoreTests/ModelTests.swift", - "lastRunAt": "2026-08-10T17:39:18.840440+00:00", + "lastRunAt": "2026-08-11T19:08:08.447728+00:00", "lastRunKind": "full", "lastStatus": "pass", "recentStatuses": [ { - "at": "2026-08-10T17:39:18.840440+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-08-06T17:19:28.895464+00:00", + "at": "2026-08-11T19:05:13.647187+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-29T11:43:21.762729+00:00", + "at": "2026-08-10T17:39:18.840440+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T20:05:00.150174+00:00", + "at": "2026-08-06T17:19:28.895464+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T16:56:43.018456+00:00", + "at": "2026-07-29T11:43:21.762729+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-07-28T20:05:00.150174+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T14:49:26.526892+00:00", + "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T13:21:50.285858+00:00", + "at": "2026-07-26T22:08:02.789776+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T12:39:05.717502+00:00", + "at": "2026-07-26T14:49:26.526892+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-22T21:29:31.681891+00:00", + "at": "2026-07-26T13:21:50.285858+00:00", "kind": "full", "status": "pass" } @@ -1625,57 +1625,57 @@ }, "AppCoreTests.ModelTests › testAddCounterAssignsNextIdAndOrder": { "file": "ios/Tests/AppCoreTests/ModelTests.swift", - "lastRunAt": "2026-08-10T17:39:18.840440+00:00", + "lastRunAt": "2026-08-11T19:08:08.447728+00:00", "lastRunKind": "full", "lastStatus": "pass", "recentStatuses": [ { - "at": "2026-08-10T17:39:18.840440+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-08-06T17:19:28.895464+00:00", + "at": "2026-08-11T19:05:13.647187+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-29T11:43:21.762729+00:00", + "at": "2026-08-10T17:39:18.840440+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T20:05:00.150174+00:00", + "at": "2026-08-06T17:19:28.895464+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T16:56:43.018456+00:00", + "at": "2026-07-29T11:43:21.762729+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-07-28T20:05:00.150174+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T14:49:26.526892+00:00", + "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T13:21:50.285858+00:00", + "at": "2026-07-26T22:08:02.789776+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T12:39:05.717502+00:00", + "at": "2026-07-26T14:49:26.526892+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-22T21:29:31.681891+00:00", + "at": "2026-07-26T13:21:50.285858+00:00", "kind": "full", "status": "pass" } @@ -1683,57 +1683,57 @@ }, "AppCoreTests.ModelTests › testAddCounterClearsPendingUndo": { "file": "ios/Tests/AppCoreTests/ModelTests.swift", - "lastRunAt": "2026-08-10T17:39:18.840440+00:00", + "lastRunAt": "2026-08-11T19:08:08.447728+00:00", "lastRunKind": "full", "lastStatus": "pass", "recentStatuses": [ { - "at": "2026-08-10T17:39:18.840440+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-08-06T17:19:28.895464+00:00", + "at": "2026-08-11T19:05:13.647187+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-29T11:43:21.762729+00:00", + "at": "2026-08-10T17:39:18.840440+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T20:05:00.150174+00:00", + "at": "2026-08-06T17:19:28.895464+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T16:56:43.018456+00:00", + "at": "2026-07-29T11:43:21.762729+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-07-28T20:05:00.150174+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T14:49:26.526892+00:00", + "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T13:21:50.285858+00:00", + "at": "2026-07-26T22:08:02.789776+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T12:39:05.717502+00:00", + "at": "2026-07-26T14:49:26.526892+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-22T21:29:31.681891+00:00", + "at": "2026-07-26T13:21:50.285858+00:00", "kind": "full", "status": "pass" } @@ -1741,57 +1741,57 @@ }, "AppCoreTests.ModelTests › testAddCounterPersists": { "file": "ios/Tests/AppCoreTests/ModelTests.swift", - "lastRunAt": "2026-08-10T17:39:18.840440+00:00", + "lastRunAt": "2026-08-11T19:08:08.447728+00:00", "lastRunKind": "full", "lastStatus": "pass", "recentStatuses": [ { - "at": "2026-08-10T17:39:18.840440+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-08-06T17:19:28.895464+00:00", + "at": "2026-08-11T19:05:13.647187+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-29T11:43:21.762729+00:00", + "at": "2026-08-10T17:39:18.840440+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T20:05:00.150174+00:00", + "at": "2026-08-06T17:19:28.895464+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T16:56:43.018456+00:00", + "at": "2026-07-29T11:43:21.762729+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-07-28T20:05:00.150174+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T14:49:26.526892+00:00", + "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T13:21:50.285858+00:00", + "at": "2026-07-26T22:08:02.789776+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T12:39:05.717502+00:00", + "at": "2026-07-26T14:49:26.526892+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-22T21:29:31.681891+00:00", + "at": "2026-07-26T13:21:50.285858+00:00", "kind": "full", "status": "pass" } @@ -1799,57 +1799,57 @@ }, "AppCoreTests.ModelTests › testBlankSlotIncrementsWithoutReviving": { "file": "", - "lastRunAt": "2026-08-10T17:39:18.840440+00:00", + "lastRunAt": "2026-08-11T19:08:08.447728+00:00", "lastRunKind": "full", "lastStatus": "pass", "recentStatuses": [ { - "at": "2026-08-10T17:39:18.840440+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-08-06T17:19:28.895464+00:00", + "at": "2026-08-11T19:05:13.647187+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-29T11:43:21.762729+00:00", + "at": "2026-08-10T17:39:18.840440+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T20:05:00.150174+00:00", + "at": "2026-08-06T17:19:28.895464+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T16:56:43.018456+00:00", + "at": "2026-07-29T11:43:21.762729+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-07-28T20:05:00.150174+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T14:49:26.526892+00:00", + "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T13:21:50.285858+00:00", + "at": "2026-07-26T22:08:02.789776+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T12:39:05.717502+00:00", + "at": "2026-07-26T14:49:26.526892+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-22T21:29:31.681891+00:00", + "at": "2026-07-26T13:21:50.285858+00:00", "kind": "full", "status": "pass" } @@ -1857,57 +1857,57 @@ }, "AppCoreTests.ModelTests › testChartPlotDomainIncludesNegativeRange": { "file": "", - "lastRunAt": "2026-08-10T17:39:18.840440+00:00", + "lastRunAt": "2026-08-11T19:08:08.447728+00:00", "lastRunKind": "full", "lastStatus": "pass", "recentStatuses": [ { - "at": "2026-08-10T17:39:18.840440+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-08-06T17:19:28.895464+00:00", + "at": "2026-08-11T19:05:13.647187+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-29T11:43:21.762729+00:00", + "at": "2026-08-10T17:39:18.840440+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T20:05:00.150174+00:00", + "at": "2026-08-06T17:19:28.895464+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T16:56:43.018456+00:00", + "at": "2026-07-29T11:43:21.762729+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-07-28T20:05:00.150174+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T14:49:26.526892+00:00", + "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T13:21:50.285858+00:00", + "at": "2026-07-26T22:08:02.789776+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T12:39:05.717502+00:00", + "at": "2026-07-26T14:49:26.526892+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-22T21:29:31.681891+00:00", + "at": "2026-07-26T13:21:50.285858+00:00", "kind": "full", "status": "pass" } @@ -1915,57 +1915,57 @@ }, "AppCoreTests.ModelTests › testChartPlotMapsExtremesAndDomain": { "file": "", - "lastRunAt": "2026-08-10T17:39:18.840440+00:00", + "lastRunAt": "2026-08-11T19:08:08.447728+00:00", "lastRunKind": "full", "lastStatus": "pass", "recentStatuses": [ { - "at": "2026-08-10T17:39:18.840440+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-08-06T17:19:28.895464+00:00", + "at": "2026-08-11T19:05:13.647187+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-29T11:43:21.762729+00:00", + "at": "2026-08-10T17:39:18.840440+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T20:05:00.150174+00:00", + "at": "2026-08-06T17:19:28.895464+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T16:56:43.018456+00:00", + "at": "2026-07-29T11:43:21.762729+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-07-28T20:05:00.150174+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T14:49:26.526892+00:00", + "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T13:21:50.285858+00:00", + "at": "2026-07-26T22:08:02.789776+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T12:39:05.717502+00:00", + "at": "2026-07-26T14:49:26.526892+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-22T21:29:31.681891+00:00", + "at": "2026-07-26T13:21:50.285858+00:00", "kind": "full", "status": "pass" } @@ -1973,57 +1973,57 @@ }, "AppCoreTests.ModelTests › testClampedSubtractRecordsActualAppliedDelta": { "file": "", - "lastRunAt": "2026-08-10T17:39:18.840440+00:00", + "lastRunAt": "2026-08-11T19:08:08.447728+00:00", "lastRunKind": "full", "lastStatus": "pass", "recentStatuses": [ { - "at": "2026-08-10T17:39:18.840440+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-08-06T17:19:28.895464+00:00", + "at": "2026-08-11T19:05:13.647187+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-29T11:43:21.762729+00:00", + "at": "2026-08-10T17:39:18.840440+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T20:05:00.150174+00:00", + "at": "2026-08-06T17:19:28.895464+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T16:56:43.018456+00:00", + "at": "2026-07-29T11:43:21.762729+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-07-28T20:05:00.150174+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T14:49:26.526892+00:00", + "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T13:21:50.285858+00:00", + "at": "2026-07-26T22:08:02.789776+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T12:39:05.717502+00:00", + "at": "2026-07-26T14:49:26.526892+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-22T21:29:31.681891+00:00", + "at": "2026-07-26T13:21:50.285858+00:00", "kind": "full", "status": "pass" } @@ -2031,57 +2031,57 @@ }, "AppCoreTests.ModelTests › testCumulativeSeriesReconstructsRunningCount": { "file": "", - "lastRunAt": "2026-08-10T17:39:18.840440+00:00", + "lastRunAt": "2026-08-11T19:08:08.447728+00:00", "lastRunKind": "full", "lastStatus": "pass", "recentStatuses": [ { - "at": "2026-08-10T17:39:18.840440+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-08-06T17:19:28.895464+00:00", + "at": "2026-08-11T19:05:13.647187+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-29T11:43:21.762729+00:00", + "at": "2026-08-10T17:39:18.840440+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T20:05:00.150174+00:00", + "at": "2026-08-06T17:19:28.895464+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T16:56:43.018456+00:00", + "at": "2026-07-29T11:43:21.762729+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-07-28T20:05:00.150174+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T14:49:26.526892+00:00", + "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T13:21:50.285858+00:00", + "at": "2026-07-26T22:08:02.789776+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T12:39:05.717502+00:00", + "at": "2026-07-26T14:49:26.526892+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-22T21:29:31.681891+00:00", + "at": "2026-07-26T13:21:50.285858+00:00", "kind": "full", "status": "pass" } @@ -2089,57 +2089,57 @@ }, "AppCoreTests.ModelTests › testDefaultEffectiveFeedbackIsAllOff": { "file": "ios/Tests/AppCoreTests/ModelTests.swift", - "lastRunAt": "2026-08-10T17:39:18.840440+00:00", + "lastRunAt": "2026-08-11T19:08:08.447728+00:00", "lastRunKind": "full", "lastStatus": "pass", "recentStatuses": [ { - "at": "2026-08-10T17:39:18.840440+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-08-06T17:19:28.895464+00:00", + "at": "2026-08-11T19:05:13.647187+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-29T11:43:21.762729+00:00", + "at": "2026-08-10T17:39:18.840440+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T20:05:00.150174+00:00", + "at": "2026-08-06T17:19:28.895464+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T16:56:43.018456+00:00", + "at": "2026-07-29T11:43:21.762729+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-07-28T20:05:00.150174+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T14:49:26.526892+00:00", + "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T13:21:50.285858+00:00", + "at": "2026-07-26T22:08:02.789776+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T12:39:05.717502+00:00", + "at": "2026-07-26T14:49:26.526892+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-22T21:29:31.681891+00:00", + "at": "2026-07-26T13:21:50.285858+00:00", "kind": "full", "status": "pass" } @@ -2147,57 +2147,57 @@ }, "AppCoreTests.ModelTests › testDeleteBeyondFirstFourRemovesAndSelectsPrevious": { "file": "", - "lastRunAt": "2026-08-10T17:39:18.840440+00:00", + "lastRunAt": "2026-08-11T19:08:08.447728+00:00", "lastRunKind": "full", "lastStatus": "pass", "recentStatuses": [ { - "at": "2026-08-10T17:39:18.840440+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-08-06T17:19:28.895464+00:00", + "at": "2026-08-11T19:05:13.647187+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-29T11:43:21.762729+00:00", + "at": "2026-08-10T17:39:18.840440+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T20:05:00.150174+00:00", + "at": "2026-08-06T17:19:28.895464+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T16:56:43.018456+00:00", + "at": "2026-07-29T11:43:21.762729+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-07-28T20:05:00.150174+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T14:49:26.526892+00:00", + "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T13:21:50.285858+00:00", + "at": "2026-07-26T22:08:02.789776+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T12:39:05.717502+00:00", + "at": "2026-07-26T14:49:26.526892+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-22T21:29:31.681891+00:00", + "at": "2026-07-26T13:21:50.285858+00:00", "kind": "full", "status": "pass" } @@ -2205,57 +2205,57 @@ }, "AppCoreTests.ModelTests › testDeleteBlanksInPlace": { "file": "", - "lastRunAt": "2026-08-10T17:39:18.840440+00:00", + "lastRunAt": "2026-08-11T19:08:08.447728+00:00", "lastRunKind": "full", "lastStatus": "pass", "recentStatuses": [ { - "at": "2026-08-10T17:39:18.840440+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-08-06T17:19:28.895464+00:00", + "at": "2026-08-11T19:05:13.647187+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-29T11:43:21.762729+00:00", + "at": "2026-08-10T17:39:18.840440+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T20:05:00.150174+00:00", + "at": "2026-08-06T17:19:28.895464+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T16:56:43.018456+00:00", + "at": "2026-07-29T11:43:21.762729+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-07-28T20:05:00.150174+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T14:49:26.526892+00:00", + "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T13:21:50.285858+00:00", + "at": "2026-07-26T22:08:02.789776+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T12:39:05.717502+00:00", + "at": "2026-07-26T14:49:26.526892+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-22T21:29:31.681891+00:00", + "at": "2026-07-26T13:21:50.285858+00:00", "kind": "full", "status": "pass" } @@ -2263,57 +2263,57 @@ }, "AppCoreTests.ModelTests › testDeleteCounterClearsItsHistories": { "file": "", - "lastRunAt": "2026-08-10T17:39:18.840440+00:00", + "lastRunAt": "2026-08-11T19:08:08.447728+00:00", "lastRunKind": "full", "lastStatus": "pass", "recentStatuses": [ { - "at": "2026-08-10T17:39:18.840440+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-08-06T17:19:28.895464+00:00", + "at": "2026-08-11T19:05:13.647187+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-29T11:43:21.762729+00:00", + "at": "2026-08-10T17:39:18.840440+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T20:05:00.150174+00:00", + "at": "2026-08-06T17:19:28.895464+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T16:56:43.018456+00:00", + "at": "2026-07-29T11:43:21.762729+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-07-28T20:05:00.150174+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T14:49:26.526892+00:00", + "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T13:21:50.285858+00:00", + "at": "2026-07-26T22:08:02.789776+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T12:39:05.717502+00:00", + "at": "2026-07-26T14:49:26.526892+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-22T21:29:31.681891+00:00", + "at": "2026-07-26T13:21:50.285858+00:00", "kind": "full", "status": "pass" } @@ -2321,57 +2321,57 @@ }, "AppCoreTests.ModelTests › testDeleteLastCounterBlanksInPlaceAndKeepsSelection": { "file": "", - "lastRunAt": "2026-08-10T17:39:18.840440+00:00", + "lastRunAt": "2026-08-11T19:08:08.447728+00:00", "lastRunKind": "full", "lastStatus": "pass", "recentStatuses": [ { - "at": "2026-08-10T17:39:18.840440+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-08-06T17:19:28.895464+00:00", + "at": "2026-08-11T19:05:13.647187+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-29T11:43:21.762729+00:00", + "at": "2026-08-10T17:39:18.840440+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T20:05:00.150174+00:00", + "at": "2026-08-06T17:19:28.895464+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T16:56:43.018456+00:00", + "at": "2026-07-29T11:43:21.762729+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-07-28T20:05:00.150174+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T14:49:26.526892+00:00", + "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T13:21:50.285858+00:00", + "at": "2026-07-26T22:08:02.789776+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T12:39:05.717502+00:00", + "at": "2026-07-26T14:49:26.526892+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-22T21:29:31.681891+00:00", + "at": "2026-07-26T13:21:50.285858+00:00", "kind": "full", "status": "pass" } @@ -2379,57 +2379,57 @@ }, "AppCoreTests.ModelTests › testDeletingCounterClearsPendingUndo": { "file": "ios/Tests/AppCoreTests/ModelTests.swift", - "lastRunAt": "2026-08-10T17:39:18.840440+00:00", + "lastRunAt": "2026-08-11T19:08:08.447728+00:00", "lastRunKind": "full", "lastStatus": "pass", "recentStatuses": [ { - "at": "2026-08-10T17:39:18.840440+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-08-06T17:19:28.895464+00:00", + "at": "2026-08-11T19:05:13.647187+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-29T11:43:21.762729+00:00", + "at": "2026-08-10T17:39:18.840440+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T20:05:00.150174+00:00", + "at": "2026-08-06T17:19:28.895464+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T16:56:43.018456+00:00", + "at": "2026-07-29T11:43:21.762729+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-07-28T20:05:00.150174+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T14:49:26.526892+00:00", + "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T13:21:50.285858+00:00", + "at": "2026-07-26T22:08:02.789776+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T12:39:05.717502+00:00", + "at": "2026-07-26T14:49:26.526892+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-22T21:29:31.681891+00:00", + "at": "2026-07-26T13:21:50.285858+00:00", "kind": "full", "status": "pass" } @@ -2437,57 +2437,57 @@ }, "AppCoreTests.ModelTests › testDeletingEveryBaseSlotNeverShrinksTheRow": { "file": "", - "lastRunAt": "2026-08-10T17:39:18.840440+00:00", + "lastRunAt": "2026-08-11T19:08:08.447728+00:00", "lastRunKind": "full", "lastStatus": "pass", "recentStatuses": [ { - "at": "2026-08-10T17:39:18.840440+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-08-06T17:19:28.895464+00:00", + "at": "2026-08-11T19:05:13.647187+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-29T11:43:21.762729+00:00", + "at": "2026-08-10T17:39:18.840440+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T20:05:00.150174+00:00", + "at": "2026-08-06T17:19:28.895464+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T16:56:43.018456+00:00", + "at": "2026-07-29T11:43:21.762729+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-07-28T20:05:00.150174+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T14:49:26.526892+00:00", + "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T13:21:50.285858+00:00", + "at": "2026-07-26T22:08:02.789776+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T12:39:05.717502+00:00", + "at": "2026-07-26T14:49:26.526892+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-22T21:29:31.681891+00:00", + "at": "2026-07-26T13:21:50.285858+00:00", "kind": "full", "status": "pass" } @@ -2495,57 +2495,57 @@ }, "AppCoreTests.ModelTests › testDeletingExtraCounterDropsItsHistory": { "file": "", - "lastRunAt": "2026-08-10T17:39:18.840440+00:00", + "lastRunAt": "2026-08-11T19:08:08.447728+00:00", "lastRunKind": "full", "lastStatus": "pass", "recentStatuses": [ { - "at": "2026-08-10T17:39:18.840440+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-08-06T17:19:28.895464+00:00", + "at": "2026-08-11T19:05:13.647187+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-29T11:43:21.762729+00:00", + "at": "2026-08-10T17:39:18.840440+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T20:05:00.150174+00:00", + "at": "2026-08-06T17:19:28.895464+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T16:56:43.018456+00:00", + "at": "2026-07-29T11:43:21.762729+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-07-28T20:05:00.150174+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T14:49:26.526892+00:00", + "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T13:21:50.285858+00:00", + "at": "2026-07-26T22:08:02.789776+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T12:39:05.717502+00:00", + "at": "2026-07-26T14:49:26.526892+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-22T21:29:31.681891+00:00", + "at": "2026-07-26T13:21:50.285858+00:00", "kind": "full", "status": "pass" } @@ -2553,57 +2553,57 @@ }, "AppCoreTests.ModelTests › testDeletingLastExtraCounterSelectsNewLast": { "file": "", - "lastRunAt": "2026-08-10T17:39:18.840440+00:00", + "lastRunAt": "2026-08-11T19:08:08.447728+00:00", "lastRunKind": "full", "lastStatus": "pass", "recentStatuses": [ { - "at": "2026-08-10T17:39:18.840440+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-08-06T17:19:28.895464+00:00", + "at": "2026-08-11T19:05:13.647187+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-29T11:43:21.762729+00:00", + "at": "2026-08-10T17:39:18.840440+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T20:05:00.150174+00:00", + "at": "2026-08-06T17:19:28.895464+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T16:56:43.018456+00:00", + "at": "2026-07-29T11:43:21.762729+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-07-28T20:05:00.150174+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T14:49:26.526892+00:00", + "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T13:21:50.285858+00:00", + "at": "2026-07-26T22:08:02.789776+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T12:39:05.717502+00:00", + "at": "2026-07-26T14:49:26.526892+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-22T21:29:31.681891+00:00", + "at": "2026-07-26T13:21:50.285858+00:00", "kind": "full", "status": "pass" } @@ -2611,57 +2611,57 @@ }, "AppCoreTests.ModelTests › testDeletingMiddleExtraCounterSlidesFollowingCounterDown": { "file": "", - "lastRunAt": "2026-08-10T17:39:18.840440+00:00", + "lastRunAt": "2026-08-11T19:08:08.447728+00:00", "lastRunKind": "full", "lastStatus": "pass", "recentStatuses": [ { - "at": "2026-08-10T17:39:18.840440+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-08-06T17:19:28.895464+00:00", + "at": "2026-08-11T19:05:13.647187+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-29T11:43:21.762729+00:00", + "at": "2026-08-10T17:39:18.840440+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T20:05:00.150174+00:00", + "at": "2026-08-06T17:19:28.895464+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T16:56:43.018456+00:00", + "at": "2026-07-29T11:43:21.762729+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-07-28T20:05:00.150174+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T14:49:26.526892+00:00", + "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T13:21:50.285858+00:00", + "at": "2026-07-26T22:08:02.789776+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T12:39:05.717502+00:00", + "at": "2026-07-26T14:49:26.526892+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-22T21:29:31.681891+00:00", + "at": "2026-07-26T13:21:50.285858+00:00", "kind": "full", "status": "pass" } @@ -2669,57 +2669,57 @@ }, "AppCoreTests.ModelTests › testEditingActiveCounterClearsPendingUndo": { "file": "ios/Tests/AppCoreTests/ModelTests.swift", - "lastRunAt": "2026-08-10T17:39:18.840440+00:00", + "lastRunAt": "2026-08-11T19:08:08.447728+00:00", "lastRunKind": "full", "lastStatus": "pass", "recentStatuses": [ { - "at": "2026-08-10T17:39:18.840440+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-08-06T17:19:28.895464+00:00", + "at": "2026-08-11T19:05:13.647187+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-29T11:43:21.762729+00:00", + "at": "2026-08-10T17:39:18.840440+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T20:05:00.150174+00:00", + "at": "2026-08-06T17:19:28.895464+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T16:56:43.018456+00:00", + "at": "2026-07-29T11:43:21.762729+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-07-28T20:05:00.150174+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T14:49:26.526892+00:00", + "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T13:21:50.285858+00:00", + "at": "2026-07-26T22:08:02.789776+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T12:39:05.717502+00:00", + "at": "2026-07-26T14:49:26.526892+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-22T21:29:31.681891+00:00", + "at": "2026-07-26T13:21:50.285858+00:00", "kind": "full", "status": "pass" } @@ -2727,57 +2727,57 @@ }, "AppCoreTests.ModelTests › testEffectiveResolversFollowDefaultWhenNil": { "file": "ios/Tests/AppCoreTests/ModelTests.swift", - "lastRunAt": "2026-08-10T17:39:18.840440+00:00", + "lastRunAt": "2026-08-11T19:08:08.447728+00:00", "lastRunKind": "full", "lastStatus": "pass", "recentStatuses": [ { - "at": "2026-08-10T17:39:18.840440+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-08-06T17:19:28.895464+00:00", + "at": "2026-08-11T19:05:13.647187+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-29T11:43:21.762729+00:00", + "at": "2026-08-10T17:39:18.840440+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T20:05:00.150174+00:00", + "at": "2026-08-06T17:19:28.895464+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T16:56:43.018456+00:00", + "at": "2026-07-29T11:43:21.762729+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-07-28T20:05:00.150174+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T14:49:26.526892+00:00", + "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T13:21:50.285858+00:00", + "at": "2026-07-26T22:08:02.789776+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T12:39:05.717502+00:00", + "at": "2026-07-26T14:49:26.526892+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-22T21:29:31.681891+00:00", + "at": "2026-07-26T13:21:50.285858+00:00", "kind": "full", "status": "pass" } @@ -2785,57 +2785,57 @@ }, "AppCoreTests.ModelTests › testEffectiveResolversPinOverrideWhenSet": { "file": "ios/Tests/AppCoreTests/ModelTests.swift", - "lastRunAt": "2026-08-10T17:39:18.840440+00:00", + "lastRunAt": "2026-08-11T19:08:08.447728+00:00", "lastRunKind": "full", "lastStatus": "pass", "recentStatuses": [ { - "at": "2026-08-10T17:39:18.840440+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-08-06T17:19:28.895464+00:00", + "at": "2026-08-11T19:05:13.647187+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-29T11:43:21.762729+00:00", + "at": "2026-08-10T17:39:18.840440+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T20:05:00.150174+00:00", + "at": "2026-08-06T17:19:28.895464+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T16:56:43.018456+00:00", + "at": "2026-07-29T11:43:21.762729+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-07-28T20:05:00.150174+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T14:49:26.526892+00:00", + "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T13:21:50.285858+00:00", + "at": "2026-07-26T22:08:02.789776+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T12:39:05.717502+00:00", + "at": "2026-07-26T14:49:26.526892+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-22T21:29:31.681891+00:00", + "at": "2026-07-26T13:21:50.285858+00:00", "kind": "full", "status": "pass" } @@ -2843,57 +2843,57 @@ }, "AppCoreTests.ModelTests › testFreshModelHasFourStarterCountersAtZero": { "file": "ios/Tests/AppCoreTests/ModelTests.swift", - "lastRunAt": "2026-08-10T17:39:18.840440+00:00", + "lastRunAt": "2026-08-11T19:08:08.447728+00:00", "lastRunKind": "full", "lastStatus": "pass", "recentStatuses": [ { - "at": "2026-08-10T17:39:18.840440+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-08-06T17:19:28.895464+00:00", + "at": "2026-08-11T19:05:13.647187+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-29T11:43:21.762729+00:00", + "at": "2026-08-10T17:39:18.840440+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T20:05:00.150174+00:00", + "at": "2026-08-06T17:19:28.895464+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T16:56:43.018456+00:00", + "at": "2026-07-29T11:43:21.762729+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-07-28T20:05:00.150174+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T14:49:26.526892+00:00", + "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T13:21:50.285858+00:00", + "at": "2026-07-26T22:08:02.789776+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T12:39:05.717502+00:00", + "at": "2026-07-26T14:49:26.526892+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-22T21:29:31.681891+00:00", + "at": "2026-07-26T13:21:50.285858+00:00", "kind": "full", "status": "pass" } @@ -2901,57 +2901,57 @@ }, "AppCoreTests.ModelTests › testHandednessOverrideResolvesPerCounter": { "file": "ios/Tests/AppCoreTests/ModelTests.swift", - "lastRunAt": "2026-08-10T17:39:18.840440+00:00", + "lastRunAt": "2026-08-11T19:08:08.447728+00:00", "lastRunKind": "full", "lastStatus": "pass", "recentStatuses": [ { - "at": "2026-08-10T17:39:18.840440+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-08-06T17:19:28.895464+00:00", + "at": "2026-08-11T19:05:13.647187+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-29T11:43:21.762729+00:00", + "at": "2026-08-10T17:39:18.840440+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T20:05:00.150174+00:00", + "at": "2026-08-06T17:19:28.895464+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T16:56:43.018456+00:00", + "at": "2026-07-29T11:43:21.762729+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-07-28T20:05:00.150174+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T14:49:26.526892+00:00", + "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T13:21:50.285858+00:00", + "at": "2026-07-26T22:08:02.789776+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T12:39:05.717502+00:00", + "at": "2026-07-26T14:49:26.526892+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-22T21:29:31.681891+00:00", + "at": "2026-07-26T13:21:50.285858+00:00", "kind": "full", "status": "pass" } @@ -2959,57 +2959,57 @@ }, "AppCoreTests.ModelTests › testHapticDirectionsResolveIndependently": { "file": "ios/Tests/AppCoreTests/ModelTests.swift", - "lastRunAt": "2026-08-10T17:39:18.840440+00:00", + "lastRunAt": "2026-08-11T19:08:08.447728+00:00", "lastRunKind": "full", "lastStatus": "pass", "recentStatuses": [ { - "at": "2026-08-10T17:39:18.840440+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-08-06T17:19:28.895464+00:00", + "at": "2026-08-11T19:05:13.647187+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-29T11:43:21.762729+00:00", + "at": "2026-08-10T17:39:18.840440+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T20:05:00.150174+00:00", + "at": "2026-08-06T17:19:28.895464+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T16:56:43.018456+00:00", + "at": "2026-07-29T11:43:21.762729+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-07-28T20:05:00.150174+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T14:49:26.526892+00:00", + "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T13:21:50.285858+00:00", + "at": "2026-07-26T22:08:02.789776+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T12:39:05.717502+00:00", + "at": "2026-07-26T14:49:26.526892+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-22T21:29:31.681891+00:00", + "at": "2026-07-26T13:21:50.285858+00:00", "kind": "full", "status": "pass" } @@ -3017,57 +3017,57 @@ }, "AppCoreTests.ModelTests › testHistoriesPersistAndReloadFromDefaults": { "file": "", - "lastRunAt": "2026-08-10T17:39:18.840440+00:00", + "lastRunAt": "2026-08-11T19:08:08.447728+00:00", "lastRunKind": "full", "lastStatus": "pass", "recentStatuses": [ { - "at": "2026-08-10T17:39:18.840440+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-08-06T17:19:28.895464+00:00", + "at": "2026-08-11T19:05:13.647187+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-29T11:43:21.762729+00:00", + "at": "2026-08-10T17:39:18.840440+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T20:05:00.150174+00:00", + "at": "2026-08-06T17:19:28.895464+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T16:56:43.018456+00:00", + "at": "2026-07-29T11:43:21.762729+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-07-28T20:05:00.150174+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T14:49:26.526892+00:00", + "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T13:21:50.285858+00:00", + "at": "2026-07-26T22:08:02.789776+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T12:39:05.717502+00:00", + "at": "2026-07-26T14:49:26.526892+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-22T21:29:31.681891+00:00", + "at": "2026-07-26T13:21:50.285858+00:00", "kind": "full", "status": "pass" } @@ -3075,57 +3075,57 @@ }, "AppCoreTests.ModelTests › testHistoryCapDropsOldestRun": { "file": "", - "lastRunAt": "2026-08-10T17:39:18.840440+00:00", + "lastRunAt": "2026-08-11T19:08:08.447728+00:00", "lastRunKind": "full", "lastStatus": "pass", "recentStatuses": [ { - "at": "2026-08-10T17:39:18.840440+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-08-06T17:19:28.895464+00:00", + "at": "2026-08-11T19:05:13.647187+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-29T11:43:21.762729+00:00", + "at": "2026-08-10T17:39:18.840440+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T20:05:00.150174+00:00", + "at": "2026-08-06T17:19:28.895464+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T16:56:43.018456+00:00", + "at": "2026-07-29T11:43:21.762729+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-07-28T20:05:00.150174+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T14:49:26.526892+00:00", + "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T13:21:50.285858+00:00", + "at": "2026-07-26T22:08:02.789776+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T12:39:05.717502+00:00", + "at": "2026-07-26T14:49:26.526892+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-22T21:29:31.681891+00:00", + "at": "2026-07-26T13:21:50.285858+00:00", "kind": "full", "status": "pass" } @@ -3133,57 +3133,57 @@ }, "AppCoreTests.ModelTests › testIncrementClearsPendingUndo": { "file": "ios/Tests/AppCoreTests/ModelTests.swift", - "lastRunAt": "2026-08-10T17:39:18.840440+00:00", + "lastRunAt": "2026-08-11T19:08:08.447728+00:00", "lastRunKind": "full", "lastStatus": "pass", "recentStatuses": [ { - "at": "2026-08-10T17:39:18.840440+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-08-06T17:19:28.895464+00:00", + "at": "2026-08-11T19:05:13.647187+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-29T11:43:21.762729+00:00", + "at": "2026-08-10T17:39:18.840440+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T20:05:00.150174+00:00", + "at": "2026-08-06T17:19:28.895464+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T16:56:43.018456+00:00", + "at": "2026-07-29T11:43:21.762729+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-07-28T20:05:00.150174+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T14:49:26.526892+00:00", + "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T13:21:50.285858+00:00", + "at": "2026-07-26T22:08:02.789776+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T12:39:05.717502+00:00", + "at": "2026-07-26T14:49:26.526892+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-22T21:29:31.681891+00:00", + "at": "2026-07-26T13:21:50.285858+00:00", "kind": "full", "status": "pass" } @@ -3191,57 +3191,57 @@ }, "AppCoreTests.ModelTests › testIncrementFiresFeedbackWithIncrementHaptic": { "file": "ios/Tests/AppCoreTests/ModelTests.swift", - "lastRunAt": "2026-08-10T17:39:18.840440+00:00", + "lastRunAt": "2026-08-11T19:08:08.447728+00:00", "lastRunKind": "full", "lastStatus": "pass", "recentStatuses": [ { - "at": "2026-08-10T17:39:18.840440+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-08-06T17:19:28.895464+00:00", + "at": "2026-08-11T19:05:13.647187+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-29T11:43:21.762729+00:00", + "at": "2026-08-10T17:39:18.840440+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T20:05:00.150174+00:00", + "at": "2026-08-06T17:19:28.895464+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T16:56:43.018456+00:00", + "at": "2026-07-29T11:43:21.762729+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-07-28T20:05:00.150174+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T14:49:26.526892+00:00", + "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T13:21:50.285858+00:00", + "at": "2026-07-26T22:08:02.789776+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T12:39:05.717502+00:00", + "at": "2026-07-26T14:49:26.526892+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-22T21:29:31.681891+00:00", + "at": "2026-07-26T13:21:50.285858+00:00", "kind": "full", "status": "pass" } @@ -3249,57 +3249,57 @@ }, "AppCoreTests.ModelTests › testIncrementHonorsStep": { "file": "ios/Tests/AppCoreTests/ModelTests.swift", - "lastRunAt": "2026-08-10T17:39:18.840440+00:00", + "lastRunAt": "2026-08-11T19:08:08.447728+00:00", "lastRunKind": "full", "lastStatus": "pass", "recentStatuses": [ { - "at": "2026-08-10T17:39:18.840440+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-08-06T17:19:28.895464+00:00", + "at": "2026-08-11T19:05:13.647187+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-29T11:43:21.762729+00:00", + "at": "2026-08-10T17:39:18.840440+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T20:05:00.150174+00:00", + "at": "2026-08-06T17:19:28.895464+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T16:56:43.018456+00:00", + "at": "2026-07-29T11:43:21.762729+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-07-28T20:05:00.150174+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T14:49:26.526892+00:00", + "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T13:21:50.285858+00:00", + "at": "2026-07-26T22:08:02.789776+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T12:39:05.717502+00:00", + "at": "2026-07-26T14:49:26.526892+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-22T21:29:31.681891+00:00", + "at": "2026-07-26T13:21:50.285858+00:00", "kind": "full", "status": "pass" } @@ -3307,57 +3307,57 @@ }, "AppCoreTests.ModelTests › testIncrementRaisesActiveCounter": { "file": "ios/Tests/AppCoreTests/ModelTests.swift", - "lastRunAt": "2026-08-10T17:39:18.840440+00:00", + "lastRunAt": "2026-08-11T19:08:08.447728+00:00", "lastRunKind": "full", "lastStatus": "pass", "recentStatuses": [ { - "at": "2026-08-10T17:39:18.840440+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-08-06T17:19:28.895464+00:00", + "at": "2026-08-11T19:05:13.647187+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-29T11:43:21.762729+00:00", + "at": "2026-08-10T17:39:18.840440+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T20:05:00.150174+00:00", + "at": "2026-08-06T17:19:28.895464+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T16:56:43.018456+00:00", + "at": "2026-07-29T11:43:21.762729+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-07-28T20:05:00.150174+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T14:49:26.526892+00:00", + "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T13:21:50.285858+00:00", + "at": "2026-07-26T22:08:02.789776+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T12:39:05.717502+00:00", + "at": "2026-07-26T14:49:26.526892+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-22T21:29:31.681891+00:00", + "at": "2026-07-26T13:21:50.285858+00:00", "kind": "full", "status": "pass" } @@ -3365,57 +3365,57 @@ }, "AppCoreTests.ModelTests › testIncrementRecordsPositiveEvent": { "file": "", - "lastRunAt": "2026-08-10T17:39:18.840440+00:00", + "lastRunAt": "2026-08-11T19:08:08.447728+00:00", "lastRunKind": "full", "lastStatus": "pass", "recentStatuses": [ { - "at": "2026-08-10T17:39:18.840440+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-08-06T17:19:28.895464+00:00", + "at": "2026-08-11T19:05:13.647187+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-29T11:43:21.762729+00:00", + "at": "2026-08-10T17:39:18.840440+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T20:05:00.150174+00:00", + "at": "2026-08-06T17:19:28.895464+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T16:56:43.018456+00:00", + "at": "2026-07-29T11:43:21.762729+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-07-28T20:05:00.150174+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T14:49:26.526892+00:00", + "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T13:21:50.285858+00:00", + "at": "2026-07-26T22:08:02.789776+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T12:39:05.717502+00:00", + "at": "2026-07-26T14:49:26.526892+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-22T21:29:31.681891+00:00", + "at": "2026-07-26T13:21:50.285858+00:00", "kind": "full", "status": "pass" } @@ -3423,57 +3423,57 @@ }, "AppCoreTests.ModelTests › testIncrementUsesActiveCounterEffectiveFeedback": { "file": "ios/Tests/AppCoreTests/ModelTests.swift", - "lastRunAt": "2026-08-10T17:39:18.840440+00:00", + "lastRunAt": "2026-08-11T19:08:08.447728+00:00", "lastRunKind": "full", "lastStatus": "pass", "recentStatuses": [ { - "at": "2026-08-10T17:39:18.840440+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-08-06T17:19:28.895464+00:00", + "at": "2026-08-11T19:05:13.647187+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-29T11:43:21.762729+00:00", + "at": "2026-08-10T17:39:18.840440+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T20:05:00.150174+00:00", + "at": "2026-08-06T17:19:28.895464+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T16:56:43.018456+00:00", + "at": "2026-07-29T11:43:21.762729+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-07-28T20:05:00.150174+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T14:49:26.526892+00:00", + "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T13:21:50.285858+00:00", + "at": "2026-07-26T22:08:02.789776+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T12:39:05.717502+00:00", + "at": "2026-07-26T14:49:26.526892+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-22T21:29:31.681891+00:00", + "at": "2026-07-26T13:21:50.285858+00:00", "kind": "full", "status": "pass" } @@ -3481,57 +3481,57 @@ }, "AppCoreTests.ModelTests › testLegacyCounterWithoutStepDecodesToStepOne": { "file": "ios/Tests/AppCoreTests/ModelTests.swift", - "lastRunAt": "2026-08-10T17:39:18.840440+00:00", + "lastRunAt": "2026-08-11T19:08:08.447728+00:00", "lastRunKind": "full", "lastStatus": "pass", "recentStatuses": [ { - "at": "2026-08-10T17:39:18.840440+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-08-06T17:19:28.895464+00:00", + "at": "2026-08-11T19:05:13.647187+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-29T11:43:21.762729+00:00", + "at": "2026-08-10T17:39:18.840440+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T20:05:00.150174+00:00", + "at": "2026-08-06T17:19:28.895464+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T16:56:43.018456+00:00", + "at": "2026-07-29T11:43:21.762729+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-07-28T20:05:00.150174+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T14:49:26.526892+00:00", + "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T13:21:50.285858+00:00", + "at": "2026-07-26T22:08:02.789776+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T12:39:05.717502+00:00", + "at": "2026-07-26T14:49:26.526892+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-22T21:29:31.681891+00:00", + "at": "2026-07-26T13:21:50.285858+00:00", "kind": "full", "status": "pass" } @@ -3539,57 +3539,57 @@ }, "AppCoreTests.ModelTests › testLegacyCountersDecodeWithNilOverrides": { "file": "ios/Tests/AppCoreTests/ModelTests.swift", - "lastRunAt": "2026-08-10T17:39:18.840440+00:00", + "lastRunAt": "2026-08-11T19:08:08.447728+00:00", "lastRunKind": "full", "lastStatus": "pass", "recentStatuses": [ { - "at": "2026-08-10T17:39:18.840440+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-08-06T17:19:28.895464+00:00", + "at": "2026-08-11T19:05:13.647187+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-29T11:43:21.762729+00:00", + "at": "2026-08-10T17:39:18.840440+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T20:05:00.150174+00:00", + "at": "2026-08-06T17:19:28.895464+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T16:56:43.018456+00:00", + "at": "2026-07-29T11:43:21.762729+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-07-28T20:05:00.150174+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T14:49:26.526892+00:00", + "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T13:21:50.285858+00:00", + "at": "2026-07-26T22:08:02.789776+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T12:39:05.717502+00:00", + "at": "2026-07-26T14:49:26.526892+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-22T21:29:31.681891+00:00", + "at": "2026-07-26T13:21:50.285858+00:00", "kind": "full", "status": "pass" } @@ -3597,57 +3597,57 @@ }, "AppCoreTests.ModelTests › testLegacySingleHapticOverrideMigratesToBothDirections": { "file": "ios/Tests/AppCoreTests/ModelTests.swift", - "lastRunAt": "2026-08-10T17:39:18.840440+00:00", + "lastRunAt": "2026-08-11T19:08:08.447728+00:00", "lastRunKind": "full", "lastStatus": "pass", "recentStatuses": [ { - "at": "2026-08-10T17:39:18.840440+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-08-06T17:19:28.895464+00:00", + "at": "2026-08-11T19:05:13.647187+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-29T11:43:21.762729+00:00", + "at": "2026-08-10T17:39:18.840440+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T20:05:00.150174+00:00", + "at": "2026-08-06T17:19:28.895464+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T16:56:43.018456+00:00", + "at": "2026-07-29T11:43:21.762729+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-07-28T20:05:00.150174+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T14:49:26.526892+00:00", + "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T13:21:50.285858+00:00", + "at": "2026-07-26T22:08:02.789776+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T12:39:05.717502+00:00", + "at": "2026-07-26T14:49:26.526892+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-22T21:29:31.681891+00:00", + "at": "2026-07-26T13:21:50.285858+00:00", "kind": "full", "status": "pass" } @@ -3655,57 +3655,57 @@ }, "AppCoreTests.ModelTests › testLoadsSeededStateFromDefaults": { "file": "ios/Tests/AppCoreTests/ModelTests.swift", - "lastRunAt": "2026-08-10T17:39:18.840440+00:00", + "lastRunAt": "2026-08-11T19:08:08.447728+00:00", "lastRunKind": "full", "lastStatus": "pass", "recentStatuses": [ { - "at": "2026-08-10T17:39:18.840440+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-08-06T17:19:28.895464+00:00", + "at": "2026-08-11T19:05:13.647187+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-29T11:43:21.762729+00:00", + "at": "2026-08-10T17:39:18.840440+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T20:05:00.150174+00:00", + "at": "2026-08-06T17:19:28.895464+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T16:56:43.018456+00:00", + "at": "2026-07-29T11:43:21.762729+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-07-28T20:05:00.150174+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T14:49:26.526892+00:00", + "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T13:21:50.285858+00:00", + "at": "2026-07-26T22:08:02.789776+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T12:39:05.717502+00:00", + "at": "2026-07-26T14:49:26.526892+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-22T21:29:31.681891+00:00", + "at": "2026-07-26T13:21:50.285858+00:00", "kind": "full", "status": "pass" } @@ -3713,57 +3713,57 @@ }, "AppCoreTests.ModelTests › testMigrationFoldsDeletedDefaultsIntoBlankSlots": { "file": "", - "lastRunAt": "2026-08-10T17:39:18.840440+00:00", + "lastRunAt": "2026-08-11T19:08:08.447728+00:00", "lastRunKind": "full", "lastStatus": "pass", "recentStatuses": [ { - "at": "2026-08-10T17:39:18.840440+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-08-06T17:19:28.895464+00:00", + "at": "2026-08-11T19:05:13.647187+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-29T11:43:21.762729+00:00", + "at": "2026-08-10T17:39:18.840440+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T20:05:00.150174+00:00", + "at": "2026-08-06T17:19:28.895464+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T16:56:43.018456+00:00", + "at": "2026-07-29T11:43:21.762729+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-07-28T20:05:00.150174+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T14:49:26.526892+00:00", + "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T13:21:50.285858+00:00", + "at": "2026-07-26T22:08:02.789776+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T12:39:05.717502+00:00", + "at": "2026-07-26T14:49:26.526892+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-22T21:29:31.681891+00:00", + "at": "2026-07-26T13:21:50.285858+00:00", "kind": "full", "status": "pass" } @@ -3771,57 +3771,57 @@ }, "AppCoreTests.ModelTests › testNamingBlankSlotRevivesIt": { "file": "", - "lastRunAt": "2026-08-10T17:39:18.840440+00:00", + "lastRunAt": "2026-08-11T19:08:08.447728+00:00", "lastRunKind": "full", "lastStatus": "pass", "recentStatuses": [ { - "at": "2026-08-10T17:39:18.840440+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-08-06T17:19:28.895464+00:00", + "at": "2026-08-11T19:05:13.647187+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-29T11:43:21.762729+00:00", + "at": "2026-08-10T17:39:18.840440+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T20:05:00.150174+00:00", + "at": "2026-08-06T17:19:28.895464+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T16:56:43.018456+00:00", + "at": "2026-07-29T11:43:21.762729+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-07-28T20:05:00.150174+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T14:49:26.526892+00:00", + "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T13:21:50.285858+00:00", + "at": "2026-07-26T22:08:02.789776+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T12:39:05.717502+00:00", + "at": "2026-07-26T14:49:26.526892+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-22T21:29:31.681891+00:00", + "at": "2026-07-26T13:21:50.285858+00:00", "kind": "full", "status": "pass" } @@ -3829,57 +3829,57 @@ }, "AppCoreTests.ModelTests › testNewHapticOverrideKeyWinsOverLegacyOnDecode": { "file": "ios/Tests/AppCoreTests/ModelTests.swift", - "lastRunAt": "2026-08-10T17:39:18.840440+00:00", + "lastRunAt": "2026-08-11T19:08:08.447728+00:00", "lastRunKind": "full", "lastStatus": "pass", "recentStatuses": [ { - "at": "2026-08-10T17:39:18.840440+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-08-06T17:19:28.895464+00:00", + "at": "2026-08-11T19:05:13.647187+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-29T11:43:21.762729+00:00", + "at": "2026-08-10T17:39:18.840440+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T20:05:00.150174+00:00", + "at": "2026-08-06T17:19:28.895464+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T16:56:43.018456+00:00", + "at": "2026-07-29T11:43:21.762729+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-07-28T20:05:00.150174+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T14:49:26.526892+00:00", + "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T13:21:50.285858+00:00", + "at": "2026-07-26T22:08:02.789776+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T12:39:05.717502+00:00", + "at": "2026-07-26T14:49:26.526892+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-22T21:29:31.681891+00:00", + "at": "2026-07-26T13:21:50.285858+00:00", "kind": "full", "status": "pass" } @@ -3887,57 +3887,57 @@ }, "AppCoreTests.ModelTests › testNoOpSubtractClampRecordsNoEvent": { "file": "", - "lastRunAt": "2026-08-10T17:39:18.840440+00:00", + "lastRunAt": "2026-08-11T19:08:08.447728+00:00", "lastRunKind": "full", "lastStatus": "pass", "recentStatuses": [ { - "at": "2026-08-10T17:39:18.840440+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-08-06T17:19:28.895464+00:00", + "at": "2026-08-11T19:05:13.647187+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-29T11:43:21.762729+00:00", + "at": "2026-08-10T17:39:18.840440+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T20:05:00.150174+00:00", + "at": "2026-08-06T17:19:28.895464+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T16:56:43.018456+00:00", + "at": "2026-07-29T11:43:21.762729+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-07-28T20:05:00.150174+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T14:49:26.526892+00:00", + "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T13:21:50.285858+00:00", + "at": "2026-07-26T22:08:02.789776+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T12:39:05.717502+00:00", + "at": "2026-07-26T14:49:26.526892+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-22T21:29:31.681891+00:00", + "at": "2026-07-26T13:21:50.285858+00:00", "kind": "full", "status": "pass" } @@ -3945,57 +3945,57 @@ }, "AppCoreTests.ModelTests › testOverrideTracksOrPinsAgainstChangingDefault": { "file": "ios/Tests/AppCoreTests/ModelTests.swift", - "lastRunAt": "2026-08-10T17:39:18.840440+00:00", + "lastRunAt": "2026-08-11T19:08:08.447728+00:00", "lastRunKind": "full", "lastStatus": "pass", "recentStatuses": [ { - "at": "2026-08-10T17:39:18.840440+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-08-06T17:19:28.895464+00:00", + "at": "2026-08-11T19:05:13.647187+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-29T11:43:21.762729+00:00", + "at": "2026-08-10T17:39:18.840440+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T20:05:00.150174+00:00", + "at": "2026-08-06T17:19:28.895464+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T16:56:43.018456+00:00", + "at": "2026-07-29T11:43:21.762729+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-07-28T20:05:00.150174+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T14:49:26.526892+00:00", + "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T13:21:50.285858+00:00", + "at": "2026-07-26T22:08:02.789776+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T12:39:05.717502+00:00", + "at": "2026-07-26T14:49:26.526892+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-22T21:29:31.681891+00:00", + "at": "2026-07-26T13:21:50.285858+00:00", "kind": "full", "status": "pass" } @@ -4003,57 +4003,57 @@ }, "AppCoreTests.ModelTests › testRelativeOffsetMeasuredFromStart": { "file": "", - "lastRunAt": "2026-08-10T17:39:18.840440+00:00", + "lastRunAt": "2026-08-11T19:08:08.447728+00:00", "lastRunKind": "full", "lastStatus": "pass", "recentStatuses": [ { - "at": "2026-08-10T17:39:18.840440+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-08-06T17:19:28.895464+00:00", + "at": "2026-08-11T19:05:13.647187+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-29T11:43:21.762729+00:00", + "at": "2026-08-10T17:39:18.840440+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T20:05:00.150174+00:00", + "at": "2026-08-06T17:19:28.895464+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T16:56:43.018456+00:00", + "at": "2026-07-29T11:43:21.762729+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-07-28T20:05:00.150174+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T14:49:26.526892+00:00", + "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T13:21:50.285858+00:00", + "at": "2026-07-26T22:08:02.789776+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T12:39:05.717502+00:00", + "at": "2026-07-26T14:49:26.526892+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-22T21:29:31.681891+00:00", + "at": "2026-07-26T13:21:50.285858+00:00", "kind": "full", "status": "pass" } @@ -4061,57 +4061,57 @@ }, "AppCoreTests.ModelTests › testRelativeTimeFormatting": { "file": "", - "lastRunAt": "2026-08-10T17:39:18.840440+00:00", + "lastRunAt": "2026-08-11T19:08:08.447728+00:00", "lastRunKind": "full", "lastStatus": "pass", "recentStatuses": [ { - "at": "2026-08-10T17:39:18.840440+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-08-06T17:19:28.895464+00:00", + "at": "2026-08-11T19:05:13.647187+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-29T11:43:21.762729+00:00", + "at": "2026-08-10T17:39:18.840440+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T20:05:00.150174+00:00", + "at": "2026-08-06T17:19:28.895464+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T16:56:43.018456+00:00", + "at": "2026-07-29T11:43:21.762729+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-07-28T20:05:00.150174+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T14:49:26.526892+00:00", + "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T13:21:50.285858+00:00", + "at": "2026-07-26T22:08:02.789776+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T12:39:05.717502+00:00", + "at": "2026-07-26T14:49:26.526892+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-22T21:29:31.681891+00:00", + "at": "2026-07-26T13:21:50.285858+00:00", "kind": "full", "status": "pass" } @@ -4119,57 +4119,57 @@ }, "AppCoreTests.ModelTests › testReleasePolicyIgnoresSeededAppSettingsWithoutProvenance": { "file": "", - "lastRunAt": "2026-08-10T17:39:18.840440+00:00", + "lastRunAt": "2026-08-11T19:08:08.447728+00:00", "lastRunKind": "full", "lastStatus": "pass", "recentStatuses": [ { - "at": "2026-08-10T17:39:18.840440+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-08-06T17:19:28.895464+00:00", + "at": "2026-08-11T19:05:13.647187+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-29T11:43:21.762729+00:00", + "at": "2026-08-10T17:39:18.840440+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T20:05:00.150174+00:00", + "at": "2026-08-06T17:19:28.895464+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T16:56:43.018456+00:00", + "at": "2026-07-29T11:43:21.762729+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-07-28T20:05:00.150174+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T14:49:26.526892+00:00", + "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T13:21:50.285858+00:00", + "at": "2026-07-26T22:08:02.789776+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T12:39:05.717502+00:00", + "at": "2026-07-26T14:49:26.526892+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-22T21:29:31.681891+00:00", + "at": "2026-07-26T13:21:50.285858+00:00", "kind": "full", "status": "pass" } @@ -4177,57 +4177,57 @@ }, "AppCoreTests.ModelTests › testReleasePolicyIgnoresSeededCountersWithoutProvenance": { "file": "", - "lastRunAt": "2026-08-10T17:39:18.840440+00:00", + "lastRunAt": "2026-08-11T19:08:08.447728+00:00", "lastRunKind": "full", "lastStatus": "pass", "recentStatuses": [ { - "at": "2026-08-10T17:39:18.840440+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-08-06T17:19:28.895464+00:00", + "at": "2026-08-11T19:05:13.647187+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-29T11:43:21.762729+00:00", + "at": "2026-08-10T17:39:18.840440+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T20:05:00.150174+00:00", + "at": "2026-08-06T17:19:28.895464+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T16:56:43.018456+00:00", + "at": "2026-07-29T11:43:21.762729+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-07-28T20:05:00.150174+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T14:49:26.526892+00:00", + "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T13:21:50.285858+00:00", + "at": "2026-07-26T22:08:02.789776+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T12:39:05.717502+00:00", + "at": "2026-07-26T14:49:26.526892+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-22T21:29:31.681891+00:00", + "at": "2026-07-26T13:21:50.285858+00:00", "kind": "full", "status": "pass" } @@ -4235,57 +4235,57 @@ }, "AppCoreTests.ModelTests › testReleasePolicyTrustsAppSettingsAfterProvenanceStamped": { "file": "", - "lastRunAt": "2026-08-10T17:39:18.840440+00:00", + "lastRunAt": "2026-08-11T19:08:08.447728+00:00", "lastRunKind": "full", "lastStatus": "pass", "recentStatuses": [ { - "at": "2026-08-10T17:39:18.840440+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-08-06T17:19:28.895464+00:00", + "at": "2026-08-11T19:05:13.647187+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-29T11:43:21.762729+00:00", + "at": "2026-08-10T17:39:18.840440+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T20:05:00.150174+00:00", + "at": "2026-08-06T17:19:28.895464+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T16:56:43.018456+00:00", + "at": "2026-07-29T11:43:21.762729+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-07-28T20:05:00.150174+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T14:49:26.526892+00:00", + "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T13:21:50.285858+00:00", + "at": "2026-07-26T22:08:02.789776+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T12:39:05.717502+00:00", + "at": "2026-07-26T14:49:26.526892+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-22T21:29:31.681891+00:00", + "at": "2026-07-26T13:21:50.285858+00:00", "kind": "full", "status": "pass" } @@ -4293,57 +4293,57 @@ }, "AppCoreTests.ModelTests › testReleasePolicyTrustsOwnPersistedDataAfterStamp": { "file": "", - "lastRunAt": "2026-08-10T17:39:18.840440+00:00", + "lastRunAt": "2026-08-11T19:08:08.447728+00:00", "lastRunKind": "full", "lastStatus": "pass", "recentStatuses": [ { - "at": "2026-08-10T17:39:18.840440+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-08-06T17:19:28.895464+00:00", + "at": "2026-08-11T19:05:13.647187+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-29T11:43:21.762729+00:00", + "at": "2026-08-10T17:39:18.840440+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T20:05:00.150174+00:00", + "at": "2026-08-06T17:19:28.895464+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T16:56:43.018456+00:00", + "at": "2026-07-29T11:43:21.762729+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-07-28T20:05:00.150174+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T14:49:26.526892+00:00", + "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T13:21:50.285858+00:00", + "at": "2026-07-26T22:08:02.789776+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T12:39:05.717502+00:00", + "at": "2026-07-26T14:49:26.526892+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-22T21:29:31.681891+00:00", + "at": "2026-07-26T13:21:50.285858+00:00", "kind": "full", "status": "pass" } @@ -4351,57 +4351,57 @@ }, "AppCoreTests.ModelTests › testResetAndUndoResetStaySilent": { "file": "ios/Tests/AppCoreTests/ModelTests.swift", - "lastRunAt": "2026-08-10T17:39:18.840440+00:00", + "lastRunAt": "2026-08-11T19:08:08.447728+00:00", "lastRunKind": "full", "lastStatus": "pass", "recentStatuses": [ { - "at": "2026-08-10T17:39:18.840440+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-08-06T17:19:28.895464+00:00", + "at": "2026-08-11T19:05:13.647187+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-29T11:43:21.762729+00:00", + "at": "2026-08-10T17:39:18.840440+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T20:05:00.150174+00:00", + "at": "2026-08-06T17:19:28.895464+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T16:56:43.018456+00:00", + "at": "2026-07-29T11:43:21.762729+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-07-28T20:05:00.150174+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T14:49:26.526892+00:00", + "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T13:21:50.285858+00:00", + "at": "2026-07-26T22:08:02.789776+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T12:39:05.717502+00:00", + "at": "2026-07-26T14:49:26.526892+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-22T21:29:31.681891+00:00", + "at": "2026-07-26T13:21:50.285858+00:00", "kind": "full", "status": "pass" } @@ -4409,57 +4409,57 @@ }, "AppCoreTests.ModelTests › testResetAtZeroEntersUndoModeAndUndoRestoresZero": { "file": "ios/Tests/AppCoreTests/ModelTests.swift", - "lastRunAt": "2026-08-10T17:39:18.840440+00:00", + "lastRunAt": "2026-08-11T19:08:08.447728+00:00", "lastRunKind": "full", "lastStatus": "pass", "recentStatuses": [ { - "at": "2026-08-10T17:39:18.840440+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-08-06T17:19:28.895464+00:00", + "at": "2026-08-11T19:05:13.647187+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-29T11:43:21.762729+00:00", + "at": "2026-08-10T17:39:18.840440+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T20:05:00.150174+00:00", + "at": "2026-08-06T17:19:28.895464+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T16:56:43.018456+00:00", + "at": "2026-07-29T11:43:21.762729+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-07-28T20:05:00.150174+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T14:49:26.526892+00:00", + "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T13:21:50.285858+00:00", + "at": "2026-07-26T22:08:02.789776+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T12:39:05.717502+00:00", + "at": "2026-07-26T14:49:26.526892+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-22T21:29:31.681891+00:00", + "at": "2026-07-26T13:21:50.285858+00:00", "kind": "full", "status": "pass" } @@ -4467,57 +4467,57 @@ }, "AppCoreTests.ModelTests › testResetEntersUndoModeAndCapturesPreviousValue": { "file": "ios/Tests/AppCoreTests/ModelTests.swift", - "lastRunAt": "2026-08-10T17:39:18.840440+00:00", + "lastRunAt": "2026-08-11T19:08:08.447728+00:00", "lastRunKind": "full", "lastStatus": "pass", "recentStatuses": [ { - "at": "2026-08-10T17:39:18.840440+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-08-06T17:19:28.895464+00:00", + "at": "2026-08-11T19:05:13.647187+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-29T11:43:21.762729+00:00", + "at": "2026-08-10T17:39:18.840440+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T20:05:00.150174+00:00", + "at": "2026-08-06T17:19:28.895464+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T16:56:43.018456+00:00", + "at": "2026-07-29T11:43:21.762729+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-07-28T20:05:00.150174+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T14:49:26.526892+00:00", + "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T13:21:50.285858+00:00", + "at": "2026-07-26T22:08:02.789776+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T12:39:05.717502+00:00", + "at": "2026-07-26T14:49:26.526892+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-22T21:29:31.681891+00:00", + "at": "2026-07-26T13:21:50.285858+00:00", "kind": "full", "status": "pass" } @@ -4525,57 +4525,57 @@ }, "AppCoreTests.ModelTests › testResetSealsCurrentAndOpensEmptyRun": { "file": "", - "lastRunAt": "2026-08-10T17:39:18.840440+00:00", + "lastRunAt": "2026-08-11T19:08:08.447728+00:00", "lastRunKind": "full", "lastStatus": "pass", "recentStatuses": [ { - "at": "2026-08-10T17:39:18.840440+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-08-06T17:19:28.895464+00:00", + "at": "2026-08-11T19:05:13.647187+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-29T11:43:21.762729+00:00", + "at": "2026-08-10T17:39:18.840440+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T20:05:00.150174+00:00", + "at": "2026-08-06T17:19:28.895464+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T16:56:43.018456+00:00", + "at": "2026-07-29T11:43:21.762729+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-07-28T20:05:00.150174+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T14:49:26.526892+00:00", + "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T13:21:50.285858+00:00", + "at": "2026-07-26T22:08:02.789776+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T12:39:05.717502+00:00", + "at": "2026-07-26T14:49:26.526892+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-22T21:29:31.681891+00:00", + "at": "2026-07-26T13:21:50.285858+00:00", "kind": "full", "status": "pass" } @@ -4583,57 +4583,57 @@ }, "AppCoreTests.ModelTests › testResetZeroesActiveCounter": { "file": "ios/Tests/AppCoreTests/ModelTests.swift", - "lastRunAt": "2026-08-10T17:39:18.840440+00:00", + "lastRunAt": "2026-08-11T19:08:08.447728+00:00", "lastRunKind": "full", "lastStatus": "pass", "recentStatuses": [ { - "at": "2026-08-10T17:39:18.840440+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-08-06T17:19:28.895464+00:00", + "at": "2026-08-11T19:05:13.647187+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-29T11:43:21.762729+00:00", + "at": "2026-08-10T17:39:18.840440+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T20:05:00.150174+00:00", + "at": "2026-08-06T17:19:28.895464+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T16:56:43.018456+00:00", + "at": "2026-07-29T11:43:21.762729+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-07-28T20:05:00.150174+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T14:49:26.526892+00:00", + "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T13:21:50.285858+00:00", + "at": "2026-07-26T22:08:02.789776+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T12:39:05.717502+00:00", + "at": "2026-07-26T14:49:26.526892+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-22T21:29:31.681891+00:00", + "at": "2026-07-26T13:21:50.285858+00:00", "kind": "full", "status": "pass" } @@ -4641,57 +4641,57 @@ }, "AppCoreTests.ModelTests › testSeededHistoriesJSONLoadsFromDefaults": { "file": "", - "lastRunAt": "2026-08-10T17:39:18.840440+00:00", + "lastRunAt": "2026-08-11T19:08:08.447728+00:00", "lastRunKind": "full", "lastStatus": "pass", "recentStatuses": [ { - "at": "2026-08-10T17:39:18.840440+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-08-06T17:19:28.895464+00:00", + "at": "2026-08-11T19:05:13.647187+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-29T11:43:21.762729+00:00", + "at": "2026-08-10T17:39:18.840440+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T20:05:00.150174+00:00", + "at": "2026-08-06T17:19:28.895464+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T16:56:43.018456+00:00", + "at": "2026-07-29T11:43:21.762729+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-07-28T20:05:00.150174+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T14:49:26.526892+00:00", + "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T13:21:50.285858+00:00", + "at": "2026-07-26T22:08:02.789776+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T12:39:05.717502+00:00", + "at": "2026-07-26T14:49:26.526892+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-22T21:29:31.681891+00:00", + "at": "2026-07-26T13:21:50.285858+00:00", "kind": "full", "status": "pass" } @@ -4699,57 +4699,57 @@ }, "AppCoreTests.ModelTests › testSeededResetUndoKeyCoercesStringValue": { "file": "ios/Tests/AppCoreTests/ModelTests.swift", - "lastRunAt": "2026-08-10T17:39:18.840440+00:00", + "lastRunAt": "2026-08-11T19:08:08.447728+00:00", "lastRunKind": "full", "lastStatus": "pass", "recentStatuses": [ { - "at": "2026-08-10T17:39:18.840440+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-08-06T17:19:28.895464+00:00", + "at": "2026-08-11T19:05:13.647187+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-29T11:43:21.762729+00:00", + "at": "2026-08-10T17:39:18.840440+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T20:05:00.150174+00:00", + "at": "2026-08-06T17:19:28.895464+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T16:56:43.018456+00:00", + "at": "2026-07-29T11:43:21.762729+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-07-28T20:05:00.150174+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T14:49:26.526892+00:00", + "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T13:21:50.285858+00:00", + "at": "2026-07-26T22:08:02.789776+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T12:39:05.717502+00:00", + "at": "2026-07-26T14:49:26.526892+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-22T21:29:31.681891+00:00", + "at": "2026-07-26T13:21:50.285858+00:00", "kind": "full", "status": "pass" } @@ -4757,57 +4757,57 @@ }, "AppCoreTests.ModelTests › testSeededResetUndoKeyEntersUndoModeOnLaunch": { "file": "ios/Tests/AppCoreTests/ModelTests.swift", - "lastRunAt": "2026-08-10T17:39:18.840440+00:00", + "lastRunAt": "2026-08-11T19:08:08.447728+00:00", "lastRunKind": "full", "lastStatus": "pass", "recentStatuses": [ { - "at": "2026-08-10T17:39:18.840440+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-08-06T17:19:28.895464+00:00", + "at": "2026-08-11T19:05:13.647187+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-29T11:43:21.762729+00:00", + "at": "2026-08-10T17:39:18.840440+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T20:05:00.150174+00:00", + "at": "2026-08-06T17:19:28.895464+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T16:56:43.018456+00:00", + "at": "2026-07-29T11:43:21.762729+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-07-28T20:05:00.150174+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T14:49:26.526892+00:00", + "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T13:21:50.285858+00:00", + "at": "2026-07-26T22:08:02.789776+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T12:39:05.717502+00:00", + "at": "2026-07-26T14:49:26.526892+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-22T21:29:31.681891+00:00", + "at": "2026-07-26T13:21:50.285858+00:00", "kind": "full", "status": "pass" } @@ -4815,57 +4815,57 @@ }, "AppCoreTests.ModelTests › testSeededResetUndoKeyIgnoredWhenActiveCountNonZero": { "file": "ios/Tests/AppCoreTests/ModelTests.swift", - "lastRunAt": "2026-08-10T17:39:18.840440+00:00", + "lastRunAt": "2026-08-11T19:08:08.447728+00:00", "lastRunKind": "full", "lastStatus": "pass", "recentStatuses": [ { - "at": "2026-08-10T17:39:18.840440+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-08-06T17:19:28.895464+00:00", + "at": "2026-08-11T19:05:13.647187+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-29T11:43:21.762729+00:00", + "at": "2026-08-10T17:39:18.840440+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T20:05:00.150174+00:00", + "at": "2026-08-06T17:19:28.895464+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T16:56:43.018456+00:00", + "at": "2026-07-29T11:43:21.762729+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-07-28T20:05:00.150174+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T14:49:26.526892+00:00", + "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T13:21:50.285858+00:00", + "at": "2026-07-26T22:08:02.789776+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T12:39:05.717502+00:00", + "at": "2026-07-26T14:49:26.526892+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-22T21:29:31.681891+00:00", + "at": "2026-07-26T13:21:50.285858+00:00", "kind": "full", "status": "pass" } @@ -4873,57 +4873,57 @@ }, "AppCoreTests.ModelTests › testSeededSubsetHasNoBlankSlots": { "file": "", - "lastRunAt": "2026-08-10T17:39:18.840440+00:00", + "lastRunAt": "2026-08-11T19:08:08.447728+00:00", "lastRunKind": "full", "lastStatus": "pass", "recentStatuses": [ { - "at": "2026-08-10T17:39:18.840440+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-08-06T17:19:28.895464+00:00", + "at": "2026-08-11T19:05:13.647187+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-29T11:43:21.762729+00:00", + "at": "2026-08-10T17:39:18.840440+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T20:05:00.150174+00:00", + "at": "2026-08-06T17:19:28.895464+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T16:56:43.018456+00:00", + "at": "2026-07-29T11:43:21.762729+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-07-28T20:05:00.150174+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T14:49:26.526892+00:00", + "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T13:21:50.285858+00:00", + "at": "2026-07-26T22:08:02.789776+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T12:39:05.717502+00:00", + "at": "2026-07-26T14:49:26.526892+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-22T21:29:31.681891+00:00", + "at": "2026-07-26T13:21:50.285858+00:00", "kind": "full", "status": "pass" } @@ -4931,57 +4931,57 @@ }, "AppCoreTests.ModelTests › testSelectNextAdvancesWithinList": { "file": "ios/Tests/AppCoreTests/ModelTests.swift", - "lastRunAt": "2026-08-10T17:39:18.840440+00:00", + "lastRunAt": "2026-08-11T19:08:08.447728+00:00", "lastRunKind": "full", "lastStatus": "pass", "recentStatuses": [ { - "at": "2026-08-10T17:39:18.840440+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-08-06T17:19:28.895464+00:00", + "at": "2026-08-11T19:05:13.647187+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-29T11:43:21.762729+00:00", + "at": "2026-08-10T17:39:18.840440+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T20:05:00.150174+00:00", + "at": "2026-08-06T17:19:28.895464+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T16:56:43.018456+00:00", + "at": "2026-07-29T11:43:21.762729+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-07-28T20:05:00.150174+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T14:49:26.526892+00:00", + "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T13:21:50.285858+00:00", + "at": "2026-07-26T22:08:02.789776+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T12:39:05.717502+00:00", + "at": "2026-07-26T14:49:26.526892+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-22T21:29:31.681891+00:00", + "at": "2026-07-26T13:21:50.285858+00:00", "kind": "full", "status": "pass" } @@ -4989,57 +4989,57 @@ }, "AppCoreTests.ModelTests › testSelectNextPastLastAppendsBlankAndSelectsIt": { "file": "ios/Tests/AppCoreTests/ModelTests.swift", - "lastRunAt": "2026-08-10T17:39:18.840440+00:00", + "lastRunAt": "2026-08-11T19:08:08.447728+00:00", "lastRunKind": "full", "lastStatus": "pass", "recentStatuses": [ { - "at": "2026-08-10T17:39:18.840440+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-08-06T17:19:28.895464+00:00", + "at": "2026-08-11T19:05:13.647187+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-29T11:43:21.762729+00:00", + "at": "2026-08-10T17:39:18.840440+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T20:05:00.150174+00:00", + "at": "2026-08-06T17:19:28.895464+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T16:56:43.018456+00:00", + "at": "2026-07-29T11:43:21.762729+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-07-28T20:05:00.150174+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T14:49:26.526892+00:00", + "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T13:21:50.285858+00:00", + "at": "2026-07-26T22:08:02.789776+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T12:39:05.717502+00:00", + "at": "2026-07-26T14:49:26.526892+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-22T21:29:31.681891+00:00", + "at": "2026-07-26T13:21:50.285858+00:00", "kind": "full", "status": "pass" } @@ -5047,57 +5047,57 @@ }, "AppCoreTests.ModelTests › testSelectPreviousMovesBackWithinList": { "file": "ios/Tests/AppCoreTests/ModelTests.swift", - "lastRunAt": "2026-08-10T17:39:18.840440+00:00", + "lastRunAt": "2026-08-11T19:08:08.447728+00:00", "lastRunKind": "full", "lastStatus": "pass", "recentStatuses": [ { - "at": "2026-08-10T17:39:18.840440+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-08-06T17:19:28.895464+00:00", + "at": "2026-08-11T19:05:13.647187+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-29T11:43:21.762729+00:00", + "at": "2026-08-10T17:39:18.840440+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T20:05:00.150174+00:00", + "at": "2026-08-06T17:19:28.895464+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T16:56:43.018456+00:00", + "at": "2026-07-29T11:43:21.762729+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-07-28T20:05:00.150174+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T14:49:26.526892+00:00", + "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T13:21:50.285858+00:00", + "at": "2026-07-26T22:08:02.789776+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T12:39:05.717502+00:00", + "at": "2026-07-26T14:49:26.526892+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-22T21:29:31.681891+00:00", + "at": "2026-07-26T13:21:50.285858+00:00", "kind": "full", "status": "pass" } @@ -5105,57 +5105,57 @@ }, "AppCoreTests.ModelTests › testSelectPreviousWrapsFromFirstToLast": { "file": "ios/Tests/AppCoreTests/ModelTests.swift", - "lastRunAt": "2026-08-10T17:39:18.840440+00:00", + "lastRunAt": "2026-08-11T19:08:08.447728+00:00", "lastRunKind": "full", "lastStatus": "pass", "recentStatuses": [ { - "at": "2026-08-10T17:39:18.840440+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-08-06T17:19:28.895464+00:00", + "at": "2026-08-11T19:05:13.647187+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-29T11:43:21.762729+00:00", + "at": "2026-08-10T17:39:18.840440+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T20:05:00.150174+00:00", + "at": "2026-08-06T17:19:28.895464+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T16:56:43.018456+00:00", + "at": "2026-07-29T11:43:21.762729+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-07-28T20:05:00.150174+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T14:49:26.526892+00:00", + "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T13:21:50.285858+00:00", + "at": "2026-07-26T22:08:02.789776+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T12:39:05.717502+00:00", + "at": "2026-07-26T14:49:26.526892+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-22T21:29:31.681891+00:00", + "at": "2026-07-26T13:21:50.285858+00:00", "kind": "full", "status": "pass" } @@ -5163,57 +5163,57 @@ }, "AppCoreTests.ModelTests › testSubtractClampsToZeroWhenStepOvershoots": { "file": "ios/Tests/AppCoreTests/ModelTests.swift", - "lastRunAt": "2026-08-10T17:39:18.840440+00:00", + "lastRunAt": "2026-08-11T19:08:08.447728+00:00", "lastRunKind": "full", "lastStatus": "pass", "recentStatuses": [ { - "at": "2026-08-10T17:39:18.840440+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-08-06T17:19:28.895464+00:00", + "at": "2026-08-11T19:05:13.647187+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-29T11:43:21.762729+00:00", + "at": "2026-08-10T17:39:18.840440+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T20:05:00.150174+00:00", + "at": "2026-08-06T17:19:28.895464+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T16:56:43.018456+00:00", + "at": "2026-07-29T11:43:21.762729+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-07-28T20:05:00.150174+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T14:49:26.526892+00:00", + "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T13:21:50.285858+00:00", + "at": "2026-07-26T22:08:02.789776+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T12:39:05.717502+00:00", + "at": "2026-07-26T14:49:26.526892+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-22T21:29:31.681891+00:00", + "at": "2026-07-26T13:21:50.285858+00:00", "kind": "full", "status": "pass" } @@ -5221,57 +5221,57 @@ }, "AppCoreTests.ModelTests › testSubtractClampsWhenNegativesDisallowed": { "file": "ios/Tests/AppCoreTests/ModelTests.swift", - "lastRunAt": "2026-08-10T17:39:18.840440+00:00", + "lastRunAt": "2026-08-11T19:08:08.447728+00:00", "lastRunKind": "full", "lastStatus": "pass", "recentStatuses": [ { - "at": "2026-08-10T17:39:18.840440+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-08-06T17:19:28.895464+00:00", + "at": "2026-08-11T19:05:13.647187+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-29T11:43:21.762729+00:00", + "at": "2026-08-10T17:39:18.840440+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T20:05:00.150174+00:00", + "at": "2026-08-06T17:19:28.895464+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T16:56:43.018456+00:00", + "at": "2026-07-29T11:43:21.762729+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-07-28T20:05:00.150174+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T14:49:26.526892+00:00", + "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T13:21:50.285858+00:00", + "at": "2026-07-26T22:08:02.789776+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T12:39:05.717502+00:00", + "at": "2026-07-26T14:49:26.526892+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-22T21:29:31.681891+00:00", + "at": "2026-07-26T13:21:50.285858+00:00", "kind": "full", "status": "pass" } @@ -5279,57 +5279,57 @@ }, "AppCoreTests.ModelTests › testSubtractClearsPendingUndo": { "file": "ios/Tests/AppCoreTests/ModelTests.swift", - "lastRunAt": "2026-08-10T17:39:18.840440+00:00", + "lastRunAt": "2026-08-11T19:08:08.447728+00:00", "lastRunKind": "full", "lastStatus": "pass", "recentStatuses": [ { - "at": "2026-08-10T17:39:18.840440+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-08-06T17:19:28.895464+00:00", + "at": "2026-08-11T19:05:13.647187+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-29T11:43:21.762729+00:00", + "at": "2026-08-10T17:39:18.840440+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T20:05:00.150174+00:00", + "at": "2026-08-06T17:19:28.895464+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T16:56:43.018456+00:00", + "at": "2026-07-29T11:43:21.762729+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-07-28T20:05:00.150174+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T14:49:26.526892+00:00", + "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T13:21:50.285858+00:00", + "at": "2026-07-26T22:08:02.789776+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T12:39:05.717502+00:00", + "at": "2026-07-26T14:49:26.526892+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-22T21:29:31.681891+00:00", + "at": "2026-07-26T13:21:50.285858+00:00", "kind": "full", "status": "pass" } @@ -5337,57 +5337,57 @@ }, "AppCoreTests.ModelTests › testSubtractFiresFeedbackWithDecrementHaptic": { "file": "ios/Tests/AppCoreTests/ModelTests.swift", - "lastRunAt": "2026-08-10T17:39:18.840440+00:00", + "lastRunAt": "2026-08-11T19:08:08.447728+00:00", "lastRunKind": "full", "lastStatus": "pass", "recentStatuses": [ { - "at": "2026-08-10T17:39:18.840440+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-08-06T17:19:28.895464+00:00", + "at": "2026-08-11T19:05:13.647187+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-29T11:43:21.762729+00:00", + "at": "2026-08-10T17:39:18.840440+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T20:05:00.150174+00:00", + "at": "2026-08-06T17:19:28.895464+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T16:56:43.018456+00:00", + "at": "2026-07-29T11:43:21.762729+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-07-28T20:05:00.150174+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T14:49:26.526892+00:00", + "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T13:21:50.285858+00:00", + "at": "2026-07-26T22:08:02.789776+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T12:39:05.717502+00:00", + "at": "2026-07-26T14:49:26.526892+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-22T21:29:31.681891+00:00", + "at": "2026-07-26T13:21:50.285858+00:00", "kind": "full", "status": "pass" } @@ -5395,57 +5395,57 @@ }, "AppCoreTests.ModelTests › testSubtractGoesNegativeByDefault": { "file": "ios/Tests/AppCoreTests/ModelTests.swift", - "lastRunAt": "2026-08-10T17:39:18.840440+00:00", + "lastRunAt": "2026-08-11T19:08:08.447728+00:00", "lastRunKind": "full", "lastStatus": "pass", "recentStatuses": [ { - "at": "2026-08-10T17:39:18.840440+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-08-06T17:19:28.895464+00:00", + "at": "2026-08-11T19:05:13.647187+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-29T11:43:21.762729+00:00", + "at": "2026-08-10T17:39:18.840440+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T20:05:00.150174+00:00", + "at": "2026-08-06T17:19:28.895464+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T16:56:43.018456+00:00", + "at": "2026-07-29T11:43:21.762729+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-07-28T20:05:00.150174+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T14:49:26.526892+00:00", + "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T13:21:50.285858+00:00", + "at": "2026-07-26T22:08:02.789776+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T12:39:05.717502+00:00", + "at": "2026-07-26T14:49:26.526892+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-22T21:29:31.681891+00:00", + "at": "2026-07-26T13:21:50.285858+00:00", "kind": "full", "status": "pass" } @@ -5453,57 +5453,57 @@ }, "AppCoreTests.ModelTests › testSubtractHonorsStep": { "file": "ios/Tests/AppCoreTests/ModelTests.swift", - "lastRunAt": "2026-08-10T17:39:18.840440+00:00", + "lastRunAt": "2026-08-11T19:08:08.447728+00:00", "lastRunKind": "full", "lastStatus": "pass", "recentStatuses": [ { - "at": "2026-08-10T17:39:18.840440+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-08-06T17:19:28.895464+00:00", + "at": "2026-08-11T19:05:13.647187+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-29T11:43:21.762729+00:00", + "at": "2026-08-10T17:39:18.840440+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T20:05:00.150174+00:00", + "at": "2026-08-06T17:19:28.895464+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T16:56:43.018456+00:00", + "at": "2026-07-29T11:43:21.762729+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-07-28T20:05:00.150174+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T14:49:26.526892+00:00", + "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T13:21:50.285858+00:00", + "at": "2026-07-26T22:08:02.789776+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T12:39:05.717502+00:00", + "at": "2026-07-26T14:49:26.526892+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-22T21:29:31.681891+00:00", + "at": "2026-07-26T13:21:50.285858+00:00", "kind": "full", "status": "pass" } @@ -5511,57 +5511,57 @@ }, "AppCoreTests.ModelTests › testSubtractNoOpClampDoesNotFireFeedback": { "file": "ios/Tests/AppCoreTests/ModelTests.swift", - "lastRunAt": "2026-08-10T17:39:18.840440+00:00", + "lastRunAt": "2026-08-11T19:08:08.447728+00:00", "lastRunKind": "full", "lastStatus": "pass", "recentStatuses": [ { - "at": "2026-08-10T17:39:18.840440+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-08-06T17:19:28.895464+00:00", + "at": "2026-08-11T19:05:13.647187+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-29T11:43:21.762729+00:00", + "at": "2026-08-10T17:39:18.840440+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T20:05:00.150174+00:00", + "at": "2026-08-06T17:19:28.895464+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T16:56:43.018456+00:00", + "at": "2026-07-29T11:43:21.762729+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-07-28T20:05:00.150174+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T14:49:26.526892+00:00", + "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T13:21:50.285858+00:00", + "at": "2026-07-26T22:08:02.789776+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T12:39:05.717502+00:00", + "at": "2026-07-26T14:49:26.526892+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-22T21:29:31.681891+00:00", + "at": "2026-07-26T13:21:50.285858+00:00", "kind": "full", "status": "pass" } @@ -5569,57 +5569,57 @@ }, "AppCoreTests.ModelTests › testSubtractRecordsNegativeAppliedDelta": { "file": "", - "lastRunAt": "2026-08-10T17:39:18.840440+00:00", + "lastRunAt": "2026-08-11T19:08:08.447728+00:00", "lastRunKind": "full", "lastStatus": "pass", "recentStatuses": [ { - "at": "2026-08-10T17:39:18.840440+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-08-06T17:19:28.895464+00:00", + "at": "2026-08-11T19:05:13.647187+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-29T11:43:21.762729+00:00", + "at": "2026-08-10T17:39:18.840440+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T20:05:00.150174+00:00", + "at": "2026-08-06T17:19:28.895464+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T16:56:43.018456+00:00", + "at": "2026-07-29T11:43:21.762729+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-07-28T20:05:00.150174+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T14:49:26.526892+00:00", + "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T13:21:50.285858+00:00", + "at": "2026-07-26T22:08:02.789776+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T12:39:05.717502+00:00", + "at": "2026-07-26T14:49:26.526892+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-22T21:29:31.681891+00:00", + "at": "2026-07-26T13:21:50.285858+00:00", "kind": "full", "status": "pass" } @@ -5627,57 +5627,57 @@ }, "AppCoreTests.ModelTests › testSwitchingCounterClearsPendingUndo": { "file": "ios/Tests/AppCoreTests/ModelTests.swift", - "lastRunAt": "2026-08-10T17:39:18.840440+00:00", + "lastRunAt": "2026-08-11T19:08:08.447728+00:00", "lastRunKind": "full", "lastStatus": "pass", "recentStatuses": [ { - "at": "2026-08-10T17:39:18.840440+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-08-06T17:19:28.895464+00:00", + "at": "2026-08-11T19:05:13.647187+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-29T11:43:21.762729+00:00", + "at": "2026-08-10T17:39:18.840440+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T20:05:00.150174+00:00", + "at": "2026-08-06T17:19:28.895464+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T16:56:43.018456+00:00", + "at": "2026-07-29T11:43:21.762729+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-07-28T20:05:00.150174+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T14:49:26.526892+00:00", + "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T13:21:50.285858+00:00", + "at": "2026-07-26T22:08:02.789776+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T12:39:05.717502+00:00", + "at": "2026-07-26T14:49:26.526892+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-22T21:29:31.681891+00:00", + "at": "2026-07-26T13:21:50.285858+00:00", "kind": "full", "status": "pass" } @@ -5685,57 +5685,57 @@ }, "AppCoreTests.ModelTests › testTrustInjectedPolicyAdoptsSeededCounters": { "file": "", - "lastRunAt": "2026-08-10T17:39:18.840440+00:00", + "lastRunAt": "2026-08-11T19:08:08.447728+00:00", "lastRunKind": "full", "lastStatus": "pass", "recentStatuses": [ { - "at": "2026-08-10T17:39:18.840440+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-08-06T17:19:28.895464+00:00", + "at": "2026-08-11T19:05:13.647187+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-29T11:43:21.762729+00:00", + "at": "2026-08-10T17:39:18.840440+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T20:05:00.150174+00:00", + "at": "2026-08-06T17:19:28.895464+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T16:56:43.018456+00:00", + "at": "2026-07-29T11:43:21.762729+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-07-28T20:05:00.150174+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T14:49:26.526892+00:00", + "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T13:21:50.285858+00:00", + "at": "2026-07-26T22:08:02.789776+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T12:39:05.717502+00:00", + "at": "2026-07-26T14:49:26.526892+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-22T21:29:31.681891+00:00", + "at": "2026-07-26T13:21:50.285858+00:00", "kind": "full", "status": "pass" } @@ -5743,57 +5743,57 @@ }, "AppCoreTests.ModelTests › testUndoResetReopensSealedRunAndRestoresCount": { "file": "", - "lastRunAt": "2026-08-10T17:39:18.840440+00:00", + "lastRunAt": "2026-08-11T19:08:08.447728+00:00", "lastRunKind": "full", "lastStatus": "pass", "recentStatuses": [ { - "at": "2026-08-10T17:39:18.840440+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-08-06T17:19:28.895464+00:00", + "at": "2026-08-11T19:05:13.647187+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-29T11:43:21.762729+00:00", + "at": "2026-08-10T17:39:18.840440+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T20:05:00.150174+00:00", + "at": "2026-08-06T17:19:28.895464+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T16:56:43.018456+00:00", + "at": "2026-07-29T11:43:21.762729+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-07-28T20:05:00.150174+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T14:49:26.526892+00:00", + "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T13:21:50.285858+00:00", + "at": "2026-07-26T22:08:02.789776+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T12:39:05.717502+00:00", + "at": "2026-07-26T14:49:26.526892+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-22T21:29:31.681891+00:00", + "at": "2026-07-26T13:21:50.285858+00:00", "kind": "full", "status": "pass" } @@ -5801,57 +5801,57 @@ }, "AppCoreTests.ModelTests › testUndoResetRestoresPreviousValueAndExitsUndoMode": { "file": "ios/Tests/AppCoreTests/ModelTests.swift", - "lastRunAt": "2026-08-10T17:39:18.840440+00:00", + "lastRunAt": "2026-08-11T19:08:08.447728+00:00", "lastRunKind": "full", "lastStatus": "pass", "recentStatuses": [ { - "at": "2026-08-10T17:39:18.840440+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-08-06T17:19:28.895464+00:00", + "at": "2026-08-11T19:05:13.647187+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-29T11:43:21.762729+00:00", + "at": "2026-08-10T17:39:18.840440+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T20:05:00.150174+00:00", + "at": "2026-08-06T17:19:28.895464+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T16:56:43.018456+00:00", + "at": "2026-07-29T11:43:21.762729+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-07-28T20:05:00.150174+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T14:49:26.526892+00:00", + "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T13:21:50.285858+00:00", + "at": "2026-07-26T22:08:02.789776+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T12:39:05.717502+00:00", + "at": "2026-07-26T14:49:26.526892+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-22T21:29:31.681891+00:00", + "at": "2026-07-26T13:21:50.285858+00:00", "kind": "full", "status": "pass" } @@ -5859,57 +5859,57 @@ }, "AppCoreTests.ModelTests › testUnrecognizedOverrideRawValueDecodesToNil": { "file": "ios/Tests/AppCoreTests/ModelTests.swift", - "lastRunAt": "2026-08-10T17:39:18.840440+00:00", + "lastRunAt": "2026-08-11T19:08:08.447728+00:00", "lastRunKind": "full", "lastStatus": "pass", "recentStatuses": [ { - "at": "2026-08-10T17:39:18.840440+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-08-06T17:19:28.895464+00:00", + "at": "2026-08-11T19:05:13.647187+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-29T11:43:21.762729+00:00", + "at": "2026-08-10T17:39:18.840440+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T20:05:00.150174+00:00", + "at": "2026-08-06T17:19:28.895464+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T16:56:43.018456+00:00", + "at": "2026-07-29T11:43:21.762729+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-07-28T20:05:00.150174+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T14:49:26.526892+00:00", + "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T13:21:50.285858+00:00", + "at": "2026-07-26T22:08:02.789776+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T12:39:05.717502+00:00", + "at": "2026-07-26T14:49:26.526892+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-22T21:29:31.681891+00:00", + "at": "2026-07-26T13:21:50.285858+00:00", "kind": "full", "status": "pass" } @@ -5917,57 +5917,57 @@ }, "AppCoreTests.ModelTests › testUpdateActiveCounterClampsStepToAtLeastOne": { "file": "ios/Tests/AppCoreTests/ModelTests.swift", - "lastRunAt": "2026-08-10T17:39:18.840440+00:00", + "lastRunAt": "2026-08-11T19:08:08.447728+00:00", "lastRunKind": "full", "lastStatus": "pass", "recentStatuses": [ { - "at": "2026-08-10T17:39:18.840440+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-08-06T17:19:28.895464+00:00", + "at": "2026-08-11T19:05:13.647187+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-29T11:43:21.762729+00:00", + "at": "2026-08-10T17:39:18.840440+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T20:05:00.150174+00:00", + "at": "2026-08-06T17:19:28.895464+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T16:56:43.018456+00:00", + "at": "2026-07-29T11:43:21.762729+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-07-28T20:05:00.150174+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T14:49:26.526892+00:00", + "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T13:21:50.285858+00:00", + "at": "2026-07-26T22:08:02.789776+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T12:39:05.717502+00:00", + "at": "2026-07-26T14:49:26.526892+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-22T21:29:31.681891+00:00", + "at": "2026-07-26T13:21:50.285858+00:00", "kind": "full", "status": "pass" } @@ -5975,57 +5975,57 @@ }, "AppCoreTests.ModelTests › testUpdateActiveCounterClearsOverridesWhenNil": { "file": "ios/Tests/AppCoreTests/ModelTests.swift", - "lastRunAt": "2026-08-10T17:39:18.840440+00:00", + "lastRunAt": "2026-08-11T19:08:08.447728+00:00", "lastRunKind": "full", "lastStatus": "pass", "recentStatuses": [ { - "at": "2026-08-10T17:39:18.840440+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-08-06T17:19:28.895464+00:00", + "at": "2026-08-11T19:05:13.647187+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-29T11:43:21.762729+00:00", + "at": "2026-08-10T17:39:18.840440+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T20:05:00.150174+00:00", + "at": "2026-08-06T17:19:28.895464+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T16:56:43.018456+00:00", + "at": "2026-07-29T11:43:21.762729+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-07-28T20:05:00.150174+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T14:49:26.526892+00:00", + "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T13:21:50.285858+00:00", + "at": "2026-07-26T22:08:02.789776+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T12:39:05.717502+00:00", + "at": "2026-07-26T14:49:26.526892+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-22T21:29:31.681891+00:00", + "at": "2026-07-26T13:21:50.285858+00:00", "kind": "full", "status": "pass" } @@ -6033,57 +6033,57 @@ }, "AppCoreTests.ModelTests › testUpdateActiveCounterEditsAndPersists": { "file": "ios/Tests/AppCoreTests/ModelTests.swift", - "lastRunAt": "2026-08-10T17:39:18.840440+00:00", + "lastRunAt": "2026-08-11T19:08:08.447728+00:00", "lastRunKind": "full", "lastStatus": "pass", "recentStatuses": [ { - "at": "2026-08-10T17:39:18.840440+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-08-06T17:19:28.895464+00:00", + "at": "2026-08-11T19:05:13.647187+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-29T11:43:21.762729+00:00", + "at": "2026-08-10T17:39:18.840440+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T20:05:00.150174+00:00", + "at": "2026-08-06T17:19:28.895464+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T16:56:43.018456+00:00", + "at": "2026-07-29T11:43:21.762729+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-07-28T20:05:00.150174+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T14:49:26.526892+00:00", + "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T13:21:50.285858+00:00", + "at": "2026-07-26T22:08:02.789776+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T12:39:05.717502+00:00", + "at": "2026-07-26T14:49:26.526892+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-22T21:29:31.681891+00:00", + "at": "2026-07-26T13:21:50.285858+00:00", "kind": "full", "status": "pass" } @@ -6091,57 +6091,57 @@ }, "AppCoreTests.ModelTests › testUpdateActiveCounterRoundTripsOverrides": { "file": "ios/Tests/AppCoreTests/ModelTests.swift", - "lastRunAt": "2026-08-10T17:39:18.840440+00:00", + "lastRunAt": "2026-08-11T19:08:08.447728+00:00", "lastRunKind": "full", "lastStatus": "pass", "recentStatuses": [ { - "at": "2026-08-10T17:39:18.840440+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-08-06T17:19:28.895464+00:00", + "at": "2026-08-11T19:05:13.647187+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-29T11:43:21.762729+00:00", + "at": "2026-08-10T17:39:18.840440+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T20:05:00.150174+00:00", + "at": "2026-08-06T17:19:28.895464+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T16:56:43.018456+00:00", + "at": "2026-07-29T11:43:21.762729+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-07-28T20:05:00.150174+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T14:49:26.526892+00:00", + "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T13:21:50.285858+00:00", + "at": "2026-07-26T22:08:02.789776+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T12:39:05.717502+00:00", + "at": "2026-07-26T14:49:26.526892+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-22T21:29:31.681891+00:00", + "at": "2026-07-26T13:21:50.285858+00:00", "kind": "full", "status": "pass" } @@ -6149,57 +6149,57 @@ }, "AppCoreTests.SettingsOverlaysTests › testNoToggleEverLeavesBothOpen": { "file": "", - "lastRunAt": "2026-08-10T17:39:18.840440+00:00", + "lastRunAt": "2026-08-11T19:08:08.447728+00:00", "lastRunKind": "full", "lastStatus": "pass", "recentStatuses": [ { - "at": "2026-08-10T17:39:18.840440+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-08-06T17:19:28.895464+00:00", + "at": "2026-08-11T19:05:13.647187+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-29T11:43:21.762729+00:00", + "at": "2026-08-10T17:39:18.840440+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T20:05:00.150174+00:00", + "at": "2026-08-06T17:19:28.895464+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T16:56:43.018456+00:00", + "at": "2026-07-29T11:43:21.762729+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-07-28T20:05:00.150174+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T14:49:26.526892+00:00", + "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T13:21:50.285858+00:00", + "at": "2026-07-26T22:08:02.789776+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T12:39:05.717502+00:00", + "at": "2026-07-26T14:49:26.526892+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-22T21:29:31.681891+00:00", + "at": "2026-07-26T13:21:50.285858+00:00", "kind": "full", "status": "pass" } @@ -6207,57 +6207,57 @@ }, "AppCoreTests.SettingsOverlaysTests › testNothingIsOpenByDefault": { "file": "", - "lastRunAt": "2026-08-10T17:39:18.840440+00:00", + "lastRunAt": "2026-08-11T19:08:08.447728+00:00", "lastRunKind": "full", "lastStatus": "pass", "recentStatuses": [ { - "at": "2026-08-10T17:39:18.840440+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-08-06T17:19:28.895464+00:00", + "at": "2026-08-11T19:05:13.647187+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-29T11:43:21.762729+00:00", + "at": "2026-08-10T17:39:18.840440+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T20:05:00.150174+00:00", + "at": "2026-08-06T17:19:28.895464+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T16:56:43.018456+00:00", + "at": "2026-07-29T11:43:21.762729+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-07-28T20:05:00.150174+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T14:49:26.526892+00:00", + "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T13:21:50.285858+00:00", + "at": "2026-07-26T22:08:02.789776+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T12:39:05.717502+00:00", + "at": "2026-07-26T14:49:26.526892+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-22T21:29:31.681891+00:00", + "at": "2026-07-26T13:21:50.285858+00:00", "kind": "full", "status": "pass" } @@ -6265,57 +6265,57 @@ }, "AppCoreTests.SettingsOverlaysTests › testOpeningAppSettingsClosesTheCounterPanel": { "file": "", - "lastRunAt": "2026-08-10T17:39:18.840440+00:00", + "lastRunAt": "2026-08-11T19:08:08.447728+00:00", "lastRunKind": "full", "lastStatus": "pass", "recentStatuses": [ { - "at": "2026-08-10T17:39:18.840440+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-08-06T17:19:28.895464+00:00", + "at": "2026-08-11T19:05:13.647187+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-29T11:43:21.762729+00:00", + "at": "2026-08-10T17:39:18.840440+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T20:05:00.150174+00:00", + "at": "2026-08-06T17:19:28.895464+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T16:56:43.018456+00:00", + "at": "2026-07-29T11:43:21.762729+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-07-28T20:05:00.150174+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T14:49:26.526892+00:00", + "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T13:21:50.285858+00:00", + "at": "2026-07-26T22:08:02.789776+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T12:39:05.717502+00:00", + "at": "2026-07-26T14:49:26.526892+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-22T21:29:31.681891+00:00", + "at": "2026-07-26T13:21:50.285858+00:00", "kind": "full", "status": "pass" } @@ -6323,57 +6323,57 @@ }, "AppCoreTests.SettingsOverlaysTests › testOpeningAppSettingsFromClosedOpensIt": { "file": "", - "lastRunAt": "2026-08-10T17:39:18.840440+00:00", + "lastRunAt": "2026-08-11T19:08:08.447728+00:00", "lastRunKind": "full", "lastStatus": "pass", "recentStatuses": [ { - "at": "2026-08-10T17:39:18.840440+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-08-06T17:19:28.895464+00:00", + "at": "2026-08-11T19:05:13.647187+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-29T11:43:21.762729+00:00", + "at": "2026-08-10T17:39:18.840440+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T20:05:00.150174+00:00", + "at": "2026-08-06T17:19:28.895464+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T16:56:43.018456+00:00", + "at": "2026-07-29T11:43:21.762729+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-07-28T20:05:00.150174+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T14:49:26.526892+00:00", + "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T13:21:50.285858+00:00", + "at": "2026-07-26T22:08:02.789776+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T12:39:05.717502+00:00", + "at": "2026-07-26T14:49:26.526892+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-22T21:29:31.681891+00:00", + "at": "2026-07-26T13:21:50.285858+00:00", "kind": "full", "status": "pass" } @@ -6381,57 +6381,57 @@ }, "AppCoreTests.SettingsOverlaysTests › testOpeningCounterSettingsClosesAppSettings": { "file": "", - "lastRunAt": "2026-08-10T17:39:18.840440+00:00", + "lastRunAt": "2026-08-11T19:08:08.447728+00:00", "lastRunKind": "full", "lastStatus": "pass", "recentStatuses": [ { - "at": "2026-08-10T17:39:18.840440+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-08-06T17:19:28.895464+00:00", + "at": "2026-08-11T19:05:13.647187+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-29T11:43:21.762729+00:00", + "at": "2026-08-10T17:39:18.840440+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T20:05:00.150174+00:00", + "at": "2026-08-06T17:19:28.895464+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T16:56:43.018456+00:00", + "at": "2026-07-29T11:43:21.762729+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-07-28T20:05:00.150174+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T14:49:26.526892+00:00", + "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T13:21:50.285858+00:00", + "at": "2026-07-26T22:08:02.789776+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T12:39:05.717502+00:00", + "at": "2026-07-26T14:49:26.526892+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-22T21:29:31.681891+00:00", + "at": "2026-07-26T13:21:50.285858+00:00", "kind": "full", "status": "pass" } @@ -6439,57 +6439,57 @@ }, "AppCoreTests.SettingsOverlaysTests › testOpeningCounterSettingsFromClosedOpensIt": { "file": "", - "lastRunAt": "2026-08-10T17:39:18.840440+00:00", + "lastRunAt": "2026-08-11T19:08:08.447728+00:00", "lastRunKind": "full", "lastStatus": "pass", "recentStatuses": [ { - "at": "2026-08-10T17:39:18.840440+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-08-06T17:19:28.895464+00:00", + "at": "2026-08-11T19:05:13.647187+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-29T11:43:21.762729+00:00", + "at": "2026-08-10T17:39:18.840440+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T20:05:00.150174+00:00", + "at": "2026-08-06T17:19:28.895464+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T16:56:43.018456+00:00", + "at": "2026-07-29T11:43:21.762729+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-07-28T20:05:00.150174+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T14:49:26.526892+00:00", + "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T13:21:50.285858+00:00", + "at": "2026-07-26T22:08:02.789776+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T12:39:05.717502+00:00", + "at": "2026-07-26T14:49:26.526892+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-22T21:29:31.681891+00:00", + "at": "2026-07-26T13:21:50.285858+00:00", "kind": "full", "status": "pass" } @@ -6497,57 +6497,57 @@ }, "AppCoreTests.SettingsOverlaysTests › testTogglingOpenAppSettingsClosesItAndOpensNothing": { "file": "", - "lastRunAt": "2026-08-10T17:39:18.840440+00:00", + "lastRunAt": "2026-08-11T19:08:08.447728+00:00", "lastRunKind": "full", "lastStatus": "pass", "recentStatuses": [ { - "at": "2026-08-10T17:39:18.840440+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-08-06T17:19:28.895464+00:00", + "at": "2026-08-11T19:05:13.647187+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-29T11:43:21.762729+00:00", + "at": "2026-08-10T17:39:18.840440+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T20:05:00.150174+00:00", + "at": "2026-08-06T17:19:28.895464+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T16:56:43.018456+00:00", + "at": "2026-07-29T11:43:21.762729+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-07-28T20:05:00.150174+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T14:49:26.526892+00:00", + "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T13:21:50.285858+00:00", + "at": "2026-07-26T22:08:02.789776+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T12:39:05.717502+00:00", + "at": "2026-07-26T14:49:26.526892+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-22T21:29:31.681891+00:00", + "at": "2026-07-26T13:21:50.285858+00:00", "kind": "full", "status": "pass" } @@ -6555,57 +6555,57 @@ }, "AppCoreTests.SettingsOverlaysTests › testTogglingOpenCounterSettingsClosesItAndOpensNothing": { "file": "", - "lastRunAt": "2026-08-10T17:39:18.840440+00:00", + "lastRunAt": "2026-08-11T19:08:08.447728+00:00", "lastRunKind": "full", "lastStatus": "pass", "recentStatuses": [ { - "at": "2026-08-10T17:39:18.840440+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-08-06T17:19:28.895464+00:00", + "at": "2026-08-11T19:05:13.647187+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-29T11:43:21.762729+00:00", + "at": "2026-08-10T17:39:18.840440+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T20:05:00.150174+00:00", + "at": "2026-08-06T17:19:28.895464+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T16:56:43.018456+00:00", + "at": "2026-07-29T11:43:21.762729+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-07-28T20:05:00.150174+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T14:49:26.526892+00:00", + "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T13:21:50.285858+00:00", + "at": "2026-07-26T22:08:02.789776+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T12:39:05.717502+00:00", + "at": "2026-07-26T14:49:26.526892+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-22T21:29:31.681891+00:00", + "at": "2026-07-26T13:21:50.285858+00:00", "kind": "full", "status": "pass" } @@ -6613,57 +6613,57 @@ }, "AppCoreTests.ThemeTests › testDotHexFallsBackToLimeForUnknownKey": { "file": "ios/Tests/AppCoreTests/ThemeTests.swift", - "lastRunAt": "2026-08-10T17:39:18.840440+00:00", + "lastRunAt": "2026-08-11T19:08:08.447728+00:00", "lastRunKind": "full", "lastStatus": "pass", "recentStatuses": [ { - "at": "2026-08-10T17:39:18.840440+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-08-06T17:19:28.895464+00:00", + "at": "2026-08-11T19:05:13.647187+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-29T11:43:21.762729+00:00", + "at": "2026-08-10T17:39:18.840440+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T20:05:00.150174+00:00", + "at": "2026-08-06T17:19:28.895464+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T16:56:43.018456+00:00", + "at": "2026-07-29T11:43:21.762729+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-07-28T20:05:00.150174+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T14:49:26.526892+00:00", + "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T13:21:50.285858+00:00", + "at": "2026-07-26T22:08:02.789776+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T12:39:05.717502+00:00", + "at": "2026-07-26T14:49:26.526892+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-22T21:29:31.681891+00:00", + "at": "2026-07-26T13:21:50.285858+00:00", "kind": "full", "status": "pass" } @@ -6671,57 +6671,57 @@ }, "AppCoreTests.ThemeTests › testDotHexMapsKnownKeys": { "file": "ios/Tests/AppCoreTests/ThemeTests.swift", - "lastRunAt": "2026-08-10T17:39:18.840440+00:00", + "lastRunAt": "2026-08-11T19:08:08.447728+00:00", "lastRunKind": "full", "lastStatus": "pass", "recentStatuses": [ { - "at": "2026-08-10T17:39:18.840440+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-08-06T17:19:28.895464+00:00", + "at": "2026-08-11T19:05:13.647187+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-29T11:43:21.762729+00:00", + "at": "2026-08-10T17:39:18.840440+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T20:05:00.150174+00:00", + "at": "2026-08-06T17:19:28.895464+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T16:56:43.018456+00:00", + "at": "2026-07-29T11:43:21.762729+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-07-28T20:05:00.150174+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T14:49:26.526892+00:00", + "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T13:21:50.285858+00:00", + "at": "2026-07-26T22:08:02.789776+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T12:39:05.717502+00:00", + "at": "2026-07-26T14:49:26.526892+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-22T21:29:31.681891+00:00", + "at": "2026-07-26T13:21:50.285858+00:00", "kind": "full", "status": "pass" } @@ -6729,57 +6729,57 @@ }, "AppCoreTests.ThemeTests › testIsCaseInsensitive": { "file": "ios/Tests/AppCoreTests/ThemeTests.swift", - "lastRunAt": "2026-08-10T17:39:18.840440+00:00", + "lastRunAt": "2026-08-11T19:08:08.447728+00:00", "lastRunKind": "full", "lastStatus": "pass", "recentStatuses": [ { - "at": "2026-08-10T17:39:18.840440+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-08-06T17:19:28.895464+00:00", + "at": "2026-08-11T19:05:13.647187+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-29T11:43:21.762729+00:00", + "at": "2026-08-10T17:39:18.840440+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T20:05:00.150174+00:00", + "at": "2026-08-06T17:19:28.895464+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T16:56:43.018456+00:00", + "at": "2026-07-29T11:43:21.762729+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-07-28T20:05:00.150174+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T14:49:26.526892+00:00", + "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T13:21:50.285858+00:00", + "at": "2026-07-26T22:08:02.789776+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T12:39:05.717502+00:00", + "at": "2026-07-26T14:49:26.526892+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-22T21:29:31.681891+00:00", + "at": "2026-07-26T13:21:50.285858+00:00", "kind": "full", "status": "pass" } @@ -6787,57 +6787,57 @@ }, "AppCoreTests.ThemeTests › testIsolatesIndividualChannels": { "file": "ios/Tests/AppCoreTests/ThemeTests.swift", - "lastRunAt": "2026-08-10T17:39:18.840440+00:00", + "lastRunAt": "2026-08-11T19:08:08.447728+00:00", "lastRunKind": "full", "lastStatus": "pass", "recentStatuses": [ { - "at": "2026-08-10T17:39:18.840440+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-08-06T17:19:28.895464+00:00", + "at": "2026-08-11T19:05:13.647187+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-29T11:43:21.762729+00:00", + "at": "2026-08-10T17:39:18.840440+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T20:05:00.150174+00:00", + "at": "2026-08-06T17:19:28.895464+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T16:56:43.018456+00:00", + "at": "2026-07-29T11:43:21.762729+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-07-28T20:05:00.150174+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T14:49:26.526892+00:00", + "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T13:21:50.285858+00:00", + "at": "2026-07-26T22:08:02.789776+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T12:39:05.717502+00:00", + "at": "2026-07-26T14:49:26.526892+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-22T21:29:31.681891+00:00", + "at": "2026-07-26T13:21:50.285858+00:00", "kind": "full", "status": "pass" } @@ -6845,57 +6845,57 @@ }, "AppCoreTests.ThemeTests › testParsesAccentLime": { "file": "ios/Tests/AppCoreTests/ThemeTests.swift", - "lastRunAt": "2026-08-10T17:39:18.840440+00:00", + "lastRunAt": "2026-08-11T19:08:08.447728+00:00", "lastRunKind": "full", "lastStatus": "pass", "recentStatuses": [ { - "at": "2026-08-10T17:39:18.840440+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-08-06T17:19:28.895464+00:00", + "at": "2026-08-11T19:05:13.647187+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-29T11:43:21.762729+00:00", + "at": "2026-08-10T17:39:18.840440+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T20:05:00.150174+00:00", + "at": "2026-08-06T17:19:28.895464+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T16:56:43.018456+00:00", + "at": "2026-07-29T11:43:21.762729+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-07-28T20:05:00.150174+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T14:49:26.526892+00:00", + "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T13:21:50.285858+00:00", + "at": "2026-07-26T22:08:02.789776+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T12:39:05.717502+00:00", + "at": "2026-07-26T14:49:26.526892+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-22T21:29:31.681891+00:00", + "at": "2026-07-26T13:21:50.285858+00:00", "kind": "full", "status": "pass" } @@ -6903,57 +6903,57 @@ }, "AppCoreTests.ThemeTests › testParsesBlackAndWhite": { "file": "ios/Tests/AppCoreTests/ThemeTests.swift", - "lastRunAt": "2026-08-10T17:39:18.840440+00:00", + "lastRunAt": "2026-08-11T19:08:08.447728+00:00", "lastRunKind": "full", "lastStatus": "pass", "recentStatuses": [ { - "at": "2026-08-10T17:39:18.840440+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-08-06T17:19:28.895464+00:00", + "at": "2026-08-11T19:05:13.647187+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-29T11:43:21.762729+00:00", + "at": "2026-08-10T17:39:18.840440+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T20:05:00.150174+00:00", + "at": "2026-08-06T17:19:28.895464+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T16:56:43.018456+00:00", + "at": "2026-07-29T11:43:21.762729+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-07-28T20:05:00.150174+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T14:49:26.526892+00:00", + "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T13:21:50.285858+00:00", + "at": "2026-07-26T22:08:02.789776+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T12:39:05.717502+00:00", + "at": "2026-07-26T14:49:26.526892+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-22T21:29:31.681891+00:00", + "at": "2026-07-26T13:21:50.285858+00:00", "kind": "full", "status": "pass" } @@ -6961,57 +6961,57 @@ }, "AppCoreTests.ThemeTests › testToleratesLeadingHash": { "file": "ios/Tests/AppCoreTests/ThemeTests.swift", - "lastRunAt": "2026-08-10T17:39:18.840440+00:00", + "lastRunAt": "2026-08-11T19:08:08.447728+00:00", "lastRunKind": "full", "lastStatus": "pass", "recentStatuses": [ { - "at": "2026-08-10T17:39:18.840440+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-08-06T17:19:28.895464+00:00", + "at": "2026-08-11T19:05:13.647187+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-29T11:43:21.762729+00:00", + "at": "2026-08-10T17:39:18.840440+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T20:05:00.150174+00:00", + "at": "2026-08-06T17:19:28.895464+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T16:56:43.018456+00:00", + "at": "2026-07-29T11:43:21.762729+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-07-28T20:05:00.150174+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T14:49:26.526892+00:00", + "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T13:21:50.285858+00:00", + "at": "2026-07-26T22:08:02.789776+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T12:39:05.717502+00:00", + "at": "2026-07-26T14:49:26.526892+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-22T21:29:31.681891+00:00", + "at": "2026-07-26T13:21:50.285858+00:00", "kind": "full", "status": "pass" } @@ -7019,10 +7019,25 @@ }, "com.codeyam.android.model.AppSettingsTest › testDefaultHapticsAreDistinct": { "file": "android/app/src/test/java/com/codeyam/android/model/AppSettingsTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", "lastRunKind": "changed", "lastStatus": "pass", "recentStatuses": [ + { + "at": "2026-08-11T19:50:40.967566+00:00", + "kind": "changed", + "status": "pass" + }, + { + "at": "2026-08-11T19:08:08.447728+00:00", + "kind": "full", + "status": "pass" + }, + { + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", + "status": "pass" + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -7057,30 +7072,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, + } + ] + }, + "com.codeyam.android.model.AppSettingsTest › testDefaultsAreRightHandedSilentWithDistinctHaptics": { + "file": "android/app/src/test/java/com/codeyam/android/model/AppSettingsTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ { - "at": "2026-07-26T22:23:45.745116+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", "status": "pass" - } - ] - }, - "com.codeyam.android.model.AppSettingsTest › testDefaultsAreRightHandedSilentWithDistinctHaptics": { - "file": "android/app/src/test/java/com/codeyam/android/model/AppSettingsTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", - "lastRunKind": "changed", - "lastStatus": "pass", - "recentStatuses": [ + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -7115,30 +7130,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, + } + ] + }, + "com.codeyam.android.model.AppSettingsTest › testLegacyHapticKeyMigratesToBothDirections": { + "file": "android/app/src/test/java/com/codeyam/android/model/AppSettingsTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ { - "at": "2026-07-26T22:23:45.745116+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", "status": "pass" - } - ] - }, - "com.codeyam.android.model.AppSettingsTest › testLegacyHapticKeyMigratesToBothDirections": { - "file": "android/app/src/test/java/com/codeyam/android/model/AppSettingsTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", - "lastRunKind": "changed", - "lastStatus": "pass", - "recentStatuses": [ + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -7173,30 +7188,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, + } + ] + }, + "com.codeyam.android.model.AppSettingsTest › testLegacyHapticOffMigratesToBothOff": { + "file": "android/app/src/test/java/com/codeyam/android/model/AppSettingsTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ { - "at": "2026-07-26T22:23:45.745116+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", "status": "pass" - } - ] - }, - "com.codeyam.android.model.AppSettingsTest › testLegacyHapticOffMigratesToBothOff": { - "file": "android/app/src/test/java/com/codeyam/android/model/AppSettingsTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", - "lastRunKind": "changed", - "lastStatus": "pass", - "recentStatuses": [ + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -7231,30 +7246,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, + } + ] + }, + "com.codeyam.android.model.AppSettingsTest › testNewHapticKeyWinsOverLegacy": { + "file": "android/app/src/test/java/com/codeyam/android/model/AppSettingsTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ { - "at": "2026-07-26T22:23:45.745116+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", "status": "pass" - } - ] - }, - "com.codeyam.android.model.AppSettingsTest › testNewHapticKeyWinsOverLegacy": { - "file": "android/app/src/test/java/com/codeyam/android/model/AppSettingsTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", - "lastRunKind": "changed", - "lastStatus": "pass", - "recentStatuses": [ + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -7289,30 +7304,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, + } + ] + }, + "com.codeyam.android.model.AppSettingsTest › testOptionCasesCoverTheChoiceSets": { + "file": "android/app/src/test/java/com/codeyam/android/model/AppSettingsTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ { - "at": "2026-07-26T22:23:45.745116+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", "status": "pass" - } - ] - }, - "com.codeyam.android.model.AppSettingsTest › testOptionCasesCoverTheChoiceSets": { - "file": "android/app/src/test/java/com/codeyam/android/model/AppSettingsTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", - "lastRunKind": "changed", - "lastStatus": "pass", - "recentStatuses": [ + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -7347,30 +7362,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, + } + ] + }, + "com.codeyam.android.model.AppSettingsTest › testOptionsAreIndependent": { + "file": "android/app/src/test/java/com/codeyam/android/model/AppSettingsTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ { - "at": "2026-07-26T22:23:45.745116+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", "status": "pass" - } - ] - }, - "com.codeyam.android.model.AppSettingsTest › testOptionsAreIndependent": { - "file": "android/app/src/test/java/com/codeyam/android/model/AppSettingsTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", - "lastRunKind": "changed", - "lastStatus": "pass", - "recentStatuses": [ + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -7405,30 +7420,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, + } + ] + }, + "com.codeyam.android.model.AppSettingsTest › testPersistsChangesAcrossReload": { + "file": "android/app/src/test/java/com/codeyam/android/model/AppSettingsTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ { - "at": "2026-07-26T22:23:45.745116+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", "status": "pass" - } - ] - }, - "com.codeyam.android.model.AppSettingsTest › testPersistsChangesAcrossReload": { - "file": "android/app/src/test/java/com/codeyam/android/model/AppSettingsTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", - "lastRunKind": "changed", - "lastStatus": "pass", - "recentStatuses": [ + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -7463,30 +7478,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, + } + ] + }, + "com.codeyam.android.model.AppSettingsTest › testReadsSeededStringPreferences": { + "file": "android/app/src/test/java/com/codeyam/android/model/AppSettingsTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ { - "at": "2026-07-26T22:23:45.745116+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", "status": "pass" - } - ] - }, - "com.codeyam.android.model.AppSettingsTest › testReadsSeededStringPreferences": { - "file": "android/app/src/test/java/com/codeyam/android/model/AppSettingsTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", - "lastRunKind": "changed", - "lastStatus": "pass", - "recentStatuses": [ + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -7521,30 +7536,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, + } + ] + }, + "com.codeyam.android.model.AppSettingsTest › testReleasePolicyIgnoresSeededHapticsWithoutProvenance": { + "file": "android/app/src/test/java/com/codeyam/android/model/AppSettingsTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ { - "at": "2026-07-26T22:23:45.745116+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", "status": "pass" - } - ] - }, - "com.codeyam.android.model.AppSettingsTest › testReleasePolicyIgnoresSeededHapticsWithoutProvenance": { - "file": "android/app/src/test/java/com/codeyam/android/model/AppSettingsTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", - "lastRunKind": "changed", - "lastStatus": "pass", - "recentStatuses": [ + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -7579,30 +7594,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, + } + ] + }, + "com.codeyam.android.model.AppSettingsTest › testResolveMigratesRemovedRawValues": { + "file": "android/app/src/test/java/com/codeyam/android/model/AppSettingsTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ { - "at": "2026-07-26T22:23:45.745116+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", "status": "pass" - } - ] - }, - "com.codeyam.android.model.AppSettingsTest › testResolveMigratesRemovedRawValues": { - "file": "android/app/src/test/java/com/codeyam/android/model/AppSettingsTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", - "lastRunKind": "changed", - "lastStatus": "pass", - "recentStatuses": [ + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -7637,30 +7652,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, + } + ] + }, + "com.codeyam.android.model.AppSettingsTest › testUnknownOptionFallsBackToDefault": { + "file": "android/app/src/test/java/com/codeyam/android/model/AppSettingsTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ { - "at": "2026-07-26T22:23:45.745116+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", "status": "pass" - } - ] - }, - "com.codeyam.android.model.AppSettingsTest › testUnknownOptionFallsBackToDefault": { - "file": "android/app/src/test/java/com/codeyam/android/model/AppSettingsTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", - "lastRunKind": "changed", - "lastStatus": "pass", - "recentStatuses": [ + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -7695,30 +7710,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, + } + ] + }, + "com.codeyam.android.model.CounterModelTest › testAddCounterAllowsConsecutiveBlankSlots": { + "file": "android/app/src/test/java/com/codeyam/android/model/CounterModelTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ { - "at": "2026-07-26T22:23:45.745116+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", "status": "pass" - } - ] - }, - "com.codeyam.android.model.CounterModelTest › testAddCounterAllowsConsecutiveBlankSlots": { - "file": "android/app/src/test/java/com/codeyam/android/model/CounterModelTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", - "lastRunKind": "changed", - "lastStatus": "pass", - "recentStatuses": [ + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -7753,30 +7768,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, + } + ] + }, + "com.codeyam.android.model.CounterModelTest › testAddCounterAppendsBlankAndSelectsIt": { + "file": "android/app/src/test/java/com/codeyam/android/model/CounterModelTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ { - "at": "2026-07-26T22:23:45.745116+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", "status": "pass" - } - ] - }, - "com.codeyam.android.model.CounterModelTest › testAddCounterAppendsBlankAndSelectsIt": { - "file": "android/app/src/test/java/com/codeyam/android/model/CounterModelTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", - "lastRunKind": "changed", - "lastStatus": "pass", - "recentStatuses": [ + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -7811,30 +7826,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, + } + ] + }, + "com.codeyam.android.model.CounterModelTest › testAddCounterAssignsNextIdAndOrder": { + "file": "android/app/src/test/java/com/codeyam/android/model/CounterModelTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ { - "at": "2026-07-26T22:23:45.745116+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", "status": "pass" - } - ] - }, - "com.codeyam.android.model.CounterModelTest › testAddCounterAssignsNextIdAndOrder": { - "file": "android/app/src/test/java/com/codeyam/android/model/CounterModelTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", - "lastRunKind": "changed", - "lastStatus": "pass", - "recentStatuses": [ + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -7869,30 +7884,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, + } + ] + }, + "com.codeyam.android.model.CounterModelTest › testAddCounterClearsPendingUndo": { + "file": "android/app/src/test/java/com/codeyam/android/model/CounterModelTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ { - "at": "2026-07-26T22:23:45.745116+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", "status": "pass" - } - ] - }, - "com.codeyam.android.model.CounterModelTest › testAddCounterClearsPendingUndo": { - "file": "android/app/src/test/java/com/codeyam/android/model/CounterModelTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", - "lastRunKind": "changed", - "lastStatus": "pass", - "recentStatuses": [ + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -7927,30 +7942,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, + } + ] + }, + "com.codeyam.android.model.CounterModelTest › testAddCounterPersists": { + "file": "android/app/src/test/java/com/codeyam/android/model/CounterModelTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ { - "at": "2026-07-26T22:23:45.745116+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", "status": "pass" - } - ] - }, - "com.codeyam.android.model.CounterModelTest › testAddCounterPersists": { - "file": "android/app/src/test/java/com/codeyam/android/model/CounterModelTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", - "lastRunKind": "changed", - "lastStatus": "pass", - "recentStatuses": [ + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -7985,30 +8000,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, - { - "at": "2026-07-26T22:23:45.745116+00:00", - "kind": "changed", - "status": "pass" - }, - { - "at": "2026-07-26T22:08:02.789776+00:00", - "kind": "full", - "status": "pass" - }, - { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", - "status": "pass" } ] }, "com.codeyam.android.model.CounterModelTest › testBlankSlotIncrementsWithoutReviving": { "file": "android/app/src/test/java/com/codeyam/android/model/CounterModelTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", "lastRunKind": "changed", "lastStatus": "pass", "recentStatuses": [ + { + "at": "2026-08-11T19:50:40.967566+00:00", + "kind": "changed", + "status": "pass" + }, + { + "at": "2026-08-11T19:08:08.447728+00:00", + "kind": "full", + "status": "pass" + }, + { + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", + "status": "pass" + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -8043,30 +8058,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, + } + ] + }, + "com.codeyam.android.model.CounterModelTest › testClampedSubtractRecordsActualAppliedDelta": { + "file": "android/app/src/test/java/com/codeyam/android/model/CounterModelTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ { - "at": "2026-07-26T22:23:45.745116+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", "status": "pass" - } - ] - }, - "com.codeyam.android.model.CounterModelTest › testClampedSubtractRecordsActualAppliedDelta": { - "file": "android/app/src/test/java/com/codeyam/android/model/CounterModelTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", - "lastRunKind": "changed", - "lastStatus": "pass", - "recentStatuses": [ + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -8101,30 +8116,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, + } + ] + }, + "com.codeyam.android.model.CounterModelTest › testCumulativeSeriesReconstructsRunningCount": { + "file": "android/app/src/test/java/com/codeyam/android/model/CounterModelTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ { - "at": "2026-07-26T22:23:45.745116+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", "status": "pass" - } - ] - }, - "com.codeyam.android.model.CounterModelTest › testCumulativeSeriesReconstructsRunningCount": { - "file": "android/app/src/test/java/com/codeyam/android/model/CounterModelTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", - "lastRunKind": "changed", - "lastStatus": "pass", - "recentStatuses": [ + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -8159,30 +8174,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, + } + ] + }, + "com.codeyam.android.model.CounterModelTest › testDefaultEffectiveFeedbackIsAllOff": { + "file": "android/app/src/test/java/com/codeyam/android/model/CounterModelTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ { - "at": "2026-07-26T22:23:45.745116+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", "status": "pass" - } - ] - }, - "com.codeyam.android.model.CounterModelTest › testDefaultEffectiveFeedbackIsAllOff": { - "file": "android/app/src/test/java/com/codeyam/android/model/CounterModelTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", - "lastRunKind": "changed", - "lastStatus": "pass", - "recentStatuses": [ + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -8217,30 +8232,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, + } + ] + }, + "com.codeyam.android.model.CounterModelTest › testDeleteBeyondFirstFourRemovesAndSelectsPrevious": { + "file": "android/app/src/test/java/com/codeyam/android/model/CounterModelTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ { - "at": "2026-07-26T22:23:45.745116+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", "status": "pass" - } - ] - }, - "com.codeyam.android.model.CounterModelTest › testDeleteBeyondFirstFourRemovesAndSelectsPrevious": { - "file": "android/app/src/test/java/com/codeyam/android/model/CounterModelTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", - "lastRunKind": "changed", - "lastStatus": "pass", - "recentStatuses": [ + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -8275,30 +8290,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, + } + ] + }, + "com.codeyam.android.model.CounterModelTest › testDeleteBlanksInPlace": { + "file": "android/app/src/test/java/com/codeyam/android/model/CounterModelTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ { - "at": "2026-07-26T22:23:45.745116+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", "status": "pass" - } - ] - }, - "com.codeyam.android.model.CounterModelTest › testDeleteBlanksInPlace": { - "file": "android/app/src/test/java/com/codeyam/android/model/CounterModelTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", - "lastRunKind": "changed", - "lastStatus": "pass", - "recentStatuses": [ + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -8333,30 +8348,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, + } + ] + }, + "com.codeyam.android.model.CounterModelTest › testDeleteCounterClearsItsHistories": { + "file": "android/app/src/test/java/com/codeyam/android/model/CounterModelTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ { - "at": "2026-07-26T22:23:45.745116+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", "status": "pass" - } - ] - }, - "com.codeyam.android.model.CounterModelTest › testDeleteCounterClearsItsHistories": { - "file": "android/app/src/test/java/com/codeyam/android/model/CounterModelTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", - "lastRunKind": "changed", - "lastStatus": "pass", - "recentStatuses": [ + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -8391,30 +8406,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, + } + ] + }, + "com.codeyam.android.model.CounterModelTest › testDeleteLastCounterBlanksInPlaceAndKeepsSelection": { + "file": "android/app/src/test/java/com/codeyam/android/model/CounterModelTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ { - "at": "2026-07-26T22:23:45.745116+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", "status": "pass" - } - ] - }, - "com.codeyam.android.model.CounterModelTest › testDeleteLastCounterBlanksInPlaceAndKeepsSelection": { - "file": "android/app/src/test/java/com/codeyam/android/model/CounterModelTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", - "lastRunKind": "changed", - "lastStatus": "pass", - "recentStatuses": [ + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -8449,30 +8464,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, + } + ] + }, + "com.codeyam.android.model.CounterModelTest › testDeletingCounterClearsPendingUndo": { + "file": "android/app/src/test/java/com/codeyam/android/model/CounterModelTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ { - "at": "2026-07-26T22:23:45.745116+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", "status": "pass" - } - ] - }, - "com.codeyam.android.model.CounterModelTest › testDeletingCounterClearsPendingUndo": { - "file": "android/app/src/test/java/com/codeyam/android/model/CounterModelTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", - "lastRunKind": "changed", - "lastStatus": "pass", - "recentStatuses": [ + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -8507,30 +8522,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, + } + ] + }, + "com.codeyam.android.model.CounterModelTest › testDeletingEveryBaseSlotNeverShrinksTheRow": { + "file": "android/app/src/test/java/com/codeyam/android/model/CounterModelTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ { - "at": "2026-07-26T22:23:45.745116+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", "status": "pass" - } - ] - }, - "com.codeyam.android.model.CounterModelTest › testDeletingEveryBaseSlotNeverShrinksTheRow": { - "file": "android/app/src/test/java/com/codeyam/android/model/CounterModelTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", - "lastRunKind": "changed", - "lastStatus": "pass", - "recentStatuses": [ + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -8565,30 +8580,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, + } + ] + }, + "com.codeyam.android.model.CounterModelTest › testDeletingExtraCounterDropsItsHistory": { + "file": "android/app/src/test/java/com/codeyam/android/model/CounterModelTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ { - "at": "2026-07-26T22:23:45.745116+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", "status": "pass" - } - ] - }, - "com.codeyam.android.model.CounterModelTest › testDeletingExtraCounterDropsItsHistory": { - "file": "android/app/src/test/java/com/codeyam/android/model/CounterModelTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", - "lastRunKind": "changed", - "lastStatus": "pass", - "recentStatuses": [ + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -8623,30 +8638,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, + } + ] + }, + "com.codeyam.android.model.CounterModelTest › testDeletingLastExtraCounterSelectsNewLast": { + "file": "android/app/src/test/java/com/codeyam/android/model/CounterModelTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ { - "at": "2026-07-26T22:23:45.745116+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", "status": "pass" - } - ] - }, - "com.codeyam.android.model.CounterModelTest › testDeletingLastExtraCounterSelectsNewLast": { - "file": "android/app/src/test/java/com/codeyam/android/model/CounterModelTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", - "lastRunKind": "changed", - "lastStatus": "pass", - "recentStatuses": [ + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -8681,30 +8696,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, + } + ] + }, + "com.codeyam.android.model.CounterModelTest › testDeletingMiddleExtraCounterSlidesFollowingCounterDown": { + "file": "android/app/src/test/java/com/codeyam/android/model/CounterModelTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ { - "at": "2026-07-26T22:23:45.745116+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", "status": "pass" - } - ] - }, - "com.codeyam.android.model.CounterModelTest › testDeletingMiddleExtraCounterSlidesFollowingCounterDown": { - "file": "android/app/src/test/java/com/codeyam/android/model/CounterModelTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", - "lastRunKind": "changed", - "lastStatus": "pass", - "recentStatuses": [ + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -8739,30 +8754,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, + } + ] + }, + "com.codeyam.android.model.CounterModelTest › testEditingActiveCounterClearsPendingUndo": { + "file": "android/app/src/test/java/com/codeyam/android/model/CounterModelTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ { - "at": "2026-07-26T22:23:45.745116+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", "status": "pass" - } - ] - }, - "com.codeyam.android.model.CounterModelTest › testEditingActiveCounterClearsPendingUndo": { - "file": "android/app/src/test/java/com/codeyam/android/model/CounterModelTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", - "lastRunKind": "changed", - "lastStatus": "pass", - "recentStatuses": [ + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -8797,30 +8812,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, + } + ] + }, + "com.codeyam.android.model.CounterModelTest › testEffectiveResolversFollowDefaultWhenNil": { + "file": "android/app/src/test/java/com/codeyam/android/model/CounterModelTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ { - "at": "2026-07-26T22:23:45.745116+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", "status": "pass" - } - ] - }, - "com.codeyam.android.model.CounterModelTest › testEffectiveResolversFollowDefaultWhenNil": { - "file": "android/app/src/test/java/com/codeyam/android/model/CounterModelTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", - "lastRunKind": "changed", - "lastStatus": "pass", - "recentStatuses": [ + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -8855,30 +8870,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, + } + ] + }, + "com.codeyam.android.model.CounterModelTest › testEffectiveResolversPinOverrideWhenSet": { + "file": "android/app/src/test/java/com/codeyam/android/model/CounterModelTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ { - "at": "2026-07-26T22:23:45.745116+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", "status": "pass" - } - ] - }, - "com.codeyam.android.model.CounterModelTest › testEffectiveResolversPinOverrideWhenSet": { - "file": "android/app/src/test/java/com/codeyam/android/model/CounterModelTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", - "lastRunKind": "changed", - "lastStatus": "pass", - "recentStatuses": [ + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -8913,30 +8928,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, + } + ] + }, + "com.codeyam.android.model.CounterModelTest › testFreshModelHasFourStarterCountersAtZero": { + "file": "android/app/src/test/java/com/codeyam/android/model/CounterModelTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ { - "at": "2026-07-26T22:23:45.745116+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", "status": "pass" - } - ] - }, - "com.codeyam.android.model.CounterModelTest › testFreshModelHasFourStarterCountersAtZero": { - "file": "android/app/src/test/java/com/codeyam/android/model/CounterModelTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", - "lastRunKind": "changed", - "lastStatus": "pass", - "recentStatuses": [ + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -8971,30 +8986,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, + } + ] + }, + "com.codeyam.android.model.CounterModelTest › testHandednessOverrideResolvesPerCounter": { + "file": "android/app/src/test/java/com/codeyam/android/model/CounterModelTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ { - "at": "2026-07-26T22:23:45.745116+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", "status": "pass" - } - ] - }, - "com.codeyam.android.model.CounterModelTest › testHandednessOverrideResolvesPerCounter": { - "file": "android/app/src/test/java/com/codeyam/android/model/CounterModelTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", - "lastRunKind": "changed", - "lastStatus": "pass", - "recentStatuses": [ + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -9029,30 +9044,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, + } + ] + }, + "com.codeyam.android.model.CounterModelTest › testHapticDirectionsResolveIndependently": { + "file": "android/app/src/test/java/com/codeyam/android/model/CounterModelTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ { - "at": "2026-07-26T22:23:45.745116+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", "status": "pass" - } - ] - }, - "com.codeyam.android.model.CounterModelTest › testHapticDirectionsResolveIndependently": { - "file": "android/app/src/test/java/com/codeyam/android/model/CounterModelTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", - "lastRunKind": "changed", - "lastStatus": "pass", - "recentStatuses": [ + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -9087,30 +9102,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, + } + ] + }, + "com.codeyam.android.model.CounterModelTest › testHistoriesPersistAndReloadFromDefaults": { + "file": "android/app/src/test/java/com/codeyam/android/model/CounterModelTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ { - "at": "2026-07-26T22:23:45.745116+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", "status": "pass" - } - ] - }, - "com.codeyam.android.model.CounterModelTest › testHistoriesPersistAndReloadFromDefaults": { - "file": "android/app/src/test/java/com/codeyam/android/model/CounterModelTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", - "lastRunKind": "changed", - "lastStatus": "pass", - "recentStatuses": [ + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -9145,30 +9160,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, + } + ] + }, + "com.codeyam.android.model.CounterModelTest › testHistoryCapDropsOldestRun": { + "file": "android/app/src/test/java/com/codeyam/android/model/CounterModelTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ { - "at": "2026-07-26T22:23:45.745116+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", "status": "pass" - } - ] - }, - "com.codeyam.android.model.CounterModelTest › testHistoryCapDropsOldestRun": { - "file": "android/app/src/test/java/com/codeyam/android/model/CounterModelTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", - "lastRunKind": "changed", - "lastStatus": "pass", - "recentStatuses": [ + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -9203,30 +9218,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, + } + ] + }, + "com.codeyam.android.model.CounterModelTest › testIncrementClearsPendingUndo": { + "file": "android/app/src/test/java/com/codeyam/android/model/CounterModelTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ { - "at": "2026-07-26T22:23:45.745116+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", "status": "pass" - } - ] - }, - "com.codeyam.android.model.CounterModelTest › testIncrementClearsPendingUndo": { - "file": "android/app/src/test/java/com/codeyam/android/model/CounterModelTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", - "lastRunKind": "changed", - "lastStatus": "pass", - "recentStatuses": [ + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -9261,30 +9276,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, + } + ] + }, + "com.codeyam.android.model.CounterModelTest › testIncrementFiresFeedbackWithIncrementHaptic": { + "file": "android/app/src/test/java/com/codeyam/android/model/CounterModelTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ { - "at": "2026-07-26T22:23:45.745116+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", "status": "pass" - } - ] - }, - "com.codeyam.android.model.CounterModelTest › testIncrementFiresFeedbackWithIncrementHaptic": { - "file": "android/app/src/test/java/com/codeyam/android/model/CounterModelTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", - "lastRunKind": "changed", - "lastStatus": "pass", - "recentStatuses": [ + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -9319,30 +9334,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, - { - "at": "2026-07-26T22:23:45.745116+00:00", - "kind": "changed", - "status": "pass" - }, - { - "at": "2026-07-26T22:08:02.789776+00:00", - "kind": "full", - "status": "pass" - }, - { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", - "status": "pass" } ] }, "com.codeyam.android.model.CounterModelTest › testIncrementHonorsStep": { "file": "android/app/src/test/java/com/codeyam/android/model/CounterModelTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", "lastRunKind": "changed", "lastStatus": "pass", "recentStatuses": [ + { + "at": "2026-08-11T19:50:40.967566+00:00", + "kind": "changed", + "status": "pass" + }, + { + "at": "2026-08-11T19:08:08.447728+00:00", + "kind": "full", + "status": "pass" + }, + { + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", + "status": "pass" + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -9377,30 +9392,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, + } + ] + }, + "com.codeyam.android.model.CounterModelTest › testIncrementRaisesActiveCounter": { + "file": "android/app/src/test/java/com/codeyam/android/model/CounterModelTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ { - "at": "2026-07-26T22:23:45.745116+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", "status": "pass" - } - ] - }, - "com.codeyam.android.model.CounterModelTest › testIncrementRaisesActiveCounter": { - "file": "android/app/src/test/java/com/codeyam/android/model/CounterModelTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", - "lastRunKind": "changed", - "lastStatus": "pass", - "recentStatuses": [ + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -9435,30 +9450,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, + } + ] + }, + "com.codeyam.android.model.CounterModelTest › testIncrementRecordsPositiveEvent": { + "file": "android/app/src/test/java/com/codeyam/android/model/CounterModelTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ { - "at": "2026-07-26T22:23:45.745116+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", "status": "pass" - } - ] - }, - "com.codeyam.android.model.CounterModelTest › testIncrementRecordsPositiveEvent": { - "file": "android/app/src/test/java/com/codeyam/android/model/CounterModelTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", - "lastRunKind": "changed", - "lastStatus": "pass", - "recentStatuses": [ + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -9493,30 +9508,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, + } + ] + }, + "com.codeyam.android.model.CounterModelTest › testIncrementUsesActiveCounterEffectiveFeedback": { + "file": "android/app/src/test/java/com/codeyam/android/model/CounterModelTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ { - "at": "2026-07-26T22:23:45.745116+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", "status": "pass" - } - ] - }, - "com.codeyam.android.model.CounterModelTest › testIncrementUsesActiveCounterEffectiveFeedback": { - "file": "android/app/src/test/java/com/codeyam/android/model/CounterModelTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", - "lastRunKind": "changed", - "lastStatus": "pass", - "recentStatuses": [ + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -9551,30 +9566,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, + } + ] + }, + "com.codeyam.android.model.CounterModelTest › testLegacyCounterWithoutStepDecodesToStepOne": { + "file": "android/app/src/test/java/com/codeyam/android/model/CounterModelTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ { - "at": "2026-07-26T22:23:45.745116+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", "status": "pass" - } - ] - }, - "com.codeyam.android.model.CounterModelTest › testLegacyCounterWithoutStepDecodesToStepOne": { - "file": "android/app/src/test/java/com/codeyam/android/model/CounterModelTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", - "lastRunKind": "changed", - "lastStatus": "pass", - "recentStatuses": [ + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -9609,30 +9624,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, + } + ] + }, + "com.codeyam.android.model.CounterModelTest › testLegacyCountersDecodeWithNilOverrides": { + "file": "android/app/src/test/java/com/codeyam/android/model/CounterModelTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ { - "at": "2026-07-26T22:23:45.745116+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", "status": "pass" - } - ] - }, - "com.codeyam.android.model.CounterModelTest › testLegacyCountersDecodeWithNilOverrides": { - "file": "android/app/src/test/java/com/codeyam/android/model/CounterModelTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", - "lastRunKind": "changed", - "lastStatus": "pass", - "recentStatuses": [ + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -9667,30 +9682,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, + } + ] + }, + "com.codeyam.android.model.CounterModelTest › testLegacySingleHapticOverrideMigratesToBothDirections": { + "file": "android/app/src/test/java/com/codeyam/android/model/CounterModelTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ { - "at": "2026-07-26T22:23:45.745116+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", "status": "pass" - } - ] - }, - "com.codeyam.android.model.CounterModelTest › testLegacySingleHapticOverrideMigratesToBothDirections": { - "file": "android/app/src/test/java/com/codeyam/android/model/CounterModelTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", - "lastRunKind": "changed", - "lastStatus": "pass", - "recentStatuses": [ + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -9725,30 +9740,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, + } + ] + }, + "com.codeyam.android.model.CounterModelTest › testLoadsSeededStateFromDefaults": { + "file": "android/app/src/test/java/com/codeyam/android/model/CounterModelTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ { - "at": "2026-07-26T22:23:45.745116+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", "status": "pass" - } - ] - }, - "com.codeyam.android.model.CounterModelTest › testLoadsSeededStateFromDefaults": { - "file": "android/app/src/test/java/com/codeyam/android/model/CounterModelTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", - "lastRunKind": "changed", - "lastStatus": "pass", - "recentStatuses": [ + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -9783,30 +9798,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, + } + ] + }, + "com.codeyam.android.model.CounterModelTest › testMigrationFoldsDeletedDefaultsIntoBlankSlots": { + "file": "android/app/src/test/java/com/codeyam/android/model/CounterModelTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ { - "at": "2026-07-26T22:23:45.745116+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", "status": "pass" - } - ] - }, - "com.codeyam.android.model.CounterModelTest › testMigrationFoldsDeletedDefaultsIntoBlankSlots": { - "file": "android/app/src/test/java/com/codeyam/android/model/CounterModelTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", - "lastRunKind": "changed", - "lastStatus": "pass", - "recentStatuses": [ + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -9841,30 +9856,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, + } + ] + }, + "com.codeyam.android.model.CounterModelTest › testNamingBlankSlotRevivesIt": { + "file": "android/app/src/test/java/com/codeyam/android/model/CounterModelTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ { - "at": "2026-07-26T22:23:45.745116+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", "status": "pass" - } - ] - }, - "com.codeyam.android.model.CounterModelTest › testNamingBlankSlotRevivesIt": { - "file": "android/app/src/test/java/com/codeyam/android/model/CounterModelTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", - "lastRunKind": "changed", - "lastStatus": "pass", - "recentStatuses": [ + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -9899,30 +9914,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, + } + ] + }, + "com.codeyam.android.model.CounterModelTest › testNewHapticOverrideKeyWinsOverLegacyOnDecode": { + "file": "android/app/src/test/java/com/codeyam/android/model/CounterModelTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ { - "at": "2026-07-26T22:23:45.745116+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", "status": "pass" - } - ] - }, - "com.codeyam.android.model.CounterModelTest › testNewHapticOverrideKeyWinsOverLegacyOnDecode": { - "file": "android/app/src/test/java/com/codeyam/android/model/CounterModelTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", - "lastRunKind": "changed", - "lastStatus": "pass", - "recentStatuses": [ + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -9957,88 +9972,88 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, - { - "at": "2026-07-26T22:23:45.745116+00:00", - "kind": "changed", - "status": "pass" - }, - { - "at": "2026-07-26T22:08:02.789776+00:00", - "kind": "full", - "status": "pass" - }, - { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", - "status": "pass" } ] }, "com.codeyam.android.model.CounterModelTest › testNoOpSubtractClampRecordsNoEvent": { "file": "android/app/src/test/java/com/codeyam/android/model/CounterModelTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", "lastRunKind": "changed", "lastStatus": "pass", "recentStatuses": [ { - "at": "2026-08-10T17:45:12.796231+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-08-10T17:39:18.840440+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-08-06T17:19:28.895464+00:00", + "at": "2026-08-11T19:05:13.647187+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-29T11:43:21.762729+00:00", - "kind": "full", + "at": "2026-08-10T17:45:12.796231+00:00", + "kind": "changed", "status": "pass" }, { - "at": "2026-07-28T20:05:00.150174+00:00", + "at": "2026-08-10T17:39:18.840440+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T20:04:02.328397+00:00", - "kind": "changed", + "at": "2026-08-06T17:19:28.895464+00:00", + "kind": "full", "status": "pass" }, { - "at": "2026-07-28T16:56:43.018456+00:00", + "at": "2026-07-29T11:43:21.762729+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:23:45.745116+00:00", - "kind": "changed", + "at": "2026-07-28T20:05:00.150174+00:00", + "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", - "kind": "full", + "at": "2026-07-28T20:04:02.328397+00:00", + "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", + "at": "2026-07-28T16:56:43.018456+00:00", + "kind": "full", "status": "pass" } ] }, "com.codeyam.android.model.CounterModelTest › testOverrideTracksOrPinsAgainstChangingDefault": { "file": "android/app/src/test/java/com/codeyam/android/model/CounterModelTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", "lastRunKind": "changed", "lastStatus": "pass", "recentStatuses": [ + { + "at": "2026-08-11T19:50:40.967566+00:00", + "kind": "changed", + "status": "pass" + }, + { + "at": "2026-08-11T19:08:08.447728+00:00", + "kind": "full", + "status": "pass" + }, + { + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", + "status": "pass" + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -10073,30 +10088,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, + } + ] + }, + "com.codeyam.android.model.CounterModelTest › testRelativeOffsetMeasuredFromStart": { + "file": "android/app/src/test/java/com/codeyam/android/model/CounterModelTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ { - "at": "2026-07-26T22:23:45.745116+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", "status": "pass" - } - ] - }, - "com.codeyam.android.model.CounterModelTest › testRelativeOffsetMeasuredFromStart": { - "file": "android/app/src/test/java/com/codeyam/android/model/CounterModelTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", - "lastRunKind": "changed", - "lastStatus": "pass", - "recentStatuses": [ + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -10131,30 +10146,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, + } + ] + }, + "com.codeyam.android.model.CounterModelTest › testReleasePolicyIgnoresSeededAppSettingsWithoutProvenance": { + "file": "android/app/src/test/java/com/codeyam/android/model/CounterModelTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ { - "at": "2026-07-26T22:23:45.745116+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", "status": "pass" - } - ] - }, - "com.codeyam.android.model.CounterModelTest › testReleasePolicyIgnoresSeededAppSettingsWithoutProvenance": { - "file": "android/app/src/test/java/com/codeyam/android/model/CounterModelTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", - "lastRunKind": "changed", - "lastStatus": "pass", - "recentStatuses": [ + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -10189,30 +10204,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, + } + ] + }, + "com.codeyam.android.model.CounterModelTest › testReleasePolicyIgnoresSeededCountersWithoutProvenance": { + "file": "android/app/src/test/java/com/codeyam/android/model/CounterModelTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ { - "at": "2026-07-26T22:23:45.745116+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", "status": "pass" - } - ] - }, - "com.codeyam.android.model.CounterModelTest › testReleasePolicyIgnoresSeededCountersWithoutProvenance": { - "file": "android/app/src/test/java/com/codeyam/android/model/CounterModelTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", - "lastRunKind": "changed", - "lastStatus": "pass", - "recentStatuses": [ + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -10247,30 +10262,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, + } + ] + }, + "com.codeyam.android.model.CounterModelTest › testReleasePolicyTrustsAppSettingsAfterProvenanceStamped": { + "file": "android/app/src/test/java/com/codeyam/android/model/CounterModelTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ { - "at": "2026-07-26T22:23:45.745116+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", "status": "pass" - } - ] - }, - "com.codeyam.android.model.CounterModelTest › testReleasePolicyTrustsAppSettingsAfterProvenanceStamped": { - "file": "android/app/src/test/java/com/codeyam/android/model/CounterModelTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", - "lastRunKind": "changed", - "lastStatus": "pass", - "recentStatuses": [ + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -10305,30 +10320,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, + } + ] + }, + "com.codeyam.android.model.CounterModelTest › testReleasePolicyTrustsOwnPersistedDataAfterStamp": { + "file": "android/app/src/test/java/com/codeyam/android/model/CounterModelTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ { - "at": "2026-07-26T22:23:45.745116+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", "status": "pass" - } - ] - }, - "com.codeyam.android.model.CounterModelTest › testReleasePolicyTrustsOwnPersistedDataAfterStamp": { - "file": "android/app/src/test/java/com/codeyam/android/model/CounterModelTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", - "lastRunKind": "changed", - "lastStatus": "pass", - "recentStatuses": [ + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -10363,30 +10378,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, + } + ] + }, + "com.codeyam.android.model.CounterModelTest › testResetAndUndoResetStaySilent": { + "file": "android/app/src/test/java/com/codeyam/android/model/CounterModelTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ { - "at": "2026-07-26T22:23:45.745116+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", "status": "pass" - } - ] - }, - "com.codeyam.android.model.CounterModelTest › testResetAndUndoResetStaySilent": { - "file": "android/app/src/test/java/com/codeyam/android/model/CounterModelTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", - "lastRunKind": "changed", - "lastStatus": "pass", - "recentStatuses": [ + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -10421,30 +10436,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, + } + ] + }, + "com.codeyam.android.model.CounterModelTest › testResetAtZeroEntersUndoModeAndUndoRestoresZero": { + "file": "android/app/src/test/java/com/codeyam/android/model/CounterModelTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ { - "at": "2026-07-26T22:23:45.745116+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", "status": "pass" - } - ] - }, - "com.codeyam.android.model.CounterModelTest › testResetAtZeroEntersUndoModeAndUndoRestoresZero": { - "file": "android/app/src/test/java/com/codeyam/android/model/CounterModelTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", - "lastRunKind": "changed", - "lastStatus": "pass", - "recentStatuses": [ + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -10479,30 +10494,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, + } + ] + }, + "com.codeyam.android.model.CounterModelTest › testResetEntersUndoModeAndCapturesPreviousValue": { + "file": "android/app/src/test/java/com/codeyam/android/model/CounterModelTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ { - "at": "2026-07-26T22:23:45.745116+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", "status": "pass" - } - ] - }, - "com.codeyam.android.model.CounterModelTest › testResetEntersUndoModeAndCapturesPreviousValue": { - "file": "android/app/src/test/java/com/codeyam/android/model/CounterModelTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", - "lastRunKind": "changed", - "lastStatus": "pass", - "recentStatuses": [ + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -10537,30 +10552,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, + } + ] + }, + "com.codeyam.android.model.CounterModelTest › testResetSealsCurrentAndOpensEmptyRun": { + "file": "android/app/src/test/java/com/codeyam/android/model/CounterModelTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ { - "at": "2026-07-26T22:23:45.745116+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", "status": "pass" - } - ] - }, - "com.codeyam.android.model.CounterModelTest › testResetSealsCurrentAndOpensEmptyRun": { - "file": "android/app/src/test/java/com/codeyam/android/model/CounterModelTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", - "lastRunKind": "changed", - "lastStatus": "pass", - "recentStatuses": [ + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -10595,30 +10610,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, + } + ] + }, + "com.codeyam.android.model.CounterModelTest › testResetZeroesActiveCounter": { + "file": "android/app/src/test/java/com/codeyam/android/model/CounterModelTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ { - "at": "2026-07-26T22:23:45.745116+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", "status": "pass" - } - ] - }, - "com.codeyam.android.model.CounterModelTest › testResetZeroesActiveCounter": { - "file": "android/app/src/test/java/com/codeyam/android/model/CounterModelTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", - "lastRunKind": "changed", - "lastStatus": "pass", - "recentStatuses": [ + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -10653,30 +10668,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, + } + ] + }, + "com.codeyam.android.model.CounterModelTest › testSeededHistoriesJSONLoadsFromDefaults": { + "file": "android/app/src/test/java/com/codeyam/android/model/CounterModelTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ { - "at": "2026-07-26T22:23:45.745116+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", "status": "pass" - } - ] - }, - "com.codeyam.android.model.CounterModelTest › testSeededHistoriesJSONLoadsFromDefaults": { - "file": "android/app/src/test/java/com/codeyam/android/model/CounterModelTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", - "lastRunKind": "changed", - "lastStatus": "pass", - "recentStatuses": [ + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -10711,30 +10726,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, + } + ] + }, + "com.codeyam.android.model.CounterModelTest › testSeededResetUndoKeyCoercesStringValue": { + "file": "android/app/src/test/java/com/codeyam/android/model/CounterModelTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ { - "at": "2026-07-26T22:23:45.745116+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", "status": "pass" - } - ] - }, - "com.codeyam.android.model.CounterModelTest › testSeededResetUndoKeyCoercesStringValue": { - "file": "android/app/src/test/java/com/codeyam/android/model/CounterModelTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", - "lastRunKind": "changed", - "lastStatus": "pass", - "recentStatuses": [ + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -10769,30 +10784,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, + } + ] + }, + "com.codeyam.android.model.CounterModelTest › testSeededResetUndoKeyEntersUndoModeOnLaunch": { + "file": "android/app/src/test/java/com/codeyam/android/model/CounterModelTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ { - "at": "2026-07-26T22:23:45.745116+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", "status": "pass" - } - ] - }, - "com.codeyam.android.model.CounterModelTest › testSeededResetUndoKeyEntersUndoModeOnLaunch": { - "file": "android/app/src/test/java/com/codeyam/android/model/CounterModelTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", - "lastRunKind": "changed", - "lastStatus": "pass", - "recentStatuses": [ + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -10827,30 +10842,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, + } + ] + }, + "com.codeyam.android.model.CounterModelTest › testSeededResetUndoKeyIgnoredWhenActiveCountNonZero": { + "file": "android/app/src/test/java/com/codeyam/android/model/CounterModelTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ { - "at": "2026-07-26T22:23:45.745116+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", "status": "pass" - } - ] - }, - "com.codeyam.android.model.CounterModelTest › testSeededResetUndoKeyIgnoredWhenActiveCountNonZero": { - "file": "android/app/src/test/java/com/codeyam/android/model/CounterModelTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", - "lastRunKind": "changed", - "lastStatus": "pass", - "recentStatuses": [ + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -10885,30 +10900,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, + } + ] + }, + "com.codeyam.android.model.CounterModelTest › testSeededSubsetHasNoBlankSlots": { + "file": "android/app/src/test/java/com/codeyam/android/model/CounterModelTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ { - "at": "2026-07-26T22:23:45.745116+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", "status": "pass" - } - ] - }, - "com.codeyam.android.model.CounterModelTest › testSeededSubsetHasNoBlankSlots": { - "file": "android/app/src/test/java/com/codeyam/android/model/CounterModelTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", - "lastRunKind": "changed", - "lastStatus": "pass", - "recentStatuses": [ + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -10943,30 +10958,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, + } + ] + }, + "com.codeyam.android.model.CounterModelTest › testSelectNextAdvancesWithinList": { + "file": "android/app/src/test/java/com/codeyam/android/model/CounterModelTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ { - "at": "2026-07-26T22:23:45.745116+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", "status": "pass" - } - ] - }, - "com.codeyam.android.model.CounterModelTest › testSelectNextAdvancesWithinList": { - "file": "android/app/src/test/java/com/codeyam/android/model/CounterModelTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", - "lastRunKind": "changed", - "lastStatus": "pass", - "recentStatuses": [ + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -11001,30 +11016,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, + } + ] + }, + "com.codeyam.android.model.CounterModelTest › testSelectNextPastLastAppendsBlankAndSelectsIt": { + "file": "android/app/src/test/java/com/codeyam/android/model/CounterModelTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ { - "at": "2026-07-26T22:23:45.745116+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", "status": "pass" - } - ] - }, - "com.codeyam.android.model.CounterModelTest › testSelectNextPastLastAppendsBlankAndSelectsIt": { - "file": "android/app/src/test/java/com/codeyam/android/model/CounterModelTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", - "lastRunKind": "changed", - "lastStatus": "pass", - "recentStatuses": [ + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -11059,30 +11074,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, + } + ] + }, + "com.codeyam.android.model.CounterModelTest › testSelectPreviousMovesBackWithinList": { + "file": "android/app/src/test/java/com/codeyam/android/model/CounterModelTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ { - "at": "2026-07-26T22:23:45.745116+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", "status": "pass" - } - ] - }, - "com.codeyam.android.model.CounterModelTest › testSelectPreviousMovesBackWithinList": { - "file": "android/app/src/test/java/com/codeyam/android/model/CounterModelTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", - "lastRunKind": "changed", - "lastStatus": "pass", - "recentStatuses": [ + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -11117,30 +11132,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, + } + ] + }, + "com.codeyam.android.model.CounterModelTest › testSelectPreviousWrapsFromFirstToLast": { + "file": "android/app/src/test/java/com/codeyam/android/model/CounterModelTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ { - "at": "2026-07-26T22:23:45.745116+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", "status": "pass" - } - ] - }, - "com.codeyam.android.model.CounterModelTest › testSelectPreviousWrapsFromFirstToLast": { - "file": "android/app/src/test/java/com/codeyam/android/model/CounterModelTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", - "lastRunKind": "changed", - "lastStatus": "pass", - "recentStatuses": [ + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -11175,30 +11190,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, + } + ] + }, + "com.codeyam.android.model.CounterModelTest › testSubtractClampsToZeroWhenStepOvershoots": { + "file": "android/app/src/test/java/com/codeyam/android/model/CounterModelTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ { - "at": "2026-07-26T22:23:45.745116+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", "status": "pass" - } - ] - }, - "com.codeyam.android.model.CounterModelTest › testSubtractClampsToZeroWhenStepOvershoots": { - "file": "android/app/src/test/java/com/codeyam/android/model/CounterModelTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", - "lastRunKind": "changed", - "lastStatus": "pass", - "recentStatuses": [ + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -11233,30 +11248,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, + } + ] + }, + "com.codeyam.android.model.CounterModelTest › testSubtractClampsWhenNegativesDisallowed": { + "file": "android/app/src/test/java/com/codeyam/android/model/CounterModelTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ { - "at": "2026-07-26T22:23:45.745116+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", "status": "pass" - } - ] - }, - "com.codeyam.android.model.CounterModelTest › testSubtractClampsWhenNegativesDisallowed": { - "file": "android/app/src/test/java/com/codeyam/android/model/CounterModelTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", - "lastRunKind": "changed", - "lastStatus": "pass", - "recentStatuses": [ + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -11291,30 +11306,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, + } + ] + }, + "com.codeyam.android.model.CounterModelTest › testSubtractClearsPendingUndo": { + "file": "android/app/src/test/java/com/codeyam/android/model/CounterModelTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ { - "at": "2026-07-26T22:23:45.745116+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", "status": "pass" - } - ] - }, - "com.codeyam.android.model.CounterModelTest › testSubtractClearsPendingUndo": { - "file": "android/app/src/test/java/com/codeyam/android/model/CounterModelTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", - "lastRunKind": "changed", - "lastStatus": "pass", - "recentStatuses": [ + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -11349,30 +11364,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, + } + ] + }, + "com.codeyam.android.model.CounterModelTest › testSubtractFiresFeedbackWithDecrementHaptic": { + "file": "android/app/src/test/java/com/codeyam/android/model/CounterModelTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ { - "at": "2026-07-26T22:23:45.745116+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", "status": "pass" - } - ] - }, - "com.codeyam.android.model.CounterModelTest › testSubtractFiresFeedbackWithDecrementHaptic": { - "file": "android/app/src/test/java/com/codeyam/android/model/CounterModelTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", - "lastRunKind": "changed", - "lastStatus": "pass", - "recentStatuses": [ + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -11407,30 +11422,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, + } + ] + }, + "com.codeyam.android.model.CounterModelTest › testSubtractGoesNegativeByDefault": { + "file": "android/app/src/test/java/com/codeyam/android/model/CounterModelTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ { - "at": "2026-07-26T22:23:45.745116+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", "status": "pass" - } - ] - }, - "com.codeyam.android.model.CounterModelTest › testSubtractGoesNegativeByDefault": { - "file": "android/app/src/test/java/com/codeyam/android/model/CounterModelTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", - "lastRunKind": "changed", - "lastStatus": "pass", - "recentStatuses": [ + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -11465,30 +11480,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, + } + ] + }, + "com.codeyam.android.model.CounterModelTest › testSubtractHonorsStep": { + "file": "android/app/src/test/java/com/codeyam/android/model/CounterModelTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ { - "at": "2026-07-26T22:23:45.745116+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", "status": "pass" - } - ] - }, - "com.codeyam.android.model.CounterModelTest › testSubtractHonorsStep": { - "file": "android/app/src/test/java/com/codeyam/android/model/CounterModelTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", - "lastRunKind": "changed", - "lastStatus": "pass", - "recentStatuses": [ + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -11523,30 +11538,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, + } + ] + }, + "com.codeyam.android.model.CounterModelTest › testSubtractNoOpClampDoesNotFireFeedback": { + "file": "android/app/src/test/java/com/codeyam/android/model/CounterModelTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ { - "at": "2026-07-26T22:23:45.745116+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", "status": "pass" - } - ] - }, - "com.codeyam.android.model.CounterModelTest › testSubtractNoOpClampDoesNotFireFeedback": { - "file": "android/app/src/test/java/com/codeyam/android/model/CounterModelTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", - "lastRunKind": "changed", - "lastStatus": "pass", - "recentStatuses": [ + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -11581,30 +11596,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, + } + ] + }, + "com.codeyam.android.model.CounterModelTest › testSubtractRecordsNegativeAppliedDelta": { + "file": "android/app/src/test/java/com/codeyam/android/model/CounterModelTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ { - "at": "2026-07-26T22:23:45.745116+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", "status": "pass" - } - ] - }, - "com.codeyam.android.model.CounterModelTest › testSubtractRecordsNegativeAppliedDelta": { - "file": "android/app/src/test/java/com/codeyam/android/model/CounterModelTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", - "lastRunKind": "changed", - "lastStatus": "pass", - "recentStatuses": [ + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -11639,30 +11654,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, + } + ] + }, + "com.codeyam.android.model.CounterModelTest › testSwitchingCounterClearsPendingUndo": { + "file": "android/app/src/test/java/com/codeyam/android/model/CounterModelTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ { - "at": "2026-07-26T22:23:45.745116+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", "status": "pass" - } - ] - }, - "com.codeyam.android.model.CounterModelTest › testSwitchingCounterClearsPendingUndo": { - "file": "android/app/src/test/java/com/codeyam/android/model/CounterModelTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", - "lastRunKind": "changed", - "lastStatus": "pass", - "recentStatuses": [ + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -11697,30 +11712,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, + } + ] + }, + "com.codeyam.android.model.CounterModelTest › testTrustInjectedPolicyAdoptsSeededCounters": { + "file": "android/app/src/test/java/com/codeyam/android/model/CounterModelTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ { - "at": "2026-07-26T22:23:45.745116+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", "status": "pass" - } - ] - }, - "com.codeyam.android.model.CounterModelTest › testTrustInjectedPolicyAdoptsSeededCounters": { - "file": "android/app/src/test/java/com/codeyam/android/model/CounterModelTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", - "lastRunKind": "changed", - "lastStatus": "pass", - "recentStatuses": [ + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -11755,30 +11770,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, + } + ] + }, + "com.codeyam.android.model.CounterModelTest › testUndoResetReopensSealedRunAndRestoresCount": { + "file": "android/app/src/test/java/com/codeyam/android/model/CounterModelTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ { - "at": "2026-07-26T22:23:45.745116+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", "status": "pass" - } - ] - }, - "com.codeyam.android.model.CounterModelTest › testUndoResetReopensSealedRunAndRestoresCount": { - "file": "android/app/src/test/java/com/codeyam/android/model/CounterModelTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", - "lastRunKind": "changed", - "lastStatus": "pass", - "recentStatuses": [ + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -11813,30 +11828,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, + } + ] + }, + "com.codeyam.android.model.CounterModelTest › testUndoResetRestoresPreviousValueAndExitsUndoMode": { + "file": "android/app/src/test/java/com/codeyam/android/model/CounterModelTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ { - "at": "2026-07-26T22:23:45.745116+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", "status": "pass" - } - ] - }, - "com.codeyam.android.model.CounterModelTest › testUndoResetRestoresPreviousValueAndExitsUndoMode": { - "file": "android/app/src/test/java/com/codeyam/android/model/CounterModelTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", - "lastRunKind": "changed", - "lastStatus": "pass", - "recentStatuses": [ + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -11871,30 +11886,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, + } + ] + }, + "com.codeyam.android.model.CounterModelTest › testUnrecognizedOverrideRawValueDecodesToNil": { + "file": "android/app/src/test/java/com/codeyam/android/model/CounterModelTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ { - "at": "2026-07-26T22:23:45.745116+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", "status": "pass" - } - ] - }, - "com.codeyam.android.model.CounterModelTest › testUnrecognizedOverrideRawValueDecodesToNil": { - "file": "android/app/src/test/java/com/codeyam/android/model/CounterModelTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", - "lastRunKind": "changed", - "lastStatus": "pass", - "recentStatuses": [ + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -11929,30 +11944,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, + } + ] + }, + "com.codeyam.android.model.CounterModelTest › testUpdateActiveCounterClampsStepToAtLeastOne": { + "file": "android/app/src/test/java/com/codeyam/android/model/CounterModelTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ { - "at": "2026-07-26T22:23:45.745116+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", "status": "pass" - } - ] - }, - "com.codeyam.android.model.CounterModelTest › testUpdateActiveCounterClampsStepToAtLeastOne": { - "file": "android/app/src/test/java/com/codeyam/android/model/CounterModelTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", - "lastRunKind": "changed", - "lastStatus": "pass", - "recentStatuses": [ + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -11987,30 +12002,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, - { - "at": "2026-07-26T22:23:45.745116+00:00", - "kind": "changed", - "status": "pass" - }, - { - "at": "2026-07-26T22:08:02.789776+00:00", - "kind": "full", - "status": "pass" - }, - { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", - "status": "pass" } ] }, "com.codeyam.android.model.CounterModelTest › testUpdateActiveCounterClearsOverridesWhenNil": { "file": "android/app/src/test/java/com/codeyam/android/model/CounterModelTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", "lastRunKind": "changed", "lastStatus": "pass", "recentStatuses": [ + { + "at": "2026-08-11T19:50:40.967566+00:00", + "kind": "changed", + "status": "pass" + }, + { + "at": "2026-08-11T19:08:08.447728+00:00", + "kind": "full", + "status": "pass" + }, + { + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", + "status": "pass" + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -12045,30 +12060,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, + } + ] + }, + "com.codeyam.android.model.CounterModelTest › testUpdateActiveCounterEditsAndPersists": { + "file": "android/app/src/test/java/com/codeyam/android/model/CounterModelTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ { - "at": "2026-07-26T22:23:45.745116+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", "status": "pass" - } - ] - }, - "com.codeyam.android.model.CounterModelTest › testUpdateActiveCounterEditsAndPersists": { - "file": "android/app/src/test/java/com/codeyam/android/model/CounterModelTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", - "lastRunKind": "changed", - "lastStatus": "pass", - "recentStatuses": [ + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -12103,30 +12118,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, + } + ] + }, + "com.codeyam.android.model.CounterModelTest › testUpdateActiveCounterRoundTripsOverrides": { + "file": "android/app/src/test/java/com/codeyam/android/model/CounterModelTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ { - "at": "2026-07-26T22:23:45.745116+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", "status": "pass" - } - ] - }, - "com.codeyam.android.model.CounterModelTest › testUpdateActiveCounterRoundTripsOverrides": { - "file": "android/app/src/test/java/com/codeyam/android/model/CounterModelTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", - "lastRunKind": "changed", - "lastStatus": "pass", - "recentStatuses": [ + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -12161,30 +12176,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, + } + ] + }, + "com.codeyam.android.model.CounterThemeTest › testDotHexFallsBackToLimeForUnknownKey": { + "file": "android/app/src/test/java/com/codeyam/android/model/CounterThemeTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ { - "at": "2026-07-26T22:23:45.745116+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", "status": "pass" - } - ] - }, - "com.codeyam.android.model.CounterThemeTest › testDotHexFallsBackToLimeForUnknownKey": { - "file": "android/app/src/test/java/com/codeyam/android/model/CounterThemeTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", - "lastRunKind": "changed", - "lastStatus": "pass", - "recentStatuses": [ + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -12219,30 +12234,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, + } + ] + }, + "com.codeyam.android.model.CounterThemeTest › testDotHexMapsKnownKeys": { + "file": "android/app/src/test/java/com/codeyam/android/model/CounterThemeTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ { - "at": "2026-07-26T22:23:45.745116+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", "status": "pass" - } - ] - }, - "com.codeyam.android.model.CounterThemeTest › testDotHexMapsKnownKeys": { - "file": "android/app/src/test/java/com/codeyam/android/model/CounterThemeTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", - "lastRunKind": "changed", - "lastStatus": "pass", - "recentStatuses": [ + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -12277,30 +12292,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, + } + ] + }, + "com.codeyam.android.model.CounterThemeTest › testIsCaseInsensitive": { + "file": "android/app/src/test/java/com/codeyam/android/model/CounterThemeTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ { - "at": "2026-07-26T22:23:45.745116+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", "status": "pass" - } - ] - }, - "com.codeyam.android.model.CounterThemeTest › testIsCaseInsensitive": { - "file": "android/app/src/test/java/com/codeyam/android/model/CounterThemeTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", - "lastRunKind": "changed", - "lastStatus": "pass", - "recentStatuses": [ + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -12335,30 +12350,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, + } + ] + }, + "com.codeyam.android.model.CounterThemeTest › testIsolatesIndividualChannels": { + "file": "android/app/src/test/java/com/codeyam/android/model/CounterThemeTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ { - "at": "2026-07-26T22:23:45.745116+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", "status": "pass" - } - ] - }, - "com.codeyam.android.model.CounterThemeTest › testIsolatesIndividualChannels": { - "file": "android/app/src/test/java/com/codeyam/android/model/CounterThemeTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", - "lastRunKind": "changed", - "lastStatus": "pass", - "recentStatuses": [ + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -12393,30 +12408,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, + } + ] + }, + "com.codeyam.android.model.CounterThemeTest › testParsesAccentLime": { + "file": "android/app/src/test/java/com/codeyam/android/model/CounterThemeTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ { - "at": "2026-07-26T22:23:45.745116+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", "status": "pass" - } - ] - }, - "com.codeyam.android.model.CounterThemeTest › testParsesAccentLime": { - "file": "android/app/src/test/java/com/codeyam/android/model/CounterThemeTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", - "lastRunKind": "changed", - "lastStatus": "pass", - "recentStatuses": [ + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -12451,30 +12466,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, + } + ] + }, + "com.codeyam.android.model.CounterThemeTest › testParsesBlackAndWhite": { + "file": "android/app/src/test/java/com/codeyam/android/model/CounterThemeTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ { - "at": "2026-07-26T22:23:45.745116+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", "status": "pass" - } - ] - }, - "com.codeyam.android.model.CounterThemeTest › testParsesBlackAndWhite": { - "file": "android/app/src/test/java/com/codeyam/android/model/CounterThemeTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", - "lastRunKind": "changed", - "lastStatus": "pass", - "recentStatuses": [ + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -12509,30 +12524,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, + } + ] + }, + "com.codeyam.android.model.CounterThemeTest › testToleratesLeadingHash": { + "file": "android/app/src/test/java/com/codeyam/android/model/CounterThemeTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ { - "at": "2026-07-26T22:23:45.745116+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", "status": "pass" - } - ] - }, - "com.codeyam.android.model.CounterThemeTest › testToleratesLeadingHash": { - "file": "android/app/src/test/java/com/codeyam/android/model/CounterThemeTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", - "lastRunKind": "changed", - "lastStatus": "pass", - "recentStatuses": [ + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -12567,30 +12582,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, + } + ] + }, + "com.codeyam.android.model.FeedbackTest › testAllDistinctFeelsAreTreatedAsNonOff": { + "file": "android/app/src/test/java/com/codeyam/android/model/FeedbackTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ { - "at": "2026-07-26T22:23:45.745116+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", "status": "pass" - } - ] - }, - "com.codeyam.android.model.FeedbackTest › testAllDistinctFeelsAreTreatedAsNonOff": { - "file": "android/app/src/test/java/com/codeyam/android/model/FeedbackTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", - "lastRunKind": "changed", - "lastStatus": "pass", - "recentStatuses": [ + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -12625,88 +12640,88 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, - { - "at": "2026-07-26T22:23:45.745116+00:00", - "kind": "changed", - "status": "pass" - }, - { - "at": "2026-07-26T22:08:02.789776+00:00", - "kind": "full", - "status": "pass" - }, - { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", - "status": "pass" } ] }, "com.codeyam.android.model.FeedbackTest › testAllOverridesSetReturnsTrue": { "file": "android/app/src/test/java/com/codeyam/android/model/FeedbackTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", "lastRunKind": "changed", "lastStatus": "pass", "recentStatuses": [ { - "at": "2026-08-10T17:45:12.796231+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-08-10T17:39:18.840440+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-08-06T17:19:28.895464+00:00", + "at": "2026-08-11T19:05:13.647187+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-29T11:43:21.762729+00:00", - "kind": "full", + "at": "2026-08-10T17:45:12.796231+00:00", + "kind": "changed", "status": "pass" }, { - "at": "2026-07-28T20:05:00.150174+00:00", + "at": "2026-08-10T17:39:18.840440+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-28T20:04:02.328397+00:00", - "kind": "changed", + "at": "2026-08-06T17:19:28.895464+00:00", + "kind": "full", "status": "pass" }, { - "at": "2026-07-28T16:56:43.018456+00:00", + "at": "2026-07-29T11:43:21.762729+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:23:45.745116+00:00", - "kind": "changed", + "at": "2026-07-28T20:05:00.150174+00:00", + "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", - "kind": "full", + "at": "2026-07-28T20:04:02.328397+00:00", + "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", + "at": "2026-07-28T16:56:43.018456+00:00", + "kind": "full", "status": "pass" } ] }, "com.codeyam.android.model.FeedbackTest › testBlankSlotReturnsFalse": { "file": "android/app/src/test/java/com/codeyam/android/model/FeedbackTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", "lastRunKind": "changed", "lastStatus": "pass", "recentStatuses": [ + { + "at": "2026-08-11T19:50:40.967566+00:00", + "kind": "changed", + "status": "pass" + }, + { + "at": "2026-08-11T19:08:08.447728+00:00", + "kind": "full", + "status": "pass" + }, + { + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", + "status": "pass" + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -12741,30 +12756,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, + } + ] + }, + "com.codeyam.android.model.FeedbackTest › testBothOffFiresNothing": { + "file": "android/app/src/test/java/com/codeyam/android/model/FeedbackTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ { - "at": "2026-07-26T22:23:45.745116+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", "status": "pass" - } - ] - }, - "com.codeyam.android.model.FeedbackTest › testBothOffFiresNothing": { - "file": "android/app/src/test/java/com/codeyam/android/model/FeedbackTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", - "lastRunKind": "changed", - "lastStatus": "pass", - "recentStatuses": [ + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -12799,30 +12814,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, + } + ] + }, + "com.codeyam.android.model.FeedbackTest › testBothOptionsFireBoth": { + "file": "android/app/src/test/java/com/codeyam/android/model/FeedbackTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ { - "at": "2026-07-26T22:23:45.745116+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", "status": "pass" - } - ] - }, - "com.codeyam.android.model.FeedbackTest › testBothOptionsFireBoth": { - "file": "android/app/src/test/java/com/codeyam/android/model/FeedbackTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", - "lastRunKind": "changed", - "lastStatus": "pass", - "recentStatuses": [ + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -12857,30 +12872,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, + } + ] + }, + "com.codeyam.android.model.FeedbackTest › testDecrementHapticOverrideAloneReturnsTrue": { + "file": "android/app/src/test/java/com/codeyam/android/model/FeedbackTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ { - "at": "2026-07-26T22:23:45.745116+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", "status": "pass" - } - ] - }, - "com.codeyam.android.model.FeedbackTest › testDecrementHapticOverrideAloneReturnsTrue": { - "file": "android/app/src/test/java/com/codeyam/android/model/FeedbackTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", - "lastRunKind": "changed", - "lastStatus": "pass", - "recentStatuses": [ + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -12915,30 +12930,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, + } + ] + }, + "com.codeyam.android.model.FeedbackTest › testExplicitOffSoundOverrideReturnsTrue": { + "file": "android/app/src/test/java/com/codeyam/android/model/FeedbackTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ { - "at": "2026-07-26T22:23:45.745116+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", "status": "pass" - } - ] - }, - "com.codeyam.android.model.FeedbackTest › testExplicitOffSoundOverrideReturnsTrue": { - "file": "android/app/src/test/java/com/codeyam/android/model/FeedbackTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", - "lastRunKind": "changed", - "lastStatus": "pass", - "recentStatuses": [ + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -12973,30 +12988,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, + } + ] + }, + "com.codeyam.android.model.FeedbackTest › testHandednessOverrideAloneReturnsTrue": { + "file": "android/app/src/test/java/com/codeyam/android/model/FeedbackTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ { - "at": "2026-07-26T22:23:45.745116+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", "status": "pass" - } - ] - }, - "com.codeyam.android.model.FeedbackTest › testHandednessOverrideAloneReturnsTrue": { - "file": "android/app/src/test/java/com/codeyam/android/model/FeedbackTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", - "lastRunKind": "changed", - "lastStatus": "pass", - "recentStatuses": [ + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -13031,30 +13046,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, + } + ] + }, + "com.codeyam.android.model.FeedbackTest › testHapticOnlyFiresHapticWithFeel": { + "file": "android/app/src/test/java/com/codeyam/android/model/FeedbackTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ { - "at": "2026-07-26T22:23:45.745116+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", "status": "pass" - } - ] - }, - "com.codeyam.android.model.FeedbackTest › testHapticOnlyFiresHapticWithFeel": { - "file": "android/app/src/test/java/com/codeyam/android/model/FeedbackTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", - "lastRunKind": "changed", - "lastStatus": "pass", - "recentStatuses": [ + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -13089,30 +13104,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, + } + ] + }, + "com.codeyam.android.model.FeedbackTest › testIncrementHapticOverrideAloneReturnsTrue": { + "file": "android/app/src/test/java/com/codeyam/android/model/FeedbackTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ { - "at": "2026-07-26T22:23:45.745116+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", "status": "pass" - } - ] - }, - "com.codeyam.android.model.FeedbackTest › testIncrementHapticOverrideAloneReturnsTrue": { - "file": "android/app/src/test/java/com/codeyam/android/model/FeedbackTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", - "lastRunKind": "changed", - "lastStatus": "pass", - "recentStatuses": [ + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -13147,30 +13162,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, + } + ] + }, + "com.codeyam.android.model.FeedbackTest › testNoOverridesReturnsFalse": { + "file": "android/app/src/test/java/com/codeyam/android/model/FeedbackTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ { - "at": "2026-07-26T22:23:45.745116+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", "status": "pass" - } - ] - }, - "com.codeyam.android.model.FeedbackTest › testNoOverridesReturnsFalse": { - "file": "android/app/src/test/java/com/codeyam/android/model/FeedbackTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", - "lastRunKind": "changed", - "lastStatus": "pass", - "recentStatuses": [ + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -13205,30 +13220,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, + } + ] + }, + "com.codeyam.android.model.FeedbackTest › testNoopFeedbackDoesNothing": { + "file": "android/app/src/test/java/com/codeyam/android/model/FeedbackTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ { - "at": "2026-07-26T22:23:45.745116+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", "status": "pass" - } - ] - }, - "com.codeyam.android.model.FeedbackTest › testNoopFeedbackDoesNothing": { - "file": "android/app/src/test/java/com/codeyam/android/model/FeedbackTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", - "lastRunKind": "changed", - "lastStatus": "pass", - "recentStatuses": [ + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -13263,30 +13278,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, + } + ] + }, + "com.codeyam.android.model.FeedbackTest › testSoundOnlyFiresSoundWithChoice": { + "file": "android/app/src/test/java/com/codeyam/android/model/FeedbackTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ { - "at": "2026-07-26T22:23:45.745116+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", "status": "pass" - } - ] - }, - "com.codeyam.android.model.FeedbackTest › testSoundOnlyFiresSoundWithChoice": { - "file": "android/app/src/test/java/com/codeyam/android/model/FeedbackTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", - "lastRunKind": "changed", - "lastStatus": "pass", - "recentStatuses": [ + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -13321,30 +13336,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, + } + ] + }, + "com.codeyam.android.model.FeedbackTest › testSoundOverrideAloneReturnsTrue": { + "file": "android/app/src/test/java/com/codeyam/android/model/FeedbackTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ { - "at": "2026-07-26T22:23:45.745116+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", "status": "pass" - } - ] - }, - "com.codeyam.android.model.FeedbackTest › testSoundOverrideAloneReturnsTrue": { - "file": "android/app/src/test/java/com/codeyam/android/model/FeedbackTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", - "lastRunKind": "changed", - "lastStatus": "pass", - "recentStatuses": [ + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -13379,30 +13394,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, + } + ] + }, + "com.codeyam.android.model.SettingsOverlaysTest › testNoToggleEverLeavesBothOpen": { + "file": "android/app/src/test/java/com/codeyam/android/model/SettingsOverlaysTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ { - "at": "2026-07-26T22:23:45.745116+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", "status": "pass" - } - ] - }, - "com.codeyam.android.model.SettingsOverlaysTest › testNoToggleEverLeavesBothOpen": { - "file": "android/app/src/test/java/com/codeyam/android/model/SettingsOverlaysTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", - "lastRunKind": "changed", - "lastStatus": "pass", - "recentStatuses": [ + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -13437,30 +13452,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, + } + ] + }, + "com.codeyam.android.model.SettingsOverlaysTest › testNothingIsOpenByDefault": { + "file": "android/app/src/test/java/com/codeyam/android/model/SettingsOverlaysTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ { - "at": "2026-07-26T22:23:45.745116+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", "status": "pass" - } - ] - }, - "com.codeyam.android.model.SettingsOverlaysTest › testNothingIsOpenByDefault": { - "file": "android/app/src/test/java/com/codeyam/android/model/SettingsOverlaysTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", - "lastRunKind": "changed", - "lastStatus": "pass", - "recentStatuses": [ + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -13495,30 +13510,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, + } + ] + }, + "com.codeyam.android.model.SettingsOverlaysTest › testOpeningAppSettingsClosesTheCounterPanel": { + "file": "android/app/src/test/java/com/codeyam/android/model/SettingsOverlaysTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ { - "at": "2026-07-26T22:23:45.745116+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", "status": "pass" - } - ] - }, - "com.codeyam.android.model.SettingsOverlaysTest › testOpeningAppSettingsClosesTheCounterPanel": { - "file": "android/app/src/test/java/com/codeyam/android/model/SettingsOverlaysTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", - "lastRunKind": "changed", - "lastStatus": "pass", - "recentStatuses": [ + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -13553,30 +13568,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, + } + ] + }, + "com.codeyam.android.model.SettingsOverlaysTest › testOpeningAppSettingsFromClosedOpensIt": { + "file": "android/app/src/test/java/com/codeyam/android/model/SettingsOverlaysTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ { - "at": "2026-07-26T22:23:45.745116+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", "status": "pass" - } - ] - }, - "com.codeyam.android.model.SettingsOverlaysTest › testOpeningAppSettingsFromClosedOpensIt": { - "file": "android/app/src/test/java/com/codeyam/android/model/SettingsOverlaysTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", - "lastRunKind": "changed", - "lastStatus": "pass", - "recentStatuses": [ + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -13611,30 +13626,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, + } + ] + }, + "com.codeyam.android.model.SettingsOverlaysTest › testOpeningCounterSettingsClosesAppSettings": { + "file": "android/app/src/test/java/com/codeyam/android/model/SettingsOverlaysTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ { - "at": "2026-07-26T22:23:45.745116+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", "status": "pass" - } - ] - }, - "com.codeyam.android.model.SettingsOverlaysTest › testOpeningCounterSettingsClosesAppSettings": { - "file": "android/app/src/test/java/com/codeyam/android/model/SettingsOverlaysTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", - "lastRunKind": "changed", - "lastStatus": "pass", - "recentStatuses": [ + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -13669,30 +13684,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, + } + ] + }, + "com.codeyam.android.model.SettingsOverlaysTest › testOpeningCounterSettingsFromClosedOpensIt": { + "file": "android/app/src/test/java/com/codeyam/android/model/SettingsOverlaysTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ { - "at": "2026-07-26T22:23:45.745116+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", "status": "pass" - } - ] - }, - "com.codeyam.android.model.SettingsOverlaysTest › testOpeningCounterSettingsFromClosedOpensIt": { - "file": "android/app/src/test/java/com/codeyam/android/model/SettingsOverlaysTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", - "lastRunKind": "changed", - "lastStatus": "pass", - "recentStatuses": [ + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -13727,30 +13742,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, + } + ] + }, + "com.codeyam.android.model.SettingsOverlaysTest › testTogglingOpenAppSettingsClosesItAndOpensNothing": { + "file": "android/app/src/test/java/com/codeyam/android/model/SettingsOverlaysTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ { - "at": "2026-07-26T22:23:45.745116+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", "status": "pass" - } - ] - }, - "com.codeyam.android.model.SettingsOverlaysTest › testTogglingOpenAppSettingsClosesItAndOpensNothing": { - "file": "android/app/src/test/java/com/codeyam/android/model/SettingsOverlaysTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", - "lastRunKind": "changed", - "lastStatus": "pass", - "recentStatuses": [ + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -13785,30 +13800,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, + } + ] + }, + "com.codeyam.android.model.SettingsOverlaysTest › testTogglingOpenCounterSettingsClosesItAndOpensNothing": { + "file": "android/app/src/test/java/com/codeyam/android/model/SettingsOverlaysTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ { - "at": "2026-07-26T22:23:45.745116+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", "status": "pass" - } - ] - }, - "com.codeyam.android.model.SettingsOverlaysTest › testTogglingOpenCounterSettingsClosesItAndOpensNothing": { - "file": "android/app/src/test/java/com/codeyam/android/model/SettingsOverlaysTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", - "lastRunKind": "changed", - "lastStatus": "pass", - "recentStatuses": [ + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -13843,30 +13858,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, + } + ] + }, + "com.codeyam.android.ui.AndroidFeedbackTest › testDoubleIsATwoPulseWaveform": { + "file": "android/app/src/test/java/com/codeyam/android/ui/AndroidFeedbackTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ { - "at": "2026-07-26T22:23:45.745116+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", "status": "pass" - } - ] - }, - "com.codeyam.android.ui.AndroidFeedbackTest › testDoubleIsATwoPulseWaveform": { - "file": "android/app/src/test/java/com/codeyam/android/ui/AndroidFeedbackTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", - "lastRunKind": "changed", - "lastStatus": "pass", - "recentStatuses": [ + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -13901,30 +13916,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, + } + ] + }, + "com.codeyam.android.ui.AndroidFeedbackTest › testEveryNonOffHapticMapsToASpec": { + "file": "android/app/src/test/java/com/codeyam/android/ui/AndroidFeedbackTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ { - "at": "2026-07-26T22:23:45.745116+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", "status": "pass" - } - ] - }, - "com.codeyam.android.ui.AndroidFeedbackTest › testEveryNonOffHapticMapsToASpec": { - "file": "android/app/src/test/java/com/codeyam/android/ui/AndroidFeedbackTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", - "lastRunKind": "changed", - "lastStatus": "pass", - "recentStatuses": [ + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -13959,30 +13974,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, + } + ] + }, + "com.codeyam.android.ui.AndroidFeedbackTest › testEveryNonOffSoundMapsToATone": { + "file": "android/app/src/test/java/com/codeyam/android/ui/AndroidFeedbackTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ { - "at": "2026-07-26T22:23:45.745116+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", "status": "pass" - } - ] - }, - "com.codeyam.android.ui.AndroidFeedbackTest › testEveryNonOffSoundMapsToATone": { - "file": "android/app/src/test/java/com/codeyam/android/ui/AndroidFeedbackTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", - "lastRunKind": "changed", - "lastStatus": "pass", - "recentStatuses": [ + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -14017,30 +14032,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, + } + ] + }, + "com.codeyam.android.ui.AndroidFeedbackTest › testHapticOffMapsToNull": { + "file": "android/app/src/test/java/com/codeyam/android/ui/AndroidFeedbackTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ { - "at": "2026-07-26T22:23:45.745116+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", "status": "pass" - } - ] - }, - "com.codeyam.android.ui.AndroidFeedbackTest › testHapticOffMapsToNull": { - "file": "android/app/src/test/java/com/codeyam/android/ui/AndroidFeedbackTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", - "lastRunKind": "changed", - "lastStatus": "pass", - "recentStatuses": [ + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -14075,30 +14090,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, + } + ] + }, + "com.codeyam.android.ui.AndroidFeedbackTest › testNonOffHapticsAreDistinct": { + "file": "android/app/src/test/java/com/codeyam/android/ui/AndroidFeedbackTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ { - "at": "2026-07-26T22:23:45.745116+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", "status": "pass" - } - ] - }, - "com.codeyam.android.ui.AndroidFeedbackTest › testNonOffHapticsAreDistinct": { - "file": "android/app/src/test/java/com/codeyam/android/ui/AndroidFeedbackTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", - "lastRunKind": "changed", - "lastStatus": "pass", - "recentStatuses": [ + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -14133,30 +14148,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, + } + ] + }, + "com.codeyam.android.ui.AndroidFeedbackTest › testNonOffSoundsAreDistinct": { + "file": "android/app/src/test/java/com/codeyam/android/ui/AndroidFeedbackTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ { - "at": "2026-07-26T22:23:45.745116+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", "status": "pass" - } - ] - }, - "com.codeyam.android.ui.AndroidFeedbackTest › testNonOffSoundsAreDistinct": { - "file": "android/app/src/test/java/com/codeyam/android/ui/AndroidFeedbackTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", - "lastRunKind": "changed", - "lastStatus": "pass", - "recentStatuses": [ + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -14191,30 +14206,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, + } + ] + }, + "com.codeyam.android.ui.AndroidFeedbackTest › testSharpAndBuzzUseDefaultAmplitudeButDifferentDurations": { + "file": "android/app/src/test/java/com/codeyam/android/ui/AndroidFeedbackTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ { - "at": "2026-07-26T22:23:45.745116+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", "status": "pass" - } - ] - }, - "com.codeyam.android.ui.AndroidFeedbackTest › testSharpAndBuzzUseDefaultAmplitudeButDifferentDurations": { - "file": "android/app/src/test/java/com/codeyam/android/ui/AndroidFeedbackTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", - "lastRunKind": "changed", - "lastStatus": "pass", - "recentStatuses": [ + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -14249,30 +14264,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, + } + ] + }, + "com.codeyam.android.ui.AndroidFeedbackTest › testSoftUsesReducedAmplitude": { + "file": "android/app/src/test/java/com/codeyam/android/ui/AndroidFeedbackTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ { - "at": "2026-07-26T22:23:45.745116+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", "status": "pass" - } - ] - }, - "com.codeyam.android.ui.AndroidFeedbackTest › testSoftUsesReducedAmplitude": { - "file": "android/app/src/test/java/com/codeyam/android/ui/AndroidFeedbackTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", - "lastRunKind": "changed", - "lastStatus": "pass", - "recentStatuses": [ + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -14307,30 +14322,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, + } + ] + }, + "com.codeyam.android.ui.AndroidFeedbackTest › testSoundOffMapsToNull": { + "file": "android/app/src/test/java/com/codeyam/android/ui/AndroidFeedbackTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ { - "at": "2026-07-26T22:23:45.745116+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", "status": "pass" - } - ] - }, - "com.codeyam.android.ui.AndroidFeedbackTest › testSoundOffMapsToNull": { - "file": "android/app/src/test/java/com/codeyam/android/ui/AndroidFeedbackTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", - "lastRunKind": "changed", - "lastStatus": "pass", - "recentStatuses": [ + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -14365,30 +14380,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, + } + ] + }, + "com.codeyam.android.ui.AndroidFeedbackTest › testSoundSpotCheck": { + "file": "android/app/src/test/java/com/codeyam/android/ui/AndroidFeedbackTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ { - "at": "2026-07-26T22:23:45.745116+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", "status": "pass" - } - ] - }, - "com.codeyam.android.ui.AndroidFeedbackTest › testSoundSpotCheck": { - "file": "android/app/src/test/java/com/codeyam/android/ui/AndroidFeedbackTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", - "lastRunKind": "changed", - "lastStatus": "pass", - "recentStatuses": [ + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -14423,30 +14438,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, + } + ] + }, + "com.codeyam.android.ui.AppSettingsPanelInteractionTest › tappingASoundChipMovesTheSelection": { + "file": "android/app/src/testDebug/java/com/codeyam/android/ui/AppSettingsPanelInteractionTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ { - "at": "2026-07-26T22:23:45.745116+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", "status": "pass" - } - ] - }, - "com.codeyam.android.ui.AppSettingsPanelInteractionTest › tappingASoundChipMovesTheSelection": { - "file": "android/app/src/testDebug/java/com/codeyam/android/ui/AppSettingsPanelInteractionTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", - "lastRunKind": "changed", - "lastStatus": "pass", - "recentStatuses": [ + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -14481,10 +14496,25 @@ }, "com.codeyam.android.ui.AppSettingsPanelInteractionTest › tappingLeftMovesTheHandednessHighlight": { "file": "android/app/src/testDebug/java/com/codeyam/android/ui/AppSettingsPanelInteractionTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", "lastRunKind": "changed", "lastStatus": "pass", "recentStatuses": [ + { + "at": "2026-08-11T19:50:40.967566+00:00", + "kind": "changed", + "status": "pass" + }, + { + "at": "2026-08-11T19:08:08.447728+00:00", + "kind": "full", + "status": "pass" + }, + { + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", + "status": "pass" + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -14519,10 +14549,25 @@ }, "com.codeyam.android.ui.CountFormatTest › deltaCarriesAnExplicitPlusWhenNonNegative": { "file": "android/app/src/test/java/com/codeyam/android/ui/CountFormatTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", "lastRunKind": "changed", "lastStatus": "pass", "recentStatuses": [ + { + "at": "2026-08-11T19:50:40.967566+00:00", + "kind": "changed", + "status": "pass" + }, + { + "at": "2026-08-11T19:08:08.447728+00:00", + "kind": "full", + "status": "pass" + }, + { + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", + "status": "pass" + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -14557,30 +14602,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, + } + ] + }, + "com.codeyam.android.ui.CountFormatTest › deltaLeavesTheMinusSignAsTheOnlyMarkerWhenNegative": { + "file": "android/app/src/test/java/com/codeyam/android/ui/CountFormatTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ { - "at": "2026-07-26T22:23:45.745116+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", "status": "pass" - } - ] - }, - "com.codeyam.android.ui.CountFormatTest › deltaLeavesTheMinusSignAsTheOnlyMarkerWhenNegative": { - "file": "android/app/src/test/java/com/codeyam/android/ui/CountFormatTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", - "lastRunKind": "changed", - "lastStatus": "pass", - "recentStatuses": [ + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -14615,30 +14660,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, + } + ] + }, + "com.codeyam.android.ui.CountFormatTest › fourDigitsAndUpAreGrouped": { + "file": "android/app/src/test/java/com/codeyam/android/ui/CountFormatTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ { - "at": "2026-07-26T22:23:45.745116+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", "status": "pass" - } - ] - }, - "com.codeyam.android.ui.CountFormatTest › fourDigitsAndUpAreGrouped": { - "file": "android/app/src/test/java/com/codeyam/android/ui/CountFormatTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", - "lastRunKind": "changed", - "lastStatus": "pass", - "recentStatuses": [ + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -14673,30 +14718,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, - { - "at": "2026-07-26T22:23:45.745116+00:00", - "kind": "changed", - "status": "pass" - }, - { - "at": "2026-07-26T22:08:02.789776+00:00", - "kind": "full", - "status": "pass" - }, - { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", - "status": "pass" } ] }, "com.codeyam.android.ui.CountFormatTest › negativeCountsKeepTheirSignAndGrouping": { "file": "android/app/src/test/java/com/codeyam/android/ui/CountFormatTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", "lastRunKind": "changed", "lastStatus": "pass", "recentStatuses": [ + { + "at": "2026-08-11T19:50:40.967566+00:00", + "kind": "changed", + "status": "pass" + }, + { + "at": "2026-08-11T19:08:08.447728+00:00", + "kind": "full", + "status": "pass" + }, + { + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", + "status": "pass" + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -14731,30 +14776,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, + } + ] + }, + "com.codeyam.android.ui.CountFormatTest › smallCountsAreUnchanged": { + "file": "android/app/src/test/java/com/codeyam/android/ui/CountFormatTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ { - "at": "2026-07-26T22:23:45.745116+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", "status": "pass" - } - ] - }, - "com.codeyam.android.ui.CountFormatTest › smallCountsAreUnchanged": { - "file": "android/app/src/test/java/com/codeyam/android/ui/CountFormatTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", - "lastRunKind": "changed", - "lastStatus": "pass", - "recentStatuses": [ + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -14789,30 +14834,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, + } + ] + }, + "com.codeyam.android.ui.CountHeroSizingTest › anythingLongerFallsToTheSmallestStep": { + "file": "android/app/src/test/java/com/codeyam/android/ui/CountHeroSizingTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ { - "at": "2026-07-26T22:23:45.745116+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", "status": "pass" - } - ] - }, - "com.codeyam.android.ui.CountHeroSizingTest › anythingLongerFallsToTheSmallestStep": { - "file": "android/app/src/test/java/com/codeyam/android/ui/CountHeroSizingTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", - "lastRunKind": "changed", - "lastStatus": "pass", - "recentStatuses": [ + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -14847,30 +14892,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, + } + ] + }, + "com.codeyam.android.ui.CountHeroSizingTest › groupingSeparatorsCountTowardTheWidth": { + "file": "android/app/src/test/java/com/codeyam/android/ui/CountHeroSizingTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ { - "at": "2026-07-26T22:23:45.745116+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", "status": "pass" - } - ] - }, - "com.codeyam.android.ui.CountHeroSizingTest › groupingSeparatorsCountTowardTheWidth": { - "file": "android/app/src/test/java/com/codeyam/android/ui/CountHeroSizingTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", - "lastRunKind": "changed", - "lastStatus": "pass", - "recentStatuses": [ + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -14905,30 +14950,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, + } + ] + }, + "com.codeyam.android.ui.CountHeroSizingTest › longerNumeralsStepDown": { + "file": "android/app/src/test/java/com/codeyam/android/ui/CountHeroSizingTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ { - "at": "2026-07-26T22:23:45.745116+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", "status": "pass" - } - ] - }, - "com.codeyam.android.ui.CountHeroSizingTest › longerNumeralsStepDown": { - "file": "android/app/src/test/java/com/codeyam/android/ui/CountHeroSizingTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", - "lastRunKind": "changed", - "lastStatus": "pass", - "recentStatuses": [ + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -14963,30 +15008,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, + } + ] + }, + "com.codeyam.android.ui.CountHeroSizingTest › oneAndTwoDigitCountsUseTheFullSize": { + "file": "android/app/src/test/java/com/codeyam/android/ui/CountHeroSizingTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ { - "at": "2026-07-26T22:23:45.745116+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", "status": "pass" - } - ] - }, - "com.codeyam.android.ui.CountHeroSizingTest › oneAndTwoDigitCountsUseTheFullSize": { - "file": "android/app/src/test/java/com/codeyam/android/ui/CountHeroSizingTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", - "lastRunKind": "changed", - "lastStatus": "pass", - "recentStatuses": [ + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -15021,30 +15066,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, + } + ] + }, + "com.codeyam.android.ui.CountHeroSizingTest › sizeNeverIncreasesAsTheNumeralGrows": { + "file": "android/app/src/test/java/com/codeyam/android/ui/CountHeroSizingTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ { - "at": "2026-07-26T22:23:45.745116+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", "status": "pass" - } - ] - }, - "com.codeyam.android.ui.CountHeroSizingTest › sizeNeverIncreasesAsTheNumeralGrows": { - "file": "android/app/src/test/java/com/codeyam/android/ui/CountHeroSizingTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", - "lastRunKind": "changed", - "lastStatus": "pass", - "recentStatuses": [ + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -15079,30 +15124,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, + } + ] + }, + "com.codeyam.android.ui.CountHeroSizingTest › theMinusSignCountsTowardTheWidth": { + "file": "android/app/src/test/java/com/codeyam/android/ui/CountHeroSizingTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ { - "at": "2026-07-26T22:23:45.745116+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", "status": "pass" - } - ] - }, - "com.codeyam.android.ui.CountHeroSizingTest › theMinusSignCountsTowardTheWidth": { - "file": "android/app/src/test/java/com/codeyam/android/ui/CountHeroSizingTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", - "lastRunKind": "changed", - "lastStatus": "pass", - "recentStatuses": [ + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -15137,30 +15182,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, + } + ] + }, + "com.codeyam.android.ui.CountHeroSnapshotTest › countHeroRendersAGroupedFourDigitCount": { + "file": "android/app/src/test/java/com/codeyam/android/ui/CountHeroSnapshotTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ { - "at": "2026-07-26T22:23:45.745116+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", "status": "pass" - } - ] - }, - "com.codeyam.android.ui.CountHeroSnapshotTest › countHeroRendersAGroupedFourDigitCount": { - "file": "android/app/src/test/java/com/codeyam/android/ui/CountHeroSnapshotTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", - "lastRunKind": "changed", - "lastStatus": "pass", - "recentStatuses": [ + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -15190,10 +15235,25 @@ }, "com.codeyam.android.ui.CountHeroSnapshotTest › countHeroRendersATwoDigitCount": { "file": "android/app/src/test/java/com/codeyam/android/ui/CountHeroSnapshotTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", "lastRunKind": "changed", "lastStatus": "pass", "recentStatuses": [ + { + "at": "2026-08-11T19:50:40.967566+00:00", + "kind": "changed", + "status": "pass" + }, + { + "at": "2026-08-11T19:08:08.447728+00:00", + "kind": "full", + "status": "pass" + }, + { + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", + "status": "pass" + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -15221,12 +15281,79 @@ } ] }, + "com.codeyam.android.ui.CounterScreenInsetsTest › theBottomBarIsSizedFromUsableHeightNotTheFullWindow": { + "file": "android/app/src/testDebug/java/com/codeyam/android/ui/CounterScreenInsetsTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ + { + "at": "2026-08-11T19:50:40.967566+00:00", + "kind": "changed", + "status": "pass" + } + ] + }, + "com.codeyam.android.ui.CounterScreenInsetsTest › theBottomControlRowClearsTheBottomInset": { + "file": "android/app/src/testDebug/java/com/codeyam/android/ui/CounterScreenInsetsTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ + { + "at": "2026-08-11T19:50:40.967566+00:00", + "kind": "changed", + "status": "pass" + } + ] + }, + "com.codeyam.android.ui.CounterScreenInsetsTest › theCountHeroClearsTheTopInset": { + "file": "android/app/src/testDebug/java/com/codeyam/android/ui/CounterScreenInsetsTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ + { + "at": "2026-08-11T19:50:40.967566+00:00", + "kind": "changed", + "status": "pass" + } + ] + }, + "com.codeyam.android.ui.CounterScreenInsetsTest › theWindowItselfStaysEdgeToEdge": { + "file": "android/app/src/testDebug/java/com/codeyam/android/ui/CounterScreenInsetsTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ + { + "at": "2026-08-11T19:50:40.967566+00:00", + "kind": "changed", + "status": "pass" + } + ] + }, "com.codeyam.android.ui.CounterScreenStateTest › aPerCounterHandednessOverrideBeatsTheAppDefault": { "file": "android/app/src/test/java/com/codeyam/android/ui/CounterScreenStateTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", "lastRunKind": "changed", "lastStatus": "pass", "recentStatuses": [ + { + "at": "2026-08-11T19:50:40.967566+00:00", + "kind": "changed", + "status": "pass" + }, + { + "at": "2026-08-11T19:08:08.447728+00:00", + "kind": "full", + "status": "pass" + }, + { + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", + "status": "pass" + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -15261,30 +15388,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, + } + ] + }, + "com.codeyam.android.ui.CounterScreenStateTest › addingACounterClosesTheSettingsPanel": { + "file": "android/app/src/test/java/com/codeyam/android/ui/CounterScreenStateTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ { - "at": "2026-07-26T22:23:45.745116+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", "status": "pass" - } - ] - }, - "com.codeyam.android.ui.CounterScreenStateTest › addingACounterClosesTheSettingsPanel": { - "file": "android/app/src/test/java/com/codeyam/android/ui/CounterScreenStateTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", - "lastRunKind": "changed", - "lastStatus": "pass", - "recentStatuses": [ + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -15319,30 +15446,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, + } + ] + }, + "com.codeyam.android.ui.CounterScreenStateTest › closingAPanelLeavesTheOtherClosed": { + "file": "android/app/src/test/java/com/codeyam/android/ui/CounterScreenStateTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ { - "at": "2026-07-26T22:23:45.745116+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", "status": "pass" - } - ] - }, - "com.codeyam.android.ui.CounterScreenStateTest › closingAPanelLeavesTheOtherClosed": { - "file": "android/app/src/test/java/com/codeyam/android/ui/CounterScreenStateTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", - "lastRunKind": "changed", - "lastStatus": "pass", - "recentStatuses": [ + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -15377,30 +15504,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, + } + ] + }, + "com.codeyam.android.ui.CounterScreenStateTest › defaultLeftHandedIsTheAppDefaultNotTheActiveCountersEffectiveValue": { + "file": "android/app/src/test/java/com/codeyam/android/ui/CounterScreenStateTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ { - "at": "2026-07-26T22:23:45.745116+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", "status": "pass" - } - ] - }, - "com.codeyam.android.ui.CounterScreenStateTest › defaultLeftHandedIsTheAppDefaultNotTheActiveCountersEffectiveValue": { - "file": "android/app/src/test/java/com/codeyam/android/ui/CounterScreenStateTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", - "lastRunKind": "changed", - "lastStatus": "pass", - "recentStatuses": [ + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -15435,10 +15562,25 @@ }, "com.codeyam.android.ui.CounterScreenStateTest › feedbackSettersRoundTripThroughTheirGetters": { "file": "android/app/src/test/java/com/codeyam/android/ui/CounterScreenStateTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", "lastRunKind": "changed", "lastStatus": "pass", "recentStatuses": [ + { + "at": "2026-08-11T19:50:40.967566+00:00", + "kind": "changed", + "status": "pass" + }, + { + "at": "2026-08-11T19:08:08.447728+00:00", + "kind": "full", + "status": "pass" + }, + { + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", + "status": "pass" + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -15473,10 +15615,25 @@ }, "com.codeyam.android.ui.CounterScreenStateTest › incrementAndSubtractReachTheActiveCounter": { "file": "android/app/src/test/java/com/codeyam/android/ui/CounterScreenStateTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", "lastRunKind": "changed", "lastStatus": "pass", "recentStatuses": [ + { + "at": "2026-08-11T19:50:40.967566+00:00", + "kind": "changed", + "status": "pass" + }, + { + "at": "2026-08-11T19:08:08.447728+00:00", + "kind": "full", + "status": "pass" + }, + { + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", + "status": "pass" + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -15511,30 +15668,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, + } + ] + }, + "com.codeyam.android.ui.CounterScreenStateTest › leftHandedFollowsTheAppDefaultWithoutAnOverride": { + "file": "android/app/src/test/java/com/codeyam/android/ui/CounterScreenStateTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ { - "at": "2026-07-26T22:23:45.745116+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", - "status": "pass" - } - ] - }, - "com.codeyam.android.ui.CounterScreenStateTest › leftHandedFollowsTheAppDefaultWithoutAnOverride": { - "file": "android/app/src/test/java/com/codeyam/android/ui/CounterScreenStateTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", - "lastRunKind": "changed", - "lastStatus": "pass", - "recentStatuses": [ + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", + "status": "pass" + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -15569,30 +15726,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, + } + ] + }, + "com.codeyam.android.ui.CounterScreenStateTest › openingAppSettingsClosesTheCounterPanel": { + "file": "android/app/src/test/java/com/codeyam/android/ui/CounterScreenStateTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ { - "at": "2026-07-26T22:23:45.745116+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", "status": "pass" - } - ] - }, - "com.codeyam.android.ui.CounterScreenStateTest › openingAppSettingsClosesTheCounterPanel": { - "file": "android/app/src/test/java/com/codeyam/android/ui/CounterScreenStateTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", - "lastRunKind": "changed", - "lastStatus": "pass", - "recentStatuses": [ + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -15627,30 +15784,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, + } + ] + }, + "com.codeyam.android.ui.CounterScreenStateTest › openingTheCounterPanelClosesAppSettings": { + "file": "android/app/src/test/java/com/codeyam/android/ui/CounterScreenStateTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ { - "at": "2026-07-26T22:23:45.745116+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", "status": "pass" - } - ] - }, - "com.codeyam.android.ui.CounterScreenStateTest › openingTheCounterPanelClosesAppSettings": { - "file": "android/app/src/test/java/com/codeyam/android/ui/CounterScreenStateTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", - "lastRunKind": "changed", - "lastStatus": "pass", - "recentStatuses": [ + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -15685,30 +15842,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, + } + ] + }, + "com.codeyam.android.ui.CounterScreenStateTest › overlayFlagsAdoptTheirSeededValues": { + "file": "android/app/src/test/java/com/codeyam/android/ui/CounterScreenStateTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ { - "at": "2026-07-26T22:23:45.745116+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", "status": "pass" - } - ] - }, - "com.codeyam.android.ui.CounterScreenStateTest › overlayFlagsAdoptTheirSeededValues": { - "file": "android/app/src/test/java/com/codeyam/android/ui/CounterScreenStateTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", - "lastRunKind": "changed", - "lastStatus": "pass", - "recentStatuses": [ + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -15743,30 +15900,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, + } + ] + }, + "com.codeyam.android.ui.CounterScreenStateTest › overlayFlagsDefaultClosed": { + "file": "android/app/src/test/java/com/codeyam/android/ui/CounterScreenStateTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ { - "at": "2026-07-26T22:23:45.745116+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", "status": "pass" - } - ] - }, - "com.codeyam.android.ui.CounterScreenStateTest › overlayFlagsDefaultClosed": { - "file": "android/app/src/test/java/com/codeyam/android/ui/CounterScreenStateTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", - "lastRunKind": "changed", - "lastStatus": "pass", - "recentStatuses": [ + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -15801,30 +15958,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, + } + ] + }, + "com.codeyam.android.ui.CounterScreenStateTest › resetOrUndoDispatchesByPendingUndo": { + "file": "android/app/src/test/java/com/codeyam/android/ui/CounterScreenStateTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ { - "at": "2026-07-26T22:23:45.745116+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", "status": "pass" - } - ] - }, - "com.codeyam.android.ui.CounterScreenStateTest › resetOrUndoDispatchesByPendingUndo": { - "file": "android/app/src/test/java/com/codeyam/android/ui/CounterScreenStateTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", - "lastRunKind": "changed", - "lastStatus": "pass", - "recentStatuses": [ + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -15859,30 +16016,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, + } + ] + }, + "com.codeyam.android.ui.CounterScreenStateTest › selectNextAndPreviousMoveThroughTheCounters": { + "file": "android/app/src/test/java/com/codeyam/android/ui/CounterScreenStateTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ { - "at": "2026-07-26T22:23:45.745116+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", "status": "pass" - } - ] - }, - "com.codeyam.android.ui.CounterScreenStateTest › selectNextAndPreviousMoveThroughTheCounters": { - "file": "android/app/src/test/java/com/codeyam/android/ui/CounterScreenStateTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", - "lastRunKind": "changed", - "lastStatus": "pass", - "recentStatuses": [ + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -15917,30 +16074,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, + } + ] + }, + "com.codeyam.android.ui.CounterScreenStateTest › selectingACounterClosesTheSettingsPanel": { + "file": "android/app/src/test/java/com/codeyam/android/ui/CounterScreenStateTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ { - "at": "2026-07-26T22:23:45.745116+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", "status": "pass" - } - ] - }, - "com.codeyam.android.ui.CounterScreenStateTest › selectingACounterClosesTheSettingsPanel": { - "file": "android/app/src/test/java/com/codeyam/android/ui/CounterScreenStateTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", - "lastRunKind": "changed", - "lastStatus": "pass", - "recentStatuses": [ + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -15975,30 +16132,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, + } + ] + }, + "com.codeyam.android.ui.CounterScreenStateTest › selectingFromTheListClosesBothTheListAndAppSettings": { + "file": "android/app/src/test/java/com/codeyam/android/ui/CounterScreenStateTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ { - "at": "2026-07-26T22:23:45.745116+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", "status": "pass" - } - ] - }, - "com.codeyam.android.ui.CounterScreenStateTest › selectingFromTheListClosesBothTheListAndAppSettings": { - "file": "android/app/src/test/java/com/codeyam/android/ui/CounterScreenStateTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", - "lastRunKind": "changed", - "lastStatus": "pass", - "recentStatuses": [ + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -16033,30 +16190,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, + } + ] + }, + "com.codeyam.android.ui.CounterScreenStateTest › setDefaultLeftHandedFlipsTheAppDefaultGetter": { + "file": "android/app/src/test/java/com/codeyam/android/ui/CounterScreenStateTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ { - "at": "2026-07-26T22:23:45.745116+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", "status": "pass" - } - ] - }, - "com.codeyam.android.ui.CounterScreenStateTest › setDefaultLeftHandedFlipsTheAppDefaultGetter": { - "file": "android/app/src/test/java/com/codeyam/android/ui/CounterScreenStateTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", - "lastRunKind": "changed", - "lastStatus": "pass", - "recentStatuses": [ + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -16091,10 +16248,25 @@ }, "com.codeyam.android.ui.GraphGeometryTest › plotDomainAlwaysIncludesZero": { "file": "android/app/src/test/java/com/codeyam/android/ui/GraphGeometryTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", "lastRunKind": "changed", "lastStatus": "pass", "recentStatuses": [ + { + "at": "2026-08-11T19:50:40.967566+00:00", + "kind": "changed", + "status": "pass" + }, + { + "at": "2026-08-11T19:08:08.447728+00:00", + "kind": "full", + "status": "pass" + }, + { + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", + "status": "pass" + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -16129,30 +16301,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, + } + ] + }, + "com.codeyam.android.ui.GraphGeometryTest › plotHandlesAnEmptySeries": { + "file": "android/app/src/test/java/com/codeyam/android/ui/GraphGeometryTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ { - "at": "2026-07-26T22:23:45.745116+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", "status": "pass" - } - ] - }, - "com.codeyam.android.ui.GraphGeometryTest › plotHandlesAnEmptySeries": { - "file": "android/app/src/test/java/com/codeyam/android/ui/GraphGeometryTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", - "lastRunKind": "changed", - "lastStatus": "pass", - "recentStatuses": [ + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -16187,30 +16359,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, + } + ] + }, + "com.codeyam.android.ui.GraphGeometryTest › plotMapsTimeAcrossTheFullWidthAndCountUpwards": { + "file": "android/app/src/test/java/com/codeyam/android/ui/GraphGeometryTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ { - "at": "2026-07-26T22:23:45.745116+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", "status": "pass" - } - ] - }, - "com.codeyam.android.ui.GraphGeometryTest › plotMapsTimeAcrossTheFullWidthAndCountUpwards": { - "file": "android/app/src/test/java/com/codeyam/android/ui/GraphGeometryTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", - "lastRunKind": "changed", - "lastStatus": "pass", - "recentStatuses": [ + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -16245,30 +16417,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, + } + ] + }, + "com.codeyam.android.ui.GraphGeometryTest › plotPutsZeroLineInsideTheRectWhenTheCountWentNegative": { + "file": "android/app/src/test/java/com/codeyam/android/ui/GraphGeometryTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ { - "at": "2026-07-26T22:23:45.745116+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", "status": "pass" - } - ] - }, - "com.codeyam.android.ui.GraphGeometryTest › plotPutsZeroLineInsideTheRectWhenTheCountWentNegative": { - "file": "android/app/src/test/java/com/codeyam/android/ui/GraphGeometryTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", - "lastRunKind": "changed", - "lastStatus": "pass", - "recentStatuses": [ + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -16303,30 +16475,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, + } + ] + }, + "com.codeyam.android.ui.GraphGeometryTest › plotRectClampsToAPositiveSizeWhenTheCanvasIsTiny": { + "file": "android/app/src/test/java/com/codeyam/android/ui/GraphGeometryTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ { - "at": "2026-07-26T22:23:45.745116+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", "status": "pass" - } - ] - }, - "com.codeyam.android.ui.GraphGeometryTest › plotRectClampsToAPositiveSizeWhenTheCanvasIsTiny": { - "file": "android/app/src/test/java/com/codeyam/android/ui/GraphGeometryTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", - "lastRunKind": "changed", - "lastStatus": "pass", - "recentStatuses": [ + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -16361,30 +16533,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, + } + ] + }, + "com.codeyam.android.ui.GraphGeometryTest › plotRectInsetsByTheGutters": { + "file": "android/app/src/test/java/com/codeyam/android/ui/GraphGeometryTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ { - "at": "2026-07-26T22:23:45.745116+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", "status": "pass" - } - ] - }, - "com.codeyam.android.ui.GraphGeometryTest › plotRectInsetsByTheGutters": { - "file": "android/app/src/test/java/com/codeyam/android/ui/GraphGeometryTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", - "lastRunKind": "changed", - "lastStatus": "pass", - "recentStatuses": [ + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -16419,30 +16591,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, + } + ] + }, + "com.codeyam.android.ui.GraphGeometryTest › plotRectScalesGuttersByDensity": { + "file": "android/app/src/test/java/com/codeyam/android/ui/GraphGeometryTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ { - "at": "2026-07-26T22:23:45.745116+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", "status": "pass" - } - ] - }, - "com.codeyam.android.ui.GraphGeometryTest › plotRectScalesGuttersByDensity": { - "file": "android/app/src/test/java/com/codeyam/android/ui/GraphGeometryTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", - "lastRunKind": "changed", - "lastStatus": "pass", - "recentStatuses": [ + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -16477,30 +16649,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, + } + ] + }, + "com.codeyam.android.ui.GraphGeometryTest › plotSurvivesAFlatSeries": { + "file": "android/app/src/test/java/com/codeyam/android/ui/GraphGeometryTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ { - "at": "2026-07-26T22:23:45.745116+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", "status": "pass" - } - ] - }, - "com.codeyam.android.ui.GraphGeometryTest › plotSurvivesAFlatSeries": { - "file": "android/app/src/test/java/com/codeyam/android/ui/GraphGeometryTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", - "lastRunKind": "changed", - "lastStatus": "pass", - "recentStatuses": [ + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -16535,30 +16707,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, + } + ] + }, + "com.codeyam.android.ui.GraphGeometryTest › plotSurvivesASinglePointSeries": { + "file": "android/app/src/test/java/com/codeyam/android/ui/GraphGeometryTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ { - "at": "2026-07-26T22:23:45.745116+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", "status": "pass" - } - ] - }, - "com.codeyam.android.ui.GraphGeometryTest › plotSurvivesASinglePointSeries": { - "file": "android/app/src/test/java/com/codeyam/android/ui/GraphGeometryTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", - "lastRunKind": "changed", - "lastStatus": "pass", - "recentStatuses": [ + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -16593,30 +16765,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, + } + ] + }, + "com.codeyam.android.ui.GraphGeometryTest › relativeTimeFormatsAsMinutesAndSeconds": { + "file": "android/app/src/test/java/com/codeyam/android/ui/GraphGeometryTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ { - "at": "2026-07-26T22:23:45.745116+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", "status": "pass" - } - ] - }, - "com.codeyam.android.ui.GraphGeometryTest › relativeTimeFormatsAsMinutesAndSeconds": { - "file": "android/app/src/test/java/com/codeyam/android/ui/GraphGeometryTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", - "lastRunKind": "changed", - "lastStatus": "pass", - "recentStatuses": [ + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -16651,30 +16823,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, + } + ] + }, + "com.codeyam.android.ui.GraphGeometryTest › relativeTimeGrowsAnHoursFieldPastAnHour": { + "file": "android/app/src/test/java/com/codeyam/android/ui/GraphGeometryTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ { - "at": "2026-07-26T22:23:45.745116+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", "status": "pass" - } - ] - }, - "com.codeyam.android.ui.GraphGeometryTest › relativeTimeGrowsAnHoursFieldPastAnHour": { - "file": "android/app/src/test/java/com/codeyam/android/ui/GraphGeometryTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", - "lastRunKind": "changed", - "lastStatus": "pass", - "recentStatuses": [ + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -16709,30 +16881,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, + } + ] + }, + "com.codeyam.android.ui.GraphGeometryTest › relativeTimeRoundsAndFloorsAtZero": { + "file": "android/app/src/test/java/com/codeyam/android/ui/GraphGeometryTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ { - "at": "2026-07-26T22:23:45.745116+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", "status": "pass" - } - ] - }, - "com.codeyam.android.ui.GraphGeometryTest › relativeTimeRoundsAndFloorsAtZero": { - "file": "android/app/src/test/java/com/codeyam/android/ui/GraphGeometryTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", - "lastRunKind": "changed", - "lastStatus": "pass", - "recentStatuses": [ + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -16767,30 +16939,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, + } + ] + }, + "com.codeyam.android.ui.GraphGeometryTest › stepVerticesHoldThenJump": { + "file": "android/app/src/test/java/com/codeyam/android/ui/GraphGeometryTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ { - "at": "2026-07-26T22:23:45.745116+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", "status": "pass" - } - ] - }, - "com.codeyam.android.ui.GraphGeometryTest › stepVerticesHoldThenJump": { - "file": "android/app/src/test/java/com/codeyam/android/ui/GraphGeometryTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", - "lastRunKind": "changed", - "lastStatus": "pass", - "recentStatuses": [ + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -16825,30 +16997,30 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, + } + ] + }, + "com.codeyam.android.ui.GraphGeometryTest › stepVerticesOfEmptyOrSingleInputAreDegenerate": { + "file": "android/app/src/test/java/com/codeyam/android/ui/GraphGeometryTest.kt", + "lastRunAt": "2026-08-11T19:50:40.967566+00:00", + "lastRunKind": "changed", + "lastStatus": "pass", + "recentStatuses": [ { - "at": "2026-07-26T22:23:45.745116+00:00", + "at": "2026-08-11T19:50:40.967566+00:00", "kind": "changed", "status": "pass" }, { - "at": "2026-07-26T22:08:02.789776+00:00", + "at": "2026-08-11T19:08:08.447728+00:00", "kind": "full", "status": "pass" }, { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", + "at": "2026-08-11T19:05:13.647187+00:00", + "kind": "full", "status": "pass" - } - ] - }, - "com.codeyam.android.ui.GraphGeometryTest › stepVerticesOfEmptyOrSingleInputAreDegenerate": { - "file": "android/app/src/test/java/com/codeyam/android/ui/GraphGeometryTest.kt", - "lastRunAt": "2026-08-10T17:45:12.796231+00:00", - "lastRunKind": "changed", - "lastStatus": "pass", - "recentStatuses": [ + }, { "at": "2026-08-10T17:45:12.796231+00:00", "kind": "changed", @@ -16883,21 +17055,6 @@ "at": "2026-07-28T16:56:43.018456+00:00", "kind": "full", "status": "pass" - }, - { - "at": "2026-07-26T22:23:45.745116+00:00", - "kind": "changed", - "status": "pass" - }, - { - "at": "2026-07-26T22:08:02.789776+00:00", - "kind": "full", - "status": "pass" - }, - { - "at": "2026-07-26T22:07:37.041403+00:00", - "kind": "changed", - "status": "pass" } ] } diff --git a/.codeyam/scenario-handlers.js b/.codeyam/scenario-handlers.js index 6cc3ee8..d5e6857 100644 --- a/.codeyam/scenario-handlers.js +++ b/.codeyam/scenario-handlers.js @@ -1,5 +1,5 @@ // codeyam-generated — DO NOT EDIT. -// codeyam-editor: 0.1.7 source-sha256: 5e85a7c75cde96993adfc92e3bf9a570fd836af9fbb2dbfb2651da661d36d12d +// codeyam-editor: 0.1.7 source-sha256: 40e39b7207a6b9e38a20ea3e7dd8fc56a0dc95abc1fbdf8ae25a575942761e2b const { createIssue } = require("./scenario-issues"); // Known substrings that mean the app refused to initialize because it was loaded @@ -137,6 +137,15 @@ ${webSocketStub} `; } +// Third mirror of SUPPRESSION_PATTERN in ui/src/hooks/useViteHmrAutoReload.ts +// and VITE_WS_NOISE_PATTERN in crates/proxy-http/src/error_capture.js. All +// three surfaces silence the same harness-owned Vite HMR reconnect noise; keep +// in sync. The capture path is the one that was missing it, which made every +// preview-flow / preview-interact against a proxy-wrapped route fail its +// console check on noise the editor itself produces. +const VITE_WS_NOISE_PATTERN = + /vite.*failed to connect to websocket|WebSocket closed without opened/i; + function handleConsoleMessage(message) { if (message.type() !== "error") return null; const text = message.text(); @@ -146,6 +155,14 @@ function handleConsoleMessage(message) { const advisory = insecureContextAdvisory(text); if (advisory) return advisory; + // Vite's reconnect banner ("[vite] failed to connect to websocket." plus the + // `(browser) … <--[WebSocket (failing)]--> … (server)` diagram) contains none + // of the substrings the ignore list below matches, so it fell through and + // vetoed the capture. Matched narrowly — the `vite`-anchored alternative and + // the exact-phrase second alternative both leave a genuine app-authored error + // mentioning websockets surfacing as a real issue. + if (VITE_WS_NOISE_PATTERN.test(text)) return null; + // Ignore known dev-server WebSocket/HMR errors from Vite proxy, plus the // crxjs/Vite dynamic-import reload race: dev loaders `import()` the app entry // with a `?t=` cache-buster, and a rapid scenario-reactivation @@ -221,4 +238,5 @@ module.exports = { insecureContextAdvisory, INSECURE_CONTEXT_SIGNATURES, INSECURE_HOST_ADVISORY_MESSAGE, + VITE_WS_NOISE_PATTERN, }; diff --git a/.codeyam/scenario-playwright.js b/.codeyam/scenario-playwright.js index a43a2eb..8bc7122 100644 --- a/.codeyam/scenario-playwright.js +++ b/.codeyam/scenario-playwright.js @@ -1,5 +1,5 @@ // codeyam-generated — DO NOT EDIT. -// codeyam-editor: 0.1.7 source-sha256: 48342371cbd9448e9b9d1914c27de8f1d32f3aa4561ef4136ea6f04600347faf +// codeyam-editor: 0.1.7 source-sha256: 5138e61a7b2ddc8e4f2d51115e7fa19642220747ac98c985ab3ce176b43dd4a5 const { hasLoadingMarkers, shouldStopWaitingForImages, @@ -148,20 +148,54 @@ function defaultReadServerState() { return JSON.parse(fs.readFileSync(statePath, "utf8")); } -// Resolve the `localhost` origin that serves the iframe-harness route. The -// harness is mounted on the editor's control-api listener, whose port is -// recorded in `.codeyam/server-state.json` as `controlPort` (the same file the -// top-level loader already reads for `appPort`). Returns -// `http://localhost:` — a secure context the nested iframe -// inherits — or null when the state file is missing/unreadable, in which case -// the caller falls back to the legacy in-page `setContent` harness. -// `readStateFile` is injectable so the resolver is unit-testable without disk. -function resolveHarnessOrigin({ readStateFile = defaultReadServerState } = {}) { +// Resolve the loopback origin that serves the iframe-harness route. The harness +// is mounted on the editor's control-api listener, whose port is recorded in +// `.codeyam/server-state.json` as `controlPort` (the same file the top-level +// loader already reads for `appPort`). Returns `http://127.0.0.1:` +// — a secure context the nested iframe inherits, exactly as `localhost` is — or +// null when the state file is missing/unreadable, in which case the caller falls +// back to the legacy in-page `setContent` harness. `readStateFile` is injectable +// so the resolver is unit-testable without disk. +// +// The HOST is taken from `targetUrl` — the URL the iframe will load — and only +// the port comes from server-state. That mirroring is load-bearing, because the +// two capture modes address the editor by different loopback spellings: +// `/__codeyam_preview` captures are pinned to `127.0.0.1` (PROXY_CAPTURE_LOOPBACK +// in handlers.rs, matching the forwarder's own pinning) while direct app-port +// captures use `localhost`. `localhost` and `127.0.0.1` are DIFFERENT sites to +// the cookie jar, so whenever the harness host and the iframe host disagree the +// nested load is cross-site — and the `cy_session` cookie is `SameSite=Lax`, +// which rides top-level navigations only. It is therefore withheld from the +// iframe request (and from the `/api/*` calls the framed page makes), and the +// token-gated routes answer 401 on a non-loopback bind. +// +// Hardcoding EITHER spelling only moves the failure between the two modes: +// `localhost` 401s every `/__codeyam_preview` capture, `127.0.0.1` 401s the +// framed page's own `/api/scenarios` + `/api/render-environment` calls. Raising +// the cookie to `SameSite=None` fixes neither — Chromium rejects `None` without +// `Secure`, and these origins are plain http. Mirroring the target's host is what +// keeps the harness same-site in both modes, which is also the same-origin model +// the `/__codeyam_preview` subpath proxy exists to provide. +// +// `targetUrl` omitted or unparseable falls back to `127.0.0.1`, the spelling the +// proxy-route capture (the token-gated one) uses. +function resolveHarnessOrigin({ + readStateFile = defaultReadServerState, + targetUrl = null, +} = {}) { try { const state = readStateFile(); const port = state && state.controlPort; if (typeof port === "number" && port > 0) { - return `http://localhost:${port}`; + let host = "127.0.0.1"; + if (targetUrl) { + try { + host = new URL(targetUrl).hostname || host; + } catch (_) { + /* unparseable target — keep the proxy-route default */ + } + } + return `http://${host}:${port}`; } } catch (_) { /* missing/unreadable state — fall back to setContent */ diff --git a/.codeyam/scenarios/screenshots/.capture-pipeline.json b/.codeyam/scenarios/screenshots/.capture-pipeline.json index ece14da..d159f14 100644 --- a/.codeyam/scenarios/screenshots/.capture-pipeline.json +++ b/.codeyam/scenarios/screenshots/.capture-pipeline.json @@ -1,31 +1,31 @@ { "addcounterdot-default": "6e381273fe82d7f809da7237f0a8d22df192eda6ec89ca1ef3f384ab9c0ebcbf", - "android-counter-active-count": "6e381273fe82d7f809da7237f0a8d22df192eda6ec89ca1ef3f384ab9c0ebcbf", - "android-counter-added-blank-slot-selected": "6e381273fe82d7f809da7237f0a8d22df192eda6ec89ca1ef3f384ab9c0ebcbf", - "android-counter-all-but-one-deleted": "6e381273fe82d7f809da7237f0a8d22df192eda6ec89ca1ef3f384ab9c0ebcbf", - "android-counter-all-counters-list": "6e381273fe82d7f809da7237f0a8d22df192eda6ec89ca1ef3f384ab9c0ebcbf", - "android-counter-all-counters-list-with-blank-slot": "6e381273fe82d7f809da7237f0a8d22df192eda6ec89ca1ef3f384ab9c0ebcbf", - "android-counter-app-settings-open": "6e381273fe82d7f809da7237f0a8d22df192eda6ec89ca1ef3f384ab9c0ebcbf", - "android-counter-app-settings-sound-and-haptic-on": "6e381273fe82d7f809da7237f0a8d22df192eda6ec89ca1ef3f384ab9c0ebcbf", - "android-counter-blank-slot-incremented": "6e381273fe82d7f809da7237f0a8d22df192eda6ec89ca1ef3f384ab9c0ebcbf", - "android-counter-counter-settings-open": "6e381273fe82d7f809da7237f0a8d22df192eda6ec89ca1ef3f384ab9c0ebcbf", - "android-counter-deleted-default-ghost-slot": "6e381273fe82d7f809da7237f0a8d22df192eda6ec89ca1ef3f384ab9c0ebcbf", - "android-counter-fifth-counter-before-delete": "6e381273fe82d7f809da7237f0a8d22df192eda6ec89ca1ef3f384ab9c0ebcbf", - "android-counter-fifth-counter-deleted": "6e381273fe82d7f809da7237f0a8d22df192eda6ec89ca1ef3f384ab9c0ebcbf", - "android-counter-fresh-install-default": "6e381273fe82d7f809da7237f0a8d22df192eda6ec89ca1ef3f384ab9c0ebcbf", - "android-counter-fresh-start": "6e381273fe82d7f809da7237f0a8d22df192eda6ec89ca1ef3f384ab9c0ebcbf", - "android-counter-graph-open": "6e381273fe82d7f809da7237f0a8d22df192eda6ec89ca1ef3f384ab9c0ebcbf", - "android-counter-graph-open-empty-history": "6e381273fe82d7f809da7237f0a8d22df192eda6ec89ca1ef3f384ab9c0ebcbf", - "android-counter-graph-open-left-handed": "6e381273fe82d7f809da7237f0a8d22df192eda6ec89ca1ef3f384ab9c0ebcbf", - "android-counter-large-value": "6e381273fe82d7f809da7237f0a8d22df192eda6ec89ca1ef3f384ab9c0ebcbf", - "android-counter-left-handed-layout": "6e381273fe82d7f809da7237f0a8d22df192eda6ec89ca1ef3f384ab9c0ebcbf", - "android-counter-left-override-active-counter": "6e381273fe82d7f809da7237f0a8d22df192eda6ec89ca1ef3f384ab9c0ebcbf", - "android-counter-long-name": "6e381273fe82d7f809da7237f0a8d22df192eda6ec89ca1ef3f384ab9c0ebcbf", - "android-counter-negative-value": "6e381273fe82d7f809da7237f0a8d22df192eda6ec89ca1ef3f384ab9c0ebcbf", - "android-counter-settings-count-by-5": "6e381273fe82d7f809da7237f0a8d22df192eda6ec89ca1ef3f384ab9c0ebcbf", - "android-counter-settings-expanded-with-overrides": "6e381273fe82d7f809da7237f0a8d22df192eda6ec89ca1ef3f384ab9c0ebcbf", - "android-counter-twenty-counters": "6e381273fe82d7f809da7237f0a8d22df192eda6ec89ca1ef3f384ab9c0ebcbf", - "android-counter-undo-reset-available": "6e381273fe82d7f809da7237f0a8d22df192eda6ec89ca1ef3f384ab9c0ebcbf", + "android-counter-active-count": "0f2d49a4552712ed4c55bc85f16e6b96012c140a3dd6b85803f8aa10bd1684c8", + "android-counter-added-blank-slot-selected": "0f2d49a4552712ed4c55bc85f16e6b96012c140a3dd6b85803f8aa10bd1684c8", + "android-counter-all-but-one-deleted": "0f2d49a4552712ed4c55bc85f16e6b96012c140a3dd6b85803f8aa10bd1684c8", + "android-counter-all-counters-list": "0f2d49a4552712ed4c55bc85f16e6b96012c140a3dd6b85803f8aa10bd1684c8", + "android-counter-all-counters-list-with-blank-slot": "0f2d49a4552712ed4c55bc85f16e6b96012c140a3dd6b85803f8aa10bd1684c8", + "android-counter-app-settings-open": "0f2d49a4552712ed4c55bc85f16e6b96012c140a3dd6b85803f8aa10bd1684c8", + "android-counter-app-settings-sound-and-haptic-on": "0f2d49a4552712ed4c55bc85f16e6b96012c140a3dd6b85803f8aa10bd1684c8", + "android-counter-blank-slot-incremented": "0f2d49a4552712ed4c55bc85f16e6b96012c140a3dd6b85803f8aa10bd1684c8", + "android-counter-counter-settings-open": "0f2d49a4552712ed4c55bc85f16e6b96012c140a3dd6b85803f8aa10bd1684c8", + "android-counter-deleted-default-ghost-slot": "0f2d49a4552712ed4c55bc85f16e6b96012c140a3dd6b85803f8aa10bd1684c8", + "android-counter-fifth-counter-before-delete": "0f2d49a4552712ed4c55bc85f16e6b96012c140a3dd6b85803f8aa10bd1684c8", + "android-counter-fifth-counter-deleted": "0f2d49a4552712ed4c55bc85f16e6b96012c140a3dd6b85803f8aa10bd1684c8", + "android-counter-fresh-install-default": "0f2d49a4552712ed4c55bc85f16e6b96012c140a3dd6b85803f8aa10bd1684c8", + "android-counter-fresh-start": "0f2d49a4552712ed4c55bc85f16e6b96012c140a3dd6b85803f8aa10bd1684c8", + "android-counter-graph-open": "0f2d49a4552712ed4c55bc85f16e6b96012c140a3dd6b85803f8aa10bd1684c8", + "android-counter-graph-open-empty-history": "0f2d49a4552712ed4c55bc85f16e6b96012c140a3dd6b85803f8aa10bd1684c8", + "android-counter-graph-open-left-handed": "0f2d49a4552712ed4c55bc85f16e6b96012c140a3dd6b85803f8aa10bd1684c8", + "android-counter-large-value": "0f2d49a4552712ed4c55bc85f16e6b96012c140a3dd6b85803f8aa10bd1684c8", + "android-counter-left-handed-layout": "0f2d49a4552712ed4c55bc85f16e6b96012c140a3dd6b85803f8aa10bd1684c8", + "android-counter-left-override-active-counter": "0f2d49a4552712ed4c55bc85f16e6b96012c140a3dd6b85803f8aa10bd1684c8", + "android-counter-long-name": "0f2d49a4552712ed4c55bc85f16e6b96012c140a3dd6b85803f8aa10bd1684c8", + "android-counter-negative-value": "0f2d49a4552712ed4c55bc85f16e6b96012c140a3dd6b85803f8aa10bd1684c8", + "android-counter-settings-count-by-5": "0f2d49a4552712ed4c55bc85f16e6b96012c140a3dd6b85803f8aa10bd1684c8", + "android-counter-settings-expanded-with-overrides": "0f2d49a4552712ed4c55bc85f16e6b96012c140a3dd6b85803f8aa10bd1684c8", + "android-counter-twenty-counters": "0f2d49a4552712ed4c55bc85f16e6b96012c140a3dd6b85803f8aa10bd1684c8", + "android-counter-undo-reset-available": "0f2d49a4552712ed4c55bc85f16e6b96012c140a3dd6b85803f8aa10bd1684c8", "android-counthero-probe": "6e381273fe82d7f809da7237f0a8d22df192eda6ec89ca1ef3f384ab9c0ebcbf", "appsettingspanel-both-haptics-off": "6e381273fe82d7f809da7237f0a8d22df192eda6ec89ca1ef3f384ab9c0ebcbf", "appsettingspanel-custom-distinct-pairing": "6e381273fe82d7f809da7237f0a8d22df192eda6ec89ca1ef3f384ab9c0ebcbf", diff --git a/.codeyam/scenarios/screenshots/android-counter-active-count--phone-portrait.png b/.codeyam/scenarios/screenshots/android-counter-active-count--phone-portrait.png index 6693fc2..35f9e99 100644 Binary files a/.codeyam/scenarios/screenshots/android-counter-active-count--phone-portrait.png and b/.codeyam/scenarios/screenshots/android-counter-active-count--phone-portrait.png differ diff --git a/.codeyam/scenarios/screenshots/android-counter-active-count--phone-portrait.png.hash b/.codeyam/scenarios/screenshots/android-counter-active-count--phone-portrait.png.hash index ae422b9..bb138f1 100644 --- a/.codeyam/scenarios/screenshots/android-counter-active-count--phone-portrait.png.hash +++ b/.codeyam/scenarios/screenshots/android-counter-active-count--phone-portrait.png.hash @@ -1 +1 @@ -{"renderInputHash":"sha256/32:64a3009a3d36fce17502169fb807553e","scenarioDefinitionHash":"sha256/32:b2adf1dd4da4d15d92921b55577f03bc"} \ No newline at end of file +{"renderInputHash":"sha256/32:f09d5593916e0d25d8c5ffacdd511fe5","scenarioDefinitionHash":"sha256/32:b2adf1dd4da4d15d92921b55577f03bc"} \ No newline at end of file diff --git a/.codeyam/scenarios/screenshots/android-counter-added-blank-slot-selected--phone-portrait.png b/.codeyam/scenarios/screenshots/android-counter-added-blank-slot-selected--phone-portrait.png index 83b294d..8df16c6 100644 Binary files a/.codeyam/scenarios/screenshots/android-counter-added-blank-slot-selected--phone-portrait.png and b/.codeyam/scenarios/screenshots/android-counter-added-blank-slot-selected--phone-portrait.png differ diff --git a/.codeyam/scenarios/screenshots/android-counter-added-blank-slot-selected--phone-portrait.png.hash b/.codeyam/scenarios/screenshots/android-counter-added-blank-slot-selected--phone-portrait.png.hash index ae422b9..bb138f1 100644 --- a/.codeyam/scenarios/screenshots/android-counter-added-blank-slot-selected--phone-portrait.png.hash +++ b/.codeyam/scenarios/screenshots/android-counter-added-blank-slot-selected--phone-portrait.png.hash @@ -1 +1 @@ -{"renderInputHash":"sha256/32:64a3009a3d36fce17502169fb807553e","scenarioDefinitionHash":"sha256/32:b2adf1dd4da4d15d92921b55577f03bc"} \ No newline at end of file +{"renderInputHash":"sha256/32:f09d5593916e0d25d8c5ffacdd511fe5","scenarioDefinitionHash":"sha256/32:b2adf1dd4da4d15d92921b55577f03bc"} \ No newline at end of file diff --git a/.codeyam/scenarios/screenshots/android-counter-all-but-one-deleted--phone-portrait.png b/.codeyam/scenarios/screenshots/android-counter-all-but-one-deleted--phone-portrait.png index b2e9aa1..32019e5 100644 Binary files a/.codeyam/scenarios/screenshots/android-counter-all-but-one-deleted--phone-portrait.png and b/.codeyam/scenarios/screenshots/android-counter-all-but-one-deleted--phone-portrait.png differ diff --git a/.codeyam/scenarios/screenshots/android-counter-all-but-one-deleted--phone-portrait.png.hash b/.codeyam/scenarios/screenshots/android-counter-all-but-one-deleted--phone-portrait.png.hash index ae422b9..bb138f1 100644 --- a/.codeyam/scenarios/screenshots/android-counter-all-but-one-deleted--phone-portrait.png.hash +++ b/.codeyam/scenarios/screenshots/android-counter-all-but-one-deleted--phone-portrait.png.hash @@ -1 +1 @@ -{"renderInputHash":"sha256/32:64a3009a3d36fce17502169fb807553e","scenarioDefinitionHash":"sha256/32:b2adf1dd4da4d15d92921b55577f03bc"} \ No newline at end of file +{"renderInputHash":"sha256/32:f09d5593916e0d25d8c5ffacdd511fe5","scenarioDefinitionHash":"sha256/32:b2adf1dd4da4d15d92921b55577f03bc"} \ No newline at end of file diff --git a/.codeyam/scenarios/screenshots/android-counter-all-counters-list--phone-portrait.png b/.codeyam/scenarios/screenshots/android-counter-all-counters-list--phone-portrait.png index 56c9467..a2ec395 100644 Binary files a/.codeyam/scenarios/screenshots/android-counter-all-counters-list--phone-portrait.png and b/.codeyam/scenarios/screenshots/android-counter-all-counters-list--phone-portrait.png differ diff --git a/.codeyam/scenarios/screenshots/android-counter-all-counters-list--phone-portrait.png.hash b/.codeyam/scenarios/screenshots/android-counter-all-counters-list--phone-portrait.png.hash index ae422b9..bb138f1 100644 --- a/.codeyam/scenarios/screenshots/android-counter-all-counters-list--phone-portrait.png.hash +++ b/.codeyam/scenarios/screenshots/android-counter-all-counters-list--phone-portrait.png.hash @@ -1 +1 @@ -{"renderInputHash":"sha256/32:64a3009a3d36fce17502169fb807553e","scenarioDefinitionHash":"sha256/32:b2adf1dd4da4d15d92921b55577f03bc"} \ No newline at end of file +{"renderInputHash":"sha256/32:f09d5593916e0d25d8c5ffacdd511fe5","scenarioDefinitionHash":"sha256/32:b2adf1dd4da4d15d92921b55577f03bc"} \ No newline at end of file diff --git a/.codeyam/scenarios/screenshots/android-counter-all-counters-list-with-blank-slot--phone-portrait.png b/.codeyam/scenarios/screenshots/android-counter-all-counters-list-with-blank-slot--phone-portrait.png index 61995ac..5093606 100644 Binary files a/.codeyam/scenarios/screenshots/android-counter-all-counters-list-with-blank-slot--phone-portrait.png and b/.codeyam/scenarios/screenshots/android-counter-all-counters-list-with-blank-slot--phone-portrait.png differ diff --git a/.codeyam/scenarios/screenshots/android-counter-all-counters-list-with-blank-slot--phone-portrait.png.hash b/.codeyam/scenarios/screenshots/android-counter-all-counters-list-with-blank-slot--phone-portrait.png.hash index ae422b9..bb138f1 100644 --- a/.codeyam/scenarios/screenshots/android-counter-all-counters-list-with-blank-slot--phone-portrait.png.hash +++ b/.codeyam/scenarios/screenshots/android-counter-all-counters-list-with-blank-slot--phone-portrait.png.hash @@ -1 +1 @@ -{"renderInputHash":"sha256/32:64a3009a3d36fce17502169fb807553e","scenarioDefinitionHash":"sha256/32:b2adf1dd4da4d15d92921b55577f03bc"} \ No newline at end of file +{"renderInputHash":"sha256/32:f09d5593916e0d25d8c5ffacdd511fe5","scenarioDefinitionHash":"sha256/32:b2adf1dd4da4d15d92921b55577f03bc"} \ No newline at end of file diff --git a/.codeyam/scenarios/screenshots/android-counter-app-settings-open--phone-portrait.png b/.codeyam/scenarios/screenshots/android-counter-app-settings-open--phone-portrait.png index 56bc30b..acf5dd6 100644 Binary files a/.codeyam/scenarios/screenshots/android-counter-app-settings-open--phone-portrait.png and b/.codeyam/scenarios/screenshots/android-counter-app-settings-open--phone-portrait.png differ diff --git a/.codeyam/scenarios/screenshots/android-counter-app-settings-open--phone-portrait.png.hash b/.codeyam/scenarios/screenshots/android-counter-app-settings-open--phone-portrait.png.hash index ae422b9..bb138f1 100644 --- a/.codeyam/scenarios/screenshots/android-counter-app-settings-open--phone-portrait.png.hash +++ b/.codeyam/scenarios/screenshots/android-counter-app-settings-open--phone-portrait.png.hash @@ -1 +1 @@ -{"renderInputHash":"sha256/32:64a3009a3d36fce17502169fb807553e","scenarioDefinitionHash":"sha256/32:b2adf1dd4da4d15d92921b55577f03bc"} \ No newline at end of file +{"renderInputHash":"sha256/32:f09d5593916e0d25d8c5ffacdd511fe5","scenarioDefinitionHash":"sha256/32:b2adf1dd4da4d15d92921b55577f03bc"} \ No newline at end of file diff --git a/.codeyam/scenarios/screenshots/android-counter-app-settings-sound-and-haptic-on--phone-portrait.png b/.codeyam/scenarios/screenshots/android-counter-app-settings-sound-and-haptic-on--phone-portrait.png index ec6cff5..5c34882 100644 Binary files a/.codeyam/scenarios/screenshots/android-counter-app-settings-sound-and-haptic-on--phone-portrait.png and b/.codeyam/scenarios/screenshots/android-counter-app-settings-sound-and-haptic-on--phone-portrait.png differ diff --git a/.codeyam/scenarios/screenshots/android-counter-app-settings-sound-and-haptic-on--phone-portrait.png.hash b/.codeyam/scenarios/screenshots/android-counter-app-settings-sound-and-haptic-on--phone-portrait.png.hash index ae422b9..bb138f1 100644 --- a/.codeyam/scenarios/screenshots/android-counter-app-settings-sound-and-haptic-on--phone-portrait.png.hash +++ b/.codeyam/scenarios/screenshots/android-counter-app-settings-sound-and-haptic-on--phone-portrait.png.hash @@ -1 +1 @@ -{"renderInputHash":"sha256/32:64a3009a3d36fce17502169fb807553e","scenarioDefinitionHash":"sha256/32:b2adf1dd4da4d15d92921b55577f03bc"} \ No newline at end of file +{"renderInputHash":"sha256/32:f09d5593916e0d25d8c5ffacdd511fe5","scenarioDefinitionHash":"sha256/32:b2adf1dd4da4d15d92921b55577f03bc"} \ No newline at end of file diff --git a/.codeyam/scenarios/screenshots/android-counter-blank-slot-incremented--phone-portrait.png b/.codeyam/scenarios/screenshots/android-counter-blank-slot-incremented--phone-portrait.png index 529f082..6bf8fd1 100644 Binary files a/.codeyam/scenarios/screenshots/android-counter-blank-slot-incremented--phone-portrait.png and b/.codeyam/scenarios/screenshots/android-counter-blank-slot-incremented--phone-portrait.png differ diff --git a/.codeyam/scenarios/screenshots/android-counter-blank-slot-incremented--phone-portrait.png.hash b/.codeyam/scenarios/screenshots/android-counter-blank-slot-incremented--phone-portrait.png.hash index ae422b9..bb138f1 100644 --- a/.codeyam/scenarios/screenshots/android-counter-blank-slot-incremented--phone-portrait.png.hash +++ b/.codeyam/scenarios/screenshots/android-counter-blank-slot-incremented--phone-portrait.png.hash @@ -1 +1 @@ -{"renderInputHash":"sha256/32:64a3009a3d36fce17502169fb807553e","scenarioDefinitionHash":"sha256/32:b2adf1dd4da4d15d92921b55577f03bc"} \ No newline at end of file +{"renderInputHash":"sha256/32:f09d5593916e0d25d8c5ffacdd511fe5","scenarioDefinitionHash":"sha256/32:b2adf1dd4da4d15d92921b55577f03bc"} \ No newline at end of file diff --git a/.codeyam/scenarios/screenshots/android-counter-counter-settings-open--phone-portrait.png b/.codeyam/scenarios/screenshots/android-counter-counter-settings-open--phone-portrait.png index 21632cb..32d72df 100644 Binary files a/.codeyam/scenarios/screenshots/android-counter-counter-settings-open--phone-portrait.png and b/.codeyam/scenarios/screenshots/android-counter-counter-settings-open--phone-portrait.png differ diff --git a/.codeyam/scenarios/screenshots/android-counter-counter-settings-open--phone-portrait.png.hash b/.codeyam/scenarios/screenshots/android-counter-counter-settings-open--phone-portrait.png.hash index ae422b9..bb138f1 100644 --- a/.codeyam/scenarios/screenshots/android-counter-counter-settings-open--phone-portrait.png.hash +++ b/.codeyam/scenarios/screenshots/android-counter-counter-settings-open--phone-portrait.png.hash @@ -1 +1 @@ -{"renderInputHash":"sha256/32:64a3009a3d36fce17502169fb807553e","scenarioDefinitionHash":"sha256/32:b2adf1dd4da4d15d92921b55577f03bc"} \ No newline at end of file +{"renderInputHash":"sha256/32:f09d5593916e0d25d8c5ffacdd511fe5","scenarioDefinitionHash":"sha256/32:b2adf1dd4da4d15d92921b55577f03bc"} \ No newline at end of file diff --git a/.codeyam/scenarios/screenshots/android-counter-deleted-default-ghost-slot--phone-portrait.png b/.codeyam/scenarios/screenshots/android-counter-deleted-default-ghost-slot--phone-portrait.png index 826b75b..f9c4601 100644 Binary files a/.codeyam/scenarios/screenshots/android-counter-deleted-default-ghost-slot--phone-portrait.png and b/.codeyam/scenarios/screenshots/android-counter-deleted-default-ghost-slot--phone-portrait.png differ diff --git a/.codeyam/scenarios/screenshots/android-counter-deleted-default-ghost-slot--phone-portrait.png.hash b/.codeyam/scenarios/screenshots/android-counter-deleted-default-ghost-slot--phone-portrait.png.hash index ae422b9..bb138f1 100644 --- a/.codeyam/scenarios/screenshots/android-counter-deleted-default-ghost-slot--phone-portrait.png.hash +++ b/.codeyam/scenarios/screenshots/android-counter-deleted-default-ghost-slot--phone-portrait.png.hash @@ -1 +1 @@ -{"renderInputHash":"sha256/32:64a3009a3d36fce17502169fb807553e","scenarioDefinitionHash":"sha256/32:b2adf1dd4da4d15d92921b55577f03bc"} \ No newline at end of file +{"renderInputHash":"sha256/32:f09d5593916e0d25d8c5ffacdd511fe5","scenarioDefinitionHash":"sha256/32:b2adf1dd4da4d15d92921b55577f03bc"} \ No newline at end of file diff --git a/.codeyam/scenarios/screenshots/android-counter-fifth-counter-before-delete--phone-portrait.png b/.codeyam/scenarios/screenshots/android-counter-fifth-counter-before-delete--phone-portrait.png index a28961c..0f45d93 100644 Binary files a/.codeyam/scenarios/screenshots/android-counter-fifth-counter-before-delete--phone-portrait.png and b/.codeyam/scenarios/screenshots/android-counter-fifth-counter-before-delete--phone-portrait.png differ diff --git a/.codeyam/scenarios/screenshots/android-counter-fifth-counter-before-delete--phone-portrait.png.hash b/.codeyam/scenarios/screenshots/android-counter-fifth-counter-before-delete--phone-portrait.png.hash index ae422b9..bb138f1 100644 --- a/.codeyam/scenarios/screenshots/android-counter-fifth-counter-before-delete--phone-portrait.png.hash +++ b/.codeyam/scenarios/screenshots/android-counter-fifth-counter-before-delete--phone-portrait.png.hash @@ -1 +1 @@ -{"renderInputHash":"sha256/32:64a3009a3d36fce17502169fb807553e","scenarioDefinitionHash":"sha256/32:b2adf1dd4da4d15d92921b55577f03bc"} \ No newline at end of file +{"renderInputHash":"sha256/32:f09d5593916e0d25d8c5ffacdd511fe5","scenarioDefinitionHash":"sha256/32:b2adf1dd4da4d15d92921b55577f03bc"} \ No newline at end of file diff --git a/.codeyam/scenarios/screenshots/android-counter-fifth-counter-deleted--phone-portrait.png b/.codeyam/scenarios/screenshots/android-counter-fifth-counter-deleted--phone-portrait.png index a8658eb..30beba5 100644 Binary files a/.codeyam/scenarios/screenshots/android-counter-fifth-counter-deleted--phone-portrait.png and b/.codeyam/scenarios/screenshots/android-counter-fifth-counter-deleted--phone-portrait.png differ diff --git a/.codeyam/scenarios/screenshots/android-counter-fifth-counter-deleted--phone-portrait.png.hash b/.codeyam/scenarios/screenshots/android-counter-fifth-counter-deleted--phone-portrait.png.hash index ae422b9..bb138f1 100644 --- a/.codeyam/scenarios/screenshots/android-counter-fifth-counter-deleted--phone-portrait.png.hash +++ b/.codeyam/scenarios/screenshots/android-counter-fifth-counter-deleted--phone-portrait.png.hash @@ -1 +1 @@ -{"renderInputHash":"sha256/32:64a3009a3d36fce17502169fb807553e","scenarioDefinitionHash":"sha256/32:b2adf1dd4da4d15d92921b55577f03bc"} \ No newline at end of file +{"renderInputHash":"sha256/32:f09d5593916e0d25d8c5ffacdd511fe5","scenarioDefinitionHash":"sha256/32:b2adf1dd4da4d15d92921b55577f03bc"} \ No newline at end of file diff --git a/.codeyam/scenarios/screenshots/android-counter-fresh-install-default--phone-portrait.png b/.codeyam/scenarios/screenshots/android-counter-fresh-install-default--phone-portrait.png index b706edd..5a491e6 100644 Binary files a/.codeyam/scenarios/screenshots/android-counter-fresh-install-default--phone-portrait.png and b/.codeyam/scenarios/screenshots/android-counter-fresh-install-default--phone-portrait.png differ diff --git a/.codeyam/scenarios/screenshots/android-counter-fresh-install-default--phone-portrait.png.hash b/.codeyam/scenarios/screenshots/android-counter-fresh-install-default--phone-portrait.png.hash index ae422b9..bb138f1 100644 --- a/.codeyam/scenarios/screenshots/android-counter-fresh-install-default--phone-portrait.png.hash +++ b/.codeyam/scenarios/screenshots/android-counter-fresh-install-default--phone-portrait.png.hash @@ -1 +1 @@ -{"renderInputHash":"sha256/32:64a3009a3d36fce17502169fb807553e","scenarioDefinitionHash":"sha256/32:b2adf1dd4da4d15d92921b55577f03bc"} \ No newline at end of file +{"renderInputHash":"sha256/32:f09d5593916e0d25d8c5ffacdd511fe5","scenarioDefinitionHash":"sha256/32:b2adf1dd4da4d15d92921b55577f03bc"} \ No newline at end of file diff --git a/.codeyam/scenarios/screenshots/android-counter-fresh-start--phone-portrait.png b/.codeyam/scenarios/screenshots/android-counter-fresh-start--phone-portrait.png index bf8e908..cc0350d 100644 Binary files a/.codeyam/scenarios/screenshots/android-counter-fresh-start--phone-portrait.png and b/.codeyam/scenarios/screenshots/android-counter-fresh-start--phone-portrait.png differ diff --git a/.codeyam/scenarios/screenshots/android-counter-fresh-start--phone-portrait.png.hash b/.codeyam/scenarios/screenshots/android-counter-fresh-start--phone-portrait.png.hash index ae422b9..bb138f1 100644 --- a/.codeyam/scenarios/screenshots/android-counter-fresh-start--phone-portrait.png.hash +++ b/.codeyam/scenarios/screenshots/android-counter-fresh-start--phone-portrait.png.hash @@ -1 +1 @@ -{"renderInputHash":"sha256/32:64a3009a3d36fce17502169fb807553e","scenarioDefinitionHash":"sha256/32:b2adf1dd4da4d15d92921b55577f03bc"} \ No newline at end of file +{"renderInputHash":"sha256/32:f09d5593916e0d25d8c5ffacdd511fe5","scenarioDefinitionHash":"sha256/32:b2adf1dd4da4d15d92921b55577f03bc"} \ No newline at end of file diff --git a/.codeyam/scenarios/screenshots/android-counter-graph-open--phone-portrait.png b/.codeyam/scenarios/screenshots/android-counter-graph-open--phone-portrait.png index 509bbfe..6663f52 100644 Binary files a/.codeyam/scenarios/screenshots/android-counter-graph-open--phone-portrait.png and b/.codeyam/scenarios/screenshots/android-counter-graph-open--phone-portrait.png differ diff --git a/.codeyam/scenarios/screenshots/android-counter-graph-open--phone-portrait.png.hash b/.codeyam/scenarios/screenshots/android-counter-graph-open--phone-portrait.png.hash index ae422b9..bb138f1 100644 --- a/.codeyam/scenarios/screenshots/android-counter-graph-open--phone-portrait.png.hash +++ b/.codeyam/scenarios/screenshots/android-counter-graph-open--phone-portrait.png.hash @@ -1 +1 @@ -{"renderInputHash":"sha256/32:64a3009a3d36fce17502169fb807553e","scenarioDefinitionHash":"sha256/32:b2adf1dd4da4d15d92921b55577f03bc"} \ No newline at end of file +{"renderInputHash":"sha256/32:f09d5593916e0d25d8c5ffacdd511fe5","scenarioDefinitionHash":"sha256/32:b2adf1dd4da4d15d92921b55577f03bc"} \ No newline at end of file diff --git a/.codeyam/scenarios/screenshots/android-counter-graph-open-empty-history--phone-portrait.png b/.codeyam/scenarios/screenshots/android-counter-graph-open-empty-history--phone-portrait.png index f2fdcf6..7affb2f 100644 Binary files a/.codeyam/scenarios/screenshots/android-counter-graph-open-empty-history--phone-portrait.png and b/.codeyam/scenarios/screenshots/android-counter-graph-open-empty-history--phone-portrait.png differ diff --git a/.codeyam/scenarios/screenshots/android-counter-graph-open-empty-history--phone-portrait.png.hash b/.codeyam/scenarios/screenshots/android-counter-graph-open-empty-history--phone-portrait.png.hash index ae422b9..bb138f1 100644 --- a/.codeyam/scenarios/screenshots/android-counter-graph-open-empty-history--phone-portrait.png.hash +++ b/.codeyam/scenarios/screenshots/android-counter-graph-open-empty-history--phone-portrait.png.hash @@ -1 +1 @@ -{"renderInputHash":"sha256/32:64a3009a3d36fce17502169fb807553e","scenarioDefinitionHash":"sha256/32:b2adf1dd4da4d15d92921b55577f03bc"} \ No newline at end of file +{"renderInputHash":"sha256/32:f09d5593916e0d25d8c5ffacdd511fe5","scenarioDefinitionHash":"sha256/32:b2adf1dd4da4d15d92921b55577f03bc"} \ No newline at end of file diff --git a/.codeyam/scenarios/screenshots/android-counter-graph-open-left-handed--phone-portrait.png b/.codeyam/scenarios/screenshots/android-counter-graph-open-left-handed--phone-portrait.png index 0e11f60..514737e 100644 Binary files a/.codeyam/scenarios/screenshots/android-counter-graph-open-left-handed--phone-portrait.png and b/.codeyam/scenarios/screenshots/android-counter-graph-open-left-handed--phone-portrait.png differ diff --git a/.codeyam/scenarios/screenshots/android-counter-graph-open-left-handed--phone-portrait.png.hash b/.codeyam/scenarios/screenshots/android-counter-graph-open-left-handed--phone-portrait.png.hash index ae422b9..bb138f1 100644 --- a/.codeyam/scenarios/screenshots/android-counter-graph-open-left-handed--phone-portrait.png.hash +++ b/.codeyam/scenarios/screenshots/android-counter-graph-open-left-handed--phone-portrait.png.hash @@ -1 +1 @@ -{"renderInputHash":"sha256/32:64a3009a3d36fce17502169fb807553e","scenarioDefinitionHash":"sha256/32:b2adf1dd4da4d15d92921b55577f03bc"} \ No newline at end of file +{"renderInputHash":"sha256/32:f09d5593916e0d25d8c5ffacdd511fe5","scenarioDefinitionHash":"sha256/32:b2adf1dd4da4d15d92921b55577f03bc"} \ No newline at end of file diff --git a/.codeyam/scenarios/screenshots/android-counter-large-value--phone-portrait.png b/.codeyam/scenarios/screenshots/android-counter-large-value--phone-portrait.png index 6a0b5e9..62f5b4c 100644 Binary files a/.codeyam/scenarios/screenshots/android-counter-large-value--phone-portrait.png and b/.codeyam/scenarios/screenshots/android-counter-large-value--phone-portrait.png differ diff --git a/.codeyam/scenarios/screenshots/android-counter-large-value--phone-portrait.png.hash b/.codeyam/scenarios/screenshots/android-counter-large-value--phone-portrait.png.hash index ae422b9..bb138f1 100644 --- a/.codeyam/scenarios/screenshots/android-counter-large-value--phone-portrait.png.hash +++ b/.codeyam/scenarios/screenshots/android-counter-large-value--phone-portrait.png.hash @@ -1 +1 @@ -{"renderInputHash":"sha256/32:64a3009a3d36fce17502169fb807553e","scenarioDefinitionHash":"sha256/32:b2adf1dd4da4d15d92921b55577f03bc"} \ No newline at end of file +{"renderInputHash":"sha256/32:f09d5593916e0d25d8c5ffacdd511fe5","scenarioDefinitionHash":"sha256/32:b2adf1dd4da4d15d92921b55577f03bc"} \ No newline at end of file diff --git a/.codeyam/scenarios/screenshots/android-counter-left-handed-layout--phone-portrait.png b/.codeyam/scenarios/screenshots/android-counter-left-handed-layout--phone-portrait.png index b85899d..f3e721f 100644 Binary files a/.codeyam/scenarios/screenshots/android-counter-left-handed-layout--phone-portrait.png and b/.codeyam/scenarios/screenshots/android-counter-left-handed-layout--phone-portrait.png differ diff --git a/.codeyam/scenarios/screenshots/android-counter-left-handed-layout--phone-portrait.png.hash b/.codeyam/scenarios/screenshots/android-counter-left-handed-layout--phone-portrait.png.hash index ae422b9..bb138f1 100644 --- a/.codeyam/scenarios/screenshots/android-counter-left-handed-layout--phone-portrait.png.hash +++ b/.codeyam/scenarios/screenshots/android-counter-left-handed-layout--phone-portrait.png.hash @@ -1 +1 @@ -{"renderInputHash":"sha256/32:64a3009a3d36fce17502169fb807553e","scenarioDefinitionHash":"sha256/32:b2adf1dd4da4d15d92921b55577f03bc"} \ No newline at end of file +{"renderInputHash":"sha256/32:f09d5593916e0d25d8c5ffacdd511fe5","scenarioDefinitionHash":"sha256/32:b2adf1dd4da4d15d92921b55577f03bc"} \ No newline at end of file diff --git a/.codeyam/scenarios/screenshots/android-counter-left-override-active-counter--phone-portrait.png b/.codeyam/scenarios/screenshots/android-counter-left-override-active-counter--phone-portrait.png index 8022492..18d30fd 100644 Binary files a/.codeyam/scenarios/screenshots/android-counter-left-override-active-counter--phone-portrait.png and b/.codeyam/scenarios/screenshots/android-counter-left-override-active-counter--phone-portrait.png differ diff --git a/.codeyam/scenarios/screenshots/android-counter-left-override-active-counter--phone-portrait.png.hash b/.codeyam/scenarios/screenshots/android-counter-left-override-active-counter--phone-portrait.png.hash index ae422b9..bb138f1 100644 --- a/.codeyam/scenarios/screenshots/android-counter-left-override-active-counter--phone-portrait.png.hash +++ b/.codeyam/scenarios/screenshots/android-counter-left-override-active-counter--phone-portrait.png.hash @@ -1 +1 @@ -{"renderInputHash":"sha256/32:64a3009a3d36fce17502169fb807553e","scenarioDefinitionHash":"sha256/32:b2adf1dd4da4d15d92921b55577f03bc"} \ No newline at end of file +{"renderInputHash":"sha256/32:f09d5593916e0d25d8c5ffacdd511fe5","scenarioDefinitionHash":"sha256/32:b2adf1dd4da4d15d92921b55577f03bc"} \ No newline at end of file diff --git a/.codeyam/scenarios/screenshots/android-counter-long-name--phone-portrait.png b/.codeyam/scenarios/screenshots/android-counter-long-name--phone-portrait.png index 63ce245..95dea25 100644 Binary files a/.codeyam/scenarios/screenshots/android-counter-long-name--phone-portrait.png and b/.codeyam/scenarios/screenshots/android-counter-long-name--phone-portrait.png differ diff --git a/.codeyam/scenarios/screenshots/android-counter-long-name--phone-portrait.png.hash b/.codeyam/scenarios/screenshots/android-counter-long-name--phone-portrait.png.hash index ae422b9..bb138f1 100644 --- a/.codeyam/scenarios/screenshots/android-counter-long-name--phone-portrait.png.hash +++ b/.codeyam/scenarios/screenshots/android-counter-long-name--phone-portrait.png.hash @@ -1 +1 @@ -{"renderInputHash":"sha256/32:64a3009a3d36fce17502169fb807553e","scenarioDefinitionHash":"sha256/32:b2adf1dd4da4d15d92921b55577f03bc"} \ No newline at end of file +{"renderInputHash":"sha256/32:f09d5593916e0d25d8c5ffacdd511fe5","scenarioDefinitionHash":"sha256/32:b2adf1dd4da4d15d92921b55577f03bc"} \ No newline at end of file diff --git a/.codeyam/scenarios/screenshots/android-counter-negative-value--phone-portrait.png b/.codeyam/scenarios/screenshots/android-counter-negative-value--phone-portrait.png index 166e9b3..e7b9490 100644 Binary files a/.codeyam/scenarios/screenshots/android-counter-negative-value--phone-portrait.png and b/.codeyam/scenarios/screenshots/android-counter-negative-value--phone-portrait.png differ diff --git a/.codeyam/scenarios/screenshots/android-counter-negative-value--phone-portrait.png.hash b/.codeyam/scenarios/screenshots/android-counter-negative-value--phone-portrait.png.hash index ae422b9..bb138f1 100644 --- a/.codeyam/scenarios/screenshots/android-counter-negative-value--phone-portrait.png.hash +++ b/.codeyam/scenarios/screenshots/android-counter-negative-value--phone-portrait.png.hash @@ -1 +1 @@ -{"renderInputHash":"sha256/32:64a3009a3d36fce17502169fb807553e","scenarioDefinitionHash":"sha256/32:b2adf1dd4da4d15d92921b55577f03bc"} \ No newline at end of file +{"renderInputHash":"sha256/32:f09d5593916e0d25d8c5ffacdd511fe5","scenarioDefinitionHash":"sha256/32:b2adf1dd4da4d15d92921b55577f03bc"} \ No newline at end of file diff --git a/.codeyam/scenarios/screenshots/android-counter-settings-count-by-5--phone-portrait.png b/.codeyam/scenarios/screenshots/android-counter-settings-count-by-5--phone-portrait.png index 3fe7090..a4290d9 100644 Binary files a/.codeyam/scenarios/screenshots/android-counter-settings-count-by-5--phone-portrait.png and b/.codeyam/scenarios/screenshots/android-counter-settings-count-by-5--phone-portrait.png differ diff --git a/.codeyam/scenarios/screenshots/android-counter-settings-count-by-5--phone-portrait.png.hash b/.codeyam/scenarios/screenshots/android-counter-settings-count-by-5--phone-portrait.png.hash index ae422b9..bb138f1 100644 --- a/.codeyam/scenarios/screenshots/android-counter-settings-count-by-5--phone-portrait.png.hash +++ b/.codeyam/scenarios/screenshots/android-counter-settings-count-by-5--phone-portrait.png.hash @@ -1 +1 @@ -{"renderInputHash":"sha256/32:64a3009a3d36fce17502169fb807553e","scenarioDefinitionHash":"sha256/32:b2adf1dd4da4d15d92921b55577f03bc"} \ No newline at end of file +{"renderInputHash":"sha256/32:f09d5593916e0d25d8c5ffacdd511fe5","scenarioDefinitionHash":"sha256/32:b2adf1dd4da4d15d92921b55577f03bc"} \ No newline at end of file diff --git a/.codeyam/scenarios/screenshots/android-counter-settings-expanded-with-overrides--phone-portrait.png b/.codeyam/scenarios/screenshots/android-counter-settings-expanded-with-overrides--phone-portrait.png index 43d2555..09421c1 100644 Binary files a/.codeyam/scenarios/screenshots/android-counter-settings-expanded-with-overrides--phone-portrait.png and b/.codeyam/scenarios/screenshots/android-counter-settings-expanded-with-overrides--phone-portrait.png differ diff --git a/.codeyam/scenarios/screenshots/android-counter-settings-expanded-with-overrides--phone-portrait.png.hash b/.codeyam/scenarios/screenshots/android-counter-settings-expanded-with-overrides--phone-portrait.png.hash index ae422b9..bb138f1 100644 --- a/.codeyam/scenarios/screenshots/android-counter-settings-expanded-with-overrides--phone-portrait.png.hash +++ b/.codeyam/scenarios/screenshots/android-counter-settings-expanded-with-overrides--phone-portrait.png.hash @@ -1 +1 @@ -{"renderInputHash":"sha256/32:64a3009a3d36fce17502169fb807553e","scenarioDefinitionHash":"sha256/32:b2adf1dd4da4d15d92921b55577f03bc"} \ No newline at end of file +{"renderInputHash":"sha256/32:f09d5593916e0d25d8c5ffacdd511fe5","scenarioDefinitionHash":"sha256/32:b2adf1dd4da4d15d92921b55577f03bc"} \ No newline at end of file diff --git a/.codeyam/scenarios/screenshots/android-counter-twenty-counters--phone-portrait.png b/.codeyam/scenarios/screenshots/android-counter-twenty-counters--phone-portrait.png index 6d33d06..89a5402 100644 Binary files a/.codeyam/scenarios/screenshots/android-counter-twenty-counters--phone-portrait.png and b/.codeyam/scenarios/screenshots/android-counter-twenty-counters--phone-portrait.png differ diff --git a/.codeyam/scenarios/screenshots/android-counter-twenty-counters--phone-portrait.png.hash b/.codeyam/scenarios/screenshots/android-counter-twenty-counters--phone-portrait.png.hash index ae422b9..bb138f1 100644 --- a/.codeyam/scenarios/screenshots/android-counter-twenty-counters--phone-portrait.png.hash +++ b/.codeyam/scenarios/screenshots/android-counter-twenty-counters--phone-portrait.png.hash @@ -1 +1 @@ -{"renderInputHash":"sha256/32:64a3009a3d36fce17502169fb807553e","scenarioDefinitionHash":"sha256/32:b2adf1dd4da4d15d92921b55577f03bc"} \ No newline at end of file +{"renderInputHash":"sha256/32:f09d5593916e0d25d8c5ffacdd511fe5","scenarioDefinitionHash":"sha256/32:b2adf1dd4da4d15d92921b55577f03bc"} \ No newline at end of file diff --git a/.codeyam/scenarios/screenshots/android-counter-undo-reset-available--phone-portrait.png b/.codeyam/scenarios/screenshots/android-counter-undo-reset-available--phone-portrait.png index a9ad23f..129fddd 100644 Binary files a/.codeyam/scenarios/screenshots/android-counter-undo-reset-available--phone-portrait.png and b/.codeyam/scenarios/screenshots/android-counter-undo-reset-available--phone-portrait.png differ diff --git a/.codeyam/scenarios/screenshots/android-counter-undo-reset-available--phone-portrait.png.hash b/.codeyam/scenarios/screenshots/android-counter-undo-reset-available--phone-portrait.png.hash index ae422b9..bb138f1 100644 --- a/.codeyam/scenarios/screenshots/android-counter-undo-reset-available--phone-portrait.png.hash +++ b/.codeyam/scenarios/screenshots/android-counter-undo-reset-available--phone-portrait.png.hash @@ -1 +1 @@ -{"renderInputHash":"sha256/32:64a3009a3d36fce17502169fb807553e","scenarioDefinitionHash":"sha256/32:b2adf1dd4da4d15d92921b55577f03bc"} \ No newline at end of file +{"renderInputHash":"sha256/32:f09d5593916e0d25d8c5ffacdd511fe5","scenarioDefinitionHash":"sha256/32:b2adf1dd4da4d15d92921b55577f03bc"} \ No newline at end of file diff --git a/.codeyam/stack.json b/.codeyam/stack.json index 1eb7adb..0f1784a 100644 --- a/.codeyam/stack.json +++ b/.codeyam/stack.json @@ -84,10 +84,10 @@ }, "id": "java", "install": { - "cmd": "brew install --cask temurin@17", + "cmd": "brew install --cask temurin@21", "estCost": "~300 MB, ~2 min" }, - "label": "Java 17+ runtime (JDK)" + "label": "Java 21+ runtime (JDK)" }, { "detect": { diff --git a/.codeyam/state/finalize-debt.json b/.codeyam/state/finalize-debt.json index 4bf49e1..0d00b9f 100644 --- a/.codeyam/state/finalize-debt.json +++ b/.codeyam/state/finalize-debt.json @@ -1,7 +1,7 @@ { - "lastFinalizedAt": "2026-07-29T16:00:47Z", - "lastFinalizedSha": "867412a06316387dad9a41c812d9bfc12486f5c1", - "lastFullFinalizeSha": "867412a06316387dad9a41c812d9bfc12486f5c1", - "lastFullFinalizeTree": "475c75c73964da583882770e7cf16858a95257554a4ef8250666794e8c337045", + "lastFinalizedAt": "2026-08-11T19:51:11Z", + "lastFinalizedSha": "005141ff5c69d367c0aae6093d0d88b3e7449e36", + "lastFullFinalizeSha": "005141ff5c69d367c0aae6093d0d88b3e7449e36", + "lastFullFinalizeTree": "a634c87e1f002f30e2129a27ce9ef7bd4b15edd01b95aa01c74bebf16903ceb4", "deferred": [] } diff --git a/.codeyam/state/refusal-fingerprints.json b/.codeyam/state/refusal-fingerprints.json new file mode 100644 index 0000000..1079bdc --- /dev/null +++ b/.codeyam/state/refusal-fingerprints.json @@ -0,0 +1 @@ +[{"fingerprint": "scripted-rewrite\u0000android/app/src/test/java/com/codeyam/android/model/AppSettingsTest.kt", "at": 1786471592.3568268}] \ No newline at end of file diff --git a/.codeyam/swift-tests.xml b/.codeyam/swift-tests.xml index 39675fc..63af1aa 100644 --- a/.codeyam/swift-tests.xml +++ b/.codeyam/swift-tests.xml @@ -1,248 +1,248 @@ - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + diff --git a/.codeyam/test-cache.json b/.codeyam/test-cache.json index 76c8117..478b3e8 100644 --- a/.codeyam/test-cache.json +++ b/.codeyam/test-cache.json @@ -1 +1 @@ -{"schemaVersion":5,"partitions":{"all":{"version":1,"hash":"94279b13bc9d5c8b","green":true,"lastRunAt":"2026-08-06T17:19:30.053968+00:00","cacheFile":".codeyam/test-cache/all.json","registryDigest":"0c20cd60c5da277c47d9a22e974d404bb533c5305e81fdee61bcefe0f3ce10fe"}}} \ No newline at end of file +{"schemaVersion":5,"partitions":{"all":{"version":3,"hash":"3f2b3f98c2618110","green":true,"lastRunAt":"2026-08-11T19:08:08.792185+00:00","cacheFile":".codeyam/test-cache/all.json","registryDigest":"0c20cd60c5da277c47d9a22e974d404bb533c5305e81fdee61bcefe0f3ce10fe"}}} \ No newline at end of file diff --git a/.codeyam/test-cache/all.json b/.codeyam/test-cache/all.json index abf9f48..6d2d0f3 100644 --- a/.codeyam/test-cache/all.json +++ b/.codeyam/test-cache/all.json @@ -1 +1 @@ -{"schemaVersion":5,"version":1,"partition":"all","hash":"94279b13bc9d5c8b","runners":[{"name":"tests","format":"junit-xml","output":"","invoked_command":"swift test --package-path ios --parallel --disable-swift-testing --xunit-output .codeyam/swift-tests.xml","exit_code":0},{"name":"android-tests","format":"junit-xml","output":"","invoked_command":"android/gradlew -p android test --rerun-tasks && python3 android/scripts/merge-test-results.py android/app/build/test-results/testDebugUnitTest .codeyam/android-tests.xml","exit_code":0}],"runnerBlobs":{"android-tests":{"output":"52ae8920ab2635d68b55187d0c8cc477fd6d4fd679ad239f585286f93756e72c","tests":"5e4a6b376f1aa06b0b43f1dab6940fe7f5e3923f5eb3caf10826aa8ec6198796"},"tests":{"output":"4e7671ceb0a1196c8ce10df00873de426d8a533d3323a381d7f28438f7a6ff29","tests":"6497eee93631e851792587fc12848920a2fd8d456e6a07d528c0ea2ba05ada1e"}}} \ No newline at end of file +{"schemaVersion":5,"version":3,"partition":"all","hash":"3f2b3f98c2618110","runners":[{"name":"tests","format":"junit-xml","output":"","invoked_command":"swift test --package-path ios --parallel --disable-swift-testing --xunit-output .codeyam/swift-tests.xml","exit_code":0},{"name":"android-tests","format":"junit-xml","output":"","invoked_command":"android/gradlew -p android test --rerun-tasks && python3 android/scripts/merge-test-results.py android/app/build/test-results/testDebugUnitTest .codeyam/android-tests.xml","exit_code":0}],"runnerBlobs":{"android-tests":{"output":"8559afffeb725e4086b7b1eb4c20df6cfed8d3b42d6ad6ab1975774d543d19e4","tests":"4d1e40127c9d742ba3509d095c7ef8d74be23787d160fbb9954358f5df8b410b"},"tests":{"output":"737e1cc8d822a500f86a316db6a398c7bcac9b6d5195c2866f643beb361b29df","tests":"ff6d814df7e007c1067108a09b6250cac97dc40cedf0ea620cc7599f0baedf57"}}} \ No newline at end of file diff --git a/.codeyam/test-cache/blobs/5e4a6b376f1aa06b0b43f1dab6940fe7f5e3923f5eb3caf10826aa8ec6198796.json b/.codeyam/test-cache/blobs/4d1e40127c9d742ba3509d095c7ef8d74be23787d160fbb9954358f5df8b410b.json similarity index 83% rename from .codeyam/test-cache/blobs/5e4a6b376f1aa06b0b43f1dab6940fe7f5e3923f5eb3caf10826aa8ec6198796.json rename to .codeyam/test-cache/blobs/4d1e40127c9d742ba3509d095c7ef8d74be23787d160fbb9954358f5df8b410b.json index a9607f0..e0f7b8c 100644 --- a/.codeyam/test-cache/blobs/5e4a6b376f1aa06b0b43f1dab6940fe7f5e3923f5eb3caf10826aa8ec6198796.json +++ b/.codeyam/test-cache/blobs/4d1e40127c9d742ba3509d095c7ef8d74be23787d160fbb9954358f5df8b410b.json @@ -1 +1 @@ -[{"key":"com.codeyam.android.model.AppSettingsTest › testDefaultsAreRightHandedSilentWithDistinctHaptics","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.AppSettingsTest › testOptionsAreIndependent","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.AppSettingsTest › testLegacyHapticOffMigratesToBothOff","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.AppSettingsTest › testDefaultHapticsAreDistinct","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.AppSettingsTest › testResolveMigratesRemovedRawValues","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.AppSettingsTest › testOptionCasesCoverTheChoiceSets","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.AppSettingsTest › testPersistsChangesAcrossReload","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.AppSettingsTest › testNewHapticKeyWinsOverLegacy","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.AppSettingsTest › testUnknownOptionFallsBackToDefault","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.AppSettingsTest › testReleasePolicyIgnoresSeededHapticsWithoutProvenance","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.AppSettingsTest › testReadsSeededStringPreferences","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.AppSettingsTest › testLegacyHapticKeyMigratesToBothDirections","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterModelTest › testDefaultEffectiveFeedbackIsAllOff","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterModelTest › testClampedSubtractRecordsActualAppliedDelta","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterModelTest › testMigrationFoldsDeletedDefaultsIntoBlankSlots","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterModelTest › testDeleteBeyondFirstFourRemovesAndSelectsPrevious","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterModelTest › testSelectPreviousMovesBackWithinList","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterModelTest › testEffectiveResolversFollowDefaultWhenNil","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterModelTest › testCumulativeSeriesReconstructsRunningCount","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterModelTest › testSubtractHonorsStep","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterModelTest › testAddCounterClearsPendingUndo","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterModelTest › testSeededResetUndoKeyIgnoredWhenActiveCountNonZero","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterModelTest › testDeleteLastCounterBlanksInPlaceAndKeepsSelection","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterModelTest › testDeletingCounterClearsPendingUndo","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterModelTest › testEffectiveResolversPinOverrideWhenSet","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterModelTest › testUndoResetReopensSealedRunAndRestoresCount","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterModelTest › testUpdateActiveCounterEditsAndPersists","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterModelTest › testDeletingExtraCounterDropsItsHistory","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterModelTest › testEditingActiveCounterClearsPendingUndo","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterModelTest › testSubtractGoesNegativeByDefault","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterModelTest › testDeleteCounterClearsItsHistories","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterModelTest › testTrustInjectedPolicyAdoptsSeededCounters","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterModelTest › testNamingBlankSlotRevivesIt","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterModelTest › testNoOpSubtractClampRecordsNoEvent","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterModelTest › testSelectNextPastLastAppendsBlankAndSelectsIt","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterModelTest › testLegacySingleHapticOverrideMigratesToBothDirections","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterModelTest › testIncrementUsesActiveCounterEffectiveFeedback","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterModelTest › testSeededHistoriesJSONLoadsFromDefaults","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterModelTest › testHapticDirectionsResolveIndependently","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterModelTest › testUpdateActiveCounterRoundTripsOverrides","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterModelTest › testDeletingMiddleExtraCounterSlidesFollowingCounterDown","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterModelTest › testReleasePolicyTrustsOwnPersistedDataAfterStamp","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterModelTest › testSubtractFiresFeedbackWithDecrementHaptic","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterModelTest › testSeededResetUndoKeyEntersUndoModeOnLaunch","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterModelTest › testAddCounterAppendsBlankAndSelectsIt","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterModelTest › testLoadsSeededStateFromDefaults","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterModelTest › testSubtractRecordsNegativeAppliedDelta","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterModelTest › testReleasePolicyIgnoresSeededAppSettingsWithoutProvenance","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterModelTest › testIncrementHonorsStep","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterModelTest › testSubtractClampsWhenNegativesDisallowed","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterModelTest › testResetAndUndoResetStaySilent","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterModelTest › testAddCounterAssignsNextIdAndOrder","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterModelTest › testDeleteBlanksInPlace","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterModelTest › testResetSealsCurrentAndOpensEmptyRun","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterModelTest › testNewHapticOverrideKeyWinsOverLegacyOnDecode","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterModelTest › testLegacyCounterWithoutStepDecodesToStepOne","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterModelTest › testIncrementFiresFeedbackWithIncrementHaptic","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterModelTest › testIncrementRecordsPositiveEvent","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterModelTest › testHistoryCapDropsOldestRun","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterModelTest › testSeededResetUndoKeyCoercesStringValue","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterModelTest › testUpdateActiveCounterClearsOverridesWhenNil","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterModelTest › testIncrementRaisesActiveCounter","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterModelTest › testSelectNextAdvancesWithinList","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterModelTest › testLegacyCountersDecodeWithNilOverrides","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterModelTest › testUnrecognizedOverrideRawValueDecodesToNil","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterModelTest › testSwitchingCounterClearsPendingUndo","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterModelTest › testDeletingEveryBaseSlotNeverShrinksTheRow","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterModelTest › testResetEntersUndoModeAndCapturesPreviousValue","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterModelTest › testHistoriesPersistAndReloadFromDefaults","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterModelTest › testOverrideTracksOrPinsAgainstChangingDefault","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterModelTest › testSubtractClearsPendingUndo","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterModelTest › testRelativeOffsetMeasuredFromStart","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterModelTest › testAddCounterAllowsConsecutiveBlankSlots","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterModelTest › testReleasePolicyIgnoresSeededCountersWithoutProvenance","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterModelTest › testFreshModelHasFourStarterCountersAtZero","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterModelTest › testSubtractClampsToZeroWhenStepOvershoots","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterModelTest › testSelectPreviousWrapsFromFirstToLast","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterModelTest › testDeletingLastExtraCounterSelectsNewLast","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterModelTest › testReleasePolicyTrustsAppSettingsAfterProvenanceStamped","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterModelTest › testSeededSubsetHasNoBlankSlots","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterModelTest › testUndoResetRestoresPreviousValueAndExitsUndoMode","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterModelTest › testResetZeroesActiveCounter","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterModelTest › testBlankSlotIncrementsWithoutReviving","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterModelTest › testSubtractNoOpClampDoesNotFireFeedback","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterModelTest › testAddCounterPersists","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterModelTest › testIncrementClearsPendingUndo","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterModelTest › testUpdateActiveCounterClampsStepToAtLeastOne","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterModelTest › testHandednessOverrideResolvesPerCounter","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterModelTest › testResetAtZeroEntersUndoModeAndUndoRestoresZero","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterThemeTest › testParsesBlackAndWhite","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterThemeTest › testIsCaseInsensitive","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterThemeTest › testToleratesLeadingHash","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterThemeTest › testIsolatesIndividualChannels","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterThemeTest › testDotHexMapsKnownKeys","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterThemeTest › testDotHexFallsBackToLimeForUnknownKey","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterThemeTest › testParsesAccentLime","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.FeedbackTest › testBothOffFiresNothing","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.FeedbackTest › testBothOptionsFireBoth","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.FeedbackTest › testHapticOnlyFiresHapticWithFeel","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.FeedbackTest › testAllDistinctFeelsAreTreatedAsNonOff","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.FeedbackTest › testNoopFeedbackDoesNothing","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.FeedbackTest › testIncrementHapticOverrideAloneReturnsTrue","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.FeedbackTest › testNoOverridesReturnsFalse","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.FeedbackTest › testSoundOnlyFiresSoundWithChoice","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.FeedbackTest › testBlankSlotReturnsFalse","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.FeedbackTest › testAllOverridesSetReturnsTrue","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.FeedbackTest › testSoundOverrideAloneReturnsTrue","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.FeedbackTest › testDecrementHapticOverrideAloneReturnsTrue","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.FeedbackTest › testExplicitOffSoundOverrideReturnsTrue","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.FeedbackTest › testHandednessOverrideAloneReturnsTrue","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.SettingsOverlaysTest › testOpeningAppSettingsFromClosedOpensIt","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.SettingsOverlaysTest › testOpeningCounterSettingsFromClosedOpensIt","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.SettingsOverlaysTest › testNothingIsOpenByDefault","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.SettingsOverlaysTest › testNoToggleEverLeavesBothOpen","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.SettingsOverlaysTest › testOpeningCounterSettingsClosesAppSettings","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.SettingsOverlaysTest › testTogglingOpenCounterSettingsClosesItAndOpensNothing","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.SettingsOverlaysTest › testTogglingOpenAppSettingsClosesItAndOpensNothing","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.SettingsOverlaysTest › testOpeningAppSettingsClosesTheCounterPanel","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.ui.AndroidFeedbackTest › testSoftUsesReducedAmplitude","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.ui.AndroidFeedbackTest › testEveryNonOffHapticMapsToASpec","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.ui.AndroidFeedbackTest › testSoundSpotCheck","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.ui.AndroidFeedbackTest › testHapticOffMapsToNull","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.ui.AndroidFeedbackTest › testEveryNonOffSoundMapsToATone","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.ui.AndroidFeedbackTest › testSharpAndBuzzUseDefaultAmplitudeButDifferentDurations","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.ui.AndroidFeedbackTest › testNonOffHapticsAreDistinct","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.ui.AndroidFeedbackTest › testDoubleIsATwoPulseWaveform","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.ui.AndroidFeedbackTest › testNonOffSoundsAreDistinct","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.ui.AndroidFeedbackTest › testSoundOffMapsToNull","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.ui.AppSettingsPanelInteractionTest › tappingLeftMovesTheHandednessHighlight","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.ui.AppSettingsPanelInteractionTest › tappingASoundChipMovesTheSelection","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.ui.CountFormatTest › fourDigitsAndUpAreGrouped","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.ui.CountFormatTest › negativeCountsKeepTheirSignAndGrouping","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.ui.CountFormatTest › deltaLeavesTheMinusSignAsTheOnlyMarkerWhenNegative","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.ui.CountFormatTest › deltaCarriesAnExplicitPlusWhenNonNegative","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.ui.CountFormatTest › smallCountsAreUnchanged","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.ui.CountHeroSizingTest › theMinusSignCountsTowardTheWidth","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.ui.CountHeroSizingTest › groupingSeparatorsCountTowardTheWidth","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.ui.CountHeroSizingTest › oneAndTwoDigitCountsUseTheFullSize","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.ui.CountHeroSizingTest › longerNumeralsStepDown","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.ui.CountHeroSizingTest › anythingLongerFallsToTheSmallestStep","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.ui.CountHeroSizingTest › sizeNeverIncreasesAsTheNumeralGrows","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.ui.CountHeroSnapshotTest › countHeroRendersATwoDigitCount","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.ui.CountHeroSnapshotTest › countHeroRendersAGroupedFourDigitCount","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.ui.CounterScreenStateTest › feedbackSettersRoundTripThroughTheirGetters","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.ui.CounterScreenStateTest › resetOrUndoDispatchesByPendingUndo","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.ui.CounterScreenStateTest › selectNextAndPreviousMoveThroughTheCounters","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.ui.CounterScreenStateTest › aPerCounterHandednessOverrideBeatsTheAppDefault","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.ui.CounterScreenStateTest › defaultLeftHandedIsTheAppDefaultNotTheActiveCountersEffectiveValue","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.ui.CounterScreenStateTest › openingTheCounterPanelClosesAppSettings","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.ui.CounterScreenStateTest › leftHandedFollowsTheAppDefaultWithoutAnOverride","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.ui.CounterScreenStateTest › overlayFlagsDefaultClosed","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.ui.CounterScreenStateTest › setDefaultLeftHandedFlipsTheAppDefaultGetter","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.ui.CounterScreenStateTest › openingAppSettingsClosesTheCounterPanel","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.ui.CounterScreenStateTest › addingACounterClosesTheSettingsPanel","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.ui.CounterScreenStateTest › incrementAndSubtractReachTheActiveCounter","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.ui.CounterScreenStateTest › selectingFromTheListClosesBothTheListAndAppSettings","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.ui.CounterScreenStateTest › overlayFlagsAdoptTheirSeededValues","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.ui.CounterScreenStateTest › closingAPanelLeavesTheOtherClosed","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.ui.CounterScreenStateTest › selectingACounterClosesTheSettingsPanel","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.ui.GraphGeometryTest › plotDomainAlwaysIncludesZero","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.ui.GraphGeometryTest › plotMapsTimeAcrossTheFullWidthAndCountUpwards","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.ui.GraphGeometryTest › plotSurvivesAFlatSeries","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.ui.GraphGeometryTest › stepVerticesOfEmptyOrSingleInputAreDegenerate","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.ui.GraphGeometryTest › plotRectScalesGuttersByDensity","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.ui.GraphGeometryTest › stepVerticesHoldThenJump","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.ui.GraphGeometryTest › plotRectClampsToAPositiveSizeWhenTheCanvasIsTiny","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.ui.GraphGeometryTest › relativeTimeGrowsAnHoursFieldPastAnHour","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.ui.GraphGeometryTest › plotHandlesAnEmptySeries","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.ui.GraphGeometryTest › plotPutsZeroLineInsideTheRectWhenTheCountWentNegative","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.ui.GraphGeometryTest › relativeTimeRoundsAndFloorsAtZero","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.ui.GraphGeometryTest › relativeTimeFormatsAsMinutesAndSeconds","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.ui.GraphGeometryTest › plotSurvivesASinglePointSeries","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.ui.GraphGeometryTest › plotRectInsetsByTheGutters","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"}] \ No newline at end of file +[{"key":"com.codeyam.android.model.AppSettingsTest › testDefaultsAreRightHandedSilentWithDistinctHaptics","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.AppSettingsTest › testOptionsAreIndependent","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.AppSettingsTest › testLegacyHapticOffMigratesToBothOff","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.AppSettingsTest › testDefaultHapticsAreDistinct","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.AppSettingsTest › testResolveMigratesRemovedRawValues","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.AppSettingsTest › testOptionCasesCoverTheChoiceSets","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.AppSettingsTest › testPersistsChangesAcrossReload","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.AppSettingsTest › testNewHapticKeyWinsOverLegacy","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.AppSettingsTest › testUnknownOptionFallsBackToDefault","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.AppSettingsTest › testReleasePolicyIgnoresSeededHapticsWithoutProvenance","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.AppSettingsTest › testReadsSeededStringPreferences","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.AppSettingsTest › testLegacyHapticKeyMigratesToBothDirections","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterModelTest › testDefaultEffectiveFeedbackIsAllOff","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterModelTest › testClampedSubtractRecordsActualAppliedDelta","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterModelTest › testMigrationFoldsDeletedDefaultsIntoBlankSlots","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterModelTest › testDeleteBeyondFirstFourRemovesAndSelectsPrevious","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterModelTest › testSelectPreviousMovesBackWithinList","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterModelTest › testEffectiveResolversFollowDefaultWhenNil","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterModelTest › testCumulativeSeriesReconstructsRunningCount","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterModelTest › testSubtractHonorsStep","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterModelTest › testAddCounterClearsPendingUndo","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterModelTest › testSeededResetUndoKeyIgnoredWhenActiveCountNonZero","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterModelTest › testDeleteLastCounterBlanksInPlaceAndKeepsSelection","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterModelTest › testDeletingCounterClearsPendingUndo","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterModelTest › testEffectiveResolversPinOverrideWhenSet","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterModelTest › testUndoResetReopensSealedRunAndRestoresCount","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterModelTest › testUpdateActiveCounterEditsAndPersists","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterModelTest › testDeletingExtraCounterDropsItsHistory","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterModelTest › testEditingActiveCounterClearsPendingUndo","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterModelTest › testSubtractGoesNegativeByDefault","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterModelTest › testDeleteCounterClearsItsHistories","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterModelTest › testTrustInjectedPolicyAdoptsSeededCounters","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterModelTest › testNamingBlankSlotRevivesIt","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterModelTest › testNoOpSubtractClampRecordsNoEvent","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterModelTest › testSelectNextPastLastAppendsBlankAndSelectsIt","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterModelTest › testLegacySingleHapticOverrideMigratesToBothDirections","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterModelTest › testIncrementUsesActiveCounterEffectiveFeedback","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterModelTest › testSeededHistoriesJSONLoadsFromDefaults","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterModelTest › testHapticDirectionsResolveIndependently","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterModelTest › testUpdateActiveCounterRoundTripsOverrides","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterModelTest › testDeletingMiddleExtraCounterSlidesFollowingCounterDown","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterModelTest › testReleasePolicyTrustsOwnPersistedDataAfterStamp","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterModelTest › testSubtractFiresFeedbackWithDecrementHaptic","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterModelTest › testSeededResetUndoKeyEntersUndoModeOnLaunch","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterModelTest › testAddCounterAppendsBlankAndSelectsIt","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterModelTest › testLoadsSeededStateFromDefaults","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterModelTest › testSubtractRecordsNegativeAppliedDelta","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterModelTest › testReleasePolicyIgnoresSeededAppSettingsWithoutProvenance","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterModelTest › testIncrementHonorsStep","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterModelTest › testSubtractClampsWhenNegativesDisallowed","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterModelTest › testResetAndUndoResetStaySilent","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterModelTest › testAddCounterAssignsNextIdAndOrder","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterModelTest › testDeleteBlanksInPlace","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterModelTest › testResetSealsCurrentAndOpensEmptyRun","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterModelTest › testNewHapticOverrideKeyWinsOverLegacyOnDecode","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterModelTest › testLegacyCounterWithoutStepDecodesToStepOne","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterModelTest › testIncrementFiresFeedbackWithIncrementHaptic","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterModelTest › testIncrementRecordsPositiveEvent","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterModelTest › testHistoryCapDropsOldestRun","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterModelTest › testSeededResetUndoKeyCoercesStringValue","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterModelTest › testUpdateActiveCounterClearsOverridesWhenNil","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterModelTest › testIncrementRaisesActiveCounter","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterModelTest › testSelectNextAdvancesWithinList","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterModelTest › testLegacyCountersDecodeWithNilOverrides","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterModelTest › testUnrecognizedOverrideRawValueDecodesToNil","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterModelTest › testSwitchingCounterClearsPendingUndo","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterModelTest › testDeletingEveryBaseSlotNeverShrinksTheRow","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterModelTest › testResetEntersUndoModeAndCapturesPreviousValue","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterModelTest › testHistoriesPersistAndReloadFromDefaults","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterModelTest › testOverrideTracksOrPinsAgainstChangingDefault","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterModelTest › testSubtractClearsPendingUndo","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterModelTest › testRelativeOffsetMeasuredFromStart","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterModelTest › testAddCounterAllowsConsecutiveBlankSlots","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterModelTest › testReleasePolicyIgnoresSeededCountersWithoutProvenance","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterModelTest › testFreshModelHasFourStarterCountersAtZero","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterModelTest › testSubtractClampsToZeroWhenStepOvershoots","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterModelTest › testSelectPreviousWrapsFromFirstToLast","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterModelTest › testDeletingLastExtraCounterSelectsNewLast","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterModelTest › testReleasePolicyTrustsAppSettingsAfterProvenanceStamped","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterModelTest › testSeededSubsetHasNoBlankSlots","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterModelTest › testUndoResetRestoresPreviousValueAndExitsUndoMode","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterModelTest › testResetZeroesActiveCounter","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterModelTest › testBlankSlotIncrementsWithoutReviving","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterModelTest › testSubtractNoOpClampDoesNotFireFeedback","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterModelTest › testAddCounterPersists","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterModelTest › testIncrementClearsPendingUndo","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterModelTest › testUpdateActiveCounterClampsStepToAtLeastOne","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterModelTest › testHandednessOverrideResolvesPerCounter","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterModelTest › testResetAtZeroEntersUndoModeAndUndoRestoresZero","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterThemeTest › testParsesBlackAndWhite","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterThemeTest › testIsCaseInsensitive","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterThemeTest › testToleratesLeadingHash","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterThemeTest › testIsolatesIndividualChannels","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterThemeTest › testDotHexMapsKnownKeys","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterThemeTest › testDotHexFallsBackToLimeForUnknownKey","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.CounterThemeTest › testParsesAccentLime","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.FeedbackTest › testBothOffFiresNothing","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.FeedbackTest › testBothOptionsFireBoth","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.FeedbackTest › testHapticOnlyFiresHapticWithFeel","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.FeedbackTest › testAllDistinctFeelsAreTreatedAsNonOff","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.FeedbackTest › testNoopFeedbackDoesNothing","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.FeedbackTest › testIncrementHapticOverrideAloneReturnsTrue","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.FeedbackTest › testNoOverridesReturnsFalse","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.FeedbackTest › testSoundOnlyFiresSoundWithChoice","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.FeedbackTest › testBlankSlotReturnsFalse","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.FeedbackTest › testAllOverridesSetReturnsTrue","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.FeedbackTest › testSoundOverrideAloneReturnsTrue","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.FeedbackTest › testDecrementHapticOverrideAloneReturnsTrue","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.FeedbackTest › testExplicitOffSoundOverrideReturnsTrue","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.FeedbackTest › testHandednessOverrideAloneReturnsTrue","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.SettingsOverlaysTest › testOpeningAppSettingsFromClosedOpensIt","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.SettingsOverlaysTest › testOpeningCounterSettingsFromClosedOpensIt","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.SettingsOverlaysTest › testNothingIsOpenByDefault","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.SettingsOverlaysTest › testNoToggleEverLeavesBothOpen","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.SettingsOverlaysTest › testOpeningCounterSettingsClosesAppSettings","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.SettingsOverlaysTest › testTogglingOpenCounterSettingsClosesItAndOpensNothing","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.SettingsOverlaysTest › testTogglingOpenAppSettingsClosesItAndOpensNothing","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.model.SettingsOverlaysTest › testOpeningAppSettingsClosesTheCounterPanel","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.ui.AndroidFeedbackTest › testSoftUsesReducedAmplitude","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.ui.AndroidFeedbackTest › testEveryNonOffHapticMapsToASpec","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.ui.AndroidFeedbackTest › testSoundSpotCheck","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.ui.AndroidFeedbackTest › testHapticOffMapsToNull","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.ui.AndroidFeedbackTest › testEveryNonOffSoundMapsToATone","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.ui.AndroidFeedbackTest › testSharpAndBuzzUseDefaultAmplitudeButDifferentDurations","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.ui.AndroidFeedbackTest › testNonOffHapticsAreDistinct","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.ui.AndroidFeedbackTest › testDoubleIsATwoPulseWaveform","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.ui.AndroidFeedbackTest › testNonOffSoundsAreDistinct","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.ui.AndroidFeedbackTest › testSoundOffMapsToNull","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.ui.AppSettingsPanelInteractionTest › tappingLeftMovesTheHandednessHighlight","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.ui.AppSettingsPanelInteractionTest › tappingASoundChipMovesTheSelection","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.ui.CountFormatTest › fourDigitsAndUpAreGrouped","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.ui.CountFormatTest › negativeCountsKeepTheirSignAndGrouping","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.ui.CountFormatTest › deltaLeavesTheMinusSignAsTheOnlyMarkerWhenNegative","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.ui.CountFormatTest › deltaCarriesAnExplicitPlusWhenNonNegative","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.ui.CountFormatTest › smallCountsAreUnchanged","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.ui.CountHeroSizingTest › theMinusSignCountsTowardTheWidth","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.ui.CountHeroSizingTest › groupingSeparatorsCountTowardTheWidth","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.ui.CountHeroSizingTest › oneAndTwoDigitCountsUseTheFullSize","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.ui.CountHeroSizingTest › longerNumeralsStepDown","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.ui.CountHeroSizingTest › anythingLongerFallsToTheSmallestStep","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.ui.CountHeroSizingTest › sizeNeverIncreasesAsTheNumeralGrows","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.ui.CountHeroSnapshotTest › countHeroRendersATwoDigitCount","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.ui.CountHeroSnapshotTest › countHeroRendersAGroupedFourDigitCount","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.ui.CounterScreenInsetsTest › theWindowItselfStaysEdgeToEdge","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.ui.CounterScreenInsetsTest › theCountHeroClearsTheTopInset","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.ui.CounterScreenInsetsTest › theBottomControlRowClearsTheBottomInset","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.ui.CounterScreenInsetsTest › theBottomBarIsSizedFromUsableHeightNotTheFullWindow","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.ui.CounterScreenStateTest › feedbackSettersRoundTripThroughTheirGetters","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.ui.CounterScreenStateTest › resetOrUndoDispatchesByPendingUndo","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.ui.CounterScreenStateTest › selectNextAndPreviousMoveThroughTheCounters","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.ui.CounterScreenStateTest › aPerCounterHandednessOverrideBeatsTheAppDefault","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.ui.CounterScreenStateTest › defaultLeftHandedIsTheAppDefaultNotTheActiveCountersEffectiveValue","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.ui.CounterScreenStateTest › openingTheCounterPanelClosesAppSettings","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.ui.CounterScreenStateTest › leftHandedFollowsTheAppDefaultWithoutAnOverride","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.ui.CounterScreenStateTest › overlayFlagsDefaultClosed","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.ui.CounterScreenStateTest › setDefaultLeftHandedFlipsTheAppDefaultGetter","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.ui.CounterScreenStateTest › openingAppSettingsClosesTheCounterPanel","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.ui.CounterScreenStateTest › addingACounterClosesTheSettingsPanel","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.ui.CounterScreenStateTest › incrementAndSubtractReachTheActiveCounter","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.ui.CounterScreenStateTest › selectingFromTheListClosesBothTheListAndAppSettings","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.ui.CounterScreenStateTest › overlayFlagsAdoptTheirSeededValues","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.ui.CounterScreenStateTest › closingAPanelLeavesTheOtherClosed","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.ui.CounterScreenStateTest › selectingACounterClosesTheSettingsPanel","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.ui.GraphGeometryTest › plotDomainAlwaysIncludesZero","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.ui.GraphGeometryTest › plotMapsTimeAcrossTheFullWidthAndCountUpwards","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.ui.GraphGeometryTest › plotSurvivesAFlatSeries","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.ui.GraphGeometryTest › stepVerticesOfEmptyOrSingleInputAreDegenerate","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.ui.GraphGeometryTest › plotRectScalesGuttersByDensity","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.ui.GraphGeometryTest › stepVerticesHoldThenJump","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.ui.GraphGeometryTest › plotRectClampsToAPositiveSizeWhenTheCanvasIsTiny","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.ui.GraphGeometryTest › relativeTimeGrowsAnHoursFieldPastAnHour","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.ui.GraphGeometryTest › plotHandlesAnEmptySeries","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.ui.GraphGeometryTest › plotPutsZeroLineInsideTheRectWhenTheCountWentNegative","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.ui.GraphGeometryTest › relativeTimeRoundsAndFloorsAtZero","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.ui.GraphGeometryTest › relativeTimeFormatsAsMinutesAndSeconds","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.ui.GraphGeometryTest › plotSurvivesASinglePointSeries","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"},{"key":"com.codeyam.android.ui.GraphGeometryTest › plotRectInsetsByTheGutters","status":"passed","file":null,"line":null,"runner":"android-tests","format":"junit-xml"}] \ No newline at end of file diff --git a/.codeyam/test-cache/blobs/4e7671ceb0a1196c8ce10df00873de426d8a533d3323a381d7f28438f7a6ff29.json b/.codeyam/test-cache/blobs/4e7671ceb0a1196c8ce10df00873de426d8a533d3323a381d7f28438f7a6ff29.json deleted file mode 100644 index 7372eb2..0000000 --- a/.codeyam/test-cache/blobs/4e7671ceb0a1196c8ce10df00873de426d8a533d3323a381d7f28438f7a6ff29.json +++ /dev/null @@ -1 +0,0 @@ -"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n" \ No newline at end of file diff --git a/.codeyam/test-cache/blobs/52ae8920ab2635d68b55187d0c8cc477fd6d4fd679ad239f585286f93756e72c.json b/.codeyam/test-cache/blobs/52ae8920ab2635d68b55187d0c8cc477fd6d4fd679ad239f585286f93756e72c.json deleted file mode 100644 index 64d6a0c..0000000 --- a/.codeyam/test-cache/blobs/52ae8920ab2635d68b55187d0c8cc477fd6d4fd679ad239f585286f93756e72c.json +++ /dev/null @@ -1 +0,0 @@ -"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n\n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n\n \n \n \n \n Aug 06, 2026 1:19:19 PM app.cash.paparazzi.internal.PaparazziLogger logAndroidFramework\nINFO: Settings [3]: Can't get key animator_duration_scale from content://settings/global\nAug 06, 2026 1:19:20 PM app.cash.paparazzi.internal.PaparazziLogger logAndroidFramework\nINFO: Settings [3]: Can't get key animator_duration_scale from content://settings/global\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n" \ No newline at end of file diff --git a/.codeyam/test-cache/blobs/6497eee93631e851792587fc12848920a2fd8d456e6a07d528c0ea2ba05ada1e.json b/.codeyam/test-cache/blobs/6497eee93631e851792587fc12848920a2fd8d456e6a07d528c0ea2ba05ada1e.json deleted file mode 100644 index 7a95513..0000000 --- a/.codeyam/test-cache/blobs/6497eee93631e851792587fc12848920a2fd8d456e6a07d528c0ea2ba05ada1e.json +++ /dev/null @@ -1 +0,0 @@ -[{"key":"AppCoreTests.AppSettingsTests › testPersistsChangesAcrossReload","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.AppSettingsTests › testDefaultHapticsAreDistinct","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.AppSettingsTests › testLegacyHapticKeyMigratesToBothDirections","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.AppSettingsTests › testOptionCasesCoverTheChoiceSets","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.AppSettingsTests › testNewHapticKeyWinsOverLegacy","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.AppSettingsTests › testDefaultsAreRightHandedSilentWithDistinctHaptics","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.AppSettingsTests › testOptionsAreIndependent","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.AppSettingsTests › testLegacyHapticOffMigratesToBothOff","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.CounterFeedbackOverrideTests › testBlankSlotReturnsFalse","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.CounterFeedbackOverrideTests › testDecrementHapticOverrideAloneReturnsTrue","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.AppSettingsTests › testReadsSeededStringPreferences","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.AppSettingsTests › testReleasePolicyIgnoresSeededHapticsWithoutProvenance","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.CounterFeedbackOverrideTests › testExplicitOffSoundOverrideReturnsTrue","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.CounterFeedbackOverrideTests › testAllOverridesSetReturnsTrue","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.AppSettingsTests › testResolveMigratesRemovedRawValues","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.AppSettingsTests › testUnknownOptionFallsBackToDefault","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.CounterFeedbackOverrideTests › testSoundOverrideAloneReturnsTrue","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.FeedbackTests › testAllDistinctFeelsAreTreatedAsNonOff","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.FeedbackTests › testBothOptionsFireBoth","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.FeedbackTests › testHapticOnlyFiresHapticWithIntensity","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.CounterFeedbackOverrideTests › testNoOverridesReturnsFalse","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.CounterFeedbackOverrideTests › testIncrementHapticOverrideAloneReturnsTrue","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.FeedbackTests › testBothOffFiresNothing","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.CounterFeedbackOverrideTests › testHandednessOverrideAloneReturnsTrue","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.FeedbackTests › testSoundOnlyFiresSoundWithChoice","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.FeedbackTests › testNoopFeedbackDoesNothing","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testAddCounterAllowsConsecutiveBlankSlots","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testAddCounterClearsPendingUndo","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testAddCounterPersists","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testBlankSlotIncrementsWithoutReviving","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testAddCounterAssignsNextIdAndOrder","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testAddCounterAppendsBlankAndSelectsIt","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testCumulativeSeriesReconstructsRunningCount","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testChartPlotMapsExtremesAndDomain","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testChartPlotDomainIncludesNegativeRange","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testClampedSubtractRecordsActualAppliedDelta","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testDefaultEffectiveFeedbackIsAllOff","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testDeleteBlanksInPlace","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testDeleteCounterClearsItsHistories","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testDeleteBeyondFirstFourRemovesAndSelectsPrevious","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testDeleteLastCounterBlanksInPlaceAndKeepsSelection","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testEffectiveResolversFollowDefaultWhenNil","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testDeletingMiddleExtraCounterSlidesFollowingCounterDown","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testDeletingExtraCounterDropsItsHistory","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testDeletingCounterClearsPendingUndo","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testDeletingEveryBaseSlotNeverShrinksTheRow","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testEditingActiveCounterClearsPendingUndo","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testDeletingLastExtraCounterSelectsNewLast","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testHandednessOverrideResolvesPerCounter","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testFreshModelHasFourStarterCountersAtZero","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testIncrementFiresFeedbackWithIncrementHaptic","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testIncrementClearsPendingUndo","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testHistoriesPersistAndReloadFromDefaults","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testHistoryCapDropsOldestRun","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testHapticDirectionsResolveIndependently","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testEffectiveResolversPinOverrideWhenSet","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testLegacyCountersDecodeWithNilOverrides","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testIncrementHonorsStep","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testIncrementRaisesActiveCounter","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testLegacySingleHapticOverrideMigratesToBothDirections","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testLegacyCounterWithoutStepDecodesToStepOne","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testLoadsSeededStateFromDefaults","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testIncrementRecordsPositiveEvent","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testIncrementUsesActiveCounterEffectiveFeedback","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testNewHapticOverrideKeyWinsOverLegacyOnDecode","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testNamingBlankSlotRevivesIt","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testMigrationFoldsDeletedDefaultsIntoBlankSlots","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testNoOpSubtractClampRecordsNoEvent","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testRelativeOffsetMeasuredFromStart","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testRelativeTimeFormatting","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testReleasePolicyIgnoresSeededAppSettingsWithoutProvenance","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testOverrideTracksOrPinsAgainstChangingDefault","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testReleasePolicyTrustsOwnPersistedDataAfterStamp","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testReleasePolicyIgnoresSeededCountersWithoutProvenance","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testReleasePolicyTrustsAppSettingsAfterProvenanceStamped","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testResetZeroesActiveCounter","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testResetAtZeroEntersUndoModeAndUndoRestoresZero","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testResetAndUndoResetStaySilent","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testResetEntersUndoModeAndCapturesPreviousValue","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testResetSealsCurrentAndOpensEmptyRun","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testSeededResetUndoKeyEntersUndoModeOnLaunch","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testSeededResetUndoKeyCoercesStringValue","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testSeededHistoriesJSONLoadsFromDefaults","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testSelectPreviousMovesBackWithinList","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testSeededSubsetHasNoBlankSlots","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testSelectNextPastLastAppendsBlankAndSelectsIt","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testSelectNextAdvancesWithinList","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testSeededResetUndoKeyIgnoredWhenActiveCountNonZero","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testSubtractClampsToZeroWhenStepOvershoots","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testSelectPreviousWrapsFromFirstToLast","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testSubtractClampsWhenNegativesDisallowed","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testSubtractNoOpClampDoesNotFireFeedback","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testSubtractGoesNegativeByDefault","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testSubtractFiresFeedbackWithDecrementHaptic","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testSubtractClearsPendingUndo","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testSubtractHonorsStep","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testSubtractRecordsNegativeAppliedDelta","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testSwitchingCounterClearsPendingUndo","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testTrustInjectedPolicyAdoptsSeededCounters","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testUndoResetReopensSealedRunAndRestoresCount","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testUpdateActiveCounterClampsStepToAtLeastOne","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testUpdateActiveCounterClearsOverridesWhenNil","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testUndoResetRestoresPreviousValueAndExitsUndoMode","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testUnrecognizedOverrideRawValueDecodesToNil","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testUpdateActiveCounterEditsAndPersists","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.SettingsOverlaysTests › testNoToggleEverLeavesBothOpen","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.SettingsOverlaysTests › testNothingIsOpenByDefault","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testUpdateActiveCounterRoundTripsOverrides","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.SettingsOverlaysTests › testOpeningAppSettingsFromClosedOpensIt","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.SettingsOverlaysTests › testOpeningAppSettingsClosesTheCounterPanel","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.SettingsOverlaysTests › testOpeningCounterSettingsFromClosedOpensIt","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.SettingsOverlaysTests › testOpeningCounterSettingsClosesAppSettings","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.SettingsOverlaysTests › testTogglingOpenAppSettingsClosesItAndOpensNothing","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.SettingsOverlaysTests › testTogglingOpenCounterSettingsClosesItAndOpensNothing","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ThemeTests › testDotHexMapsKnownKeys","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ThemeTests › testDotHexFallsBackToLimeForUnknownKey","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ThemeTests › testParsesAccentLime","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ThemeTests › testIsolatesIndividualChannels","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ThemeTests › testParsesBlackAndWhite","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ThemeTests › testIsCaseInsensitive","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ThemeTests › testToleratesLeadingHash","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"}] \ No newline at end of file diff --git a/.codeyam/test-cache/blobs/737e1cc8d822a500f86a316db6a398c7bcac9b6d5195c2866f643beb361b29df.json b/.codeyam/test-cache/blobs/737e1cc8d822a500f86a316db6a398c7bcac9b6d5195c2866f643beb361b29df.json new file mode 100644 index 0000000..f70d66a --- /dev/null +++ b/.codeyam/test-cache/blobs/737e1cc8d822a500f86a316db6a398c7bcac9b6d5195c2866f643beb361b29df.json @@ -0,0 +1 @@ +"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n" \ No newline at end of file diff --git a/.codeyam/test-cache/blobs/8559afffeb725e4086b7b1eb4c20df6cfed8d3b42d6ad6ab1975774d543d19e4.json b/.codeyam/test-cache/blobs/8559afffeb725e4086b7b1eb4c20df6cfed8d3b42d6ad6ab1975774d543d19e4.json new file mode 100644 index 0000000..d40098a --- /dev/null +++ b/.codeyam/test-cache/blobs/8559afffeb725e4086b7b1eb4c20df6cfed8d3b42d6ad6ab1975774d543d19e4.json @@ -0,0 +1 @@ +"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n\n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n\n \n \n \n \n WARNING: A Java agent has been loaded dynamically (/Users/jaredcosulich/.gradle/caches/8.13/transforms/a39dad86e65fa8c606005d4b0689ab1a/transformed/byte-buddy-agent-1.18.7.jar)\nWARNING: If a serviceability tool is in use, please run with -XX:+EnableDynamicAgentLoading to hide this warning\nWARNING: If a serviceability tool is not in use, please run with -Djdk.instrument.traceUsage for more information\nWARNING: Dynamic loading of agents will be disallowed by default in a future release\nAug 11, 2026 3:08:06 PM app.cash.paparazzi.internal.resources.base.BasicStyleResourceItem <init>\nWARNING: Conflicting definitions of \"fontFamily\" in style \"TextAppearance.Toast\"\nAug 11, 2026 3:08:06 PM app.cash.paparazzi.internal.resources.base.BasicStyleResourceItem <init>\nWARNING: Conflicting definitions of \"textColor\" in style \"NotificationAction\"\nAug 11, 2026 3:08:06 PM app.cash.paparazzi.internal.resources.base.BasicStyleResourceItem <init>\nWARNING: Conflicting definitions of \"fontFamily\" in style \"TextAppearance.DeviceDefault.Notification\"\nAug 11, 2026 3:08:06 PM app.cash.paparazzi.internal.resources.base.BasicStyleResourceItem <init>\nWARNING: Conflicting definitions of \"fontFamily\" in style \"TextAppearance.DeviceDefault.Notification.Title\"\nAug 11, 2026 3:08:06 PM app.cash.paparazzi.internal.resources.base.BasicStyleResourceItem <init>\nWARNING: Conflicting definitions of \"fontFamily\" in style \"TextAppearance.DeviceDefault.Notification.BigTitle\"\nAug 11, 2026 3:08:06 PM app.cash.paparazzi.internal.resources.base.BasicStyleResourceItem <init>\nWARNING: Conflicting definitions of \"fontFamily\" in style \"TextAppearance.DeviceDefault.Notification.Reply\"\nAug 11, 2026 3:08:06 PM app.cash.paparazzi.internal.resources.base.BasicStyleResourceItem <init>\nWARNING: Conflicting definitions of \"fontFamily\" in style \"TextAppearance.DeviceDefault.Notification.Info\"\nAug 11, 2026 3:08:06 PM app.cash.paparazzi.internal.resources.base.BasicStyleResourceItem <init>\nWARNING: Conflicting definitions of \"fontFamily\" in style \"TextAppearance.DeviceDefault.Notification.Time\"\nAug 11, 2026 3:08:06 PM app.cash.paparazzi.internal.PaparazziLogger logAndroidFramework\nINFO: SystemFonts [2]: Loading font config from /Users/jaredcosulich/.gradle/caches/8.13/transforms/a921bde85f3917657d0428903d0ec774/transformed/layoutlib-runtime-16.2.1-mac-arm/data/fonts/fonts.xml\nAug 11, 2026 3:08:06 PM app.cash.paparazzi.internal.PaparazziLogger logAndroidFramework\nINFO: SystemFonts [2]: Loading font config from /Users/jaredcosulich/.gradle/caches/8.13/transforms/a921bde85f3917657d0428903d0ec774/transformed/layoutlib-runtime-16.2.1-mac-arm/data/fonts/font_fallback.xml\nAug 11, 2026 3:08:06 PM app.cash.paparazzi.internal.PaparazziLogger logAndroidFramework\nINFO: HWUI [2]: Using Fontation backend (prop=Auto)\nAug 11, 2026 3:08:06 PM app.cash.paparazzi.internal.PaparazziLogger logAndroidFramework\nINFO: PlatformAconfigPackage [3]: android.os.flagging.AconfigStorageReadException: ERROR_CANNOT_READ_STORAGE_FILE: Fail to mmap storage\nAug 11, 2026 3:08:06 PM app.cash.paparazzi.internal.PaparazziLogger logAndroidFramework\nINFO: PlatformAconfigPackage [3]: android.os.flagging.AconfigStorageReadException: ERROR_CANNOT_READ_STORAGE_FILE: Fail to mmap storage\nAug 11, 2026 3:08:06 PM app.cash.paparazzi.internal.PaparazziLogger logAndroidFramework\nINFO: PlatformAconfigPackage [3]: android.os.flagging.AconfigStorageReadException: ERROR_CANNOT_READ_STORAGE_FILE: Fail to mmap storage\nAug 11, 2026 3:08:06 PM app.cash.paparazzi.internal.PaparazziLogger logAndroidFramework\nINFO: PlatformAconfigPackage [3]: android.os.flagging.AconfigStorageReadException: ERROR_CANNOT_READ_STORAGE_FILE: Fail to mmap storage\nAug 11, 2026 3:08:06 PM app.cash.paparazzi.internal.PaparazziLogger logAndroidFramework\nINFO: FeatureFlagsImplExport [4]: android.os.flagging.AconfigStorageReadException: ERROR_PACKAGE_NOT_FOUND: package android.xr cannot be found on the device\nAug 11, 2026 3:08:07 PM app.cash.paparazzi.internal.PaparazziLogger logAndroidFramework\nINFO: FeatureFlagsImplExport [4]: android.os.flagging.AconfigStorageReadException: ERROR_PACKAGE_NOT_FOUND: package android.os.profiling.anomaly.flags cannot be found on the device\nAug 11, 2026 3:08:07 PM app.cash.paparazzi.internal.PaparazziLogger logAndroidFramework\nINFO: InputEventCompatHandler [2]: Input compatibility 413207127 is enabled for com.codeyam.android\nAug 11, 2026 3:08:07 PM app.cash.paparazzi.internal.PaparazziLogger logAndroidFramework\nINFO: ImageReader_JNI [3]: Unable to acquire a buffer item, very likely client tried to acquire more than maxImages buffers\nAug 11, 2026 3:08:07 PM app.cash.paparazzi.internal.PaparazziLogger logAndroidFramework\nINFO: InputEventCompatHandler [2]: Input compatibility 413207127 is enabled for com.codeyam.android\nAug 11, 2026 3:08:07 PM app.cash.paparazzi.internal.PaparazziLogger logAndroidFramework\nINFO: ImageReader_JNI [3]: Unable to acquire a buffer item, very likely client tried to acquire more than maxImages buffers\n\n\n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n" \ No newline at end of file diff --git a/.codeyam/test-cache/blobs/ff6d814df7e007c1067108a09b6250cac97dc40cedf0ea620cc7599f0baedf57.json b/.codeyam/test-cache/blobs/ff6d814df7e007c1067108a09b6250cac97dc40cedf0ea620cc7599f0baedf57.json new file mode 100644 index 0000000..6e28165 --- /dev/null +++ b/.codeyam/test-cache/blobs/ff6d814df7e007c1067108a09b6250cac97dc40cedf0ea620cc7599f0baedf57.json @@ -0,0 +1 @@ +[{"key":"AppCoreTests.AppSettingsTests › testNewHapticKeyWinsOverLegacy","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.AppSettingsTests › testOptionCasesCoverTheChoiceSets","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.AppSettingsTests › testDefaultHapticsAreDistinct","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.AppSettingsTests › testLegacyHapticOffMigratesToBothOff","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.AppSettingsTests › testLegacyHapticKeyMigratesToBothDirections","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.AppSettingsTests › testPersistsChangesAcrossReload","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.AppSettingsTests › testDefaultsAreRightHandedSilentWithDistinctHaptics","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.AppSettingsTests › testOptionsAreIndependent","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.CounterFeedbackOverrideTests › testExplicitOffSoundOverrideReturnsTrue","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.CounterFeedbackOverrideTests › testBlankSlotReturnsFalse","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.AppSettingsTests › testUnknownOptionFallsBackToDefault","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.AppSettingsTests › testReleasePolicyIgnoresSeededHapticsWithoutProvenance","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.CounterFeedbackOverrideTests › testDecrementHapticOverrideAloneReturnsTrue","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.CounterFeedbackOverrideTests › testAllOverridesSetReturnsTrue","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.AppSettingsTests › testResolveMigratesRemovedRawValues","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.AppSettingsTests › testReadsSeededStringPreferences","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.FeedbackTests › testAllDistinctFeelsAreTreatedAsNonOff","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.FeedbackTests › testBothOffFiresNothing","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.CounterFeedbackOverrideTests › testSoundOverrideAloneReturnsTrue","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.CounterFeedbackOverrideTests › testHandednessOverrideAloneReturnsTrue","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.CounterFeedbackOverrideTests › testIncrementHapticOverrideAloneReturnsTrue","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.CounterFeedbackOverrideTests › testNoOverridesReturnsFalse","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.FeedbackTests › testHapticOnlyFiresHapticWithIntensity","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.FeedbackTests › testBothOptionsFireBoth","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testAddCounterAppendsBlankAndSelectsIt","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testAddCounterClearsPendingUndo","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testAddCounterAssignsNextIdAndOrder","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testBlankSlotIncrementsWithoutReviving","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testAddCounterPersists","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testChartPlotDomainIncludesNegativeRange","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testClampedSubtractRecordsActualAppliedDelta","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testChartPlotMapsExtremesAndDomain","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testDeleteBeyondFirstFourRemovesAndSelectsPrevious","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testDefaultEffectiveFeedbackIsAllOff","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testCumulativeSeriesReconstructsRunningCount","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.FeedbackTests › testNoopFeedbackDoesNothing","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.FeedbackTests › testSoundOnlyFiresSoundWithChoice","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testAddCounterAllowsConsecutiveBlankSlots","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testDeleteCounterClearsItsHistories","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testDeleteBlanksInPlace","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testDeleteLastCounterBlanksInPlaceAndKeepsSelection","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testDeletingEveryBaseSlotNeverShrinksTheRow","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testDeletingCounterClearsPendingUndo","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testDeletingExtraCounterDropsItsHistory","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testDeletingLastExtraCounterSelectsNewLast","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testDeletingMiddleExtraCounterSlidesFollowingCounterDown","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testEffectiveResolversFollowDefaultWhenNil","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testEditingActiveCounterClearsPendingUndo","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testEffectiveResolversPinOverrideWhenSet","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testFreshModelHasFourStarterCountersAtZero","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testHandednessOverrideResolvesPerCounter","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testHistoriesPersistAndReloadFromDefaults","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testHistoryCapDropsOldestRun","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testHapticDirectionsResolveIndependently","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testIncrementClearsPendingUndo","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testIncrementFiresFeedbackWithIncrementHaptic","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testIncrementHonorsStep","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testLegacyCounterWithoutStepDecodesToStepOne","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testLegacyCountersDecodeWithNilOverrides","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testIncrementUsesActiveCounterEffectiveFeedback","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testIncrementRaisesActiveCounter","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testIncrementRecordsPositiveEvent","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testLegacySingleHapticOverrideMigratesToBothDirections","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testLoadsSeededStateFromDefaults","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testMigrationFoldsDeletedDefaultsIntoBlankSlots","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testNamingBlankSlotRevivesIt","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testNewHapticOverrideKeyWinsOverLegacyOnDecode","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testRelativeOffsetMeasuredFromStart","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testNoOpSubtractClampRecordsNoEvent","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testOverrideTracksOrPinsAgainstChangingDefault","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testRelativeTimeFormatting","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testReleasePolicyIgnoresSeededAppSettingsWithoutProvenance","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testReleasePolicyIgnoresSeededCountersWithoutProvenance","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testReleasePolicyTrustsOwnPersistedDataAfterStamp","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testReleasePolicyTrustsAppSettingsAfterProvenanceStamped","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testResetEntersUndoModeAndCapturesPreviousValue","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testResetAndUndoResetStaySilent","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testResetAtZeroEntersUndoModeAndUndoRestoresZero","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testResetZeroesActiveCounter","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testResetSealsCurrentAndOpensEmptyRun","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testSeededHistoriesJSONLoadsFromDefaults","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testSeededResetUndoKeyCoercesStringValue","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testSeededResetUndoKeyEntersUndoModeOnLaunch","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testSeededSubsetHasNoBlankSlots","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testSeededResetUndoKeyIgnoredWhenActiveCountNonZero","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testSelectPreviousMovesBackWithinList","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testSelectPreviousWrapsFromFirstToLast","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testSelectNextAdvancesWithinList","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testSubtractClampsWhenNegativesDisallowed","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testSelectNextPastLastAppendsBlankAndSelectsIt","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testSubtractClampsToZeroWhenStepOvershoots","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testSubtractClearsPendingUndo","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testSubtractRecordsNegativeAppliedDelta","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testSubtractHonorsStep","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testSwitchingCounterClearsPendingUndo","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testSubtractFiresFeedbackWithDecrementHaptic","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testSubtractNoOpClampDoesNotFireFeedback","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testSubtractGoesNegativeByDefault","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testTrustInjectedPolicyAdoptsSeededCounters","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testUnrecognizedOverrideRawValueDecodesToNil","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testUpdateActiveCounterClampsStepToAtLeastOne","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testUpdateActiveCounterEditsAndPersists","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testUndoResetRestoresPreviousValueAndExitsUndoMode","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testUpdateActiveCounterRoundTripsOverrides","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testUpdateActiveCounterClearsOverridesWhenNil","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.SettingsOverlaysTests › testNothingIsOpenByDefault","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ModelTests › testUndoResetReopensSealedRunAndRestoresCount","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.SettingsOverlaysTests › testOpeningCounterSettingsFromClosedOpensIt","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.SettingsOverlaysTests › testOpeningAppSettingsFromClosedOpensIt","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.SettingsOverlaysTests › testOpeningCounterSettingsClosesAppSettings","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.SettingsOverlaysTests › testOpeningAppSettingsClosesTheCounterPanel","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.SettingsOverlaysTests › testNoToggleEverLeavesBothOpen","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.SettingsOverlaysTests › testTogglingOpenCounterSettingsClosesItAndOpensNothing","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.SettingsOverlaysTests › testTogglingOpenAppSettingsClosesItAndOpensNothing","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ThemeTests › testDotHexFallsBackToLimeForUnknownKey","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ThemeTests › testIsolatesIndividualChannels","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ThemeTests › testToleratesLeadingHash","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ThemeTests › testDotHexMapsKnownKeys","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ThemeTests › testIsCaseInsensitive","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ThemeTests › testParsesAccentLime","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"},{"key":"AppCoreTests.ThemeTests › testParsesBlackAndWhite","status":"passed","file":null,"line":null,"runner":"tests","format":"junit-xml"}] \ No newline at end of file diff --git a/.codeyam/test-registry.json b/.codeyam/test-registry.json index d8ee83d..734290f 100644 --- a/.codeyam/test-registry.json +++ b/.codeyam/test-registry.json @@ -2282,6 +2282,42 @@ "registeredAt": "2026-07-26T22:23:29.233341+00:00", "runner": "android-tests" }, + { + "description": "The bottom bar derives its assembly height from the usable (inset-reduced) height rather than the full window height, so edge-to-edge does not inflate the increment target.", + "file": "android/app/src/testDebug/java/com/codeyam/android/ui/CounterScreenInsetsTest.kt", + "format": "junit-xml", + "key": "com.codeyam.android.ui.CounterScreenInsetsTest › theBottomBarIsSizedFromUsableHeightNotTheFullWindow", + "line": 126, + "registeredAt": "2026-08-11T19:50:04.707881+00:00", + "runner": "android-tests" + }, + { + "description": "The bottom control row clears the navigation-bar inset, sitting above it rather than being overdrawn by the system nav bar.", + "file": "android/app/src/testDebug/java/com/codeyam/android/ui/CounterScreenInsetsTest.kt", + "format": "junit-xml", + "key": "com.codeyam.android.ui.CounterScreenInsetsTest › theBottomControlRowClearsTheBottomInset", + "line": 90, + "registeredAt": "2026-08-11T19:50:04.687921+00:00", + "runner": "android-tests" + }, + { + "description": "The count hero clears the top inset: its top edge sits at least the 80dp status-bar inset below the root top, so the numeral is never drawn under the status bar.", + "file": "android/app/src/testDebug/java/com/codeyam/android/ui/CounterScreenInsetsTest.kt", + "format": "junit-xml", + "key": "com.codeyam.android.ui.CounterScreenInsetsTest › theCountHeroClearsTheTopInset", + "line": 73, + "registeredAt": "2026-08-11T19:50:04.667269+00:00", + "runner": "android-tests" + }, + { + "description": "The window stays edge-to-edge: root height still exceeds the inset content's offset, proving the inset padding landed on the content instead of shrinking the window.", + "file": "android/app/src/testDebug/java/com/codeyam/android/ui/CounterScreenInsetsTest.kt", + "format": "junit-xml", + "key": "com.codeyam.android.ui.CounterScreenInsetsTest › theWindowItselfStaysEdgeToEdge", + "line": 159, + "registeredAt": "2026-08-11T19:50:04.727868+00:00", + "runner": "android-tests" + }, { "description": "A Per Counter Handedness Override Beats The App Default.", "file": "android/app/src/test/java/com/codeyam/android/ui/CounterScreenStateTest.kt",