Skip to content

docs: note accessibility smoke passes, manual review pending#179

Merged
jazz1x merged 1 commit into
mainfrom
docs/accessibility-smoke-passes
Jul 5, 2026
Merged

docs: note accessibility smoke passes, manual review pending#179
jazz1x merged 1 commit into
mainfrom
docs/accessibility-smoke-passes

Conversation

@jazz1x

@jazz1x jazz1x commented Jul 5, 2026

Copy link
Copy Markdown
Owner

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

  1. required accessibility identifiers...
  2. required reusable accessibility identifiers...
  3. required accessibility labels...
  4. required reusable accessibility labels...
    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
  5. project goals contract...
  6. planning pack contract...
  7. CLI interface contract...
  8. design system contract...
  9. graph workflow contract...
  10. verification contract...
    project contract clean passes\n- ./scripts/quality.sh
  11. CLI command inventory drift...
  12. state taxonomy docs drift...
  13. guardrail docs drift...
  14. anti-goal wording drift...
  15. workflow drift...
  16. project contract drift...
  17. project goals contract...
  18. planning pack contract...
  19. CLI interface contract...
  20. design system contract...
  21. graph workflow contract...
  22. verification contract...
    project contract clean
  23. loop contract drift...
  24. import guard matcher...
  25. architecture boundary imports...
  26. package dependency boundaries...
    package boundary graph clean
  27. loop documentation wiring...
  28. app presentation boundary...
  29. shell orchestration boundary...
    loop contract clean
  30. CLI smoke scenarios...
  31. list reads metadata fixture...
  32. where reads metadata fixture...
  33. doctor reads metadata fixture...
  34. scan config reads config fixture...
  35. reminders read expiry notification fixture...
    cli smoke clean
  36. app accessibility contract...
  37. required accessibility identifiers...
  38. required reusable accessibility identifiers...
  39. required accessibility labels...
  40. required reusable accessibility labels...
    app accessibility contract clean
  41. app design contract...
  42. native Mac utility structure...
  43. graph and repair surfaces...
  44. design system rules...
  45. anti-theater source guard...
    app design contract clean
  46. app UX flow contract...
  47. primary user loop docs...
  48. orient and narrow flow anchors...
  49. inspect and action flow anchors...
  50. settings and dismissal flow anchors...
  51. repair queue usability anchors...
    app ux flow contract clean
  52. app evidence scenarios contract...
    app evidence scenarios contract clean
  53. app accessibility evidence template contract...
    app accessibility evidence template contract clean
  54. release signing evidence template contract...
    release signing evidence template contract clean
  55. app menubar smoke script contract...
    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

@jazz1x jazz1x merged commit d335281 into main Jul 5, 2026
5 checks passed
@jazz1x jazz1x deleted the docs/accessibility-smoke-passes branch July 5, 2026 13:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant