Source audit under contract v5. It reports source signals, not runtime verdicts: no Duo build was run and compatibility is unverified. Re-run the current CLI on your own revision before making decisions.
Hours are unvalidated heuristics, not measured delivery time or a quote. This index retains only a sample of findings and partial coverage metadata; target membership and build settings are unresolved. No human priority has been validated. Scores across contracts are not comparable.
Bitwarden
bitwarden/ios
FoldReady CLI · result contract v5 · 389 UI files audited, 2377 excluded (tests, previews, vendored)
Bitwarden: 79/100 (B), contract v5, over 389 UI files. This is a versioned source summary. 0 potential lifecycle signal(s) require build confirmation. Runtime compatibility and human priority are unassessed.
Check breakdown
6 displayed checks · see CLI for full coverageStandard navigation
source heuristic23 standard navigation site(s), 3 legacy site(s). Sidebar placement is optional.. Standard navigation signals; sidebar placement is optional.
Adaptive layout
source heuristic3 of 389 UI file(s) use fixed geometry · 22 icon-sized frame(s) not scored. Share of UI files free of fixed screen geometry. Icon-sized frames, previews and tests are not scored.
Adaptive geometry
source heuristic7 of 389 UI file(s) read size classes or effective geometry. How widely the app reads size classes and scene geometry. Absence of any read is not scored zero.
State preservation
source heuristic0 of 35 stateful view file(s) preserve state. Share of stateful view files with detected restoration signals; behavior is untested.
Interface idiom
source heuristic387 of 389 UI file(s) free of device-idiom branching. Share of UI files free of layout branching on the device idiom.
Interface orientation
source heuristic3 of 3 orientation site(s) adapt to the scene. Whether the app adapts to scene geometry rather than branching on interface orientation.
Findings
sample · 14 of 44 rows| Severity | Check | Signal and confidence | Location |
|---|---|---|---|
| minor | adaptive-layout | Hardcoded frame larger than a control: it will not reflow when the scene changes width. Confidence: not retained in this index; re-run CLI. Runtime: not tested. | AuthenticatorShared/UI/Auth/VaultUnlock/VaultUnlockView.swift:38 |
| minor | adaptive-layout | Hardcoded frame larger than a control: it will not reflow when the scene changes width. Confidence: not retained in this index; re-run CLI. Runtime: not tested. | BitwardenShared/UI/Auth/Login/TwoFactorAuth/TwoFactorAuthView.swift:123 |
| minor | adaptive-layout | Hardcoded frame larger than a control: it will not reflow when the scene changes width. Confidence: not retained in this index; re-run CLI. Runtime: not tested. | BitwardenShared/UI/Auth/Login/TwoFactorAuth/TwoFactorAuthView.swift:157 |
| minor | adaptive-layout | Hardcoded frame larger than a control: it will not reflow when the scene changes width. Confidence: not retained in this index; re-run CLI. Runtime: not tested. | BitwardenShared/UI/Platform/Settings/Settings/AutoFill/PasswordAutoFill/PasswordAutoFillView.swift:60 |
| minor | idiom | Layout branching on the device idiom; a resizable scene is described by its size class, not by whether it is a phone or a tablet. Confidence: not retained in this index; re-run CLI. Runtime: not tested. | BitwardenKit/UI/Platform/Application/Extensions/View+Toolbar.swift:384 |
| minor | idiom | Layout branching on the device idiom; a resizable scene is described by its size class, not by whether it is a phone or a tablet. Confidence: not retained in this index; re-run CLI. Runtime: not tested. | BitwardenShared/UI/Auth/Login/TwoFactorAuth/TwoFactorAuthView.swift:32 |
| minor | navigation | Legacy NavigationView found. Review migration to standard navigation; a sidebar is optional and no rendering failure has been observed. Confidence: not retained in this index; re-run CLI. Runtime: not tested. | BitwardenShared/UI/Vault/VaultItem/AddEditItem/AddEditCardItem/CardScannerView.swift |
| minor | navigation | Legacy NavigationView found. Review migration to standard navigation; a sidebar is optional and no rendering failure has been observed. Confidence: not retained in this index; re-run CLI. Runtime: not tested. | BitwardenWatchApp/BitwardenWatchApp.swift |
| minor | navigation | Legacy NavigationView found. Review migration to standard navigation; a sidebar is optional and no rendering failure has been observed. Confidence: not retained in this index; re-run CLI. Runtime: not tested. | BitwardenWatchApp/Views/CipherListView.swift |
| minor | state | Scroll or selection state is not preserved; a scene resize can rebuild the hierarchy and lose it. Confidence: not retained in this index; re-run CLI. Runtime: not tested. | AuthenticatorShared/UI/Platform/Application/AppCoordinator.swift |
| minor | state | Scroll or selection state is not preserved; a scene resize can rebuild the hierarchy and lose it. Confidence: not retained in this index; re-run CLI. Runtime: not tested. | AuthenticatorShared/UI/Platform/Tabs/TabCoordinator.swift |
| minor | state | Scroll or selection state is not preserved; a scene resize can rebuild the hierarchy and lose it. Confidence: not retained in this index; re-run CLI. Runtime: not tested. | AuthenticatorShared/UI/Platform/Tabs/TabRoute.swift |
| minor | state | Scroll or selection state is not preserved; a scene resize can rebuild the hierarchy and lose it. Confidence: not retained in this index; re-run CLI. Runtime: not tested. | AuthenticatorShared/UI/Vault/AuthenticatorItem/EditAuthenticatorItem/EditAuthenticatorItemView.swift |
| minor | state | Scroll or selection state is not preserved; a scene resize can rebuild the hierarchy and lose it. Confidence: not retained in this index; re-run CLI. Runtime: not tested. | AuthenticatorShared/UI/Vault/ItemList/ItemList/ItemListView.swift |
Proposed review order
human priority not assessedReview navigation
Inspect legacy navigation in the agreed journeys at narrow and wide sizes. A sidebar is optional; confirm a need before changing navigation.
Inspect idiom and orientation assumptions
Confirm target membership and branch intent, then exercise the affected journey across scene sizes and rotation.
Inspect fixed geometry
3 of 389 UI file(s) use fixed geometry · 22 icon-sized frame(s) not scored. Confirm whether the fixed size is intentional and reproduce any clipping before changing it.
Test state across a resize
Set selection, scroll and input state, resize, then revisit the journey. Record any loss before choosing a restoration change.
Patch proposals are not generated in this report. Run the current CLI to prepare a reviewed work order.
Validate the signals with a human review.
A reviewer confirms target relevance, journey impact and the next test. Re-scanning can show changed signals; it cannot prove runtime fixes.