Skip to content

Remove stale Google catalog reference from metric tile tests #562

Open

Description

@HemSoft

Description

At main 53e53837981121ab3a13986ed5630b9ce52d0b67, MetricTileContentRegressionTests.swift:37 still uses GoogleUsageMetricCatalog.disabledReason in testUnavailableReasonRemainsDistinctFromReportedValues. The production catalog was removed with Google provider removal #556. Package.swift still declares the metric-tile test target, so SwiftPM compiles it even when filtering for Claude reset tests.

During PR #561 validation, Xcode 26.6 produced this sanitized diagnostic before any filtered tests ran:

MetricTileContentTests/MetricTileContentRegressionTests.swift:37:57:
error: cannot find 'GoogleUsageMetricCatalog' in scope

The unchanged test reference remains in the merged main. The same four Claude reset suites passed all 20 tests through their existing Xcode target; that does not clear the SwiftPM compile failure.

Why

A stale test dependency prevents developers from running unrelated filtered SwiftPM regressions. Restoring a retired provider to satisfy a test would undo the explicitly adopted removal.

Goal

Restore SwiftPM test compilation with a provider-independent unavailable-reason fixture while keeping Google Gemini and Antigravity support removed.

Acceptance Criteria

  • The metric-tile regression tests compile without referencing the removed Google catalog.
  • The unavailable-reason test still proves that unavailable, setup-required, custom and empty reasons remain distinct from reported usage and credit values; do not remove or weaken its assertions.
  • The filtered Claude reset test command compiles and executes its selected tests with zero failures.
  • No Google provider, catalog, authentication, endpoint, account migration or retired fixture is restored. Automatic CI workloads and triggers remain unchanged.

Definition of Done

  • A separate issue-linked PR contains the bounded test repair, relevant validation evidence, required SwiftLint and clean current-head review.
  • Record actual SwiftPM test and pinned-lint results at the implemented head. Any additional baseline defect remains explicit rather than being hidden by skipped compilation or relaxed checks.
  • This filing makes no source change and authorizes no release, account operation or live-provider test.

Validation

On an initialized Mac/Xcode toolchain, use canonical LF source and an explicit build environment:

export DEVELOPER_DIR=/Applications/Xcode_26.6.app/Contents/Developer
xcrun swift test --filter MetricTileContentRegressionTests
xcrun swift test --filter ClaudeUsageReset
SWIFTLINT_EXCLUDED_GITHUB_BILLING="$PWD/GitHubBillingFixtureTests" \
  xcrun swift package plugin --allow-writing-to-package-directory \
  swiftlint lint --no-cache --reporter xcode .
  • Both filtered test commands exit zero and execute their named tests; the reported missing-symbol diagnostic is absent.
  • Pinned SwiftLint exits zero. Keep the existing CI exclusion scoped to the standalone lint command, since exporting it to SwiftPM test builds can make the excluded target's plugin report no lintable files.
  • Inspect the diff to confirm the Google removal remains intact and automatic CI has no added work.

Duplicate search covered open and closed issues for the exact symbol, test class and SwiftPM/Google compile scope. Existing #556 describes the completed provider removal, #400 concerns earlier Cursor/Grok behavior, and #559 only records this failure as a validation limitation; none defines this test repair.

Activity

  1. HemSoft commented on Nov 11, 2026

    @HemSoft
    CollaboratorAuthor

    Additional compile blockers found during hosted validation

    Run 42950113108 at f0c55bd compiled MetricTileContentRegressionTests but failed before executing tests on GrokAuthTests/CursorSpendingRegressionTests.swift:95, another stale GoogleUsageMetricCatalog reference. A complete Swift-source search also found four references in CodexUsageTests/CodexCreditsPoolTests.swift (112, 113, 182, 185). The existing ProviderMetricCatalog supplies those exact metrics/layoutCopyMetricIDs operations. These test-only call sites must use that retained catalog without weakening assertions or restoring Google support for the issue's filtered SwiftPM commands to compile. This bounded repair is included in #563; the failed job is preserved at https://github.com/hemsoft-dev/codexbar-ios/actions/runs/42950113108/job/130292176301 and /tmp/ios562-smoke-42950113108.log on Mini. No blind rerun.

  2. HemSoft commented on Nov 11, 2026

    @HemSoft
    CollaboratorAuthor

    Baseline iOS validation failures and test-only repair

    Exact-head run 42952974281 failed iOS tests: 1109 tests executed, three test methods failed with nine assertions. SwiftLint, strict concurrency, watchOS and smoke all passed. The smoke job executed 13 metric tile and 20 Claude reset tests with zero failures at ffab46d. No merge over this failed run.

    The failing tests and their production sources are byte-identical to base 53e5383. Reset inventory assertions expected the messages replaced by #561 for non-selected grants. Commit 25d2181 checks the shipped selected-reset limitation for both non-selected rows and retains the two original reason assertions in a separate test selecting an unusable grant. No arbitrary-grant or Fable behavior is changed.

    The two billing tests failed at page readiness and session completion; diagnostics show unresponsive WebContent processes. They previously loaded unattached WKWebViews, and the save test selected a synthetic account immediately after starting navigation. 25d2181 attaches these fixtures to a simulator window and waits for each provider document before account selection. Existing timeout bounds, success/account-isolation assertions and production auth remain unchanged. This is a test-only repair under the assigned CI-repair scope, awaiting hosted proof, not a claim the timing issue is already resolved.

    Failed diagnostics retained on Mini: /tmp/ios562-ffab46d-ios-diagnostics, /tmp/ios562-ffab46d-failed.log, /tmp/ios562-ffab46d-smoke.log. Replacement exact-head run: https://github.com/hemsoft-dev/codexbar-ios/actions/runs/42955812990. New independent review pending. No test skip or assertion relaxation added; no provider operation or real Mac used.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions