# Changelog

## Score

- CAI 33 → 24 (-8.4)
- Rubric changed (rubric-2026.08.18 → rubric-2026.08.15) — scores are not directly comparable.

## Lenses

- Code Health 81 → 86 (+5.6)
- Architecture 97 → 94 (-3.2)
- Maturity 54 → 50 (-4.5)
- Readiness 44 → 13 (-30.9)
- Security 16 → 8 (-8.3)
- Domain Modelling 60 → 60 (+0.0)

## Resolved (193)

- ActiveAdapterV3.bindIllustStateAndProgress (cyclomatic 19) (app/src/main/java/ceui/pixiv/ui/download/ActiveListV3Fragment.kt)
- ActiveListV3Fragment.onViewCreated (cyclomatic 17) (app/src/main/java/ceui/pixiv/ui/download/ActiveListV3Fragment.kt)
- BarHelper.getThisBarInsets (cognitive 24) (app/src/main/java/ceui/pixiv/widgets/InsetLayout.kt)
- BottomPanelCoordinator.setupImeInsets (cognitive 32) (app/src/main/java/ceui/pixiv/chat/base/panel/BottomPanelCoordinator.kt)
- BottomPanelCoordinator.setupImeInsets (cyclomatic 28) (app/src/main/java/ceui/pixiv/chat/base/panel/BottomPanelCoordinator.kt)
- BpeTokenizer.bpeEncode (cognitive 21) (app/src/main/java/ceui/pixiv/ui/translate/BpeTokenizer.kt)
- BubbleAreaFinder.expand (cognitive 22) (app/src/main/java/ceui/pixiv/ui/translate/BubbleAreaFinder.kt)
- BubbleAreaFinder.expand (cyclomatic 21) (app/src/main/java/ceui/pixiv/ui/translate/BubbleAreaFinder.kt)
- BubbleHolder.bind (cognitive 23) (app/src/main/java/ceui/pixiv/chat/ui/ChatMessageAdapter.kt)
- BubbleHolder.bind (cyclomatic 18) (app/src/main/java/ceui/pixiv/chat/ui/ChatMessageAdapter.kt)
- BulkDownloadDebugFragment.buildReport (cognitive 19) (app/src/main/java/ceui/pixiv/ui/debug/BulkDownloadDebugFragment.kt)
- BulkDownloadDebugFragment.buildReport (cyclomatic 16) (app/src/main/java/ceui/pixiv/ui/debug/BulkDownloadDebugFragment.kt)
- Change coupling: API.kt ↔ SearchConfig.kt (app/src/main/java/ceui/loxia/API.kt)
- Change coupling: API.kt ↔ SearchFilterV3.kt (app/src/main/java/ceui/loxia/API.kt)
- Change coupling: API.kt ↔ SearchFilterV3LegacyBridge.kt (app/src/main/java/ceui/loxia/API.kt)
- Change coupling: Android10DownloadFactory22.kt ↔ SAFactory.java (app/src/main/java/ceui/lisa/helper/Android10DownloadFactory22.kt)
- Change coupling: AppApi.java ↔ SearchConfig.kt (app/src/main/java/ceui/lisa/http/AppApi.java)
- Change coupling: SearchConfig.kt ↔ SearchFilterV3BottomSheet.kt (app/src/main/java/ceui/pixiv/ui/search/SearchConfig.kt)
- Change coupling: SearchConfig.kt ↔ SearchFilterV3LegacyBridge.kt (app/src/main/java/ceui/pixiv/ui/search/SearchConfig.kt)
- Change coupling: SearchFilterV3BottomSheet.kt ↔ SearchFilterV3LegacyBridge.kt (app/src/main/java/ceui/pixiv/ui/search/v3/SearchFilterV3BottomSheet.kt)
- …and 173 more

## New (21)

