Files
QieKan-3.0/.claude/settings.local.json
T
Kudomagaandduanhl db5b18ca3c feature/bookinfo-related-books (#1201)
* feature: add translation full content

* feature: add translation full content

* feature: add translation full content

* feature: add translation full content

* feature: add translation full content

* feature:use chunk files replace chunk cache db

* feature:use chunk files replace chunk cache db

* feature:use chunk files replace chunk cache db

* feature: add translation config navigation and refactor translation settings

* feature: 体验优化

* feature: fixed error prompt

* Fix Gson deserialization error for LLM translation classes under R8 obfuscation

* Fix PMD error

* feature: pre-translation

* feature: pre-translation

* 优化

* 优化

* 增加书籍详情页关联书籍推荐功能

* 修复关联书籍"更多"按钮URL模板变量未解析的问题

* 修复发现按钮部分不执行JS的问题

* 优化书籍详情封面长按逻辑

* 阅读界面自定义图标问题

* R8反混淆问题

* 主题保存时保存图片等资源

* 在首页、发现页等长按时,提供了一个查看简短书籍信息的界面与右上角书籍信息角标。现在书籍信息角标在封面设置中显示

* 现在可配置主页图标

* 主页模块配置被遮挡的问题

* 一些优化

* fix: address code review findings (null safety, error propagation, performance)

- TranslateChapterUseCase: wrap execute() in try-catch to prevent task
  stuck in Translating state; propagate actual translation error instead
  of generic "Translation incomplete"; defensive null check on pairs
- DictionaryRepositoryImpl: safe call on pairs for Gson null-bypass
- LlmTranslateRepositoryImpl: safe calls on json.sentences and
  json.choices to prevent NPE from unexpected API responses
- ContentChunker: normalize \r\n to \n before splitting paragraphs
  to handle Windows-formatted text files
- BookInfoViewModel: parallelize related books loading with async/awaitAll
- CoilBookCover: add finalPath as remember key to reset state on reuse
- ThemeImportExport: fallback to filesDir when getExternalFilesDir is null

---------

Co-authored-by: duanhl <duanhl7749@gmail.com>
2026-05-26 01:45:04 +08:00

115 lines
6.6 KiB
JSON

{
"permissions": {
"allow": [
"Bash(./gradlew compileAppDebugKotlin)",
"Bash(./gradlew test *)",
"Bash(./gradlew :app:compileAppDebugUnitTestKotlin)",
"Bash(head -n 508 \"app/src/main/java/io/legado/app/model/CacheBook.kt\")",
"Bash(mv /tmp/cachebook_tmp.kt \"app/src/main/java/io/legado/app/model/CacheBook.kt\")",
"Bash(./gradlew :app:cleanCompileAppDebugKotlin)",
"Bash(./gradlew :app:compileAppDebugKotlin --rerun-tasks)",
"Bash(./gradlew :app:compileAppDebugKotlin)",
"Bash(./gradlew :app:cleanCompileAppDebugKotlin :app:compileAppDebugKotlin)",
"Bash(cp -r \"D:/AndroidPrj/legado-with-MD3/.codex/skills/legado-compose-review/SKILL.md\" \"D:/AndroidPrj/legado-with-MD3/.claude/skills/legado-compose-review/SKILL.md\")",
"Bash(cp -r \"D:/AndroidPrj/legado-with-MD3/.codex/skills/legado-compose-review/references\" \"D:/AndroidPrj/legado-with-MD3/.claude/skills/legado-compose-review/\")",
"WebSearch",
"Bash(./gradlew assembleAppDebug)",
"Bash(git checkout *)",
"Bash(./gradlew :app:compileAppDebugKotlin --no-daemon)",
"Bash(Select-Object -Last 50)",
"PowerShell(./gradlew :app:compileAppDebugKotlin --no-daemon 2>&1 | Select-Object -Last 50)",
"PowerShell(./gradlew :app:compileAppDebugKotlin --rerun-tasks 2>&1 | Select-Object -Last 30)",
"PowerShell(./gradlew :app:compileAppDebugKotlin --rerun-tasks 2>&1 | Select-Object -Last 40)",
"PowerShell(./gradlew :app:compileAppDebugKotlin --rerun-tasks 2>&1 | Select-Object -Last 15)",
"PowerShell(./gradlew :app:compileAppDebugKotlin --rerun-tasks 2>&1 | Select-Object -Last 5)",
"Bash(./gradlew assembleAppNoR8)",
"Bash(.\\\\gradlew.bat :app:compileAppDebugKotlin)",
"PowerShell(.\\\\gradlew.bat :app:compileAppDebugKotlin 2>&1 | Select-Object -Last 30)",
"PowerShell(.\\\\gradlew.bat :app:compileAppDebugKotlin 2>&1 | Select-Object -Last 15)",
"PowerShell(.\\\\gradlew.bat :app:compileAppDebugKotlin 2>&1 | Select-Object -Last 10)",
"PowerShell(.\\\\gradlew.bat :app:compileAppDebugKotlin 2>&1 | Select-Object -Last 8)",
"Bash(Get-ChildItem \"app/src/main/java/io/legado/app/ui/main/bookshelf/\" -Name)",
"Bash(Sort-Object)",
"Bash(git rm *)",
"Bash(git commit *)",
"Bash(Select-Object -Last 30)",
"Bash(./gradlew.bat :app:compileAppDebugKotlin)",
"Bash(git add *)",
"Bash(git mv *)",
"PowerShell(.\\\\gradlew.bat :app:compileAppDebugKotlin 2>&1)",
"WebFetch(domain:cs.android.com)",
"WebFetch(domain:github.com)",
"PowerShell(Get-ChildItem *)",
"PowerShell(Get-ChildItem -Path \"D:\\\\Android\\\\.gradle\\\\caches\\\\modules-2\\\\files-2.1\\\\androidx.navigation3\\\\navigation3-runtime-android\\\\1.0.1\" -Recurse | ForEach-Object { $_.FullName + \" \\(\" + $_.Length + \" bytes\\)\" })",
"Bash(jar tf *)",
"Read(//d/tmp/**)",
"Bash(jar xf *)",
"PowerShell(.\\\\gradlew.bat :app:compileAppDebugKotlin)",
"PowerShell(.\\\\gradlew.bat :app:compileAppDebugKotlin 2>&1 | Select-Object -Last 5)",
"PowerShell(.\\\\gradlew.bat test 2>&1 | Select-Object -Last 10)",
"Bash(npx skills *)",
"Bash(npx *)",
"PowerShell(.\\\\gradlew.bat :app:compileAppDebugKotlin 2>&1 | Select-Object -Last 20)",
"Bash(cmd /c \"gradlew.bat :app:compileAppDebugKotlin\")",
"Bash(cmd /c \"gradlew.bat :app:compileAppDebugKotlin 2>&1\")",
"PowerShell(.\\\\gradlew.bat :app:compileAppDebugKotlin 2>&1 | Select-Object -Last 40)",
"PowerShell(.\\\\gradlew.bat :app:compileAppDebugKotlin 2>&1 | Select-Object -Last 100)",
"PowerShell(.\\\\gradlew.bat :app:compileAppDebugKotlin 2>&1 | Select-Object -Last 50)",
"Bash(python3 *)",
"WebFetch(domain:raw.githubusercontent.com)",
"Bash(xargs -I{} jar -tf {})",
"Bash(gh api *)",
"Bash(rustup show *)",
"PowerShell(rustup show *)",
"PowerShell(npm *)",
"PowerShell(gcc *)",
"Bash(gh repo *)",
"Bash(Test-Path *)",
"Bash(git stash *)",
"Bash(Select-String -Pattern \"FAILED|error:\")",
"Bash(Select-Object -First 5)",
"Bash(Select-String -NotMatch \"^\\\\s*$\")",
"Bash(Select-Object -Last 20)",
"WebFetch(domain:compose-miuix-ui.github.io)",
"Bash(Select-Object -Last 60)",
"PowerShell(.\\\\gradlew.bat :app:compileAppDebugKotlin 2>&1 | Select-Object -Last 60)",
"Bash(New-Item *)",
"Bash(dir /s /b \"%USERPROFILE%\\\\.gradle\\\\caches\\\\*miuix*\")",
"Bash(findstr /i \"jar\\\\|aar\")",
"Bash(dir /s /b \"%USERPROFILE%\\\\.gradle\\\\caches\\\\transforms-*\\\\*PullToRefresh*\")",
"Bash(dir /s /b \"D:\\\\AndroidPrj\\\\legado-with-MD3\\\\app\\\\build\\\\*PullToRefresh*\")",
"Bash(dir /s /b \"D:\\\\AndroidPrj\\\\legado-with-MD3\")",
"Bash(findstr /i \"miuix.*\\\\.kt\")",
"Bash(findstr /v \"\\\\\\\\build\\\\\\\\\")",
"Bash(dir /s /b \"D:\\\\AndroidPrj\\\\legado-with-MD3\\\\.gradle\\\\*miuix*\")",
"Skill(legado-compose-review)",
"Bash(cmd /c \".\\\\gradlew.bat :app:compileAppDebugKotlin\")",
"PowerShell(gh search *)",
"WebFetch(domain:repo1.maven.org)",
"WebFetch(domain:s01.oss.sonatype.org)",
"WebFetch(domain:api.github.com)",
"Bash(javap -public /tmp/classes.jar!top/yukonga/miuix/kmp/basic/NavigationBarKt.class)",
"Bash(javap -public -cp /tmp/classes.jar top.yukonga.miuix.kmp.basic.NavigationBarKt)",
"PowerShell(Join-Path *)",
"Bash(dir /s /b \"C:\\\\Users\\\\*\\\\.gradle\\\\caches\")",
"Bash(findstr /i \"material3\")",
"Bash(findstr /i \"sources\")",
"Bash(dir /s /b \"%USERPROFILE%\\\\.gradle\\\\caches\")",
"Bash(findstr /i \"material3.*sources\")",
"WebFetch(domain:android.googlesource.com)",
"Read(//c/Users//**)",
"Bash(Get-ChildItem -Path \"D:\\\\AndroidPrj\\\\legado-with-MD3\" -Directory -Depth 0)",
"Bash(Select-Object Name)",
"PowerShell(Get-ChildItem -Path \"D:\\\\AndroidPrj\\\\legado-with-MD3\\\\app\\\\src\\\\main\\\\java\\\\io\\\\legado\\\\app\" -Directory -Depth 1 | ForEach-Object { $_.FullName.Replace\\(\"D:\\\\AndroidPrj\\\\legado-with-MD3\\\\app\\\\src\\\\main\\\\java\\\\io\\\\legado\\\\app\\\\\", \"\"\\) })",
"Bash(gh pr *)",
"PowerShell(Get-Content *)",
"Bash(python *)",
"Bash(C:\\\\Users\\\\www13\\\\.claude\\\\projects\\\\D--AndroidPrj-legado-with-MD3\\\\c1441549-f22e-480f-8eaf-d830b19148d1\\\\tool-results\\\\guangyu_source.json)",
"Bash(node -e ' *)",
"Bash(node *)",
"Bash(Select-String -Pattern \"BUILD|error|Error\")",
"Bash(Select-Object -First 10)"
]
}
}