docs: note accessibility smoke passes, manual review pending#179
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
After granting macOS Accessibility permission to the host, ./scripts/app-accessibility-smoke.sh
[0/1] Planning build
Building for debugging...
[0/4] Write swift-version--58304C5D6DBC2206.txt
[2/9] Compiling KeydexCore Domain.swift
[3/9] Compiling KeydexCore InventoryGraph.swift
[4/9] Compiling KeydexCore Doctor.swift
[5/9] Emitting module KeydexCore
[6/9] Compiling KeydexCore CredentialInventoryReconciler.swift
[7/21] Compiling KeydexApp KeydexInventoryViews.swift
[8/21] Compiling KeydexApp KeydexSettingsStore.swift
[9/21] Compiling KeydexApp KeydexSidebarViews.swift
[10/21] Compiling KeydexApp KeydexDesignSystem.swift
[11/21] Compiling KeydexApp KeydexPresentationModel.swift
[12/21] Compiling KeydexApp KeydexArtworkStore.swift
[13/21] Compiling KeydexApp KeydexAppBootstrap.swift
[14/21] Compiling KeydexApp KeydexDoctorViews.swift
[15/21] Compiling KeydexApp KeydexApp.swift
[16/21] Emitting module KeydexApp
[17/21] Compiling KeydexApp KeydexSettingsViews.swift
[18/21] Compiling KeydexApp resource_bundle_accessor.swift
[18/21] Write Objects.LinkFileList
[19/21] Linking KeydexApp
[20/21] Applying KeydexApp
Build of product 'KeydexApp' complete! (2.75s)
accessibility_smoke_start=default-window inventory_mode=sample window_preset=default settings_scroll_target=top
accessibility_smoke_pid=66743 scenario=default-window
accessibility_smoke_checked=default-window expected=6 hidden=0
accessibility_smoke=default-window
accessibility_smoke_start=card-view inventory_mode=sample window_preset=default settings_scroll_target=top
accessibility_smoke_pid=66796 scenario=card-view
accessibility_smoke_checked=card-view expected=6 hidden=0
accessibility_smoke=card-view
accessibility_smoke_start=card-detail inventory_mode=sample window_preset=default settings_scroll_target=top
accessibility_smoke_pid=66859 scenario=card-detail
accessibility_smoke_checked=card-detail expected=9 hidden=0
accessibility_smoke=card-detail
accessibility_smoke_start=empty-inventory inventory_mode=empty window_preset=default settings_scroll_target=top
accessibility_smoke_pid=66931 scenario=empty-inventory
accessibility_smoke_checked=empty-inventory expected=3 hidden=0
accessibility_smoke=empty-inventory
accessibility_smoke_start=search-filter inventory_mode=sample window_preset=default settings_scroll_target=top
accessibility_smoke_pid=66968 scenario=search-filter
accessibility_smoke_checked=search-filter expected=7 hidden=0
accessibility_smoke=search-filter
accessibility_smoke_start=inspector inventory_mode=sample window_preset=default settings_scroll_target=top
accessibility_smoke_pid=66989 scenario=inspector
accessibility_smoke_checked=inspector expected=7 hidden=0
accessibility_smoke=inspector
accessibility_smoke_start=settings inventory_mode=sample window_preset=default settings_scroll_target=top
accessibility_smoke_pid=67031 scenario=settings
accessibility_smoke_checked=settings expected=8 hidden=3
accessibility_smoke=settings
accessibility_smoke_start=settings-appearance inventory_mode=sample window_preset=default settings_scroll_target=top
accessibility_smoke_pid=67064 scenario=settings-appearance
accessibility_smoke_checked=settings-appearance expected=6 hidden=3
accessibility_smoke=settings-appearance
accessibility_smoke_start=settings-sources inventory_mode=sample window_preset=default settings_scroll_target=top
accessibility_smoke_pid=67243 scenario=settings-sources
accessibility_smoke_checked=settings-sources expected=7 hidden=3
accessibility_smoke=settings-sources
accessibility_smoke_start=settings-paths inventory_mode=sample window_preset=default settings_scroll_target=top
accessibility_smoke_pid=67377 scenario=settings-paths
accessibility_smoke_checked=settings-paths expected=7 hidden=3
accessibility_smoke=settings-paths
accessibility_smoke_start=settings-tags inventory_mode=sample window_preset=default settings_scroll_target=top
accessibility_smoke_pid=67486 scenario=settings-tags
accessibility_smoke_checked=settings-tags expected=7 hidden=3
accessibility_smoke=settings-tags
accessibility_smoke_start=settings-rules inventory_mode=sample window_preset=default settings_scroll_target=bottom
accessibility_smoke_pid=67523 scenario=settings-rules
accessibility_smoke_checked=settings-rules expected=7 hidden=3
accessibility_smoke=settings-rules
accessibility_smoke_start=compact-window inventory_mode=sample window_preset=compact settings_scroll_target=top
accessibility_smoke_pid=67577 scenario=compact-window
accessibility_smoke_checked=compact-window expected=5 hidden=0
accessibility_smoke=compact-window
app accessibility smoke clean now passes for all 13 required scenarios.\n\nUpdates to reflect:\n- Source-level ./scripts/app-accessibility-contract.sh
app accessibility contract clean passes.\n- Runtime ./scripts/app-accessibility-smoke.sh
Building for debugging...
[0/3] Write swift-version--58304C5D6DBC2206.txt
Build of product 'KeydexApp' complete! (0.13s)
accessibility_smoke_start=default-window inventory_mode=sample window_preset=default settings_scroll_target=top
accessibility_smoke_pid=67930 scenario=default-window
accessibility_smoke_checked=default-window expected=6 hidden=0
accessibility_smoke=default-window
accessibility_smoke_start=card-view inventory_mode=sample window_preset=default settings_scroll_target=top
accessibility_smoke_pid=68124 scenario=card-view
accessibility_smoke_checked=card-view expected=6 hidden=0
accessibility_smoke=card-view
accessibility_smoke_start=card-detail inventory_mode=sample window_preset=default settings_scroll_target=top
accessibility_smoke_pid=68166 scenario=card-detail
accessibility_smoke_checked=card-detail expected=9 hidden=0
accessibility_smoke=card-detail
accessibility_smoke_start=empty-inventory inventory_mode=empty window_preset=default settings_scroll_target=top
accessibility_smoke_pid=68341 scenario=empty-inventory
accessibility_smoke_checked=empty-inventory expected=3 hidden=0
accessibility_smoke=empty-inventory
accessibility_smoke_start=search-filter inventory_mode=sample window_preset=default settings_scroll_target=top
accessibility_smoke_pid=68473 scenario=search-filter
accessibility_smoke_checked=search-filter expected=7 hidden=0
accessibility_smoke=search-filter
accessibility_smoke_start=inspector inventory_mode=sample window_preset=default settings_scroll_target=top
accessibility_smoke_pid=68554 scenario=inspector
accessibility_smoke_checked=inspector expected=7 hidden=0
accessibility_smoke=inspector
accessibility_smoke_start=settings inventory_mode=sample window_preset=default settings_scroll_target=top
accessibility_smoke_pid=68587 scenario=settings
accessibility_smoke_checked=settings expected=8 hidden=3
accessibility_smoke=settings
accessibility_smoke_start=settings-appearance inventory_mode=sample window_preset=default settings_scroll_target=top
accessibility_smoke_pid=68629 scenario=settings-appearance
accessibility_smoke_checked=settings-appearance expected=6 hidden=3
accessibility_smoke=settings-appearance
accessibility_smoke_start=settings-sources inventory_mode=sample window_preset=default settings_scroll_target=top
accessibility_smoke_pid=68675 scenario=settings-sources
accessibility_smoke_checked=settings-sources expected=7 hidden=3
accessibility_smoke=settings-sources
accessibility_smoke_start=settings-paths inventory_mode=sample window_preset=default settings_scroll_target=top
accessibility_smoke_pid=68712 scenario=settings-paths
accessibility_smoke_checked=settings-paths expected=7 hidden=3
accessibility_smoke=settings-paths
accessibility_smoke_start=settings-tags inventory_mode=sample window_preset=default settings_scroll_target=top
accessibility_smoke_pid=68769 scenario=settings-tags
accessibility_smoke_checked=settings-tags expected=7 hidden=3
accessibility_smoke=settings-tags
accessibility_smoke_start=settings-rules inventory_mode=sample window_preset=default settings_scroll_target=bottom
accessibility_smoke_pid=68817 scenario=settings-rules
accessibility_smoke_checked=settings-rules expected=7 hidden=3
accessibility_smoke=settings-rules
accessibility_smoke_start=compact-window inventory_mode=sample window_preset=compact settings_scroll_target=top
accessibility_smoke_pid=68888 scenario=compact-window
accessibility_smoke_checked=compact-window expected=5 hidden=0
accessibility_smoke=compact-window
app accessibility smoke clean passes.\n- Manual accessibility review (52 fields across 13 scenarios) remains pending.\n\nNo code changes.\n\nVerification:\n- ./scripts/project-contract.sh
project contract clean passes\n- ./scripts/quality.sh
project contract clean
package boundary graph clean
loop contract clean
cli smoke clean
app accessibility contract clean
app design contract clean
app ux flow contract clean
app evidence scenarios contract clean
app accessibility evidence template contract clean
release signing evidence template contract clean
quality gate clean passes\n- /Library/Developer/CommandLineTools/usr/bin/swift-format lint --recursive --strict Package.swift Sources Tests Apps
swift test
Test Suite 'All tests' started at 2026-07-05 22:20:02.278.
Test Suite 'All tests' passed at 2026-07-05 22:20:02.280.
Executed 0 tests, with 0 failures (0 unexpected) in 0.000 (0.002) seconds
◇ Test run started.
↳ Testing Library Version: 1902
↳ Target Platform: arm64e-apple-macos14.0
◇ Test fileMetadataStoreDerivesExpiredStateFromExpiryMetadata() started.
◇ Test keychainInventoryScannerCreatesOrphanObservationsWithoutSecretValues() started.
◇ Test fileMetadataStoreRejectsInvalidExpiryDate() started.
◇ Test fileMetadataStoreRejectsMissingLocationFields() started.
◇ Test fileMetadataStoreLoadsExpiryReminderMetadata() started.
◇ Test fileMetadataStoreRejectsInvalidState() started.
◇ Test fileMetadataStoreRejectsNegativeNotificationLeadDays() started.
◇ Test configFileScannerCreatesObservationsWithoutSecretValues() started.
◇ Test credentialArtworkStoreRejectsUnsupportedImageTypes() started.
◇ Test fileMetadataStoreLoadsCredentialRecordsWithoutSecretValues() started.
◇ Test fileMetadataStoreLoadsIgnoredCredentialRefs() started.
◇ Test keychainItemReferenceRejectsBlankServiceOrAccount() started.
◇ Test configFileScannerKeepsStableCredentialOrder() started.
◇ Test fileMetadataStoreRejectsNotificationWithoutExpiry() started.
◇ Test credentialArtworkOverrideResolvesFileNamesInsideArtworkRoot() started.
◇ Test sampleSettingsDataUsesUniqueScanSourcePersistenceIDs() started.
◇ Test shellSettingsStoreLoadsLegacyFullConfigManifest() started.
◇ Test shellProfileScannerCreatesObservationsWithoutSecretValues() started.
◇ Test doctorIgnoresRegisteredState() started.
◇ Test shellSettingsStoreSurfacesUnreadableManifestAsIssue() started.
◇ Test inventoryGraphProjectsRecordsIntoNodesAndEdges() started.
◇ Test inventoryGraphProjectsCredentialsForListAndWhere() started.
◇ Test shellProfileScannerAcceptsDirectAssignmentsAndExportAssignments() started.
◇ Test doctorIgnoresExplicitlyIgnoredCredentials() started.
◇ Test environmentScannerCreatesPlaintextObservationsWithoutSecretValues() started.
◇ Test doctorFindsUnhealthyStatesFromInventoryGraph() started.
◇ Test credentialArtworkStoreImportsAndLoadsManifest() started.
◇ Test reconcilerPreservesNonKeychainMetadataLocations() started.
◇ Test credentialArtworkStoreRemovesPreviousFileWhenReplacingArtwork() started.
◇ Test shellSettingsStoreUsesDefaultsWhenManifestIsMissing() started.
◇ Test environmentScannerKeepsStableServiceNamesForCommonCredentialSuffixes() started.
◇ Test shellSettingsStoreSavesAndLoadsConfig() started.
◇ Test expiryReminderPlannerClassifiesReminderStatus() started.
◇ Test inventoryGraphSummaryCountsGraphProjection() started.
◇ Test inventoryGraphDoesNotDuplicateEquivalentEdges() started.
◇ Test doctorKeepsRecordInspectionAsGraphCompatibilityLayer() started.
◇ Test settingsScrollTargetRawValuesAreStableEvidenceLabels() started.
◇ Test credentialStateRawValuesAreStableCliLabels() started.
◇ Test reconcilerKeepsUnmatchedKeychainObservationAsOrphan() started.
◇ Test reconcilerMarksMissingMetadataKeychainLocation() started.
◇ Test credentialArtworkStoreSurfacesUnreadableManifestAsIssue() started.
◇ Test inventoryGraphProjectsObservationsIntoNodesAndEdges() started.
◇ Test nonEmptyTextRejectsBlankInput() started.
◇ Test credentialArtworkStoreRemovesArtworkAndManifestEntry() started.
◇ Test nonEmptyTextTrimsInput() started.
◇ Test credentialArtworkStoreKeepsSimilarCredentialIDsInDistinctFiles() started.
◇ Test fileMetadataStoreDerivesExpiringStateFromExpiryMetadata() started.
◇ Test reconcilerMarksMatchedMetadataKeychainLocationRegistered() started.
◇ Test doctorClassifiesErrorStates() started.
✔ Test doctorIgnoresRegisteredState() passed after 0.003 seconds.
✔ Test configFileScannerKeepsStableCredentialOrder() passed after 0.004 seconds.
✔ Test keychainInventoryScannerCreatesOrphanObservationsWithoutSecretValues() passed after 0.004 seconds.
✔ Test sampleSettingsDataUsesUniqueScanSourcePersistenceIDs() passed after 0.004 seconds.
✔ Test keychainItemReferenceRejectsBlankServiceOrAccount() passed after 0.004 seconds.
✔ Test configFileScannerCreatesObservationsWithoutSecretValues() passed after 0.004 seconds.
✔ Test inventoryGraphProjectsCredentialsForListAndWhere() passed after 0.004 seconds.
✔ Test inventoryGraphProjectsRecordsIntoNodesAndEdges() passed after 0.004 seconds.
✔ Test doctorIgnoresExplicitlyIgnoredCredentials() passed after 0.004 seconds.
✔ Test shellProfileScannerCreatesObservationsWithoutSecretValues() passed after 0.004 seconds.
✔ Test doctorFindsUnhealthyStatesFromInventoryGraph() passed after 0.004 seconds.
✔ Test shellProfileScannerAcceptsDirectAssignmentsAndExportAssignments() passed after 0.004 seconds.
✔ Test environmentScannerCreatesPlaintextObservationsWithoutSecretValues() passed after 0.004 seconds.
✔ Test reconcilerPreservesNonKeychainMetadataLocations() passed after 0.004 seconds.
✔ Test environmentScannerKeepsStableServiceNamesForCommonCredentialSuffixes() passed after 0.004 seconds.
✔ Test shellSettingsStoreUsesDefaultsWhenManifestIsMissing() passed after 0.004 seconds.
✔ Test doctorKeepsRecordInspectionAsGraphCompatibilityLayer() passed after 0.004 seconds.
✔ Test inventoryGraphSummaryCountsGraphProjection() passed after 0.004 seconds.
✔ Test settingsScrollTargetRawValuesAreStableEvidenceLabels() passed after 0.004 seconds.
✔ Test inventoryGraphDoesNotDuplicateEquivalentEdges() passed after 0.004 seconds.
✔ Test credentialStateRawValuesAreStableCliLabels() passed after 0.004 seconds.
✔ Test reconcilerMarksMissingMetadataKeychainLocation() passed after 0.004 seconds.
✔ Test credentialArtworkOverrideResolvesFileNamesInsideArtworkRoot() passed after 0.004 seconds.
✔ Test reconcilerKeepsUnmatchedKeychainObservationAsOrphan() passed after 0.004 seconds.
✔ Test nonEmptyTextRejectsBlankInput() passed after 0.004 seconds.
✔ Test inventoryGraphProjectsObservationsIntoNodesAndEdges() passed after 0.004 seconds.
✔ Test nonEmptyTextTrimsInput() passed after 0.004 seconds.
✔ Test fileMetadataStoreLoadsCredentialRecordsWithoutSecretValues() passed after 0.004 seconds.
✔ Test credentialArtworkStoreRejectsUnsupportedImageTypes() passed after 0.004 seconds.
✔ Test doctorClassifiesErrorStates() passed after 0.003 seconds.
✔ Test shellSettingsStoreLoadsLegacyFullConfigManifest() passed after 0.004 seconds.
✔ Test fileMetadataStoreRejectsInvalidState() passed after 0.004 seconds.
✔ Test fileMetadataStoreLoadsIgnoredCredentialRefs() passed after 0.004 seconds.
✔ Test shellSettingsStoreSurfacesUnreadableManifestAsIssue() passed after 0.004 seconds.
✔ Test credentialArtworkStoreSurfacesUnreadableManifestAsIssue() passed after 0.004 seconds.
✔ Test fileMetadataStoreRejectsNotificationWithoutExpiry() passed after 0.004 seconds.
✔ Test fileMetadataStoreRejectsMissingLocationFields() passed after 0.004 seconds.
✔ Test reconcilerMarksMatchedMetadataKeychainLocationRegistered() passed after 0.004 seconds.
✔ Test shellSettingsStoreSavesAndLoadsConfig() passed after 0.004 seconds.
✔ Test fileMetadataStoreRejectsInvalidExpiryDate() passed after 0.004 seconds.
✔ Test fileMetadataStoreRejectsNegativeNotificationLeadDays() passed after 0.005 seconds.
✔ Test fileMetadataStoreDerivesExpiredStateFromExpiryMetadata() passed after 0.005 seconds.
✔ Test fileMetadataStoreLoadsExpiryReminderMetadata() passed after 0.005 seconds.
✔ Test fileMetadataStoreDerivesExpiringStateFromExpiryMetadata() passed after 0.005 seconds.
✔ Test expiryReminderPlannerClassifiesReminderStatus() passed after 0.005 seconds.
✔ Test credentialArtworkStoreImportsAndLoadsManifest() passed after 0.005 seconds.
✔ Test credentialArtworkStoreRemovesArtworkAndManifestEntry() passed after 0.005 seconds.
✔ Test credentialArtworkStoreRemovesPreviousFileWhenReplacingArtwork() passed after 0.006 seconds.
✔ Test credentialArtworkStoreKeepsSimilarCredentialIDsInDistinctFiles() passed after 0.006 seconds.
✔ Test run with 49 tests in 0 suites passed after 0.006 seconds.
swift build --product KeydexApp
[0/1] Planning build
Building for debugging...
[0/3] Write swift-version--58304C5D6DBC2206.txt
Build of product 'KeydexApp' complete! (0.18s)
./scripts/forbidden-patterns.sh passes