Improve accessibility with content descriptions and clean up code - #430
Open
aeldergentics wants to merge 35 commits into
Open
Improve accessibility with content descriptions and clean up code#430aeldergentics wants to merge 35 commits into
aeldergentics wants to merge 35 commits into
Conversation
- Identified `Icon` components used within `IconButton`s that lacked a `contentDescription`. - Added a new `retry` string resource to `composeApp/src/commonMain/composeResources/values/strings.xml`. - Updated `ErrorMessage.kt` and `FreeProviderSuggestionsPanel.kt` to use the `retry` string resource for their retry button icons, improving accessibility for screen readers. - Added a learning entry to `.Jules/palette.md`. Co-authored-by: aeldergentics <274678171+aeldergentics@users.noreply.github.com>
Removes unnecessary debug print statements in the `runAndCapture` method to improve code cleanliness. Co-authored-by: aeldergentics <274678171+aeldergentics@users.noreply.github.com>
Co-authored-by: aeldergentics <274678171+aeldergentics@users.noreply.github.com>
…15021940 🧹 Remove debug print in TaskScheduler
…ure-8039336157355727848 🧹 [code health] Remove debug print in SandboxPackagesViewModel
…2743653603924637 🎨 Palette: Add Content Description to Retry Icons
🎯 **What:** Missing tests for pure functions in ExtensionFunctions.kt like formatFileSize and smartTruncate. 📊 **Coverage:** Added tests for byte, KB, MB, and GB bounds in formatFileSize. Added tests for short and truncated strings in smartTruncate. Also renamed ModelFormattingTest.kt to ExtensionFunctionsTest.kt. ✨ **Result:** Improved test coverage and reliability for string manipulation helpers. Co-authored-by: aeldergentics <274678171+aeldergentics@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
🎯 **What:** Missing tests for pure functions in ExtensionFunctions.kt like formatFileSize and smartTruncate. 📊 **Coverage:** Added tests for byte, KB, MB, and GB bounds in formatFileSize. Added tests for short and truncated strings in smartTruncate. Also renamed ModelFormattingTest.kt to ExtensionFunctionsTest.kt. ✨ **Result:** Improved test coverage and reliability for string manipulation helpers. --- *PR created automatically by Jules for task [14709659603671986929](https://jules.google.com/task/14709659603671986929) started by @aeldergentics*
Co-authored-by: aeldergentics <274678171+aeldergentics@users.noreply.github.com>
🎯 **What:** Removed debug print statement and its tracking variable `loggedMisses` from `ModelCatalog.kt`. 💡 **Why:** Debug prints clutter logs and are unnecessary in production environments. Their removal improves the readability and maintainability of the codebase. ✅ **Verification:** Ran spotless check and applied formatting. Run all unit tests which passed without failure. ✨ **Result:** Cleaned up code that correctly retains original intent and logic but now without the noisy output and extra tracking logic. --- *PR created automatically by Jules for task [1782630754617100317](https://jules.google.com/task/1782630754617100317) started by @aeldergentics*
Co-authored-by: aeldergentics <274678171+aeldergentics@users.noreply.github.com>
🎯 **What:** The testing gap addressed The `String.decodeHtmlEntities()` extension function in `HtmlUtils.kt` lacked unit tests. 📊 **Coverage:** What scenarios are now tested Tests have been added for all expected replacements: - ` ` to ` ` - `&` to `&` - `<` to `<` - `>` to `>` - `"` to `"` - `&SimonSchubert#39;` to `'` - Edge cases including strings with no entities, empty strings, and multiple entities. ✨ **Result:** The improvement in test coverage Ensured correctness and provided regression safety for HTML entity decoding functionality. --- *PR created automatically by Jules for task [11216980158050300972](https://jules.google.com/task/11216980158050300972) started by @aeldergentics*
🎯 What: Disabled global cleartext traffic in network security config.⚠️ Risk: Permitting cleartext traffic allows potential man-in-the-middle attacks where network data can be intercepted or manipulated. 🛡️ Solution: Set cleartextTrafficPermitted to false while maintaining required trust anchors. Co-authored-by: aeldergentics <274678171+aeldergentics@users.noreply.github.com>
🎯 What: Disabled global cleartext traffic in network security config.⚠️ Risk: Permitting cleartext traffic allows potential man-in-the-middle attacks where network data can be intercepted or manipulated. 🛡️ Solution: Set cleartextTrafficPermitted to false while maintaining required trust anchors. --- *PR created automatically by Jules for task [15675335273564897635](https://jules.google.com/task/15675335273564897635) started by @aeldergentics*
This workflow runs CodeQL analysis on pushes and pull requests to the main branch, as well as on a weekly schedule.
Updated CodeQL workflow configuration for analysis.
Potential fix for [https://github.com/aeldergentics/Kai/security/code-scanning/2](https://github.com/aeldergentics/Kai/security/code-scanning/2) Use an intermediate environment variable for `github.event.workflow_run.head_branch`, then reference it with native shell syntax (`"$HEAD_BRANCH"`) inside the script. This prevents expression-time insertion into the command body and avoids command injection through workflow expressions. Best minimal fix (no functional change): - In `.github/workflows/aur.yml`, update the **“Get version from release”** step. - Add `env:` with `HEAD_BRANCH: ${{ github.event.workflow_run.head_branch }}`. - Change the `run:` line to derive `version` from `"$HEAD_BRANCH"` using shell expansion. - Keep output behavior the same by writing to `$GITHUB_OUTPUT`. No new methods/imports/dependencies are needed. _Suggested fixes powered by Copilot Autofix. Review carefully before merging._
🎯 What: Added tests for the previously untested isBlockedHost function in FetchUrlTool by changing its visibility from private to internal. 📊 Coverage: Tested edge cases including loopback, private IPv4/IPv6, unspecified addresses, and valid public hosts. ✨ Result: Increased test coverage for network URL blocking logic. Co-authored-by: aeldergentics <274678171+aeldergentics@users.noreply.github.com>
🎯 **What:** The testing gap addressed: Missing tests for `isBlockedHost` in `FetchUrlTool.kt`. The visibility of the function was changed from `private` to `internal` so it can be tested directly in the same module. 📊 **Coverage:** What scenarios are now tested: Loopback (e.g. `127.0.0.1`, `::1`), private IPv4 and IPv6 addresses, unspecified addresses, empty string, and allowed public hosts and IP addresses. ✨ **Result:** The improvement in test coverage: A full suite of edge case unit tests was added for `isBlockedHost`, avoiding potential regression in network request validation logic. --- *PR created automatically by Jules for task [3882198290497815368](https://jules.google.com/task/3882198290497815368) started by @aeldergentics*
Replaces sequences of `.filterNot { ... }.mapNotNull { ... }` or `.map { ... }.filter { ... }` with a single `.mapNotNull { ... }` pass. This reduces the number of iterations over large collections and prevents the allocation of intermediate arrays.
Affected files:
- `RemoteDataRepository.kt`
- `AnthropicChatResponseDto.kt`
- `KaiUiParser.kt`
- `SplinterlandsTeamPicker.kt`
Co-authored-by: aeldergentics <274678171+aeldergentics@users.noreply.github.com>
💡 What: Replaced occurrences of multiple collection iteration steps (`map` followed by `filter`, or `filter` followed by `mapNotNull`) with a single `mapNotNull` step. 🎯 Why: Iterating over lists twice is inefficient and creates temporary intermediate arrays, which impacts memory and performance in tight loops like UI parsing. 📊 Impact: Saves allocations and iterations when parsing AI responses or generating the Kai UI tree. Reduces garbage collection overhead. 🔬 Measurement: Verify by reviewing the changed code and ensuring that tests pass successfully, especially the UI parsing tests and API response parsing tests. --- *PR created automatically by Jules for task [16983787762546547187](https://jules.google.com/task/16983787762546547187) started by @aeldergentics*
Co-authored-by: aeldergentics <274678171+aeldergentics@users.noreply.github.com>
Co-authored-by: aeldergentics <274678171+aeldergentics@users.noreply.github.com>
Co-authored-by: aeldergentics <274678171+aeldergentics@users.noreply.github.com>
Co-authored-by: aeldergentics <274678171+aeldergentics@users.noreply.github.com>
Generated AGENTS.md at repository root detailing environment setup, Gradle commands, KMP coding guidelines, documentation specs, and Kai skills configuration. --- *PR created automatically by Jules for task [929059326176625570](https://jules.google.com/task/929059326176625570) started by @aeldergentics*
Co-authored-by: aeldergentics <274678171+aeldergentics@users.noreply.github.com>
Created a new developer-focused, AI-first feature specification for the Generative UI (Interactive UI) feature as requested. This file maps the exact logic flow, component hierarchy, function signatures, and state management bindings rather than the standard user-oriented behavior spec. --- *PR created automatically by Jules for task [15023389317641166484](https://jules.google.com/task/15023389317641166484) started by @aeldergentics*
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.
PR #10 - ⚡ Bolt: Optimize collection map/filter chains
Merged: 2026-08-20T00:27:49Z | Commits: 1 | Changes: 0 additions, 0 deletions
PR #9 - 🧪 Add tests for FetchUrlTool isBlockedHost
Merged: 2026-08-20T00:12:18Z | Commits: 1 | Changes: +57, -1 lines | Files: 2
isBlockedHostfunction in FetchUrlTool.kt; changed visibility from private to internal for testingPR #8 - 🔒 Fix insecure network configuration
Merged: 2026-08-19T23:33:30Z | Commits: 1 | Changes: +1, -1 lines | Files: 1
PR #7 - 🧪 Add unit tests for HtmlUtils
Merged: 2026-08-19T23:06:26Z | Commits: 1 | Changes: +55 lines | Files: 1
String.decodeHtmlEntities()extension function in HtmlUtils.kt → space&→&<→<>→>"→"'→'PR #6 - 🧹 [Code Health] Remove debug print in ModelCatalog
Merged: 2026-08-19T22:50:04Z | Commits: 1 | Changes: +1, -10 lines | Files: 1
loggedMissesfrom ModelCatalog.ktPR #5 - Potential fix for code scanning alert no. 2: Code injection
Merged: 2026-08-19T23:49:57Z | Commits: 3 | Changes: +3, -1 lines | Files: 1
.github/workflows/aur.ymlgithub.event.workflow_run.head_branchdirectly in the command body, allowing command injection through workflow expressionsHEAD_BRANCH, then referenced it with native shell syntax ("$HEAD_BRANCH") inside the scriptPR #4 - 🧪 Add tests for ExtensionFunctions
Merged: 2026-08-19T22:32:11Z | Commits: 1 | Changes: +41, -1 lines | Files: 1
formatFileSizeandsmartTruncatePR #3 - 🧹 Remove debug print in TaskScheduler
Merged: 2026-08-19T22:14:01Z | Commits: 1 | Changes: +5, -4 lines | Files: 2
printlndebug statement inside TaskScheduler.ktPR #2 - 🧹 [code health] Remove debug print in SandboxPackagesViewModel
Merged: 2026-08-19T22:14:19Z | Commits: 1 | Changes: +0, -3 lines | Files: 1
printlnandlogMultiline) from therunAndCapturefunction in SandboxPackagesViewModel.ktPR #1 - 🎨 Palette: Add Content Description to Retry Icons
Merged: 2026-08-19T22:14:36Z | Commits: 1 | Changes: +8, -2 lines | Files: 4
Summary
The repository shows a focus on code quality, security, testing, and accessibility:
All PRs were authored by aeldergentics and merged within a 2-hour window on August 19-20, 2026. Most appear to be automatically generated by "Jules" (a code generation tool) for various tasks.