- Coverage not measured — test suite did not build
- Dimension evaluation failed
- Duplicated block (11 lines × 2) (app/src/main/java/ceui/lisa/fragments/HistoryFeed.kt)
- Duplicated block (11 lines × 2) (app/src/main/java/ceui/pixiv/ui/settings/DownloadPathSettingsFragment.kt)
- Duplicated block (11 lines × 2) (app/src/main/java/ceui/pixiv/ui/task/FetchAllTask.kt)
- Duplicated block (12 lines × 2) (app/src/main/java/ceui/pixiv/ui/translate/TextEraser.kt)
- Duplicated block (15 lines × 2) (app/src/main/java/ceui/pixiv/ui/synonym/SynonymOperate.kt)
- Duplicated block (17 lines × 2) (app/src/main/java/ceui/lisa/activities/ImageDetailActivity.kt)
- Duplicated block (23 lines × 2) (app/src/main/java/ceui/pixiv/ui/debug/SafPerfTestFragment.kt)
- Duplicated block (25 lines × 8) (app/src/main/java/ceui/pixiv/download/config/ConfigPresets.kt)
- Duplicated block (7 lines × 2) (app/src/main/java/ceui/pixiv/ui/bulk/QueueDownloadManager.kt)
- Duplicated block (8 lines × 2) (app/src/main/java/ceui/loxia/MoonSync.kt)
- Duplicated block (8 lines × 2) (app/src/main/java/ceui/pixiv/ui/synonym/SynonymOperate.kt)
- Duplicated block (8 lines × 3) (app/src/main/java/ceui/pixiv/ui/settings/DownloadPathSettingsFragment.kt)
- Duplicated block (9 lines × 2) (app/src/main/java/ceui/lisa/activities/UserActivityV3.kt)
- Duplicated block (9 lines × 2) (app/src/main/java/ceui/pixiv/ui/feature/FeatureFeedFragment.kt)
- Duplicated block (9 lines × 2) (app/src/main/java/ceui/pixiv/ui/settings/NovelHeaderSettingsFragment.kt)
- Leaked secret: gcp-api-key (app/src/debug/google-services.json)
- Leaked secret: gcp-api-key (app/src/release/google-services.json)
- No artifact signing
- …and 1 more

## Changes since last survey

- 84 commits — 33 feature/other, 51 fixes

## By area

- app/src — 81 commits
- (root) — 1 commit
- .claude/skills — 1 commit
- app/build.gradle — 1 commit

## Notable commits

- fix: fix(comic): 漫画书签面板挂 MD3 主题，修 MaterialButton inflate 崩溃
- fix: fix(detail): #592 review 回补——报错文案取值兜底、坏链接不炸整个映射、日期规范成 JST (#592)
- fix: fix(detail): #970 review 回补——基线钉扎守卫异步 diff 晚到、随视图作废、不劫持收起回顶 (#970)
- fix: fix(detail): #970 真机回补——跳评论按钮默认关闭，落点基线收敛到 toolbar 下缘 (#970)
- fix: fix(detail): 2P 插画点图误入漫画阅读器——点图进阅读器要同时判 type == manga (#961)
- fix: fix(detail): V3 两页作品长按下载失效——点图入口改挂 itemView，别再吃掉长按 (#957)
- fix: fix(detail): review 回补——图片区不重建时把 adapter 持有的旧 bean 顶掉 (#962)
- fix: fix(detail): 动态进详情简介缺失——空 caption 回拉 detail + V3 补 #552 链接渲染修复 (#960)
- fix: fix(detail): 大图首显恢复 crossFade 淡入,回收重绑保持直接贴图 (#963)
- fix: fix(detail): 经典详情页点收藏整页闪烁——池发射不再重建图片区/标签区与头像 (#962)
- fix: fix(detail): 评论区对受限作品的永久 404 渲染服务端可读报错，不再无限转圈 (#592)
- fix: fix(detail): 进详情页全屏转圈——caption 补拉退出首屏阻塞路径 (#960)
- fix: fix(download): MediaStore 改名守卫大小写误杀 + 收编自愈重试 + 可执行报错 (#958)
- fix: fix(download): SafBackend review 回补——Uri 编解码、取消放行、探测残留告警、日志修正
- fix: fix(download): V3 小说下载 meta 补上 R18 flag——rFilter 预置把 R18 小说误归 SFW/
- fix: fix(download): 下载管理溢出菜单黑暗模式下白底——Toolbar 补 popupTheme
- fix: fix(download): 冷启动恢复的下载列表改按入队顺序返回，不再整队倒序下载
- fix: fix(download): 导入扫描弹窗正文夜间不可见——手工 TextView 补自适应文字色
- fix: fix(download): 算文件名/查存在改走无副作用的 resolvePath，不再触发 Skip 的 createFile 探测
- fix: fix(download): 配置读入时丢弃未知 Bucket 键，未来新增桶不再炸旧版本
- …and 64 more

## Architecture

- Containers 0 added · 0 removed · contexts 0 added · 3 removed · edges 0 added · 0 removed

## Removed bounded contexts (3)

- .
- progressmanager
- python
