Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .Jules/palette.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,3 +25,7 @@
## 2026-06-23 - [SwiftUI Button Accessibility]
**Learning:** Found a pattern where SwiftUI icon-only buttons or minimal UI elements were given `.help()` modifiers for hover tooltips but lacked `.accessibilityLabel()` modifiers for screen readers.
**Action:** When adding `.help()` to buttons, always pair it with a corresponding `.accessibilityLabel()` to ensure full accessibility.

## 2024-05-19 - [Missing Dynamic Context in Repeated List Action Buttons]
**Learning:** Icon-only action buttons (like "Edit" or "Delete") inside `ForEach` lists or repeating views often use static strings for `.help()` and `.accessibilityLabel()`, such as `.help("Edit")`. This causes a poor experience for screen reader users and those relying on tooltips, as they encounter multiple identical "Edit" labels without knowing *what* item is being edited.
**Action:** When adding `.help()` and `.accessibilityLabel()` to action buttons within a list or loop, always utilize dynamic context from the current item (e.g., `.help("Edit \(item.name)")`) to disambiguate the action for all users.
Comment on lines 25 to +31

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Fix chronological ordering of palette entries.

The new 2024-05-19 entry is placed between 2024-06-03 and 2026-06-23, breaking consistent date ordering. If the file is reverse-chronological (newest first), 2024-05-19 should appear after 2026-06-23 at the bottom. If chronological (oldest first), it should appear before 2024-06-03 at the top. Either move it to maintain the established ordering convention, or add a note explaining the ordering scheme.

Current order: 2024-06-03 → 2024-05-19 → 2026-06-23

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.Jules/palette.md around lines 25 - 31, The palette entries are out of date
order in the section containing the 2024-05-19 and 2026-06-23 notes, so update
the placement to match the file’s established ordering convention. Reorder the
affected entries in the palette document so the date sequence is consistent
throughout the list, using the existing entry headings as the anchors to move
the content.

Original file line number Diff line number Diff line change
Expand Up @@ -155,8 +155,8 @@ struct SharedMacroRow: View {
.foregroundColor(.accentColor)
}
.buttonStyle(.borderless)
.help("Edit in shared library")
.accessibilityLabel("Edit in shared library")
.help("Edit \(macro.name) in shared library")
.accessibilityLabel("Edit \(macro.name) in shared library")
}
.padding(.horizontal, 12)
.padding(.vertical, 8)
Expand Down Expand Up @@ -206,16 +206,16 @@ struct MacroRow: View {
.foregroundColor(.accentColor)
}
.buttonStyle(.borderless)
.help("Edit")
.accessibilityLabel("Edit")
.help("Edit \(macro.name)")
.accessibilityLabel("Edit \(macro.name)")

Button(action: onDelete) {
Image(systemName: "trash")
.foregroundColor(.red.opacity(0.8))
}
.buttonStyle(.borderless)
.help("Delete")
.accessibilityLabel("Delete")
.help("Delete \(macro.name)")
.accessibilityLabel("Delete \(macro.name)")
}
}
.padding(.horizontal, 12)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -222,16 +222,16 @@ struct ScriptRow: View {
.foregroundColor(.accentColor)
}
.buttonStyle(.borderless)
.help("Edit")
.accessibilityLabel("Edit")
.help("Edit \(script.name.isEmpty ? "Untitled Script" : script.name)")
.accessibilityLabel("Edit \(script.name.isEmpty ? "Untitled Script" : script.name)")

Button(action: onDelete) {
Image(systemName: "trash")
.foregroundColor(.red.opacity(0.8))
}
.buttonStyle(.borderless)
.help("Delete")
.accessibilityLabel("Delete")
.help("Delete \(script.name.isEmpty ? "Untitled Script" : script.name)")
.accessibilityLabel("Delete \(script.name.isEmpty ? "Untitled Script" : script.name)")
}
}
.padding(.horizontal, 12)
Expand Down
11 changes: 11 additions & 0 deletions parse_ci.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
log_lines = """
2026-06-29T09:35:06.7915320Z Test Suite 'XboxControllerMapperTests.xctest' failed at 2026-06-29 09:35:06.413.
2026-06-29T09:35:06.7921360Z Executed 1785 tests, with 18 tests skipped and 1 failure (0 unexpected) in 226.876 (227.381) seconds
2026-06-29T09:35:06.7922880Z Test Suite 'All tests' failed at 2026-06-29 09:35:06.418.
2026-06-29T09:35:06.7924580Z Executed 1785 tests, with 18 tests skipped and 1 failure (0 unexpected) in 226.876 (227.396) seconds
2026-06-29T09:35:06.7993580Z ⚠️ MappingEngine: Chord [ControllerKeys.ControllerButton.a, ControllerKeys.ControllerButton.b] detected but no active profile — input ignored
2026-06-29T09:35:06.7994660Z ⚠️ MappingEngine: Button a pressed but no active profile — input ignored
2026-06-29T09:35:06.7995180Z ⚠️ MappingEngine: Button a pressed but no active profile — input ignored
2026-06-29T09:35:06.8026810Z ##[error]Process completed with exit code 1.
"""
print(log_lines)
Loading