feat(WhereUI): refresh Explore Features and add maintenance skill - #326
Conversation
Add browsing, recording, and privacy/backup guides. Refresh planning, accuracy, appearance, evidence copy, search, and Flyover coverage. Keep discovery read-only and hide unavailable demo actions. Validation: 509 WhereUI tests and 8 affected snapshot suites (105 captures) passed. Reviewed full-content references, including accessibility layouts. Formatting, catalogs, SF Symbols, attribution, and skill validation passed.
There was a problem hiding this comment.
This looks broken compared to the regular in-app view, not sure why or how? There's gaps and the planned stay should be part of the same round rect as the other nyc row.
There was a problem hiding this comment.
Posted by an AI agent on kyleve’s behalf.
Fixed in f3911c2. The preview now uses zero spacing between journey rows, keeps the rail connected through the planned stay, and joins adjacent recorded/planned stays in the same region with the production top/bottom card shapes. Reviewed the updated phone, iPad, and accessibility snapshots; all affected suites pass.
There was a problem hiding this comment.
I think we should still include estimate examples here, but grey out the estimate related cards if the feature is off?
There was a problem hiding this comment.
Posted by an AI agent on kyleve’s behalf.
Fixed in f3911c2. Turning the feature off now keeps the forecast and calculation examples visible in grayscale, with an explicit off-state explanation and the Appearance link. Viewing the gallery does not change the setting. Updated light/dark snapshots pass.
There was a problem hiding this comment.
The "private by design" card shouldn't be wider than the other cards.
There was a problem hiding this comment.
Posted by an AI agent on kyleve’s behalf.
Fixed in 0887b4a. The privacy card now uses the same maximum width as the other gallery panels while retaining its intrinsic height for large text. Reviewed the iPad and accessibility references; the snapshot suite passes.
There was a problem hiding this comment.
This seems the root of the issues called out above; why is it separate from the regular timeline?
There was a problem hiding this comment.
Posted by an AI agent on kyleve’s behalf.
You’re right: I created the separate type to bound the gallery to two stays and avoid the scrolling/editing surface, but duplicated row composition and introduced the drift you noticed. Fixed in 0968324: removed FeatureTimelinePreview and added an .excerpt presentation to PresenceTimelineList itself. Both galleries now use that regular view, with shared rail, row, and card-join logic. The full presentation retains lazy scrolling and editing controls. All three affected snapshot suites (full Timeline and both galleries) pass with recording disabled and no reference updates.
Summary
PresenceTimelineListin its non-scrolling.excerptpresentation, sharing row rendering and planned-stay joins.$update-explore-featuresfor periodic local maintenance, with source-based coverage checks and no automatic publishing or scheduling.Why
The galleries covered integrations but omitted the main browsing and recording workflows. They also missed newer appearance controls and the backup/diagnostics contracts. A zero issue count previously claimed the year was all clear even when a scan might not have completed.
Review focus
Browsing does not start recording, scans, permissions, edits, or backups. The privacy guide receives process-effective diagnostics. Restore stays in onboarding. Empty/unavailable reports and demo restrictions remain explicit.
Testing
./test --no-generate WhereUITests: 509 tests passed.Eight affected snapshot suites: 105 captures passed with recording disabled after visual review.
Full-content image review includes phone/tablet, light/dark, accessibility text sizes, contrast, demo, and unavailable states.
Catalog, SF Symbol, SwiftFormat, attribution, and skill validation passed. Agent mirrors synchronized.
Review fixes:
./test --snapshots --no-generate --no-build --only WhereUISnapshotTests/EstimatedTimeFeaturesViewSnapshotTests --only WhereUISnapshotTests/PlacesYearFeaturesViewSnapshotTests --only WhereUISnapshotTests/PrivacyBackupsFeaturesViewSnapshotTests: 3 suites / 44 captures passed with recording disabled. SwiftFormat and string-catalog lint passed.Shared Timeline refactor:
./test --snapshots --only WhereUISnapshotTests/PresenceTimelineListSnapshotTests --only WhereUISnapshotTests/EstimatedTimeFeaturesViewSnapshotTests --only WhereUISnapshotTests/PlacesYearFeaturesViewSnapshotTests: all three suites passed with recording disabled and no reference changes.